1import Qe from"./Dwwy7jZZ.js";import{_ as Ye}from"./Cpl98f7T.js";/* empty css */import{_ as Je,a as Xe,b as Ze,c as Ge}from"./B5lRXtdI.js";import{_ as et,a as tt,b as it,c as st}from"./UAoOqYGO.js";import{du as rt,dv as nt,dw as lt,aI as O,aK as _,be as Te,br as ot,cM as at,bx as ut,aO as V,aQ as F,aL as p,ba as se,aJ as v,aX as he,aY as ye,c9 as ve,bb as dt,cK as ct,b7 as K,bu as Ne,bF as mt,dx as ft,aE as pt,aF as ht,bn as yt,dk as vt,a_ as gt,bc as bt,aV as Q,cs as _t,dy as St,a$ as wt,aT as S,aR as a,aU as xt,aM as zt,bA as It,aS as U,aW as A,aZ as Z,aN as re}from"#entry";import{_ as Ct}from"./CEDIS-2k.js";import{_ as $t}from"./CjsLI0PV.js";import{_ as kt}from"./Bzi5_Zi-.js";import{_ as Tt}from"./DO43v9rZ.js";import{_ as Nt}from"./b6tmtBV1.js";import{_ as Ot}from"./D_cruEqU.js";import{_ as Mt}from"./DnqbKOWv.js";import{_ as Vt}from"./BzmJN1GW.js";import{u as Ce}from"./CnTvCXBU.js";import{u as Et}from"./DpWyDs2c.js";import{a as Ut,b as At,c as Rt,d as Pt}from"./B4H4ZVxu.js";import{g as ne}from"./DFssbAX7.js";import{u as Dt}from"./CLG0lEnV.js";import"./BUR00HmY.js";import"./a2YsZYKM.js";import"./DneYyePm.js";import"./Bo_qEXaD.js";import"./DZHpjMkd.js";import"./BbZpludM.js";import"./CsYPRoR8.js";import"./D_pqMOFf.js";import"./BHfCo3MB.js";import"./CZs1Kp8N.js";import"./B9IGmehN.js";import"./B9f0aFxT.js";import"./ZMjHNaYs.js";import"./BvJbofEl.js";import"./tCqFZaFc.js";import"./Dd0G08Gw.js";import"./9kUyh-Zd.js";import"./CWaWnlCw.js";import"./s7ISS5Sy.js";import"./WoDo32wJ.js";import"./B_HyqeE6.js";import"./B3L2ph4U.js";import"./DIX64ulo.js";import"./YLjP8Sl3.js";import"./aIvsxdz7.js";import"./BPX2b6pl.js";import"./i__gWVLD.js";import"./BskEU50J.js";import"./CILB889Y.js";import"./WOC8-UVh.js";import"./Bb_HmLhj.js";import"./n73QsV3V.js";import"./CEV_EWqN.js";import"./CVtbwlNV.js";import"./Bo54EpfT.js";import"./BxFqPxqR.js";import"./CY343_sC.js";import"./D3OBUHWM.js";import"./BYZ7rfoz.js";import"./CbFHkbqe.js";import"./DSr71zl4.js";import"./wOKCzhq3.js";import"./aS9GE9AV.js";import"./BdxwR0iL.js";import"./Dtl6pJeP.js";import"./BW22ZZ9W.js";import"./Di5j_ux1.js";import"./DvNf6M6I.js";import"./Cx629HBe.js";import"./CRmyLAd9.js";import"./BD9idtm7.js";import"./WDldToE6.js";import"./Bf9fw6xw.js";import"./DQ1-3VUL.js";import"./CnUUYC6h.js";import"./DtkASzUy.js";import"./mgR_ftWE.js";import"./Bw4vg-0R.js";import"./BS4ALrYD.js";import"./DOx4Y8kJ.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"375395b6f6c018820f7ba24ed0d92da31a1098be"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b92d9e98-07be-413a-b6a5-03e0f44148df",e._sentryDebugIdIdentifier="sentry-dbid-b92d9e98-07be-413a-b6a5-03e0f44148df")})()}catch{}function Lt(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);var i=e.indexOf("Trident/");if(i>0){var s=e.indexOf("rv:");return parseInt(e.substring(s+3,e.indexOf(".",s)),10)}var n=e.indexOf("Edge/");return n>0?parseInt(e.substring(n+5,e.indexOf(".",n)),10):-1}let le;function ge(){ge.init||(ge.init=!0,le=Lt()!==-1)}var ae={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},emits:["notify"],mounted(){ge(),Te(()=>{this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitOnMount&&this.emitSize()});const e=document.createElement("object");this._resizeObject=e,e.setAttribute("aria-hidden","true"),e.setAttribute("tabindex",-1),e.onload=this.addResizeHandlers,e.type="text/html",le&&this.$el.appendChild(e),e.data="about:blank",le||this.$el.appendChild(e)},beforeUnmount(){this.removeResizeHandlers()},methods:{compareAndNotify(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers(){this._resizeObject&&this._resizeObject.onload&&(!le&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}};const qt=lt();rt("data-v-b329ee4c");const Ft={class:"resize-observer",tabindex:"-1"};nt();const Ht=qt((e,t,i,s,n,m)=>(_(),O("div",Ft)));ae.render=Ht;ae.__scopeId="data-v-b329ee4c";ae.__file="src/components/ResizeObserver.vue";function oe(e){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?oe=function(t){return typeof t}:oe=function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},oe(e)}function jt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Bt(e,t){for(var i=0;i<t.length;i++){var s=t[i];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}function Kt(e,t,i){return t&&Bt(e.prototype,t),e}function $e(e){return Wt(e)||Qt(e)||Yt(e)||Jt()}function Wt(e){if(Array.isArray(e))return be(e)}function Qt(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function Yt(e,t){if(e){if(typeof e=="string")return be(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);if(i==="Object"&&e.constructor&&(i=e.constructor.name),i==="Map"||i==="Set")return Array.from(e);if(i==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return be(e,t)}}function be(e,t){(t==null||t>e.length)&&(t=e.length);for(var i=0,s=new Array(t);i<t;i++)s[i]=e[i];return s}function Jt(){throw new TypeError(`Invalid attempt to spread non-iterable instance. 2In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Xt(e){var t;return typeof e=="function"?t={callback:e}:t=e,t}function Zt(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},s,n,m,o=function(u){for(var g=arguments.length,I=new Array(g>1?g-1:0),k=1;k<g;k++)I[k-1]=arguments[k];if(m=I,!(s&&u===n)){var R=i.leading;typeof R=="function"&&(R=R(u,n)),(!s||u!==n)&&R&&e.apply(void 0,[u].concat($e(m))),n=u,clearTimeout(s),s=setTimeout(function(){e.apply(void 0,[u].concat($e(m))),s=0},t)}};return o._clear=function(){clearTimeout(s),s=null},o}function Oe(e,t){if(e===t)return!0;
vendor: 10,942 bytes, line 2
2if(oe(e)==="object"){for(var i in e)if(!Oe(e[i],t[i]))return!1;return!0}return!1}var Gt=(function(){function e(t,i,s){jt(this,e),this.el=t,this.observer=null,this.frozen=!1,this.createObserver(i,s)}return Kt(e,[{key:"createObserver",value:function(i,s){var n=this;if(this.observer&&this.destroyObserver(),!this.frozen){if(this.options=Xt(i),this.callback=function(h,u){n.options.callback(h,u),h&&n.options.once&&(n.frozen=!0,n.destroyObserver())},this.callback&&this.options.throttle){var m=this.options.throttleOptions||{},o=m.leading;this.callback=Zt(this.callback,this.options.throttle,{leading:function(u){return o==="both"||o==="visible"&&u||o==="hidden"&&!u}})}this.oldResult=void 0,this.observer=new IntersectionObserver(function(h){var u=h[0];if(h.length>1){var g=h.find(function(k){return k.isIntersecting});g&&(u=g)}if(n.callback){var I=u.isIntersecting&&u.intersectionRatio>=n.threshold;if(I===n.oldResult)return;n.oldResult=I,n.callback(I,u)}},this.options.intersection),Te(function(){n.observer&&n.observer.observe(n.el)})}}},{key:"destroyObserver",value:function(){this.observer&&(this.observer.disconnect(),this.observer=null),this.callback&&this.callback._clear&&(this.callback._clear(),this.callback=null)}},{key:"threshold",get:function(){return this.options.intersection&&typeof this.options.intersection.threshold=="number"?this.options.intersection.threshold:0}}]),e})();function Me(e,t,i){var s=t.value;if(s)if(typeof IntersectionObserver>"u")console.warn("[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill");else{var n=new Gt(e,s,i);e._vue_visibilityState=n}}function ei(e,t,i){var s=t.value,n=t.oldValue;if(!Oe(s,n)){var m=e._vue_visibilityState;if(!s){Ve(e);return}m?m.createObserver(s,i):Me(e,{value:s},i)}}function Ve(e){var t=e._vue_visibilityState;t&&(t.destroyObserver(),delete e._vue_visibilityState)}var ti={beforeMount:Me,updated:ei,unmounted:Ve},ii={itemsLimit:1e3},si=/(auto|scroll)/;function Ee(e,t){return e.parentNode===null?t:Ee(e.parentNode,t.concat([e]))}var pe=function(t,i){return getComputedStyle(t,null).getPropertyValue(i)},ri=function(t){return pe(t,"overflow")+pe(t,"overflow-y")+pe(t,"overflow-x")},ni=function(t){return si.test(ri(t))};function ke(e){if(e instanceof HTMLElement||e instanceof SVGElement){for(var t=Ee(e.parentNode,[]),i=0;i<t.length;i+=1)if(ni(t[i]))return t[i];return document.scrollingElement||document.documentElement}}function _e(e){"@babel/helpers - typeof";return _e=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_e(e)}var li={items:{type:Array,required:!0},keyField:{type:String,default:"id"},direction:{type:String,default:"vertical",validator:function(t){return["vertical","horizontal"].includes(t)}},listTag:{type:String,default:"div"},itemTag:{type:String,default:"div"}};function oi(){return this.items.length&&_e(this.items[0])!=="object"}var Se=!1;if(typeof window<"u"){Se=!1;try{var ai=Object.defineProperty({},"passive",{get:function(){Se=!0}});window.addEventListener("test",null,ai)}catch{}}let ui=0;var we={name:"RecycleScroller",components:{ResizeObserver:ae},directives:{ObserveVisibility:ti},props:{...li,itemSize:{type:Number,default:null},gridItems:{type:Number,default:void 0},itemSecondarySize:{type:Number,default:void 0},minItemSize:{type:[Number,String],default:null},sizeField:{type:String,default:"size"},typeField:{type:String,default:"type"},buffer:{type:Number,default:200},pageMode:{type:Boolean,default:!1},prerender:{type:Number,default:0},emitUpdate:{type:Boolean,default:!1},updateInterval:{type:Number,default:0},skipHover:{type:Boolean,default:!1},listTag:{type:String,default:"div"},itemTag:{type:String,default:"div"},listClass:{type:[String,Object,Array],default:""},itemClass:{type:[String,Object,Array],default:""}},emits:["resize","visible","hidden","update","scroll-start","scroll-end"],data(){return{pool:[],totalSize:0,ready:!1,hoverKey:null}},computed:{sizes(){if(this.itemSize===null){const e={"-1":{accumulator:0}},t=this.items,i=this.sizeField,s=this.minItemSize;let n=1e4,m=0,o;for(let h=0,u=t.length;h<u;h++)o=t[h][i]||s,o<n&&(n=o),m+=o,e[h]={accumulator:m,size:o};return this.$_computedMinItemSize=n,e}return[]},simpleArray:oi,itemIndexByKey(){const{keyField:e,items:t}=this,i={};for(let s=0,n=t.length;s<n;s++)i[t[s][e]]=s;return i}},watch:{items(){this.updateVisibleItems(!0)},pageMode(){this.applyPageMode(),this.updateVisibleItems(!1)},sizes:{handler(){this.updateVisibleItems(!1)},deep:!0},gridItems(){this.updateVisibleItems(!0)},itemSecondarySize(){this.updateVisibleItems(!0)}},created(){this.$_startIndex=0,this.$_endIndex=0,this.$_views=new Map,this.$_unusedViews=new Map,this.$_scrollDirty=!1,this.$_lastUpdateScrollPosition=0,this.prerender&&(this.$_prerender=!0,this.updateVisibleItems(!1)),this.gridItems&&!this.itemSize&&console.error("[vue-recycle-scroller] You must provide an itemSize when using gridItems")},mounted(){this.applyPageMode(),this.$nextTick(()=>{this.$_prerender=!1,this.updateVisibleItems(!0),this.ready=!0})},activated(){const e=this.$_lastUpdateScrollPosition;typeof e=="number"&&this.$nextTick(()=>{this.scrollToPosition(e)})},beforeUnmount(){this.removeListeners()},methods:{addView(e,t,i,s,n){const m=mt({id:ui++,index:t,used:!0,key:s,type:n}),o=ft({item:i,position:0,nr:m});return e.push(o),o},unuseView(e,t=!1){const i=this.$_unusedViews,s=e.nr.type;let n=i.get(s);n||(n=[],i.set(s,n)),n.push(e),t||(e.nr.used=!1,e.position=-9999)},handleResize(){this.$emit("resize"),this.ready&&this.updateVisibleItems(!1)},handleScroll(e){if(!this.$_scrollDirty){if(this.$_scrollDirty=!0,this.$_updateTimeout)return;const t=()=>requestAnimationFrame(()=>{this.$_scrollDirty=!1;const{continuous:i}=this.updateVisibleItems(!1,!0);i||(clearTimeout(this.$_refreshTimout),this.$_refreshTimout=setTimeout(this.handleScroll,this.updateInterval+100))});t(),this.updateInterval&&(this.$_updateTimeout=setTimeout(()=>{this.$_updateTimeout=0,this.$_scrollDirty&&t()},this.updateInterval))}},handleVisibilityChange(e,t){this.ready&&(e||t.boundingClientRect.width!==0||t.boundingClientRect.height!==0?(this.$emit("visible"),requestAnimationFrame(()=>{this.updateVisibleItems(!1)})):this.$emit("hidden"))},updateVisibleItems(e,t=!1){const i=this.itemSize,s=this.gridItems||1,n=this.itemSecondarySize||i,m=this.$_computedMinItemSize,o=this.typeField,h=this.simpleArray?null:this.keyField,u=this.items,g=u.length,I=this.sizes,k=this.$_views,R=this.$_unusedViews,q=this.pool,y=this.itemIndexByKey;let x,b,P,T,M;if(!g)x=b=T=M=P=0;else if(this.$_prerender)x=T=0,b=M=Math.min(this.prerender,u.length),P=null;else{const c=this.getScroll();if(t){let z=c.start-this.$_lastUpdateScrollPosition;if(z<0&&(z=-z),i===null&&z<m||z<i)return{continuous:!0}}this.$_lastUpdateScrollPosition=c.start;const C=this.buffer;c.start-=C,c.end+=C;let w=0;if(this.$refs.before&&(w=this.$refs.before.scrollHeight,c.start-=w),this.$refs.after){const z=this.$refs.after.scrollHeight;c.end+=z}if(i===null){let z,E=0,G=g-1,$=~~(g/2),ee;do ee=$,z=I[$].accumulator,z<c.start?E=$:$<g-1&&I[$+1].accumulator>c.start&&(G=$),$=~~((E+G)/2);while($!==ee);for($<0&&($=0),x=$,P=I[g-1].accumulator,b=$;b<g&&I[b].accumulator<c.end;b++);for(b===-1?b=u.length-1:(b++,b>g&&(b=g)),T=x;T<g&&w+I[T].accumulator<c.start;T++);for(M=T;M<g&&w+I[M].accumulator<c.end;M++);}else{x=~~(c.start/i*s);const z=x%s;x-=z,b=Math.ceil(c.end/i*s),T=Math.max(0,Math.floor((c.start-w)/i*s)),M=Math.floor((c.end-w)/i*s),x<0&&(x=0),b>g&&(b=g),T<0&&(T=0),M>g&&(M=g),P=Math.ceil(g/s)*i}}b-x>ii.itemsLimit&&this.itemsLimitError(),this.totalSize=P;let d;const j=x<=this.$_endIndex&&b>=this.$_startIndex;if(j)for(let c=0,C=q.length;c<C;c++)d=q[c],d.nr.used&&(e&&(d.nr.index=y[d.item[h]]),(d.nr.index==null||d.nr.index<x||d.nr.index>=b)&&this.unuseView(d));const Y=j?null:new Map;let D,L,W;for(let c=x;c<b;c++){D=u[c];const C=h?D[h]:D;if(C==null)throw new Error(`Key is ${C} on item (keyField is '${h}')`);if(d=k.get(C),!i&&!I[c].size){d&&this.unuseView(d);continue}L=D[o];let w=R.get(L),z=!1;if(!d)j?w&&w.length?d=w.pop():d=this.addView(q,c,D,C,L):(W=Y.get(L)||0,(!w||W>=w.length)&&(d=this.addView(q,c,D,C,L),this.unuseView(d,!0),w=R.get(L)),d=w[W],Y.set(L,W+1)),k.delete(d.nr.key),d.nr.used=!0,d.nr.index=c,d.nr.key=C,d.nr.type=L,k.set(C,d),z=!0;else if(!d.nr.used&&(d.nr.used=!0,z=!0,w)){const E=w.indexOf(d);E!==-1&&w.splice(E,1)}d.item=D,z&&(c===u.length-1&&this.$emit("scroll-end"),c===0&&this.$emit("scroll-start")),i===null?(d.position=I[c-1].accumulator,d.offset=0):(d.position=Math.floor(c/s)*i,d.offset=c%s*n)}return this.$_startIndex=x,this.$_endIndex=b,this.emitUpdate&&this.$emit("update",x,b,T,M),clearTimeout(this.$_sortTimer),this.$_sortTimer=setTimeout(this.sortViews,this.updateInterval+300),{continuous:j}},getListenerTarget(){let e=ke(this.$el);return window.document&&(e===window.document.documentElement||e===window.document.body)&&(e=window),e},getScroll(){const{$el:e,direction:t}=this,i=t==="vertical";let s;if(this.pageMode){const n=e.getBoundingClientRect(),m=i?n.height:n.width;let o=-(i?n.top:n.left),h=i?window.innerHeight:window.innerWidth;o<0&&(h+=o,o=0),o+h>m&&(h=m-o),s={start:o,end:o+h}}else i?s={start:e.scrollTop,end:e.scrollTop+e.clientHeight}:s={start:e.scrollLeft,end:e.scrollLeft+e.clientWidth};return s},applyPageMode(){this.pageMode?this.addListeners():this.removeListeners()},addListeners(){this.listenerTarget=this.getListenerTarget(),this.listenerTarget.addEventListener("scroll",this.handleScroll,Se?{passive:!0}:!1),this.listenerTarget.addEventListener("resize",this.handleResize)},removeListeners(){this.listenerTarget&&(this.listenerTarget.removeEventListener("scroll",this.handleScroll),this.listenerTarget.removeEventListener("resize",this.handleResize),this.listenerTarget=null)},scrollToItem(e){let t;const i=this.gridItems||1;this.itemSize===null?t=e>0?this.sizes[e-1].accumulator:0:t=Math.floor(e/i)*this.itemSize,this.scrollToPosition(t)},scrollToPosition(e){const t=this.direction==="vertical"?{scroll:"scrollTop",start:"top"}:{scroll:"scrollLeft",start:"left"};let i,s,n;if(this.pageMode){const m=ke(this.$el),o=m.tagName==="HTML"?0:m[t.scroll],h=m.getBoundingClientRect(),g=this.$el.getBoundingClientRect()[t.start]-h[t.start];i=m,s=t.scroll,n=e+o+g}else i=this.$el,s=t.scroll,n=e;i[s]=n},itemsLimitError(){throw setTimeout(()=>{console.log("It seems the scroller element isn't scrolling, so it tries to render all the items at once.","Scroller:",this.$el),console.log("Make sure the scroller has a fixed height (or width) and 'overflow-y' (or 'overflow-x') set to 'auto' so it can scroll correctly and only render the items visible in the scroll viewport.")}),new Error("Rendered items limit reached")},sortViews(){this.pool.sort((e,t)=>
2e.nr.index-t.nr.index)}}};const di={key:0,ref:"before",class:"vue-recycle-scroller__slot"},ci={key:1,ref:"after",class:"vue-recycle-scroller__slot"};function mi(e,t,i,s,n,m){const o=ot("ResizeObserver"),h=at("observe-visibility");return ut((_(),V("div",{class:K(["vue-recycle-scroller",{ready:n.ready,"page-mode":i.pageMode,[`direction-${e.direction}`]:!0}]),onScrollPassive:t[0]||(t[0]=(...u)=>m.handleScroll&&m.handleScroll(...u))},[e.$slots.before?(_(),V("div",di,[se(e.$slots,"before")],512)):F("v-if",!0),(_(),O(ve(i.listTag),{ref:"wrapper",style:Ne({[e.direction==="vertical"?"minHeight":"minWidth"]:n.totalSize+"px"}),class:K(["vue-recycle-scroller__item-wrapper",i.listClass])},{default:v(()=>[(_(!0),V(he,null,ye(n.pool,u=>(_(),O(ve(i.itemTag),dt({key:u.nr.id,style:n.ready?{transform:`translate${e.direction==="vertical"?"Y":"X"}(${u.position}px) translate${e.direction==="vertical"?"X":"Y"}(${u.offset}px)`,width:i.gridItems?`${e.direction==="vertical"&&i.itemSecondarySize||i.itemSize}px`:void 0,height:i.gridItems?`${e.direction==="horizontal"&&i.itemSecondarySize||i.itemSize}px`:void 0}:null,class:["vue-recycle-scroller__item-view",[i.itemClass,{hover:!i.skipHover&&n.hoverKey===u.nr.key}]]},ct(i.skipHover?{}:{mouseenter:()=>{n.hoverKey=u.nr.key},mouseleave:()=>{n.hoverKey=null}})),{default:v(()=>[se(e.$slots,"default",{item:u.item,index:u.nr.index,active:u.nr.used})]),_:2},1040,["style","class"]))),128)),se(e.$slots,"empty")]),_:3},8,["style","class"])),e.$slots.after?(_(),V("div",ci,[se(e.$slots,"after")],512)):F("v-if",!0),p(o,{onNotify:m.handleResize},null,8,["onNotify"])],34)),[[h,m.handleVisibilityChange]])}we.render=mi;we.__file="src/components/RecycleScroller.vue";const fi={class:"flex min-h-[calc(100vh_-_var(--header-height))] w-full"},pi={class:"border-border space-y-2 z-[25] border-b px-3 py-2 z-10 bg-card"},hi={class:"flex items-center justify-between gap-2"},yi={class:"w-full flex items-center gap-2"},vi={key:0,class:"p-4"},gi={class:"animate-pulse space-y-3"},bi={key:1,class:"flex justify-center p-4"},_i={class:"hidden max-lg:block bg-card px-3 py-2"},Si={key:0,class:"flex size-full items-center justify-center max-lg:hidden"},wi={key:1,class:"relative flex h-[calc(100vh-10rem)] w-full items-center justify-center"},xi={class:"space-y-3"},zi={class:"flex items-center gap-3"},Ii={class:"flex items-center gap-2"},Ci={class:"text-foreground font-medium"},$i={class:"text-muted-foreground ml-auto text-xs"},ki={class:"text-foreground text-sm font-semibold leading-tight"},Ti={class:"text-muted-foreground mt-1 line-clamp-2 text-xs"},Ni={class:"flex items-center justify-between"},Oi={class:"text-muted-foreground text-xs"},Mi={class:"absolute bottom-4 left-1/2 -translate-x-1/2"},rr=pt({__name:"claims",setup(e){ht({title:"Claims"});const{filters:t}=Ce({filters:[]},"query",{serialize:(l,r)=>r==="filters"?btoa(JSON.stringify(l)):JSON.stringify(l),deserialize:(l,r)=>r==="filters"&&l?JSON.parse(atob(l)):l}),{$trpc:i}=yt(),{community:s}=Et(),n=Q([{id:"quest.id",displayName:"Quest",groupName:"Claim",type:"option",getOptions:async l=>i.quests.listCompact.query({communityId:s.value?.id??"",searchTerm:l?.query}).then(r=>r.map(N=>({value:N.id,label:N.name})))},{id:"status",displayName:"Status",groupName:"Claim",type:"option",options:[{value:"SUCCESS",label:"Success",icon:"heroicons:check-circle",iconClass:"text-green-500"},{value:"FAIL",label:"Failed",icon:"heroicons:x-circle",iconClass:"text-red-500"}]},{id:"validationReason",displayName:"Validation Reason",groupName:"Claim",type:"text"},{id:"externalId",displayName:"External ID",groupName:"Claim",type:"text"},{id:"createdAt",displayName:"Date",groupName:"Claim",type:"date"},{id:"user.id",displayName:"User ID",groupName:"User",type:"text"},{id:"user.name",displayName:"Name",groupName:"User",type:"text"},{id:"user.email",displayName:"Email",groupName:"User",type:"text"},{id:"user.telegramId",displayName:"Telegram ID",groupName:"User",type:"text"},{id:"user.telegramUsername",displayName:"Telegram Username",groupName:"User",type:"text"},{id:"user.discordId",displayName:"Discord ID",groupName:"User",type:"text"},{id:"user.discordUsername",displayName:"Discord Username",groupName:"User",type:"text"},{id:"user.twitterUsername",displayName:"X Username",groupName:"User",type:"text"},{id:"user.zealyUserId",displayName:"Zealy ID",groupName:"User",type:"text"},{id:"user.redditId",displayName:"Reddit ID",groupName:"User",type:"text"},{id:"user.redditUsername",displayName:"Reddit Username",groupName:"User",type:"text"},{id:"user.walletAddress",displayName:"Wallet Address",groupName:"User",type:"text"}]),m=Q(!0),{claims:o,isLoading:h,queryKey:u,fetchNextPage:g,hasNextPage:I,isFetchingNextPage:k}=Ut({filters:t,canFlush:m}),R=It("listScroll");vt(R,()=>{I.value&&!k.value&&g()},{distance:10,canLoadMore:()=>I.value&&!k.value});const{claimId:q}=Ce({claimId:null},"params"),y=Q(new Set),x=gt();
2function b(l){y.value.clear(),l?(y.value.add(l?.id??""),re({path:ne("community",`/claims/${l?.id}`),query:{...x.query}},{replace:!0})):re({path:ne("community","/claims"),query:{...x.query}},{replace:!0})}const P=Q(null);function T(l,r,N){const J=l.metaKey||l.ctrlKey;if(l.shiftKey&&P.value!==null){const te=Math.min(P.value,N),ie=Math.max(P.value,N);for(let B=te;B<=ie;B++)o.value?.[B]&&y.value.add(o.value[B].id)}else J?y.value.has(r.id)?y.value.delete(r.id):y.value.add(r.id):(b(r),y.value.clear(),y.value.add(r.id));P.value=N}function M(l,r){r?y.value.add(l.id):y.value.delete(l.id)}const d=Z(()=>o.value?.findIndex(l=>l.id===q.value)??-1),j=Z(()=>d.value&&d.value>0),Y=Z(()=>d.value<(o.value?.length??0)-1),D=Q(null);function L(){Y.value&&b(o.value?.[d.value+1]??null)}function W(){j.value&&b(o.value?.[d.value-1]??null)}async function c({status:l}){D.value=l,y.value.size>1?Array.from(y.value):t.value;try{throw new Error("Not implemented")}catch(r){console.error(r)}finally{D.value=null}}const C=Q(!1),{notify:w,toast:z}=Dt(),E=Z(()=>{const l=t.value.find(r=>r.id==="quest.id");return l&&l.values.length===1?l.values[0]:null}),{mutate:G,isPending:$}=At();async function ee(){try{const l=await G({communityId:s.value?.id??"",questId:E.value??void 0,filters:t.value});window.open(l.signedUrl,"_blank"),await w({title:"Export ready",content:"Your CSV download should open in a new tab.",variant:"success"})}catch(l){console.error("Failed to export claims CSV:",l),z({title:"Export failed",description:l instanceof Error?l.message:"Please try again",variant:"destructive"})}}const{mutate:Ue,isPending:xe}=Rt();async function Ae(){if(E.value)try{const l=await Ue({questId:E.value,filters:t.value});await re(ne("organization",`/tables/${l.id}`))}catch(l){console.error("Failed to create table from quest claims:",l),z({title:"Failed to create table",description:l instanceof Error?l.message:"Please try again",variant:"destructive"})}}const{mutate:ze}=Pt();async function Re(l){C.value=!0;try{l||(y.value.size>1?await ze({communityId:s.value?.id??"",ids:Array.from(y.value)}):await ze({communityId:s.value?.id??"",filters:t.value})),await w({title:"Claims queued for reprocessing",content:"The selected claims have been queued for reprocessing. This may take a few minutes to complete."})}catch(r){console.error(r)}finally{C.value=!1}}bt(()=>{q.value&&y.value.add(q.value),_t(()=>{y.value.size!==1&&x.params.claimId&&re(ne("community","/claims"),{replace:!0})})}),St((l,r)=>{l.name!==r.name&&r.params.claimId&&y.value.clear()});const ue=Z(()=>Array.from(y.value).slice(0,10).map(l=>o.value?.find(r=>r.id===l))),Pe=wt();function De(l){Pe.invalidateQueries({queryKey:u.value}),y.value.delete(l)}return(l,r)=>{const N=Qe,J=Ye,de=Ze,te=Ge,ie=Xe,B=Je,Le=tt,X=st,ce=Ct,qe=it,Fe=et,He=$t,je=kt,me=Tt,Be=zt,Ke=Nt,Ie=Ot,We=Mt;return _(),V("div",fi,[S("div",{class:K(["custom-scrollbar sticky top-0 h-[calc(100vh_-_var(--header-height))] bg-card sticky top-0 flex w-full flex-col max-lg:max-w-full lg:max-w-sm lg:shrink-0 lg:border-r",{"max-lg:hidden":a(y)?.size}]),onMouseenter:r[7]||(r[7]=f=>m.value=!1),onMouseleave:r[8]||(r[8]=f=>m.value=!0)},[S("div",pi,[S("div",hi,[r[14]||(r[14]=S("h2",{class:"font-display wrap-anywhere text-lg"}," Claims ",-1)),p(Fe,{class:"mt-2"},{default:v(()=>[p(Le,null,{default:v(()=>[p(B,null,{default:v(()=>[p(ie,null,{default:v(()=>[p(de,{"as-child":""},{default:v(()=>[p(J,{variant:"outline",disabled:a(o).length===0&&a(t).length===0&&a(y).size===0,size:"xs"},{default:v(()=>[p(N,{name:"heroicons:ellipsis-horizontal"})]),_:1},8,["disabled"])]),_:1}),p(te,null,{default:v(()=>[U(A(a(y).size>1?`Apply actions to ${a(y).size} selected claims`:"Apply actions to all claims matching the filters"),1)]),_:1})]),_:1})]),_:1})]),_:1}),p(qe,null,{default:v(()=>[p(X,{onClick:r[0]||(r[0]=f=>c({status:"SUCCESS"}))},{default:v(()=>[...r[10]||(r[10]=[U(" Approve ",-1)])]),_:1}),p(X,{onClick:r[1]||(r[1]=f=>c({status:"FAIL"}))},{default:v(()=>[...r[11]||(r[11]=[U(" Reject ",-1)])]),_:1}),p(ce),p(X,{disabled:a($)||a(t).length===0&&a(o).length===0,onClick:r[2]||(r[2]=f=>ee())},{default:v(()=>[a($)?(_(),O(N,{key:0,name:"heroicons:arrow-path",class:"animate-spin"})):(_(),O(N,{key:1,name:"heroicons:arrow-down-tray"})),r[12]||(r[12]=U(" Export CSV ",-1))]),_:1},8,["disabled"]),p(ce),p(X,{icon:"far fa-refresh",onClick:r[3]||(r[3]=f=>Re())},{default:v(()=>[...r[13]||(r[13]=[U(" Reprocess claims ",-1)])]),_:1}),a(E)?(_(),O(ce,{key:0}
2)):F("",!0),a(E)?(_(),O(B,{key:1},{default:v(()=>[p(ie,null,{default:v(()=>[p(de,{"as-child":""},{default:v(()=>[p(X,{disabled:a(xe),onClick:r[4]||(r[4]=f=>Ae())},{default:v(()=>[a(xe)?(_(),O(N,{key:0,name:"heroicons:arrow-path",class:"animate-spin"})):(_(),O(N,{key:1,name:"heroicons:table-cells"})),U(" "+A(a(t).length>1?"Create Filtered Table":"Create Table"),1)]),_:1},8,["disabled"])]),_:1}),p(te,null,{default:v(()=>[U(A(a(t).length>1?"Create table from filtered claims":"Create table from all quest claims"),1)]),_:1})]),_:1})]),_:1})):F("",!0)]),_:1})]),_:1})]),S("div",yi,[p(Vt,{modelValue:a(t),"onUpdate:modelValue":r[5]||(r[5]=f=>xt(t)?t.value=f:null),columns:a(n)},null,8,["modelValue","columns"])])]),a(h)?(_(),V("div",vi,[S("div",gi,[(_(),V(he,null,ye(5,f=>S("div",{key:f,class:"flex items-center gap-3"},[...r[15]||(r[15]=[S("div",{class:"flex-1 space-y-2"},[S("div",{class:"h-4 w-32 rounded bg-gray-200 dark:bg-gray-700"}),S("div",{class:"h-3 w-24 rounded bg-gray-200 dark:bg-gray-700"})],-1)])])),64))])])):F("",!0),p(a(we),{ref_key:"listScroll",ref:R,class:"scroller",items:a(o),"item-size":72,"key-field":"id",buffer:500},{default:v(({item:f,index:H})=>[(_(),O(He,{key:f.id,class:K(["select-none",{"border-border border-b":H!==(a(o)?.length??0)-1}]),item:f,size:"sm","is-selected":a(q)===f.id||a(y).has(f.id),onClick:fe=>T(fe,f,H),onSelect:fe=>M(f,fe)},null,8,["item","is-selected","class","onClick","onSelect"]))]),_:1},8,["items"]),a(k)?(_(),V("div",bi,[p(je,{class:"size-6"})])):F("",!0),!a(h)&&a(o)?.length===0&&a(t).length?(_(),O(me,{key:2,content:"No claims found",description:"No claims found matching the filters above.",class:"my-6",size:"sm"},{default:v(()=>[p(J,{variant:"secondary",size:"sm",onClick:r[6]||(r[6]=f=>t.value=[])},{default:v(()=>[...r[16]||(r[16]=[U(" Clear filters ",-1)])]),_:1})]),_:1})):F("",!0),!a(h)&&a(o)?.length===0&&!a(t).length?(_(),O(me,{key:3,content:"No claims yet",description:"Once a user completes a quest, their claim will appear here.",class:"my-6",size:"sm"})):F("",!0)],34),p(Be,null,{default:v(({Component:f})=>[S("div",{class:K(["w-full lg:flex",{"max-lg:hidden":!a(y)?.size}])},[S("div",_i,[p(J,{variant:"outline",size:"sm",onClick:r[9]||(r[9]=H=>b(null))},{default:v(()=>[p(N,{name:"lucide:arrow-left"}),r[17]||(r[17]=U(" Back to claims ",-1))]),_:1})]),(_(),O(ve(f),{"has-newer-claims":a(j),"has-older-claims":a(Y),onNextClaim:L,onPreviousClaim:W,onClaimDeleted:De},null,40,["has-newer-claims","has-older-claims"]))],2)]),_:1}),a(y)?.size===0?(_(),V("div",Si,[p(me,{content:"Select a claim to view task details"})])):a(y)?.size!==1?(_(),V("div",wi,[(_(!0),V(he,null,ye(a(ue),(f,H)=>(_(),V("div",{key:f.id,class:"absolute left-1/2 top-1/2 z-[var(--z-index)] w-full max-w-md origin-top -translate-x-1/2 translate-y-[var(--translate-y)] scale-[var(--scale)] opacity-[var(--opacity)] backdrop-blur-sm transition-all duration-200",style:Ne([`--scale: ${1-.15*(H/Math.max(a(ue).length-1,1))}`,`--translate-y: calc(-${H*20}px - 50%)`,`--z-index: ${20-H}`,`--opacity: ${1-.2*(H/Math.max(a(ue).length-1,1))}`])},[p(We,{class:"p-4"},{default:v(()=>[S("div",xi,[S("div",zi,[S("div",Ii,[S("i",{class:K([f?.status==="SUCCESS"?"far fa-check-circle text-green-500":"far fa-times-circle text-red-500"])},null,2),S("span",Ci,A(f?.user.name),1)]),S("div",$i,[p(Ke,{timestamp:f.createdAt},null,8,["timestamp"])])]),S("div",{class:K(["border-l-4 pl-3",[f?.status==="SUCCESS"?"border-l-green-400":"border-l-red-400"]])},[S("h3",ki,A(f?.quest.name),1),S("p",Ti,A(f?.quest.description),1)],2),S("div",Ni,[p(Ie,{variant:f?.status==="SUCCESS"?"default":"destructive"},{default:v(()=>[U(A(f?.status==="SUCCESS"?"Success":"Failed"),1)]),_:2},1032,["variant"]),S("div",Oi,A(f?.quest.tasks?.length||0)+" task"+A((f?.quest.tasks?.length||0)!==1?"s":""),1)])])]),_:2},1024)],4))),128)),S("div",Mi,[p(Ie,{variant:"outline",class:"px-3 py-1"},{default:v(()=>[U(A(a(y)?.size)+" claim"+A(a(y)?.size!==1?"s":"")+" selected ",1)]),_:1})])])):F("",!0)])}}});export{rr as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.