@warkypublic/oranguru 0.0.7 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib.cjs.js +10 -10
- package/dist/lib.cjs.js.map +1 -1
- package/dist/lib.d.ts +4 -2
- package/dist/lib.es.js +738 -689
- package/dist/lib.es.js.map +1 -1
- package/package.json +1 -1
package/dist/lib.cjs.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const w=require("react"),j=require("@glideapps/glide-data-grid"),$=require("@tabler/icons-react"),Se=require("@warkypublic/artemis-kit"),ve=require("@warkypublic/zustandsyncstore"),H=require("immer"),k=require("@mantine/core"),te=require("@mantine/hooks");var Z={exports:{}},J={};/**
|
|
2
2
|
* @license React
|
|
3
3
|
* react-jsx-runtime.production.js
|
|
4
4
|
*
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* This source code is licensed under the MIT license found in the
|
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
|
9
|
-
*/var
|
|
9
|
+
*/var fe;function Fe(){if(fe)return J;fe=1;var n=Symbol.for("react.transitional.element"),a=Symbol.for("react.fragment");function e(t,o,r){var i=null;if(r!==void 0&&(i=""+r),o.key!==void 0&&(i=""+o.key),"key"in o){r={};for(var l in o)l!=="key"&&(r[l]=o[l])}else r=o;return o=r.ref,{$$typeof:n,type:t,key:i,ref:o!==void 0?o:null,props:r}}return J.Fragment=a,J.jsx=e,J.jsxs=e,J}var U={};/**
|
|
10
10
|
* @license React
|
|
11
11
|
* react-jsx-runtime.development.js
|
|
12
12
|
*
|
|
@@ -14,27 +14,27 @@
|
|
|
14
14
|
*
|
|
15
15
|
* This source code is licensed under the MIT license found in the
|
|
16
16
|
* LICENSE file in the root directory of this source tree.
|
|
17
|
-
*/var
|
|
17
|
+
*/var me;function Me(){return me||(me=1,process.env.NODE_ENV!=="production"&&(function(){function n(s){if(s==null)return null;if(typeof s=="function")return s.$$typeof===z?null:s.displayName||s.name||null;if(typeof s=="string")return s;switch(s){case v:return"Fragment";case S:return"Profiler";case x:return"StrictMode";case P:return"Suspense";case A:return"SuspenseList";case B:return"Activity"}if(typeof s=="object")switch(typeof s.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),s.$$typeof){case p:return"Portal";case N:return s.displayName||"Context";case y:return(s._context.displayName||"Context")+".Consumer";case O:var _=s.render;return s=s.displayName,s||(s=_.displayName||_.name||"",s=s!==""?"ForwardRef("+s+")":"ForwardRef"),s;case I:return _=s.displayName||null,_!==null?_:n(s.type)||"Memo";case T:_=s._payload,s=s._init;try{return n(s(_))}catch{}}return null}function a(s){return""+s}function e(s){try{a(s);var _=!1}catch{_=!0}if(_){_=console;var R=_.error,F=typeof Symbol=="function"&&Symbol.toStringTag&&s[Symbol.toStringTag]||s.constructor.name||"Object";return R.call(_,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",F),a(s)}}function t(s){if(s===v)return"<>";if(typeof s=="object"&&s!==null&&s.$$typeof===T)return"<...>";try{var _=n(s);return _?"<"+_+">":"<...>"}catch{return"<...>"}}function o(){var s=W.A;return s===null?null:s.getOwner()}function r(){return Error("react-stack-top-frame")}function i(s){if(L.call(s,"key")){var _=Object.getOwnPropertyDescriptor(s,"key").get;if(_&&_.isReactWarning)return!1}return s.key!==void 0}function l(s,_){function R(){X||(X=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",_))}R.isReactWarning=!0,Object.defineProperty(s,"key",{get:R,configurable:!0})}function c(){var s=n(this.type);return Q[s]||(Q[s]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),s=this.props.ref,s!==void 0?s:null}function u(s,_,R,F,K,oe){var M=R.ref;return s={$$typeof:b,type:s,key:_,props:R,_owner:F},(M!==void 0?M:null)!==null?Object.defineProperty(s,"ref",{enumerable:!1,get:c}):Object.defineProperty(s,"ref",{enumerable:!1,value:null}),s._store={},Object.defineProperty(s._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(s,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(s,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:K}),Object.defineProperty(s,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:oe}),Object.freeze&&(Object.freeze(s.props),Object.freeze(s)),s}function d(s,_,R,F,K,oe){var M=_.children;if(M!==void 0)if(F)if(ne(M)){for(F=0;F<M.length;F++)f(M[F]);Object.freeze&&Object.freeze(M)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else f(M);if(L.call(_,"key")){M=n(s);var q=Object.keys(_).filter(function(Ie){return Ie!=="key"});F=0<q.length?"{key: someKey, "+q.join(": ..., ")+": ...}":"{key: someKey}",E[M+F]||(q=0<q.length?"{"+q.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
|
|
18
18
|
let props = %s;
|
|
19
19
|
<%s {...props} />
|
|
20
20
|
React keys must be passed directly to JSX without using spread:
|
|
21
21
|
let props = %s;
|
|
22
|
-
<%s key={someKey} {...props} />`,
|
|
22
|
+
<%s key={someKey} {...props} />`,F,M,q,M),E[M+F]=!0)}if(M=null,R!==void 0&&(e(R),M=""+R),i(_)&&(e(_.key),M=""+_.key),"key"in _){R={};for(var re in _)re!=="key"&&(R[re]=_[re])}else R=_;return M&&l(R,typeof s=="function"?s.displayName||s.name||"Unknown":s),u(s,M,R,o(),K,oe)}function f(s){g(s)?s._store&&(s._store.validated=1):typeof s=="object"&&s!==null&&s.$$typeof===T&&(s._payload.status==="fulfilled"?g(s._payload.value)&&s._payload.value._store&&(s._payload.value._store.validated=1):s._store&&(s._store.validated=1))}function g(s){return typeof s=="object"&&s!==null&&s.$$typeof===b}var C=w,b=Symbol.for("react.transitional.element"),p=Symbol.for("react.portal"),v=Symbol.for("react.fragment"),x=Symbol.for("react.strict_mode"),S=Symbol.for("react.profiler"),y=Symbol.for("react.consumer"),N=Symbol.for("react.context"),O=Symbol.for("react.forward_ref"),P=Symbol.for("react.suspense"),A=Symbol.for("react.suspense_list"),I=Symbol.for("react.memo"),T=Symbol.for("react.lazy"),B=Symbol.for("react.activity"),z=Symbol.for("react.client.reference"),W=C.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,L=Object.prototype.hasOwnProperty,ne=Array.isArray,V=console.createTask?console.createTask:function(){return null};C={react_stack_bottom_frame:function(s){return s()}};var X,Q={},Y=C.react_stack_bottom_frame.bind(C,r)(),h=V(t(r)),E={};U.Fragment=v,U.jsx=function(s,_,R){var F=1e4>W.recentlyCreatedOwnerStacks++;return d(s,_,R,!1,F?Error("react-stack-top-frame"):Y,F?V(t(s)):h)},U.jsxs=function(s,_,R){var F=1e4>W.recentlyCreatedOwnerStacks++;return d(s,_,R,!0,F?Error("react-stack-top-frame"):Y,F?V(t(s)):h)}})()),U}var ge;function Pe(){return ge||(ge=1,process.env.NODE_ENV==="production"?Z.exports=Fe():Z.exports=Me()),Z.exports}var m=Pe();function G(n){return btoa(encodeURIComponent(n).replace(/%([0-9A-F]{2})/g,(a,e)=>String.fromCharCode(Number.parseInt(e,16))))}const Ae="gridler_golang_restapi_v2_token",Te=(n,a)=>{const e=[...n.filter(t=>t!==void 0&&t.type!==void 0)];for(let t=0;t<e.length;t++)(!e[t].name||e[t].name==="")&&(e[t].name=""),e[t].type==="files"&&!e[t].value.startsWith("__")&&(e[t].value=`__${G(e[t].value)}__`),e[t].type==="advsql"&&!e[t].value.startsWith("__")&&(e[t].value=`__${G(e[t].value)}__`),e[t].type==="custom-sql-or"&&!e[t].value.startsWith("__")&&(e[t].value=`__${G(e[t].value)}__`),e[t].type==="custom-sql-join"&&!e[t].value.startsWith("__")&&(e[t].value=`__${G(e[t].value)}__`),e[t].type==="not-select-fields"&&!e[t].value.startsWith("__")&&(e[t].value=`__${G(e[t].value)}__`),e[t].type==="custom-sql-w"&&!e[t].value.startsWith("__")&&(e[t].value=`__${G(e[t].value)}__`),e[t].type==="select-fields"&&!e[t].value.startsWith("__")&&(e[t].value=`__${G(e[t].value)}__`),e[t].type==="cql-sel"&&!e[t].value.startsWith("__")&&(e[t].value=`__${G(e[t].value)}__`),a&&((!e||e.length===0)&&a.set("x-limit","10"),e[t].type==="association_autoupdate"&&a.set("association_autoupdate",e[t].value??"1"),e[t].type==="association_autocreate"&&a.set("association_autocreate",e[t].value??"1"),e[t].type==="searchop"||e[t].type==="searchor"||e[t].type==="searchand"?a.set(encodeURIComponent(`x-${e[t].type}-${e[t].op}-${e[t].name}`),String(e[t].value)):a.set(encodeURIComponent(`x-${e[t].type}${e[t].name&&e[t].name!==""?"-"+e[t].name:""}`),String(e[t].value)));return e},ie=(n,a)=>{const e=new Headers,t={},o=he?.();if(o&&o!=="")e.set("Authorization",`Token ${o}`);else{const i=he();i&&e.set("Authorization",`Token ${i}`)}a&&a.forEach((i,l)=>{e.set(l,i)});const r=[];for(const i of n?.filter(l=>!!l)??[]){const l=r.findIndex(c=>c.name===i.name&&c.type===i.type);l===-1?r.push(i):r[l]=i}if(Te(r,e),e?.forEach((i,l)=>{t[l]=i}),a)for(const i of Object.keys(t))a.set(i,t[i]);return t},je={getAuthToken:()=>{if(localStorage){const n=localStorage.getItem(Ae);if(n)return n}}},he=()=>je?.getAuthToken?.();function Ne(n,a){if(!n||!a||n.includes("..")||n.includes("[]")||/\[\s*\]/.test(n))return;const e=n.replace(/\[(\w+)\]/g,".$1").split(".").filter(Boolean);if(e.length!==0)return e.reduce((t,o)=>{if(t!=null&&typeof t=="object")return t[o]},a)}const{Provider:Oe,useStore:ce}=ve.createSyncStore((n,a)=>({hide:e=>{a().setInstanceState(e,"visible",!1)},menus:[],setInstanceState:(e,t,o)=>{n(H.produce(r=>{const i=r?.menus?.findIndex(l=>l.id===e);i>=0&&(r.menus[i][t]=o)}))},setState:(e,t)=>{n(H.produce(o=>{o[e]=t}))},show:(e,t)=>{const o=a(),r=o.menus.findIndex(l=>l.id===e),i=o.menus[r]?{...o.menus[r]}:{};Object.assign(i,t),i.id=i.id??e,i.visible=!(i.visible??!1),r<0?o.setState("menus",[...o.menus,i]):n(H.produce(l=>{l.menus||(l.menus=[]),l.menus[r]={...l.menus[r],...i}}))}}),n=>({providerID:n.providerID??`MenuStore-${Se.getUUID()}`}));function $e(){const{menus:n,providerID:a,setInstanceState:e,width:t}=ce(o=>({menus:o.menus,providerID:o.providerID,setInstanceState:o.setInstanceState,setState:o.setState,width:o.width}));return m.jsx(k.Portal,{id:`bmm_portal_${a}`,children:w.Children.toArray(n?.map((o,r)=>w.createElement(k.Menu,{shadow:"md",width:t??"300",...o.menuProps,key:`bmm_menu_${a}_${r}`,onClose:()=>{e(o.id,"visible",!1),o.menuProps?.onClose?.()},opened:o.visible},m.jsx(k.Menu.Target,{children:m.jsx("div",{id:`bmm_${a}_${r}_target`,style:{left:o.x,position:"fixed",top:o.y,visibility:"hidden"}})}),m.jsx(k.Menu.Dropdown,{children:o.renderer?o.renderer:w.Children.toArray(o.items?.map((i,l)=>m.jsx(_e,{...i},`bmm_${a}_${r}_item${l}`)))}))))},`bmm_portal_${a}`)}const _e=({children:n,label:a,...e})=>{const[t,o]=w.useState(!1);return typeof e.renderer=="function"?e.renderer({...e,loading:t,renderer:void 0,setLoading:o}):typeof e.renderer=="object"?e.renderer:e.isDivider?m.jsx(k.Menu.Divider,{}):e.items&&e.items.length>0?m.jsxs(k.Menu.Sub,{children:[m.jsx(k.Menu.Sub.Target,{children:m.jsx(k.Menu.Sub.Item,{...e,disabled:t,onClick:r=>{e.onClick?.(r),e.onClickAsync&&(o(!0),e.onClickAsync().finally(()=>o(!1)))},styles:{itemLabel:{overflow:"auto",wordWrap:"break-word"},...e.styles},children:n??a})}),m.jsx(k.Menu.Sub.Dropdown,{children:w.Children.toArray(e.items.map((r,i)=>m.jsx(_e,{...r},`bmm_subitem_${r?.id??""}${i}`)))})]}):!e.onClick&&!e.onClickAsync?m.jsxs(k.Menu.Label,{...e,children:[" ",n??a]}):m.jsx(k.Menu.Item,{...e,disabled:t,onClick:r=>{e.onClick?.(r),e.onClickAsync&&(o(!0),e.onClickAsync().finally(()=>o(!1)))},styles:{itemLabel:{overflow:"auto",wordWrap:"break-word"},...e.styles},children:n??a})};function Ce(n){return m.jsxs(Oe,{...n,children:[m.jsx($e,{}),n.children]})}const be=[{label:"Contains",value:"contains"},{label:"Equal",value:"eq"},{label:"Not Equal",value:"neq"},{label:"Greater Than",value:"gt"},{label:"Greater Than or Equal",value:"gte"},{label:"Less Than",value:"lt"},{label:"Less Than or Equal",value:"lte"}],we=n=>{const a=n.storeState?.colFilters?.findIndex(i=>i.id===n.column.id)??-1,e=n.storeState?.colFilters?.[a]??{id:n.column.id,value:""},[t,o]=w.useState(e?.value??""),[r]=te.useDebouncedValue(t,900);return w.useEffect(()=>{n.storeState.setStateFN("colFilters",i=>{const l=i?.findIndex(u=>u.id===n.column.id)??-1,c=i??[];return l>=0?c[l]={...c[l],...n.options,id:n.column.id,value:r}:c.push({operator:"contains",...n.options,id:n.column.id,value:r}),c})},[r,n.column.id,n.options,n.storeState]),m.jsx(k.TextInput,{onChange:i=>o(i.target.value),rightSection:m.jsx(k.ActionIcon,{color:"gray",onClick:()=>o(""),variant:"filled",children:m.jsx($.IconX,{color:"red"})}),value:t??e?.value})},xe=n=>{const a=n.storeState?.colFilters?.findIndex(i=>i.id===n.column.id)??-1,e=n.storeState?.colFilters?.[a]??{id:n.column.id,operator:"contains"},[t,o]=w.useState(e?.operator??"contains"),[r]=te.useDebouncedValue(t,900);return w.useEffect(()=>{n.storeState.setStateFN("colFilters",i=>{const l=i?.findIndex(u=>u.id===n.column.id)??-1,c=i??[];return l>=0?c[l]={...c[l],...n.options,id:n.column.id,operator:r}:c.push({...n.options,id:n.column.id,operator:r,value:""}),c})},[r,n.column.id,n.options,n.storeState]),m.jsx(k.Select,{comboboxProps:{withinPortal:!1},data:be,maxDropdownHeight:150,onChange:i=>o(i),placeholder:"Operator",searchable:!0,value:t??e?.operator,withScrollArea:!0})},le=n=>m.jsxs(k.Stack,{onClick:a=>a.stopPropagation(),children:[m.jsx(xe,{...n}),m.jsx(we,{...n})]}),ae=n=>`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" fill="none">
|
|
23
23
|
<path
|
|
24
|
-
fill="${
|
|
24
|
+
fill="${n.fgColor??"currentColor"}"
|
|
25
25
|
d="M15 2.5a.5.5 0 0 0-1 0v13.793l-2.146-2.147a.5.5 0 0 0-.708.708l3 3a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L15 16.293zM2.5 4a.5.5 0 0 0 0 1h9a.5.5 0 0 0 0-1zM5 7.5a.5.5 0 0 1 .5-.5h6a.5.5 0 0 1 0 1h-6a.5.5 0 0 1-.5-.5M8.5 10a.5.5 0 0 0 0 1h3a.5.5 0 0 0 0-1z"
|
|
26
26
|
></path>
|
|
27
27
|
</svg>
|
|
28
|
-
`,
|
|
28
|
+
`,se=n=>`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" fill="none">
|
|
29
29
|
<path
|
|
30
|
-
fill="${
|
|
30
|
+
fill="${n.fgColor??"currentColor"}"
|
|
31
31
|
d="M15 17.5a.5.5 0 0 1-1 0V3.707l-2.146 2.147a.5.5 0 0 1-.708-.708l3-3a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1-.708.708L15 3.707zM2.5 16a.5.5 0 0 1 0-1h9a.5.5 0 0 1 0 1zM5 12.5a.5.5 0 0 0 .5.5h6a.5.5 0 0 0 0-1h-6a.5.5 0 0 0-.5.5M8.5 10a.5.5 0 0 1 0-1h3a.5.5 0 0 1 0 1z"
|
|
32
32
|
></path>
|
|
33
33
|
</svg>
|
|
34
|
-
`,ee=r=>f.jsx("img",{alt:r.alt??"Sprite Image",src:`data:image/svg+xml;utf8,${r.sprite({...r,sprite:void 0})}`}),{Provider:De,useStore:D}=Se.createSyncStore((r,a)=>({_events:new EventTarget,_loadingList:T.CompactSelection.empty(),_page_data:{},_visibleArea:{height:1e4,width:1e3,x:0,y:0},_visiblePages:{height:0,width:0,x:0,y:0},addError:(e,...t)=>{const n=a();console.log("Gridler Error",n.uniqueid,e,t),r(H.produce(o=>{o.errors=[...o.errors,e]}))},errors:[],get:()=>a(),getCellContent:e=>{const t=a(),[n,o]=e,i=t.getRowBuffer(o);return i!==void 0?t.toCell(i,n):{allowOverlay:!1,kind:T.GridCellKind.Loading}},getCellsForSelection:(e,t)=>async()=>{const n=a();await n.setStateFN("_visibleArea",i=>e);const o=[];for(let i=e.y;i<e.y+e.height;i++){const l=[];for(let c=e.x;c<e.x+e.width;c++)l.push(n.getCellContent([c,i]));o.push(l)}return o},getRowBuffer:e=>{const t=a();if(t.data&&t.data.length>0)return t.data[e]===void 0?{allowOverlay:!1,kind:T.GridCellKind.Loading}:t.data[e];const n=Math.max(0,Math.floor(e/t.pageSize)),o=t.pageSize*n,i=e-o;return t._page_data?.[n]?.[i]},getState:e=>a()[e],hasLocalData:!1,keyField:"id",loadPage:async(e,t)=>{const n=a(),o=e<0?0:e;if(!n._events.dispatchEvent(new CustomEvent("before_loadPage",{detail:{clearMode:t,page:e,state:n}})))return;const l=[],c=Object.keys(n.renderColumns??[1,2,3]).length,u=n.pageSize*o,d=n._page_data?.[o]?.length>0;if(t==="all"){n._active_requests?.forEach(m=>{m.controller?.abort?.()}),n.setState("_page_data",{}),n.setState("_active_requests",[]),n.loadPage(o);return}if(!n.useAPIQuery){console.warn("No useAPIQuery function defined, cannot load page",o);return}!d&&t!=="page"&&n.useAPIQuery?.(o).then(m=>{n.setStateFN("_page_data",g=>({...g,[o]:m}));for(let g=o;g<=u+n.pageSize;g++)for(let S=0;S<=c;S++)l.push({cell:[S,g]});n._glideref?.updateCells(l),n._events.dispatchEvent(new CustomEvent("loadPage",{detail:{clearMode:t,data:m,page:e,state:n}}))}).catch(m=>{console.warn("loadPage Error: ",o,m),n._events.dispatchEvent(new CustomEvent("loadPage_error",{detail:{clearMode:t,error:m,page:e,state:n}}))})},maxConcurrency:1,mounted:!1,onCellClicked:(e,t)=>{const n=a(),[o,i]=e;n.glideProps?.onCellClicked?.(e,t),n._events.dispatchEvent(new CustomEvent("onCellClicked",{detail:{cell:e,col:o,row:i,state:n}}))},onCellEdited:(e,t)=>{const n=a(),[,o]=e;n._events.dispatchEvent(new CustomEvent("onCellEdited",{detail:{cell:e,newVal:t,row:o,state:n}})),n.glideProps?.onCellEdited?.(e,t)},onColumnMoved:(e,t)=>{const n=a(),o=n.renderColumns?.[e],i=n.renderColumns?.[t];o?.disableMove||i?.disableMove||n.setStateFN("colOrder",l=>{const c=l??n.renderColumns?.map((u,d)=>[u.id,d]).reduce((u,[d,m])=>({...u,[d]:m}),{});return!o?.id||!i?.id?c:{...c,[o?.id]:t,[i?.id]:e}})},onColumnProposeMove:(e,t)=>{const n=a(),o=n.renderColumns?.[e],i=n.renderColumns?.[t];return!(o?.disableMove||i?.disableMove)},onColumnResize:(e,t,n,o)=>{const i=a(),l=i.renderColumns?.find(c=>c.id===e.id);l?.disableResize||l?.maxWidth&&t<l?.maxWidth||l&&i.setStateFN("colSize",c=>c&&l&&c[l.id]===t?c:{...c,[l.id]:t})},onContextClick:(e,t,n,o)=>{const i=a(),l=i.renderColumns?.[n??-1],c=e==="menu"?[{leftSection:f.jsx(j.IconGrid4x4,{size:16}),title:i.title??"Grid"}]:l?[{leftSection:f.jsx(j.IconGrid4x4,{size:16}),title:i.title??"Grid"},{items:[{label:"Sort Ascending",leftSection:f.jsx(ee,{sprite:ae}),onClick:()=>{i.setStateFN("colSort",u=>{const d=[...u??[]],m=d.findIndex(S=>S.id===l.id),g="asc";if(m<0){const S={direction:g,id:l.id,order:d?.length};d.push(S)}else m>=0&&(d[m].direction=g);return d})}},{label:"Sort Descending",leftSection:f.jsx(ee,{sprite:le}),onClick:()=>{i.setStateFN("colSort",u=>{const d=[...u??[]],m=d.findIndex(S=>S.id===l.id),g="desc";if(m<0){const S={direction:g,id:l.id,order:d?.length};d.push(S)}else m>=0&&(d[m].direction=g);return d})}},{label:`Filter ${l?.title??l?.id}`},{renderer:f.jsx(ie,{column:l,storeState:a()})}],label:`Column Settings for ${l?.title??l?.id}`,leftSection:f.jsx(j.IconGrid4x4,{size:16})}]:[];i.hideMenu?.(e),i.showMenu?.(e,{items:l?.getMenuItems?.(e,i,n&&o?i.getRowBuffer(o):void 0,l,c)??i.getMenuItems?.(e,i,n&&o?i.getRowBuffer(o):void 0,l,c)??c,x:t.clientX??t.bounds?.x,y:t.clientY??t.bounds?.y})},onHeaderClicked:(e,t)=>{const n=a();t.preventDefault();const o=n.renderColumns?.[e];o&&(o.disableSort||n.setStateFN("colSort",i=>{const l=[...i??[]],c=l.findIndex(u=>u.id===o.id);if(c<0){const u={direction:"asc",id:o.id,order:l?.length};l.push(u)}else c>=0&&l[c].direction==="asc"?l[c].direction="desc":c>=0&&l[c].direction==="desc"&&l.splice(c,1);return l}))},onHeaderMenuClick:(e,t)=>{const n=a(),o=n.renderColumns?.[e];if(!o)return;const i=[{label:`Sort ${o?.title??o?.id}`},{label:"Sort Ascending",leftSection:f.jsx(ee,{sprite:ae}),onClick:()=>{n.setStateFN("colSort",c=>{const u=[...c??[]],d=u.findIndex(g=>g.id===o.id),m="asc";if(d<0){const g={direction:m,id:o.id,order:u?.length};u.push(g)}else d>=0&&(u[d].direction=m);return u})}},{label:"Sort Descending",leftSection:f.jsx(ee,{sprite:le}),onClick:()=>{n.setStateFN("colSort",c=>{const u=[...c??[]],d=u.findIndex(g=>g.id===o.id),m="desc";if(d<0){const g={direction:m,id:o.id,order:u?.length};u.push(g)}else d>=0&&(u[d].direction=m);return u})}},{isDivider:!0}],l=[...o.disableSort?[]:i,{label:`Filter ${o?.title??o?.id}`},{renderer:f.jsx(ie,{column:o,storeState:a()})},{isDivider:!0},{label:"Refresh",onClickAsync:async()=>{await n.reload?.()}}];n.hideMenu?.("header-menu"),n.showMenu?.("header-menu",{items:o?.getMenuItems?.("header-menu",n,void 0,o,l)??n.getMenuItems?.("header-menu",n,void 0,o,l),x:t.x,y:t.y})},onItemHovered:e=>{const t=a();if(t.setState("_activeTooltip",void 0),e.kind==="cell"){const n=t.renderColumns?.[e.location[0]];if(n?.tooltip&&typeof n?.tooltip=="string")t.setState("_activeTooltip",n?.tooltip);else if(n?.tooltip&&typeof n?.tooltip=="function"){const o=t.getRowBuffer(e.location[1]);t.setState("_activeTooltip",n?.tooltip(o,e.location[1],e.location[0]))}}},onVisibleRegionChanged:(e,t,n,o)=>{const i=a();i._scrollTimeout&&clearTimeout(i._scrollTimeout);const l=()=>{const c=a(),u=Math.max(0,Math.floor(e.y/c.pageSize)),d=Math.max(0,Math.floor(c._visiblePages.y/c.pageSize)),m=u-d;if(c.progressiveScroll&&m>1){const g=a(),S=(d+2)*g.pageSize*(g.rowHeight??22);g._glideref?.scrollTo(0,{amount:S,unit:"px"},"vertical");return}c.setState("_visiblePages",e)};i.setState("_scrollTimeout",setTimeout(()=>{l()},100))},pageSize:50,ready:!1,setState:(e,t)=>{r(H.produce(n=>{n[e]=t}))},setStateFN:(e,t)=>new Promise((o,i)=>{r(H.produce(l=>{if(typeof t=="function")l[e]=t(l[e]);else throw i(new Error(`Not a function ${t}`)),Error(`Not a function ${t}`)})),o()}),toCell:(e,t)=>{const n=a(),i=n.renderColumns?.[t],l=i?.id??i?.title??String(t);if(l==null||e===void 0||e===null)return i?.Cell?i?.Cell(e,t,l,void 0,n):n.RenderCell?n.RenderCell(e,t,l,void 0,n):{allowOverlay:!1,kind:T.GridCellKind.Loading};try{const c=String(l).includes(".")?Ne(l,e)??"":e?.[l];return i?.Cell?{kind:T.GridCellKind.Text,...i?.Cell(e,t,l,c,n)}:n.RenderCell?n.RenderCell(e,t,l,c,n):{allowOverlay:!0,data:c,displayData:String(c),kind:T.GridCellKind.Text}}catch{return n.RenderCell?n.RenderCell(e,t,l,e?.[l??""],n):{allowOverlay:!1,kind:T.GridCellKind.Loading,skeletonWidthVariability:50}}},total_rows:1e3,uniqueid:he.getUUID()}),r=>{const[a,e]=r.useStore(n=>[n.setState,n.getState]),t=se();return b.useEffect(()=>{const n=e("onMounted");if(typeof n=="function"&&n(e,a),a("mounted",!0),window&&window.document&&!window.document.getElementById("portal")){const i=window.document.createElement("div");i.id="portal",i.setAttribute("data-gridler-portal",r.uniqueid),window.document.body.appendChild(i)}return e("_events").dispatchEvent(new CustomEvent("mounted",{detail:{}})),()=>{const o=e("onUnMounted");a("mounted",!1),e("_events").dispatchEvent(new CustomEvent("unmounted",{detail:{}})),typeof o=="function"&&o()}},[a,e]),b.useEffect(()=>{const n=e("ready"),o=e("_glideref"),i=e("keyField")??"id",l=e("selectedRow")??r.selectedRow,c=e("askAPIRowNumber");let u=-1;if(l&&o&&n){const d=e("_page_data"),m=e("pageSize");for(const g in d){for(const S in d[g]){const E=Number(g)*m+Number(S);if(String(d[g][S]?.[i])===String(l)){u=d[g][S]?._rownumber>0?d[g][S]?._rownumber:E>0?E:-1;break}}if(u>0)break}u>0?o.scrollTo(0,u):typeof c=="function"&&c(String(l)).then(g=>{g>=0&&(o.scrollTo(0,g),e("_events").dispatchEvent(new CustomEvent("selectedRowFound",{detail:{rowNumber:g,selectedRow:l}})))}).catch(g=>{console.warn("Error in askAPIRowNumber",g)})}},[r.selectedRow]),e("_events").addEventListener("reload",n=>{e("reload")?.()}),{...r,hideMenu:r.hideMenu??t.hide,showMenu:r.showMenu??t.show,total_rows:r.total_rows??e("total_rows")??0}});function ze(r){const[a,e,t,n,o]=D(c=>[c.setStateFN,c.setState,c.getState,c.addError,c.mounted]),i=async c=>{const u=t("colSort"),d=t("pageSize"),m=t("colFilters"),g=t("_active_requests");e("loadingData",!0);try{if(r&&r.url){const S=new Headers;if(S.set("x-limit",String(d??50)),S.set("x-offset",String((d??50)*c)),S.set("Authorization",`Token ${r.authtoken}`),u?.length&&u.length>0&&S.set("x-sort",u?.map(h=>`${h.id} ${h.direction}`).reduce((h,w)=>`${h},${w}`)),m?.length&&m.length>0&&m?.filter(h=>h.value?.length>0)?.forEach(h=>{h.value&&h.value!==""&&S.set(`x-searchop-${h.operator}-${h.id}`,`${h.value}`)}),r.options&&r.options.length>0){const h=ve(r.options);for(const w in h)S.set(w,h[w])}const E=g?.findIndex(h=>h.page===c)??-1;if(g?.forEach(h=>{(h.page>=0&&h.page<c-2||c>=0&&h.page>c+2)&&h.controller?.abort?.()}),g&&E>=0&&g[E]){e("loadingData",!1);return}const A=new AbortController;await a("_active_requests",h=>[...h??[],{controller:A,page:c}]);const _=await fetch(`${r.url}?x-limit=${String(d??50)}&x-offset=${String((d??50)*c)}`,{headers:S,method:"GET",signal:A?.signal});if(_.ok){const h=_.headers.get("Content-Range")?.split("/");h?.[1]&&parseInt(h[1],10)>0&&e("total_rows",parseInt(h[1],10));const w=await _.json();return e("loadingData",!1),w??[]}n(`${_.status} ${_.statusText}`,"api",r.url),await a("_active_requests",h=>[...(h??[]).filter(w=>w.page!==c)])}}catch(S){n(`Error: ${S}`,"api",r.url)}return e("loadingData",!1),[]},l=async c=>{const u=t("colFilters");if(r&&r.url){const d=new Headers;d.set("x-limit","10"),d.set("x-fetch-rownumber",String(c)),d.set("Authorization",`Token ${r.authtoken}`),u?.length&&u.length>0&&u?.filter(S=>S.value?.length>0)?.forEach(S=>{S.value&&S.value!==""&&d.set(`x-searchop-${S.operator}-${S.id}`,`${S.value}`)});const m=new AbortController,g=await fetch(`${r.url}?x-fetch-rownumber=${c}}`,{headers:d,method:"GET",signal:m?.signal});if(g.ok){const S=await g.json();return S?.[0]?._rownumber??S?._rownumber??0}n(`${g.status} ${g.statusText}`,"api",r.url)}return[]};return b.useEffect(()=>{e("useAPIQuery",i),e("askAPIRowNumber",l)},[r.url,r.authtoken,o,e]),f.jsx(f.Fragment,{})}const ye=b.memo(ze);ye.displayName="Gridler-GlidlerAPIAdaptorForGoLangv2";function pe(r){const[a,e,t,n]=D(i=>[i.getState,i.mounted,i.setState,i.reload]),o=b.useCallback((i,l,c,u,d)=>{if(i==="header-menu")return d||[];const m=[];m.push(...d);const g=a("_gridSelection")?.rows.toArray()??[],S=g.length>1;if(!c){const _=g[0];_!==void 0&&(c=l.getRowBuffer(_))}const E=typeof r.descriptionField=="string"?c?.[r.descriptionField]:typeof r.descriptionField=="function"&&c?r.descriptionField(c):void 0;i==="other"&&m.push({c:"blue",label:"Add",onClick:()=>{r.onRequestForm("insert",c)}}),i==="cell"&&c||i==="menu"&&c?(m.push({c:"teal",label:"Add",leftSection:f.jsx(j.IconSquarePlus,{color:"teal",size:16}),onClick:()=>{r.onRequestForm("insert",c)}}),S?(m.push({c:"green",label:`Modify All Selected (${g.length})`,leftSection:f.jsx(j.IconEdit,{color:"green",size:16}),onClick:()=>{r.onRequestForm("change",g.map(_=>l.getRowBuffer(_)))}}),m.push({c:"red",label:`Remove All Selected (${g.length})`,leftSection:f.jsx(j.IconTrashX,{color:"maroon",size:16}),onClick:()=>{r.onRequestForm("delete",g.map(_=>l.getRowBuffer(_)))}})):(m.push({c:"green",label:`Modify${E&&r.showDescriptionInMenu?` (${E})`:""}`,leftSection:f.jsx(j.IconEdit,{color:"green",size:16}),onClick:()=>{r.onRequestForm("change",c)}}),m.push({c:"red",label:`Remove${E&&r.showDescriptionInMenu?` (${E})`:""}`,leftSection:f.jsx(j.IconTrashX,{color:"maroon",size:16}),onClick:()=>{r.onRequestForm("delete",c)}})),m.push({isDivider:!0})):(i==="cell"&&!c||i==="menu"&&!c)&&m.push({c:"red",label:"Nothing Selected",leftSection:f.jsx(j.IconExclamationMark,{color:"yellow",size:16})}),m.push({c:"orange",label:"Refresh",leftSection:f.jsx(j.IconRefresh,{color:"orange",size:16}),onClick:()=>{n?.()}});const A=r.getMenuItems?r.getMenuItems(i,l,c,u,m):m;return!m||m.length===0?d||[]:A},[r.onRequestForm,a]);return b.useEffect(()=>(e&&typeof t=="function"&&a("getMenuItems")!==o&&t("getMenuItems",o),()=>{}),[r.getMenuItems,e]),f.jsx(f.Fragment,{})}function Ge(r){const[a,e,t]=D(u=>[u.setState,u.getState,u.mounted]),{colFilters:n,colSort:o,columns:i}=D(u=>({colFilters:u.colFilters,colOrder:u.colOrder,colSize:u.colSize,colSort:u.colSort,columns:u.columns})),l=b.useRef({colFilters:n,colSort:o}),c=async u=>{const d=e("pageSize");return r.data&&Array.isArray(r.data)?(a("total_rows",r.data.length),r.data.slice(u*(d??50),(u+1)*(d??50))):[]};return b.useEffect(()=>{a("useAPIQuery",c)},[t,a]),b.useEffect(()=>{if(r.onColumnSort&&o!==l?.current?.colSort){const u=r.onColumnSort(o,i,r.data);a("total_rows",u.length),a("data",u),l.current.colSort=o}},[o,r.onColumnSort]),b.useEffect(()=>{if(r.onColumnFilter&&n!==l?.current?.colFilters){const u=r.onColumnFilter(n,i,r.data);a("total_rows",u.length),a("data",u),l.current.colFilters=n}},[n,r.onColumnFilter]),f.jsx(f.Fragment,{})}const ce=b.memo(Ge);ce.displayName="Gridler-GlidlerLocalDataAdaptor";function Ee(){const{loadingData:r,onContextClick:a}=D(e=>({loadingData:e.loadingData,onContextClick:e.onContextClick}));return f.jsx(y.ActionIcon,{loading:r,mr:"xs",mt:"2px",onClick:e=>a("menu",e),variant:"subtle",children:f.jsx(j.IconMenu2,{})})}function Le(){const{_activeTooltip:r,tooltipBarProps:a}=D(e=>({_activeTooltip:e._activeTooltip,tooltipBarProps:e.tooltipBarProps}));return f.jsx("div",{"data-tooltip-bar":!0,style:{minHeight:"24px"},...a,children:r})}const ke=b.memo(()=>{const r=b.useRef(0),a=b.useRef(null),{_glideref:e,_gridSelectionRows:t,askAPIRowNumber:n,colFilters:o,colOrder:i,colSize:l,colSort:c,columns:u,getState:d,loadPage:m,ready:g,setState:S,setStateFN:E,values:A}=D(_=>({_glideref:_._glideref,_gridSelectionRows:_._gridSelectionRows,askAPIRowNumber:_.askAPIRowNumber,colFilters:_.colFilters,colOrder:_.colOrder,colSize:_.colSize,colSort:_.colSort,columns:_.columns,getState:_.getState,loadPage:_.loadPage,ready:_.ready,setState:_.setState,setStateFN:_.setStateFN,uniqueid:_.uniqueid,values:_.values}));return b.useEffect(()=>{A&&(async()=>{const h=d("_page_data"),w=d("pageSize"),I=d("keyField")??"id",N=[];for(const O in A){let F=-1;const P=String(typeof A?.[O]=="object"?A?.[O]?.[I]:typeof A?.[O]=="string"?A?.[O]:void 0);for(const M in h){for(const $ in h[M]){const B=Number(M)*w+Number($);if(String(h[M][$]?.[I])===P){F=B;break}}if(F>=0){N.push(F);break}}if(!(F>=0)&&typeof n=="function"){const M=await n(P);M&&N.push(M)}}return N})().then(h=>{let w=T.CompactSelection.empty();h.forEach(I=>{w=w.add(I)}),E("_gridSelectionRows",()=>w),E("_gridSelection",I=>({columns:I?.columns??T.CompactSelection.empty(),...I,rows:w}))})},[A]),b.useEffect(()=>{const _=d("onChange");if(_&&typeof _=="function"){const h=d("_page_data"),w=d("pageSize"),I=[];if(t)for(const O of t){let F;for(const P in h)for(const M in h[P]){const $=Number(P)*w+Number(M);if(!isNaN($)){if(Number(h[P][M]?._rownumber)===O+1){F=h[P][M];break}else if($===O+1){F=h[P][M];break}}}F!==void 0&&I.push(F)}const N=d("values");JSON.stringify(N)!==JSON.stringify(I)&&_(I)}},[JSON.stringify(t),d]),b.useEffect(()=>{S("renderColumns",u?.map(_=>({..._,hasMenu:_?.hasMenu??!0,icon:"sort"})))},[u]),b.useEffect(()=>{c&&(S("_gridSelection",{columns:T.CompactSelection.empty(),current:void 0,rows:T.CompactSelection.empty()}),S("_gridSelectionRows",T.CompactSelection.empty()),E("renderColumns",_=>_?.map(h=>({...h,icon:h.id&&c?.find(w=>w.id===h.id)?.direction?c?.find(w=>w.id===h.id)?.direction==="asc"?"sortup":"sortdown":h.defaultIcon??"sort"}))).then(()=>{m(0,"all"),d("_events")?.dispatchEvent?.(new CustomEvent("onColumnSorted",{detail:{cols:c}}))}))},[c]),b.useEffect(()=>{o&&JSON.stringify(a.current)!==JSON.stringify(o)&&(m(0,"all"),a.current=o,d("_events")?.dispatchEvent?.(new CustomEvent("onColumnFiltered",{detail:{filters:o}})))},[o]),b.useEffect(()=>{l&&E("renderColumns",_=>_?.map(h=>({...h,width:h.id&&l?.[h.id]?l?.[h.id]:h.width})))},[l]),b.useEffect(()=>{i&&E("renderColumns",_=>_?.sort((w,I)=>i[w.id]>i[I.id]?1:-1))},[i]),b.useEffect(()=>{e&&(r.current>0||(r.current=1,m(0)))},[g,m]),f.jsx(f.Fragment,{})});ke.displayName="Gridler-Computer";function qe(r,a,e=1){let t;if(a===void 0?(t=0,a=r):t=r,e===0)throw new Error("Step cannot be zero");const n=[];if(e>0)for(let o=t;o<a;o+=e)n.push(o);else for(let o=t;o>a;o+=e)n.push(o);return n}const Re=b.memo(()=>{const[r,a,e,t,n,o,i]=D(l=>[l.setState,l._glideref,l._visiblePages,l.pageSize,l.loadPage,l._loadingList,l.hasLocalData]);return b.useEffect(()=>{a&&r("mounted",!0)},[r]),b.useEffect(()=>{if(!a||i)return;const l=Math.max(0,Math.floor(e.y/t)),c=Math.floor((e.y+e.height)/t);for(const u of qe(l,c+1,1))n(u)},[n,t,e,a,o,i]),f.jsx(f.Fragment,{})});Re.displayName="Gridler-Pager";const He=r=>`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" fill="none">
|
|
34
|
+
`,ee=n=>m.jsx("img",{alt:n.alt??"Sprite Image",src:`data:image/svg+xml;utf8,${n.sprite({...n,sprite:void 0})}`}),{Provider:De,useStore:D}=ve.createSyncStore((n,a)=>({_events:new EventTarget,_loadingList:j.CompactSelection.empty(),_page_data:{},_visibleArea:{height:1e4,width:1e3,x:0,y:0},_visiblePages:{height:0,width:0,x:0,y:0},addError:(e,...t)=>{const o=a();console.log("Gridler Error",o.uniqueid,e,t),n(H.produce(r=>{r.errors=[...r.errors,e]}))},errors:[],get:()=>a(),getCellContent:e=>{const t=a(),[o,r]=e,i=t.getRowBuffer(r);return i!==void 0?t.toCell(i,o):{allowOverlay:!1,kind:j.GridCellKind.Loading}},getCellsForSelection:(e,t)=>async()=>{const o=a();await o.setStateFN("_visibleArea",i=>e);const r=[];for(let i=e.y;i<e.y+e.height;i++){const l=[];for(let c=e.x;c<e.x+e.width;c++)l.push(o.getCellContent([c,i]));r.push(l)}return r},getRowBuffer:e=>{const t=a();if(t.data&&t.data.length>0)return t.data[e]===void 0?{allowOverlay:!1,kind:j.GridCellKind.Loading}:t.data[e];const o=Math.max(0,Math.floor(e/t.pageSize)),r=t.pageSize*o,i=e-r;return t._page_data?.[o]?.[i]},getState:e=>a()[e],hasLocalData:!1,keyField:"id",loadPage:async(e,t)=>{const o=a(),r=e<0?0:e;if(!o._events.dispatchEvent(new CustomEvent("before_loadPage",{detail:{clearMode:t,page:e,state:o}})))return;const l=[],c=Object.keys(o.renderColumns??[1,2,3]).length,u=o.pageSize*r,d=o._page_data?.[r]?.length>0;if(t==="all"){o._active_requests?.forEach(f=>{f.controller?.abort?.()}),o.setState("_page_data",{}),o.setState("_active_requests",[]),o.loadPage(r);return}if(!o.useAPIQuery){console.warn("No useAPIQuery function defined, cannot load page",r);return}!d&&t!=="page"&&o.useAPIQuery?.(r).then(f=>{o.setStateFN("_page_data",g=>({...g,[r]:f}));for(let g=r;g<=u+o.pageSize;g++)for(let C=0;C<=c;C++)l.push({cell:[C,g]});o._glideref?.updateCells(l),o._events.dispatchEvent(new CustomEvent("loadPage",{detail:{clearMode:t,data:f,page:e,state:o}}))}).catch(f=>{console.warn("loadPage Error: ",r,f),o._events.dispatchEvent(new CustomEvent("loadPage_error",{detail:{clearMode:t,error:f,page:e,state:o}}))})},maxConcurrency:1,mounted:!1,onCellClicked:(e,t)=>{const o=a(),[r,i]=e;o.glideProps?.onCellClicked?.(e,t),o._events.dispatchEvent(new CustomEvent("onCellClicked",{detail:{cell:e,col:r,row:i,state:o}}))},onCellEdited:(e,t)=>{const o=a(),[,r]=e;o._events.dispatchEvent(new CustomEvent("onCellEdited",{detail:{cell:e,newVal:t,row:r,state:o}})),o.glideProps?.onCellEdited?.(e,t)},onColumnMoved:(e,t)=>{const o=a(),r=o.renderColumns?.[e],i=o.renderColumns?.[t];r?.disableMove||i?.disableMove||o.setStateFN("colOrder",l=>{const c=l??o.renderColumns?.map((u,d)=>[u.id,d]).reduce((u,[d,f])=>({...u,[d]:f}),{});return!r?.id||!i?.id?c:{...c,[r?.id]:t,[i?.id]:e}})},onColumnProposeMove:(e,t)=>{const o=a(),r=o.renderColumns?.[e],i=o.renderColumns?.[t];return!(r?.disableMove||i?.disableMove)},onColumnResize:(e,t,o,r)=>{const i=a(),l=i.renderColumns?.find(c=>c.id===e.id);l?.disableResize||l?.maxWidth&&t<l?.maxWidth||l&&i.setStateFN("colSize",c=>c&&l&&c[l.id]===t?c:{...c,[l.id]:t})},onContextClick:(e,t,o,r)=>{const i=a(),l=i.renderColumns?.[o??-1],c=e==="menu"?[{leftSection:m.jsx($.IconGrid4x4,{size:16}),title:i.title??"Grid"}]:l?[{leftSection:m.jsx($.IconGrid4x4,{size:16}),title:i.title??"Grid"},{items:[{label:"Sort Ascending",leftSection:m.jsx(ee,{sprite:se}),onClick:()=>{i.setStateFN("colSort",u=>{const d=[...u??[]],f=d.findIndex(C=>C.id===l.id),g="asc";if(f<0){const C={direction:g,id:l.id,order:d?.length};d.push(C)}else f>=0&&(d[f].direction=g);return d})}},{label:"Sort Descending",leftSection:m.jsx(ee,{sprite:ae}),onClick:()=>{i.setStateFN("colSort",u=>{const d=[...u??[]],f=d.findIndex(C=>C.id===l.id),g="desc";if(f<0){const C={direction:g,id:l.id,order:d?.length};d.push(C)}else f>=0&&(d[f].direction=g);return d})}},{label:`Filter ${l?.title??l?.id}`},{renderer:m.jsx(le,{column:l,storeState:a()})}],label:`Column Settings for ${l?.title??l?.id}`,leftSection:m.jsx($.IconGrid4x4,{size:16})}]:[];i.hideMenu?.(e),i.showMenu?.(e,{items:l?.getMenuItems?.(e,i,o&&r?i.getRowBuffer(r):void 0,l,c)??i.getMenuItems?.(e,i,o&&r?i.getRowBuffer(r):void 0,l,c)??c,x:t.clientX??t.bounds?.x,y:t.clientY??t.bounds?.y})},onHeaderClicked:(e,t)=>{const o=a();t.preventDefault();const r=o.renderColumns?.[e];r&&(r.disableSort||o.setStateFN("colSort",i=>{const l=[...i??[]],c=l.findIndex(u=>u.id===r.id);if(c<0){const u={direction:"asc",id:r.id,order:l?.length};l.push(u)}else c>=0&&l[c].direction==="asc"?l[c].direction="desc":c>=0&&l[c].direction==="desc"&&l.splice(c,1);return l}))},onHeaderMenuClick:(e,t)=>{const o=a(),r=o.renderColumns?.[e];if(!r)return;const i=[{label:`Sort ${r?.title??r?.id}`},{label:"Sort Ascending",leftSection:m.jsx(ee,{sprite:se}),onClick:()=>{o.setStateFN("colSort",c=>{const u=[...c??[]],d=u.findIndex(g=>g.id===r.id),f="asc";if(d<0){const g={direction:f,id:r.id,order:u?.length};u.push(g)}else d>=0&&(u[d].direction=f);return u})}},{label:"Sort Descending",leftSection:m.jsx(ee,{sprite:ae}),onClick:()=>{o.setStateFN("colSort",c=>{const u=[...c??[]],d=u.findIndex(g=>g.id===r.id),f="desc";if(d<0){const g={direction:f,id:r.id,order:u?.length};u.push(g)}else d>=0&&(u[d].direction=f);return u})}},{isDivider:!0}],l=[...r.disableSort?[]:i,{label:`Filter ${r?.title??r?.id}`},{renderer:m.jsx(le,{column:r,storeState:a()})},{isDivider:!0},{label:"Refresh",onClickAsync:async()=>{await o.reload?.()}}];o.hideMenu?.("header-menu"),o.showMenu?.("header-menu",{items:r?.getMenuItems?.("header-menu",o,void 0,r,l)??o.getMenuItems?.("header-menu",o,void 0,r,l),x:t.x,y:t.y})},onItemHovered:e=>{const t=a();if(t.setState("_activeTooltip",void 0),e.kind==="cell"){const o=t.renderColumns?.[e.location[0]];if(o?.tooltip&&typeof o?.tooltip=="string")t.setState("_activeTooltip",o?.tooltip);else if(o?.tooltip&&typeof o?.tooltip=="function"){const r=t.getRowBuffer(e.location[1]);t.setState("_activeTooltip",o?.tooltip(r,e.location[1],e.location[0]))}}},onVisibleRegionChanged:(e,t,o,r)=>{const i=a();i._scrollTimeout&&clearTimeout(i._scrollTimeout);const l=()=>{const c=a(),u=Math.max(0,Math.floor(e.y/c.pageSize)),d=Math.max(0,Math.floor(c._visiblePages.y/c.pageSize)),f=u-d;if(c.progressiveScroll&&f>1){const g=a(),C=(d+2)*g.pageSize*(g.rowHeight??22);g._glideref?.scrollTo(0,{amount:C,unit:"px"},"vertical");return}c.setState("_visiblePages",e)};i.setState("_scrollTimeout",setTimeout(()=>{l()},100))},pageSize:50,ready:!1,setState:(e,t)=>{n(H.produce(o=>{o[e]=t}))},setStateFN:(e,t)=>new Promise((r,i)=>{n(H.produce(l=>{if(typeof t=="function")l[e]=t(l[e]);else throw i(new Error(`Not a function ${t}`)),Error(`Not a function ${t}`)})),r()}),toCell:(e,t)=>{const o=a(),i=o.renderColumns?.[t],l=i?.id??i?.title??String(t);if(l==null||e===void 0||e===null)return i?.Cell?i?.Cell(e,t,l,void 0,o):o.RenderCell?o.RenderCell(e,t,l,void 0,o):{allowOverlay:!1,kind:j.GridCellKind.Loading};try{const c=String(l).includes(".")?Ne(l,e)??"":e?.[l];return i?.Cell?{kind:j.GridCellKind.Text,...i?.Cell(e,t,l,c,o)}:o.RenderCell?o.RenderCell(e,t,l,c,o):{allowOverlay:!0,data:c,displayData:String(c),kind:j.GridCellKind.Text}}catch{return o.RenderCell?o.RenderCell(e,t,l,e?.[l??""],o):{allowOverlay:!1,kind:j.GridCellKind.Loading,skeletonWidthVariability:50}}},total_rows:1e3,uniqueid:Se.getUUID()}),n=>{const[a,e]=n.useStore(o=>[o.setState,o.getState]),t=ce();return w.useEffect(()=>{const o=e("onMounted");if(typeof o=="function"&&o(e,a),a("mounted",!0),window&&window.document&&!window.document.getElementById("portal")){const i=window.document.createElement("div");i.id="portal",i.setAttribute("data-gridler-portal",n.uniqueid),window.document.body.appendChild(i)}return e("_events").dispatchEvent(new CustomEvent("mounted",{detail:{}})),()=>{const r=e("onUnMounted");a("mounted",!1),e("_events").dispatchEvent(new CustomEvent("unmounted",{detail:{}})),typeof r=="function"&&r()}},[a,e]),w.useEffect(()=>{const o=e("ready"),r=e("_glideref"),i=e("keyField")??"id",l=e("selectedRow")??n.selectedRow,c=e("askAPIRowNumber");let u=-1;if(l&&r&&o){const d=e("_page_data"),f=e("pageSize");for(const g in d){for(const C in d[g]){const b=Number(g)*f+Number(C);if(String(d[g][C]?.[i])===String(l)){u=d[g][C]?._rownumber>0?d[g][C]?._rownumber:b>0?b:-1;break}}if(u>0)break}u>0?(r.scrollTo(0,u),e("_events").dispatchEvent(new CustomEvent("selectedRowFound",{detail:{rowNumber:u,selectedRow:l}}))):typeof c=="function"&&c(String(l)).then(g=>{g>=0&&(r.scrollTo(0,g),e("_events").dispatchEvent(new CustomEvent("selectedRowFound",{detail:{rowNumber:g,selectedRow:l}})))}).catch(g=>{console.warn("Error in askAPIRowNumber",g)})}},[n.selectedRow]),e("_events").addEventListener("reload",o=>{e("reload")?.()}),{...n,colSort:n.defaultSort??e("colSort")??[],hideMenu:n.hideMenu??t.hide,showMenu:n.showMenu??t.show,total_rows:n.total_rows??e("total_rows")??0}});function ze(n){const[a,e,t,o,r,i]=D(u=>[u.setStateFN,u.setState,u.getState,u.addError,u.mounted,u.loadPage]),l=w.useCallback(async u=>{const d=t("colSort"),f=t("pageSize"),g=t("colFilters"),C=t("_active_requests");e("loadingData",!0);try{if(n&&n.url){const b=new Headers;if(b.set("x-limit",String(f??50)),b.set("x-offset",String((f??50)*u)),b.set("Authorization",`Token ${n.authtoken}`),d?.length&&d.length>0&&b.set("x-sort",d?.map(S=>`${S.id} ${S.direction}`).reduce((S,y)=>`${S},${y}`)),g?.length&&g.length>0&&g?.filter(S=>S.value?.length>0)?.forEach(S=>{S.value&&S.value!==""&&b.set(`x-searchop-${S.operator}-${S.id}`,`${S.value}`)}),n.filter&&n.filter!==""&&b.set("x-custom-sql-w-buildin-filter",n.filter),n.options&&n.options.length>0){const S=ie(n.options);for(const y in S)b.set(y,S[y])}const p=C?.findIndex(S=>S.page===u)??-1;if(C?.forEach(S=>{(S.page>=0&&S.page<u-2||u>=0&&S.page>u+2)&&S.controller?.abort?.()}),C&&p>=0&&C[p]){e("loadingData",!1);return}const v=new AbortController;await a("_active_requests",S=>[...S??[],{controller:v,page:u}]);const x=await fetch(`${n.url}?x-limit=${String(f??50)}&x-offset=${String((f??50)*u)}`,{headers:b,method:"GET",signal:v?.signal});if(x.ok){const S=x.headers.get("Content-Range")?.split("/");S?.[1]&&parseInt(S[1],10)>0&&e("total_rows",parseInt(S[1],10));const y=await x.json();return e("loadingData",!1),y??[]}o(`${x.status} ${x.statusText}`,"api",n.url),await a("_active_requests",S=>[...(S??[]).filter(y=>y.page!==u)])}}catch(b){o(`Error: ${b}`,"api",n.url)}return e("loadingData",!1),[]},[t,n.authtoken,n.url,n.filter,n.options,e,a,o]),c=w.useCallback(async u=>{const d=t("colFilters");if(n&&n.url){const f=new Headers;if(f.set("x-limit","10"),f.set("x-fetch-rownumber",String(u)),f.set("Authorization",`Token ${n.authtoken}`),d?.length&&d.length>0&&d?.filter(b=>b.value?.length>0)?.forEach(b=>{b.value&&b.value!==""&&f.set(`x-searchop-${b.operator}-${b.id}`,`${b.value}`)}),n.filter&&n.filter!==""&&f.set("x-custom-sql-w-buildin-filter",n.filter),n.options&&n.options.length>0){const b=ie(n.options);for(const p in b)f.set(p,b[p])}const g=new AbortController,C=await fetch(`${n.url}?x-fetch-rownumber=${u}}`,{headers:f,method:"GET",signal:g?.signal});if(C.ok){const b=await C.json();return b?.[0]?._rownumber??b?._rownumber??0}o(`${C.status} ${C.statusText}`,"api",n.url)}return[]},[n.url,n.authtoken,n.filter,n.options,t,o]);return w.useEffect(()=>{i(0,"all")},[JSON.stringify(n.options),n.filter,n.url,n.authtoken]),w.useEffect(()=>{e("useAPIQuery",l),e("askAPIRowNumber",c)},[n.url,n.authtoken,n.filter,n.options,r,e]),m.jsx(m.Fragment,{})}const ye=w.memo(ze);ye.displayName="Gridler-GlidlerAPIAdaptorForGoLangv2";function Ee(n){const[a,e,t,o]=D(i=>[i.getState,i.mounted,i.setState,i.reload]),r=w.useCallback((i,l,c,u,d)=>{if(i==="header-menu")return d||[];const f=[];f.push(...d);const g=a("_gridSelection")?.rows.toArray()??[],C=g.length>1;if(!c){const v=g[0];v!==void 0&&(c=l.getRowBuffer(v))}const b=typeof n.descriptionField=="string"?c?.[n.descriptionField]:typeof n.descriptionField=="function"&&c?n.descriptionField(c):void 0;i==="other"&&f.push({c:"blue",label:"Add",onClick:()=>{n.onRequestForm("insert",c)}}),i==="cell"&&c||i==="menu"&&c?(f.push({c:"teal",label:"Add",leftSection:m.jsx($.IconSquarePlus,{color:"teal",size:16}),onClick:()=>{n.onRequestForm("insert",c)}}),C?(f.push({c:"green",label:`Modify All Selected (${g.length})`,leftSection:m.jsx($.IconEdit,{color:"green",size:16}),onClick:()=>{n.onRequestForm("change",g.map(v=>l.getRowBuffer(v)))}}),f.push({c:"red",label:`Remove All Selected (${g.length})`,leftSection:m.jsx($.IconTrashX,{color:"maroon",size:16}),onClick:()=>{n.onRequestForm("delete",g.map(v=>l.getRowBuffer(v)))}})):(f.push({c:"green",label:`Modify${b&&n.showDescriptionInMenu?` (${b})`:""}`,leftSection:m.jsx($.IconEdit,{color:"green",size:16}),onClick:()=>{n.onRequestForm("change",c)}}),f.push({c:"red",label:`Remove${b&&n.showDescriptionInMenu?` (${b})`:""}`,leftSection:m.jsx($.IconTrashX,{color:"maroon",size:16}),onClick:()=>{n.onRequestForm("delete",c)}})),f.push({isDivider:!0})):(i==="cell"&&!c||i==="menu"&&!c)&&f.push({c:"red",label:"Nothing Selected",leftSection:m.jsx($.IconExclamationMark,{color:"yellow",size:16})}),f.push({c:"orange",label:"Refresh",leftSection:m.jsx($.IconRefresh,{color:"orange",size:16}),onClick:()=>{o?.()}});const p=n.getMenuItems?n.getMenuItems(i,l,c,u,f):f;return!f||f.length===0?d||[]:p},[n.onRequestForm,a]);return w.useEffect(()=>(e&&typeof t=="function"&&a("getMenuItems")!==r&&t("getMenuItems",r),()=>{}),[n.getMenuItems,e]),m.jsx(m.Fragment,{})}function Ge(n){const[a,e,t]=D(u=>[u.setState,u.getState,u.mounted]),{colFilters:o,colSort:r,columns:i}=D(u=>({colFilters:u.colFilters,colOrder:u.colOrder,colSize:u.colSize,colSort:u.colSort,columns:u.columns})),l=w.useRef({colFilters:o,colSort:r}),c=async u=>{const d=e("pageSize");return n.data&&Array.isArray(n.data)?(a("total_rows",n.data.length),n.data.slice(u*(d??50),(u+1)*(d??50))):[]};return w.useEffect(()=>{a("useAPIQuery",c)},[t,a]),w.useEffect(()=>{if(n.onColumnSort&&r!==l?.current?.colSort){const u=n.onColumnSort(r,i,n.data);a("total_rows",u.length),a("data",u),l.current.colSort=r}},[r,n.onColumnSort]),w.useEffect(()=>{if(n.onColumnFilter&&o!==l?.current?.colFilters){const u=n.onColumnFilter(o,i,n.data);a("total_rows",u.length),a("data",u),l.current.colFilters=o}},[o,n.onColumnFilter]),m.jsx(m.Fragment,{})}const ue=w.memo(Ge);ue.displayName="Gridler-GlidlerLocalDataAdaptor";function ke(){const{loadingData:n,onContextClick:a}=D(e=>({loadingData:e.loadingData,onContextClick:e.onContextClick}));return m.jsx(k.ActionIcon,{loading:n,mr:"xs",mt:"2px",onClick:e=>a("menu",e),variant:"subtle",children:m.jsx($.IconMenu2,{})})}function Le(){const{_activeTooltip:n,tooltipBarProps:a}=D(e=>({_activeTooltip:e._activeTooltip,tooltipBarProps:e.tooltipBarProps}));return m.jsx("div",{"data-tooltip-bar":!0,style:{minHeight:"24px"},...a,children:n})}const Re=w.memo(()=>{const n=w.useRef(0),a=w.useRef(null),{_glideref:e,_gridSelectionRows:t,askAPIRowNumber:o,colFilters:r,colOrder:i,colSize:l,colSort:c,columns:u,getState:d,loadPage:f,ready:g,setState:C,setStateFN:b,values:p}=D(v=>({_glideref:v._glideref,_gridSelectionRows:v._gridSelectionRows,askAPIRowNumber:v.askAPIRowNumber,colFilters:v.colFilters,colOrder:v.colOrder,colSize:v.colSize,colSort:v.colSort,columns:v.columns,getState:v.getState,loadPage:v.loadPage,ready:v.ready,setState:v.setState,setStateFN:v.setStateFN,uniqueid:v.uniqueid,values:v.values}));return w.useEffect(()=>{p&&(async()=>{const x=d("_page_data"),S=d("pageSize"),y=d("keyField")??"id",N=[];for(const O in p){let P=-1;const A=String(typeof p?.[O]=="object"?p?.[O]?.[y]:typeof p?.[O]=="string"?p?.[O]:void 0);for(const I in x){for(const T in x[I]){const B=Number(I)*S+Number(T);if(String(x[I][T]?.[y])===A){P=B;break}}if(P>=0){N.push(P);break}}if(!(P>=0)&&typeof o=="function"){const I=await o(A);I&&N.push(I)}}return N})().then(x=>{let S=j.CompactSelection.empty();x.forEach(y=>{S=S.add(y)}),b("_gridSelectionRows",()=>S),b("_gridSelection",y=>({columns:y?.columns??j.CompactSelection.empty(),...y,rows:S}))})},[p]),w.useEffect(()=>{const v=d("onChange");if(v&&typeof v=="function"){const x=d("_page_data"),S=d("pageSize"),y=[];if(t)for(const O of t){let P;for(const A in x)for(const I in x[A]){const T=Number(A)*S+Number(I);if(!isNaN(T)){if(Number(x[A][I]?._rownumber)===O+1){P=x[A][I];break}else if(T===O+1){P=x[A][I];break}}}P!==void 0&&y.push(P)}const N=d("values");JSON.stringify(N)!==JSON.stringify(y)&&v(y)}},[JSON.stringify(t),d]),w.useEffect(()=>{C("renderColumns",u?.map(v=>({...v,hasMenu:v?.hasMenu??!0,icon:"sort"})))},[u]),w.useEffect(()=>{c&&(C("_gridSelection",{columns:j.CompactSelection.empty(),current:void 0,rows:j.CompactSelection.empty()}),C("_gridSelectionRows",j.CompactSelection.empty()),b("renderColumns",v=>v?.map(x=>({...x,icon:x.id&&c?.find(S=>S.id===x.id)?.direction?c?.find(S=>S.id===x.id)?.direction==="asc"?"sortup":"sortdown":x.defaultIcon??"sort"}))).then(()=>{f(0,"all"),d("_events")?.dispatchEvent?.(new CustomEvent("onColumnSorted",{detail:{cols:c}}))}))},[c]),w.useEffect(()=>{r&&JSON.stringify(a.current)!==JSON.stringify(r)&&(f(0,"all"),a.current=r,d("_events")?.dispatchEvent?.(new CustomEvent("onColumnFiltered",{detail:{filters:r}})))},[r]),w.useEffect(()=>{l&&b("renderColumns",v=>v?.map(x=>({...x,width:x.id&&l?.[x.id]?l?.[x.id]:x.width})))},[l]),w.useEffect(()=>{i&&b("renderColumns",v=>v?.sort((S,y)=>i[S.id]>i[y.id]?1:-1))},[i]),w.useEffect(()=>{e&&(n.current>0||(n.current=1,f(0)))},[g,f]),w.useEffect(()=>{const v=d("_events"),x=()=>{if(d("selectFirstRowOnMount")){const y=d("selectedRow");if(y&&y>=0)return;const N=d("keyField")??"id",P=d("_page_data")?.[0]?.[0],A=P?.[N];if(A&&A>0){const I=[P,...d("values")??[]],T=d("onChange");console.log("Selecting first row:",A,P,I),T?T(I):C("values",I),C("selectedRow",A)}}};return v?.addEventListener("loadPage",x),()=>{v?.removeEventListener("loadPage",x)}},[]),m.jsx(m.Fragment,{})});Re.displayName="Gridler-Computer";function qe(n,a,e=1){let t;if(a===void 0?(t=0,a=n):t=n,e===0)throw new Error("Step cannot be zero");const o=[];if(e>0)for(let r=t;r<a;r+=e)o.push(r);else for(let r=t;r>a;r+=e)o.push(r);return o}const pe=w.memo(()=>{const[n,a,e,t,o,r,i]=D(l=>[l.setState,l._glideref,l._visiblePages,l.pageSize,l.loadPage,l._loadingList,l.hasLocalData]);return w.useEffect(()=>{a&&n("mounted",!0)},[n]),w.useEffect(()=>{if(!a||i)return;const l=Math.max(0,Math.floor(e.y/t)),c=Math.floor((e.y+e.height)/t);for(const u of qe(l,c+1,1))o(u)},[o,t,e,a,r,i]),m.jsx(m.Fragment,{})});pe.displayName="Gridler-Pager";const He=n=>`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" fill="none">
|
|
35
35
|
<path
|
|
36
|
-
fill="${
|
|
36
|
+
fill="${n.fgColor??"currentColor"}"
|
|
37
37
|
d="M2.22 9.967L7.97 4.22l.085-.074l.058-.038l.072-.039l.105-.04l.105-.022l.052-.005L8.5 4l.057.002l.092.013l.107.03l.085.037l.054.03l.063.044l.072.064l5.75 5.747a.75.75 0 0 1-.976 1.133l-.084-.072L9.25 6.56v16.69a.75.75 0 0 1-1.493.102l-.007-.102V6.56l-4.47 4.468a.75.75 0 0 1-.976.072l-.084-.072a.75.75 0 0 1-.073-.977zM19.5 4a.75.75 0 0 1 .743.648l.007.102v16.687l4.47-4.467l.084-.073a.75.75 0 0 1 1.049 1.05l-.073.083l-5.728 5.727a.75.75 0 0 1-1.031.07l-.073-.07l-5.728-5.727l-.073-.084a.75.75 0 0 1-.007-.882l.08-.094l.084-.073a.75.75 0 0 1 .882-.007l.094.08l4.47 4.469V4.75l.007-.102A.75.75 0 0 1 19.5 4"
|
|
38
38
|
></path>
|
|
39
|
-
</svg>`,Be="_container_1nbyf_1",We={container:Be},Ve=
|
|
39
|
+
</svg>`,Be="_container_1nbyf_1",We={container:Be},Ve=n=>a=>a%2===0?void 0:{bgCell:n==="dark"?"#303030":"#e1effc"},Ye=()=>{const n=k.useMantineTheme(),{colorScheme:a}=k.useMantineColorScheme(),{enableOddEvenRowColor:e,focused:t}=D(f=>({enableOddEvenRowColor:f.enableOddEvenRowColor,focused:f.focused})),o={auto:t?k.lighten(n.colors.blue[4],.9):"#ffffff",dark:t?k.darken("#bacfe0",.2):n.colors.dark[7],light:t?k.lighten(n.colors.blue[4],.8):"#ffffff"}[a],r={accentColor:"none",accentLight:n.colors.blue[9],baseFontStyle:"13px",bgBubble:"#212121",bgBubbleSelected:"#000000",bgCell:o,bgCellMedium:"#202027",bgHeader:"#2A2A2A",bgHeaderHasFocus:"#181818",bgHeaderHovered:"#404040",bgIconHeader:"#b8b8b8",bgSearchResult:"#423c24",borderColor:"#eee1",drilldownBorder:"rgba(225,225,225,0.4)",fgIconHeader:"#000000",fontFamily:"Inter, Roboto, -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Ubuntu, noto, arial, sans-serif",headerFontStyle:"500 13px",linkColor:n.colors.blue[4],textBubble:"#ffffff",textDark:"#dedede",textGroupHeader:"#dedede",textHeader:"#a1a1a1",textHeaderSelected:"#000000",textLight:"#a0a0a0",textMedium:"#b8b8b8"},l=a==="dark"?r:{bgCell:o,textGroupHeader:"#2c5491"},[c,u]=w.useState(l);return w.useEffect(()=>{u(l)},[a,t]),{getRowThemeOverride:f=>e?Ve(a)(f):void 0,gridTheme:c}},Je=()=>{const n=w.useRef(null),a=w.useRef(!1),{height:e,ref:t,width:o}=te.useElementSize({box:"content-box"}),{_gridSelection:r,focused:i,getCellContent:l,getCellsForSelection:c,getState:u,glideProps:d,hasLocalData:f,headerHeight:g,heightProp:C,mounted:b,onCellClicked:p,onCellEdited:v,onColumnMoved:x,onColumnProposeMove:S,onColumnResize:y,onContextClick:N,onHeaderClicked:O,onHeaderMenuClick:P,onItemHovered:A,onVisibleRegionChanged:I,renderColumns:T,rowHeight:B,sections:z,selectMode:W,setState:L,setStateFN:ne,total_rows:V,widthProp:X}=D(h=>({_gridSelection:h._gridSelection,focused:h.focused,getCellContent:h.getCellContent,getCellsForSelection:h.getCellsForSelection,getState:h.getState,glideProps:h.glideProps,hasLocalData:h.hasLocalData,headerHeight:h.headerHeight,heightProp:h.height,mounted:h.mounted,onCellClicked:h.onCellClicked,onCellEdited:h.onCellEdited,onColumnMoved:h.onColumnMoved,onColumnProposeMove:h.onColumnProposeMove,onColumnResize:h.onColumnResize,onContextClick:h.onContextClick,onHeaderClicked:h.onHeaderClicked,onHeaderMenuClick:h.onHeaderMenuClick,onItemHovered:h.onItemHovered,onVisibleRegionChanged:h.onVisibleRegionChanged,renderColumns:h.renderColumns,rowHeight:h.rowHeight,sections:h.sections,selectMode:h.selectMode,setState:h.setState,setStateFN:h.setStateFN,total_rows:h.total_rows,widthProp:h.width})),Q=te.useMergedRef(n,h=>{ne("_glideref",()=>h??void 0);const E=u("ready"),s=!!(h&&b);E!==s&&L("ready",s)}),Y=Ye();return m.jsxs(k.Stack,{align:"stretch",gap:0,h:C??"100%",justify:"stretch",w:X??"100%",children:[z?.top,m.jsxs("div",{className:We.container,"data-focused":i,onContextMenu:h=>{h.preventDefault(),a.current||(a.current=!0,N("other",h),setTimeout(()=>{a.current=!1},100))},ref:t,style:{display:"flex",height:"100%",minHeight:"64px",minWidth:"32px",width:"100%"},children:[z?.left,o&&o>0&&e&&e>0&&m.jsx(j.DataEditor,{cellActivationBehavior:"double-click",columns:T??[],columnSelect:"none",drawFocusRing:!0,height:e??400,overscrollX:16,overscrollY:32,rangeSelect:"multi-rect",rightElementProps:{fill:!1,sticky:!0},rowMarkers:{checkboxStyle:"square",kind:"both"},rowSelect:"multi",rowSelectionMode:"auto",spanRangeBehavior:"default",...d,getCellContent:l,getCellsForSelection:c,getRowThemeOverride:Y.getRowThemeOverride,gridSelection:r,headerHeight:g??32,headerIcons:{sort:He,sortdown:ae,sortup:se},onCellClicked:p,onCellContextMenu:(h,E)=>{E.preventDefault(),d?.onCellContextMenu?.(h,E),a.current||(a.current=!0,N("cell",E,h[0],h[1]),setTimeout(()=>{a.current=!1},100))},onCellEdited:v,onColumnMoved:x,onColumnProposeMove:S,onColumnResize:y,onGridSelectionChange:h=>{let E=j.CompactSelection.empty();const s=u("_gridSelection");for(const _ of h.rows)E=E.hasIndex(_)?E:E.add(_);if(W==="row"&&h.current?.range)for(let _=h.current.range.y;_<h.current.range.y+h.current.range.height;_++)E=E.hasIndex(_)?E:E.add(_);(JSON.stringify(s?.columns)!==JSON.stringify(h.columns)||JSON.stringify(s?.rows)!==JSON.stringify(E)||JSON.stringify(s?.current)!==JSON.stringify(h.current))&&(L("_gridSelection",{...h,rows:E}),JSON.stringify(s?.rows)!==JSON.stringify(E)&&L("_gridSelectionRows",E))},onHeaderClicked:O,onHeaderContextMenu:(h,E)=>{E.preventDefault(),a.current||(a.current=!0,N("header",E,h),setTimeout(()=>{a.current=!1},100))},onHeaderMenuClick:P,onItemHovered:A,onVisibleRegionChanged:I,ref:Q,rightElement:z?.rightElementDisabled?void 0:m.jsxs(k.Group,{children:[z?.rightElementStart,m.jsx(ke,{}),z?.rightElementEnd]}),rowHeight:B??22,rows:V??0,theme:Y.gridTheme,width:o??200}),m.jsx(Re,{}),!f&&m.jsx(pe,{}),z?.right]}),m.jsxs("div",{style:{flexGrow:0},children:[m.jsx(Le,{}),z?.bottom]})]})},de=n=>m.jsx(Ce,{children:m.jsxs(De,{...n,persist:{name:`Gridler_${n.uniqueid}`,partialize:a=>({colOrder:a.colOrder,colSize:a.colSize}),version:1},children:[m.jsx(Je,{}),n.children]})});de.FormAdaptor=Ee;de.LocalDataAdaptor=ue;exports.ColumnFilterInput=we;exports.ColumnFilterInputOperator=xe;exports.ColumnFilterSet=le;exports.FilterOperators=be;exports.GlidlerAPIAdaptorForGoLangv2=ye;exports.GlidlerFormAdaptor=Ee;exports.GlidlerLocalDataAdaptor=ue;exports.GoAPIHeaders=ie;exports.Gridler=de;exports.GridlerRightMenuIcon=ke;exports.MantineBetterMenusProvider=Ce;exports.useGridlerStore=D;exports.useMantineBetterMenus=ce;
|
|
40
40
|
//# sourceMappingURL=lib.cjs.js.map
|