@warkypublic/oranguru 0.0.4 → 0.0.6
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 +2 -1
- package/dist/lib.es.js +733 -710
- package/dist/lib.es.js.map +1 -1
- package/dist/oranguru.css +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 w=require("react"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const w=require("react"),T=require("@glideapps/glide-data-grid"),$=require("@tabler/icons-react"),me=require("@warkypublic/artemis-kit"),ge=require("@warkypublic/zustandsyncstore"),q=require("immer"),p=require("@mantine/core"),ee=require("@mantine/hooks");var K={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 ue;function Ee(){if(ue)return J;ue=1;var
|
|
9
|
+
*/var ue;function Ee(){if(ue)return J;ue=1;var n=Symbol.for("react.transitional.element"),s=Symbol.for("react.fragment");function e(o,t,r){var i=null;if(r!==void 0&&(i=""+r),t.key!==void 0&&(i=""+t.key),"key"in t){r={};for(var l in t)l!=="key"&&(r[l]=t[l])}else r=t;return t=r.ref,{$$typeof:n,type:o,key:i,ref:t!==void 0?t:null,props:r}}return J.Fragment=s,J.jsx=e,J.jsxs=e,J}var W={};/**
|
|
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 de;function Re(){return de||(de=1,process.env.NODE_ENV!=="production"&&(function(){function
|
|
17
|
+
*/var de;function Re(){return de||(de=1,process.env.NODE_ENV!=="production"&&(function(){function n(a){if(a==null)return null;if(typeof a=="function")return a.$$typeof===z?null:a.displayName||a.name||null;if(typeof a=="string")return a;switch(a){case b:return"Fragment";case _:return"Profiler";case h:return"StrictMode";case A:return"Suspense";case F:return"SuspenseList";case H:return"Activity"}if(typeof a=="object")switch(typeof a.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),a.$$typeof){case M:return"Portal";case j:return a.displayName||"Context";case I:return(a._context.displayName||"Context")+".Consumer";case N:var C=a.render;return a=a.displayName,a||(a=C.displayName||C.name||"",a=a!==""?"ForwardRef("+a+")":"ForwardRef"),a;case P:return C=a.displayName||null,C!==null?C:n(a.type)||"Memo";case O:C=a._payload,a=a._init;try{return n(a(C))}catch{}}return null}function s(a){return""+a}function e(a){try{s(a);var C=!1}catch{C=!0}if(C){C=console;var y=C.error,R=typeof Symbol=="function"&&Symbol.toStringTag&&a[Symbol.toStringTag]||a.constructor.name||"Object";return y.call(C,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",R),s(a)}}function o(a){if(a===b)return"<>";if(typeof a=="object"&&a!==null&&a.$$typeof===O)return"<...>";try{var C=n(a);return C?"<"+C+">":"<...>"}catch{return"<...>"}}function t(){var a=B.A;return a===null?null:a.getOwner()}function r(){return Error("react-stack-top-frame")}function i(a){if(L.call(a,"key")){var C=Object.getOwnPropertyDescriptor(a,"key").get;if(C&&C.isReactWarning)return!1}return a.key!==void 0}function l(a,C){function y(){U||(U=!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)",C))}y.isReactWarning=!0,Object.defineProperty(a,"key",{get:y,configurable:!0})}function c(){var a=n(this.type);return X[a]||(X[a]=!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.")),a=this.props.ref,a!==void 0?a:null}function g(a,C,y,R,Q,ne){var k=y.ref;return a={$$typeof:E,type:a,key:C,props:y,_owner:R},(k!==void 0?k:null)!==null?Object.defineProperty(a,"ref",{enumerable:!1,get:c}):Object.defineProperty(a,"ref",{enumerable:!1,value:null}),a._store={},Object.defineProperty(a._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(a,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(a,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:Q}),Object.defineProperty(a,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:ne}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a}function u(a,C,y,R,Q,ne){var k=C.children;if(k!==void 0)if(R)if(te(k)){for(R=0;R<k.length;R++)d(k[R]);Object.freeze&&Object.freeze(k)}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 d(k);if(L.call(C,"key")){k=n(a);var G=Object.keys(C).filter(function(ye){return ye!=="key"});R=0<G.length?"{key: someKey, "+G.join(": ..., ")+": ...}":"{key: someKey}",x[k+R]||(G=0<G.length?"{"+G.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} />`,k,
|
|
22
|
+
<%s key={someKey} {...props} />`,R,k,G,k),x[k+R]=!0)}if(k=null,y!==void 0&&(e(y),k=""+y),i(C)&&(e(C.key),k=""+C.key),"key"in C){y={};for(var re in C)re!=="key"&&(y[re]=C[re])}else y=C;return k&&l(y,typeof a=="function"?a.displayName||a.name||"Unknown":a),g(a,k,y,t(),Q,ne)}function d(a){m(a)?a._store&&(a._store.validated=1):typeof a=="object"&&a!==null&&a.$$typeof===O&&(a._payload.status==="fulfilled"?m(a._payload.value)&&a._payload.value._store&&(a._payload.value._store.validated=1):a._store&&(a._store.validated=1))}function m(a){return typeof a=="object"&&a!==null&&a.$$typeof===E}var v=w,E=Symbol.for("react.transitional.element"),M=Symbol.for("react.portal"),b=Symbol.for("react.fragment"),h=Symbol.for("react.strict_mode"),_=Symbol.for("react.profiler"),I=Symbol.for("react.consumer"),j=Symbol.for("react.context"),N=Symbol.for("react.forward_ref"),A=Symbol.for("react.suspense"),F=Symbol.for("react.suspense_list"),P=Symbol.for("react.memo"),O=Symbol.for("react.lazy"),H=Symbol.for("react.activity"),z=Symbol.for("react.client.reference"),B=v.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,L=Object.prototype.hasOwnProperty,te=Array.isArray,V=console.createTask?console.createTask:function(){return null};v={react_stack_bottom_frame:function(a){return a()}};var U,X={},Y=v.react_stack_bottom_frame.bind(v,r)(),S=V(o(r)),x={};W.Fragment=b,W.jsx=function(a,C,y){var R=1e4>B.recentlyCreatedOwnerStacks++;return u(a,C,y,!1,R?Error("react-stack-top-frame"):Y,R?V(o(a)):S)},W.jsxs=function(a,C,y){var R=1e4>B.recentlyCreatedOwnerStacks++;return u(a,C,y,!0,R?Error("react-stack-top-frame"):Y,R?V(o(a)):S)}})()),W}var fe;function ke(){return fe||(fe=1,process.env.NODE_ENV==="production"?K.exports=Ee():K.exports=Re()),K.exports}var f=ke();function Ie(n,s){if(!n||!s||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((o,t)=>{if(o!=null&&typeof o=="object")return o[t]},s)}const{Provider:Me,useStore:ae}=ge.createSyncStore((n,s)=>({hide:e=>{s().setInstanceState(e,"visible",!1)},menus:[],setInstanceState:(e,o,t)=>{n(q.produce(r=>{const i=r?.menus?.findIndex(l=>l.id===e);i>=0&&(r.menus[i][o]=t)}))},setState:(e,o)=>{n(q.produce(t=>{t[e]=o}))},show:(e,o)=>{const t=s(),r=t.menus.findIndex(l=>l.id===e),i=t.menus[r]?{...t.menus[r]}:{};Object.assign(i,o),i.id=i.id??e,i.visible=!(i.visible??!1),r<0?t.setState("menus",[...t.menus,i]):n(q.produce(l=>{l.menus||(l.menus=[]),l.menus[r]={...l.menus[r],...i}}))}}),n=>({providerID:n.providerID??`MenuStore-${me.getUUID()}`}));function Pe(){const{menus:n,providerID:s,setInstanceState:e,width:o}=ae(t=>({menus:t.menus,providerID:t.providerID,setInstanceState:t.setInstanceState,setState:t.setState,width:t.width}));return f.jsx(p.Portal,{id:`bmm_portal_${s}`,children:w.Children.toArray(n?.map((t,r)=>w.createElement(p.Menu,{shadow:"md",width:o??"300",...t.menuProps,key:`bmm_menu_${s}_${r}`,onClose:()=>{e(t.id,"visible",!1),t.menuProps?.onClose?.()},opened:t.visible},f.jsx(p.Menu.Target,{children:f.jsx("div",{id:`bmm_${s}_${r}_target`,style:{left:t.x,position:"fixed",top:t.y,visibility:"hidden"}})}),f.jsx(p.Menu.Dropdown,{children:t.renderer?t.renderer:w.Children.toArray(t.items?.map((i,l)=>f.jsx(he,{...i},`bmm_${s}_${r}_item${l}`)))}))))},`bmm_portal_${s}`)}const he=({children:n,label:s,...e})=>{const[o,t]=w.useState(!1);return typeof e.renderer=="function"?e.renderer({...e,loading:o,renderer:void 0,setLoading:t}):typeof e.renderer=="object"?e.renderer:e.isDivider?f.jsx(p.Menu.Divider,{}):e.items&&e.items.length>0?f.jsxs(p.Menu.Sub,{children:[f.jsx(p.Menu.Sub.Target,{children:f.jsx(p.Menu.Sub.Item,{...e,disabled:o,onClick:r=>{e.onClick?.(r),e.onClickAsync&&(t(!0),e.onClickAsync().finally(()=>t(!1)))},styles:{itemLabel:{overflow:"auto",wordWrap:"break-word"},...e.styles},children:n??s})}),f.jsx(p.Menu.Sub.Dropdown,{children:w.Children.toArray(e.items.map((r,i)=>f.jsx(he,{...r},`bmm_subitem_${r?.id??""}${i}`)))})]}):!e.onClick&&!e.onClickAsync?f.jsxs(p.Menu.Label,{...e,children:[" ",n??s]}):f.jsx(p.Menu.Item,{...e,disabled:o,onClick:r=>{e.onClick?.(r),e.onClickAsync&&(t(!0),e.onClickAsync().finally(()=>t(!1)))},styles:{itemLabel:{overflow:"auto",wordWrap:"break-word"},...e.styles},children:n??s})};function Se(n){return f.jsxs(Me,{...n,children:[f.jsx(Pe,{}),n.children]})}const ve=[{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"}],be=n=>{const s=n.storeState?.colFilters?.findIndex(i=>i.id===n.column.id)??-1,e=n.storeState?.colFilters?.[s]??{id:n.column.id,value:""},[o,t]=w.useState(e?.value??""),[r]=ee.useDebouncedValue(o,900);return w.useEffect(()=>{n.storeState.setStateFN("colFilters",i=>{const l=i?.findIndex(g=>g.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]),f.jsx(p.TextInput,{onChange:i=>t(i.target.value),rightSection:f.jsx(p.ActionIcon,{color:"gray",onClick:()=>t(""),variant:"filled",children:f.jsx($.IconX,{color:"red"})}),value:o??e?.value})},Ce=n=>{const s=n.storeState?.colFilters?.findIndex(i=>i.id===n.column.id)??-1,e=n.storeState?.colFilters?.[s]??{id:n.column.id,operator:"contains"},[o,t]=w.useState(e?.operator??"contains"),[r]=ee.useDebouncedValue(o,900);return w.useEffect(()=>{n.storeState.setStateFN("colFilters",i=>{const l=i?.findIndex(g=>g.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]),f.jsx(p.Select,{comboboxProps:{withinPortal:!1},data:ve,maxDropdownHeight:150,onChange:i=>t(i),placeholder:"Operator",searchable:!0,value:o??e?.operator,withScrollArea:!0})},oe=n=>f.jsxs(p.Stack,{onClick:s=>s.stopPropagation(),children:[f.jsx(Ce,{...n}),f.jsx(be,{...n})]}),ie=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
|
+
`,le=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
|
-
`,K=r=>f.jsx("img",{alt:r.alt??"Sprite Image",src:`data:image/svg+xml;utf8,${r.sprite({...r,sprite:void 0})}`}),{Provider:Pe,useStore:z}=ge.createSyncStore((r,s)=>({_events:new EventTarget,_loadingList:A.CompactSelection.empty(),_page_data:{},_visibleArea:{height:1e4,width:1e3,x:0,y:0},_visiblePages:{height:0,width:0,x:0,y:0},addError:(e,...o)=>{const t=s();console.log("Gridler Error",t.uniqueid,e,o),r(H.produce(n=>{n.errors=[...n.errors,e]}))},errors:[],get:()=>s(),getCellContent:e=>{const o=s(),[t,n]=e,i=o.getRowBuffer(n);return i!==void 0?o.toCell(i,t):{allowOverlay:!1,kind:A.GridCellKind.Loading}},getCellsForSelection:(e,o)=>async()=>{const t=s();await t.setStateFN("_visibleArea",i=>e);const n=[];for(let i=e.y;i<e.y+e.height;i++){const a=[];for(let c=e.x;c<e.x+e.width;c++)a.push(t.getCellContent([c,i]));n.push(a)}return n},getRowBuffer:e=>{const o=s();if(o.data&&o.data.length>0)return o.data[e]===void 0?{allowOverlay:!1,kind:A.GridCellKind.Loading}:o.data[e];const t=Math.max(0,Math.floor(e/o.pageSize)),n=o.pageSize*t,i=e-n;return o._page_data?.[t]?.[i]},getState:e=>s()[e],hasLocalData:!1,keyField:"id",loadPage:async(e,o)=>{const t=s(),n=e<0?0:e;if(!t._events.dispatchEvent(new CustomEvent("before_loadPage",{detail:{clearMode:o,page:e,state:t}})))return;const a=[],c=Object.keys(t.renderColumns??[1,2,3]).length,g=t.pageSize*n,u=t._page_data?.[n]?.length>0;if(o==="all"){t._active_requests?.forEach(d=>{d.controller?.abort?.()}),t.setState("_page_data",{}),t.setState("_active_requests",[]),t.loadPage(n);return}if(!t.useAPIQuery){console.warn("No useAPIQuery function defined, cannot load page",n);return}!u&&o!=="page"&&t.useAPIQuery?.(n).then(d=>{t.setStateFN("_page_data",m=>({...m,[n]:d}));for(let m=n;m<=g+t.pageSize;m++)for(let S=0;S<=c;S++)a.push({cell:[S,m]});t._glideref?.updateCells(a),t._events.dispatchEvent(new CustomEvent("loadPage",{detail:{clearMode:o,data:d,page:e,state:t}}))}).catch(d=>{console.warn("loadPage Error: ",n,d),t._events.dispatchEvent(new CustomEvent("loadPage_error",{detail:{clearMode:o,error:d,page:e,state:t}}))})},maxConcurrency:1,mounted:!1,onCellEdited:(e,o)=>{const t=s(),[,n]=e;t._events.dispatchEvent(new CustomEvent("onCellEdited",{detail:{cell:e,newVal:o,row:n,state:t}}))},onColumnMoved:(e,o)=>{const t=s(),n=t.renderColumns?.[e],i=t.renderColumns?.[o];n?.disableMove||i?.disableMove||t.setStateFN("colOrder",a=>{const c=a??t.renderColumns?.map((g,u)=>[g.id,u]).reduce((g,[u,d])=>({...g,[u]:d}),{});return!n?.id||!i?.id?c:{...c,[n?.id]:o,[i?.id]:e}})},onColumnProposeMove:(e,o)=>{const t=s(),n=t.renderColumns?.[e],i=t.renderColumns?.[o];return!(n?.disableMove||i?.disableMove)},onColumnResize:(e,o,t,n)=>{const i=s(),a=i.renderColumns?.find(c=>c.id===e.id);a?.disableResize||a?.maxWidth&&o<a?.maxWidth||a&&i.setStateFN("colSize",c=>c&&a&&c[a.id]===o?c:{...c,[a.id]:o})},onContextClick:(e,o,t,n)=>{const i=s(),a=i.renderColumns?.[t??-1],c=e==="menu"?[{label:"Side menu"}]:a?[{items:[{label:"Sort Ascending",leftSection:f.jsx(K,{sprite:ae}),onClick:()=>{i.setStateFN("colSort",g=>{const u=[...g??[]],d=u.findIndex(S=>S.id===a.id),m="asc";if(d<0){const S={direction:m,id:a.id,order:u?.length};u.push(S)}else d>=0&&(u[d].direction=m);return u})}},{label:"Sort Descending",leftSection:f.jsx(K,{sprite:ie}),onClick:()=>{i.setStateFN("colSort",g=>{const u=[...g??[]],d=u.findIndex(S=>S.id===a.id),m="desc";if(d<0){const S={direction:m,id:a.id,order:u?.length};u.push(S)}else d>=0&&(u[d].direction=m);return u})}},{label:`Filter ${a?.title??a?.id}`},{renderer:f.jsx(oe,{column:a,storeState:s()})}],label:`Column Settings for ${a?.title??a?.id}`,leftSection:f.jsx(D.IconGrid4x4,{size:16})}]:[];i.hideMenu?.(e),i.showMenu?.(e,{items:a?.getMenuItems?.(e,i,t&&n?i.getRowBuffer(n):void 0,a,c)??i.getMenuItems?.(e,i,t&&n?i.getRowBuffer(n):void 0,a,c)??c,x:o.clientX??o.bounds?.x,y:o.clientY??o.bounds?.y})},onHeaderClicked:(e,o)=>{const t=s();o.preventDefault();const n=t.renderColumns?.[e];n&&(n.disableSort||t.setStateFN("colSort",i=>{const a=[...i??[]],c=a.findIndex(g=>g.id===n.id);if(c<0){const g={direction:"asc",id:n.id,order:a?.length};a.push(g)}else c>=0&&a[c].direction==="asc"?a[c].direction="desc":c>=0&&a[c].direction==="desc"&&a.splice(c,1);return a}))},onHeaderMenuClick:(e,o)=>{const t=s(),n=t.renderColumns?.[e];if(!n)return;const i=[{label:`Sort ${n?.title??n?.id}`},{label:"Sort Ascending",leftSection:f.jsx(K,{sprite:ae}),onClick:()=>{t.setStateFN("colSort",c=>{const g=[...c??[]],u=g.findIndex(m=>m.id===n.id),d="asc";if(u<0){const m={direction:d,id:n.id,order:g?.length};g.push(m)}else u>=0&&(g[u].direction=d);return g})}},{label:"Sort Descending",leftSection:f.jsx(K,{sprite:ie}),onClick:()=>{t.setStateFN("colSort",c=>{const g=[...c??[]],u=g.findIndex(m=>m.id===n.id),d="desc";if(u<0){const m={direction:d,id:n.id,order:g?.length};g.push(m)}else u>=0&&(g[u].direction=d);return g})}},{isDivider:!0}],a=[...n.disableSort?[]:i,{label:`Filter ${n?.title??n?.id}`},{renderer:f.jsx(oe,{column:n,storeState:s()})},{isDivider:!0},{label:"Refresh",onClickAsync:async()=>{await t.reload?.()}}];t.hideMenu?.("header-menu"),t.showMenu?.("header-menu",{items:n?.getMenuItems?.("header-menu",t,void 0,n,a)??t.getMenuItems?.("header-menu",t,void 0,n,a),x:o.x,y:o.y})},onItemHovered:e=>{const o=s();if(o.setState("_activeTooltip",void 0),e.kind==="cell"){const t=o.renderColumns?.[e.location[0]];if(t?.tooltip&&typeof t?.tooltip=="string")o.setState("_activeTooltip",t?.tooltip);else if(t?.tooltip&&typeof t?.tooltip=="function"){const n=o.getRowBuffer(e.location[1]);o.setState("_activeTooltip",t?.tooltip(n,e.location[1],e.location[0]))}}},onVisibleRegionChanged:(e,o,t,n)=>{const i=s();i._scrollTimeout&&clearTimeout(i._scrollTimeout);const a=()=>{const c=s(),g=Math.max(0,Math.floor(e.y/c.pageSize)),u=Math.max(0,Math.floor(c._visiblePages.y/c.pageSize)),d=g-u;if(c.progressiveScroll&&d>1){const m=s(),S=(u+2)*m.pageSize*(m.rowHeight??22);m._glideref?.scrollTo(0,{amount:S,unit:"px"},"vertical");return}c.setState("_visiblePages",e)};i.setState("_scrollTimeout",setTimeout(()=>{a()},100))},pageSize:50,ready:!1,setState:(e,o)=>{r(H.produce(t=>{t[e]=o}))},setStateFN:(e,o)=>new Promise((n,i)=>{r(H.produce(a=>{if(typeof o=="function")a[e]=o(a[e]);else throw i(new Error(`Not a function ${o}`)),Error(`Not a function ${o}`)})),n()}),toCell:(e,o)=>{const t=s(),i=t.renderColumns?.[o],a=i?.id??i?.title??String(o);if(a==null||e===void 0||e===null)return i?.Cell?i?.Cell(e,o,a,void 0,t):t.RenderCell?t.RenderCell(e,o,a,void 0,t):{allowOverlay:!1,kind:A.GridCellKind.Loading};try{const c=String(a).includes(".")?Ie(a,e)??"":e?.[a];return i?.Cell?i?.Cell(e,o,a,c,t):t.RenderCell?t.RenderCell(e,o,a,c,t):{allowOverlay:!0,data:c,displayData:String(c),kind:A.GridCellKind.Text}}catch{return t.RenderCell?t.RenderCell(e,o,a,e?.[a??""],t):{allowOverlay:!1,kind:A.GridCellKind.Loading,skeletonWidthVariability:50}}},total_rows:1e3,uniqueid:me.getUUID()}),r=>{const[s,e]=r.useStore(t=>[t.setState,t.getState]),o=le();return w.useEffect(()=>{const t=e("onMounted");if(typeof t=="function"&&t(e,s),s("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 n=e("onUnMounted");s("mounted",!1),e("_events").dispatchEvent(new CustomEvent("unmounted",{detail:{}})),typeof n=="function"&&n()}},[s,e]),w.useEffect(()=>{const t=e("ready"),n=e("_glideref"),i=e("keyField")??"id",a=e("selectedRow")??r.selectedRow,c=e("askAPIRowNumber");let g=-1;if(a&&n&&t){const u=e("_page_data"),d=e("pageSize");for(const m in u){for(const S in u[m]){const E=Number(m)*d+Number(S);if(String(u[m][S]?.[i])===String(a)){g=u[m][S]?._rownumber>0?u[m][S]?._rownumber:E>0?E:-1;break}}if(g>0)break}g>0?n.scrollTo(0,g):typeof c=="function"&&c(String(a)).then(m=>{m>=0&&(n.scrollTo(0,m),e("_events").dispatchEvent(new CustomEvent("selectedRowFound",{detail:{rowNumber:m,selectedRow:a}})))}).catch(m=>{console.warn("Error in askAPIRowNumber",m)})}},[r.selectedRow]),e("_events").addEventListener("reload",t=>{e("reload")?.()}),{...r,hideMenu:r.hideMenu??o.hide,showMenu:r.showMenu??o.show,total_rows:r.total_rows??e("total_rows")??0}}),we=w.memo(r=>{const[s,e,o,t,n]=z(c=>[c.setStateFN,c.setState,c.getState,c.addError,c.mounted]),i=async c=>{const g=o("colSort"),u=o("pageSize"),d=o("colFilters"),m=o("_active_requests");e("loadingData",!0);try{if(r&&r.url){const S=new Headers;S.set("x-limit",String(u??50)),S.set("x-offset",String((u??50)*c)),S.set("Authorization",`Token ${r.authtoken}`),g?.length&&g.length>0&&S.set("x-sort",g?.map(h=>`${h.id} ${h.direction}`).reduce((h,_)=>`${h},${_}`)),d?.length&&d.length>0&&d?.filter(h=>h.value?.length>0)?.forEach(h=>{h.value&&h.value!==""&&S.set(`x-searchop-${h.operator}-${h.id}`,`${h.value}`)});const E=m?.findIndex(h=>h.page===c)??-1;if(m?.forEach(h=>{(h.page>=0&&h.page<c-2||c>=0&&h.page>c+2)&&h.controller?.abort?.()}),m&&E>=0&&m[E]){e("loadingData",!1);return}const M=new AbortController;await s("_active_requests",h=>[...h??[],{controller:M,page:c}]);const b=await fetch(`${r.url}?x-limit=${String(u??50)}&x-offset=${String((u??50)*c)}`,{headers:S,method:"GET",signal:M?.signal});if(b.ok){const h=b.headers.get("Content-Range")?.split("/");h?.[1]&&parseInt(h[1],10)>0&&e("total_rows",parseInt(h[1],10));const _=await b.json();return e("loadingData",!1),_??[]}t(`${b.status} ${b.statusText}`,"api",r.url),await s("_active_requests",h=>[...(h??[]).filter(_=>_.page!==c)])}}catch(S){t(`Error: ${S}`,"api",r.url)}return e("loadingData",!1),[]},a=async c=>{const g=o("colFilters");if(r&&r.url){const u=new Headers;u.set("x-limit","10"),u.set("x-fetch-rownumber",String(c)),u.set("Authorization",`Token ${r.authtoken}`),g?.length&&g.length>0&&g?.filter(S=>S.value?.length>0)?.forEach(S=>{S.value&&S.value!==""&&u.set(`x-searchop-${S.operator}-${S.id}`,`${S.value}`)});const d=new AbortController,m=await fetch(`${r.url}?x-fetch-rownumber=${c}}`,{headers:u,method:"GET",signal:d?.signal});if(m.ok){const S=await m.json();return S?.[0]?._rownumber??S?._rownumber??0}t(`${m.status} ${m.statusText}`,"api",r.url)}return[]};return w.useEffect(()=>{e("useAPIQuery",i),e("askAPIRowNumber",a)},[r.url,r.authtoken,n,e]),f.jsx(f.Fragment,{})});we.displayName="Gridler-GlidlerAPIAdaptorForGoLangv2";function _e(r){const[s,e,o,t]=z(i=>[i.getState,i.mounted,i.setState,i.reload]),n=w.useCallback((i,a,c,g,u)=>{if(i==="header-menu")return u||[];const d=[];u&&i==="cell"&&d.push(...u);const m=s("_gridSelection")?.rows.toArray()??[],S=m.length>1;if(!c){const b=m[0];b!==void 0&&(c=a.getRowBuffer(b))}const E=typeof r.descriptionField=="string"?c?.[r.descriptionField]:typeof r.descriptionField=="function"&&c?r.descriptionField(c):void 0;i==="other"&&d.push({c:"blue",label:"Add",onClick:()=>{r.onRequestForm("insert",c)}}),i==="cell"&&c||i==="menu"&&c?(d.push({c:"teal",label:"Add",leftSection:f.jsx(D.IconSquarePlus,{color:"teal",size:16}),onClick:()=>{r.onRequestForm("insert",c)}}),S?(d.push({c:"green",label:`Modify All Selected (${m.length})`,leftSection:f.jsx(D.IconEdit,{color:"green",size:16}),onClick:()=>{r.onRequestForm("change",m.map(b=>a.getRowBuffer(b)))}}),d.push({c:"red",label:`Remove All Selected (${m.length})`,leftSection:f.jsx(D.IconTrashX,{color:"maroon",size:16}),onClick:()=>{r.onRequestForm("delete",m.map(b=>a.getRowBuffer(b)))}})):(d.push({c:"green",label:`Modify${E&&r.showDescriptionInMenu?` (${E})`:""}`,leftSection:f.jsx(D.IconEdit,{color:"green",size:16}),onClick:()=>{r.onRequestForm("change",c)}}),d.push({c:"red",label:`Remove${E&&r.showDescriptionInMenu?` (${E})`:""}`,leftSection:f.jsx(D.IconTrashX,{color:"maroon",size:16}),onClick:()=>{r.onRequestForm("delete",c)}})),d.push({isDivider:!0})):(i==="cell"&&!c||i==="menu"&&!c)&&d.push({c:"red",label:"Nothing Selected",leftSection:f.jsx(D.IconExclamationMark,{color:"yellow",size:16})}),d.push({c:"orange",label:"Refresh",leftSection:f.jsx(D.IconRefresh,{color:"orange",size:16}),onClick:()=>{t?.()}});const M=r.getMenuItems?r.getMenuItems(i,a,c,g,d):d;return!d||d.length===0?u||[]:M},[r.onRequestForm,s]);return w.useEffect(()=>(e&&typeof o=="function"&&s("getMenuItems")!==n&&o("getMenuItems",n),()=>{}),[r.getMenuItems,e]),f.jsx(f.Fragment,{})}const se=w.memo(r=>{const[s,e,o]=z(n=>[n.setState,n.getState,n.mounted]),t=async n=>{const i=e("pageSize");return r.data&&Array.isArray(r.data)?(s("total_rows",r.data.length),r.data.slice(n*(i??50),(n+1)*(i??50))):[]};return w.useEffect(()=>{s("useAPIQuery",t)},[o,s]),f.jsx(f.Fragment,{})});se.displayName="Gridler-GlidlerLocalDataAdaptor";function Ae(){const{_activeTooltip:r,tooltipBarProps:s}=z(e=>({_activeTooltip:e._activeTooltip,tooltipBarProps:e.tooltipBarProps}));return f.jsx("div",{"data-tooltip-bar":!0,style:{minHeight:"24px"},...s,children:r})}const xe=w.memo(()=>{const r=w.useRef(0),s=w.useRef(null),{_glideref:e,_gridSelectionRows:o,askAPIRowNumber:t,colFilters:n,colOrder:i,colSize:a,colSort:c,columns:g,getState:u,loadPage:d,ready:m,setState:S,setStateFN:E,values:M}=z(b=>({_glideref:b._glideref,_gridSelectionRows:b._gridSelectionRows,askAPIRowNumber:b.askAPIRowNumber,colFilters:b.colFilters,colOrder:b.colOrder,colSize:b.colSize,colSort:b.colSort,columns:b.columns,getState:b.getState,loadPage:b.loadPage,ready:b.ready,setState:b.setState,setStateFN:b.setStateFN,uniqueid:b.uniqueid,values:b.values}));return w.useEffect(()=>{M&&(async()=>{const h=u("_page_data"),_=u("pageSize"),R=u("keyField")??"id",L=[];for(const j in M){let P=-1;const F=String(typeof M?.[j]=="object"?M?.[j]?.[R]:typeof M?.[j]=="string"?M?.[j]:void 0);for(const T in h){for(const N in h[T]){const O=Number(T)*_+Number(N);if(String(h[T][N]?.[R])===F){P=O;break}}if(P>=0){L.push(P);break}}if(!(P>=0)&&typeof t=="function"){const T=await t(F);T&&L.push(T)}}return L})().then(h=>{let _=A.CompactSelection.empty();h.forEach(R=>{_=_.add(R)}),E("_gridSelectionRows",()=>_),E("_gridSelection",R=>({columns:R?.columns??A.CompactSelection.empty(),...R,rows:_}))})},[M]),w.useEffect(()=>{const b=u("onChange");if(b&&typeof b=="function"){const h=u("_page_data"),_=u("pageSize"),R=[];if(o)for(const j of o){let P;for(const F in h)for(const T in h[F]){const N=Number(F)*_+Number(T);if(!isNaN(N)){if(Number(h[F][T]?._rownumber)===j+1){P=h[F][T];break}else if(N===j+1){P=h[F][T];break}}}P!==void 0&&R.push(P)}const L=u("values");JSON.stringify(L)!==JSON.stringify(R)&&b(R)}},[JSON.stringify(o),u]),w.useEffect(()=>{S("renderColumns",g?.map(b=>({...b,hasMenu:b?.hasMenu??!0,icon:"sort"})))},[g]),w.useEffect(()=>{c&&(S("_gridSelection",{columns:A.CompactSelection.empty(),current:void 0,rows:A.CompactSelection.empty()}),S("_gridSelectionRows",A.CompactSelection.empty()),E("renderColumns",b=>b?.map(h=>({...h,icon:h.id&&c?.find(_=>_.id===h.id)?.direction?c?.find(_=>_.id===h.id)?.direction==="asc"?"sortup":"sortdown":h.defaultIcon??"sort"}))).then(()=>{d(0,"all")}))},[c]),w.useEffect(()=>{n&&JSON.stringify(s.current)!==JSON.stringify(n)&&(d(0,"all"),s.current=n)},[n]),w.useEffect(()=>{a&&E("renderColumns",b=>b?.map(h=>({...h,width:h.id&&a?.[h.id]?a?.[h.id]:h.width})))},[a]),w.useEffect(()=>{i&&E("renderColumns",b=>b?.sort((_,R)=>i[_.id]>i[R.id]?1:-1))},[i]),w.useEffect(()=>{e&&(r.current>0||(r.current=1,d(0)))},[m,d]),f.jsx(f.Fragment,{})});xe.displayName="Gridler-Computer";function Fe(r,s,e=1){let o;if(s===void 0?(o=0,s=r):o=r,e===0)throw new Error("Step cannot be zero");const t=[];if(e>0)for(let n=o;n<s;n+=e)t.push(n);else for(let n=o;n>s;n+=e)t.push(n);return t}const ye=w.memo(()=>{const[r,s,e,o,t,n,i]=z(a=>[a.setState,a._glideref,a._visiblePages,a.pageSize,a.loadPage,a._loadingList,a.hasLocalData]);return w.useEffect(()=>{s&&r("mounted",!0)},[r]),w.useEffect(()=>{if(!s||i)return;const a=Math.max(0,Math.floor(e.y/o)),c=Math.floor((e.y+e.height)/o);for(const g of Fe(a,c+1,1))t(g)},[t,o,e,s,n,i]),f.jsx(f.Fragment,{})});ye.displayName="Gridler-Pager";function je(){const{loadingData:r,onContextClick:s}=z(e=>({loadingData:e.loadingData,onContextClick:e.onContextClick}));return f.jsx(y.ActionIcon,{loading:r,mr:"xs",mt:"2px",onClick:e=>s("menu",e),variant:"subtle",children:f.jsx(D.IconMenu2,{})})}const Ne=r=>`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" fill="none">
|
|
34
|
+
`,Z=n=>f.jsx("img",{alt:n.alt??"Sprite Image",src:`data:image/svg+xml;utf8,${n.sprite({...n,sprite:void 0})}`}),{Provider:Te,useStore:D}=ge.createSyncStore((n,s)=>({_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,...o)=>{const t=s();console.log("Gridler Error",t.uniqueid,e,o),n(q.produce(r=>{r.errors=[...r.errors,e]}))},errors:[],get:()=>s(),getCellContent:e=>{const o=s(),[t,r]=e,i=o.getRowBuffer(r);return i!==void 0?o.toCell(i,t):{allowOverlay:!1,kind:T.GridCellKind.Loading}},getCellsForSelection:(e,o)=>async()=>{const t=s();await t.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(t.getCellContent([c,i]));r.push(l)}return r},getRowBuffer:e=>{const o=s();if(o.data&&o.data.length>0)return o.data[e]===void 0?{allowOverlay:!1,kind:T.GridCellKind.Loading}:o.data[e];const t=Math.max(0,Math.floor(e/o.pageSize)),r=o.pageSize*t,i=e-r;return o._page_data?.[t]?.[i]},getState:e=>s()[e],hasLocalData:!1,keyField:"id",loadPage:async(e,o)=>{const t=s(),r=e<0?0:e;if(!t._events.dispatchEvent(new CustomEvent("before_loadPage",{detail:{clearMode:o,page:e,state:t}})))return;const l=[],c=Object.keys(t.renderColumns??[1,2,3]).length,g=t.pageSize*r,u=t._page_data?.[r]?.length>0;if(o==="all"){t._active_requests?.forEach(d=>{d.controller?.abort?.()}),t.setState("_page_data",{}),t.setState("_active_requests",[]),t.loadPage(r);return}if(!t.useAPIQuery){console.warn("No useAPIQuery function defined, cannot load page",r);return}!u&&o!=="page"&&t.useAPIQuery?.(r).then(d=>{t.setStateFN("_page_data",m=>({...m,[r]:d}));for(let m=r;m<=g+t.pageSize;m++)for(let v=0;v<=c;v++)l.push({cell:[v,m]});t._glideref?.updateCells(l),t._events.dispatchEvent(new CustomEvent("loadPage",{detail:{clearMode:o,data:d,page:e,state:t}}))}).catch(d=>{console.warn("loadPage Error: ",r,d),t._events.dispatchEvent(new CustomEvent("loadPage_error",{detail:{clearMode:o,error:d,page:e,state:t}}))})},maxConcurrency:1,mounted:!1,onCellClicked:(e,o)=>{const t=s(),[r,i]=e;t.glideProps?.onCellClicked?.(e,o),t._events.dispatchEvent(new CustomEvent("onCellClicked",{detail:{cell:e,col:r,row:i,state:t}}))},onCellEdited:(e,o)=>{const t=s(),[,r]=e;t._events.dispatchEvent(new CustomEvent("onCellEdited",{detail:{cell:e,newVal:o,row:r,state:t}})),t.glideProps?.onCellEdited?.(e,o)},onColumnMoved:(e,o)=>{const t=s(),r=t.renderColumns?.[e],i=t.renderColumns?.[o];r?.disableMove||i?.disableMove||t.setStateFN("colOrder",l=>{const c=l??t.renderColumns?.map((g,u)=>[g.id,u]).reduce((g,[u,d])=>({...g,[u]:d}),{});return!r?.id||!i?.id?c:{...c,[r?.id]:o,[i?.id]:e}})},onColumnProposeMove:(e,o)=>{const t=s(),r=t.renderColumns?.[e],i=t.renderColumns?.[o];return!(r?.disableMove||i?.disableMove)},onColumnResize:(e,o,t,r)=>{const i=s(),l=i.renderColumns?.find(c=>c.id===e.id);l?.disableResize||l?.maxWidth&&o<l?.maxWidth||l&&i.setStateFN("colSize",c=>c&&l&&c[l.id]===o?c:{...c,[l.id]:o})},onContextClick:(e,o,t,r)=>{const i=s(),l=i.renderColumns?.[t??-1],c=e==="menu"?[{label:"Side menu"}]:l?[{items:[{label:"Sort Ascending",leftSection:f.jsx(Z,{sprite:le}),onClick:()=>{i.setStateFN("colSort",g=>{const u=[...g??[]],d=u.findIndex(v=>v.id===l.id),m="asc";if(d<0){const v={direction:m,id:l.id,order:u?.length};u.push(v)}else d>=0&&(u[d].direction=m);return u})}},{label:"Sort Descending",leftSection:f.jsx(Z,{sprite:ie}),onClick:()=>{i.setStateFN("colSort",g=>{const u=[...g??[]],d=u.findIndex(v=>v.id===l.id),m="desc";if(d<0){const v={direction:m,id:l.id,order:u?.length};u.push(v)}else d>=0&&(u[d].direction=m);return u})}},{label:`Filter ${l?.title??l?.id}`},{renderer:f.jsx(oe,{column:l,storeState:s()})}],label:`Column Settings for ${l?.title??l?.id}`,leftSection:f.jsx($.IconGrid4x4,{size:16})}]:[];i.hideMenu?.(e),i.showMenu?.(e,{items:l?.getMenuItems?.(e,i,t&&r?i.getRowBuffer(r):void 0,l,c)??i.getMenuItems?.(e,i,t&&r?i.getRowBuffer(r):void 0,l,c)??c,x:o.clientX??o.bounds?.x,y:o.clientY??o.bounds?.y})},onHeaderClicked:(e,o)=>{const t=s();o.preventDefault();const r=t.renderColumns?.[e];r&&(r.disableSort||t.setStateFN("colSort",i=>{const l=[...i??[]],c=l.findIndex(g=>g.id===r.id);if(c<0){const g={direction:"asc",id:r.id,order:l?.length};l.push(g)}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,o)=>{const t=s(),r=t.renderColumns?.[e];if(!r)return;const i=[{label:`Sort ${r?.title??r?.id}`},{label:"Sort Ascending",leftSection:f.jsx(Z,{sprite:le}),onClick:()=>{t.setStateFN("colSort",c=>{const g=[...c??[]],u=g.findIndex(m=>m.id===r.id),d="asc";if(u<0){const m={direction:d,id:r.id,order:g?.length};g.push(m)}else u>=0&&(g[u].direction=d);return g})}},{label:"Sort Descending",leftSection:f.jsx(Z,{sprite:ie}),onClick:()=>{t.setStateFN("colSort",c=>{const g=[...c??[]],u=g.findIndex(m=>m.id===r.id),d="desc";if(u<0){const m={direction:d,id:r.id,order:g?.length};g.push(m)}else u>=0&&(g[u].direction=d);return g})}},{isDivider:!0}],l=[...r.disableSort?[]:i,{label:`Filter ${r?.title??r?.id}`},{renderer:f.jsx(oe,{column:r,storeState:s()})},{isDivider:!0},{label:"Refresh",onClickAsync:async()=>{await t.reload?.()}}];t.hideMenu?.("header-menu"),t.showMenu?.("header-menu",{items:r?.getMenuItems?.("header-menu",t,void 0,r,l)??t.getMenuItems?.("header-menu",t,void 0,r,l),x:o.x,y:o.y})},onItemHovered:e=>{const o=s();if(o.setState("_activeTooltip",void 0),e.kind==="cell"){const t=o.renderColumns?.[e.location[0]];if(t?.tooltip&&typeof t?.tooltip=="string")o.setState("_activeTooltip",t?.tooltip);else if(t?.tooltip&&typeof t?.tooltip=="function"){const r=o.getRowBuffer(e.location[1]);o.setState("_activeTooltip",t?.tooltip(r,e.location[1],e.location[0]))}}},onVisibleRegionChanged:(e,o,t,r)=>{const i=s();i._scrollTimeout&&clearTimeout(i._scrollTimeout);const l=()=>{const c=s(),g=Math.max(0,Math.floor(e.y/c.pageSize)),u=Math.max(0,Math.floor(c._visiblePages.y/c.pageSize)),d=g-u;if(c.progressiveScroll&&d>1){const m=s(),v=(u+2)*m.pageSize*(m.rowHeight??22);m._glideref?.scrollTo(0,{amount:v,unit:"px"},"vertical");return}c.setState("_visiblePages",e)};i.setState("_scrollTimeout",setTimeout(()=>{l()},100))},pageSize:50,ready:!1,setState:(e,o)=>{n(q.produce(t=>{t[e]=o}))},setStateFN:(e,o)=>new Promise((r,i)=>{n(q.produce(l=>{if(typeof o=="function")l[e]=o(l[e]);else throw i(new Error(`Not a function ${o}`)),Error(`Not a function ${o}`)})),r()}),toCell:(e,o)=>{const t=s(),i=t.renderColumns?.[o],l=i?.id??i?.title??String(o);if(l==null||e===void 0||e===null)return i?.Cell?i?.Cell(e,o,l,void 0,t):t.RenderCell?t.RenderCell(e,o,l,void 0,t):{allowOverlay:!1,kind:T.GridCellKind.Loading};try{const c=String(l).includes(".")?Ie(l,e)??"":e?.[l];return i?.Cell?{kind:T.GridCellKind.Text,...i?.Cell(e,o,l,c,t)}:t.RenderCell?t.RenderCell(e,o,l,c,t):{allowOverlay:!0,data:c,displayData:String(c),kind:T.GridCellKind.Text}}catch{return t.RenderCell?t.RenderCell(e,o,l,e?.[l??""],t):{allowOverlay:!1,kind:T.GridCellKind.Loading,skeletonWidthVariability:50}}},total_rows:1e3,uniqueid:me.getUUID()}),n=>{const[s,e]=n.useStore(t=>[t.setState,t.getState]),o=ae();return w.useEffect(()=>{const t=e("onMounted");if(typeof t=="function"&&t(e,s),s("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");s("mounted",!1),e("_events").dispatchEvent(new CustomEvent("unmounted",{detail:{}})),typeof r=="function"&&r()}},[s,e]),w.useEffect(()=>{const t=e("ready"),r=e("_glideref"),i=e("keyField")??"id",l=e("selectedRow")??n.selectedRow,c=e("askAPIRowNumber");let g=-1;if(l&&r&&t){const u=e("_page_data"),d=e("pageSize");for(const m in u){for(const v in u[m]){const E=Number(m)*d+Number(v);if(String(u[m][v]?.[i])===String(l)){g=u[m][v]?._rownumber>0?u[m][v]?._rownumber:E>0?E:-1;break}}if(g>0)break}g>0?r.scrollTo(0,g):typeof c=="function"&&c(String(l)).then(m=>{m>=0&&(r.scrollTo(0,m),e("_events").dispatchEvent(new CustomEvent("selectedRowFound",{detail:{rowNumber:m,selectedRow:l}})))}).catch(m=>{console.warn("Error in askAPIRowNumber",m)})}},[n.selectedRow]),e("_events").addEventListener("reload",t=>{e("reload")?.()}),{...n,hideMenu:n.hideMenu??o.hide,showMenu:n.showMenu??o.show,total_rows:n.total_rows??e("total_rows")??0}}),we=w.memo(n=>{const[s,e,o,t,r]=D(c=>[c.setStateFN,c.setState,c.getState,c.addError,c.mounted]),i=async c=>{const g=o("colSort"),u=o("pageSize"),d=o("colFilters"),m=o("_active_requests");e("loadingData",!0);try{if(n&&n.url){const v=new Headers;v.set("x-limit",String(u??50)),v.set("x-offset",String((u??50)*c)),v.set("Authorization",`Token ${n.authtoken}`),g?.length&&g.length>0&&v.set("x-sort",g?.map(h=>`${h.id} ${h.direction}`).reduce((h,_)=>`${h},${_}`)),d?.length&&d.length>0&&d?.filter(h=>h.value?.length>0)?.forEach(h=>{h.value&&h.value!==""&&v.set(`x-searchop-${h.operator}-${h.id}`,`${h.value}`)});const E=m?.findIndex(h=>h.page===c)??-1;if(m?.forEach(h=>{(h.page>=0&&h.page<c-2||c>=0&&h.page>c+2)&&h.controller?.abort?.()}),m&&E>=0&&m[E]){e("loadingData",!1);return}const M=new AbortController;await s("_active_requests",h=>[...h??[],{controller:M,page:c}]);const b=await fetch(`${n.url}?x-limit=${String(u??50)}&x-offset=${String((u??50)*c)}`,{headers:v,method:"GET",signal:M?.signal});if(b.ok){const h=b.headers.get("Content-Range")?.split("/");h?.[1]&&parseInt(h[1],10)>0&&e("total_rows",parseInt(h[1],10));const _=await b.json();return e("loadingData",!1),_??[]}t(`${b.status} ${b.statusText}`,"api",n.url),await s("_active_requests",h=>[...(h??[]).filter(_=>_.page!==c)])}}catch(v){t(`Error: ${v}`,"api",n.url)}return e("loadingData",!1),[]},l=async c=>{const g=o("colFilters");if(n&&n.url){const u=new Headers;u.set("x-limit","10"),u.set("x-fetch-rownumber",String(c)),u.set("Authorization",`Token ${n.authtoken}`),g?.length&&g.length>0&&g?.filter(v=>v.value?.length>0)?.forEach(v=>{v.value&&v.value!==""&&u.set(`x-searchop-${v.operator}-${v.id}`,`${v.value}`)});const d=new AbortController,m=await fetch(`${n.url}?x-fetch-rownumber=${c}}`,{headers:u,method:"GET",signal:d?.signal});if(m.ok){const v=await m.json();return v?.[0]?._rownumber??v?._rownumber??0}t(`${m.status} ${m.statusText}`,"api",n.url)}return[]};return w.useEffect(()=>{e("useAPIQuery",i),e("askAPIRowNumber",l)},[n.url,n.authtoken,r,e]),f.jsx(f.Fragment,{})});we.displayName="Gridler-GlidlerAPIAdaptorForGoLangv2";function _e(n){const[s,e,o,t]=D(i=>[i.getState,i.mounted,i.setState,i.reload]),r=w.useCallback((i,l,c,g,u)=>{if(i==="header-menu")return u||[];const d=[];u&&i==="cell"&&d.push(...u);const m=s("_gridSelection")?.rows.toArray()??[],v=m.length>1;if(!c){const b=m[0];b!==void 0&&(c=l.getRowBuffer(b))}const E=typeof n.descriptionField=="string"?c?.[n.descriptionField]:typeof n.descriptionField=="function"&&c?n.descriptionField(c):void 0;i==="other"&&d.push({c:"blue",label:"Add",onClick:()=>{n.onRequestForm("insert",c)}}),i==="cell"&&c||i==="menu"&&c?(d.push({c:"teal",label:"Add",leftSection:f.jsx($.IconSquarePlus,{color:"teal",size:16}),onClick:()=>{n.onRequestForm("insert",c)}}),v?(d.push({c:"green",label:`Modify All Selected (${m.length})`,leftSection:f.jsx($.IconEdit,{color:"green",size:16}),onClick:()=>{n.onRequestForm("change",m.map(b=>l.getRowBuffer(b)))}}),d.push({c:"red",label:`Remove All Selected (${m.length})`,leftSection:f.jsx($.IconTrashX,{color:"maroon",size:16}),onClick:()=>{n.onRequestForm("delete",m.map(b=>l.getRowBuffer(b)))}})):(d.push({c:"green",label:`Modify${E&&n.showDescriptionInMenu?` (${E})`:""}`,leftSection:f.jsx($.IconEdit,{color:"green",size:16}),onClick:()=>{n.onRequestForm("change",c)}}),d.push({c:"red",label:`Remove${E&&n.showDescriptionInMenu?` (${E})`:""}`,leftSection:f.jsx($.IconTrashX,{color:"maroon",size:16}),onClick:()=>{n.onRequestForm("delete",c)}})),d.push({isDivider:!0})):(i==="cell"&&!c||i==="menu"&&!c)&&d.push({c:"red",label:"Nothing Selected",leftSection:f.jsx($.IconExclamationMark,{color:"yellow",size:16})}),d.push({c:"orange",label:"Refresh",leftSection:f.jsx($.IconRefresh,{color:"orange",size:16}),onClick:()=>{t?.()}});const M=n.getMenuItems?n.getMenuItems(i,l,c,g,d):d;return!d||d.length===0?u||[]:M},[n.onRequestForm,s]);return w.useEffect(()=>(e&&typeof o=="function"&&s("getMenuItems")!==r&&o("getMenuItems",r),()=>{}),[n.getMenuItems,e]),f.jsx(f.Fragment,{})}const se=w.memo(n=>{const[s,e,o]=D(r=>[r.setState,r.getState,r.mounted]),t=async r=>{const i=e("pageSize");return n.data&&Array.isArray(n.data)?(s("total_rows",n.data.length),n.data.slice(r*(i??50),(r+1)*(i??50))):[]};return w.useEffect(()=>{s("useAPIQuery",t)},[o,s]),f.jsx(f.Fragment,{})});se.displayName="Gridler-GlidlerLocalDataAdaptor";function Ae(){const{_activeTooltip:n,tooltipBarProps:s}=D(e=>({_activeTooltip:e._activeTooltip,tooltipBarProps:e.tooltipBarProps}));return f.jsx("div",{"data-tooltip-bar":!0,style:{minHeight:"24px"},...s,children:n})}const xe=w.memo(()=>{const n=w.useRef(0),s=w.useRef(null),{_glideref:e,_gridSelectionRows:o,askAPIRowNumber:t,colFilters:r,colOrder:i,colSize:l,colSort:c,columns:g,getState:u,loadPage:d,ready:m,setState:v,setStateFN:E,values:M}=D(b=>({_glideref:b._glideref,_gridSelectionRows:b._gridSelectionRows,askAPIRowNumber:b.askAPIRowNumber,colFilters:b.colFilters,colOrder:b.colOrder,colSize:b.colSize,colSort:b.colSort,columns:b.columns,getState:b.getState,loadPage:b.loadPage,ready:b.ready,setState:b.setState,setStateFN:b.setStateFN,uniqueid:b.uniqueid,values:b.values}));return w.useEffect(()=>{M&&(async()=>{const h=u("_page_data"),_=u("pageSize"),I=u("keyField")??"id",j=[];for(const N in M){let A=-1;const F=String(typeof M?.[N]=="object"?M?.[N]?.[I]:typeof M?.[N]=="string"?M?.[N]:void 0);for(const P in h){for(const O in h[P]){const H=Number(P)*_+Number(O);if(String(h[P][O]?.[I])===F){A=H;break}}if(A>=0){j.push(A);break}}if(!(A>=0)&&typeof t=="function"){const P=await t(F);P&&j.push(P)}}return j})().then(h=>{let _=T.CompactSelection.empty();h.forEach(I=>{_=_.add(I)}),E("_gridSelectionRows",()=>_),E("_gridSelection",I=>({columns:I?.columns??T.CompactSelection.empty(),...I,rows:_}))})},[M]),w.useEffect(()=>{const b=u("onChange");if(b&&typeof b=="function"){const h=u("_page_data"),_=u("pageSize"),I=[];if(o)for(const N of o){let A;for(const F in h)for(const P in h[F]){const O=Number(F)*_+Number(P);if(!isNaN(O)){if(Number(h[F][P]?._rownumber)===N+1){A=h[F][P];break}else if(O===N+1){A=h[F][P];break}}}A!==void 0&&I.push(A)}const j=u("values");JSON.stringify(j)!==JSON.stringify(I)&&b(I)}},[JSON.stringify(o),u]),w.useEffect(()=>{v("renderColumns",g?.map(b=>({...b,hasMenu:b?.hasMenu??!0,icon:"sort"})))},[g]),w.useEffect(()=>{c&&(v("_gridSelection",{columns:T.CompactSelection.empty(),current:void 0,rows:T.CompactSelection.empty()}),v("_gridSelectionRows",T.CompactSelection.empty()),E("renderColumns",b=>b?.map(h=>({...h,icon:h.id&&c?.find(_=>_.id===h.id)?.direction?c?.find(_=>_.id===h.id)?.direction==="asc"?"sortup":"sortdown":h.defaultIcon??"sort"}))).then(()=>{d(0,"all"),u("_events")?.dispatchEvent?.(new CustomEvent("onColumnSorted",{detail:{cols:c}}))}))},[c]),w.useEffect(()=>{r&&JSON.stringify(s.current)!==JSON.stringify(r)&&(d(0,"all"),s.current=r,u("_events")?.dispatchEvent?.(new CustomEvent("onColumnFiltered",{detail:{filters:r}})))},[r]),w.useEffect(()=>{l&&E("renderColumns",b=>b?.map(h=>({...h,width:h.id&&l?.[h.id]?l?.[h.id]:h.width})))},[l]),w.useEffect(()=>{i&&E("renderColumns",b=>b?.sort((_,I)=>i[_.id]>i[I.id]?1:-1))},[i]),w.useEffect(()=>{e&&(n.current>0||(n.current=1,d(0)))},[m,d]),f.jsx(f.Fragment,{})});xe.displayName="Gridler-Computer";function Fe(n,s,e=1){let o;if(s===void 0?(o=0,s=n):o=n,e===0)throw new Error("Step cannot be zero");const t=[];if(e>0)for(let r=o;r<s;r+=e)t.push(r);else for(let r=o;r>s;r+=e)t.push(r);return t}const pe=w.memo(()=>{const[n,s,e,o,t,r,i]=D(l=>[l.setState,l._glideref,l._visiblePages,l.pageSize,l.loadPage,l._loadingList,l.hasLocalData]);return w.useEffect(()=>{s&&n("mounted",!0)},[n]),w.useEffect(()=>{if(!s||i)return;const l=Math.max(0,Math.floor(e.y/o)),c=Math.floor((e.y+e.height)/o);for(const g of Fe(l,c+1,1))t(g)},[t,o,e,s,r,i]),f.jsx(f.Fragment,{})});pe.displayName="Gridler-Pager";function je(){const{loadingData:n,onContextClick:s}=D(e=>({loadingData:e.loadingData,onContextClick:e.onContextClick}));return f.jsx(p.ActionIcon,{loading:n,mr:"xs",mt:"2px",onClick:e=>s("menu",e),variant:"subtle",children:f.jsx($.IconMenu2,{})})}const Ne=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>`,Oe="
|
|
39
|
+
</svg>`,Oe="_container_1nbyf_1",$e={container:Oe},De=n=>s=>s%2===0?void 0:{bgCell:n==="dark"?"#303030":"#e1effc"},ze=()=>{const n=p.useMantineTheme(),{colorScheme:s}=p.useMantineColorScheme(),{enableOddEvenRowColor:e,focused:o}=D(d=>({enableOddEvenRowColor:d.enableOddEvenRowColor,focused:d.focused})),t={auto:o?p.lighten(n.colors.blue[4],.9):"#ffffff",dark:o?p.darken("#bacfe0",.2):n.colors.dark[7],light:o?p.lighten(n.colors.blue[4],.8):"#ffffff"}[s],r={accentColor:"none",accentLight:n.colors.blue[9],baseFontStyle:"13px",bgBubble:"#212121",bgBubbleSelected:"#000000",bgCell:t,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=s==="dark"?r:{bgCell:t,textGroupHeader:"#2c5491"},[c,g]=w.useState(l);return w.useEffect(()=>{g(l)},[s,o]),{getRowThemeOverride:d=>e?De(s)(d):void 0,gridTheme:c}},Le=()=>{const n=w.useRef(null),s=w.useRef(!1),{height:e,ref:o,width:t}=ee.useElementSize({box:"content-box"}),{_gridSelection:r,focused:i,getCellContent:l,getCellsForSelection:c,getState:g,glideProps:u,hasLocalData:d,headerHeight:m,heightProp:v,mounted:E,onCellClicked:M,onCellEdited:b,onColumnMoved:h,onColumnProposeMove:_,onColumnResize:I,onContextClick:j,onHeaderClicked:N,onHeaderMenuClick:A,onItemHovered:F,onVisibleRegionChanged:P,renderColumns:O,rowHeight:H,sections:z,selectMode:B,setState:L,setStateFN:te,total_rows:V,widthProp:U}=D(S=>({_gridSelection:S._gridSelection,focused:S.focused,getCellContent:S.getCellContent,getCellsForSelection:S.getCellsForSelection,getState:S.getState,glideProps:S.glideProps,hasLocalData:S.hasLocalData,headerHeight:S.headerHeight,heightProp:S.height,mounted:S.mounted,onCellClicked:S.onCellClicked,onCellEdited:S.onCellEdited,onColumnMoved:S.onColumnMoved,onColumnProposeMove:S.onColumnProposeMove,onColumnResize:S.onColumnResize,onContextClick:S.onContextClick,onHeaderClicked:S.onHeaderClicked,onHeaderMenuClick:S.onHeaderMenuClick,onItemHovered:S.onItemHovered,onVisibleRegionChanged:S.onVisibleRegionChanged,renderColumns:S.renderColumns,rowHeight:S.rowHeight,sections:S.sections,selectMode:S.selectMode,setState:S.setState,setStateFN:S.setStateFN,total_rows:S.total_rows,widthProp:S.width})),X=ee.useMergedRef(n,S=>{te("_glideref",()=>S??void 0);const x=g("ready"),a=!!(S&&E);x!==a&&L("ready",a)}),Y=ze();return f.jsxs(p.Stack,{align:"stretch",gap:0,h:v??"100%",justify:"stretch",w:U??"100%",children:[z?.top,f.jsxs("div",{className:$e.container,"data-focused":i,onContextMenu:S=>{S.preventDefault(),s.current||(s.current=!0,j("other",S),setTimeout(()=>{s.current=!1},100))},ref:o,style:{display:"flex",height:"100%",minHeight:"64px",minWidth:"32px",width:"100%"},children:[z?.left,t&&t>0&&e&&e>0&&f.jsx(T.DataEditor,{cellActivationBehavior:"double-click",columns:O??[],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",...u,getCellContent:l,getCellsForSelection:c,getRowThemeOverride:Y.getRowThemeOverride,gridSelection:r,headerHeight:m??32,headerIcons:{sort:Ne,sortdown:ie,sortup:le},onCellClicked:M,onCellContextMenu:(S,x)=>{x.preventDefault(),u?.onCellContextMenu?.(S,x),s.current||(s.current=!0,j("cell",x,S[0],S[1]),setTimeout(()=>{s.current=!1},100))},onCellEdited:b,onColumnMoved:h,onColumnProposeMove:_,onColumnResize:I,onGridSelectionChange:S=>{let x=T.CompactSelection.empty();const a=g("_gridSelection");for(const C of S.rows)x=x.hasIndex(C)?x:x.add(C);if(B==="row"&&S.current?.range)for(let C=S.current.range.y;C<S.current.range.y+S.current.range.height;C++)x=x.hasIndex(C)?x:x.add(C);(JSON.stringify(a?.columns)!==JSON.stringify(S.columns)||JSON.stringify(a?.rows)!==JSON.stringify(x)||JSON.stringify(a?.current)!==JSON.stringify(S.current))&&(L("_gridSelection",{...S,rows:x}),JSON.stringify(a?.rows)!==JSON.stringify(x)&&L("_gridSelectionRows",x))},onHeaderClicked:N,onHeaderContextMenu:(S,x)=>{x.preventDefault(),s.current||(s.current=!0,j("header",x,S),setTimeout(()=>{s.current=!1},100))},onHeaderMenuClick:A,onItemHovered:F,onVisibleRegionChanged:P,ref:X,rightElement:f.jsxs(p.Group,{children:[z?.rightElementStart,f.jsx(je,{}),z?.rightElementEnd]}),rowHeight:H??22,rows:V??0,theme:Y.gridTheme,width:t??200}),f.jsx(xe,{}),!d&&f.jsx(pe,{}),z?.right]}),f.jsxs("div",{style:{flexGrow:0},children:[f.jsx(Ae,{}),z?.bottom]})]})},ce=n=>f.jsx(Se,{children:f.jsxs(Te,{...n,persist:{name:`Gridler_${n.uniqueid}`,partialize:s=>({colOrder:s.colOrder,colSize:s.colSize}),version:1},children:[f.jsx(Le,{}),n.children]})});ce.FormAdaptor=_e;ce.LocalDataAdaptor=se;exports.ColumnFilterInput=be;exports.ColumnFilterInputOperator=Ce;exports.ColumnFilterSet=oe;exports.FilterOperators=ve;exports.GlidlerAPIAdaptorForGoLangv2=we;exports.GlidlerFormAdaptor=_e;exports.GlidlerLocalDataAdaptor=se;exports.Gridler=ce;exports.MantineBetterMenusProvider=Se;exports.useGridlerStore=D;exports.useMantineBetterMenus=ae;
|
|
40
40
|
//# sourceMappingURL=lib.cjs.js.map
|