@warkypublic/oranguru 0.0.43 → 0.0.44

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 CHANGED
@@ -1,12 +1,12 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=require("react"),w=require("@mantine/core"),Et=require("react-dom"),pe=require("@warkypublic/zustandsyncstore"),U=require("immer"),V=require("@tabler/icons-react"),ee=require("react-hook-form"),Te=require("@warkypublic/artemis-kit"),rt=require("idb-keyval"),H=require("@glideapps/glide-data-grid"),ie=require("@mantine/hooks");function Rt(r){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const e in r)if(e!=="default"){const t=Object.getOwnPropertyDescriptor(r,e);Object.defineProperty(o,e,t.get?t:{enumerable:!0,get:()=>r[e]})}}return o.default=r,Object.freeze(o)}const he=Rt(S);function Ot(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var ce={exports:{}},oe={};var De;function It(){if(De)return oe;De=1;var r=Symbol.for("react.transitional.element"),o=Symbol.for("react.fragment");function e(t,n,s){var i=null;if(s!==void 0&&(i=""+s),n.key!==void 0&&(i=""+n.key),"key"in n){s={};for(var a in n)a!=="key"&&(s[a]=n[a])}else s=n;return n=s.ref,{$$typeof:r,type:t,key:i,ref:n!==void 0?n:null,props:s}}return oe.Fragment=o,oe.jsx=e,oe.jsxs=e,oe}var se={};var ze;function kt(){return ze||(ze=1,process.env.NODE_ENV!=="production"&&(function(){function r(h){if(h==null)return null;if(typeof h=="function")return h.$$typeof===P?null:h.displayName||h.name||null;if(typeof h=="string")return h;switch(h){case E:return"Fragment";case _:return"Profiler";case R:return"StrictMode";case x:return"Suspense";case v:return"SuspenseList";case N:return"Activity"}if(typeof h=="object")switch(typeof h.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),h.$$typeof){case b:return"Portal";case I:return h.displayName||"Context";case k:return(h._context.displayName||"Context")+".Consumer";case B:var C=h.render;return h=h.displayName,h||(h=C.displayName||C.name||"",h=h!==""?"ForwardRef("+h+")":"ForwardRef"),h;case O:return C=h.displayName||null,C!==null?C:r(h.type)||"Memo";case z:C=h._payload,h=h._init;try{return r(h(C))}catch{}}return null}function o(h){return""+h}function e(h){try{o(h);var C=!1}catch{C=!0}if(C){C=console;var A=C.error,y=typeof Symbol=="function"&&Symbol.toStringTag&&h[Symbol.toStringTag]||h.constructor.name||"Object";return A.call(C,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",y),o(h)}}function t(h){if(h===E)return"<>";if(typeof h=="object"&&h!==null&&h.$$typeof===z)return"<...>";try{var C=r(h);return C?"<"+C+">":"<...>"}catch{return"<...>"}}function n(){var h=F.A;return h===null?null:h.getOwner()}function s(){return Error("react-stack-top-frame")}function i(h){if(T.call(h,"key")){var C=Object.getOwnPropertyDescriptor(h,"key").get;if(C&&C.isReactWarning)return!1}return h.key!==void 0}function a(h,C){function A(){j||(j=!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))}A.isReactWarning=!0,Object.defineProperty(h,"key",{get:A,configurable:!0})}function l(){var h=r(this.type);return J[h]||(J[h]=!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.")),h=this.props.ref,h!==void 0?h:null}function f(h,C,A,y,$,D){var M=A.ref;return h={$$typeof:p,type:h,key:C,props:A,_owner:y},(M!==void 0?M:null)!==null?Object.defineProperty(h,"ref",{enumerable:!1,get:l}):Object.defineProperty(h,"ref",{enumerable:!1,value:null}),h._store={},Object.defineProperty(h._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(h,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(h,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:$}),Object.defineProperty(h,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:D}),Object.freeze&&(Object.freeze(h.props),Object.freeze(h)),h}function u(h,C,A,y,$,D){var M=C.children;if(M!==void 0)if(y)if(G(M)){for(y=0;y<M.length;y++)c(M[y]);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 c(M);if(T.call(C,"key")){M=r(h);var Z=Object.keys(C).filter(function(ve){return ve!=="key"});y=0<Z.length?"{key: someKey, "+Z.join(": ..., ")+": ...}":"{key: someKey}",W[M+y]||(Z=0<Z.length?"{"+Z.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=require("react"),w=require("@mantine/core"),Et=require("react-dom"),pe=require("@warkypublic/zustandsyncstore"),U=require("immer"),q=require("@tabler/icons-react"),ee=require("react-hook-form"),Te=require("@warkypublic/artemis-kit"),rt=require("idb-keyval"),H=require("@glideapps/glide-data-grid"),ie=require("@mantine/hooks");function Rt(r){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const e in r)if(e!=="default"){const t=Object.getOwnPropertyDescriptor(r,e);Object.defineProperty(o,e,t.get?t:{enumerable:!0,get:()=>r[e]})}}return o.default=r,Object.freeze(o)}const he=Rt(S);function Ot(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var ce={exports:{}},oe={};var De;function It(){if(De)return oe;De=1;var r=Symbol.for("react.transitional.element"),o=Symbol.for("react.fragment");function e(t,n,s){var i=null;if(s!==void 0&&(i=""+s),n.key!==void 0&&(i=""+n.key),"key"in n){s={};for(var a in n)a!=="key"&&(s[a]=n[a])}else s=n;return n=s.ref,{$$typeof:r,type:t,key:i,ref:n!==void 0?n:null,props:s}}return oe.Fragment=o,oe.jsx=e,oe.jsxs=e,oe}var se={};var ze;function kt(){return ze||(ze=1,process.env.NODE_ENV!=="production"&&(function(){function r(h){if(h==null)return null;if(typeof h=="function")return h.$$typeof===P?null:h.displayName||h.name||null;if(typeof h=="string")return h;switch(h){case E:return"Fragment";case _:return"Profiler";case R:return"StrictMode";case x:return"Suspense";case v:return"SuspenseList";case B:return"Activity"}if(typeof h=="object")switch(typeof h.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),h.$$typeof){case b:return"Portal";case I:return h.displayName||"Context";case k:return(h._context.displayName||"Context")+".Consumer";case N:var C=h.render;return h=h.displayName,h||(h=C.displayName||C.name||"",h=h!==""?"ForwardRef("+h+")":"ForwardRef"),h;case O:return C=h.displayName||null,C!==null?C:r(h.type)||"Memo";case z:C=h._payload,h=h._init;try{return r(h(C))}catch{}}return null}function o(h){return""+h}function e(h){try{o(h);var C=!1}catch{C=!0}if(C){C=console;var A=C.error,y=typeof Symbol=="function"&&Symbol.toStringTag&&h[Symbol.toStringTag]||h.constructor.name||"Object";return A.call(C,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",y),o(h)}}function t(h){if(h===E)return"<>";if(typeof h=="object"&&h!==null&&h.$$typeof===z)return"<...>";try{var C=r(h);return C?"<"+C+">":"<...>"}catch{return"<...>"}}function n(){var h=F.A;return h===null?null:h.getOwner()}function s(){return Error("react-stack-top-frame")}function i(h){if(T.call(h,"key")){var C=Object.getOwnPropertyDescriptor(h,"key").get;if(C&&C.isReactWarning)return!1}return h.key!==void 0}function a(h,C){function A(){j||(j=!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))}A.isReactWarning=!0,Object.defineProperty(h,"key",{get:A,configurable:!0})}function l(){var h=r(this.type);return J[h]||(J[h]=!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.")),h=this.props.ref,h!==void 0?h:null}function f(h,C,A,y,$,D){var M=A.ref;return h={$$typeof:p,type:h,key:C,props:A,_owner:y},(M!==void 0?M:null)!==null?Object.defineProperty(h,"ref",{enumerable:!1,get:l}):Object.defineProperty(h,"ref",{enumerable:!1,value:null}),h._store={},Object.defineProperty(h._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(h,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(h,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:$}),Object.defineProperty(h,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:D}),Object.freeze&&(Object.freeze(h.props),Object.freeze(h)),h}function u(h,C,A,y,$,D){var M=C.children;if(M!==void 0)if(y)if(G(M)){for(y=0;y<M.length;y++)c(M[y]);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 c(M);if(T.call(C,"key")){M=r(h);var Z=Object.keys(C).filter(function(ve){return ve!=="key"});y=0<Z.length?"{key: someKey, "+Z.join(": ..., ")+": ...}":"{key: someKey}",W[M+y]||(Z=0<Z.length?"{"+Z.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
2
2
  let props = %s;
3
3
  <%s {...props} />
4
4
  React keys must be passed directly to JSX without using spread:
5
5
  let props = %s;
6
- <%s key={someKey} {...props} />`,y,M,Z,M),W[M+y]=!0)}if(M=null,A!==void 0&&(e(A),M=""+A),i(C)&&(e(C.key),M=""+C.key),"key"in C){A={};for(var te in C)te!=="key"&&(A[te]=C[te])}else A=C;return M&&a(A,typeof h=="function"?h.displayName||h.name||"Unknown":h),f(h,M,A,n(),$,D)}function c(h){m(h)?h._store&&(h._store.validated=1):typeof h=="object"&&h!==null&&h.$$typeof===z&&(h._payload.status==="fulfilled"?m(h._payload.value)&&h._payload.value._store&&(h._payload.value._store.validated=1):h._store&&(h._store.validated=1))}function m(h){return typeof h=="object"&&h!==null&&h.$$typeof===p}var g=S,p=Symbol.for("react.transitional.element"),b=Symbol.for("react.portal"),E=Symbol.for("react.fragment"),R=Symbol.for("react.strict_mode"),_=Symbol.for("react.profiler"),k=Symbol.for("react.consumer"),I=Symbol.for("react.context"),B=Symbol.for("react.forward_ref"),x=Symbol.for("react.suspense"),v=Symbol.for("react.suspense_list"),O=Symbol.for("react.memo"),z=Symbol.for("react.lazy"),N=Symbol.for("react.activity"),P=Symbol.for("react.client.reference"),F=g.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,T=Object.prototype.hasOwnProperty,G=Array.isArray,q=console.createTask?console.createTask:function(){return null};g={react_stack_bottom_frame:function(h){return h()}};var j,J={},Y=g.react_stack_bottom_frame.bind(g,s)(),Q=q(t(s)),W={};se.Fragment=E,se.jsx=function(h,C,A){var y=1e4>F.recentlyCreatedOwnerStacks++;return u(h,C,A,!1,y?Error("react-stack-top-frame"):Y,y?q(t(h)):Q)},se.jsxs=function(h,C,A){var y=1e4>F.recentlyCreatedOwnerStacks++;return u(h,C,A,!0,y?Error("react-stack-top-frame"):Y,y?q(t(h)):Q)}})()),se}var $e;function At(){return $e||($e=1,process.env.NODE_ENV==="production"?ce.exports=It():ce.exports=kt()),ce.exports}var d=At();function ne(r,o,e){let t=e.initialDeps??[],n,s=!0;function i(){var a,l,f;let u;e.key&&((a=e.debug)!=null&&a.call(e))&&(u=Date.now());const c=r();if(!(c.length!==t.length||c.some((p,b)=>t[b]!==p)))return n;t=c;let g;if(e.key&&((l=e.debug)!=null&&l.call(e))&&(g=Date.now()),n=o(...c),e.key&&((f=e.debug)!=null&&f.call(e))){const p=Math.round((Date.now()-u)*100)/100,b=Math.round((Date.now()-g)*100)/100,E=b/16,R=(_,k)=>{for(_=String(_);_.length<k;)_=" "+_;return _};console.info(`%c⏱ ${R(b,5)} /${R(p,5)} ms`,`
6
+ <%s key={someKey} {...props} />`,y,M,Z,M),W[M+y]=!0)}if(M=null,A!==void 0&&(e(A),M=""+A),i(C)&&(e(C.key),M=""+C.key),"key"in C){A={};for(var te in C)te!=="key"&&(A[te]=C[te])}else A=C;return M&&a(A,typeof h=="function"?h.displayName||h.name||"Unknown":h),f(h,M,A,n(),$,D)}function c(h){m(h)?h._store&&(h._store.validated=1):typeof h=="object"&&h!==null&&h.$$typeof===z&&(h._payload.status==="fulfilled"?m(h._payload.value)&&h._payload.value._store&&(h._payload.value._store.validated=1):h._store&&(h._store.validated=1))}function m(h){return typeof h=="object"&&h!==null&&h.$$typeof===p}var g=S,p=Symbol.for("react.transitional.element"),b=Symbol.for("react.portal"),E=Symbol.for("react.fragment"),R=Symbol.for("react.strict_mode"),_=Symbol.for("react.profiler"),k=Symbol.for("react.consumer"),I=Symbol.for("react.context"),N=Symbol.for("react.forward_ref"),x=Symbol.for("react.suspense"),v=Symbol.for("react.suspense_list"),O=Symbol.for("react.memo"),z=Symbol.for("react.lazy"),B=Symbol.for("react.activity"),P=Symbol.for("react.client.reference"),F=g.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,T=Object.prototype.hasOwnProperty,G=Array.isArray,V=console.createTask?console.createTask:function(){return null};g={react_stack_bottom_frame:function(h){return h()}};var j,J={},Y=g.react_stack_bottom_frame.bind(g,s)(),Q=V(t(s)),W={};se.Fragment=E,se.jsx=function(h,C,A){var y=1e4>F.recentlyCreatedOwnerStacks++;return u(h,C,A,!1,y?Error("react-stack-top-frame"):Y,y?V(t(h)):Q)},se.jsxs=function(h,C,A){var y=1e4>F.recentlyCreatedOwnerStacks++;return u(h,C,A,!0,y?Error("react-stack-top-frame"):Y,y?V(t(h)):Q)}})()),se}var $e;function At(){return $e||($e=1,process.env.NODE_ENV==="production"?ce.exports=It():ce.exports=kt()),ce.exports}var d=At();function ne(r,o,e){let t=e.initialDeps??[],n,s=!0;function i(){var a,l,f;let u;e.key&&((a=e.debug)!=null&&a.call(e))&&(u=Date.now());const c=r();if(!(c.length!==t.length||c.some((p,b)=>t[b]!==p)))return n;t=c;let g;if(e.key&&((l=e.debug)!=null&&l.call(e))&&(g=Date.now()),n=o(...c),e.key&&((f=e.debug)!=null&&f.call(e))){const p=Math.round((Date.now()-u)*100)/100,b=Math.round((Date.now()-g)*100)/100,E=b/16,R=(_,k)=>{for(_=String(_);_.length<k;)_=" "+_;return _};console.info(`%c⏱ ${R(b,5)} /${R(p,5)} ms`,`
7
7
  font-size: .6rem;
8
8
  font-weight: bold;
9
- color: hsl(${Math.max(0,Math.min(120-120*E,120))}deg 100% 31%);`,e?.key)}return e?.onChange&&!(s&&e.skipInitialOnChange)&&e.onChange(n),s=!1,n}return i.updateDeps=a=>{t=a},i}function Ne(r,o){if(r===void 0)throw new Error("Unexpected undefined");return r}const jt=(r,o)=>Math.abs(r-o)<1.01,Tt=(r,o,e)=>{let t;return function(...n){r.clearTimeout(t),t=r.setTimeout(()=>o.apply(this,n),e)}},Be=r=>{const{offsetWidth:o,offsetHeight:e}=r;return{width:o,height:e}},Ft=r=>r,Mt=r=>{const o=Math.max(r.startIndex-r.overscan,0),e=Math.min(r.endIndex+r.overscan,r.count-1),t=[];for(let n=o;n<=e;n++)t.push(n);return t},Pt=(r,o)=>{const e=r.scrollElement;if(!e)return;const t=r.targetWindow;if(!t)return;const n=i=>{const{width:a,height:l}=i;o({width:Math.round(a),height:Math.round(l)})};if(n(Be(e)),!t.ResizeObserver)return()=>{};const s=new t.ResizeObserver(i=>{const a=()=>{const l=i[0];if(l?.borderBoxSize){const f=l.borderBoxSize[0];if(f){n({width:f.inlineSize,height:f.blockSize});return}}n(Be(e))};r.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(a):a()});return s.observe(e,{box:"border-box"}),()=>{s.unobserve(e)}},Le={passive:!0},Ge=typeof window>"u"?!0:"onscrollend"in window,Dt=(r,o)=>{const e=r.scrollElement;if(!e)return;const t=r.targetWindow;if(!t)return;let n=0;const s=r.options.useScrollendEvent&&Ge?()=>{}:Tt(t,()=>{o(n,!1)},r.options.isScrollingResetDelay),i=u=>()=>{const{horizontal:c,isRtl:m}=r.options;n=c?e.scrollLeft*(m&&-1||1):e.scrollTop,s(),o(n,u)},a=i(!0),l=i(!1);e.addEventListener("scroll",a,Le);const f=r.options.useScrollendEvent&&Ge;return f&&e.addEventListener("scrollend",l,Le),()=>{e.removeEventListener("scroll",a),f&&e.removeEventListener("scrollend",l)}},zt=(r,o,e)=>{if(o?.borderBoxSize){const t=o.borderBoxSize[0];if(t)return Math.round(t[e.options.horizontal?"inlineSize":"blockSize"])}return r[e.options.horizontal?"offsetWidth":"offsetHeight"]},$t=(r,{adjustments:o=0,behavior:e},t)=>{var n,s;const i=r+o;(s=(n=t.scrollElement)==null?void 0:n.scrollTo)==null||s.call(n,{[t.options.horizontal?"left":"top"]:i,behavior:e})};class Nt{constructor(o){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.currentScrollToIndex=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.laneAssignments=new Map,this.pendingMeasuredCacheIndexes=[],this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let e=null;const t=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(n=>{n.forEach(s=>{const i=()=>{this._measureElement(s.target,s)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(i):i()})}));return{disconnect:()=>{var n;(n=t())==null||n.disconnect(),e=null},observe:n=>{var s;return(s=t())==null?void 0:s.observe(n,{box:"border-box"})},unobserve:n=>{var s;return(s=t())==null?void 0:s.unobserve(n)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,n])=>{typeof n>"u"&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:Ft,rangeExtractor:Mt,onChange:()=>{},measureElement:zt,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...e}},this.notify=e=>{var t,n;(n=(t=this.options).onChange)==null||n.call(t,this,e)},this.maybeNotify=ne(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:process.env.NODE_ENV!=="production"&&"maybeNotify",debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;const t=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==t){if(this.cleanup(),!t){this.maybeNotify();return}this.scrollElement=t,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((e=this.scrollElement)==null?void 0:e.window)??null,this.elementsCache.forEach(n=>{this.observer.observe(n)}),this.unsubs.push(this.options.observeElementRect(this,n=>{this.scrollRect=n,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(n,s)=>{this.scrollAdjustments=0,this.scrollDirection=s?this.getScrollOffset()<n?"forward":"backward":null,this.scrollOffset=n,this.isScrolling=s,this.maybeNotify()})),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}},this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{const n=new Map,s=new Map;for(let i=t-1;i>=0;i--){const a=e[i];if(n.has(a.lane))continue;const l=s.get(a.lane);if(l==null||a.end>l.end?s.set(a.lane,a):a.end<l.end&&n.set(a.lane,!0),n.size===this.options.lanes)break}return s.size===this.options.lanes?Array.from(s.values()).sort((i,a)=>i.end===a.end?i.index-a.index:i.end-a.end)[0]:void 0},this.getMeasurementOptions=ne(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes],(e,t,n,s,i,a)=>(this.prevLanes!==void 0&&this.prevLanes!==a&&(this.lanesChangedFlag=!0),this.prevLanes=a,this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:n,getItemKey:s,enabled:i,lanes:a}),{key:!1}),this.getMeasurements=ne(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:n,getItemKey:s,enabled:i,lanes:a},l)=>{if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(const m of this.laneAssignments.keys())m>=e&&this.laneAssignments.delete(m);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMeasuredCacheIndexes=[]),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(m=>{this.itemSizeCache.set(m.key,m.size)}));const f=this.lanesSettling?0:this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[],this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1);const u=this.measurementsCache.slice(0,f),c=new Array(a).fill(void 0);for(let m=0;m<f;m++){const g=u[m];g&&(c[g.lane]=m)}for(let m=f;m<e;m++){const g=s(m),p=this.laneAssignments.get(m);let b,E;if(p!==void 0&&this.options.lanes>1){b=p;const I=c[b],B=I!==void 0?u[I]:void 0;E=B?B.end+this.options.gap:t+n}else{const I=this.options.lanes===1?u[m-1]:this.getFurthestMeasurement(u,m);E=I?I.end+this.options.gap:t+n,b=I?I.lane:m%this.options.lanes,this.options.lanes>1&&this.laneAssignments.set(m,b)}const R=l.get(g),_=typeof R=="number"?R:this.options.estimateSize(m),k=E+_;u[m]={index:m,start:E,size:_,end:k,key:g,lane:b},c[b]=m}return this.measurementsCache=u,u},{key:process.env.NODE_ENV!=="production"&&"getMeasurements",debug:()=>this.options.debug}),this.calculateRange=ne(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,s)=>this.range=e.length>0&&t>0?Bt({measurements:e,outerSize:t,scrollOffset:n,lanes:s}):null,{key:process.env.NODE_ENV!=="production"&&"calculateRange",debug:()=>this.options.debug}),this.getVirtualIndexes=ne(()=>{let e=null,t=null;const n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,s,i)=>s===null||i===null?[]:e({startIndex:s,endIndex:i,overscan:t,count:n}),{key:process.env.NODE_ENV!=="production"&&"getVirtualIndexes",debug:()=>this.options.debug}),this.indexFromElement=e=>{const t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{const n=this.indexFromElement(e),s=this.measurementsCache[n];if(!s)return;const i=s.key,a=this.elementsCache.get(i);a!==e&&(a&&this.observer.unobserve(a),this.observer.observe(e),this.elementsCache.set(i,e)),e.isConnected&&this.resizeItem(n,this.options.measureElement(e,t,this))},this.resizeItem=(e,t)=>{const n=this.measurementsCache[e];if(!n)return;const s=this.itemSizeCache.get(n.key)??n.size,i=t-s;i!==0&&((this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(n,i,this):n.start<this.getScrollOffset()+this.scrollAdjustments)&&(process.env.NODE_ENV!=="production"&&this.options.debug&&console.info("correction",i),this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=i,behavior:void 0})),this.pendingMeasuredCacheIndexes.push(n.index),this.itemSizeCache=new Map(this.itemSizeCache.set(n.key,t)),this.notify(!1))},this.measureElement=e=>{if(!e){this.elementsCache.forEach((t,n)=>{t.isConnected||(this.observer.unobserve(t),this.elementsCache.delete(n))});return}this._measureElement(e,void 0)},this.getVirtualItems=ne(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{const n=[];for(let s=0,i=e.length;s<i;s++){const a=e[s],l=t[a];n.push(l)}return n},{key:process.env.NODE_ENV!=="production"&&"getVirtualItems",debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{const t=this.getMeasurements();if(t.length!==0)return Ne(t[ot(0,t.length-1,n=>Ne(t[n]).start,e)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getOffsetForAlignment=(e,t,n=0)=>{if(!this.scrollElement)return 0;const s=this.getSize(),i=this.getScrollOffset();t==="auto"&&(t=e>=i+s?"end":"start"),t==="center"?e+=(n-s)/2:t==="end"&&(e-=s);const a=this.getMaxScrollOffset();return Math.max(Math.min(a,e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));const n=this.measurementsCache[e];if(!n)return;const s=this.getSize(),i=this.getScrollOffset();if(t==="auto")if(n.end>=i+s-this.options.scrollPaddingEnd)t="end";else if(n.start<=i+this.options.scrollPaddingStart)t="start";else return[i,t];if(t==="end"&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];const a=t==="end"?n.end+this.options.scrollPaddingEnd:n.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,t,n.size),t]},this.isDynamicMode=()=>this.elementsCache.size>0,this.scrollToOffset=(e,{align:t="start",behavior:n}={})=>{n==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(e,t),{adjustments:void 0,behavior:n})},this.scrollToIndex=(e,{align:t="auto",behavior:n}={})=>{n==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),e=Math.max(0,Math.min(e,this.options.count-1)),this.currentScrollToIndex=e;let s=0;const i=10,a=f=>{if(!this.targetWindow)return;const u=this.getOffsetForIndex(e,f);if(!u){console.warn("Failed to get offset for index:",e);return}const[c,m]=u;this._scrollToOffset(c,{adjustments:void 0,behavior:n}),this.targetWindow.requestAnimationFrame(()=>{const g=()=>{if(this.currentScrollToIndex!==e)return;const p=this.getScrollOffset(),b=this.getOffsetForIndex(e,m);if(!b){console.warn("Failed to get offset for index:",e);return}jt(b[0],p)||l(m)};this.isDynamicMode()?this.targetWindow.requestAnimationFrame(g):g()})},l=f=>{this.targetWindow&&this.currentScrollToIndex===e&&(s++,s<i?(process.env.NODE_ENV!=="production"&&this.options.debug&&console.info("Schedule retry",s,i),this.targetWindow.requestAnimationFrame(()=>a(f))):console.warn(`Failed to scroll to index ${e} after ${i} attempts.`))};a(t)},this.scrollBy=(e,{behavior:t}={})=>{t==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+e,{adjustments:void 0,behavior:t})},this.getTotalSize=()=>{var e;const t=this.getMeasurements();let n;if(t.length===0)n=this.options.paddingStart;else if(this.options.lanes===1)n=((e=t[t.length-1])==null?void 0:e.end)??0;else{const s=Array(this.options.lanes).fill(null);let i=t.length-1;for(;i>=0&&s.some(a=>a===null);){const a=t[i];s[a.lane]===null&&(s[a.lane]=a.end),i--}n=Math.max(...s.filter(a=>a!==null))}return Math.max(n-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.laneAssignments=new Map,this.notify(!1)},this.setOptions(o)}}const ot=(r,o,e,t)=>{for(;r<=o;){const n=(r+o)/2|0,s=e(n);if(s<t)r=n+1;else if(s>t)o=n-1;else return n}return r>0?r-1:0};function Bt({measurements:r,outerSize:o,scrollOffset:e,lanes:t}){const n=r.length-1,s=l=>r[l].start;if(r.length<=t)return{startIndex:0,endIndex:n};let i=ot(0,n,s,e),a=i;if(t===1)for(;a<n&&r[a].end<e+o;)a++;else if(t>1){const l=Array(t).fill(0);for(;a<n&&l.some(u=>u<e+o);){const u=r[a];l[u.lane]=u.end,a++}const f=Array(t).fill(e+o);for(;i>=0&&f.some(u=>u>=e);){const u=r[i];f[u.lane]=u.start,i--}i=Math.max(0,i-i%t),a=Math.min(n,a+(t-1-a%t))}return{startIndex:i,endIndex:a}}const qe=typeof document<"u"?he.useLayoutEffect:he.useEffect;function Lt({useFlushSync:r=!0,...o}){const e=he.useReducer(()=>({}),{})[1],t={...o,onChange:(s,i)=>{var a;r&&i?Et.flushSync(e):e(),(a=o.onChange)==null||a.call(o,s,i)}},[n]=he.useState(()=>new Nt(t));return n.setOptions(t),qe(()=>n._didMount(),[]),qe(()=>n._willUpdate()),n}function Gt(r){return Lt({observeElementRect:Pt,observeElementOffset:Dt,scrollToFn:$t,...r})}const{Provider:st,useStore:it}=pe.createSyncStore((r,o)=>({boxerData:[],fetchData:async(e,t)=>{const n=o();if(n.dataSource==="local"||!n.onAPICall){const s=n.data??[];if(!e){r({boxerData:s,hasMore:!1,total:s.length});return}const i=s.filter(a=>a.label.toLowerCase().includes(e.toLowerCase()));r({boxerData:i,hasMore:!1,total:i.length});return}if(n.onAPICall)try{r({isFetching:!0});const s=t?0:n.page,i=await n.onAPICall({page:s,pageSize:n.pageSize,search:e});r(U.produce(a=>{t?(a.boxerData=i.data,a.page=0):a.boxerData=[...a.boxerData??[],...i.data],a.total=i.total,a.hasMore=a.boxerData.length<i.total,a.isFetching=!1}))}catch(s){console.error("Boxer fetchData error:",s),r({isFetching:!1})}},fetchMoreOnBottomReached:e=>{const t=o();if(!t.hasMore||t.isFetching)return;(e.scrollTop+e.clientHeight)/e.scrollHeight>.8&&t.loadMore()},getState:e=>o()?.[e],hasMore:!0,input:"",isFetching:!1,loadMore:async()=>{const e=o();!e.hasMore||e.isFetching||(r(U.produce(t=>{t.page=t.page+1})),await e.fetchData(e.search))},opened:!1,page:0,pageSize:50,search:"",selectedOptionIndex:-1,setInput:e=>{r({input:e})},setOpened:e=>{r({opened:e})},setSearch:e=>{r({search:e})},setSelectedOptionIndex:e=>{r({selectedOptionIndex:e})},setState:(e,t)=>{r(U.produce(n=>{n[e]=t}))},total:0}),({data:r=[],dataSource:o="local",pageSize:e=50,...t})=>({...t,boxerData:r,data:r,dataSource:o,hasMore:o==="server",pageSize:e,total:r.length})),at=S.forwardRef((r,o)=>{const{clearable:e=!0,combobox:t,disabled:n,error:s,isFetching:i,label:a,leftSection:l,onBlur:f,onClear:u,onSearch:c,placeholder:m,search:g}=r,p=i?d.jsx(w.Loader,{size:"xs"}):g&&e?d.jsx(w.ActionIcon,{onClick:b=>{b.stopPropagation(),u()},size:"sm",variant:"subtle",children:d.jsx(V.IconX,{size:16})}):null;return d.jsx(w.TextInput,{disabled:n,error:s,label:a,leftSection:l,onBlur:f,onChange:c,onClick:()=>t.openDropdown(),onFocus:()=>t.openDropdown(),placeholder:m,ref:o,rightSection:p,value:g})});at.displayName="BoxerTarget";const qt=r=>{const{boxerData:o,multiSelect:e,onOptionSubmit:t,value:n}=r;return{options:S.useMemo(()=>o.map((i,a)=>{const l=e?Array.isArray(n)&&n.includes(i.value):n===i.value;return d.jsx(w.Combobox.Option,{active:l,onClick:()=>{t(a)},value:String(a),children:e?d.jsxs("div",{style:{alignItems:"center",display:"flex",gap:"8px"},children:[d.jsx(w.Checkbox,{checked:l,onChange:()=>{},tabIndex:-1}),d.jsx("span",{children:i.label})]}):i.label},`${i.value}-${a}`)}),[o,n,e,t])}},lt=S.forwardRef((r,o)=>{const e=S.useRef(null),t=S.useRef(null),n=S.useRef(null),s=S.useRef(null),{boxerData:i,clearable:a,comboBoxProps:l,dropDownProps:f,error:u,fetchData:c,fetchMoreOnBottomReached:m,input:g,isFetching:p,label:b,mah:E,multiSelect:R,onBufferChange:_,onChange:k,opened:I,openOnClear:B,placeholder:x,scrollAreaProps:v,search:O,selectedOptionIndex:z,selectFirst:N,setInput:P,setOpened:F,setSearch:T,setSelectedOptionIndex:G,showAll:q,value:j}=it(y=>({boxerData:y.boxerData,clearable:y.clearable,comboBoxProps:y.comboBoxProps,dropDownProps:y.dropDownProps,error:y.error,fetchData:y.fetchData,fetchMoreOnBottomReached:y.fetchMoreOnBottomReached,input:y.input,isFetching:y.isFetching,label:y.label,mah:y.mah,multiSelect:y.multiSelect,onBufferChange:y.onBufferChange,onChange:y.onChange,opened:y.opened,openOnClear:y.openOnClear,placeholder:y.placeholder,scrollAreaProps:y.scrollAreaProps,search:y.search,selectedOptionIndex:y.selectedOptionIndex,selectFirst:y.selectFirst,setInput:y.setInput,setOpened:y.setOpened,setSearch:y.setSearch,setSelectedOptionIndex:y.setSelectedOptionIndex,showAll:y.showAll,value:y.value})),J=i.length,Y=Gt({count:J,estimateSize:()=>36,getScrollElement:()=>e.current}),Q=Y.getVirtualItems(),W=S.useCallback(y=>{const $=typeof y=="string"?parseInt(y,10):y,D=i[$];if(D)if(R){const M=Array.isArray(j)?j:[],te=M.includes(D.value)?M.filter(ye=>ye!==D.value):[...M,D.value];k?.(te);const ve=i.filter(ye=>te.includes(ye.value));_?.(ve)}else k?.(D.value),T(""),P(D.label),n.current=D.value,F(!1)},[i,R,j,k,_,T,P,F]),h=S.useCallback(()=>{q&&N?W(0):(k?.(R?[]:null),T(""),P(""),t.current?.focus()),B&&F(!0)},[q,N,R,k,T,P,B,F,W]),C=w.useVirtualizedCombobox({getOptionId:y=>String(y),onDropdownClose:()=>{F(!1)},onDropdownOpen:()=>{(!j||R&&(!Array.isArray(j)||j.length===0))&&(T(""),P("")),C.selectFirstOption()},onSelectedOptionSubmit:W,opened:I,selectedOptionIndex:z,setSelectedOptionIndex:y=>{G(y),y!==-1&&Y.scrollToIndex(y)},totalOptionsCount:i.length}),{options:A}=qt({boxerData:i,multiSelect:R,onOptionSubmit:W,value:j});return S.useEffect(()=>{c("",!0)},[]),S.useEffect(()=>{const y=setTimeout(()=>{O!==void 0&&I&&c(O,!0)},300);return()=>clearTimeout(y)},[O,I]),S.useEffect(()=>{if(R){const y=i.filter($=>Array.isArray(j)&&j.includes($.value)).map($=>$.label).join(", ");!I&&g!==y&&(P(y),T(""))}else{const y=i.find($=>$.value===j)?.label;g!==y&&(O??"")===""&&n.current!==j&&j?P(y??""):!j&&!n.current&&(O??"")===""&&(T(""),P(""))}if(R){const y=i.filter($=>Array.isArray(j)&&j.includes($.value))??[];JSON.stringify(s.current)!==JSON.stringify(y)&&(_?.(y),s.current=y)}else{const y=i?.find($=>$.value===j)??null;s.current?.value!==y?.value&&(_?.(y),s.current=y)}},[j,i,g,O,R,I,_,P,T]),S.useEffect(()=>{N&&(i?.length??0)>0&&!R&&(j||W?.(0))},[N,i,R]),S.useImperativeHandle(o,()=>({clear:()=>{h()},close:()=>{F(!1),C.closeDropdown()},focus:()=>{t.current?.focus()},getValue:()=>j,open:()=>{F(!0),C.openDropdown()},setValue:y=>{k?.(y)}})),d.jsxs(w.Combobox,{...l,resetSelectionOnOptionHover:!1,store:C,withinPortal:!0,children:[d.jsx(w.Combobox.Target,{children:d.jsx(w.Combobox.EventsTarget,{children:d.jsx(at,{clearable:a,combobox:C,error:u,isFetching:p,label:b,onBlur:()=>{!j&&!R&&(T(""),P(""),C.closeDropdown(),F(!1))},onClear:h,onSearch:y=>{T(y.currentTarget.value),P(y.currentTarget.value),F(!0)},placeholder:x,ref:t,search:g})})}),d.jsx(w.Combobox.Dropdown,{onKeyDown:()=>{t.current&&(t.current.value="",t.current?.focus())},p:2,...f,children:I&&A.length>0?d.jsx(w.Combobox.Options,{children:d.jsx(w.ScrollArea.Autosize,{...v,mah:E??200,viewportProps:{...v?.viewportProps,onScroll:y=>{m(y.currentTarget)},style:{border:"1px solid gray",borderRadius:4}},viewportRef:e,children:d.jsx("div",{style:{height:`${Y.getTotalSize()}px`,position:"relative",width:"100%"},children:d.jsx("div",{style:{left:0,position:"absolute",top:0,transform:`translateY(${Q[0]?.start??0}px)`,width:"100%"},children:Q.map(y=>d.jsx("div",{"data-index":y.index,ref:Y.measureElement,children:A[y.index]},y.key))})})})}):d.jsx(w.Combobox.Empty,{children:"Nothing found"})})]})});lt.displayName="BoxerInner";const ct=S.forwardRef((r,o)=>d.jsx(st,{...r,children:d.jsx(lt,{ref:o})}));ct.displayName="Boxer";class Vt{config={enabled:!0};reporters=[];sentryInstance=null;configure(o){this.config={...this.config,...o},this.reporters=[],o.sentry&&this.setupSentry(o.sentry),o.customAPI&&this.setupCustomAPI(o.customAPI),o.reporters&&this.reporters.push(...o.reporters)}destroy(){this.reporters=[],this.sentryInstance=null,this.config={enabled:!0}}getReporters(){return[...this.reporters]}isEnabled(){return!!this.config.enabled}async reportError(o,e,t){if(!this.config.enabled)return;let n={context:t,error:o,errorInfo:e,severity:"error",timestamp:Date.now()};if(this.config.beforeReport){const i=this.config.beforeReport(n);if(!i)return;n=i}const s=this.reporters.filter(i=>i.isEnabled()).map(async i=>{try{await i.captureError(n)}catch(a){console.error(`Error reporter "${i.name}" failed:`,a),this.config.onReportFailure&&this.config.onReportFailure(a,n)}});try{await Promise.all(s),this.config.onReportSuccess&&this.config.onReportSuccess(n)}catch(i){console.error("Error reporting failed:",i)}}setupCustomAPI(o){const e={captureError:async t=>{try{const n=o.transformPayload?o.transformPayload(t):{context:t.context,message:t.error.message,severity:t.severity||"error",stack:t.error.stack,timestamp:t.timestamp||Date.now()},s=await fetch(o.endpoint,{body:JSON.stringify(n),headers:{"Content-Type":"application/json",...o.headers},method:o.method||"POST"});if(!s.ok)throw new Error(`API request failed: ${s.statusText}`)}catch(n){console.error("Failed to send error to custom API:",n)}},isEnabled:()=>!!o.endpoint,name:"CustomAPI"};this.reporters.push(e)}setupSentry(o){const e={captureError:async t=>{if(!this.sentryInstance)try{const n=await Promise.resolve().then(()=>require("./index-wyM2YQFr.cjs"));n.init({beforeSend:o.beforeSend,dsn:o.dsn,environment:o.environment,ignoreErrors:o.ignoreErrors,release:o.release,tracesSampleRate:o.sampleRate||1}),this.sentryInstance=n}catch(n){console.error("Failed to initialize Sentry:",n);return}this.sentryInstance.withScope(n=>{t.severity&&n.setLevel(t.severity),t.context?.namespace&&n.setTag("namespace",t.context.namespace),t.context?.tags&&Object.entries(t.context.tags).forEach(([s,i])=>{n.setTag(s,i)}),t.context?.user&&n.setUser(t.context.user),t.context?.extra&&n.setExtras(t.context.extra),t.context?.componentStack&&n.setContext("react",{componentStack:t.context.componentStack}),this.sentryInstance.captureException(t.error)})},isEnabled:()=>!!this.sentryInstance,name:"Sentry"};this.reporters.push(e)}}const me=new Vt;class Ht extends S.PureComponent{constructor(o){super(o),this.state={error:null,errorInfo:null,showDetail:!1,timer:void 0,try:!1,tryCnt:0}}componentDidCatch(o,e){this.setState({error:o,errorInfo:e,try:!1}),me.reportError(o,e,{componentStack:e?.componentStack,namespace:this.props.namespace})}render(){return this.state.errorInfo?d.jsxs("div",{children:[d.jsx("h2",{children:"Error"}),this.state.error&&d.jsxs(d.Fragment,{children:[d.jsxs("h3",{children:["In: ",this.props.namespace??"default"]}),d.jsx("main",{children:this.state.error.toString()})]})]}):this.props.children}}let Kt={disabled:!1,onError:void 0};const be=()=>({...Kt});class Wt extends S.Component{constructor(o){super(o),this.state={error:null,errorInfo:null,showDetail:!1,timer:void 0,try:!1,tryCnt:0}}componentDidCatch(o,e){if(be()?.disabled)throw Error("ErrorBoundary pass through enabled, rethrowing error",{cause:o,info:e});this.setState({error:o,errorInfo:e,try:!1}),typeof be()?.onError=="function"&&be()?.onError?.(o,e),me.reportError(o,e,{componentStack:e?.componentStack,namespace:this.props.namespace})}render(){if(this.state.errorInfo)return d.jsxs("div",{children:[d.jsxs("h2",{style:{color:"var(--mantine-color-error)",display:"flex",gap:"8px"},children:[d.jsx(V.IconExclamationCircle,{color:"var(--mantine-color-error)",style:{height:w.rem(20),width:w.rem(20)}}),"A react error has occurred!"]}),d.jsx("h4",{children:"You can try one of these solutions to get back on track:"}),d.jsxs("ul",{children:[d.jsx("li",{children:"Report the error to our team"}),d.jsx("li",{children:"Hit the keys Ctrl-Shift-R"}),d.jsx("li",{children:"Make sure your web browser is up to date"}),d.jsx("li",{children:"Clear your browser cache and cookies"}),d.jsx("li",{children:"Try using a different web browser"}),d.jsx("li",{children:"Reset your layout and settings"}),d.jsx("li",{children:"Retry loading the application"})]}),d.jsxs(w.Group,{children:[d.jsx(w.Button,{color:"red",my:"md",onClick:()=>this.setState(o=>({showDetail:!o.showDetail})),size:"compact-xs",variant:"outline",children:"More"}),d.jsxs(w.Button,{color:"blue",disabled:this.state.tryCnt>2||this.state.try,my:"md",onClick:()=>this.retry(),size:"compact-xs",variant:"outline",children:["Retry ",this.state.tryCnt>0?`(${this.state.tryCnt})`:""]}),d.jsx(w.Button,{color:"yellow",disabled:this.state.wasReset,my:"md",onClick:()=>this.reset(),size:"compact-xs",variant:"outline",children:"Reset Layout or Settings"}),d.jsx(w.Button,{color:"green",disabled:this.state.reported,my:"md",onClick:()=>this.report(),size:"compact-xs",variant:"outline",children:"Report"})]}),this.state.error&&d.jsxs(w.Paper,{p:"md",shadow:"xs",style:{textAlign:"justify"},w:"50%",withBorder:!0,children:[this.props.namespace&&d.jsxs(w.Text,{size:"sm",children:["In: ",this.props.namespace]}),d.jsx(w.Text,{size:"sm",children:this.state.error.toString()})]}),d.jsx(w.Collapse,{in:this.state.showDetail,children:d.jsx(w.Code,{block:!0,color:"rgba(235, 86, 5, 0.6)",mah:"100vh",w:"100%",children:this.state.errorInfo.componentStack})})]});if(this.state.try){if(!this.state.timer){const o=setTimeout(()=>{clearTimeout(this.state.timer),this.setState(e=>({...e,timer:void 0,try:!1}))},1e3);this.setState(e=>({...e,timer:o}))}return d.jsxs("div",{children:["Retrying ",this.state.tryCnt,"..."]})}return this.props.children}async report(){if(this.props?.onReportClick){this.props.onReportClick(),this.setState(()=>({reported:!0}));return}this.state.error&&this.state.errorInfo&&(await me.reportError(this.state.error,this.state.errorInfo,{componentStack:this.state.errorInfo?.componentStack,namespace:this.props.namespace,tags:{reportedBy:"user"}}),this.setState(()=>({reported:!0})))}reset(){if(this.props?.onResetClick){this.props.onResetClick(),this.setState(()=>({wasReset:!0}));return}this.setState(()=>({wasReset:!0})),window.location.reload()}retry(){if(this.setState({try:!0,tryCnt:this.state.tryCnt+1}),this.props?.onRetryClick){this.props.onRetryClick();return}this.setState({error:void 0,errorInfo:void 0}),this.forceUpdate()}}const{Provider:Ut,useStore:le}=pe.createSyncStore((r,o)=>({getAllState:()=>o(),getState:e=>o()?.[e],load:async e=>{try{r({loading:!0});const t=o()?.uniqueKeyField||"id",n=o().values?.[t]??o().primeData?.[t];if(o().onAPICall&&n!==void 0){let s=await o().onAPICall("read",o().request||"insert",o().values,n);o().afterGet&&(s=await o().afterGet({...s},o())),r({loading:!1,values:s}),o().onChange?.(s,o())}e&&o().getFormMethods&&o().getFormMethods().reset()}catch(t){const n=t?.message??t;r({error:n,loading:!1}),o().onError?.(n,o())}r({loading:!1})},onChange:e=>{r({values:e})},request:"insert",reset:async()=>{const e=o();e.getFormMethods&&(e.request!=="insert"&&await e.load(!0),e.getFormMethods().reset({...e.values,...e.primeData}))},save:async e=>{try{const t=o().keepOpen??!1;if(r({loading:!0}),o().getFormMethods){const n=o().getFormMethods();let s=n.getValues();o().beforeSave&&(s=await o().beforeSave(s,o()));let i=!1;if(await n.handleSubmit(l=>{s=l},l=>{const f=l.root?.message||"Validation errors";r({error:f,loading:!1}),o().onError?.(f,o()),i=!0})(e),i){r({loading:!1});return}if(o().request==="delete"&&!o().deleteConfirmed&&!(await o().onConfirmDelete?.(s)??!1)){r({loading:!1});return}if(o().onAPICall){const l=o()?.uniqueKeyField||"id",f=o().values?.[l]??o().primeData?.[l],u=await o().onAPICall("mutate",o().request||"insert",s,f),c={...s,...u};if(o().afterSave&&await o().afterSave(c,o()),t){const m=o()?.uniqueKeyField||"id",g={...c};return delete g[m],r({loading:!1,values:g}),o().onChange?.(g,o()),n.reset(g),c}return r({loading:!1,values:c}),o().onChange?.(c,o()),n.reset(c),o().onClose?.(c),c}if(t){const l=o()?.uniqueKeyField||"id",f={...s};return delete f[l],r({loading:!1,values:f}),n.reset(f),o().onChange?.(f,o()),s}return r({loading:!1,values:s}),n.reset(s),o().onChange?.(s,o()),o().onClose?.(s),s}}catch(t){const n=t?.message??t;r({error:n,loading:!1}),o().onError?.(n,o())}},setRequest:e=>{r({request:e})},setState:(e,t)=>{r(U.produce(n=>{n[e]=t}))},setStateFN:(e,t)=>new Promise((s,i)=>{r(U.produce(a=>{if(typeof t=="function")a[e]=t(a[e]);else throw i(new Error(`Not a function ${t}`)),Error(`Not a function ${t}`)})),s()}),validate:async()=>o().getFormMethods?await o().getFormMethods().trigger():!0,values:void 0}),({id:r,onClose:o,onConfirmDelete:e,primeData:t,request:n,useStoreApi:s,values:i})=>{let a=e;return e||(a=async()=>confirm("Are you sure you want to delete this item?")),{id:r||Te.newUUID(),onClose:l=>{const f=s.getState().dirty,u=s.getState().setState;f?confirm("You have unsaved changes. Are you sure you want to close?")&&(o?o(l):u("opened",!1)):o?o(l):u("opened",!1)},onConfirmDelete:a,primeData:t,request:(n||"insert").replace("change","update"),values:{...t,...i}}}),ae=()=>{const{buttonAreaGroupProps:r,closeButtonProps:o,closeButtonTitle:e,dirty:t,getState:n,keepOpen:s,onClose:i,request:a,save:l,saveButtonProps:f,saveButtonTitle:u,setState:c,showKeepOpenSwitch:m}=le(p=>({buttonAreaGroupProps:p.layout?.buttonAreaGroupProps,closeButtonProps:p.layout?.closeButtonProps,closeButtonTitle:p.layout?.closeButtonTitle,dirty:p.dirty,getState:p.getState,keepOpen:p.keepOpen,onClose:p.onClose,request:p.request,save:p.save,saveButtonProps:p.layout?.saveButtonProps,saveButtonTitle:p.layout?.saveButtonTitle,setState:p.setState,showKeepOpenSwitch:p.layout?.showKeepOpenSwitch})),g=["select","view"].includes(a||"")||["update"].includes(a||"")&&!t;return d.jsx(w.Group,{justify:"center",p:"xs",style:{boxShadow:"2px 2px 5px rgba(47, 47, 47, 0.1)"},w:"100%",...r,children:d.jsxs(w.Group,{grow:!0,justify:"space-evenly",children:[typeof i=="function"&&d.jsx(w.Button,{color:"orange",leftSection:d.jsx(V.IconX,{}),miw:"8rem",px:"md",size:"sm",...o,onClick:()=>{i(n("values"))},children:e||"Close"}),m&&d.jsx(w.Switch,{checked:s,label:"Keep Open",onChange:p=>c("keepOpen",p.currentTarget.checked)}),d.jsx(w.Tooltip,{label:g?d.jsxs("p",{children:["Cannot save in view or select mode, or no changes made. ",d.jsx("br",{}),"Try changing some values."]}):d.jsx("p",{children:"Save the current record"}),children:d.jsx(w.Button,{bg:a==="delete"?"red":void 0,color:"green",leftSection:d.jsx(V.IconDeviceFloppy,{}),miw:"8rem",px:"md",size:"sm",...f,disabled:g,onClick:()=>l(),children:u||"Save"})})]})})},Jt=()=>{const{buttonArea:r,getState:o,opened:e,renderBottom:t,setState:n}=le(s=>({buttonArea:s.layout?.buttonArea,getState:s.getState,opened:s.opened,renderBottom:s.layout?.renderBottom,setState:s.setState}));return t?t(d.jsx(ae,{}),e??!1,o("onClose")??(()=>{n("opened",!1)}),o("onOpen")??(()=>{n("opened",!0)}),o):r==="bottom"?d.jsx(ae,{}):d.jsx(d.Fragment,{})},Yt=()=>{const{buttonArea:r,getState:o,opened:e,renderTop:t,setState:n}=le(s=>({buttonArea:s.layout?.buttonArea,getState:s.getState,opened:s.opened,renderTop:s.layout?.renderTop,setState:s.setState}));return t?t(d.jsx(ae,{}),e??!1,o("onClose")??(()=>{n("opened",!1)}),o("onOpen")??(()=>{n("opened",!0)}),o):r==="top"?d.jsx(ae,{}):d.jsx(d.Fragment,{})},Ve=r=>{const{disableHTMlForm:o,getFormMethods:e,id:t,load:n,loading:s,loadingOverlayProps:i,opened:a,request:l,reset:f,save:u,scrollAreaProps:c}=le(m=>({disableHTMlForm:m.disableHTMlForm,getFormMethods:m.getFormMethods,id:m.id,load:m.load,loading:m.loading,loadingOverlayProps:m.loadingOverlayProps,opened:m.opened,request:m.request,reset:m.reset,save:m.save,scrollAreaProps:m.scrollAreaProps}));return S.useEffect(()=>{e&&e()&&l!=="insert"&&n(!0)},[e,l,a]),d.jsxs(d.Fragment,{children:[d.jsx(Yt,{}),d.jsxs(w.ScrollAreaAutosize,{offsetScrollbars:!0,scrollbarSize:4,type:"auto",...c,style:{height:"100%",padding:"0.25rem",width:"100%",...c?.style},children:[o?d.jsx("div",{"x-data-request":l,children:r.children},`former_d${t}`):d.jsx("form",{id:`former_f${t}`,onReset:m=>f(m),onSubmit:m=>u(m),"x-data-request":l,children:r.children},`former_${t}`),d.jsx(w.LoadingOverlay,{loaderProps:{type:"bars"},overlayProps:{backgroundOpacity:.5},...i,visible:s})]}),d.jsx(Jt,{})]})},Xt=S.forwardRef(function(o,e){const{getAllState:t,getState:n,onChange:s,onClose:i,onOpen:a,opened:l,primeData:f,reset:u,save:c,setState:m,useFormProps:g,validate:p,values:b,wrapper:E}=le(_=>({getAllState:_.getAllState,getState:_.getState,onChange:_.onChange,onClose:_.onClose,onOpen:_.onOpen,opened:_.opened,primeData:_.primeData,reset:_.reset,save:_.save,setState:_.setState,useFormProps:_.useFormProps,validate:_.validate,values:_.values,wrapper:_.wrapper})),R=ee.useForm({defaultValues:f,mode:"all",shouldUseNativeValidation:!0,values:b,...g});return S.useImperativeHandle(e,()=>({close:async()=>{i?.(n("values")),m("opened",!1)},getValue:()=>n("values"),reset:()=>{u()},save:async()=>await c(),setValue:_=>{s?.(_,t())},show:async()=>{m("opened",!0),a?.()},validate:async()=>await p()}),[n,t,s,p,c,u,m,i,a]),S.useEffect(()=>{m("getFormMethods",()=>R),R&&R.subscribe({callback:({isDirty:_})=>{m("dirty",_)},formState:{isDirty:!0}})},[R]),d.jsx(ee.FormProvider,{...R,children:typeof E=="function"?E(d.jsx(Ve,{children:o.children}),l??!1,i??(()=>{m("opened",!1)}),a??(()=>{m("opened",!0)}),n):d.jsx(Ve,{children:o.children||null})})}),Se=S.forwardRef(function(o,e){return!o.opened&&typeof o.wrapper=="function"?null:d.jsx(Ut,{...o,children:d.jsx(Xt,{ref:e,children:o.children})})});function Qt(r){return async(o,e,t,n)=>{let i=`${r.url.replace(/\/$/,"")}`;e!=="insert"&&n&&(i=`${i}/${n}`);const a={operation:o==="read"?"read":e==="delete"?"delete":e==="update"?"update":"create"};o==="mutate"&&(a.data=t);const l={cache:"no-cache",signal:r.signal,...r.fetchOptions,body:JSON.stringify(a),headers:{Authorization:`Bearer ${r.authToken}`,"Content-Type":"application/json",...r.fetchOptions?.headers},method:"POST"},f=await fetch(i,l);if(!f.ok){const c=await f.text();throw c&&c.length>4?new Error(`${c}`):new Error(`API request failed with status ${f.status}`)}return await f.json()}}function Zt(r){return async(o,e,t,n)=>{const s=r.url??"";let i=s;const a={cache:"no-cache",signal:r.signal,...r.fetchOptions,body:o==="mutate"&&e!=="delete"?JSON.stringify(t):void 0,headers:{Authorization:`Bearer ${r.authToken}`,"Content-Type":"application/json",...r.fetchOptions?.headers},method:o==="read"?"GET":e==="delete"?"DELETE":e==="update"?"PUT":"POST"};e!=="insert"&&(i=`${s}/${n}`);const l=await fetch(i,a);if(!l.ok){const u=await l.text();throw u&&u.length>4?new Error(`${u}`):new Error(`API request failed with status ${l.status}`)}return await l.json()}}const en=r=>{const{children:o,former:e,onClose:t,opened:n,...s}=r;return d.jsx(Se,{...e,onClose:t,opened:n,wrapper:(i,a,l,f,u)=>{const c=u("values"),m=u("request"),g=u("uniqueKeyField")??"id";return d.jsx(w.Drawer,{closeOnClickOutside:!1,h:"100%",title:m==="delete"?`Delete Record - ${c?.[g]}`:m==="insert"?"New Record":`Edit Record - ${c?.[g]}`,...s,onClose:()=>l?.(),opened:a??!1,children:i})},children:o})},tn=r=>{const{children:o,former:e,onClose:t,opened:n,...s}=r;return d.jsx(Se,{...e,onClose:t,opened:n,wrapper:(i,a,l,f,u)=>{const c=u("values"),m=u("request"),g=u("uniqueKeyField")??"id";return d.jsx(w.Modal,{closeOnClickOutside:!1,h:"100%",title:m==="delete"?`Delete Record - ${c?.[g]}`:m==="insert"?"New Record":`Edit Record - ${c?.[g]}`,...s,onClose:()=>l?.(),opened:a??!1,children:i})},children:o})},nn=r=>{const{children:o,former:e,onClose:t,opened:n,target:s,...i}=r;return d.jsx(Se,{...e,onClose:t,opened:n,wrapper:(a,l,f)=>d.jsxs(w.Popover,{closeOnClickOutside:!1,middlewares:{inline:!0},trapFocus:!0,width:250,withArrow:!0,...i,onClose:()=>f?.(),opened:l??!1,children:[d.jsx(w.Popover.Target,{children:s}),d.jsx(w.Popover.Dropdown,{children:a})]}),children:o})},rn=r=>{const[o,e]=S.useState({onChange:r?.onChange,onClose:r?.onClose??(()=>e(l=>({...l,opened:!1}))),opened:r?.opened??!1,primeData:r?.primeData??r?.values,request:r?.request??"insert",values:r?.values}),t=l=>{e(f=>({...f,...l}))},{onChange:n,onClose:s,opened:i,...a}=o;return{former:{...a,onChange:n},formerWrapper:{onClose:s,opened:i},open:(l,f)=>{e(u=>({...u,opened:!0,primeData:f,request:l,values:f}))},updateState:t}},on=r=>{const[o,e]=S.useState(!1);return d.jsx(w.Tooltip,{label:r.tooltip??"",withArrow:!0,children:d.jsx(w.Button,{loaderProps:{type:"bars"},...r,loading:o||r.loading,onClick:t=>{r.onClick&&(e(!0),r.onClick(t).finally(()=>e(!1)))},children:r.children})})},sn=r=>{const[o,e]=S.useState(!1);return d.jsx(w.Tooltip,{label:r.tooltip??"",withArrow:!0,children:d.jsxs(w.ActionIcon,{loaderProps:{type:"bars"},...r,loading:o||r.loading,onClick:t=>{r.onClick&&(e(!0),r.onClick(t).finally(()=>e(!1)))},children:[r.children,d.jsxs(w.VisuallyHidden,{children:["Action Button: ",r.tooltip??r.sid??""]})]})})},an=r=>{const{control:o,name:e,sid:t,tooltip:n,...s}=r;return d.jsx(ee.Controller,{control:o,name:e,render:({field:i,formState:a})=>d.jsx(w.Tooltip,{label:n??"",withArrow:!0,children:S.createElement(w.NativeSelect,{...s,...i,disabled:a.disabled,id:`field_${e}_${t??""}`,key:`field_${e}_${t??""}`},r.children)})})},ln=r=>{const{control:o,name:e,sid:t,tooltip:n,...s}=r;return d.jsx(ee.Controller,{control:o,name:e,render:({field:i,formState:a})=>d.jsx(w.Tooltip,{label:n??"",withArrow:!0,children:S.createElement(w.PasswordInput,{...s,...i,disabled:a.disabled,id:`field_${e}_${t??""}`,key:`field_${e}_${t??""}`},r.children)})})},cn=r=>{const{control:o,name:e,sid:t,tooltip:n,...s}=r;return d.jsx(ee.Controller,{control:o,name:e,render:({field:i,formState:a})=>d.jsx(w.Tooltip,{label:n??"",withArrow:!0,children:S.createElement(w.Switch,{...s,...i,checked:!!i.value,disabled:a.disabled,id:`field_${e}_${t??""}`,key:`field_${e}_${t??""}`,onChange:l=>{i.onChange((l.currentTarget??l.target)?.checked)}})})})},un=r=>{const{control:o,name:e,sid:t,tooltip:n,...s}=r;return d.jsx(ee.Controller,{control:o,name:e,render:({field:i,formState:a})=>d.jsx(w.Tooltip,{label:n??"",withArrow:!0,children:S.createElement(w.Textarea,{minRows:4,...s,...i,disabled:a.disabled,id:`field_${e}_${t??""}`,key:`field_${e}_${t??""}`},r.children)})})},dn=r=>{const{control:o,name:e,sid:t,tooltip:n,...s}=r;return d.jsx(ee.Controller,{control:o,name:e,render:({field:i,formState:a})=>d.jsx(w.Tooltip,{label:n??"",withArrow:!0,children:S.createElement(w.TextInput,{...s,...i,disabled:a.disabled,id:`field_${e}_${t??""}`,key:`field_${e}_${t??""}`},r.children)})})},He=r=>Symbol.iterator in r,Ke=r=>"entries"in r,We=(r,o)=>{const e=r instanceof Map?r:new Map(r.entries()),t=o instanceof Map?o:new Map(o.entries());if(e.size!==t.size)return!1;for(const[n,s]of e)if(!t.has(n)||!Object.is(s,t.get(n)))return!1;return!0},fn=(r,o)=>{const e=r[Symbol.iterator](),t=o[Symbol.iterator]();let n=e.next(),s=t.next();for(;!n.done&&!s.done;){if(!Object.is(n.value,s.value))return!1;n=e.next(),s=t.next()}return!!n.done&&!!s.done};function hn(r,o){return Object.is(r,o)?!0:typeof r!="object"||r===null||typeof o!="object"||o===null||Object.getPrototypeOf(r)!==Object.getPrototypeOf(o)?!1:He(r)&&He(o)?Ke(r)&&Ke(o)?We(r,o):fn(r,o):We({entries:()=>Object.entries(r)},{entries:()=>Object.entries(o)})}var ue={exports:{}},we={},de={exports:{}},xe={};var Ue;function mn(){if(Ue)return xe;Ue=1;var r=S;function o(c,m){return c===m&&(c!==0||1/c===1/m)||c!==c&&m!==m}var e=typeof Object.is=="function"?Object.is:o,t=r.useState,n=r.useEffect,s=r.useLayoutEffect,i=r.useDebugValue;function a(c,m){var g=m(),p=t({inst:{value:g,getSnapshot:m}}),b=p[0].inst,E=p[1];return s(function(){b.value=g,b.getSnapshot=m,l(b)&&E({inst:b})},[c,g,m]),n(function(){return l(b)&&E({inst:b}),c(function(){l(b)&&E({inst:b})})},[c]),i(g),g}function l(c){var m=c.getSnapshot;c=c.value;try{var g=m();return!e(c,g)}catch{return!0}}function f(c,m){return m()}var u=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?f:a;return xe.useSyncExternalStore=r.useSyncExternalStore!==void 0?r.useSyncExternalStore:u,xe}var Ce={};var Je;function gn(){return Je||(Je=1,process.env.NODE_ENV!=="production"&&(function(){function r(g,p){return g===p&&(g!==0||1/g===1/p)||g!==g&&p!==p}function o(g,p){u||n.startTransition===void 0||(u=!0,console.error("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var b=p();if(!c){var E=p();s(b,E)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),c=!0)}E=i({inst:{value:b,getSnapshot:p}});var R=E[0].inst,_=E[1];return l(function(){R.value=b,R.getSnapshot=p,e(R)&&_({inst:R})},[g,b,p]),a(function(){return e(R)&&_({inst:R}),g(function(){e(R)&&_({inst:R})})},[g]),f(b),b}function e(g){var p=g.getSnapshot;g=g.value;try{var b=p();return!s(g,b)}catch{return!0}}function t(g,p){return p()}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var n=S,s=typeof Object.is=="function"?Object.is:r,i=n.useState,a=n.useEffect,l=n.useLayoutEffect,f=n.useDebugValue,u=!1,c=!1,m=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?t:o;Ce.useSyncExternalStore=n.useSyncExternalStore!==void 0?n.useSyncExternalStore:m,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()),Ce}var Ye;function ut(){return Ye||(Ye=1,process.env.NODE_ENV==="production"?de.exports=mn():de.exports=gn()),de.exports}var Xe;function pn(){if(Xe)return we;Xe=1;var r=S,o=ut();function e(f,u){return f===u&&(f!==0||1/f===1/u)||f!==f&&u!==u}var t=typeof Object.is=="function"?Object.is:e,n=o.useSyncExternalStore,s=r.useRef,i=r.useEffect,a=r.useMemo,l=r.useDebugValue;return we.useSyncExternalStoreWithSelector=function(f,u,c,m,g){var p=s(null);if(p.current===null){var b={hasValue:!1,value:null};p.current=b}else b=p.current;p=a(function(){function R(x){if(!_){if(_=!0,k=x,x=m(x),g!==void 0&&b.hasValue){var v=b.value;if(g(v,x))return I=v}return I=x}if(v=I,t(k,x))return v;var O=m(x);return g!==void 0&&g(v,O)?(k=x,v):(k=x,I=O)}var _=!1,k,I,B=c===void 0?null:c;return[function(){return R(u())},B===null?void 0:function(){return R(B())}]},[u,c,m,g]);var E=n(f,p[0],p[1]);return i(function(){b.hasValue=!0,b.value=E},[E]),l(E),E},we}var _e={};var Qe;function Sn(){return Qe||(Qe=1,process.env.NODE_ENV!=="production"&&(function(){function r(f,u){return f===u&&(f!==0||1/f===1/u)||f!==f&&u!==u}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var o=S,e=ut(),t=typeof Object.is=="function"?Object.is:r,n=e.useSyncExternalStore,s=o.useRef,i=o.useEffect,a=o.useMemo,l=o.useDebugValue;_e.useSyncExternalStoreWithSelector=function(f,u,c,m,g){var p=s(null);if(p.current===null){var b={hasValue:!1,value:null};p.current=b}else b=p.current;p=a(function(){function R(x){if(!_){if(_=!0,k=x,x=m(x),g!==void 0&&b.hasValue){var v=b.value;if(g(v,x))return I=v}return I=x}if(v=I,t(k,x))return v;var O=m(x);return g!==void 0&&g(v,O)?(k=x,v):(k=x,I=O)}var _=!1,k,I,B=c===void 0?null:c;return[function(){return R(u())},B===null?void 0:function(){return R(B())}]},[u,c,m,g]);var E=n(f,p[0],p[1]);return i(function(){b.hasValue=!0,b.value=E},[E]),l(E),E},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()),_e}var Ze;function vn(){return Ze||(Ze=1,process.env.NODE_ENV==="production"?ue.exports=pn():ue.exports=Sn()),ue.exports}var yn=vn();const bn=Ot(yn),et=r=>{let o;const e=new Set,t=(f,u)=>{const c=typeof f=="function"?f(o):f;if(!Object.is(c,o)){const m=o;o=u??(typeof c!="object"||c===null)?c:Object.assign({},o,c),e.forEach(g=>g(o,m))}},n=()=>o,a={setState:t,getState:n,getInitialState:()=>l,subscribe:f=>(e.add(f),()=>e.delete(f))},l=o=r(t,n,a);return a},wn=(r=>r?et(r):et),{useSyncExternalStoreWithSelector:xn}=bn,Cn=r=>r;function _n(r,o=Cn,e){const t=xn(r.subscribe,r.getState,r.getInitialState,o,e);return S.useDebugValue(t),t}const dt="APP_GLO",En=new Set(["app.controls","initialized","session.connected","session.error","session.loading"]),Rn=r=>En.has(r),Oe=(r,o="")=>{if(typeof r=="function")return;if(r===null||typeof r!="object")return r;if(Array.isArray(r))return r.map((t,n)=>Oe(t,`${o}[${n}]`));const e={};for(const[t,n]of Object.entries(r)){const s=o?`${o}.${t}`:t;Rn(s)||typeof n=="function"||(e[t]=Oe(n,s))}return e};async function On(){const r={},o=["layout","navigation","owner","program","session","user"];for(const e of o){const t=`${dt}:${e}`;if(e==="session"){try{if(typeof localStorage<"u"){const n=localStorage.getItem(t);n&&(r[e]=JSON.parse(n))}}catch(n){console.error(`Failed to load ${e} from localStorage:`,n)}continue}try{if(typeof indexedDB<"u"){const n=await rt.get(t);if(n){r[e]=JSON.parse(n);continue}}}catch(n){console.error(`Failed to load ${e} from IndexedDB, falling back to localStorage:`,n)}try{if(typeof localStorage<"u"){const n=localStorage.getItem(t);n&&(r[e]=JSON.parse(n))}}catch(n){console.error(`Failed to load ${e} from localStorage:`,n)}}return r}async function In(r){const o=["layout","navigation","owner","program","session","user"];for(const e of o){const t=`${dt}:${e}`,n=Oe(r[e],e),s=JSON.stringify(n);if(e==="session"){try{typeof localStorage<"u"&&localStorage.setItem(t,s)}catch(i){console.error(`Failed to save ${e} to localStorage:`,i)}continue}try{if(typeof indexedDB<"u"){await rt.set(t,s);continue}}catch(i){console.error(`Failed to save ${e} to IndexedDB, falling back to localStorage:`,i)}try{typeof localStorage<"u"&&localStorage.setItem(t,s)}catch(i){console.error(`Failed to save ${e} to localStorage:`,i)}}}const Ie={initialized:!1,layout:{bottomBar:{open:!1},leftBar:{open:!1},rightBar:{open:!1},topBar:{open:!1}},navigation:{menu:[]},owner:{guid:"",id:0,name:""},program:{controls:{},environment:"production",guid:"",name:"",slug:""},session:{apiURL:"",authToken:"",connected:!0,loading:!1,loggedIn:!1},user:{guid:"",username:""}},kn=r=>({setProgram:o=>r(e=>({program:{...e.program,...o}}))}),An=r=>({setApiURL:o=>r(e=>({session:{...e.session,apiURL:o}})),setAuthToken:o=>r(e=>({session:{...e.session,authToken:o}})),setSession:o=>r(e=>({session:{...e.session,...o}}))}),jn=r=>({setOwner:o=>r(e=>({owner:{...e.owner,...o}}))}),Tn=r=>({setUser:o=>r(e=>({user:{...e.user,...o}}))}),Fn=r=>({setBottomBar:o=>r(e=>({layout:{...e.layout,bottomBar:{...e.layout.bottomBar,...o}}})),setLayout:o=>r(e=>({layout:{...e.layout,...o}})),setLeftBar:o=>r(e=>({layout:{...e.layout,leftBar:{...e.layout.leftBar,...o}}})),setRightBar:o=>r(e=>({layout:{...e.layout,rightBar:{...e.layout.rightBar,...o}}})),setTopBar:o=>r(e=>({layout:{...e.layout,topBar:{...e.layout.topBar,...o}}}))}),Mn=r=>({setCurrentPage:o=>r(e=>({navigation:{...e.navigation,currentPage:o}})),setMenu:o=>r(e=>({navigation:{...e.navigation,menu:o}})),setNavigation:o=>r(e=>({navigation:{...e.navigation,...o}}))}),Pn=(r,o)=>{const e=async t=>{try{r(i=>({session:{...i.session,apiURL:t||i.session.apiURL,loading:!0}}));const n=o(),s=await n.onFetchSession?.(n);r(i=>({...i,...s,layout:{...i.layout,...s?.layout},navigation:{...i.navigation,...s?.navigation},owner:{...i.owner,...s?.owner},program:{...i.program,...s?.program,updatedAt:new Date().toISOString()},session:{...i.session,...s?.session,connected:!0,loading:!1},user:{...i.user,...s?.user}}))}catch(n){r(s=>({session:{...s.session,connected:!1,error:`Load Exception: ${String(n)}`,loading:!1}}))}};return{fetchData:async t=>(await Ee(),Re(()=>e(t))),isLoggedIn:()=>{const t=o().session;return!(!t.loggedIn||!t.authToken||t.expiryDate&&new Date(t.expiryDate)<new Date)},login:async(t,n)=>(await Ee(),Re(async()=>{try{r(a=>({session:{...a.session,authToken:t??"",expiryDate:new Date(Date.now()+1440*60*1e3).toISOString(),loading:!0,loggedIn:!0},user:{...a.user,...n}}));const s=o(),i=await s.onLogin?.(s);i&&r(a=>({...a,owner:i.owner?{...a.owner,...i.owner}:a.owner,program:i.program?{...a.program,...i.program}:a.program,session:i.session?{...a.session,...i.session}:a.session,user:i.user?{...a.user,...i.user}:a.user})),await e()}catch(s){r(i=>({session:{...i.session,connected:!1,error:`Login Exception: ${String(s)}`,loading:!1,loggedIn:!1}}))}finally{r(s=>({session:{...s.session,loading:!1}}))}})),logout:async()=>(await Ee(),Re(async()=>{try{r(s=>({...Ie,session:{...Ie.session,apiURL:s.session.apiURL,expiryDate:void 0,loading:!0,loggedIn:!1}}));const t=o(),n=await t.onLogout?.(t);n&&r(s=>({...s,owner:n.owner?{...s.owner,...n.owner}:s.owner,program:n.program?{...s.program,...n.program}:s.program,session:n.session?{...s.session,...n.session}:s.session,user:n.user?{...s.user,...n.user}:s.user})),await e()}catch(t){r(n=>({session:{...n.session,connected:!1,error:`Logout Exception: ${String(t)}`,loading:!1}}))}finally{r(t=>({session:{...t.session,loading:!1}}))}}))}};let ft=!1,ge=null,tt=Promise.resolve();const Ee=async()=>{ge&&await ge},Re=async r=>{const o=tt;let e;tt=new Promise(t=>{e=t});try{return await o,await r()}finally{e()}},L=wn((r,o)=>({...Ie,...kn(r),...An(r),...jn(r),...Tn(r),...Fn(r),...Mn(r),...Pn(r,o)}));ge=On().then(r=>{L.setState(o=>({...o,...r,initialized:!0,session:{...o.session,...r.session,connected:!0,loading:!1}}),!0)}).catch(r=>{console.error("Error loading storage:",r),L.setState({initialized:!0})}).finally(()=>{ft=!0,ge=null});L.subscribe(r=>{ft&&In(r).catch(o=>{console.error("Error saving storage:",o)})});const Dn=(r=>o=>_n(r,o,hn)),zn=Dn(L),$n=r=>{L.getState().setApiURL(r)},Nn=()=>L.getState().session.apiURL??"",Bn=()=>L.getState().session.authToken??"",Ln=()=>L.getState().isLoggedIn(),Gn=r=>{L.getState().setAuthToken(r)},ht=()=>L.getState(),mt=S.createContext(null);function qn({apiURL:r,autoFetch:o=!0,children:e,fetchOnMount:t=!0,onFetchSession:n,onLogin:s,onLogout:i,program:a,throttleMs:l=0}){const f=S.useRef(0),u=S.useRef(!1),c=S.useRef(!1),m=S.useCallback(async b=>{const E=Date.now(),R=E-f.current;if(!u.current&&!(l>0&&R<l))try{u.current=!0,f.current=E,await L.getState().fetchData(b)}finally{u.current=!1}},[l]),g=S.useCallback(async()=>{await m()},[m]);S.useEffect(()=>{r&&L.getState().setApiURL(r)},[r]),S.useEffect(()=>{a&&L.getState().setProgram(a)},[a]),S.useEffect(()=>{n&&L.setState({onFetchSession:n})},[n]),S.useEffect(()=>{s&&L.setState({onLogin:s})},[s]),S.useEffect(()=>{i&&L.setState({onLogout:i})},[i]),S.useEffect(()=>{c.current||(c.current=!0,o&&t&&m(r).catch(b=>{console.error("Failed to fetch on mount:",b)}))},[r,o,t,m]);const p=S.useMemo(()=>({fetchData:m,getState:ht,refetch:g}),[m,g]);return d.jsx(mt.Provider,{value:p,children:e})}function Vn(){const r=S.useContext(mt);if(!r)throw new Error("useGlobalStateStoreContext must be used within GlobalStateStoreProvider");return r}function X(r){return btoa(encodeURIComponent(r).replace(/%([0-9A-F]{2})/g,(o,e)=>String.fromCharCode(Number.parseInt(e,16))))}const Hn="gridler_golang_restapi_v2_token",Kn=(r,o)=>{const e=[...r.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=`__${X(e[t].value)}__`),e[t].type==="advsql"&&!e[t].value.startsWith("__")&&(e[t].value=`__${X(e[t].value)}__`),e[t].type==="custom-sql-or"&&!e[t].value.startsWith("__")&&(e[t].value=`__${X(e[t].value)}__`),e[t].type==="custom-sql-join"&&!e[t].value.startsWith("__")&&(e[t].value=`__${X(e[t].value)}__`),e[t].type==="not-select-fields"&&!e[t].value.startsWith("__")&&(e[t].value=`__${X(e[t].value)}__`),e[t].type==="custom-sql-w"&&!e[t].value.startsWith("__")&&(e[t].value=`__${X(e[t].value)}__`),e[t].type==="select-fields"&&!e[t].value.startsWith("__")&&(e[t].value=`__${X(e[t].value)}__`),e[t].type==="cql-sel"&&!e[t].value.startsWith("__")&&(e[t].value=`__${X(e[t].value)}__`),o&&((!e||e.length===0)&&o.set("x-limit","10"),e[t].type==="association_autoupdate"&&o.set("association_autoupdate",e[t].value??"1"),e[t].type==="association_autocreate"&&o.set("association_autocreate",e[t].value??"1"),e[t].type==="searchop"||e[t].type==="searchor"||e[t].type==="searchand"?o.set(encodeURIComponent(`x-${e[t].type}-${e[t].op}-${e[t].name}`),String(e[t].value)):o.set(encodeURIComponent(`x-${e[t].type}${e[t].name&&e[t].name!==""?"-"+e[t].name:""}`),String(e[t].value)));return e},re=(r,o)=>{const e=new Headers,t={},n=nt?.();if(n&&n!=="")e.set("Authorization",`Token ${n}`);else{const i=nt();i&&e.set("Authorization",`Token ${i}`)}o&&o.forEach((i,a)=>{e.set(a,i)});const s=[];for(const i of r?.filter(a=>!!a)??[]){const a=s.findIndex(l=>l.name===i.name&&l.type===i.type);a===-1?s.push(i):s[a]=i}if(Kn(s,e),e?.forEach((i,a)=>{t[a]=i}),o)for(const i of Object.keys(t))o.set(i,t[i]);return t},Wn={getAuthToken:()=>{if(localStorage){const r=localStorage.getItem(Hn);if(r)return r}}},nt=()=>Wn?.getAuthToken?.();function Un(r,o){if(!r||!o||r.includes("..")||r.includes("[]")||/\[\s*\]/.test(r))return;const e=r.replace(/\[(\w+)\]/g,".$1").split(".").filter(Boolean);if(e.length!==0)return e.reduce((t,n)=>{if(t!=null&&typeof t=="object")return t[n]},o)}const{Provider:Jn,useStore:Fe}=pe.createSyncStore((r,o)=>({hide:e=>{o().setInstanceState(e,"visible",!1)},menus:[],setInstanceState:(e,t,n)=>{r(U.produce(s=>{const i=s?.menus?.findIndex(a=>a.id===e);i>=0&&(s.menus[i][t]=n)}))},setState:(e,t)=>{r(U.produce(n=>{n[e]=t}))},show:(e,t)=>{const n=o(),s=n.menus.findIndex(a=>a.id===e),i=n.menus[s]?{...n.menus[s]}:{};Object.assign(i,t),i.id=i.id??e,i.visible=!(i.visible??!1),s<0?n.setState("menus",[...n.menus,i]):r(U.produce(a=>{a.menus||(a.menus=[]),a.menus[s]={...a.menus[s],...i}}))}}),r=>({providerID:r.providerID??`MenuStore-${Te.getUUID()}`}));function Yn(){const{menus:r,providerID:o,setInstanceState:e,width:t}=Fe(n=>({menus:n.menus,providerID:n.providerID,setInstanceState:n.setInstanceState,setState:n.setState,width:n.width}));return d.jsx(w.Portal,{id:`bmm_portal_${o}`,children:S.Children.toArray(r?.map((n,s)=>S.createElement(w.Menu,{shadow:"md",width:t??"300",...n.menuProps,key:`bmm_menu_${o}_${s}`,onClose:()=>{e(n.id,"visible",!1),n.menuProps?.onClose?.()},opened:n.visible},d.jsx(w.Menu.Target,{children:d.jsx("div",{id:`bmm_${o}_${s}_target`,style:{left:n.x,position:"fixed",top:n.y,visibility:"hidden"}})}),d.jsx(w.Menu.Dropdown,{children:n.renderer?n.renderer:S.Children.toArray(n.items?.map((i,a)=>d.jsx(gt,{...i},`bmm_${o}_${s}_item${a}`)))}))))},`bmm_portal_${o}`)}const gt=({children:r,label:o,...e})=>{const[t,n]=S.useState(!1);return typeof e.renderer=="function"?e.renderer({...e,loading:t,renderer:void 0,setLoading:n}):typeof e.renderer=="object"?e.renderer:e.isDivider?d.jsx(w.Menu.Divider,{}):e.items&&e.items.length>0?d.jsxs(w.Menu.Sub,{children:[d.jsx(w.Menu.Sub.Target,{children:d.jsx(w.Menu.Sub.Item,{...e,disabled:t,onClick:s=>{e.onClick?.(s),e.onClickAsync&&(n(!0),e.onClickAsync(s).finally(()=>n(!1)))},styles:{itemLabel:{overflow:"auto",wordWrap:"break-word"},...e.styles},children:r??o})}),d.jsx(w.Menu.Sub.Dropdown,{children:S.Children.toArray(e.items.map((s,i)=>d.jsx(gt,{...s},`bmm_subitem_${s?.id??""}${i}`)))})]}):!e.onClick&&!e.onClickAsync?d.jsxs(w.Menu.Label,{...e,children:[" ",r??o]}):d.jsx(w.Menu.Item,{...e,disabled:t,onClick:s=>{e.onClick?.(s),e.onClickAsync&&(n(!0),e.onClickAsync(s).finally(()=>n(!1)))},styles:{itemLabel:{overflow:"auto",wordWrap:"break-word"},...e.styles},children:r??o})};function pt(r){return d.jsxs(Jn,{...r,children:[d.jsx(Yn,{}),r.children]})}const St=[{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"}],vt=r=>{const o=r.storeState?.colFilters?.findIndex(i=>i.id===r.column.id)??-1,e=r.storeState?.colFilters?.[o]??{id:r.column.id,value:""},[t,n]=S.useState(e?.value??""),[s]=ie.useDebouncedValue(t,900);return S.useEffect(()=>{r.storeState.setStateFN("colFilters",i=>{const a=i?.findIndex(f=>f.id===r.column.id)??-1,l=i??[];return a>=0?l[a]={...l[a],...r.options,id:r.column.id,value:s}:l.push({operator:"contains",...r.options,id:r.column.id,value:s}),l})},[s,r.column.id,r.options,r.storeState]),d.jsx(w.TextInput,{onChange:i=>n(i.target.value),rightSection:d.jsx(w.ActionIcon,{color:"gray",onClick:()=>n(""),variant:"filled",children:d.jsx(V.IconX,{color:"red"})}),value:t??e?.value})},yt=r=>{const o=r.storeState?.colFilters?.findIndex(i=>i.id===r.column.id)??-1,e=r.storeState?.colFilters?.[o]??{id:r.column.id,operator:"contains"},[t,n]=S.useState(e?.operator??"contains"),[s]=ie.useDebouncedValue(t,900);return S.useEffect(()=>{r.storeState.setStateFN("colFilters",i=>{const a=i?.findIndex(f=>f.id===r.column.id)??-1,l=i??[];return a>=0?l[a]={...l[a],...r.options,id:r.column.id,operator:s}:l.push({...r.options,id:r.column.id,operator:s,value:""}),l})},[s,r.column.id,r.options,r.storeState]),d.jsx(w.Select,{comboboxProps:{withinPortal:!1},data:St,maxDropdownHeight:150,onChange:i=>n(i),placeholder:"Operator",searchable:!0,value:t??e?.operator,withScrollArea:!0})},ke=r=>d.jsxs(w.Stack,{onClick:o=>o.stopPropagation(),children:[d.jsx(yt,{...r}),d.jsx(vt,{...r})]}),Ae=r=>`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" fill="none">
9
+ color: hsl(${Math.max(0,Math.min(120-120*E,120))}deg 100% 31%);`,e?.key)}return e?.onChange&&!(s&&e.skipInitialOnChange)&&e.onChange(n),s=!1,n}return i.updateDeps=a=>{t=a},i}function Ne(r,o){if(r===void 0)throw new Error("Unexpected undefined");return r}const jt=(r,o)=>Math.abs(r-o)<1.01,Tt=(r,o,e)=>{let t;return function(...n){r.clearTimeout(t),t=r.setTimeout(()=>o.apply(this,n),e)}},Be=r=>{const{offsetWidth:o,offsetHeight:e}=r;return{width:o,height:e}},Ft=r=>r,Mt=r=>{const o=Math.max(r.startIndex-r.overscan,0),e=Math.min(r.endIndex+r.overscan,r.count-1),t=[];for(let n=o;n<=e;n++)t.push(n);return t},Pt=(r,o)=>{const e=r.scrollElement;if(!e)return;const t=r.targetWindow;if(!t)return;const n=i=>{const{width:a,height:l}=i;o({width:Math.round(a),height:Math.round(l)})};if(n(Be(e)),!t.ResizeObserver)return()=>{};const s=new t.ResizeObserver(i=>{const a=()=>{const l=i[0];if(l?.borderBoxSize){const f=l.borderBoxSize[0];if(f){n({width:f.inlineSize,height:f.blockSize});return}}n(Be(e))};r.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(a):a()});return s.observe(e,{box:"border-box"}),()=>{s.unobserve(e)}},Le={passive:!0},Ge=typeof window>"u"?!0:"onscrollend"in window,Dt=(r,o)=>{const e=r.scrollElement;if(!e)return;const t=r.targetWindow;if(!t)return;let n=0;const s=r.options.useScrollendEvent&&Ge?()=>{}:Tt(t,()=>{o(n,!1)},r.options.isScrollingResetDelay),i=u=>()=>{const{horizontal:c,isRtl:m}=r.options;n=c?e.scrollLeft*(m&&-1||1):e.scrollTop,s(),o(n,u)},a=i(!0),l=i(!1);e.addEventListener("scroll",a,Le);const f=r.options.useScrollendEvent&&Ge;return f&&e.addEventListener("scrollend",l,Le),()=>{e.removeEventListener("scroll",a),f&&e.removeEventListener("scrollend",l)}},zt=(r,o,e)=>{if(o?.borderBoxSize){const t=o.borderBoxSize[0];if(t)return Math.round(t[e.options.horizontal?"inlineSize":"blockSize"])}return r[e.options.horizontal?"offsetWidth":"offsetHeight"]},$t=(r,{adjustments:o=0,behavior:e},t)=>{var n,s;const i=r+o;(s=(n=t.scrollElement)==null?void 0:n.scrollTo)==null||s.call(n,{[t.options.horizontal?"left":"top"]:i,behavior:e})};class Nt{constructor(o){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.currentScrollToIndex=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.laneAssignments=new Map,this.pendingMeasuredCacheIndexes=[],this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let e=null;const t=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(n=>{n.forEach(s=>{const i=()=>{this._measureElement(s.target,s)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(i):i()})}));return{disconnect:()=>{var n;(n=t())==null||n.disconnect(),e=null},observe:n=>{var s;return(s=t())==null?void 0:s.observe(n,{box:"border-box"})},unobserve:n=>{var s;return(s=t())==null?void 0:s.unobserve(n)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,n])=>{typeof n>"u"&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:Ft,rangeExtractor:Mt,onChange:()=>{},measureElement:zt,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...e}},this.notify=e=>{var t,n;(n=(t=this.options).onChange)==null||n.call(t,this,e)},this.maybeNotify=ne(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:process.env.NODE_ENV!=="production"&&"maybeNotify",debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;const t=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==t){if(this.cleanup(),!t){this.maybeNotify();return}this.scrollElement=t,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((e=this.scrollElement)==null?void 0:e.window)??null,this.elementsCache.forEach(n=>{this.observer.observe(n)}),this.unsubs.push(this.options.observeElementRect(this,n=>{this.scrollRect=n,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(n,s)=>{this.scrollAdjustments=0,this.scrollDirection=s?this.getScrollOffset()<n?"forward":"backward":null,this.scrollOffset=n,this.isScrolling=s,this.maybeNotify()})),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}},this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{const n=new Map,s=new Map;for(let i=t-1;i>=0;i--){const a=e[i];if(n.has(a.lane))continue;const l=s.get(a.lane);if(l==null||a.end>l.end?s.set(a.lane,a):a.end<l.end&&n.set(a.lane,!0),n.size===this.options.lanes)break}return s.size===this.options.lanes?Array.from(s.values()).sort((i,a)=>i.end===a.end?i.index-a.index:i.end-a.end)[0]:void 0},this.getMeasurementOptions=ne(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes],(e,t,n,s,i,a)=>(this.prevLanes!==void 0&&this.prevLanes!==a&&(this.lanesChangedFlag=!0),this.prevLanes=a,this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:n,getItemKey:s,enabled:i,lanes:a}),{key:!1}),this.getMeasurements=ne(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:n,getItemKey:s,enabled:i,lanes:a},l)=>{if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(const m of this.laneAssignments.keys())m>=e&&this.laneAssignments.delete(m);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMeasuredCacheIndexes=[]),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(m=>{this.itemSizeCache.set(m.key,m.size)}));const f=this.lanesSettling?0:this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[],this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1);const u=this.measurementsCache.slice(0,f),c=new Array(a).fill(void 0);for(let m=0;m<f;m++){const g=u[m];g&&(c[g.lane]=m)}for(let m=f;m<e;m++){const g=s(m),p=this.laneAssignments.get(m);let b,E;if(p!==void 0&&this.options.lanes>1){b=p;const I=c[b],N=I!==void 0?u[I]:void 0;E=N?N.end+this.options.gap:t+n}else{const I=this.options.lanes===1?u[m-1]:this.getFurthestMeasurement(u,m);E=I?I.end+this.options.gap:t+n,b=I?I.lane:m%this.options.lanes,this.options.lanes>1&&this.laneAssignments.set(m,b)}const R=l.get(g),_=typeof R=="number"?R:this.options.estimateSize(m),k=E+_;u[m]={index:m,start:E,size:_,end:k,key:g,lane:b},c[b]=m}return this.measurementsCache=u,u},{key:process.env.NODE_ENV!=="production"&&"getMeasurements",debug:()=>this.options.debug}),this.calculateRange=ne(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,s)=>this.range=e.length>0&&t>0?Bt({measurements:e,outerSize:t,scrollOffset:n,lanes:s}):null,{key:process.env.NODE_ENV!=="production"&&"calculateRange",debug:()=>this.options.debug}),this.getVirtualIndexes=ne(()=>{let e=null,t=null;const n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,s,i)=>s===null||i===null?[]:e({startIndex:s,endIndex:i,overscan:t,count:n}),{key:process.env.NODE_ENV!=="production"&&"getVirtualIndexes",debug:()=>this.options.debug}),this.indexFromElement=e=>{const t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{const n=this.indexFromElement(e),s=this.measurementsCache[n];if(!s)return;const i=s.key,a=this.elementsCache.get(i);a!==e&&(a&&this.observer.unobserve(a),this.observer.observe(e),this.elementsCache.set(i,e)),e.isConnected&&this.resizeItem(n,this.options.measureElement(e,t,this))},this.resizeItem=(e,t)=>{const n=this.measurementsCache[e];if(!n)return;const s=this.itemSizeCache.get(n.key)??n.size,i=t-s;i!==0&&((this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(n,i,this):n.start<this.getScrollOffset()+this.scrollAdjustments)&&(process.env.NODE_ENV!=="production"&&this.options.debug&&console.info("correction",i),this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=i,behavior:void 0})),this.pendingMeasuredCacheIndexes.push(n.index),this.itemSizeCache=new Map(this.itemSizeCache.set(n.key,t)),this.notify(!1))},this.measureElement=e=>{if(!e){this.elementsCache.forEach((t,n)=>{t.isConnected||(this.observer.unobserve(t),this.elementsCache.delete(n))});return}this._measureElement(e,void 0)},this.getVirtualItems=ne(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{const n=[];for(let s=0,i=e.length;s<i;s++){const a=e[s],l=t[a];n.push(l)}return n},{key:process.env.NODE_ENV!=="production"&&"getVirtualItems",debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{const t=this.getMeasurements();if(t.length!==0)return Ne(t[ot(0,t.length-1,n=>Ne(t[n]).start,e)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getOffsetForAlignment=(e,t,n=0)=>{if(!this.scrollElement)return 0;const s=this.getSize(),i=this.getScrollOffset();t==="auto"&&(t=e>=i+s?"end":"start"),t==="center"?e+=(n-s)/2:t==="end"&&(e-=s);const a=this.getMaxScrollOffset();return Math.max(Math.min(a,e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));const n=this.measurementsCache[e];if(!n)return;const s=this.getSize(),i=this.getScrollOffset();if(t==="auto")if(n.end>=i+s-this.options.scrollPaddingEnd)t="end";else if(n.start<=i+this.options.scrollPaddingStart)t="start";else return[i,t];if(t==="end"&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];const a=t==="end"?n.end+this.options.scrollPaddingEnd:n.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,t,n.size),t]},this.isDynamicMode=()=>this.elementsCache.size>0,this.scrollToOffset=(e,{align:t="start",behavior:n}={})=>{n==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(e,t),{adjustments:void 0,behavior:n})},this.scrollToIndex=(e,{align:t="auto",behavior:n}={})=>{n==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),e=Math.max(0,Math.min(e,this.options.count-1)),this.currentScrollToIndex=e;let s=0;const i=10,a=f=>{if(!this.targetWindow)return;const u=this.getOffsetForIndex(e,f);if(!u){console.warn("Failed to get offset for index:",e);return}const[c,m]=u;this._scrollToOffset(c,{adjustments:void 0,behavior:n}),this.targetWindow.requestAnimationFrame(()=>{const g=()=>{if(this.currentScrollToIndex!==e)return;const p=this.getScrollOffset(),b=this.getOffsetForIndex(e,m);if(!b){console.warn("Failed to get offset for index:",e);return}jt(b[0],p)||l(m)};this.isDynamicMode()?this.targetWindow.requestAnimationFrame(g):g()})},l=f=>{this.targetWindow&&this.currentScrollToIndex===e&&(s++,s<i?(process.env.NODE_ENV!=="production"&&this.options.debug&&console.info("Schedule retry",s,i),this.targetWindow.requestAnimationFrame(()=>a(f))):console.warn(`Failed to scroll to index ${e} after ${i} attempts.`))};a(t)},this.scrollBy=(e,{behavior:t}={})=>{t==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+e,{adjustments:void 0,behavior:t})},this.getTotalSize=()=>{var e;const t=this.getMeasurements();let n;if(t.length===0)n=this.options.paddingStart;else if(this.options.lanes===1)n=((e=t[t.length-1])==null?void 0:e.end)??0;else{const s=Array(this.options.lanes).fill(null);let i=t.length-1;for(;i>=0&&s.some(a=>a===null);){const a=t[i];s[a.lane]===null&&(s[a.lane]=a.end),i--}n=Math.max(...s.filter(a=>a!==null))}return Math.max(n-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.laneAssignments=new Map,this.notify(!1)},this.setOptions(o)}}const ot=(r,o,e,t)=>{for(;r<=o;){const n=(r+o)/2|0,s=e(n);if(s<t)r=n+1;else if(s>t)o=n-1;else return n}return r>0?r-1:0};function Bt({measurements:r,outerSize:o,scrollOffset:e,lanes:t}){const n=r.length-1,s=l=>r[l].start;if(r.length<=t)return{startIndex:0,endIndex:n};let i=ot(0,n,s,e),a=i;if(t===1)for(;a<n&&r[a].end<e+o;)a++;else if(t>1){const l=Array(t).fill(0);for(;a<n&&l.some(u=>u<e+o);){const u=r[a];l[u.lane]=u.end,a++}const f=Array(t).fill(e+o);for(;i>=0&&f.some(u=>u>=e);){const u=r[i];f[u.lane]=u.start,i--}i=Math.max(0,i-i%t),a=Math.min(n,a+(t-1-a%t))}return{startIndex:i,endIndex:a}}const qe=typeof document<"u"?he.useLayoutEffect:he.useEffect;function Lt({useFlushSync:r=!0,...o}){const e=he.useReducer(()=>({}),{})[1],t={...o,onChange:(s,i)=>{var a;r&&i?Et.flushSync(e):e(),(a=o.onChange)==null||a.call(o,s,i)}},[n]=he.useState(()=>new Nt(t));return n.setOptions(t),qe(()=>n._didMount(),[]),qe(()=>n._willUpdate()),n}function Gt(r){return Lt({observeElementRect:Pt,observeElementOffset:Dt,scrollToFn:$t,...r})}const{Provider:st,useStore:it}=pe.createSyncStore((r,o)=>({boxerData:[],fetchData:async(e,t)=>{const n=o();if(n.dataSource==="local"||!n.onAPICall){const s=n.data??[];if(!e){r({boxerData:s,hasMore:!1,total:s.length});return}const i=s.filter(a=>a.label.toLowerCase().includes(e.toLowerCase()));r({boxerData:i,hasMore:!1,total:i.length});return}if(n.onAPICall)try{r({isFetching:!0});const s=t?0:n.page,i=await n.onAPICall({page:s,pageSize:n.pageSize,search:e});r(U.produce(a=>{t?(a.boxerData=i.data,a.page=0):a.boxerData=[...a.boxerData??[],...i.data],a.total=i.total,a.hasMore=a.boxerData.length<i.total,a.isFetching=!1}))}catch(s){console.error("Boxer fetchData error:",s),r({isFetching:!1})}},fetchMoreOnBottomReached:e=>{const t=o();if(!t.hasMore||t.isFetching)return;(e.scrollTop+e.clientHeight)/e.scrollHeight>.8&&t.loadMore()},getState:e=>o()?.[e],hasMore:!0,input:"",isFetching:!1,loadMore:async()=>{const e=o();!e.hasMore||e.isFetching||(r(U.produce(t=>{t.page=t.page+1})),await e.fetchData(e.search))},opened:!1,page:0,pageSize:50,search:"",selectedOptionIndex:-1,setInput:e=>{r({input:e})},setOpened:e=>{r({opened:e})},setSearch:e=>{r({search:e})},setSelectedOptionIndex:e=>{r({selectedOptionIndex:e})},setState:(e,t)=>{r(U.produce(n=>{n[e]=t}))},total:0}),({data:r=[],dataSource:o="local",pageSize:e=50,...t})=>({...t,boxerData:r,data:r,dataSource:o,hasMore:o==="server",pageSize:e,total:r.length})),at=S.forwardRef((r,o)=>{const{clearable:e=!0,combobox:t,disabled:n,error:s,isFetching:i,label:a,leftSection:l,onBlur:f,onClear:u,onSearch:c,placeholder:m,search:g}=r,p=i?d.jsx(w.Loader,{size:"xs"}):g&&e?d.jsx(w.ActionIcon,{onClick:b=>{b.stopPropagation(),u()},size:"sm",variant:"subtle",children:d.jsx(q.IconX,{size:16})}):null;return d.jsx(w.TextInput,{disabled:n,error:s,label:a,leftSection:l,onBlur:f,onChange:c,onClick:()=>t.openDropdown(),onFocus:()=>t.openDropdown(),placeholder:m,ref:o,rightSection:p,value:g})});at.displayName="BoxerTarget";const qt=r=>{const{boxerData:o,multiSelect:e,onOptionSubmit:t,value:n}=r;return{options:S.useMemo(()=>o.map((i,a)=>{const l=e?Array.isArray(n)&&n.includes(i.value):n===i.value;return d.jsx(w.Combobox.Option,{active:l,onClick:()=>{t(a)},value:String(a),children:e?d.jsxs("div",{style:{alignItems:"center",display:"flex",gap:"8px"},children:[d.jsx(w.Checkbox,{checked:l,onChange:()=>{},tabIndex:-1}),d.jsx("span",{children:i.label})]}):i.label},`${i.value}-${a}`)}),[o,n,e,t])}},lt=S.forwardRef((r,o)=>{const e=S.useRef(null),t=S.useRef(null),n=S.useRef(null),s=S.useRef(null),{boxerData:i,clearable:a,comboBoxProps:l,dropDownProps:f,error:u,fetchData:c,fetchMoreOnBottomReached:m,input:g,isFetching:p,label:b,mah:E,multiSelect:R,onBufferChange:_,onChange:k,opened:I,openOnClear:N,placeholder:x,scrollAreaProps:v,search:O,selectedOptionIndex:z,selectFirst:B,setInput:P,setOpened:F,setSearch:T,setSelectedOptionIndex:G,showAll:V,value:j}=it(y=>({boxerData:y.boxerData,clearable:y.clearable,comboBoxProps:y.comboBoxProps,dropDownProps:y.dropDownProps,error:y.error,fetchData:y.fetchData,fetchMoreOnBottomReached:y.fetchMoreOnBottomReached,input:y.input,isFetching:y.isFetching,label:y.label,mah:y.mah,multiSelect:y.multiSelect,onBufferChange:y.onBufferChange,onChange:y.onChange,opened:y.opened,openOnClear:y.openOnClear,placeholder:y.placeholder,scrollAreaProps:y.scrollAreaProps,search:y.search,selectedOptionIndex:y.selectedOptionIndex,selectFirst:y.selectFirst,setInput:y.setInput,setOpened:y.setOpened,setSearch:y.setSearch,setSelectedOptionIndex:y.setSelectedOptionIndex,showAll:y.showAll,value:y.value})),J=i.length,Y=Gt({count:J,estimateSize:()=>36,getScrollElement:()=>e.current}),Q=Y.getVirtualItems(),W=S.useCallback(y=>{const $=typeof y=="string"?parseInt(y,10):y,D=i[$];if(D)if(R){const M=Array.isArray(j)?j:[],te=M.includes(D.value)?M.filter(ye=>ye!==D.value):[...M,D.value];k?.(te);const ve=i.filter(ye=>te.includes(ye.value));_?.(ve)}else k?.(D.value),T(""),P(D.label),n.current=D.value,F(!1)},[i,R,j,k,_,T,P,F]),h=S.useCallback(()=>{V&&B?W(0):(k?.(R?[]:null),T(""),P(""),t.current?.focus()),N&&F(!0)},[V,B,R,k,T,P,N,F,W]),C=w.useVirtualizedCombobox({getOptionId:y=>String(y),onDropdownClose:()=>{F(!1)},onDropdownOpen:()=>{(!j||R&&(!Array.isArray(j)||j.length===0))&&(T(""),P("")),C.selectFirstOption()},onSelectedOptionSubmit:W,opened:I,selectedOptionIndex:z,setSelectedOptionIndex:y=>{G(y),y!==-1&&Y.scrollToIndex(y)},totalOptionsCount:i.length}),{options:A}=qt({boxerData:i,multiSelect:R,onOptionSubmit:W,value:j});return S.useEffect(()=>{c("",!0)},[]),S.useEffect(()=>{const y=setTimeout(()=>{O!==void 0&&I&&c(O,!0)},300);return()=>clearTimeout(y)},[O,I]),S.useEffect(()=>{if(R){const y=i.filter($=>Array.isArray(j)&&j.includes($.value)).map($=>$.label).join(", ");!I&&g!==y&&(P(y),T(""))}else{const y=i.find($=>$.value===j)?.label;g!==y&&(O??"")===""&&n.current!==j&&j?P(y??""):!j&&!n.current&&(O??"")===""&&(T(""),P(""))}if(R){const y=i.filter($=>Array.isArray(j)&&j.includes($.value))??[];JSON.stringify(s.current)!==JSON.stringify(y)&&(_?.(y),s.current=y)}else{const y=i?.find($=>$.value===j)??null;s.current?.value!==y?.value&&(_?.(y),s.current=y)}},[j,i,g,O,R,I,_,P,T]),S.useEffect(()=>{B&&(i?.length??0)>0&&!R&&(j||W?.(0))},[B,i,R]),S.useImperativeHandle(o,()=>({clear:()=>{h()},close:()=>{F(!1),C.closeDropdown()},focus:()=>{t.current?.focus()},getValue:()=>j,open:()=>{F(!0),C.openDropdown()},setValue:y=>{k?.(y)}})),d.jsxs(w.Combobox,{...l,resetSelectionOnOptionHover:!1,store:C,withinPortal:!0,children:[d.jsx(w.Combobox.Target,{children:d.jsx(w.Combobox.EventsTarget,{children:d.jsx(at,{clearable:a,combobox:C,error:u,isFetching:p,label:b,onBlur:()=>{!j&&!R&&(T(""),P(""),C.closeDropdown(),F(!1))},onClear:h,onSearch:y=>{T(y.currentTarget.value),P(y.currentTarget.value),F(!0)},placeholder:x,ref:t,search:g})})}),d.jsx(w.Combobox.Dropdown,{onKeyDown:()=>{t.current&&(t.current.value="",t.current?.focus())},p:2,...f,children:I&&A.length>0?d.jsx(w.Combobox.Options,{children:d.jsx(w.ScrollArea.Autosize,{...v,mah:E??200,viewportProps:{...v?.viewportProps,onScroll:y=>{m(y.currentTarget)},style:{border:"1px solid gray",borderRadius:4}},viewportRef:e,children:d.jsx("div",{style:{height:`${Y.getTotalSize()}px`,position:"relative",width:"100%"},children:d.jsx("div",{style:{left:0,position:"absolute",top:0,transform:`translateY(${Q[0]?.start??0}px)`,width:"100%"},children:Q.map(y=>d.jsx("div",{"data-index":y.index,ref:Y.measureElement,children:A[y.index]},y.key))})})})}):d.jsx(w.Combobox.Empty,{children:"Nothing found"})})]})});lt.displayName="BoxerInner";const ct=S.forwardRef((r,o)=>d.jsx(st,{...r,children:d.jsx(lt,{ref:o})}));ct.displayName="Boxer";class Vt{config={enabled:!0};reporters=[];sentryInstance=null;configure(o){this.config={...this.config,...o},this.reporters=[],o.sentry&&this.setupSentry(o.sentry),o.customAPI&&this.setupCustomAPI(o.customAPI),o.reporters&&this.reporters.push(...o.reporters)}destroy(){this.reporters=[],this.sentryInstance=null,this.config={enabled:!0}}getReporters(){return[...this.reporters]}isEnabled(){return!!this.config.enabled}async reportError(o,e,t){if(!this.config.enabled)return;let n={context:t,error:o,errorInfo:e,severity:"error",timestamp:Date.now()};if(this.config.beforeReport){const i=this.config.beforeReport(n);if(!i)return;n=i}const s=this.reporters.filter(i=>i.isEnabled()).map(async i=>{try{await i.captureError(n)}catch(a){console.error(`Error reporter "${i.name}" failed:`,a),this.config.onReportFailure&&this.config.onReportFailure(a,n)}});try{await Promise.all(s),this.config.onReportSuccess&&this.config.onReportSuccess(n)}catch(i){console.error("Error reporting failed:",i)}}setupCustomAPI(o){const e={captureError:async t=>{try{const n=o.transformPayload?o.transformPayload(t):{context:t.context,message:t.error.message,severity:t.severity||"error",stack:t.error.stack,timestamp:t.timestamp||Date.now()},s=await fetch(o.endpoint,{body:JSON.stringify(n),headers:{"Content-Type":"application/json",...o.headers},method:o.method||"POST"});if(!s.ok)throw new Error(`API request failed: ${s.statusText}`)}catch(n){console.error("Failed to send error to custom API:",n)}},isEnabled:()=>!!o.endpoint,name:"CustomAPI"};this.reporters.push(e)}setupSentry(o){const e={captureError:async t=>{if(!this.sentryInstance)try{const n=await Promise.resolve().then(()=>require("./index-wyM2YQFr.cjs"));n.init({beforeSend:o.beforeSend,dsn:o.dsn,environment:o.environment,ignoreErrors:o.ignoreErrors,release:o.release,tracesSampleRate:o.sampleRate||1}),this.sentryInstance=n}catch(n){console.error("Failed to initialize Sentry:",n);return}this.sentryInstance.withScope(n=>{t.severity&&n.setLevel(t.severity),t.context?.namespace&&n.setTag("namespace",t.context.namespace),t.context?.tags&&Object.entries(t.context.tags).forEach(([s,i])=>{n.setTag(s,i)}),t.context?.user&&n.setUser(t.context.user),t.context?.extra&&n.setExtras(t.context.extra),t.context?.componentStack&&n.setContext("react",{componentStack:t.context.componentStack}),this.sentryInstance.captureException(t.error)})},isEnabled:()=>!!this.sentryInstance,name:"Sentry"};this.reporters.push(e)}}const me=new Vt;class Ht extends S.PureComponent{constructor(o){super(o),this.state={error:null,errorInfo:null,showDetail:!1,timer:void 0,try:!1,tryCnt:0}}componentDidCatch(o,e){this.setState({error:o,errorInfo:e,try:!1}),me.reportError(o,e,{componentStack:e?.componentStack,namespace:this.props.namespace})}render(){return this.state.errorInfo?d.jsxs("div",{children:[d.jsx("h2",{children:"Error"}),this.state.error&&d.jsxs(d.Fragment,{children:[d.jsxs("h3",{children:["In: ",this.props.namespace??"default"]}),d.jsx("main",{children:this.state.error.toString()})]})]}):this.props.children}}let Kt={disabled:!1,onError:void 0};const be=()=>({...Kt});class Wt extends S.Component{constructor(o){super(o),this.state={error:null,errorInfo:null,showDetail:!1,timer:void 0,try:!1,tryCnt:0}}componentDidCatch(o,e){if(be()?.disabled)throw Error("ErrorBoundary pass through enabled, rethrowing error",{cause:o,info:e});this.setState({error:o,errorInfo:e,try:!1}),typeof be()?.onError=="function"&&be()?.onError?.(o,e),me.reportError(o,e,{componentStack:e?.componentStack,namespace:this.props.namespace})}render(){if(this.state.errorInfo)return d.jsxs("div",{children:[d.jsxs("h2",{style:{color:"var(--mantine-color-error)",display:"flex",gap:"8px"},children:[d.jsx(q.IconExclamationCircle,{color:"var(--mantine-color-error)",style:{height:w.rem(20),width:w.rem(20)}}),"A react error has occurred!"]}),d.jsx("h4",{children:"You can try one of these solutions to get back on track:"}),d.jsxs("ul",{children:[d.jsx("li",{children:"Report the error to our team"}),d.jsx("li",{children:"Hit the keys Ctrl-Shift-R"}),d.jsx("li",{children:"Make sure your web browser is up to date"}),d.jsx("li",{children:"Clear your browser cache and cookies"}),d.jsx("li",{children:"Try using a different web browser"}),d.jsx("li",{children:"Reset your layout and settings"}),d.jsx("li",{children:"Retry loading the application"})]}),d.jsxs(w.Group,{children:[d.jsx(w.Button,{color:"red",my:"md",onClick:()=>this.setState(o=>({showDetail:!o.showDetail})),size:"compact-xs",variant:"outline",children:"More"}),d.jsxs(w.Button,{color:"blue",disabled:this.state.tryCnt>2||this.state.try,my:"md",onClick:()=>this.retry(),size:"compact-xs",variant:"outline",children:["Retry ",this.state.tryCnt>0?`(${this.state.tryCnt})`:""]}),d.jsx(w.Button,{color:"yellow",disabled:this.state.wasReset,my:"md",onClick:()=>this.reset(),size:"compact-xs",variant:"outline",children:"Reset Layout or Settings"}),d.jsx(w.Button,{color:"green",disabled:this.state.reported,my:"md",onClick:()=>this.report(),size:"compact-xs",variant:"outline",children:"Report"})]}),this.state.error&&d.jsxs(w.Paper,{p:"md",shadow:"xs",style:{textAlign:"justify"},w:"50%",withBorder:!0,children:[this.props.namespace&&d.jsxs(w.Text,{size:"sm",children:["In: ",this.props.namespace]}),d.jsx(w.Text,{size:"sm",children:this.state.error.toString()})]}),d.jsx(w.Collapse,{in:this.state.showDetail,children:d.jsx(w.Code,{block:!0,color:"rgba(235, 86, 5, 0.6)",mah:"100vh",w:"100%",children:this.state.errorInfo.componentStack})})]});if(this.state.try){if(!this.state.timer){const o=setTimeout(()=>{clearTimeout(this.state.timer),this.setState(e=>({...e,timer:void 0,try:!1}))},1e3);this.setState(e=>({...e,timer:o}))}return d.jsxs("div",{children:["Retrying ",this.state.tryCnt,"..."]})}return this.props.children}async report(){if(this.props?.onReportClick){this.props.onReportClick(),this.setState(()=>({reported:!0}));return}this.state.error&&this.state.errorInfo&&(await me.reportError(this.state.error,this.state.errorInfo,{componentStack:this.state.errorInfo?.componentStack,namespace:this.props.namespace,tags:{reportedBy:"user"}}),this.setState(()=>({reported:!0})))}reset(){if(this.props?.onResetClick){this.props.onResetClick(),this.setState(()=>({wasReset:!0}));return}this.setState(()=>({wasReset:!0})),window.location.reload()}retry(){if(this.setState({try:!0,tryCnt:this.state.tryCnt+1}),this.props?.onRetryClick){this.props.onRetryClick();return}this.setState({error:void 0,errorInfo:void 0}),this.forceUpdate()}}const{Provider:Ut,useStore:le}=pe.createSyncStore((r,o)=>({getAllState:()=>o(),getState:e=>o()?.[e],load:async e=>{try{r({loading:!0});const t=o()?.uniqueKeyField||"id",n=o().values?.[t]??o().primeData?.[t];if(o().onAPICall&&n!==void 0){let s=await o().onAPICall("read",o().request||"insert",o().values,n);o().afterGet&&(s=await o().afterGet({...s},o())),r({loading:!1,values:s}),o().onChange?.(s,o())}e&&o().getFormMethods&&o().getFormMethods().reset()}catch(t){const n=t?.message??t;r({error:n,loading:!1}),o().onError?.(n,o())}r({loading:!1})},onChange:e=>{r({values:e})},request:"insert",reset:async()=>{const e=o();e.getFormMethods&&(e.request!=="insert"&&await e.load(!0),e.getFormMethods().reset({...e.values,...e.primeData}))},save:async e=>{try{const t=o().keepOpen??!1;if(r({loading:!0}),o().getFormMethods){const n=o().getFormMethods();let s=n.getValues();o().beforeSave&&(s=await o().beforeSave(s,o()));let i=!1;if(await n.handleSubmit(l=>{s=l},l=>{const f=l.root?.message||"Validation errors";r({error:f,loading:!1}),o().onError?.(f,o()),i=!0})(e),i){r({loading:!1});return}if(o().request==="delete"&&!o().deleteConfirmed&&!(await o().onConfirmDelete?.(s)??!1)){r({loading:!1});return}if(o().onAPICall){const l=o()?.uniqueKeyField||"id",f=o().values?.[l]??o().primeData?.[l],u=await o().onAPICall("mutate",o().request||"insert",s,f),c={...s,...u};if(o().afterSave&&await o().afterSave(c,o()),t){const m=o()?.uniqueKeyField||"id",g={...c};return delete g[m],r({loading:!1,values:g}),o().onChange?.(g,o()),n.reset(g),c}return r({loading:!1,values:c}),o().onChange?.(c,o()),n.reset(c),o().onClose?.(c),c}if(t){const l=o()?.uniqueKeyField||"id",f={...s};return delete f[l],r({loading:!1,values:f}),n.reset(f),o().onChange?.(f,o()),s}return r({loading:!1,values:s}),n.reset(s),o().onChange?.(s,o()),o().onClose?.(s),s}}catch(t){const n=t?.message??t;r({error:n,loading:!1}),o().onError?.(n,o())}},setRequest:e=>{r({request:e})},setState:(e,t)=>{r(U.produce(n=>{n[e]=t}))},setStateFN:(e,t)=>new Promise((s,i)=>{r(U.produce(a=>{if(typeof t=="function")a[e]=t(a[e]);else throw i(new Error(`Not a function ${t}`)),Error(`Not a function ${t}`)})),s()}),validate:async()=>o().getFormMethods?await o().getFormMethods().trigger():!0,values:void 0}),({id:r,onClose:o,onConfirmDelete:e,primeData:t,request:n,useStoreApi:s,values:i})=>{let a=e;return e||(a=async()=>confirm("Are you sure you want to delete this item?")),{id:r||Te.newUUID(),onClose:l=>{const f=s.getState().dirty,u=s.getState().setState;f?confirm("You have unsaved changes. Are you sure you want to close?")&&(o?o(l):u("opened",!1)):o?o(l):u("opened",!1)},onConfirmDelete:a,primeData:t,request:(n||"insert").replace("change","update"),values:{...t,...i}}}),ae=()=>{const{buttonAreaGroupProps:r,closeButtonProps:o,closeButtonTitle:e,dirty:t,getState:n,keepOpen:s,onClose:i,request:a,save:l,saveButtonProps:f,saveButtonTitle:u,setState:c,showKeepOpenSwitch:m}=le(p=>({buttonAreaGroupProps:p.layout?.buttonAreaGroupProps,closeButtonProps:p.layout?.closeButtonProps,closeButtonTitle:p.layout?.closeButtonTitle,dirty:p.dirty,getState:p.getState,keepOpen:p.keepOpen,onClose:p.onClose,request:p.request,save:p.save,saveButtonProps:p.layout?.saveButtonProps,saveButtonTitle:p.layout?.saveButtonTitle,setState:p.setState,showKeepOpenSwitch:p.layout?.showKeepOpenSwitch})),g=["select","view"].includes(a||"")||["update"].includes(a||"")&&!t;return d.jsx(w.Group,{justify:"center",p:"xs",style:{boxShadow:"2px 2px 5px rgba(47, 47, 47, 0.1)"},w:"100%",...r,children:d.jsxs(w.Group,{grow:!0,justify:"space-evenly",children:[typeof i=="function"&&d.jsx(w.Button,{color:"orange",leftSection:d.jsx(q.IconX,{}),miw:"8rem",px:"md",size:"sm",...o,onClick:()=>{i(n("values"))},children:e||"Close"}),m&&d.jsx(w.Switch,{checked:s,label:"Keep Open",onChange:p=>c("keepOpen",p.currentTarget.checked)}),d.jsx(w.Tooltip,{label:g?d.jsxs("p",{children:["Cannot save in view or select mode, or no changes made. ",d.jsx("br",{}),"Try changing some values."]}):d.jsx("p",{children:"Save the current record"}),children:d.jsx(w.Button,{bg:a==="delete"?"red":void 0,color:"green",leftSection:d.jsx(q.IconDeviceFloppy,{}),miw:"8rem",px:"md",size:"sm",...f,disabled:g,onClick:()=>l(),children:u||"Save"})})]})})},Jt=()=>{const{buttonArea:r,getState:o,opened:e,renderBottom:t,setState:n}=le(s=>({buttonArea:s.layout?.buttonArea,getState:s.getState,opened:s.opened,renderBottom:s.layout?.renderBottom,setState:s.setState}));return t?t(d.jsx(ae,{}),e??!1,o("onClose")??(()=>{n("opened",!1)}),o("onOpen")??(()=>{n("opened",!0)}),o):r==="bottom"?d.jsx(ae,{}):d.jsx(d.Fragment,{})},Yt=()=>{const{buttonArea:r,getState:o,opened:e,renderTop:t,setState:n}=le(s=>({buttonArea:s.layout?.buttonArea,getState:s.getState,opened:s.opened,renderTop:s.layout?.renderTop,setState:s.setState}));return t?t(d.jsx(ae,{}),e??!1,o("onClose")??(()=>{n("opened",!1)}),o("onOpen")??(()=>{n("opened",!0)}),o):r==="top"?d.jsx(ae,{}):d.jsx(d.Fragment,{})},Ve=r=>{const{disableHTMlForm:o,getFormMethods:e,id:t,load:n,loading:s,loadingOverlayProps:i,opened:a,request:l,reset:f,save:u,scrollAreaProps:c}=le(m=>({disableHTMlForm:m.disableHTMlForm,getFormMethods:m.getFormMethods,id:m.id,load:m.load,loading:m.loading,loadingOverlayProps:m.loadingOverlayProps,opened:m.opened,request:m.request,reset:m.reset,save:m.save,scrollAreaProps:m.scrollAreaProps}));return S.useEffect(()=>{e&&e()&&l!=="insert"&&n(!0)},[e,l,a]),d.jsxs(d.Fragment,{children:[d.jsx(Yt,{}),d.jsxs(w.ScrollAreaAutosize,{offsetScrollbars:!0,scrollbarSize:4,type:"auto",...c,style:{height:"100%",padding:"0.25rem",width:"100%",...c?.style},children:[o?d.jsx("div",{"x-data-request":l,children:r.children},`former_d${t}`):d.jsx("form",{id:`former_f${t}`,onReset:m=>f(m),onSubmit:m=>u(m),"x-data-request":l,children:r.children},`former_${t}`),d.jsx(w.LoadingOverlay,{loaderProps:{type:"bars"},overlayProps:{backgroundOpacity:.5},...i,visible:s})]}),d.jsx(Jt,{})]})},Xt=S.forwardRef(function(o,e){const{getAllState:t,getState:n,onChange:s,onClose:i,onOpen:a,opened:l,primeData:f,reset:u,save:c,setState:m,useFormProps:g,validate:p,values:b,wrapper:E}=le(_=>({getAllState:_.getAllState,getState:_.getState,onChange:_.onChange,onClose:_.onClose,onOpen:_.onOpen,opened:_.opened,primeData:_.primeData,reset:_.reset,save:_.save,setState:_.setState,useFormProps:_.useFormProps,validate:_.validate,values:_.values,wrapper:_.wrapper})),R=ee.useForm({defaultValues:f,mode:"all",shouldUseNativeValidation:!0,values:b,...g});return S.useImperativeHandle(e,()=>({close:async()=>{i?.(n("values")),m("opened",!1)},getValue:()=>n("values"),reset:()=>{u()},save:async()=>await c(),setValue:_=>{s?.(_,t())},show:async()=>{m("opened",!0),a?.()},validate:async()=>await p()}),[n,t,s,p,c,u,m,i,a]),S.useEffect(()=>{m("getFormMethods",()=>R),R&&R.subscribe({callback:({isDirty:_})=>{m("dirty",_)},formState:{isDirty:!0}})},[R]),d.jsx(ee.FormProvider,{...R,children:typeof E=="function"?E(d.jsx(Ve,{children:o.children}),l??!1,i??(()=>{m("opened",!1)}),a??(()=>{m("opened",!0)}),n):d.jsx(Ve,{children:o.children||null})})}),Se=S.forwardRef(function(o,e){return!o.opened&&typeof o.wrapper=="function"?null:d.jsx(Ut,{...o,children:d.jsx(Xt,{ref:e,children:o.children})})});function Qt(r){return async(o,e,t,n)=>{let i=`${r.url.replace(/\/$/,"")}`;e!=="insert"&&n&&(i=`${i}/${n}`);const a={operation:o==="read"?"read":e==="delete"?"delete":e==="update"?"update":"create"};o==="mutate"&&(a.data=t);const l={cache:"no-cache",signal:r.signal,...r.fetchOptions,body:JSON.stringify(a),headers:{Authorization:`Bearer ${r.authToken}`,"Content-Type":"application/json",...r.fetchOptions?.headers},method:"POST"},f=await fetch(i,l);if(!f.ok){const c=await f.text();throw c&&c.length>4?new Error(`${c}`):new Error(`API request failed with status ${f.status}`)}return await f.json()}}function Zt(r){return async(o,e,t,n)=>{const s=r.url??"";let i=s;const a={cache:"no-cache",signal:r.signal,...r.fetchOptions,body:o==="mutate"&&e!=="delete"?JSON.stringify(t):void 0,headers:{Authorization:`Bearer ${r.authToken}`,"Content-Type":"application/json",...r.fetchOptions?.headers},method:o==="read"?"GET":e==="delete"?"DELETE":e==="update"?"PUT":"POST"};e!=="insert"&&(i=`${s}/${n}`);const l=await fetch(i,a);if(!l.ok){const u=await l.text();throw u&&u.length>4?new Error(`${u}`):new Error(`API request failed with status ${l.status}`)}return await l.json()}}const en=r=>{const{children:o,former:e,onClose:t,opened:n,...s}=r;return d.jsx(Se,{...e,onClose:t,opened:n,wrapper:(i,a,l,f,u)=>{const c=u("values"),m=u("request"),g=u("uniqueKeyField")??"id";return d.jsx(w.Drawer,{closeOnClickOutside:!1,h:"100%",title:m==="delete"?`Delete Record - ${c?.[g]}`:m==="insert"?"New Record":`Edit Record - ${c?.[g]}`,...s,onClose:()=>l?.(),opened:a??!1,children:i})},children:o})},tn=r=>{const{children:o,former:e,onClose:t,opened:n,...s}=r;return d.jsx(Se,{...e,onClose:t,opened:n,wrapper:(i,a,l,f,u)=>{const c=u("values"),m=u("request"),g=u("uniqueKeyField")??"id";return d.jsx(w.Modal,{closeOnClickOutside:!1,h:"100%",title:m==="delete"?`Delete Record - ${c?.[g]}`:m==="insert"?"New Record":`Edit Record - ${c?.[g]}`,...s,onClose:()=>l?.(),opened:a??!1,children:i})},children:o})},nn=r=>{const{children:o,former:e,onClose:t,opened:n,target:s,...i}=r;return d.jsx(Se,{...e,onClose:t,opened:n,wrapper:(a,l,f)=>d.jsxs(w.Popover,{closeOnClickOutside:!1,middlewares:{inline:!0},trapFocus:!0,width:250,withArrow:!0,...i,onClose:()=>f?.(),opened:l??!1,children:[d.jsx(w.Popover.Target,{children:s}),d.jsx(w.Popover.Dropdown,{children:a})]}),children:o})},rn=r=>{const[o,e]=S.useState({onChange:r?.onChange,onClose:r?.onClose??(()=>e(l=>({...l,opened:!1}))),opened:r?.opened??!1,primeData:r?.primeData??r?.values,request:r?.request??"insert",values:r?.values}),t=l=>{e(f=>({...f,...l}))},{onChange:n,onClose:s,opened:i,...a}=o;return{former:{...a,onChange:n},formerWrapper:{onClose:s,opened:i},open:(l,f)=>{e(u=>({...u,opened:!0,primeData:f,request:l,values:f}))},updateState:t}},on=r=>{const[o,e]=S.useState(!1);return d.jsx(w.Tooltip,{label:r.tooltip??"",withArrow:!0,children:d.jsx(w.Button,{loaderProps:{type:"bars"},...r,loading:o||r.loading,onClick:t=>{r.onClick&&(e(!0),r.onClick(t).finally(()=>e(!1)))},children:r.children})})},sn=r=>{const[o,e]=S.useState(!1);return d.jsx(w.Tooltip,{label:r.tooltip??"",withArrow:!0,children:d.jsxs(w.ActionIcon,{loaderProps:{type:"bars"},...r,loading:o||r.loading,onClick:t=>{r.onClick&&(e(!0),r.onClick(t).finally(()=>e(!1)))},children:[r.children,d.jsxs(w.VisuallyHidden,{children:["Action Button: ",r.tooltip??r.sid??""]})]})})},an=r=>{const{control:o,name:e,sid:t,tooltip:n,...s}=r;return d.jsx(ee.Controller,{control:o,name:e,render:({field:i,formState:a})=>d.jsx(w.Tooltip,{label:n??"",withArrow:!0,children:S.createElement(w.NativeSelect,{...s,...i,disabled:a.disabled,id:`field_${e}_${t??""}`,key:`field_${e}_${t??""}`},r.children)})})},ln=r=>{const{control:o,name:e,sid:t,tooltip:n,...s}=r;return d.jsx(ee.Controller,{control:o,name:e,render:({field:i,formState:a})=>d.jsx(w.Tooltip,{label:n??"",withArrow:!0,children:S.createElement(w.PasswordInput,{...s,...i,disabled:a.disabled,id:`field_${e}_${t??""}`,key:`field_${e}_${t??""}`},r.children)})})},cn=r=>{const{control:o,name:e,sid:t,tooltip:n,...s}=r;return d.jsx(ee.Controller,{control:o,name:e,render:({field:i,formState:a})=>d.jsx(w.Tooltip,{label:n??"",withArrow:!0,children:S.createElement(w.Switch,{...s,...i,checked:!!i.value,disabled:a.disabled,id:`field_${e}_${t??""}`,key:`field_${e}_${t??""}`,onChange:l=>{i.onChange((l.currentTarget??l.target)?.checked)}})})})},un=r=>{const{control:o,name:e,sid:t,tooltip:n,...s}=r;return d.jsx(ee.Controller,{control:o,name:e,render:({field:i,formState:a})=>d.jsx(w.Tooltip,{label:n??"",withArrow:!0,children:S.createElement(w.Textarea,{minRows:4,...s,...i,disabled:a.disabled,id:`field_${e}_${t??""}`,key:`field_${e}_${t??""}`},r.children)})})},dn=r=>{const{control:o,name:e,sid:t,tooltip:n,...s}=r;return d.jsx(ee.Controller,{control:o,name:e,render:({field:i,formState:a})=>d.jsx(w.Tooltip,{label:n??"",withArrow:!0,children:S.createElement(w.TextInput,{...s,...i,disabled:a.disabled,id:`field_${e}_${t??""}`,key:`field_${e}_${t??""}`},r.children)})})},He=r=>Symbol.iterator in r,Ke=r=>"entries"in r,We=(r,o)=>{const e=r instanceof Map?r:new Map(r.entries()),t=o instanceof Map?o:new Map(o.entries());if(e.size!==t.size)return!1;for(const[n,s]of e)if(!t.has(n)||!Object.is(s,t.get(n)))return!1;return!0},fn=(r,o)=>{const e=r[Symbol.iterator](),t=o[Symbol.iterator]();let n=e.next(),s=t.next();for(;!n.done&&!s.done;){if(!Object.is(n.value,s.value))return!1;n=e.next(),s=t.next()}return!!n.done&&!!s.done};function hn(r,o){return Object.is(r,o)?!0:typeof r!="object"||r===null||typeof o!="object"||o===null||Object.getPrototypeOf(r)!==Object.getPrototypeOf(o)?!1:He(r)&&He(o)?Ke(r)&&Ke(o)?We(r,o):fn(r,o):We({entries:()=>Object.entries(r)},{entries:()=>Object.entries(o)})}var ue={exports:{}},we={},de={exports:{}},xe={};var Ue;function mn(){if(Ue)return xe;Ue=1;var r=S;function o(c,m){return c===m&&(c!==0||1/c===1/m)||c!==c&&m!==m}var e=typeof Object.is=="function"?Object.is:o,t=r.useState,n=r.useEffect,s=r.useLayoutEffect,i=r.useDebugValue;function a(c,m){var g=m(),p=t({inst:{value:g,getSnapshot:m}}),b=p[0].inst,E=p[1];return s(function(){b.value=g,b.getSnapshot=m,l(b)&&E({inst:b})},[c,g,m]),n(function(){return l(b)&&E({inst:b}),c(function(){l(b)&&E({inst:b})})},[c]),i(g),g}function l(c){var m=c.getSnapshot;c=c.value;try{var g=m();return!e(c,g)}catch{return!0}}function f(c,m){return m()}var u=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?f:a;return xe.useSyncExternalStore=r.useSyncExternalStore!==void 0?r.useSyncExternalStore:u,xe}var Ce={};var Je;function gn(){return Je||(Je=1,process.env.NODE_ENV!=="production"&&(function(){function r(g,p){return g===p&&(g!==0||1/g===1/p)||g!==g&&p!==p}function o(g,p){u||n.startTransition===void 0||(u=!0,console.error("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var b=p();if(!c){var E=p();s(b,E)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),c=!0)}E=i({inst:{value:b,getSnapshot:p}});var R=E[0].inst,_=E[1];return l(function(){R.value=b,R.getSnapshot=p,e(R)&&_({inst:R})},[g,b,p]),a(function(){return e(R)&&_({inst:R}),g(function(){e(R)&&_({inst:R})})},[g]),f(b),b}function e(g){var p=g.getSnapshot;g=g.value;try{var b=p();return!s(g,b)}catch{return!0}}function t(g,p){return p()}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var n=S,s=typeof Object.is=="function"?Object.is:r,i=n.useState,a=n.useEffect,l=n.useLayoutEffect,f=n.useDebugValue,u=!1,c=!1,m=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?t:o;Ce.useSyncExternalStore=n.useSyncExternalStore!==void 0?n.useSyncExternalStore:m,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()),Ce}var Ye;function ut(){return Ye||(Ye=1,process.env.NODE_ENV==="production"?de.exports=mn():de.exports=gn()),de.exports}var Xe;function pn(){if(Xe)return we;Xe=1;var r=S,o=ut();function e(f,u){return f===u&&(f!==0||1/f===1/u)||f!==f&&u!==u}var t=typeof Object.is=="function"?Object.is:e,n=o.useSyncExternalStore,s=r.useRef,i=r.useEffect,a=r.useMemo,l=r.useDebugValue;return we.useSyncExternalStoreWithSelector=function(f,u,c,m,g){var p=s(null);if(p.current===null){var b={hasValue:!1,value:null};p.current=b}else b=p.current;p=a(function(){function R(x){if(!_){if(_=!0,k=x,x=m(x),g!==void 0&&b.hasValue){var v=b.value;if(g(v,x))return I=v}return I=x}if(v=I,t(k,x))return v;var O=m(x);return g!==void 0&&g(v,O)?(k=x,v):(k=x,I=O)}var _=!1,k,I,N=c===void 0?null:c;return[function(){return R(u())},N===null?void 0:function(){return R(N())}]},[u,c,m,g]);var E=n(f,p[0],p[1]);return i(function(){b.hasValue=!0,b.value=E},[E]),l(E),E},we}var _e={};var Qe;function Sn(){return Qe||(Qe=1,process.env.NODE_ENV!=="production"&&(function(){function r(f,u){return f===u&&(f!==0||1/f===1/u)||f!==f&&u!==u}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var o=S,e=ut(),t=typeof Object.is=="function"?Object.is:r,n=e.useSyncExternalStore,s=o.useRef,i=o.useEffect,a=o.useMemo,l=o.useDebugValue;_e.useSyncExternalStoreWithSelector=function(f,u,c,m,g){var p=s(null);if(p.current===null){var b={hasValue:!1,value:null};p.current=b}else b=p.current;p=a(function(){function R(x){if(!_){if(_=!0,k=x,x=m(x),g!==void 0&&b.hasValue){var v=b.value;if(g(v,x))return I=v}return I=x}if(v=I,t(k,x))return v;var O=m(x);return g!==void 0&&g(v,O)?(k=x,v):(k=x,I=O)}var _=!1,k,I,N=c===void 0?null:c;return[function(){return R(u())},N===null?void 0:function(){return R(N())}]},[u,c,m,g]);var E=n(f,p[0],p[1]);return i(function(){b.hasValue=!0,b.value=E},[E]),l(E),E},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()),_e}var Ze;function vn(){return Ze||(Ze=1,process.env.NODE_ENV==="production"?ue.exports=pn():ue.exports=Sn()),ue.exports}var yn=vn();const bn=Ot(yn),et=r=>{let o;const e=new Set,t=(f,u)=>{const c=typeof f=="function"?f(o):f;if(!Object.is(c,o)){const m=o;o=u??(typeof c!="object"||c===null)?c:Object.assign({},o,c),e.forEach(g=>g(o,m))}},n=()=>o,a={setState:t,getState:n,getInitialState:()=>l,subscribe:f=>(e.add(f),()=>e.delete(f))},l=o=r(t,n,a);return a},wn=(r=>r?et(r):et),{useSyncExternalStoreWithSelector:xn}=bn,Cn=r=>r;function _n(r,o=Cn,e){const t=xn(r.subscribe,r.getState,r.getInitialState,o,e);return S.useDebugValue(t),t}const dt="APP_GLO",En=new Set(["app.controls","initialized","session.connected","session.error","session.loading"]),Rn=r=>En.has(r),Oe=(r,o="")=>{if(typeof r=="function")return;if(r===null||typeof r!="object")return r;if(Array.isArray(r))return r.map((t,n)=>Oe(t,`${o}[${n}]`));const e={};for(const[t,n]of Object.entries(r)){const s=o?`${o}.${t}`:t;Rn(s)||typeof n=="function"||(e[t]=Oe(n,s))}return e};async function On(){const r={},o=["layout","navigation","owner","program","session","user"];for(const e of o){const t=`${dt}:${e}`;if(e==="session"){try{if(typeof localStorage<"u"){const n=localStorage.getItem(t);n&&(r[e]=JSON.parse(n))}}catch(n){console.error(`Failed to load ${e} from localStorage:`,n)}continue}try{if(typeof indexedDB<"u"){const n=await rt.get(t);if(n){r[e]=JSON.parse(n);continue}}}catch(n){console.error(`Failed to load ${e} from IndexedDB, falling back to localStorage:`,n)}try{if(typeof localStorage<"u"){const n=localStorage.getItem(t);n&&(r[e]=JSON.parse(n))}}catch(n){console.error(`Failed to load ${e} from localStorage:`,n)}}return r}async function In(r){const o=["layout","navigation","owner","program","session","user"];for(const e of o){const t=`${dt}:${e}`,n=Oe(r[e],e),s=JSON.stringify(n);if(e==="session"){try{typeof localStorage<"u"&&localStorage.setItem(t,s)}catch(i){console.error(`Failed to save ${e} to localStorage:`,i)}continue}try{if(typeof indexedDB<"u"){await rt.set(t,s);continue}}catch(i){console.error(`Failed to save ${e} to IndexedDB, falling back to localStorage:`,i)}try{typeof localStorage<"u"&&localStorage.setItem(t,s)}catch(i){console.error(`Failed to save ${e} to localStorage:`,i)}}}const Ie={initialized:!1,layout:{bottomBar:{open:!1},leftBar:{open:!1},rightBar:{open:!1},topBar:{open:!1}},navigation:{menu:[]},owner:{guid:"",id:0,name:""},program:{controls:{},environment:"production",guid:"",name:"",slug:""},session:{apiURL:"",authToken:"",connected:!0,loading:!1,loggedIn:!1},user:{guid:"",username:""}},kn=r=>({setProgram:o=>r(e=>({program:{...e.program,...o}}))}),An=r=>({setApiURL:o=>r(e=>({session:{...e.session,apiURL:o}})),setAuthToken:o=>r(e=>({session:{...e.session,authToken:o}})),setSession:o=>r(e=>({session:{...e.session,...o}}))}),jn=r=>({setOwner:o=>r(e=>({owner:{...e.owner,...o}}))}),Tn=r=>({setUser:o=>r(e=>({user:{...e.user,...o}}))}),Fn=r=>({setBottomBar:o=>r(e=>({layout:{...e.layout,bottomBar:{...e.layout.bottomBar,...o}}})),setLayout:o=>r(e=>({layout:{...e.layout,...o}})),setLeftBar:o=>r(e=>({layout:{...e.layout,leftBar:{...e.layout.leftBar,...o}}})),setRightBar:o=>r(e=>({layout:{...e.layout,rightBar:{...e.layout.rightBar,...o}}})),setTopBar:o=>r(e=>({layout:{...e.layout,topBar:{...e.layout.topBar,...o}}}))}),Mn=r=>({setCurrentPage:o=>r(e=>({navigation:{...e.navigation,currentPage:o}})),setMenu:o=>r(e=>({navigation:{...e.navigation,menu:o}})),setNavigation:o=>r(e=>({navigation:{...e.navigation,...o}}))}),Pn=(r,o)=>{const e=async t=>{try{r(i=>({session:{...i.session,apiURL:t||i.session.apiURL,loading:!0}}));const n=o(),s=await n.onFetchSession?.(n);r(i=>({...i,...s,layout:{...i.layout,...s?.layout},navigation:{...i.navigation,...s?.navigation},owner:{...i.owner,...s?.owner},program:{...i.program,...s?.program,updatedAt:new Date().toISOString()},session:{...i.session,...s?.session,connected:!0,loading:!1},user:{...i.user,...s?.user}}))}catch(n){r(s=>({session:{...s.session,connected:!1,error:`Load Exception: ${String(n)}`,loading:!1}}))}};return{fetchData:async t=>(await Ee(),Re(()=>e(t))),isLoggedIn:()=>{const t=o().session;return!(!t.loggedIn||!t.authToken||t.expiryDate&&new Date(t.expiryDate)<new Date)},login:async(t,n)=>(await Ee(),Re(async()=>{try{r(a=>({session:{...a.session,authToken:t??"",expiryDate:new Date(Date.now()+1440*60*1e3).toISOString(),loading:!0,loggedIn:!0},user:{...a.user,...n}}));const s=o(),i=await s.onLogin?.(s);i&&r(a=>({...a,owner:i.owner?{...a.owner,...i.owner}:a.owner,program:i.program?{...a.program,...i.program}:a.program,session:i.session?{...a.session,...i.session}:a.session,user:i.user?{...a.user,...i.user}:a.user})),await e()}catch(s){r(i=>({session:{...i.session,connected:!1,error:`Login Exception: ${String(s)}`,loading:!1,loggedIn:!1}}))}finally{r(s=>({session:{...s.session,loading:!1}}))}})),logout:async()=>(await Ee(),Re(async()=>{try{r(s=>({...Ie,session:{...Ie.session,apiURL:s.session.apiURL,expiryDate:void 0,loading:!0,loggedIn:!1}}));const t=o(),n=await t.onLogout?.(t);n&&r(s=>({...s,owner:n.owner?{...s.owner,...n.owner}:s.owner,program:n.program?{...s.program,...n.program}:s.program,session:n.session?{...s.session,...n.session}:s.session,user:n.user?{...s.user,...n.user}:s.user})),await e()}catch(t){r(n=>({session:{...n.session,connected:!1,error:`Logout Exception: ${String(t)}`,loading:!1}}))}finally{r(t=>({session:{...t.session,loading:!1}}))}}))}};let ft=!1,ge=null,tt=Promise.resolve();const Ee=async()=>{ge&&await ge},Re=async r=>{const o=tt;let e;tt=new Promise(t=>{e=t});try{return await o,await r()}finally{e()}},L=wn((r,o)=>({...Ie,...kn(r),...An(r),...jn(r),...Tn(r),...Fn(r),...Mn(r),...Pn(r,o)}));ge=On().then(r=>{L.setState(o=>({...o,...r,initialized:!0,session:{...o.session,...r.session,connected:!0,loading:!1}}),!0)}).catch(r=>{console.error("Error loading storage:",r),L.setState({initialized:!0})}).finally(()=>{ft=!0,ge=null});L.subscribe(r=>{ft&&In(r).catch(o=>{console.error("Error saving storage:",o)})});const Dn=(r=>o=>_n(r,o,hn)),zn=Dn(L),$n=r=>{L.getState().setApiURL(r)},Nn=()=>L.getState().session.apiURL??"",Bn=()=>L.getState().session.authToken??"",Ln=()=>L.getState().isLoggedIn(),Gn=r=>{L.getState().setAuthToken(r)},ht=()=>L.getState(),mt=S.createContext(null);function qn({apiURL:r,autoFetch:o=!0,children:e,fetchOnMount:t=!0,onFetchSession:n,onLogin:s,onLogout:i,program:a,throttleMs:l=0}){const f=S.useRef(0),u=S.useRef(!1),c=S.useRef(!1),m=S.useCallback(async b=>{const E=Date.now(),R=E-f.current;if(!u.current&&!(l>0&&R<l))try{u.current=!0,f.current=E,await L.getState().fetchData(b)}finally{u.current=!1}},[l]),g=S.useCallback(async()=>{await m()},[m]);S.useEffect(()=>{r&&L.getState().setApiURL(r)},[r]),S.useEffect(()=>{a&&L.getState().setProgram(a)},[a]),S.useEffect(()=>{n&&L.setState({onFetchSession:n})},[n]),S.useEffect(()=>{s&&L.setState({onLogin:s})},[s]),S.useEffect(()=>{i&&L.setState({onLogout:i})},[i]),S.useEffect(()=>{c.current||(c.current=!0,o&&t&&m(r).catch(b=>{console.error("Failed to fetch on mount:",b)}))},[r,o,t,m]);const p=S.useMemo(()=>({fetchData:m,getState:ht,refetch:g}),[m,g]);return d.jsx(mt.Provider,{value:p,children:e})}function Vn(){const r=S.useContext(mt);if(!r)throw new Error("useGlobalStateStoreContext must be used within GlobalStateStoreProvider");return r}function X(r){return btoa(encodeURIComponent(r).replace(/%([0-9A-F]{2})/g,(o,e)=>String.fromCharCode(Number.parseInt(e,16))))}const Hn="gridler_golang_restapi_v2_token",Kn=(r,o)=>{const e=[...r.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=`__${X(e[t].value)}__`),e[t].type==="advsql"&&!e[t].value.startsWith("__")&&(e[t].value=`__${X(e[t].value)}__`),e[t].type==="custom-sql-or"&&!e[t].value.startsWith("__")&&(e[t].value=`__${X(e[t].value)}__`),e[t].type==="custom-sql-join"&&!e[t].value.startsWith("__")&&(e[t].value=`__${X(e[t].value)}__`),e[t].type==="not-select-fields"&&!e[t].value.startsWith("__")&&(e[t].value=`__${X(e[t].value)}__`),e[t].type==="custom-sql-w"&&!e[t].value.startsWith("__")&&(e[t].value=`__${X(e[t].value)}__`),e[t].type==="select-fields"&&!e[t].value.startsWith("__")&&(e[t].value=`__${X(e[t].value)}__`),e[t].type==="cql-sel"&&!e[t].value.startsWith("__")&&(e[t].value=`__${X(e[t].value)}__`),o&&((!e||e.length===0)&&o.set("x-limit","10"),e[t].type==="association_autoupdate"&&o.set("association_autoupdate",e[t].value??"1"),e[t].type==="association_autocreate"&&o.set("association_autocreate",e[t].value??"1"),e[t].type==="searchop"||e[t].type==="searchor"||e[t].type==="searchand"?o.set(encodeURIComponent(`x-${e[t].type}-${e[t].op}-${e[t].name}`),String(e[t].value)):o.set(encodeURIComponent(`x-${e[t].type}${e[t].name&&e[t].name!==""?"-"+e[t].name:""}`),String(e[t].value)));return e},re=(r,o)=>{const e=new Headers,t={},n=nt?.();if(n&&n!=="")e.set("Authorization",`Token ${n}`);else{const i=nt();i&&e.set("Authorization",`Token ${i}`)}o&&o.forEach((i,a)=>{e.set(a,i)});const s=[];for(const i of r?.filter(a=>!!a)??[]){const a=s.findIndex(l=>l.name===i.name&&l.type===i.type);a===-1?s.push(i):s[a]=i}if(Kn(s,e),e?.forEach((i,a)=>{t[a]=i}),o)for(const i of Object.keys(t))o.set(i,t[i]);return t},Wn={getAuthToken:()=>{if(localStorage){const r=localStorage.getItem(Hn);if(r)return r}}},nt=()=>Wn?.getAuthToken?.();function Un(r,o){if(!r||!o||r.includes("..")||r.includes("[]")||/\[\s*\]/.test(r))return;const e=r.replace(/\[(\w+)\]/g,".$1").split(".").filter(Boolean);if(e.length!==0)return e.reduce((t,n)=>{if(t!=null&&typeof t=="object")return t[n]},o)}const{Provider:Jn,useStore:Fe}=pe.createSyncStore((r,o)=>({hide:e=>{o().setInstanceState(e,"visible",!1)},menus:[],setInstanceState:(e,t,n)=>{r(U.produce(s=>{const i=s?.menus?.findIndex(a=>a.id===e);i>=0&&(s.menus[i][t]=n)}))},setState:(e,t)=>{r(U.produce(n=>{n[e]=t}))},show:(e,t)=>{const n=o(),s=n.menus.findIndex(a=>a.id===e),i=n.menus[s]?{...n.menus[s]}:{};Object.assign(i,t),i.id=i.id??e,i.visible=!(i.visible??!1),s<0?n.setState("menus",[...n.menus,i]):r(U.produce(a=>{a.menus||(a.menus=[]),a.menus[s]={...a.menus[s],...i}}))}}),r=>({providerID:r.providerID??`MenuStore-${Te.getUUID()}`}));function Yn(){const{menus:r,providerID:o,setInstanceState:e,width:t}=Fe(n=>({menus:n.menus,providerID:n.providerID,setInstanceState:n.setInstanceState,setState:n.setState,width:n.width}));return d.jsx(w.Portal,{id:`bmm_portal_${o}`,children:S.Children.toArray(r?.map((n,s)=>S.createElement(w.Menu,{shadow:"md",width:t??"300",...n.menuProps,key:`bmm_menu_${o}_${s}`,onClose:()=>{e(n.id,"visible",!1),n.menuProps?.onClose?.()},opened:n.visible},d.jsx(w.Menu.Target,{children:d.jsx("div",{id:`bmm_${o}_${s}_target`,style:{left:n.x,position:"fixed",top:n.y,visibility:"hidden"}})}),d.jsx(w.Menu.Dropdown,{children:n.renderer?n.renderer:S.Children.toArray(n.items?.map((i,a)=>d.jsx(gt,{...i},`bmm_${o}_${s}_item${a}`)))}))))},`bmm_portal_${o}`)}const gt=({children:r,label:o,...e})=>{const[t,n]=S.useState(!1);return typeof e.renderer=="function"?e.renderer({...e,loading:t,renderer:void 0,setLoading:n}):typeof e.renderer=="object"?e.renderer:e.isDivider?d.jsx(w.Menu.Divider,{}):e.items&&e.items.length>0?d.jsxs(w.Menu.Sub,{children:[d.jsx(w.Menu.Sub.Target,{children:d.jsx(w.Menu.Sub.Item,{...e,disabled:t,onClick:s=>{e.onClick?.(s),e.onClickAsync&&(n(!0),e.onClickAsync(s).finally(()=>n(!1)))},styles:{itemLabel:{overflow:"auto",wordWrap:"break-word"},...e.styles},children:r??o})}),d.jsx(w.Menu.Sub.Dropdown,{children:S.Children.toArray(e.items.map((s,i)=>d.jsx(gt,{...s},`bmm_subitem_${s?.id??""}${i}`)))})]}):!e.onClick&&!e.onClickAsync?d.jsxs(w.Menu.Label,{...e,children:[" ",r??o]}):d.jsx(w.Menu.Item,{...e,disabled:t,onClick:s=>{e.onClick?.(s),e.onClickAsync&&(n(!0),e.onClickAsync(s).finally(()=>n(!1)))},styles:{itemLabel:{overflow:"auto",wordWrap:"break-word"},...e.styles},children:r??o})};function pt(r){return d.jsxs(Jn,{...r,children:[d.jsx(Yn,{}),r.children]})}const St=[{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"}],vt=r=>{const o=r.storeState?.colFilters?.findIndex(i=>i.id===r.column.id)??-1,e=r.storeState?.colFilters?.[o]??{id:r.column.id,value:""},[t,n]=S.useState(e?.value??""),[s]=ie.useDebouncedValue(t,900);return S.useEffect(()=>{r.storeState.setStateFN("colFilters",i=>{const a=i?.findIndex(f=>f.id===r.column.id)??-1,l=i??[];return a>=0?l[a]={...l[a],...r.options,id:r.column.id,value:s}:l.push({operator:"contains",...r.options,id:r.column.id,value:s}),l})},[s,r.column.id,r.options,r.storeState]),d.jsx(w.TextInput,{onChange:i=>n(i.target.value),rightSection:d.jsx(w.ActionIcon,{color:"gray",onClick:()=>n(""),variant:"filled",children:d.jsx(q.IconX,{color:"red"})}),value:t??e?.value})},yt=r=>{const o=r.storeState?.colFilters?.findIndex(i=>i.id===r.column.id)??-1,e=r.storeState?.colFilters?.[o]??{id:r.column.id,operator:"contains"},[t,n]=S.useState(e?.operator??"contains"),[s]=ie.useDebouncedValue(t,900);return S.useEffect(()=>{r.storeState.setStateFN("colFilters",i=>{const a=i?.findIndex(f=>f.id===r.column.id)??-1,l=i??[];return a>=0?l[a]={...l[a],...r.options,id:r.column.id,operator:s}:l.push({...r.options,id:r.column.id,operator:s,value:""}),l})},[s,r.column.id,r.options,r.storeState]),d.jsx(w.Select,{comboboxProps:{withinPortal:!1},data:St,maxDropdownHeight:150,onChange:i=>n(i),placeholder:"Operator",searchable:!0,value:t??e?.operator,withScrollArea:!0})},ke=r=>d.jsxs(w.Stack,{onClick:o=>o.stopPropagation(),children:[d.jsx(yt,{...r}),d.jsx(vt,{...r})]}),Ae=r=>`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" fill="none">
10
10
  <path
11
11
  fill="${r.fgColor??"currentColor"}"
12
12
  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"
@@ -18,10 +18,10 @@ React keys must be passed directly to JSX without using spread:
18
18
  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"
19
19
  ></path>
20
20
  </svg>
21
- `,fe=r=>d.jsx("img",{alt:r.alt??"Sprite Image",src:`data:image/svg+xml;utf8,${r.sprite({...r,sprite:void 0})}`}),{Provider:Xn,useStore:K}=pe.createSyncStore((r,o)=>({_events:new EventTarget,_loadingList:H.CompactSelection.empty(),_page_data:{},_refresh:async()=>{const e=o();await e.loadPage(0,"all"),await e.refreshCells(),await e.reload?.()},_visibleArea:{height:1e4,width:1e3,x:0,y:0},_visiblePages:{height:0,width:0,x:0,y:0},addError:(e,...t)=>{const n=o();console.log("Gridler Error",n.uniqueid,e,t),r(U.produce(s=>{s.errors=[...s.errors,e]}))},errors:[],get:()=>o(),getCellContent:e=>{const t=o(),[n,s]=e,i=t.getRowBuffer(s);return i!==void 0?t.toCell(i,n):{allowOverlay:!1,kind:H.GridCellKind.Loading}},getCellsForSelection:(e,t)=>async()=>{const n=o();await n.setStateFN("_visibleArea",i=>e);const s=[];for(let i=e.y;i<e.y+e.height;i++){const a=[];for(let l=e.x;l<e.x+e.width;l++)a.push(n.getCellContent([l,i]));s.push(a)}return s},getGridSelectedRows:()=>{const e=o(),t=[],n=e._page_data,s=e.pageSize;if(e._gridSelectionRows)for(const i of e._gridSelectionRows){let a;for(const l in n)for(const f in n[l]){const u=Number(l)*s+Number(f);if(!isNaN(u)){if(Number(n[l][f]?._rownumber)===i+1){a=n[l][f];break}else if(u===i+1){a=n[l][f];break}}}a!==void 0&&t.push(a)}return t},getRowBuffer:e=>{const t=o();if(t.data&&t.data.length>0)return t.data[e]===void 0?{allowOverlay:!1,kind:H.GridCellKind.Loading}:t.data[e];const n=Math.max(0,Math.floor(e/t.pageSize)),s=t.pageSize*n,i=e-s;return t._page_data?.[n]?.[i]},getRowIndexByKey:async e=>{const t=o();let n=-1;if(t.ready){const s=t._page_data,i=t.pageSize,a=t.keyField??"id";for(const l in s){for(const f in s[l]){const u=Number(l)*i+Number(f);if(String(s[l][f]?.[a])===String(e)){n=s[l][f]?._rownumber>0?s[l][f]?._rownumber:u>0?u:-1;break}}if(n>0)return n}if(n>0)return n;if(typeof t.askAPIRowNumber=="function"){const l=await t.askAPIRowNumber(String(e));if(l&&l>=0)return l}}},getState:e=>o()[e],hasLocalData:!1,isEmpty:!0,isValuesInPages:()=>{const e=o();if(e.values&&Object.keys(e._page_data).length>0){let t=!1;for(const n in e._page_data){const s=e._page_data[Number(n)];for(const i of s){const a=e.keyField??"id",l=i?.[a];if(l!==void 0&&e.values.find(u=>String(u?.[a])===String(l))){t=!0;break}}if(t)return!0}}return!1},keyField:"id",loadPage:async(e,t)=>{const n=o(),s=e<0?0:e;if(!n._events.dispatchEvent(new CustomEvent("before_loadPage",{detail:{clearMode:t,page:e,state:n}})))return;const a=[],l=Object.keys(n.renderColumns??[1,2,3]).length,f=n.pageSize*s,u=n._page_data?.[s]?.length>0;if(t==="all"){n._active_requests?.forEach(c=>{c.controller?.abort?.()}),n.setState("_page_data",{}),n.setState("_active_requests",[]),n.loadPage(s);return}if(!n.useAPIQuery){console.warn("No useAPIQuery function defined, cannot load page",s);return}!u&&t!=="page"&&n.useAPIQuery?.(s).then(c=>{n.setStateFN("_page_data",m=>({...m,[s]:c}));for(let m=s;m<=f+n.pageSize;m++)for(let g=0;g<=l;g++)a.push({cell:[g,m]});n._glideref?.updateCells(a),n._events.dispatchEvent(new CustomEvent("loadPage",{detail:{clearMode:t,data:c,page:e,state:n}}))}).catch(c=>{console.error("loadPage Error: ",s,c),n._events.dispatchEvent(new CustomEvent("loadPage_error",{detail:{clearMode:t,error:c,page:e,state:n}}))})},maxConcurrency:1,mounted:!1,onCellActivated:e=>{const t=o(),[n,s]=e;t._events.dispatchEvent(new CustomEvent("onCellActivated",{detail:{cell:e,col:n,row:s,state:t}})),t.glideProps?.onCellActivated?.(e)},onCellClicked:(e,t)=>{const n=o(),[s,i]=e,a=n.getRowBuffer(i);n.glideProps?.onCellClicked&&n.glideProps?.onCellClicked?.(e,t),n.values?.length&&n.values?.length>0?n.onChange&&n.onChange(n.values):a&&n.onChange&&n.onChange([a]),n._events.dispatchEvent(new CustomEvent("onCellClicked",{detail:{cell:e,col:s,row:i,state:n}}))},onCellEdited:(e,t)=>{const n=o(),[,s]=e;n._events.dispatchEvent(new CustomEvent("onCellEdited",{detail:{cell:e,newVal:t,row:s,state:n}})),n.glideProps?.onCellEdited?.(e,t)},onColumnMoved:(e,t)=>{const n=o(),s=n.renderColumns?.[e],i=n.renderColumns?.[t];s?.disableMove||i?.disableMove||n.setStateFN("colOrder",a=>{const l=a??n.renderColumns?.map((f,u)=>[f.id,u]).reduce((f,[u,c])=>({...f,[u]:c}),{});return!s?.id||!i?.id?l:{...l,[s?.id]:t,[i?.id]:e}})},onColumnProposeMove:(e,t)=>{const n=o(),s=n.renderColumns?.[e],i=n.renderColumns?.[t];return!(s?.disableMove||i?.disableMove)},onColumnResize:(e,t,n,s)=>{const i=o(),a=i.renderColumns?.find(l=>l.id===e.id);a?.disableResize||a?.maxWidth&&t<a?.maxWidth||a&&i.setStateFN("colSize",l=>l&&a&&l[a.id]===t?l:{...l,[a.id]:t})},onContextClick:(e,t,n,s)=>{const i=o(),a=i.renderColumns?.[n??-1],l=e==="menu"?[{leftSection:d.jsx(V.IconGrid4x4,{size:16}),title:i.title??"Grid"}]:a?[{leftSection:d.jsx(V.IconGrid4x4,{size:16}),title:i.title??"Grid"},{items:[{label:"Sort Ascending",leftSection:d.jsx(fe,{sprite:je}),onClick:()=>{i.setStateFN("colSort",f=>{const u=[...f??[]],c=u.findIndex(g=>g.id===a.id),m="asc";if(c<0){const g={direction:m,id:a.id,order:u?.length};u.push(g)}else c>=0&&(u[c].direction=m);return u})}},{label:"Sort Descending",leftSection:d.jsx(fe,{sprite:Ae}),onClick:()=>{i.setStateFN("colSort",f=>{const u=[...f??[]],c=u.findIndex(g=>g.id===a.id),m="desc";if(c<0){const g={direction:m,id:a.id,order:u?.length};u.push(g)}else c>=0&&(u[c].direction=m);return u})}},{label:`Filter ${a?.title??a?.id}`},{renderer:d.jsx(ke,{column:a,storeState:o()})}],label:`Column Settings for ${a?.title??a?.id}`,leftSection:d.jsx(V.IconGrid4x4,{size:16})}]:[];i.hideMenu?.(e),i.showMenu?.(e,{items:a?.getMenuItems?.(e,i,n&&s?i.getRowBuffer(s):void 0,a,l)??i.getMenuItems?.(e,i,n&&s?i.getRowBuffer(s):void 0,a,l)??l,x:t.clientX??t.bounds?.x,y:t.clientY??t.bounds?.y})},onHeaderClicked:(e,t)=>{const n=o();t.preventDefault();const s=n.renderColumns?.[e];s&&(s.disableSort||n.setStateFN("colSort",i=>{const a=[...i??[]],l=a.findIndex(f=>f.id===s.id);if(l<0){const f={direction:"asc",id:s.id,order:a?.length};a.push(f)}else l>=0&&a[l].direction==="asc"?a[l].direction="desc":l>=0&&a[l].direction==="desc"&&a.splice(l,1);return a}))},onHeaderMenuClick:(e,t)=>{const n=o(),s=n.renderColumns?.[e];if(!s)return;const i=[{label:`Sort ${s?.title??s?.id}`},{label:"Sort Ascending",leftSection:d.jsx(fe,{sprite:je}),onClick:()=>{n.setStateFN("colSort",l=>{const f=[...l??[]],u=f.findIndex(m=>m.id===s.id),c="asc";if(u<0){const m={direction:c,id:s.id,order:f?.length};f.push(m)}else u>=0&&(f[u].direction=c);return f})}},{label:"Sort Descending",leftSection:d.jsx(fe,{sprite:Ae}),onClick:()=>{n.setStateFN("colSort",l=>{const f=[...l??[]],u=f.findIndex(m=>m.id===s.id),c="desc";if(u<0){const m={direction:c,id:s.id,order:f?.length};f.push(m)}else u>=0&&(f[u].direction=c);return f})}},{isDivider:!0}],a=[...s.disableSort?[]:i,{label:`Filter ${s?.title??s?.id}`},{renderer:d.jsx(ke,{column:s,storeState:o()})},{isDivider:!0},{id:"refesh",label:"Refresh",onClick:()=>{o()._refresh?.()}}];n.hideMenu?.("header-menu"),n.showMenu?.("header-menu",{items:s?.getMenuItems?.("header-menu",n,void 0,s,a)??n.getMenuItems?.("header-menu",n,void 0,s,a),x:t.x,y:t.y})},onItemHovered:e=>{const t=o();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 s=t.getRowBuffer(e.location[1]);t.setState("_activeTooltip",n?.tooltip(s,e.location[1],e.location[0]))}}},onVisibleRegionChanged:(e,t,n,s)=>{const i=o();i._scrollTimeout&&clearTimeout(i._scrollTimeout);const a=()=>{const l=o(),f=Math.max(0,Math.floor(e.y/l.pageSize)),u=Math.max(0,Math.floor(l._visiblePages.y/l.pageSize)),c=f-u;if(l.progressiveScroll&&c>1){const m=o(),g=(u+2)*m.pageSize*(m.rowHeight??22);m._glideref?.scrollTo(0,{amount:g,unit:"px"},"vertical");return}l.setState("_visiblePages",e)};i.setState("_scrollTimeout",setTimeout(()=>{a()},100))},pageSize:50,ready:!1,refreshCells:(e,t,n)=>{const s=o(),i=[],a=Object.keys(s.renderColumns??[1,2,3]).length,l=e&&e>0?e:0,f=t&&t>=l?t:l+s.pageSize;for(let u=l;u<=f;u++)if(n&&n>0)i.push({cell:[n,u]});else for(let c=0;c<=a;c++)i.push({cell:[c,u]});s._glideref?.updateCells(i)},setState:(e,t)=>{r(U.produce(n=>{n[e]=t}))},setStateFN:(e,t)=>new Promise((s,i)=>{r(U.produce(a=>{if(typeof t=="function")a[e]=t(a[e]);else throw i(new Error(`Not a function ${t}`)),Error(`Not a function ${t}`)})),s()}),toCell:(e,t)=>{const n=o(),i=n.renderColumns?.[t],a=i?.id??i?.title??String(t);if(a==null||e===void 0||e===null)return i?.Cell?i?.Cell(e,t,a,void 0,n):n.RenderCell?n.RenderCell(e,t,a,void 0,n):{allowOverlay:!1,kind:H.GridCellKind.Loading};try{const l=String(a).includes(".")?Un(a,e)??"":e?.[a];return i?.Cell?{kind:H.GridCellKind.Text,...i?.Cell(e,t,a,l,n)}:n.RenderCell?n.RenderCell(e,t,a,l,n):{allowOverlay:!0,data:l??"",displayData:String(l??""),kind:H.GridCellKind.Text}}catch{return n.RenderCell?n.RenderCell(e,t,a,e?.[a??""],n):{allowOverlay:!1,kind:H.GridCellKind.Loading,skeletonWidthVariability:50}}},total_rows:1e3,uniqueid:Te.getUUID()}),r=>{const[o,e]=r.useStore(n=>[n.setState,n.getState]),t=Fe();return S.useEffect(()=>{const n=e("onMounted");if(typeof n=="function"&&n(e,o),o("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 s=e("onUnMounted");o("mounted",!1),e("_events").dispatchEvent(new CustomEvent("unmounted",{detail:{}})),typeof s=="function"&&s()}},[o,e]),e("_events").addEventListener("reload",n=>{e("_refresh")?.()}),{...r,colSort:r.defaultSort??e("colSort")??[],hideMenu:r.hideMenu??t.hide,scrollToRowKey:r.scrollToRowKey??r.selectedRowKey??e("scrollToRowKey"),showMenu:r.showMenu??t.show,total_rows:e("total_rows")??r.total_rows}});function Qn(r){const[o,e,t,n,s]=K(l=>[l.setStateFN,l.setState,l.getState,l.addError,l.mounted]),i=S.useCallback(async l=>{const f=t("columns"),u=t("colSort"),c=t("pageSize"),m=t("colFilters"),g=t("searchStr"),p=t("searchFields"),b=t("_active_requests"),E=t("keyField");e("loadingData",!0);try{if(r&&r.url){const R=new Headers;R.set("Authorization",`Token ${r.authtoken}`);const _=[{type:"limit",value:String(c??50)},{type:"offset",value:String((c??50)*l)}];u?.length&&u.length>0&&_.push({type:"sort",value:u?.map(v=>`${v.id} ${v.direction}`).reduce((v,O)=>`${v},${O}`)}),m?.filter(v=>v.value?.length>0)?.forEach(v=>{v.value&&v.value!==""&&_.push({name:`${v.id}`,op:v.operator,type:"searchop",value:v.value})}),g&&g!==""&&f?.filter(v=>!v.disableFilter&&!v.disableSearch&&!v.virtual&&v.id&&((p??[]).length==0||p?.includes(v.id)))?.forEach(v=>{_.push({name:`${v.id??""}`,op:"contains",type:"searchor",value:g})}),r.filter&&r.filter!==""&&_.push({name:"sql_filter",type:"custom-sql-w",value:r.filter}),(r.options??[]).length>0&&_.push(...r.options??[]);const k=f?.filter(v=>!v.virtual)?.map(v=>v.id)??[];if(r.hotfields&&r.hotfields.length>0&&k?.push(r.hotfields.join(",")),E&&(k.includes(E)||k.push(E)),k&&k.length>0&&_.push({type:"select-fields",value:k.join(",")}),_&&_.length>0){const v=re(_);for(const O in re(_))R.set(O,v[O])}const I=b?.findIndex(v=>v.page===l)??-1;if(b?.forEach(v=>{(v.page>=0&&v.page<l-2||l>=0&&v.page>l+2)&&v.controller?.abort?.()}),b&&I>=0&&b[I]){e("loadingData",!1);return}const B=new AbortController;await o("_active_requests",v=>[...v??[],{controller:B,page:l}]);const x=await fetch(`${r.url}?x-limit=${String(c??50)}&x-offset=${String((c??50)*l)}`,{headers:R,method:"GET",signal:B?.signal});if(x.ok){const v=x.headers.get("Content-Range")?.split("/");v?.[1]&&parseInt(v[1],10)>0&&e("total_rows",parseInt(v[1],10));const O=await x.json();return e("loadingData",!1),O??[]}n(`${x.status} ${x.statusText}`,"api",r.url),await o("_active_requests",v=>[...(v??[]).filter(O=>O.page!==l)])}}catch{}return e("loadingData",!1),[]},[t,r.authtoken,r.url,r.filter,JSON.stringify(r.options),e,o,n]),a=S.useCallback(async l=>{const f=t("colFilters");if(!l)return null;if(r&&r.url){const u=new Headers,c=[{type:"limit",value:String(10)},{type:"fetch-rownumber",value:l}];if(u.set("Authorization",`Token ${r.authtoken}`),f?.length&&f.length>0&&f?.filter(p=>p.value?.length>0)?.forEach(p=>{p.value&&p.value!==""&&u.set(`x-searchop-${p.operator}-${p.id}`,`${p.value}`)}),r.filter&&r.filter!==""&&c.push({name:"sql_filter",type:"custom-sql-w",value:`(${r.filter})`}),r.options&&r.options.length>0){const p=re(r.options);for(const b in p)u.set(b,p[b])}if(c&&c.length>0){const p=re(c);for(const b in re(c))u.set(b,p[b])}const m=new AbortController,g=await fetch(`${r.url}?x-fetch-rownumber=${l}`,{headers:u,method:"GET",signal:m?.signal});if(g.ok){const p=await g.json();return p?.[0]?._rownumber??p?._rownumber??0}n(`${g.status} ${g.statusText}`,"api",r.url)}return[]},[r.url,r.authtoken,r.filter,r.options,t,n]);return S.useEffect(()=>{e("useAPIQuery",i),e("askAPIRowNumber",a);const l=t("isValuesInPages"),f=t("_refresh");l||e("values",[]),f?.().then(()=>{const u=t("onChange"),c=t("getGridSelectedRows");if(u&&typeof u=="function"){const m=c?.();u(m)}})},[r.url,r.authtoken,r.filter,JSON.stringify(r.options),s,e]),d.jsx(d.Fragment,{})}const bt=S.memo(Qn);bt.displayName="Gridler-GlidlerAPIAdaptorForGoLangv2";function wt(r){const[o,e,t,n]=K(i=>[i.getState,i.mounted,i.setState,i._events]);S.useEffect(()=>{if(e&&r.changeOnActiveClick){const i=a=>{const{row:l,state:f}=a.detail,u=f.getRowBuffer;if(u){const c=u(l);if(!c)return;r.onRequestForm("change",c)}};return n?.addEventListener("onCellActivated",i),()=>{i&&n?.removeEventListener("onCellActivated",i)}}},[r.changeOnActiveClick,e,n]);const s=S.useCallback((i,a,l,f,u)=>{if(i==="header-menu")return u||[];const c=[];c.push(...u);const m=o("_gridSelection")?.rows.toArray()??[],g=m.length>1;if(!l){const E=m[0];E!==void 0&&(l=a.getRowBuffer(E))}const p=typeof r.descriptionField=="string"?l?.[r.descriptionField]:typeof r.descriptionField=="function"&&l?r.descriptionField(l):void 0;(i==="other"||i==="cell"&&!l)&&c.push({c:"blue",label:"Add",onClick:()=>{r.onRequestForm("insert",l)}}),i==="cell"&&l||i==="menu"&&l?(c.push({c:"teal",label:"Add",leftSection:d.jsx(V.IconSquarePlus,{color:"teal",size:16}),onClick:()=>{r.onRequestForm("insert",l)}}),g?(c.push({c:"green",label:`Modify All Selected (${m.length})`,leftSection:d.jsx(V.IconEdit,{color:"green",size:16}),onClick:()=>{r.onRequestForm("change",m.map(E=>a.getRowBuffer(E)))}}),c.push({c:"red",label:`Remove All Selected (${m.length})`,leftSection:d.jsx(V.IconTrashX,{color:"maroon",size:16}),onClick:()=>{r.onRequestForm("delete",m.map(E=>a.getRowBuffer(E)))}})):(c.push({c:"green",label:`Modify${p&&r.showDescriptionInMenu?` (${p})`:""}`,leftSection:d.jsx(V.IconEdit,{color:"green",size:16}),onClick:()=>{r.onRequestForm("change",l)}}),c.push({c:"red",label:`Remove${p&&r.showDescriptionInMenu?` (${p})`:""}`,leftSection:d.jsx(V.IconTrashX,{color:"maroon",size:16}),onClick:()=>{r.onRequestForm("delete",l)}})),c.push({isDivider:!0})):(i==="cell"&&!l||i==="menu"&&!l)&&c.push({c:"red",label:"Nothing Selected",leftSection:d.jsx(V.IconExclamationMark,{color:"yellow",size:16})}),c.push({c:"orange",label:"Refresh",leftSection:d.jsx(V.IconRefresh,{color:"orange",size:16}),onClickAsync:async()=>{await o("_refresh")?.()}});const b=r.getMenuItems?r.getMenuItems(i,a,l,f,c):c;return!c||c.length===0?u||[]:b},[r.onRequestForm,o]);return S.useEffect(()=>(e&&typeof t=="function"&&o("getMenuItems")!==s&&t("getMenuItems",s),()=>{}),[r.getMenuItems,e]),d.jsx(d.Fragment,{})}function Zn(r){const[o,e,t]=K(u=>[u.setState,u.getState,u.mounted]),{colFilters:n,colSort:s,columns:i,searchStr:a}=K(u=>({colFilters:u.colFilters,colOrder:u.colOrder,colSize:u.colSize,colSort:u.colSort,columns:u.columns,searchStr:u.searchStr})),l=S.useRef({colFilters:n,colSort:s,searchStr:a}),f=async u=>{const c=e("pageSize");return r.data&&Array.isArray(r.data)?(o("total_rows",r.data.length),r.data.slice(u*(c??50),(u+1)*(c??50))):[]};return S.useEffect(()=>{o("useAPIQuery",f)},[t,o]),S.useEffect(()=>{if(r.onColumnSort&&s!==l?.current?.colSort){const u=r.onColumnSort(s,i,r.data);o("total_rows",u.length),o("data",u),l.current.colSort=s,e("refreshCells")?.()}},[s,r.onColumnSort]),S.useEffect(()=>{if(r.onColumnFilter&&n!==l?.current?.colFilters){const u=r.onColumnFilter(n,i,r.data);o("total_rows",u.length),o("data",u),l.current.colFilters=n,e("refreshCells")?.()}},[n,r.onColumnFilter]),S.useEffect(()=>{if(r.onSearch&&a!==l?.current?.searchStr){const u=r.onSearch(a,i,r.data);o("total_rows",u.length),o("data",u),l.current.colFilters=n,e("refreshCells")?.()}},[a,r.onSearch]),d.jsx(d.Fragment,{})}const Me=S.memo(Zn);Me.displayName="Gridler-GlidlerLocalDataAdaptor";function xt(){const{loadingData:r,onContextClick:o}=K(e=>({loadingData:e.loadingData,onContextClick:e.onContextClick}));return d.jsx(w.ActionIcon,{loading:r,mr:"xs",mt:"2px",onClick:e=>o("menu",e),variant:"subtle",children:d.jsx(V.IconMenu2,{})})}function er(r,o){const[e,t]=K(n=>[n.setStateFN,n.getState]);return S.useImperativeHandle(o,()=>({getGlideRef:()=>t("_glideref"),getState:t,isEmpty:()=>t("isEmpty"),refresh:async n=>{const s=t("refreshCells");t("loadPage")?.(n?.pageIndex??0,"all").then(()=>{s?.()})},reload:async n=>{const s=t("refreshCells");t("loadPage")?.(n?.pageIndex??0,"all").then(()=>{s?.()})},reloadRow:async n=>{const s=t("refreshCells"),a=await t("getRowIndexByKey")?.(String(n));a&&a>=0&&s?.(a,a+1)},scrollToRow:async n=>{n&&Number(n)>=0&&e("scrollToRowKey",s=>Number(n??s))},selectRow:async n=>{n&&Number(n)>=0&&e("selectedRowKey",s=>Number(n??s))},setStateFN:e}),[]),d.jsx(d.Fragment,{children:r.children})}const tr=S.forwardRef(er);function nr(){const{_activeTooltip:r,tooltipBarProps:o}=K(e=>({_activeTooltip:e._activeTooltip,tooltipBarProps:e.tooltipBarProps}));return d.jsx("div",{"data-tooltip-bar":!0,style:{minHeight:"24px"},...o,children:r})}const Ct=S.memo(()=>{const r=S.useRef(0),o=S.useRef(""),e=S.useRef(null),{_glideref:t,_gridSelectionRows:n,colFilters:s,colOrder:i,colSize:a,colSort:l,columns:f,getRowIndexByKey:u,getState:c,loadPage:m,ready:g,scrollToRowKey:p,searchStr:b,selectedRowKey:E,selectFirstRowOnMount:R,setState:_,setStateFN:k,values:I}=K(x=>({_glideref:x._glideref,_gridSelectionRows:x._gridSelectionRows,colFilters:x.colFilters,colOrder:x.colOrder,colSize:x.colSize,colSort:x.colSort,columns:x.columns,getRowIndexByKey:x.getRowIndexByKey,getState:x.getState,loadPage:x.loadPage,ready:x.ready,scrollToRowKey:x.scrollToRowKey,searchStr:x.searchStr,selectedRowKey:x.selectedRowKey,selectFirstRowOnMount:x.selectFirstRowOnMount,setState:x.setState,setStateFN:x.setStateFN,uniqueid:x.uniqueid,values:x.values})),B=ie.useDebouncedCallback(x=>{m(0,"all").then(()=>{c("refreshCells")?.(),c("_events")?.dispatchEvent?.(new CustomEvent("onSearched",{detail:{search:x}}))})},{delay:300,leading:!1});return S.useEffect(()=>{I&&(async()=>{const v=c("_page_data"),O=c("pageSize"),z=c("keyField")??"id",N=[];for(const P in I){let F=-1;const T=String(typeof I?.[P]=="object"?I?.[P]?.[z]:typeof I?.[P]=="string"?I?.[P]:void 0);for(const G in v){for(const q in v[G]){const j=Number(G)*O+Number(q);if(String(v[G][q]?.[z])===T){F=j;break}}if(F>=0){N.push(F);break}}if(F>=0)N.push(F);else{const G=await u(T);G!==null&&N.push(G)}}return N})().then(v=>{let O=H.CompactSelection.empty();v.forEach(z=>{z!==void 0&&(O=O.add(z))}),k("_gridSelectionRows",()=>O),k("_gridSelection",z=>({columns:z?.columns??H.CompactSelection.empty(),...z,rows:O}))})},[I]),S.useEffect(()=>{const x=c("onChange");if(x&&typeof x=="function"){const O=c("getGridSelectedRows")(),z=c("values");JSON.stringify(z)!==JSON.stringify(O)&&x(O)}},[n,n?.length,c]),S.useEffect(()=>{_("renderColumns",f?.map(x=>({...x,hasMenu:x?.hasMenu??!0,icon:"sort"})))},[f]),S.useEffect(()=>{if(b==null){o.current="";return}o.current!==b&&(B(b),o.current=b)},[b]),S.useEffect(()=>{l&&(_("_gridSelection",{columns:H.CompactSelection.empty(),current:void 0,rows:H.CompactSelection.empty()}),_("_gridSelectionRows",H.CompactSelection.empty()),k("renderColumns",x=>x?.map(v=>({...v,icon:v.id&&l?.find(O=>O.id===v.id)?.direction?l?.find(O=>O.id===v.id)?.direction==="asc"?"sortup":"sortdown":v.defaultIcon??"sort"}))).then(()=>{m(0,"all").then(()=>{c("refreshCells")?.(),c("_events")?.dispatchEvent?.(new CustomEvent("onColumnSorted",{detail:{cols:l}}))})}))},[l]),S.useEffect(()=>{s&&JSON.stringify(e.current)!==JSON.stringify(s)&&(m(0,"all").then(()=>{c("refreshCells")?.(),c("_events")?.dispatchEvent?.(new CustomEvent("onColumnFiltered",{detail:{filters:s}}))}),e.current=s)},[s]),S.useEffect(()=>{a&&k("renderColumns",x=>x?.map(v=>({...v,width:v.id&&a?.[v.id]?a?.[v.id]:v.width}))).then(()=>{c("refreshCells")?.()})},[a]),S.useEffect(()=>{i&&k("renderColumns",x=>x?.sort((O,z)=>i[O.id]>i[z.id]?1:-1)).then(()=>{c("refreshCells")?.()})},[i]),S.useEffect(()=>{t&&(r.current>0||(r.current=1,m(0).then(()=>{c("refreshCells")?.()})))},[g,m]),S.useEffect(()=>{const x=c("_events"),v=()=>{const O=c("selectFirstRowOnMount");if(c("ready")&&O){const N=c("scrollToRowKey");if(N&&N>=0)return;const P=c("keyField")??"id",T=c("_page_data")?.[0]?.[0],G=T?.[P]??-1,q=c("values")??[];if(!(I&&I.length>0)&&G&&G>0&&(q.length??0)===0){const j=[T,...q],J=c("onChange");J?J(j):_("values",j),_("scrollToRowKey",G)}}};return x?.addEventListener("loadPage",v),()=>{x?.removeEventListener("loadPage",v)}},[g,R]),S.useEffect(()=>{const x=c("ready"),v=c("_glideref"),O=c("getRowIndexByKey"),z=E??p;z&&v&&x&&O?.(z).then(N=>{if(N!==void 0){if(console.log("Scrolling to selected row:",N,E,p),E){const P=c("onChange"),F=[{[c("keyField")??"id"]:E}];JSON.stringify(c("values"))!==JSON.stringify(F)&&(P?P(F):_("values",F))}v.scrollTo(0,N),c("_events").dispatchEvent(new CustomEvent("scrollToRowKeyFound",{detail:{rowNumber:N,scrollToRowKey:p,selectedRowKey:E}}))}})},[p,E]),d.jsx(d.Fragment,{})});Ct.displayName="Gridler-Computer";function rr(r,o,e=1){let t;if(o===void 0?(t=0,o=r):t=r,e===0)throw new Error("Step cannot be zero");const n=[];if(e>0)for(let s=t;s<o;s+=e)n.push(s);else for(let s=t;s>o;s+=e)n.push(s);return n}const _t=S.memo(()=>{const[r,o,e,t,n,s,i,a]=K(l=>[l.setState,l.getState,l._glideref,l._visiblePages,l.pageSize,l.loadPage,l._loadingList,l.hasLocalData]);return S.useEffect(()=>{e&&r("mounted",!0)},[r]),S.useEffect(()=>{if(!e)return;const l=Math.max(0,Math.floor(t.y/n)),f=Math.floor((t.y+t.height)/n);for(const u of rr(l,f+1,1))s(u).then(()=>{const c=o("_page_data")?.[0]??{};r("isEmpty",c&&c.length>0)})},[s,n,t,e,i,a]),d.jsx(d.Fragment,{})});_t.displayName="Gridler-Pager";const or=r=>`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" fill="none">
21
+ `,fe=r=>d.jsx("img",{alt:r.alt??"Sprite Image",src:`data:image/svg+xml;utf8,${r.sprite({...r,sprite:void 0})}`}),{Provider:Xn,useStore:K}=pe.createSyncStore((r,o)=>({_events:new EventTarget,_loadingList:H.CompactSelection.empty(),_page_data:{},_refresh:async()=>{const e=o();await e.loadPage(0,"all"),await e.refreshCells(),await e.reload?.()},_visibleArea:{height:1e4,width:1e3,x:0,y:0},_visiblePages:{height:0,width:0,x:0,y:0},addError:(e,...t)=>{const n=o();console.log("Gridler Error",n.uniqueid,e,t),r(U.produce(s=>{s.errors=[...s.errors,e]}))},errors:[],get:()=>o(),getCellContent:e=>{const t=o(),[n,s]=e,i=t.getRowBuffer(s);return i!==void 0?t.toCell(i,n):{allowOverlay:!1,kind:H.GridCellKind.Loading}},getCellsForSelection:(e,t)=>async()=>{const n=o();await n.setStateFN("_visibleArea",i=>e);const s=[];for(let i=e.y;i<e.y+e.height;i++){const a=[];for(let l=e.x;l<e.x+e.width;l++)a.push(n.getCellContent([l,i]));s.push(a)}return s},getGridSelectedRows:()=>{const e=o(),t=[],n=e._page_data,s=e.pageSize;if(e._gridSelectionRows)for(const i of e._gridSelectionRows){let a;for(const l in n)for(const f in n[l]){const u=Number(l)*s+Number(f);if(!isNaN(u)){if(Number(n[l][f]?._rownumber)===i+1){a=n[l][f];break}else if(u===i+1){a=n[l][f];break}}}a!==void 0&&t.push(a)}return t},getRowBuffer:e=>{const t=o();if(t.data&&t.data.length>0)return t.data[e]===void 0?{allowOverlay:!1,kind:H.GridCellKind.Loading}:t.data[e];const n=Math.max(0,Math.floor(e/t.pageSize)),s=t.pageSize*n,i=e-s;return t._page_data?.[n]?.[i]},getRowIndexByKey:async e=>{const t=o();let n=-1;if(t.ready){const s=t._page_data,i=t.pageSize,a=t.keyField??"id";for(const l in s){for(const f in s[l]){const u=Number(l)*i+Number(f);if(String(s[l][f]?.[a])===String(e)){n=s[l][f]?._rownumber>0?s[l][f]?._rownumber:u>0?u:-1;break}}if(n>0)return n}if(n>0)return n;if(typeof t.askAPIRowNumber=="function"){const l=await t.askAPIRowNumber(String(e));if(l&&l>=0)return l}}},getState:e=>o()[e],hasLocalData:!1,isEmpty:!0,isValuesInPages:()=>{const e=o();if(e.values&&Object.keys(e._page_data).length>0){let t=!1;for(const n in e._page_data){const s=e._page_data[Number(n)];for(const i of s){const a=e.keyField??"id",l=i?.[a];if(l!==void 0&&e.values.find(u=>String(u?.[a])===String(l))){t=!0;break}}if(t)return!0}}return!1},keyField:"id",loadPage:async(e,t)=>{const n=o(),s=e<0?0:e;if(!n._events.dispatchEvent(new CustomEvent("before_loadPage",{detail:{clearMode:t,page:e,state:n}})))return;const a=[],l=Object.keys(n.renderColumns??[1,2,3]).length,f=n.pageSize*s,u=n._page_data?.[s]?.length>0;if(t==="all"){n._active_requests?.forEach(c=>{c.controller?.abort?.()}),n.setState("_page_data",{}),n.setState("_active_requests",[]),n.loadPage(s);return}if(!n.useAPIQuery){console.warn("No useAPIQuery function defined, cannot load page",s);return}!u&&t!=="page"&&n.useAPIQuery?.(s).then(c=>{n.setStateFN("_page_data",m=>({...m,[s]:c}));for(let m=s;m<=f+n.pageSize;m++)for(let g=0;g<=l;g++)a.push({cell:[g,m]});n._glideref?.updateCells(a),n._events.dispatchEvent(new CustomEvent("loadPage",{detail:{clearMode:t,data:c,page:e,state:n}}))}).catch(c=>{console.error("loadPage Error: ",s,c),n._events.dispatchEvent(new CustomEvent("loadPage_error",{detail:{clearMode:t,error:c,page:e,state:n}}))})},maxConcurrency:1,mounted:!1,onCellActivated:e=>{const t=o(),[n,s]=e;t._events.dispatchEvent(new CustomEvent("onCellActivated",{detail:{cell:e,col:n,row:s,state:t}})),t.glideProps?.onCellActivated?.(e)},onCellClicked:(e,t)=>{const n=o(),[s,i]=e,a=n.getRowBuffer(i);n.glideProps?.onCellClicked&&n.glideProps?.onCellClicked?.(e,t),n.values?.length&&n.values?.length>0?n.onChange&&n.onChange(n.values):a&&n.onChange&&n.onChange([a]),n._events.dispatchEvent(new CustomEvent("onCellClicked",{detail:{cell:e,col:s,row:i,state:n}}))},onCellEdited:(e,t)=>{const n=o(),[,s]=e;n._events.dispatchEvent(new CustomEvent("onCellEdited",{detail:{cell:e,newVal:t,row:s,state:n}})),n.glideProps?.onCellEdited?.(e,t)},onColumnMoved:(e,t)=>{const n=o(),s=n.renderColumns?.[e],i=n.renderColumns?.[t];s?.disableMove||i?.disableMove||n.setStateFN("colOrder",a=>{const l=a??n.renderColumns?.map((f,u)=>[f.id,u]).reduce((f,[u,c])=>({...f,[u]:c}),{});return!s?.id||!i?.id?l:{...l,[s?.id]:t,[i?.id]:e}})},onColumnProposeMove:(e,t)=>{const n=o(),s=n.renderColumns?.[e],i=n.renderColumns?.[t];return!(s?.disableMove||i?.disableMove)},onColumnResize:(e,t,n,s)=>{const i=o(),a=i.renderColumns?.find(l=>l.id===e.id);a?.disableResize||a?.maxWidth&&t<a?.maxWidth||a&&i.setStateFN("colSize",l=>l&&a&&l[a.id]===t?l:{...l,[a.id]:t})},onContextClick:(e,t,n,s)=>{const i=o(),a=i.renderColumns?.[n??-1],l=e==="menu"?[{leftSection:d.jsx(q.IconGrid4x4,{size:16}),title:i.title??"Grid"}]:a?[{leftSection:d.jsx(q.IconGrid4x4,{size:16}),title:i.title??"Grid"},{items:[{label:"Sort Ascending",leftSection:d.jsx(fe,{sprite:je}),onClick:()=>{i.setStateFN("colSort",f=>{const u=[...f??[]],c=u.findIndex(g=>g.id===a.id),m="asc";if(c<0){const g={direction:m,id:a.id,order:u?.length};u.push(g)}else c>=0&&(u[c].direction=m);return u})}},{label:"Sort Descending",leftSection:d.jsx(fe,{sprite:Ae}),onClick:()=>{i.setStateFN("colSort",f=>{const u=[...f??[]],c=u.findIndex(g=>g.id===a.id),m="desc";if(c<0){const g={direction:m,id:a.id,order:u?.length};u.push(g)}else c>=0&&(u[c].direction=m);return u})}},{label:`Filter ${a?.title??a?.id}`},{renderer:d.jsx(ke,{column:a,storeState:o()})}],label:`Column Settings for ${a?.title??a?.id}`,leftSection:d.jsx(q.IconGrid4x4,{size:16})}]:[];i.hideMenu?.(e),i.showMenu?.(e,{items:a?.getMenuItems?.(e,i,n&&s?i.getRowBuffer(s):void 0,a,l)??i.getMenuItems?.(e,i,n&&s?i.getRowBuffer(s):void 0,a,l)??l,x:t.clientX??t.bounds?.x,y:t.clientY??t.bounds?.y})},onHeaderClicked:(e,t)=>{const n=o();t.preventDefault();const s=n.renderColumns?.[e];s&&(s.disableSort||n.setStateFN("colSort",i=>{const a=[...i??[]],l=a.findIndex(f=>f.id===s.id);if(l<0){const f={direction:"asc",id:s.id,order:a?.length};a.push(f)}else l>=0&&a[l].direction==="asc"?a[l].direction="desc":l>=0&&a[l].direction==="desc"&&a.splice(l,1);return a}))},onHeaderMenuClick:(e,t)=>{const n=o(),s=n.renderColumns?.[e];if(!s)return;const i=[{label:`Sort ${s?.title??s?.id}`},{label:"Sort Ascending",leftSection:d.jsx(fe,{sprite:je}),onClick:()=>{n.setStateFN("colSort",l=>{const f=[...l??[]],u=f.findIndex(m=>m.id===s.id),c="asc";if(u<0){const m={direction:c,id:s.id,order:f?.length};f.push(m)}else u>=0&&(f[u].direction=c);return f})}},{label:"Sort Descending",leftSection:d.jsx(fe,{sprite:Ae}),onClick:()=>{n.setStateFN("colSort",l=>{const f=[...l??[]],u=f.findIndex(m=>m.id===s.id),c="desc";if(u<0){const m={direction:c,id:s.id,order:f?.length};f.push(m)}else u>=0&&(f[u].direction=c);return f})}},{isDivider:!0}],a=[...s.disableSort?[]:i,{label:`Filter ${s?.title??s?.id}`},{renderer:d.jsx(ke,{column:s,storeState:o()})},{isDivider:!0},{id:"refesh",label:"Refresh",onClick:()=>{o()._refresh?.()}}];n.hideMenu?.("header-menu"),n.showMenu?.("header-menu",{items:s?.getMenuItems?.("header-menu",n,void 0,s,a)??n.getMenuItems?.("header-menu",n,void 0,s,a),x:t.x,y:t.y})},onItemHovered:e=>{const t=o();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 s=t.getRowBuffer(e.location[1]);t.setState("_activeTooltip",n?.tooltip(s,e.location[1],e.location[0]))}}},onVisibleRegionChanged:(e,t,n,s)=>{const i=o();i._scrollTimeout&&clearTimeout(i._scrollTimeout);const a=()=>{const l=o(),f=Math.max(0,Math.floor(e.y/l.pageSize)),u=Math.max(0,Math.floor(l._visiblePages.y/l.pageSize)),c=f-u;if(l.progressiveScroll&&c>1){const m=o(),g=(u+2)*m.pageSize*(m.rowHeight??22);m._glideref?.scrollTo(0,{amount:g,unit:"px"},"vertical");return}l.setState("_visiblePages",e)};i.setState("_scrollTimeout",setTimeout(()=>{a()},100))},pageSize:50,ready:!1,refreshCells:(e,t,n)=>{const s=o(),i=[],a=Object.keys(s.renderColumns??[1,2,3]).length,l=e&&e>0?e:0,f=t&&t>=l?t:l+s.pageSize;for(let u=l;u<=f;u++)if(n&&n>0)i.push({cell:[n,u]});else for(let c=0;c<=a;c++)i.push({cell:[c,u]});s._glideref?.updateCells(i)},setState:(e,t)=>{r(U.produce(n=>{n[e]=t}))},setStateFN:(e,t)=>new Promise((s,i)=>{r(U.produce(a=>{if(typeof t=="function")a[e]=t(a[e]);else throw i(new Error(`Not a function ${t}`)),Error(`Not a function ${t}`)})),s()}),toCell:(e,t)=>{const n=o(),i=n.renderColumns?.[t],a=i?.id??i?.title??String(t);if(a==null||e===void 0||e===null)return i?.Cell?i?.Cell(e,t,a,void 0,n):n.RenderCell?n.RenderCell(e,t,a,void 0,n):{allowOverlay:!1,kind:H.GridCellKind.Loading};try{const l=String(a).includes(".")?Un(a,e)??"":e?.[a];return i?.Cell?{kind:H.GridCellKind.Text,...i?.Cell(e,t,a,l,n)}:n.RenderCell?n.RenderCell(e,t,a,l,n):{allowOverlay:!0,data:l??"",displayData:String(l??""),kind:H.GridCellKind.Text}}catch{return n.RenderCell?n.RenderCell(e,t,a,e?.[a??""],n):{allowOverlay:!1,kind:H.GridCellKind.Loading,skeletonWidthVariability:50}}},total_rows:1e3,uniqueid:Te.getUUID()}),r=>{const[o,e]=r.useStore(n=>[n.setState,n.getState]),t=Fe();return S.useEffect(()=>{const n=e("onMounted");if(typeof n=="function"&&n(e,o),o("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 s=e("onUnMounted");o("mounted",!1),e("_events").dispatchEvent(new CustomEvent("unmounted",{detail:{}})),typeof s=="function"&&s()}},[o,e]),e("_events").addEventListener("reload",n=>{e("_refresh")?.()}),{...r,colSort:r.defaultSort??e("colSort")??[],hideMenu:r.hideMenu??t.hide,scrollToRowKey:r.scrollToRowKey??r.selectedRowKey??e("scrollToRowKey"),showMenu:r.showMenu??t.show,total_rows:e("total_rows")??r.total_rows}});function Qn(r){const[o,e,t,n,s]=K(l=>[l.setStateFN,l.setState,l.getState,l.addError,l.mounted]),i=S.useCallback(async l=>{const f=t("columns"),u=t("colSort"),c=t("pageSize"),m=t("colFilters"),g=t("searchStr"),p=t("searchFields"),b=t("_active_requests"),E=t("keyField");e("loadingData",!0);try{if(r&&r.url){const R=new Headers;R.set("Authorization",`Token ${r.authtoken}`);const _=[{type:"limit",value:String(c??50)},{type:"offset",value:String((c??50)*l)}];u?.length&&u.length>0&&_.push({type:"sort",value:u?.map(v=>`${v.id} ${v.direction}`).reduce((v,O)=>`${v},${O}`)}),m?.filter(v=>v.value?.length>0)?.forEach(v=>{v.value&&v.value!==""&&_.push({name:`${v.id}`,op:v.operator,type:"searchop",value:v.value})}),g&&g!==""&&f?.filter(v=>!v.disableFilter&&!v.disableSearch&&!v.virtual&&v.id&&((p??[]).length==0||p?.includes(v.id)))?.forEach(v=>{_.push({name:`${v.id??""}`,op:"contains",type:"searchor",value:g})}),r.filter&&r.filter!==""&&_.push({name:"sql_filter",type:"custom-sql-w",value:r.filter}),(r.options??[]).length>0&&_.push(...r.options??[]);const k=f?.filter(v=>!v.virtual)?.map(v=>v.id)??[];if(r.hotfields&&r.hotfields.length>0&&k?.push(r.hotfields.join(",")),E&&(k.includes(E)||k.push(E)),k&&k.length>0&&_.push({type:"select-fields",value:k.join(",")}),_&&_.length>0){const v=re(_);for(const O in re(_))R.set(O,v[O])}const I=b?.findIndex(v=>v.page===l)??-1;if(b?.forEach(v=>{(v.page>=0&&v.page<l-2||l>=0&&v.page>l+2)&&v.controller?.abort?.()}),b&&I>=0&&b[I]){e("loadingData",!1);return}const N=new AbortController;await o("_active_requests",v=>[...v??[],{controller:N,page:l}]);const x=await fetch(`${r.url}?x-limit=${String(c??50)}&x-offset=${String((c??50)*l)}`,{headers:R,method:"GET",signal:N?.signal});if(x.ok){const v=x.headers.get("Content-Range")?.split("/");v?.[1]&&parseInt(v[1],10)>0&&e("total_rows",parseInt(v[1],10));const O=await x.json();return e("loadingData",!1),O??[]}n(`${x.status} ${x.statusText}`,"api",r.url),await o("_active_requests",v=>[...(v??[]).filter(O=>O.page!==l)])}}catch{}return e("loadingData",!1),[]},[t,r.authtoken,r.url,r.filter,JSON.stringify(r.options),e,o,n]),a=S.useCallback(async l=>{const f=t("colFilters");if(!l)return null;if(r&&r.url){const u=new Headers,c=[{type:"limit",value:String(10)},{type:"fetch-rownumber",value:l}];if(u.set("Authorization",`Token ${r.authtoken}`),f?.length&&f.length>0&&f?.filter(p=>p.value?.length>0)?.forEach(p=>{p.value&&p.value!==""&&u.set(`x-searchop-${p.operator}-${p.id}`,`${p.value}`)}),r.filter&&r.filter!==""&&c.push({name:"sql_filter",type:"custom-sql-w",value:`(${r.filter})`}),r.options&&r.options.length>0){const p=re(r.options);for(const b in p)u.set(b,p[b])}if(c&&c.length>0){const p=re(c);for(const b in re(c))u.set(b,p[b])}const m=new AbortController,g=await fetch(`${r.url}?x-fetch-rownumber=${l}`,{headers:u,method:"GET",signal:m?.signal});if(g.ok){const p=await g.json();return p?.[0]?._rownumber??p?._rownumber??0}n(`${g.status} ${g.statusText}`,"api",r.url)}return[]},[r.url,r.authtoken,r.filter,r.options,t,n]);return S.useEffect(()=>{e("useAPIQuery",i),e("askAPIRowNumber",a);const l=t("isValuesInPages"),f=t("_refresh");l||e("values",[]),f?.().then(()=>{const u=t("onChange"),c=t("getGridSelectedRows");if(u&&typeof u=="function"){const m=c?.();u(m)}})},[r.url,r.authtoken,r.filter,JSON.stringify(r.options),s,e]),d.jsx(d.Fragment,{})}const bt=S.memo(Qn);bt.displayName="Gridler-GlidlerAPIAdaptorForGoLangv2";function wt(r){const[o,e,t,n]=K(i=>[i.getState,i.mounted,i.setState,i._events]);S.useEffect(()=>{if(e&&r.changeOnActiveClick){const i=a=>{const{row:l,state:f}=a.detail,u=f.getRowBuffer;if(u){const c=u(l);if(!c)return;r.onRequestForm("change",c)}};return n?.addEventListener("onCellActivated",i),()=>{i&&n?.removeEventListener("onCellActivated",i)}}},[r.changeOnActiveClick,e,n]);const s=S.useCallback((i,a,l,f,u)=>{if(i==="header-menu")return u||[];const c=[];c.push(...u);const m=o("_gridSelection")?.rows.toArray()??[],g=m.length>1;if(!l){const E=m[0];E!==void 0&&(l=a.getRowBuffer(E))}const p=typeof r.descriptionField=="string"?l?.[r.descriptionField]:typeof r.descriptionField=="function"&&l?r.descriptionField(l):void 0;(i==="other"||i==="cell"&&!l)&&c.push({c:"blue",label:"Add",onClick:()=>{r.onRequestForm("insert",l)}}),i==="cell"&&l||i==="menu"&&l?(c.push({c:"teal",label:"Add",leftSection:d.jsx(q.IconSquarePlus,{color:"teal",size:16}),onClick:()=>{r.onRequestForm("insert",l)}}),g?(c.push({c:"green",label:`Modify All Selected (${m.length})`,leftSection:d.jsx(q.IconEdit,{color:"green",size:16}),onClick:()=>{r.onRequestForm("change",m.map(E=>a.getRowBuffer(E)))}}),c.push({c:"red",label:`Remove All Selected (${m.length})`,leftSection:d.jsx(q.IconTrashX,{color:"maroon",size:16}),onClick:()=>{r.onRequestForm("delete",m.map(E=>a.getRowBuffer(E)))}})):(c.push({c:"green",label:`Modify${p&&r.showDescriptionInMenu?` (${p})`:""}`,leftSection:d.jsx(q.IconEdit,{color:"green",size:16}),onClick:()=>{r.onRequestForm("change",l)}}),c.push({c:"red",label:`Remove${p&&r.showDescriptionInMenu?` (${p})`:""}`,leftSection:d.jsx(q.IconTrashX,{color:"maroon",size:16}),onClick:()=>{r.onRequestForm("delete",l)}})),c.push({isDivider:!0})):(i==="cell"&&!l||i==="menu"&&!l)&&c.push({c:"red",label:"Nothing Selected",leftSection:d.jsx(q.IconExclamationMark,{color:"yellow",size:16})}),c.push({c:"orange",label:"Refresh",leftSection:d.jsx(q.IconRefresh,{color:"orange",size:16}),onClickAsync:async()=>{await o("_refresh")?.()}});const b=r.getMenuItems?r.getMenuItems(i,a,l,f,c):c;return!c||c.length===0?u||[]:b},[r.onRequestForm,o]);return S.useEffect(()=>(e&&typeof t=="function"&&o("getMenuItems")!==s&&t("getMenuItems",s),()=>{}),[r.getMenuItems,e]),d.jsx(d.Fragment,{})}function Zn(r){const[o,e,t]=K(u=>[u.setState,u.getState,u.mounted]),{colFilters:n,colSort:s,columns:i,searchStr:a}=K(u=>({colFilters:u.colFilters,colOrder:u.colOrder,colSize:u.colSize,colSort:u.colSort,columns:u.columns,searchStr:u.searchStr})),l=S.useRef({colFilters:n,colSort:s,searchStr:a}),f=async u=>{const c=e("pageSize");return r.data&&Array.isArray(r.data)?(o("total_rows",r.data.length),r.data.slice(u*(c??50),(u+1)*(c??50))):[]};return S.useEffect(()=>{o("useAPIQuery",f)},[t,o]),S.useEffect(()=>{if(r.onColumnSort&&s!==l?.current?.colSort){const u=r.onColumnSort(s,i,r.data);o("total_rows",u.length),o("data",u),l.current.colSort=s,e("refreshCells")?.()}},[s,r.onColumnSort]),S.useEffect(()=>{if(r.onColumnFilter&&n!==l?.current?.colFilters){const u=r.onColumnFilter(n,i,r.data);o("total_rows",u.length),o("data",u),l.current.colFilters=n,e("refreshCells")?.()}},[n,r.onColumnFilter]),S.useEffect(()=>{if(r.onSearch&&a!==l?.current?.searchStr){const u=r.onSearch(a,i,r.data);o("total_rows",u.length),o("data",u),l.current.colFilters=n,e("refreshCells")?.()}},[a,r.onSearch]),d.jsx(d.Fragment,{})}const Me=S.memo(Zn);Me.displayName="Gridler-GlidlerLocalDataAdaptor";function xt(){const{loadingData:r,onContextClick:o}=K(e=>({loadingData:e.loadingData,onContextClick:e.onContextClick}));return d.jsx(w.ActionIcon,{loading:r,mr:"xs",mt:"2px",onClick:e=>o("menu",e),variant:"subtle",children:d.jsx(q.IconMenu2,{})})}function er(r,o){const[e,t]=K(n=>[n.setStateFN,n.getState]);return S.useImperativeHandle(o,()=>({getGlideRef:()=>t("_glideref"),getState:t,isEmpty:()=>t("isEmpty"),refresh:async n=>{const s=t("refreshCells");t("loadPage")?.(n?.pageIndex??0,"all").then(()=>{s?.()})},reload:async n=>{const s=t("refreshCells");t("loadPage")?.(n?.pageIndex??0,"all").then(()=>{s?.()})},reloadRow:async n=>{const s=t("refreshCells"),a=await t("getRowIndexByKey")?.(String(n));a&&a>=0&&s?.(a,a+1)},scrollToRow:async n=>{n&&Number(n)>=0&&e("scrollToRowKey",s=>Number(n??s))},selectRow:async n=>{n&&Number(n)>=0&&e("selectedRowKey",s=>Number(n??s))},setStateFN:e}),[]),d.jsx(d.Fragment,{children:r.children})}const tr=S.forwardRef(er);function nr(){const{_activeTooltip:r,tooltipBarProps:o}=K(e=>({_activeTooltip:e._activeTooltip,tooltipBarProps:e.tooltipBarProps}));return d.jsx("div",{"data-tooltip-bar":!0,style:{minHeight:"24px"},...o,children:r})}const Ct=S.memo(()=>{const r=S.useRef(0),o=S.useRef(""),e=S.useRef(null),{_glideref:t,_gridSelectionRows:n,colFilters:s,colOrder:i,colSize:a,colSort:l,columns:f,getRowIndexByKey:u,getState:c,loadPage:m,ready:g,scrollToRowKey:p,searchStr:b,selectedRowKey:E,selectFirstRowOnMount:R,setState:_,setStateFN:k,values:I}=K(x=>({_glideref:x._glideref,_gridSelectionRows:x._gridSelectionRows,colFilters:x.colFilters,colOrder:x.colOrder,colSize:x.colSize,colSort:x.colSort,columns:x.columns,getRowIndexByKey:x.getRowIndexByKey,getState:x.getState,loadPage:x.loadPage,ready:x.ready,scrollToRowKey:x.scrollToRowKey,searchStr:x.searchStr,selectedRowKey:x.selectedRowKey,selectFirstRowOnMount:x.selectFirstRowOnMount,setState:x.setState,setStateFN:x.setStateFN,uniqueid:x.uniqueid,values:x.values})),N=ie.useDebouncedCallback(x=>{m(0,"all").then(()=>{c("refreshCells")?.(),c("_events")?.dispatchEvent?.(new CustomEvent("onSearched",{detail:{search:x}}))})},{delay:300,leading:!1});return S.useEffect(()=>{I&&(async()=>{const v=c("_page_data"),O=c("pageSize"),z=c("keyField")??"id",B=[];for(const P in I){let F=-1;const T=String(typeof I?.[P]=="object"?I?.[P]?.[z]:typeof I?.[P]=="string"?I?.[P]:void 0);for(const G in v){for(const V in v[G]){const j=Number(G)*O+Number(V);if(String(v[G][V]?.[z])===T){F=j;break}}if(F>=0){B.push(F);break}}if(F>=0)B.push(F);else{const G=await u(T);G!==null&&B.push(G)}}return B})().then(v=>{let O=H.CompactSelection.empty();v.forEach(z=>{z!==void 0&&(O=O.add(z))}),k("_gridSelectionRows",()=>O),k("_gridSelection",z=>({columns:z?.columns??H.CompactSelection.empty(),...z,rows:O}))})},[I]),S.useEffect(()=>{const x=c("onChange");if(x&&typeof x=="function"){const O=c("getGridSelectedRows")(),z=c("values");JSON.stringify(z)!==JSON.stringify(O)&&x(O)}},[n,n?.length,c]),S.useEffect(()=>{_("renderColumns",f?.map(x=>({...x,hasMenu:x?.hasMenu??!0,icon:"sort"})))},[f]),S.useEffect(()=>{if(b==null){o.current="";return}o.current!==b&&(N(b),o.current=b)},[b]),S.useEffect(()=>{l&&(_("_gridSelection",{columns:H.CompactSelection.empty(),current:void 0,rows:H.CompactSelection.empty()}),_("_gridSelectionRows",H.CompactSelection.empty()),k("renderColumns",x=>x?.map(v=>({...v,icon:v.id&&l?.find(O=>O.id===v.id)?.direction?l?.find(O=>O.id===v.id)?.direction==="asc"?"sortup":"sortdown":v.defaultIcon??"sort"}))).then(()=>{m(0,"all").then(()=>{c("refreshCells")?.(),c("_events")?.dispatchEvent?.(new CustomEvent("onColumnSorted",{detail:{cols:l}}))})}))},[l]),S.useEffect(()=>{s&&JSON.stringify(e.current)!==JSON.stringify(s)&&(m(0,"all").then(()=>{c("refreshCells")?.(),c("_events")?.dispatchEvent?.(new CustomEvent("onColumnFiltered",{detail:{filters:s}}))}),e.current=s)},[s]),S.useEffect(()=>{a&&k("renderColumns",x=>x?.map(v=>({...v,width:v.id&&a?.[v.id]?a?.[v.id]:v.width}))).then(()=>{c("refreshCells")?.()})},[a]),S.useEffect(()=>{i&&k("renderColumns",x=>x?.sort((O,z)=>i[O.id]>i[z.id]?1:-1)).then(()=>{c("refreshCells")?.()})},[i]),S.useEffect(()=>{t&&(r.current>0||(r.current=1,m(0).then(()=>{c("refreshCells")?.()})))},[g,m]),S.useEffect(()=>{const x=c("_events"),v=()=>{const O=c("selectFirstRowOnMount");if(c("ready")&&O){const B=c("scrollToRowKey");if(B&&B>=0)return;const P=c("keyField")??"id",T=c("_page_data")?.[0]?.[0],G=T?.[P]??-1,V=c("values")??[];if(!T)return;if(G&&G>0&&(V.length??0)===0){const j=[T],J=c("onChange");J?J(j):_("values",j),_("scrollToRowKey",G)}}};return x?.addEventListener("loadPage",v),()=>{x?.removeEventListener("loadPage",v)}},[g,R,I]),S.useEffect(()=>{const x=c("ready"),v=c("_glideref"),O=c("getRowIndexByKey"),z=E??p;z&&v&&x&&O?.(z).then(B=>{if(B!==void 0){if(E){const P=c("onChange"),F=[{[c("keyField")??"id"]:E}];JSON.stringify(c("values"))!==JSON.stringify(F)&&(P?P(F):_("values",F))}v.scrollTo(0,B),c("_events").dispatchEvent(new CustomEvent("scrollToRowKeyFound",{detail:{rowNumber:B,scrollToRowKey:p,selectedRowKey:E}}))}})},[p,E]),d.jsx(d.Fragment,{})});Ct.displayName="Gridler-Computer";function rr(r,o,e=1){let t;if(o===void 0?(t=0,o=r):t=r,e===0)throw new Error("Step cannot be zero");const n=[];if(e>0)for(let s=t;s<o;s+=e)n.push(s);else for(let s=t;s>o;s+=e)n.push(s);return n}const _t=S.memo(()=>{const[r,o,e,t,n,s,i,a]=K(l=>[l.setState,l.getState,l._glideref,l._visiblePages,l.pageSize,l.loadPage,l._loadingList,l.hasLocalData]);return S.useEffect(()=>{e&&r("mounted",!0)},[r]),S.useEffect(()=>{if(!e)return;const l=Math.max(0,Math.floor(t.y/n)),f=Math.floor((t.y+t.height)/n);for(const u of rr(l,f+1,1))s(u).then(()=>{const c=o("_page_data")?.[0]??{};r("isEmpty",c&&c.length>0)})},[s,n,t,e,i,a]),d.jsx(d.Fragment,{})});_t.displayName="Gridler-Pager";const or=r=>`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" fill="none">
22
22
  <path
23
23
  fill="${r.fgColor??"currentColor"}"
24
24
  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"
25
25
  ></path>
26
- </svg>`,sr="_container_1nbyf_1",ir={container:sr},ar=r=>o=>o%2===0?void 0:{bgCell:r==="dark"?"#303030":"#e1effc"},lr=()=>{const r=w.useMantineTheme(),{colorScheme:o}=w.useMantineColorScheme(),{enableOddEvenRowColor:e,focused:t}=K(c=>({enableOddEvenRowColor:c.enableOddEvenRowColor,focused:c.focused})),n={auto:t?w.lighten(r.colors.blue[4],.9):"#ffffff",dark:t?w.darken("#bacfe0",.2):r.colors.dark[7],light:t?w.lighten(r.colors.blue[4],.8):"#ffffff"}[o],s={accentColor:"none",accentLight:r.colors.blue[9],baseFontStyle:"13px",bgBubble:"#212121",bgBubbleSelected:"#000000",bgCell:n,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:r.colors.blue[4],textBubble:"#ffffff",textDark:"#dedede",textGroupHeader:"#dedede",textHeader:"#a1a1a1",textHeaderSelected:"#000000",textLight:"#a0a0a0",textMedium:"#b8b8b8"},a=o==="dark"?s:{bgCell:n,textGroupHeader:"#2c5491"},[l,f]=S.useState(a);return S.useEffect(()=>{f(a)},[o,t]),{getRowThemeOverride:c=>e?ar(o)(c):void 0,gridTheme:l}},cr=()=>{const r=S.useRef(null),o=S.useRef(!1),{height:e,ref:t,width:n}=ie.useElementSize({box:"content-box"}),{_gridSelection:s,allowMultiSelect:i,focused:a,getCellContent:l,getCellsForSelection:f,getState:u,glideProps:c,hasLocalData:m,headerHeight:g,heightProp:p,mounted:b,onCellActivated:E,onCellClicked:R,onCellEdited:_,onColumnMoved:k,onColumnProposeMove:I,onColumnResize:B,onContextClick:x,onHeaderClicked:v,onHeaderMenuClick:O,onItemHovered:z,onVisibleRegionChanged:N,renderColumns:P,rowHeight:F,sections:T,selectMode:G,setState:q,setStateFN:j,total_rows:J,widthProp:Y}=K(h=>({_gridSelection:h._gridSelection,allowMultiSelect:h.allowMultiSelect,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,onCellActivated:h.onCellActivated,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=ie.useMergedRef(r,h=>{j("_glideref",()=>h??void 0);const C=u("ready"),A=!!(h&&b);C!==A&&q("ready",A)}),W=lr();return d.jsxs(w.Stack,{align:"stretch",gap:0,h:p??"100%",justify:"stretch",w:Y??"100%",children:[T?.top,d.jsxs("div",{className:ir.container,"data-focused":a,onContextMenu:h=>{h.preventDefault(),o.current||(o.current=!0,x("other",h),setTimeout(()=>{o.current=!1},100))},ref:t,style:{display:"flex",height:"100%",minHeight:"64px",minWidth:"32px",width:"100%"},children:[T?.left,n&&n>0&&e&&e>0&&d.jsx(H.DataEditor,{cellActivationBehavior:"double-click",columns:P??[],columnSelect:"none",drawFocusRing:!0,height:e??400,overscrollX:16,overscrollY:32,rangeSelect:i?"multi-rect":"cell",rightElementProps:{fill:!1,sticky:!0},rowMarkers:{checkboxStyle:"square",kind:i?"both":"clickable-number"},rowSelect:i?"multi":"single",rowSelectionMode:"auto",spanRangeBehavior:"default",...c,getCellContent:l,getCellsForSelection:f,getRowThemeOverride:W.getRowThemeOverride,gridSelection:s,headerHeight:g??32,headerIcons:{sort:or,sortdown:Ae,sortup:je},onCellActivated:E,onCellClicked:R,onCellContextMenu:(h,C)=>{C.preventDefault(),c?.onCellContextMenu?.(h,C),o.current||(o.current=!0,x("cell",C,h[0],h[1]),setTimeout(()=>{o.current=!1},100))},onCellEdited:_,onColumnMoved:k,onColumnProposeMove:I,onColumnResize:B,onGridSelectionChange:h=>{let C=H.CompactSelection.empty();const A=u("_gridSelection"),y=u("keyField")??"id",$=u("getRowBuffer");for(const D of h.rows)$&&$(D)?.[y]&&(C=C.hasIndex(D)?C:C.add(D));if(G==="row"&&h.current?.range)for(let D=h.current.range.y;D<h.current.range.y+h.current.range.height;D++)$&&$(D)?.[y]&&(C=C.hasIndex(D)?C:C.add(D));if(C.length===0)for(const D of A?.rows??[])$&&$(D)?.[y]&&(C=C.hasIndex(D)?C:C.add(D));(JSON.stringify(A?.columns)!==JSON.stringify(h.columns)||JSON.stringify(A?.rows)!==JSON.stringify(C)||JSON.stringify(A?.current)!==JSON.stringify(h.current))&&(q("_gridSelection",{...h,rows:C}),q("_gridSelectionRows",C))},onHeaderClicked:v,onHeaderContextMenu:(h,C)=>{C.preventDefault(),o.current||(o.current=!0,x("header",C,h),setTimeout(()=>{o.current=!1},100))},onHeaderMenuClick:O,onItemHovered:z,onVisibleRegionChanged:N,ref:Q,rightElement:T?.rightElementDisabled?void 0:d.jsxs(w.Group,{children:[T?.rightElementStart,d.jsx(xt,{}),T?.rightElementEnd]}),rowHeight:F??22,rows:J??0,theme:W.gridTheme,width:n??200}),d.jsx(Ct,{}),!m&&d.jsx(_t,{}),T?.right]}),d.jsxs("div",{style:{flexGrow:0},children:[d.jsx(nr,{}),T?.bottom]})]})},ur=(r,o)=>d.jsx(pt,{children:d.jsxs(Xn,{...r,persist:{name:`Gridler_${r.uniqueid}`,partialize:e=>({colOrder:e.colOrder,colSize:e.colSize}),version:1},children:[d.jsx(cr,{}),d.jsx(tr,{ref:o}),r.children]})}),Pe=S.forwardRef(ur);Pe.FormAdaptor=wt;Pe.LocalDataAdaptor=Me;exports.Boxer=ct;exports.BoxerProvider=st;exports.ButtonCtrl=on;exports.ColumnFilterInput=vt;exports.ColumnFilterInputOperator=yt;exports.ColumnFilterSet=ke;exports.FilterOperators=St;exports.Former=Se;exports.FormerButtonArea=ae;exports.FormerDialog=en;exports.FormerModel=tn;exports.FormerPopover=nn;exports.FormerResolveSpecAPI=Qt;exports.FormerRestHeadSpecAPI=Zt;exports.GetGlobalState=ht;exports.GlidlerAPIAdaptorForGoLangv2=bt;exports.GlidlerFormAdaptor=wt;exports.GlidlerLocalDataAdaptor=Me;exports.GlobalStateStore=L;exports.GlobalStateStoreProvider=qn;exports.GoAPIHeaders=re;exports.Gridler=Pe;exports.GridlerRightMenuIcon=xt;exports.IconButtonCtrl=sn;exports.MantineBetterMenusProvider=pt;exports.NativeSelectCtrl=an;exports.PasswordInputCtrl=ln;exports.ReactBasicErrorBoundary=Ht;exports.ReactErrorBoundary=Wt;exports.SwitchCtrl=cn;exports.TextAreaCtrl=un;exports.TextInputCtrl=dn;exports.errorManager=me;exports.getApiURL=Nn;exports.getAuthToken=Bn;exports.isLoggedIn=Ln;exports.setApiURL=$n;exports.setAuthToken=Gn;exports.useBoxerStore=it;exports.useFormerState=rn;exports.useGlobalStateStore=zn;exports.useGlobalStateStoreContext=Vn;exports.useGridlerStore=K;exports.useMantineBetterMenus=Fe;
26
+ </svg>`,sr="_container_1nbyf_1",ir={container:sr},ar=r=>o=>o%2===0?void 0:{bgCell:r==="dark"?"#303030":"#e1effc"},lr=()=>{const r=w.useMantineTheme(),{colorScheme:o}=w.useMantineColorScheme(),{enableOddEvenRowColor:e,focused:t}=K(c=>({enableOddEvenRowColor:c.enableOddEvenRowColor,focused:c.focused})),n={auto:t?w.lighten(r.colors.blue[4],.9):"#ffffff",dark:t?w.darken("#bacfe0",.2):r.colors.dark[7],light:t?w.lighten(r.colors.blue[4],.8):"#ffffff"}[o],s={accentColor:"none",accentLight:r.colors.blue[9],baseFontStyle:"13px",bgBubble:"#212121",bgBubbleSelected:"#000000",bgCell:n,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:r.colors.blue[4],textBubble:"#ffffff",textDark:"#dedede",textGroupHeader:"#dedede",textHeader:"#a1a1a1",textHeaderSelected:"#000000",textLight:"#a0a0a0",textMedium:"#b8b8b8"},a=o==="dark"?s:{bgCell:n,textGroupHeader:"#2c5491"},[l,f]=S.useState(a);return S.useEffect(()=>{f(a)},[o,t]),{getRowThemeOverride:c=>e?ar(o)(c):void 0,gridTheme:l}},cr=()=>{const r=S.useRef(null),o=S.useRef(!1),{height:e,ref:t,width:n}=ie.useElementSize({box:"content-box"}),{_gridSelection:s,allowMultiSelect:i,focused:a,getCellContent:l,getCellsForSelection:f,getState:u,glideProps:c,hasLocalData:m,headerHeight:g,heightProp:p,mounted:b,onCellActivated:E,onCellClicked:R,onCellEdited:_,onColumnMoved:k,onColumnProposeMove:I,onColumnResize:N,onContextClick:x,onHeaderClicked:v,onHeaderMenuClick:O,onItemHovered:z,onVisibleRegionChanged:B,renderColumns:P,rowHeight:F,sections:T,selectMode:G,setState:V,setStateFN:j,total_rows:J,widthProp:Y}=K(h=>({_gridSelection:h._gridSelection,allowMultiSelect:h.allowMultiSelect,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,onCellActivated:h.onCellActivated,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=ie.useMergedRef(r,h=>{j("_glideref",()=>h??void 0);const C=u("ready"),A=!!(h&&b);C!==A&&V("ready",A)}),W=lr();return d.jsxs(w.Stack,{align:"stretch",gap:0,h:p??"100%",justify:"stretch",w:Y??"100%",children:[T?.top,d.jsxs("div",{className:ir.container,"data-focused":a,onContextMenu:h=>{h.preventDefault(),o.current||(o.current=!0,x("other",h),setTimeout(()=>{o.current=!1},100))},ref:t,style:{display:"flex",height:"100%",minHeight:"64px",minWidth:"32px",width:"100%"},children:[T?.left,n&&n>0&&e&&e>0&&d.jsx(H.DataEditor,{cellActivationBehavior:"double-click",columns:P??[],columnSelect:"none",drawFocusRing:!0,height:e??400,overscrollX:16,overscrollY:32,rangeSelect:i?"multi-rect":"cell",rightElementProps:{fill:!1,sticky:!0},rowMarkers:{checkboxStyle:"square",kind:i?"both":"clickable-number"},rowSelect:i?"multi":"single",rowSelectionMode:"auto",spanRangeBehavior:"default",...c,getCellContent:l,getCellsForSelection:f,getRowThemeOverride:W.getRowThemeOverride,gridSelection:s,headerHeight:g??32,headerIcons:{sort:or,sortdown:Ae,sortup:je},onCellActivated:E,onCellClicked:R,onCellContextMenu:(h,C)=>{C.preventDefault(),c?.onCellContextMenu?.(h,C),o.current||(o.current=!0,x("cell",C,h[0],h[1]),setTimeout(()=>{o.current=!1},100))},onCellEdited:_,onColumnMoved:k,onColumnProposeMove:I,onColumnResize:N,onGridSelectionChange:h=>{let C=H.CompactSelection.empty();const A=u("_gridSelection"),y=u("keyField")??"id",$=u("getRowBuffer");for(const D of h.rows)$&&$(D)?.[y]&&(C=C.hasIndex(D)?C:C.add(D));if(G==="row"&&h.current?.range)for(let D=h.current.range.y;D<h.current.range.y+h.current.range.height;D++)$&&$(D)?.[y]&&(C=C.hasIndex(D)?C:C.add(D));if(C.length===0)for(const D of A?.rows??[])$&&$(D)?.[y]&&(C=C.hasIndex(D)?C:C.add(D));(JSON.stringify(A?.columns)!==JSON.stringify(h.columns)||JSON.stringify(A?.rows)!==JSON.stringify(C)||JSON.stringify(A?.current)!==JSON.stringify(h.current))&&(V("_gridSelection",{...h,rows:C}),V("_gridSelectionRows",C))},onHeaderClicked:v,onHeaderContextMenu:(h,C)=>{C.preventDefault(),o.current||(o.current=!0,x("header",C,h),setTimeout(()=>{o.current=!1},100))},onHeaderMenuClick:O,onItemHovered:z,onVisibleRegionChanged:B,ref:Q,rightElement:T?.rightElementDisabled?void 0:d.jsxs(w.Group,{children:[T?.rightElementStart,d.jsx(xt,{}),T?.rightElementEnd]}),rowHeight:F??22,rows:J??0,theme:W.gridTheme,width:n??200}),d.jsx(Ct,{}),!m&&d.jsx(_t,{}),T?.right]}),d.jsxs("div",{style:{flexGrow:0},children:[d.jsx(nr,{}),T?.bottom]})]})},ur=(r,o)=>d.jsx(pt,{children:d.jsxs(Xn,{...r,persist:{name:`Gridler_${r.uniqueid}`,partialize:e=>({colOrder:e.colOrder,colSize:e.colSize}),version:1},children:[d.jsx(cr,{}),d.jsx(tr,{ref:o}),r.children]})}),Pe=S.forwardRef(ur);Pe.FormAdaptor=wt;Pe.LocalDataAdaptor=Me;exports.Boxer=ct;exports.BoxerProvider=st;exports.ButtonCtrl=on;exports.ColumnFilterInput=vt;exports.ColumnFilterInputOperator=yt;exports.ColumnFilterSet=ke;exports.FilterOperators=St;exports.Former=Se;exports.FormerButtonArea=ae;exports.FormerDialog=en;exports.FormerModel=tn;exports.FormerPopover=nn;exports.FormerResolveSpecAPI=Qt;exports.FormerRestHeadSpecAPI=Zt;exports.GetGlobalState=ht;exports.GlidlerAPIAdaptorForGoLangv2=bt;exports.GlidlerFormAdaptor=wt;exports.GlidlerLocalDataAdaptor=Me;exports.GlobalStateStore=L;exports.GlobalStateStoreProvider=qn;exports.GoAPIHeaders=re;exports.Gridler=Pe;exports.GridlerRightMenuIcon=xt;exports.IconButtonCtrl=sn;exports.MantineBetterMenusProvider=pt;exports.NativeSelectCtrl=an;exports.PasswordInputCtrl=ln;exports.ReactBasicErrorBoundary=Ht;exports.ReactErrorBoundary=Wt;exports.SwitchCtrl=cn;exports.TextAreaCtrl=un;exports.TextInputCtrl=dn;exports.errorManager=me;exports.getApiURL=Nn;exports.getAuthToken=Bn;exports.isLoggedIn=Ln;exports.setApiURL=$n;exports.setAuthToken=Gn;exports.useBoxerStore=it;exports.useFormerState=rn;exports.useGlobalStateStore=zn;exports.useGlobalStateStoreContext=Vn;exports.useGridlerStore=K;exports.useMantineBetterMenus=Fe;
27
27
  //# sourceMappingURL=lib.cjs.js.map