diff --git a/js/ActivityTab-Bb6AyMro.chunk.mjs b/js/ActivityTab-Bb6AyMro.chunk.mjs new file mode 100644 index 000000000..313d873e0 --- /dev/null +++ b/js/ActivityTab-Bb6AyMro.chunk.mjs @@ -0,0 +1,3 @@ +(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".download-summary[data-v-81e4514f]{display:flex;align-items:flex-start;padding:8px 0;margin-bottom:calc(var(--default-grid-baseline) * 2);color:var(--color-text-maxcontrast)}.download-summary__icon[data-v-81e4514f]{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:20px;height:20px;margin-top:2px;opacity:.5}.download-summary__text[data-v-81e4514f]{padding:0 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity[data-v-242e244d]{display:flex;flex-direction:column;overflow:hidden;height:100%}.activity__actions[data-v-242e244d]{display:flex;flex-direction:column;width:100%}.activity__list[data-v-242e244d]{flex-grow:1;overflow:scroll}.activity__load-more[data-v-242e244d]{display:flex;justify-content:center;padding-block:calc(var(--default-grid-baseline) * 2)}.activity__empty-content[data-v-242e244d]{height:100%}[data-v-242e244d] .empty-content__icon span{background-size:64px;width:64px;height:64px}")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})(); +import{l as R}from"./activity-sidebar.mjs";import{b as G,j as S,h as P,m as D,N as V}from"./_plugin-vue_export-helper-YgYGpvaA.chunk.mjs";import{d as _,x as q,B,y as T,a,c as o,j as H,a1 as p,M as f,m as n,e as k,f as c,t as I,E as y,l as W,b as d,g as u,F as g,L as M,W as F,h as O,n as U}from"./translation-DoG5ZELJ-ns3A9vL-.chunk.mjs";import{a as N}from"./index-BrNGPgve.chunk.mjs";import{N as z,_ as Z,A as $}from"./ActivityComponent.vue_vue_type_script_setup_true_lang-Ce6NNuXP.chunk.mjs";import{l as w}from"./logger-CXg3FpL2.chunk.mjs";import{g as J,a as K,b as Q}from"./api-fwrRGLr6.chunk.mjs";import"./preload-helper-DxYC2qmj.chunk.mjs";var b;(function(t){t[t.User=0]="User",t[t.Group=1]="Group",t[t.Link=3]="Link",t[t.Email=4]="Email",t[t.Remote=6]="Remote",t[t.Team=7]="Team",t[t.Guest=8]="Guest",t[t.RemoteGroup=9]="RemoteGroup",t[t.Room=10]="Room",t[t.Deck=12]="Deck",t[t.FederatedGroup=14]="FederatedGroup",t[t.ScienceMesh=15]="ScienceMesh"})(b||(b={}));const X=_({__name:"ActivitySidebarPlugin",props:{plugin:{},node:{}},emits:["reloadActivities"],setup(t,{emit:e}){const i=t,s=e,r=H();return q(()=>i.plugin.mount(r.value,{node:i.node,context:B()?.proxy??void 0,reload:()=>s("reloadActivities")})),T(()=>i.plugin.unmount()),(m,l)=>(a(),o("div",{ref_key:"attachTarget",ref:r},null,512))}}),Y='',tt=_({name:"DownloadSummary",components:{NcIconSvgWrapper:G},props:{fileId:{type:Number,required:!0}},data(){return{totalCount:0,monthlyCount:0,downloadSVG:Y}},computed:{summaryText(){return this.monthlyCount>0&&this.monthlyCount0?(a(),o("div",it,[k("span",et,[c(l,{svg:t.downloadSVG,size:20},null,8,["svg"])]),k("span",at,I(t.summaryText),1)])):y("",!0)}const ot=P(tt,[["render",st],["__scopeId","data-v-81e4514f"]]),nt=50,rt=_({name:"ActivityTab",components:{ActivityComponent:Z,DownloadSummary:ot,NcButton:V,NcEmptyContent:z,NcIconSvgWrapper:G,NcLoadingIcon:D,ActivitySidebarPlugin:X},props:{node:{type:Object,required:!0},folder:{type:Object,required:!1,default:void 0},view:{type:Object,required:!1,default:void 0}},expose:["update"],data(){return{error:"",loading:!0,loadingMore:!1,activities:[],lightningBoltSVG:R,sidebarPlugins:[],requestController:null,realActivities:[],otherEntries:[],lastGiven:void 0,hasMore:!1}},computed:{hasPublicLink(){return Object.values(this.node?.attributes?.["share-types"]??{}).flat().includes(b.Link)}},watch:{node:{immediate:!0,async handler(){await this.update()}}},beforeUnmount(){this.requestController?.abort()},methods:{async update(){this.sidebarPlugins=[];const t=Q();t.length>0&&W(()=>{this.sidebarPlugins=t}),this.resetState(),await this.getActivities()},async getActivities(){await this.fetchPage(!0)},async loadMoreActivities(){await this.fetchPage(!1)},async fetchPage(t){this.requestController?.abort();const e=new AbortController;this.requestController=e;const{signal:i}=e;try{t?this.loading=!0:this.loadingMore=!0;const s=await this.loadRealActivities(i,t?void 0:this.lastGiven),r=this.processActivities(s.activities),m=t?await K({node:this.node}):this.otherEntries;if(i.aborted)return;this.realActivities=t?r:[...this.realActivities,...r],this.otherEntries=m,(t||s.lastGiven!==void 0)&&(this.lastGiven=s.lastGiven),this.hasMore=s.hasMore,this.activities=[...this.realActivities,...this.otherEntries].sort((l,h)=>h.timestamp-l.timestamp)}catch(s){if(i.aborted)return;this.error=f("activity","Unable to load the activity list"),w.error("Error loading the activity list",{error:s})}finally{i.aborted||(this.loading=!1,this.loadingMore=!1)}},resetState(){this.loading=!0,this.loadingMore=!1,this.error="",this.activities=[],this.realActivities=[],this.otherEntries=[],this.lastGiven=void 0,this.hasMore=!1},async loadRealActivities(t,e){try{const i=await S.get(N("apps/activity/api/v2/activity/filter"),{signal:t,params:{format:"json",object_type:"files",object_id:this.node.fileid,limit:nt,...e===void 0?{}:{since:e}}});return{activities:i.data.ocs.data,lastGiven:i.headers["x-activity-last-given"],hasMore:String(i.headers.link??"").includes('rel="next"')}}catch(i){if(i.response!==void 0&&i.response.status===304)return{activities:[],lastGiven:void 0,hasMore:!1};throw i}},processActivities(t){t=t.map(i=>new $(i)),w.debug(`Processed ${t.length} activity(ies)`,{activities:t,node:this.node});const e=J();return t.filter(i=>!e||e.every(s=>s(i)))},t:f}}),lt={key:0,class:"activity__actions"},dt={key:4,class:"activity__list"},ct={key:0,class:"activity__load-more"};function ht(t,e,i,s,r,m){const l=n("NcIconSvgWrapper"),h=n("NcEmptyContent"),L=n("ActivitySidebarPlugin"),j=n("DownloadSummary"),C=n("NcLoadingIcon"),x=n("ActivityComponent"),E=n("NcButton");return a(),o("div",{class:U([{"icon-loading":t.loading},"activity"])},[t.error||!t.node?(a(),d(h,{key:0,name:t.error},{icon:u(()=>[c(l,{svg:t.lightningBoltSVG},null,8,["svg"])]),_:1},8,["name"])):(a(),o(g,{key:1},[t.sidebarPlugins.length>0?(a(),o("div",lt,[(a(!0),o(g,null,M(t.sidebarPlugins,(v,A)=>(a(),d(L,{key:A,plugin:v,node:t.node,onReloadActivities:e[0]||(e[0]=vt=>t.getActivities())},null,8,["plugin","node"]))),128))])):y("",!0),t.hasPublicLink&&t.node.fileid?(a(),d(j,{key:1,fileId:t.node.fileid},null,8,["fileId"])):y("",!0),t.loading?(a(),d(h,{key:2,class:"activity__empty-content",name:t.t("activity","Loading activities")},{icon:u(()=>[c(C)]),_:1},8,["name"])):t.activities.length===0?(a(),d(h,{key:3,class:"activity__empty-content",name:t.t("activity","No activity yet")},{icon:u(()=>[c(l,{svg:t.lightningBoltSVG},null,8,["svg"])]),_:1},8,["name"])):(a(),o("ul",dt,[(a(!0),o(g,null,M(t.activities,v=>(a(),d(x,{key:v.id,activity:v,showPreviews:!1,onReload:e[1]||(e[1]=A=>t.getActivities())},null,8,["activity"]))),128)),t.hasMore?(a(),o("li",ct,[c(E,{variant:"tertiary",wide:"",disabled:t.loadingMore,onClick:e[2]||(e[2]=v=>t.loadMoreActivities())},F({default:u(()=>[O(" "+I(t.loadingMore?t.t("activity","Loading older activities…"):t.t("activity","Load older activities")),1)]),_:2},[t.loadingMore?{name:"icon",fn:u(()=>[c(C,{size:20})]),key:"0"}:void 0]),1032,["disabled"])])):y("",!0)]))],64))],2)}const _t=P(rt,[["render",ht],["__scopeId","data-v-242e244d"]]);export{_t as default}; +//# sourceMappingURL=ActivityTab-Bb6AyMro.chunk.mjs.map diff --git a/js/ActivityTab-EzBumh36.chunk.mjs.license b/js/ActivityTab-Bb6AyMro.chunk.mjs.license similarity index 100% rename from js/ActivityTab-EzBumh36.chunk.mjs.license rename to js/ActivityTab-Bb6AyMro.chunk.mjs.license diff --git a/js/ActivityTab-Bb6AyMro.chunk.mjs.map b/js/ActivityTab-Bb6AyMro.chunk.mjs.map new file mode 100644 index 000000000..75216c867 --- /dev/null +++ b/js/ActivityTab-Bb6AyMro.chunk.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"ActivityTab-Bb6AyMro.chunk.mjs","sources":["../node_modules/@nextcloud/sharing/dist/share/ShareType.js","../src/components/ActivitySidebarPlugin.vue","../node_modules/@mdi/svg/svg/download-circle.svg?raw","../src/components/DownloadSummary.vue","../src/views/ActivityTab.vue"],"sourcesContent":["/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nexport var ShareType;\n(function (ShareType) {\n ShareType[ShareType[\"User\"] = 0] = \"User\";\n ShareType[ShareType[\"Group\"] = 1] = \"Group\";\n ShareType[ShareType[\"Link\"] = 3] = \"Link\";\n ShareType[ShareType[\"Email\"] = 4] = \"Email\";\n ShareType[ShareType[\"Remote\"] = 6] = \"Remote\";\n /**\n * Was called `Circle` before Nextcloud 29\n */\n ShareType[ShareType[\"Team\"] = 7] = \"Team\";\n ShareType[ShareType[\"Guest\"] = 8] = \"Guest\";\n ShareType[ShareType[\"RemoteGroup\"] = 9] = \"RemoteGroup\";\n ShareType[ShareType[\"Room\"] = 10] = \"Room\";\n ShareType[ShareType[\"Deck\"] = 12] = \"Deck\";\n /**\n * @since 26.0.0\n */\n ShareType[ShareType[\"FederatedGroup\"] = 14] = \"FederatedGroup\";\n /**\n * Third party share types\n *\n * @since 25.0.0\n */\n ShareType[ShareType[\"ScienceMesh\"] = 15] = \"ScienceMesh\";\n})(ShareType || (ShareType = {}));\n","\n\n\n\n\n","export default \"\"","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n"],"names":["ShareType","props","__props","emit","__emit","attachTarget","ref","onMounted","getCurrentInstance","onBeforeUnmount","_createElementBlock","downloadSVG","_sfc_main","defineComponent","NcIconSvgWrapper","n","response","axios","generateOcsUrl","error","logger","t","_hoisted_2","_hoisted_3","_ctx","_openBlock","_hoisted_1","_createElementVNode","_createVNode","_component_NcIconSvgWrapper","_toDisplayString","_createCommentVNode","ACTIVITY_PAGE_SIZE","ActivityTab","ActivityComponent","DownloadSummary","NcButton","NcEmptyContent","NcLoadingIcon","ActivitySidebarPlugin","lightningBoltSVG","sidebarPlugins","getSidebarActions","nextTick","reset","controller","signal","page","activities","otherEntries","getAdditionalEntries","a","b","since","activity","ActivityModel","filters","getActivityFilters","filter","_normalizeClass","_createBlock","_component_NcEmptyContent","_withCtx","_Fragment","_renderList","plugin","index","_component_ActivitySidebarPlugin","_cache","_component_DownloadSummary","_component_NcLoadingIcon","_component_ActivityComponent","_component_NcButton","_createSlots","_createTextVNode"],"mappings":"qoBAIO,IAAIA,GACV,SAAUA,EAAW,CAClBA,EAAUA,EAAU,KAAU,CAAC,EAAI,OACnCA,EAAUA,EAAU,MAAW,CAAC,EAAI,QACpCA,EAAUA,EAAU,KAAU,CAAC,EAAI,OACnCA,EAAUA,EAAU,MAAW,CAAC,EAAI,QACpCA,EAAUA,EAAU,OAAY,CAAC,EAAI,SAIrCA,EAAUA,EAAU,KAAU,CAAC,EAAI,OACnCA,EAAUA,EAAU,MAAW,CAAC,EAAI,QACpCA,EAAUA,EAAU,YAAiB,CAAC,EAAI,cAC1CA,EAAUA,EAAU,KAAU,EAAE,EAAI,OACpCA,EAAUA,EAAU,KAAU,EAAE,EAAI,OAIpCA,EAAUA,EAAU,eAAoB,EAAE,EAAI,iBAM9CA,EAAUA,EAAU,YAAiB,EAAE,EAAI,aAC/C,GAAGA,IAAcA,EAAY,CAAA,EAAG,mHCdhC,MAAMC,EAAQC,EASRC,EAAOC,EAIPC,EAAeC,EAAA,EAErB,OAAAC,EAAU,IAAMN,EAAM,OAAO,MAAMI,EAAa,MAAyB,CACxE,KAAMJ,EAAM,KACZ,QAASO,KAAsB,OAAS,OACxC,OAAQ,IAAML,EAAK,kBAAkB,CAAA,CACrC,CAAC,EACFM,EAAgB,IAAMR,EAAM,OAAO,QAAA,CAAS,cA7B3CS,EAA0B,MAAA,SAAjB,eAAJ,IAAIL,CAAA,gBCNVM,EAAe,kPCuBfC,GAAeC,EAAgB,CAC9B,KAAM,kBAEN,WAAY,CACX,iBAAAC,CAAA,EAGD,MAAO,CACN,OAAQ,CACP,KAAM,OACN,SAAU,EAAA,CACX,EAGD,MAAO,CACN,MAAO,CACN,WAAY,EACZ,aAAc,EACd,YAAAH,CAAA,CAEF,EAEA,SAAU,CACT,aAAsB,CACrB,OAAI,KAAK,aAAe,GAAK,KAAK,aAAe,KAAK,WAC9CI,EACN,WACA,8CACA,+CACA,KAAK,WACL,CAAC,OAAO,KAAK,YAAY,CAAC,CAAA,EAGrBA,EACN,WACA,qBACA,sBACA,KAAK,UAAA,CAEP,CAAA,EAGD,MAAO,CACN,OAAQ,CACP,UAAW,GACX,SAAU,CACT,KAAK,YAAA,CACN,CAAA,CACD,EAGD,QAAS,CACR,MAAM,aAAc,CACnB,GAAK,KAAK,OAGV,CAAA,KAAK,WAAa,EAClB,KAAK,aAAe,EACpB,GAAI,CACH,MAAMC,EAAW,MAAMC,EAAM,IAAIC,EAAe,+CAA+C,EAAG,CACjG,OAAQ,CAAE,OAAQ,OAAQ,YAAa,QAAS,UAAW,KAAK,MAAA,CAAO,CACvE,EACD,KAAK,WAAaF,EAAS,KAAK,IAAI,KAAK,MACzC,KAAK,aAAeA,EAAS,KAAK,IAAI,KAAK,OAC5C,OAASG,EAAO,CACfC,EAAO,MAAM,kCAAmC,CAAE,MAAAD,CAAA,CAAO,CAC1D,EACD,EAAA,EAEAE,EAAA,EACAN,CAAA,CAEF,CAAC,YAzF2B,MAAM,oBAC1BO,GAAA,CAAA,MAAM,wBAAA,EAGNC,GAAA,CAAA,MAAM,wBAAA,gEAJFC,EAAA,WAAU,GAAAC,EAAA,EAArBf,EAKM,MALNgB,GAKM,CAJLC,EAEO,OAFPL,GAEO,CADNM,EAAkDC,EAAA,CAA/B,IAAKL,EAAA,YAAc,KAAM,EAAA,EAAA,KAAA,EAAA,CAAA,KAAA,CAAA,IAE7CG,EAA6D,OAA7DJ,GAA6DO,EAArBN,EAAA,WAAW,EAAA,CAAA,CAAA,CAAA,GAAAO,EAAA,GAAA,EAAA,iEC0F/CC,GAAqB,GAErBC,GAAcpB,EAAgB,CACnC,KAAM,cAEN,WAAY,CAAA,kBACXqB,EACA,gBAAAC,GACA,SAAAC,EACA,eAAAC,EACA,iBAAAvB,EACA,cAAAwB,EAAA,sBACAC,CAAA,EAGD,MAAO,CAIN,KAAM,CACL,KAAM,OACN,SAAU,EAAA,EAOX,OAAQ,CACP,KAAM,OACN,SAAU,GACV,QAAS,MAAA,EAOV,KAAM,CACL,KAAM,OACN,SAAU,GACV,QAAS,MAAA,CACV,EAGD,OAAQ,CAAC,QAAQ,EAEjB,MAAO,CACN,MAAO,CACN,MAAO,GACP,QAAS,GACT,YAAa,GACb,WAAY,CAAA,EACZ,iBAAAC,EACA,eAAgB,CAAA,EAIhB,kBAAmB,KAGnB,eAAgB,CAAA,EAGhB,aAAc,CAAA,EAGd,UAAW,OAEX,QAAS,EAAA,CAEX,EAEA,SAAU,CACT,eAAyB,CAExB,OADmB,OAAO,OAAO,KAAK,MAAM,aAAa,aAAa,GAAK,EAAE,EAAE,KAAA,EAC7D,SAASxC,EAAU,IAAI,CAC1C,CAAA,EAGD,MAAO,CAIN,KAAM,CACL,UAAW,GACX,MAAM,SAAU,CACf,MAAM,KAAK,OAAA,CACZ,CAAA,CACD,EAGD,eAAgB,CACf,KAAK,mBAAmB,MAAA,CACzB,EAEA,QAAS,CAIR,MAAM,QAAS,CACd,KAAK,eAAiB,CAAA,EACtB,MAAMyC,EAAiBC,EAAA,EACnBD,EAAe,OAAS,GAC3BE,EAAS,IAAM,CACd,KAAK,eAAiBF,CACvB,CAAC,EAGF,KAAK,WAAA,EACL,MAAM,KAAK,cAAA,CACZ,EAKA,MAAM,eAAgB,CACrB,MAAM,KAAK,UAAU,EAAI,CAC1B,EAKA,MAAM,oBAAqB,CAC1B,MAAM,KAAK,UAAU,EAAK,CAC3B,EAaA,MAAM,UAAUG,EAAgB,CAC/B,KAAK,mBAAmB,MAAA,EACxB,MAAMC,EAAa,IAAI,gBACvB,KAAK,kBAAoBA,EACzB,KAAM,CAAE,OAAAC,GAAWD,EAEnB,GAAI,CACCD,EACH,KAAK,QAAU,GAEf,KAAK,YAAc,GAGpB,MAAMG,EAAO,MAAM,KAAK,mBAAmBD,EAAQF,EAAQ,OAAY,KAAK,SAAS,EAC/EI,EAAa,KAAK,kBAAkBD,EAAK,UAAU,EAInDE,EAAeL,EAClB,MAAMM,EAAqB,CAAE,KAAM,KAAK,IAAA,CAAM,EAC9C,KAAK,aACR,GAAIJ,EAAO,QACV,OAGD,KAAK,eAAiBF,EAAQI,EAAa,CAAC,GAAG,KAAK,eAAgB,GAAGA,CAAU,EACjF,KAAK,aAAeC,GAChBL,GAASG,EAAK,YAAc,UAC/B,KAAK,UAAYA,EAAK,WAEvB,KAAK,QAAUA,EAAK,QACpB,KAAK,WAAa,CAAC,GAAG,KAAK,eAAgB,GAAG,KAAK,YAAY,EAC7D,KAAK,CAACI,EAAGC,IAAMA,EAAE,UAAYD,EAAE,SAAS,CAC3C,OAAShC,EAAO,CACf,GAAI2B,EAAO,QAGV,OAED,KAAK,MAAQzB,EAAE,WAAY,kCAAkC,EAC7DD,EAAO,MAAM,kCAAmC,CAAE,MAAAD,CAAA,CAAO,CAC1D,QAAA,CAEM2B,EAAO,UACX,KAAK,QAAU,GACf,KAAK,YAAc,GAErB,CACD,EAKA,YAAa,CACZ,KAAK,QAAU,GACf,KAAK,YAAc,GACnB,KAAK,MAAQ,GACb,KAAK,WAAa,CAAA,EAClB,KAAK,eAAiB,CAAA,EACtB,KAAK,aAAe,CAAA,EACpB,KAAK,UAAY,OACjB,KAAK,QAAU,EAChB,EAQA,MAAM,mBAAmBA,EAAsBO,EAAgB,CAC9D,GAAI,CACH,MAAMrC,EAAW,MAAMC,EAAM,IAC5BC,EAAe,sCAAsC,EACrD,CACC,OAAA4B,EACA,OAAQ,CACP,OAAQ,OACR,YAAa,QACb,UAAW,KAAK,KAAK,OACrB,MAAOd,GACP,GAAIqB,IAAU,OAAY,CAAA,EAAK,CAAE,MAAAA,CAAA,CAAM,CACxC,CACD,EAED,MAAO,CACN,WAAYrC,EAAS,KAAK,IAAI,KAC9B,UAAWA,EAAS,QAAQ,uBAAuB,EAInD,QAAS,OAAOA,EAAS,QAAQ,MAAQ,EAAE,EAAE,SAAS,YAAY,CAAA,CAEpE,OAASG,EAAO,CAEf,GAAIA,EAAM,WAAa,QAAaA,EAAM,SAAS,SAAW,IAC7D,MAAO,CAAE,WAAY,CAAA,EAAI,UAAW,OAAW,QAAS,EAAA,EAEzD,MAAMA,CACP,CACD,EAOA,kBAAkB6B,EAA6B,CAC9CA,EAAaA,EAAW,IAAKM,GAAa,IAAIC,EAAcD,CAAQ,CAAC,EAErElC,EAAO,MAAM,aAAa4B,EAAW,MAAM,iBAAkB,CAC5D,WAAAA,EACA,KAAM,KAAK,IAAA,CACX,EAED,MAAMQ,EAAUC,EAAA,EAChB,OAAOT,EAAW,OAAQM,GAAa,CAACE,GAAWA,EAAQ,MAAOE,GAAWA,EAAOJ,CAAQ,CAAC,CAAC,CAC/F,EAAA,EAEAjC,CAAA,CAEF,CAAC,YAtVwC,MAAM,+BA+BjC,MAAM,4BAOG,MAAM,iOAjD5BX,EA+DM,MAAA,CA9DJ,MAAKiD,EAAA,CAAA,CAAA,eAAoBnC,EAAA,OAAA,EACpB,UAAU,CAAA,CAAA,EAAA,CAEMA,EAAA,OAAK,CAAKA,YAAhCoC,EAIiBC,EAAA,CAAA,IAAA,EAJsB,KAAMrC,EAAA,KAAA,EAAA,CACjC,KAAIsC,EACd,IAA4C,CAA5ClC,EAA4CC,EAAA,CAAzB,IAAKL,EAAA,gBAAA,EAAgB,KAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAAA,yBAG1Cd,EAqDWqD,EAAA,CAAA,IAAA,GAAA,CAnDCvC,EAAA,eAAe,OAAM,GAAAC,EAAA,EAAhCf,EAOM,MAPNgB,GAOM,EAAAD,EAAA,EAAA,EANLf,EAKuCqD,EAAA,KAAAC,EAJZxC,EAAA,eAAc,CAAhCyC,EAAQC,SADjBN,EAKuCO,EAAA,CAHrC,IAAKD,EACL,OAAAD,EACA,KAAMzC,EAAA,KACN,mBAAgB4C,gBAAE5C,EAAA,cAAA,EAAa,EAAA,KAAA,EAAA,CAAA,SAAA,MAAA,CAAA,sBAK3BA,EAAA,eAAiBA,EAAA,KAAK,YAD7BoC,EAEyBS,EAAA,CAAA,IAAA,EAAvB,OAAQ7C,EAAA,KAAK,MAAA,EAAA,KAAA,EAAA,CAAA,QAAA,CAAA,GAAAO,EAAA,GAAA,EAAA,EAIRP,EAAA,SAAAC,IADPmC,EAOiBC,EAAA,CAAA,IAAA,EALhB,MAAM,0BACL,KAAMrC,EAAA,EAAC,WAAA,oBAAA,CAAA,EAAA,CACG,KAAIsC,EACd,IAAiB,CAAjBlC,EAAiB0C,CAAA,CAAA,CAAA,oBAIP9C,EAAA,WAAW,SAAM,OAD7BoC,EAOiBC,EAAA,CAAA,IAAA,EALhB,MAAM,0BACL,KAAMrC,EAAA,EAAC,WAAA,iBAAA,CAAA,EAAA,CACG,KAAIsC,EACd,IAA4C,CAA5ClC,EAA4CC,EAAA,CAAzB,IAAKL,EAAA,gBAAA,EAAgB,KAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAAA,KAG1C,EAAA,EAAA,CAAA,MAAA,CAAA,IAAAC,EAAA,EAAAf,EAmBK,KAnBLY,GAmBK,EAAAG,EAAA,EAAA,EAlBJf,EAK6BqD,EAAA,KAAAC,EAJTxC,EAAA,WAAZ8B,QADRM,EAK6BW,EAAA,CAH3B,IAAKjB,EAAS,GACd,SAAAA,EACA,aAAc,GACd,SAAMc,eAAE5C,EAAA,cAAA,EAAa,EAAA,KAAA,EAAA,CAAA,UAAA,CAAA,UACbA,EAAA,SAAAC,EAAA,EAAVf,EAWK,KAXLa,GAWK,CAVJK,EASW4C,EAAA,CARV,QAAQ,WACR,KAAA,GACC,SAAUhD,EAAA,YACV,QAAK4C,eAAE5C,EAAA,mBAAA,EAAkB,EAAAiD,EAAA,WAGf,IACX,CAAAC,EADW,IACX5C,EAAGN,EAAA,YAAcA,EAAA,EAAC,wCAA4CA,EAAA,EAAC,WAAA,uBAAA,CAAA,EAAA,CAAA,CAAA,CAAA,QAH/CA,EAAA,YAAA,CAAc,KAAA,OAAA,GAAAsC,EAC7B,IAA4B,CAA5BlC,EAA4B0C,EAAA,CAAZ,KAAM,EAAA,CAAE,CAAA,CAAA","x_google_ignoreList":[0,2]} \ No newline at end of file diff --git a/js/ActivityTab-EzBumh36.chunk.mjs b/js/ActivityTab-EzBumh36.chunk.mjs deleted file mode 100644 index cd3da39d9..000000000 --- a/js/ActivityTab-EzBumh36.chunk.mjs +++ /dev/null @@ -1,3 +0,0 @@ -(function(){"use strict";try{if(typeof document<"u"){var t=document.createElement("style");t.appendChild(document.createTextNode(".download-summary[data-v-81e4514f]{display:flex;align-items:flex-start;padding:8px 0;margin-bottom:calc(var(--default-grid-baseline) * 2);color:var(--color-text-maxcontrast)}.download-summary__icon[data-v-81e4514f]{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:20px;height:20px;margin-top:2px;opacity:.5}.download-summary__text[data-v-81e4514f]{padding:0 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity[data-v-50818749]{display:flex;flex-direction:column;overflow:hidden;height:100%}.activity__actions[data-v-50818749]{display:flex;flex-direction:column;width:100%}.activity__list[data-v-50818749]{flex-grow:1;overflow:scroll}.activity__empty-content[data-v-50818749]{height:100%}[data-v-50818749] .empty-content__icon span{background-size:64px;width:64px;height:64px}")),document.head.appendChild(t)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})(); -import{l as R}from"./activity-sidebar.mjs";import{b as A,j as I,h as G,m as D}from"./_plugin-vue_export-helper-YgYGpvaA.chunk.mjs";import{d as b,x as V,B as E,y as M,a as i,c as o,j as T,a1 as p,M as h,m as n,e as S,f as u,t as B,E as g,l as H,b as r,g as y,F as v,L as k,n as q}from"./translation-DoG5ZELJ-ns3A9vL-.chunk.mjs";import{a as j}from"./index-BrNGPgve.chunk.mjs";import{N as F,_ as O,A as W}from"./ActivityComponent.vue_vue_type_script_setup_true_lang-Ce6NNuXP.chunk.mjs";import{l as f}from"./logger-CXg3FpL2.chunk.mjs";import{g as U,a as z,b as Z}from"./api-fwrRGLr6.chunk.mjs";import"./preload-helper-DxYC2qmj.chunk.mjs";var w;(function(t){t[t.User=0]="User",t[t.Group=1]="Group",t[t.Link=3]="Link",t[t.Email=4]="Email",t[t.Remote=6]="Remote",t[t.Team=7]="Team",t[t.Guest=8]="Guest",t[t.RemoteGroup=9]="RemoteGroup",t[t.Room=10]="Room",t[t.Deck=12]="Deck",t[t.FederatedGroup=14]="FederatedGroup",t[t.ScienceMesh=15]="ScienceMesh"})(w||(w={}));const $=b({__name:"ActivitySidebarPlugin",props:{plugin:{},node:{}},emits:["reloadActivities"],setup(t,{emit:e}){const a=t,s=e,d=T();return V(()=>a.plugin.mount(d.value,{node:a.node,context:E()?.proxy??void 0,reload:()=>s("reloadActivities")})),M(()=>a.plugin.unmount()),(_,c)=>(i(),o("div",{ref_key:"attachTarget",ref:d},null,512))}}),J='',K=b({name:"DownloadSummary",components:{NcIconSvgWrapper:A},props:{fileId:{type:Number,required:!0}},data(){return{totalCount:0,monthlyCount:0,downloadSVG:J}},computed:{summaryText(){return this.monthlyCount>0&&this.monthlyCount0?(i(),o("div",Q,[S("span",X,[u(c,{svg:t.downloadSVG,size:20},null,8,["svg"])]),S("span",Y,B(t.summaryText),1)])):g("",!0)}const it=G(K,[["render",tt],["__scopeId","data-v-81e4514f"]]),et=b({name:"ActivityTab",components:{ActivityComponent:O,DownloadSummary:it,NcEmptyContent:F,NcIconSvgWrapper:A,NcLoadingIcon:D,ActivitySidebarPlugin:$},props:{node:{type:Object,required:!0},folder:{type:Object,required:!1,default:void 0},view:{type:Object,required:!1,default:void 0}},expose:["update"],data(){return{error:"",loading:!0,activities:[],lightningBoltSVG:R,sidebarPlugins:[]}},computed:{hasPublicLink(){return Object.values(this.node?.attributes?.["share-types"]??{}).flat().includes(w.Link)}},watch:{node:{immediate:!0,async handler(){await this.update()}}},async mounted(){this.node&&await this.update()},methods:{async update(){this.sidebarPlugins=[];const t=Z();t.length>0&&H(()=>{this.sidebarPlugins=t}),this.resetState(),await this.getActivities()},async getActivities(){try{this.loading=!0;const t=await this.processActivities(await this.loadRealActivities()),e=await z({node:this.node});this.activities=[...t,...e].sort((a,s)=>s.timestamp-a.timestamp)}catch(t){this.error=h("activity","Unable to load the activity list"),f.error("Error loading the activity list",{error:t})}finally{this.loading=!1}},resetState(){this.loading=!0,this.error="",this.activities=[]},async loadRealActivities(){try{const{data:t}=await I.get(j("apps/activity/api/v2/activity/filter"),{params:{format:"json",object_type:"files",object_id:this.node.fileid}});return t.ocs.data}catch(t){if(t.response!==void 0&&t.response.status===304)return[];throw t}},processActivities(t){t=t.map(a=>new W(a)),f.debug(`Processed ${t.length} activity(ies)`,{activities:t,node:this.node});const e=U();return t.filter(a=>!e||e.every(s=>s(a)))},t:h}}),at={key:0,class:"activity__actions"},ot={key:4,class:"activity__list"};function st(t,e,a,s,d,_){const c=n("NcIconSvgWrapper"),m=n("NcEmptyContent"),P=n("ActivitySidebarPlugin"),L=n("DownloadSummary"),N=n("NcLoadingIcon"),x=n("ActivityComponent");return i(),o("div",{class:q([{"icon-loading":t.loading},"activity"])},[t.error||!t.node?(i(),r(m,{key:0,name:t.error},{icon:y(()=>[u(c,{svg:t.lightningBoltSVG},null,8,["svg"])]),_:1},8,["name"])):(i(),o(v,{key:1},[t.sidebarPlugins.length>0?(i(),o("div",at,[(i(!0),o(v,null,k(t.sidebarPlugins,(l,C)=>(i(),r(P,{key:C,plugin:l,node:t.node,onReloadActivities:e[0]||(e[0]=nt=>t.getActivities())},null,8,["plugin","node"]))),128))])):g("",!0),t.hasPublicLink&&t.node.fileid?(i(),r(L,{key:1,fileId:t.node.fileid},null,8,["fileId"])):g("",!0),t.loading?(i(),r(m,{key:2,class:"activity__empty-content",name:t.t("activity","Loading activities")},{icon:y(()=>[u(N)]),_:1},8,["name"])):t.activities.length===0?(i(),r(m,{key:3,class:"activity__empty-content",name:t.t("activity","No activity yet")},{icon:y(()=>[u(c,{svg:t.lightningBoltSVG},null,8,["svg"])]),_:1},8,["name"])):(i(),o("ul",ot,[(i(!0),o(v,null,k(t.activities,l=>(i(),r(x,{key:l.id,activity:l,showPreviews:!1,onReload:e[1]||(e[1]=C=>t.getActivities())},null,8,["activity"]))),128))]))],64))],2)}const vt=G(et,[["render",st],["__scopeId","data-v-50818749"]]);export{vt as default}; -//# sourceMappingURL=ActivityTab-EzBumh36.chunk.mjs.map diff --git a/js/ActivityTab-EzBumh36.chunk.mjs.map b/js/ActivityTab-EzBumh36.chunk.mjs.map deleted file mode 100644 index 723d1cbc7..000000000 --- a/js/ActivityTab-EzBumh36.chunk.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ActivityTab-EzBumh36.chunk.mjs","sources":["../node_modules/@nextcloud/sharing/dist/share/ShareType.js","../src/components/ActivitySidebarPlugin.vue","../node_modules/@mdi/svg/svg/download-circle.svg?raw","../src/components/DownloadSummary.vue","../src/views/ActivityTab.vue"],"sourcesContent":["/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nexport var ShareType;\n(function (ShareType) {\n ShareType[ShareType[\"User\"] = 0] = \"User\";\n ShareType[ShareType[\"Group\"] = 1] = \"Group\";\n ShareType[ShareType[\"Link\"] = 3] = \"Link\";\n ShareType[ShareType[\"Email\"] = 4] = \"Email\";\n ShareType[ShareType[\"Remote\"] = 6] = \"Remote\";\n /**\n * Was called `Circle` before Nextcloud 29\n */\n ShareType[ShareType[\"Team\"] = 7] = \"Team\";\n ShareType[ShareType[\"Guest\"] = 8] = \"Guest\";\n ShareType[ShareType[\"RemoteGroup\"] = 9] = \"RemoteGroup\";\n ShareType[ShareType[\"Room\"] = 10] = \"Room\";\n ShareType[ShareType[\"Deck\"] = 12] = \"Deck\";\n /**\n * @since 26.0.0\n */\n ShareType[ShareType[\"FederatedGroup\"] = 14] = \"FederatedGroup\";\n /**\n * Third party share types\n *\n * @since 25.0.0\n */\n ShareType[ShareType[\"ScienceMesh\"] = 15] = \"ScienceMesh\";\n})(ShareType || (ShareType = {}));\n","\n\n\n\n\n","export default \"\"","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n"],"names":["ShareType","props","__props","emit","__emit","attachTarget","ref","onMounted","getCurrentInstance","onBeforeUnmount","_createElementBlock","downloadSVG","_sfc_main","defineComponent","NcIconSvgWrapper","n","response","axios","generateOcsUrl","error","logger","t","_hoisted_2","_hoisted_3","_ctx","_openBlock","_hoisted_1","_createElementVNode","_createVNode","_component_NcIconSvgWrapper","_toDisplayString","_createCommentVNode","ActivityTab","ActivityComponent","DownloadSummary","NcEmptyContent","NcLoadingIcon","ActivitySidebarPlugin","lightningBoltSVG","sidebarPlugins","getSidebarActions","nextTick","activities","otherEntries","getAdditionalEntries","a","b","data","activity","ActivityModel","filters","getActivityFilters","filter","_normalizeClass","_createBlock","_component_NcEmptyContent","_withCtx","_Fragment","_renderList","plugin","index","_component_ActivitySidebarPlugin","_cache","_component_DownloadSummary","_component_NcLoadingIcon","_component_ActivityComponent"],"mappings":"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","x_google_ignoreList":[0,2]} \ No newline at end of file diff --git a/js/activity-sidebar.mjs b/js/activity-sidebar.mjs index 2ac1b6b5a..5f22245e6 100644 --- a/js/activity-sidebar.mjs +++ b/js/activity-sidebar.mjs @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('activity', '', 'js/ActivityTab-EzBumh36.chunk.mjs'),window.OC.filePath('activity', '', 'js/_plugin-vue_export-helper-YgYGpvaA.chunk.mjs'),window.OC.filePath('activity', '', 'js/index-BrNGPgve.chunk.mjs'),window.OC.filePath('activity', '', 'js/translation-DoG5ZELJ-ns3A9vL-.chunk.mjs'),window.OC.filePath('activity', '', 'js/ActivityComponent.vue_vue_type_script_setup_true_lang-Ce6NNuXP.chunk.mjs'),window.OC.filePath('activity', '', 'js/preload-helper-DxYC2qmj.chunk.mjs'),window.OC.filePath('activity', '', 'js/logger-CXg3FpL2.chunk.mjs'),window.OC.filePath('activity', '', 'js/api-fwrRGLr6.chunk.mjs')])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('activity', '', 'js/ActivityTab-Bb6AyMro.chunk.mjs'),window.OC.filePath('activity', '', 'js/_plugin-vue_export-helper-YgYGpvaA.chunk.mjs'),window.OC.filePath('activity', '', 'js/index-BrNGPgve.chunk.mjs'),window.OC.filePath('activity', '', 'js/translation-DoG5ZELJ-ns3A9vL-.chunk.mjs'),window.OC.filePath('activity', '', 'js/ActivityComponent.vue_vue_type_script_setup_true_lang-Ce6NNuXP.chunk.mjs'),window.OC.filePath('activity', '', 'js/preload-helper-DxYC2qmj.chunk.mjs'),window.OC.filePath('activity', '', 'js/logger-CXg3FpL2.chunk.mjs'),window.OC.filePath('activity', '', 'js/api-fwrRGLr6.chunk.mjs')])))=>i.map(i=>d[i]); import{_ as Eo}from"./preload-helper-DxYC2qmj.chunk.mjs";import{c as So,d as Tt,p as tt,f as _o}from"./index-BrNGPgve.chunk.mjs";import{Y as Ht,Z as To,M as Ao,_ as Oo}from"./translation-DoG5ZELJ-ns3A9vL-.chunk.mjs";const Io='';window._nc_files_scope??={},window._nc_files_scope.v4_0??={};const $t=window._nc_files_scope.v4_0,Qe=So().setApp("@nextcloud/files").detectUser().build();var Ke={},kt={exports:{}},Ze;function Ge(){if(Ze)return kt.exports;Ze=1;var a=typeof Reflect=="object"?Reflect:null,v=a&&typeof a.apply=="function"?a.apply:function(c,S,R){return Function.prototype.apply.call(c,S,R)},A;a&&typeof a.ownKeys=="function"?A=a.ownKeys:Object.getOwnPropertySymbols?A=function(c){return Object.getOwnPropertyNames(c).concat(Object.getOwnPropertySymbols(c))}:A=function(c){return Object.getOwnPropertyNames(c)};function _(c){console&&console.warn&&console.warn(c)}var D=Number.isNaN||function(c){return c!==c};function d(){d.init.call(this)}kt.exports=d,kt.exports.once=y,d.EventEmitter=d,d.prototype._events=void 0,d.prototype._eventsCount=0,d.prototype._maxListeners=void 0;var T=10;function l(c){if(typeof c!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof c)}Object.defineProperty(d,"defaultMaxListeners",{enumerable:!0,get:function(){return T},set:function(c){if(typeof c!="number"||c<0||D(c))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+c+".");T=c}}),d.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},d.prototype.setMaxListeners=function(c){if(typeof c!="number"||c<0||D(c))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+c+".");return this._maxListeners=c,this};function m(c){return c._maxListeners===void 0?d.defaultMaxListeners:c._maxListeners}d.prototype.getMaxListeners=function(){return m(this)},d.prototype.emit=function(c){for(var S=[],R=1;R0&&(s=S[0]),s instanceof Error)throw s;var q=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw q.context=s,q}var Q=x[c];if(Q===void 0)return!1;if(typeof Q=="function")v(Q,this,S);else for(var w=Q.length,J=W(Q,w),R=0;R0&&q.length>x&&!q.warned){q.warned=!0;var Q=new Error("Possible EventEmitter memory leak detected. "+q.length+" "+String(S)+" listeners added. Use emitter.setMaxListeners() to increase limit");Q.name="MaxListenersExceededWarning",Q.emitter=c,Q.type=S,Q.count=q.length,_(Q)}return c}d.prototype.addListener=function(c,S){return N(this,c,S,!1)},d.prototype.on=d.prototype.addListener,d.prototype.prependListener=function(c,S){return N(this,c,S,!0)};function P(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function C(c,S,R){var B={fired:!1,wrapFn:void 0,target:c,type:S,listener:R},x=P.bind(B);return x.listener=R,B.wrapFn=x,x}d.prototype.once=function(c,S){return l(S),this.on(c,C(this,c,S)),this},d.prototype.prependOnceListener=function(c,S){return l(S),this.prependListener(c,C(this,c,S)),this},d.prototype.removeListener=function(c,S){var R,B,x,s,q;if(l(S),B=this._events,B===void 0)return this;if(R=B[c],R===void 0)return this;if(R===S||R.listener===S)--this._eventsCount===0?this._events=Object.create(null):(delete B[c],B.removeListener&&this.emit("removeListener",c,R.listener||S));else if(typeof R!="function"){for(x=-1,s=R.length-1;s>=0;s--)if(R[s]===S||R[s].listener===S){q=R[s].listener,x=s;break}if(x<0)return this;x===0?R.shift():G(R,x),R.length===1&&(B[c]=R[0]),B.removeListener!==void 0&&this.emit("removeListener",c,q||S)}return this},d.prototype.off=d.prototype.removeListener,d.prototype.removeAllListeners=function(c){var S,R,B;if(R=this._events,R===void 0)return this;if(R.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):R[c]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete R[c]),this;if(arguments.length===0){var x=Object.keys(R),s;for(B=0;B=0;B--)this.removeListener(c,S[B]);return this};function U(c,S,R){var B=c._events;if(B===void 0)return[];var x=B[S];return x===void 0?[]:typeof x=="function"?R?[x.listener||x]:[x]:R?M(x):W(x,x.length)}d.prototype.listeners=function(c){return U(this,c,!0)},d.prototype.rawListeners=function(c){return U(this,c,!1)},d.listenerCount=function(c,S){return typeof c.listenerCount=="function"?c.listenerCount(S):$.call(c,S)},d.prototype.listenerCount=$;function $(c){var S=this._events;if(S!==void 0){var R=S[c];if(typeof R=="function")return 1;if(R!==void 0)return R.length}return 0}d.prototype.eventNames=function(){return this._eventsCount>0?A(this._events):[]};function W(c,S){for(var R=new Array(S),B=0;B0)throw new Error("Invalid string. Length must be a multiple of 4");var c=g.indexOf("=");c===-1&&(c=E);var S=c===E?0:4-c%4;return[c,S]}function P(g){var E=N(g),c=E[0],S=E[1];return(c+S)*3/4-S}function C(g,E,c){return(E+c)*3/4-c}function U(g){var E,c=N(g),S=c[0],R=c[1],B=new d(C(g,S,R)),x=0,s=R>0?S-4:S,q;for(q=0;q>16&255,B[x++]=E>>8&255,B[x++]=E&255;return R===2&&(E=D[g.charCodeAt(q)]<<2|D[g.charCodeAt(q+1)]>>4,B[x++]=E&255),R===1&&(E=D[g.charCodeAt(q)]<<10|D[g.charCodeAt(q+1)]<<4|D[g.charCodeAt(q+2)]>>2,B[x++]=E>>8&255,B[x++]=E&255),B}function $(g){return _[g>>18&63]+_[g>>12&63]+_[g>>6&63]+_[g&63]}function W(g,E,c){for(var S,R=[],B=E;Bs?s:x+B));return S===1?(E=g[c-1],R.push(_[E>>2]+_[E<<4&63]+"==")):S===2&&(E=(g[c-2]<<8)+g[c-1],R.push(_[E>>10]+_[E>>4&63]+_[E<<2&63]+"=")),R.join("")}var M={};M.read=function(g,E,c,S,R){var B,x,s=R*8-S-1,q=(1<>1,w=-7,J=c?R-1:0,et=c?-1:1,rt=g[E+J];for(J+=et,B=rt&(1<<-w)-1,rt>>=-w,w+=s;w>0;B=B*256+g[E+J],J+=et,w-=8);for(x=B&(1<<-w)-1,B>>=-w,w+=S;w>0;x=x*256+g[E+J],J+=et,w-=8);if(B===0)B=1-Q;else{if(B===q)return x?NaN:(rt?-1:1)*(1/0);x=x+Math.pow(2,S),B=B-Q}return(rt?-1:1)*x*Math.pow(2,B-S)},M.write=function(g,E,c,S,R,B){var x,s,q,Q=B*8-R-1,w=(1<>1,et=R===23?Math.pow(2,-24)-Math.pow(2,-77):0,rt=S?0:B-1,at=S?1:-1,Z=E<0||E===0&&1/E<0?1:0;for(E=Math.abs(E),isNaN(E)||E===1/0?(s=isNaN(E)?1:0,x=w):(x=Math.floor(Math.log(E)/Math.LN2),E*(q=Math.pow(2,-x))<1&&(x--,q*=2),x+J>=1?E+=et/q:E+=et*Math.pow(2,1-J),E*q>=2&&(x++,q/=2),x+J>=w?(s=0,x=w):x+J>=1?(s=(E*q-1)*Math.pow(2,R),x=x+J):(s=E*Math.pow(2,J-1)*Math.pow(2,R),x=0));R>=8;g[c+rt]=s&255,rt+=at,s/=256,R-=8);for(x=x<0;g[c+rt]=x&255,rt+=at,x/=256,Q-=8);g[c+rt-at]|=Z*128},(function(g){const E=A,c=M,S=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;g.Buffer=w,g.SlowBuffer=I,g.INSPECT_MAX_BYTES=50;const R=2147483647;g.kMaxLength=R;const{Uint8Array:B,ArrayBuffer:x,SharedArrayBuffer:s}=globalThis;w.TYPED_ARRAY_SUPPORT=q(),!w.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function q(){try{const t=new B(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,B.prototype),Object.setPrototypeOf(t,e),t.foo()===42}catch{return!1}}Object.defineProperty(w.prototype,"parent",{enumerable:!0,get:function(){if(w.isBuffer(this))return this.buffer}}),Object.defineProperty(w.prototype,"offset",{enumerable:!0,get:function(){if(w.isBuffer(this))return this.byteOffset}});function Q(t){if(t>R)throw new RangeError('The value "'+t+'" is invalid for option "size"');const e=new B(t);return Object.setPrototypeOf(e,w.prototype),e}function w(t,e,o){if(typeof t=="number"){if(typeof e=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return at(t)}return J(t,e,o)}w.poolSize=8192;function J(t,e,o){if(typeof t=="string")return Z(t,e);if(x.isView(t))return pt(t);if(t==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(vt(t,x)||t&&vt(t.buffer,x)||typeof s<"u"&&(vt(t,s)||t&&vt(t.buffer,s)))return ot(t,e,o);if(typeof t=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const h=t.valueOf&&t.valueOf();if(h!=null&&h!==t)return w.from(h,e,o);const O=yt(t);if(O)return O;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof t[Symbol.toPrimitive]=="function")return w.from(t[Symbol.toPrimitive]("string"),e,o);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}w.from=function(t,e,o){return J(t,e,o)},Object.setPrototypeOf(w.prototype,B.prototype),Object.setPrototypeOf(w,B);function et(t){if(typeof t!="number")throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function rt(t,e,o){return et(t),t<=0?Q(t):e!==void 0?typeof o=="string"?Q(t).fill(e,o):Q(t).fill(e):Q(t)}w.alloc=function(t,e,o){return rt(t,e,o)};function at(t){return et(t),Q(t<0?0:ht(t)|0)}w.allocUnsafe=function(t){return at(t)},w.allocUnsafeSlow=function(t){return at(t)};function Z(t,e){if((typeof e!="string"||e==="")&&(e="utf8"),!w.isEncoding(e))throw new TypeError("Unknown encoding: "+e);const o=j(t,e)|0;let h=Q(o);const O=h.write(t,e);return O!==o&&(h=h.slice(0,O)),h}function lt(t){const e=t.length<0?0:ht(t.length)|0,o=Q(e);for(let h=0;h=R)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+R.toString(16)+" bytes");return t|0}function I(t){return+t!=t&&(t=0),w.alloc(+t)}w.isBuffer=function(t){return t!=null&&t._isBuffer===!0&&t!==w.prototype},w.compare=function(t,e){if(vt(t,B)&&(t=w.from(t,t.offset,t.byteLength)),vt(e,B)&&(e=w.from(e,e.offset,e.byteLength)),!w.isBuffer(t)||!w.isBuffer(e))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;let o=t.length,h=e.length;for(let O=0,k=Math.min(o,h);Oh.length?(w.isBuffer(k)||(k=w.from(k)),k.copy(h,O)):B.prototype.set.call(h,k,O);else if(w.isBuffer(k))k.copy(h,O);else throw new TypeError('"list" argument must be an Array of Buffers');O+=k.length}return h};function j(t,e){if(w.isBuffer(t))return t.length;if(x.isView(t)||vt(t,x))return t.byteLength;if(typeof t!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);const o=t.length,h=arguments.length>2&&arguments[2]===!0;if(!h&&o===0)return 0;let O=!1;for(;;)switch(e){case"ascii":case"latin1":case"binary":return o;case"utf8":case"utf-8":return Vt(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return o*2;case"hex":return o>>>1;case"base64":return ze(t).length;default:if(O)return h?-1:Vt(t).length;e=(""+e).toLowerCase(),O=!0}}w.byteLength=j;function Y(t,e,o){let h=!1;if((e===void 0||e<0)&&(e=0),e>this.length||((o===void 0||o>this.length)&&(o=this.length),o<=0)||(o>>>=0,e>>>=0,o<=e))return"";for(t||(t="utf8");;)switch(t){case"hex":return gt(this,e,o);case"utf8":case"utf-8":return X(this,e,o);case"ascii":return ft(this,e,o);case"latin1":case"binary":return F(this,e,o);case"base64":return V(this,e,o);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return mt(this,e,o);default:if(h)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),h=!0}}w.prototype._isBuffer=!0;function b(t,e,o){const h=t[e];t[e]=t[o],t[o]=h}w.prototype.swap16=function(){const t=this.length;if(t%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let e=0;ee&&(t+=" ... "),""},S&&(w.prototype[S]=w.prototype.inspect),w.prototype.compare=function(t,e,o,h,O){if(vt(t,B)&&(t=w.from(t,t.offset,t.byteLength)),!w.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(e===void 0&&(e=0),o===void 0&&(o=t?t.length:0),h===void 0&&(h=0),O===void 0&&(O=this.length),e<0||o>t.length||h<0||O>this.length)throw new RangeError("out of range index");if(h>=O&&e>=o)return 0;if(h>=O)return-1;if(e>=o)return 1;if(e>>>=0,o>>>=0,h>>>=0,O>>>=0,this===t)return 0;let k=O-h,H=o-e;const ut=Math.min(k,H),bt=this.slice(h,O),st=t.slice(e,o);for(let it=0;it2147483647?o=2147483647:o<-2147483648&&(o=-2147483648),o=+o,Yt(o)&&(o=O?0:t.length-1),o<0&&(o=t.length+o),o>=t.length){if(O)return-1;o=t.length-1}else if(o<0)if(O)o=0;else return-1;if(typeof e=="string"&&(e=w.from(e,h)),w.isBuffer(e))return e.length===0?-1:r(t,e,o,h,O);if(typeof e=="number")return e=e&255,typeof B.prototype.indexOf=="function"?O?B.prototype.indexOf.call(t,e,o):B.prototype.lastIndexOf.call(t,e,o):r(t,[e],o,h,O);throw new TypeError("val must be string, number or Buffer")}function r(t,e,o,h,O){let k=1,H=t.length,ut=e.length;if(h!==void 0&&(h=String(h).toLowerCase(),h==="ucs2"||h==="ucs-2"||h==="utf16le"||h==="utf-16le")){if(t.length<2||e.length<2)return-1;k=2,H/=2,ut/=2,o/=2}function bt(it,dt){return k===1?it[dt]:it.readUInt16BE(dt*k)}let st;if(O){let it=-1;for(st=o;stH&&(o=H-ut),st=o;st>=0;st--){let it=!0;for(let dt=0;dtO&&(h=O)):h=O;const k=e.length;h>k/2&&(h=k/2);let H;for(H=0;H>>0,isFinite(o)?(o=o>>>0,h===void 0&&(h="utf8")):(h=o,o=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const O=this.length-e;if((o===void 0||o>O)&&(o=O),t.length>0&&(o<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");h||(h="utf8");let k=!1;for(;;)switch(h){case"hex":return p(this,t,e,o);case"utf8":case"utf-8":return f(this,t,e,o);case"ascii":case"latin1":case"binary":return i(this,t,e,o);case"base64":return u(this,t,e,o);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return L(this,t,e,o);default:if(k)throw new TypeError("Unknown encoding: "+h);h=(""+h).toLowerCase(),k=!0}},w.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function V(t,e,o){return e===0&&o===t.length?E.fromByteArray(t):E.fromByteArray(t.slice(e,o))}function X(t,e,o){o=Math.min(t.length,o);const h=[];let O=e;for(;O239?4:k>223?3:k>191?2:1;if(O+ut<=o){let bt,st,it,dt;switch(ut){case 1:k<128&&(H=k);break;case 2:bt=t[O+1],(bt&192)===128&&(dt=(k&31)<<6|bt&63,dt>127&&(H=dt));break;case 3:bt=t[O+1],st=t[O+2],(bt&192)===128&&(st&192)===128&&(dt=(k&15)<<12|(bt&63)<<6|st&63,dt>2047&&(dt<55296||dt>57343)&&(H=dt));break;case 4:bt=t[O+1],st=t[O+2],it=t[O+3],(bt&192)===128&&(st&192)===128&&(it&192)===128&&(dt=(k&15)<<18|(bt&63)<<12|(st&63)<<6|it&63,dt>65535&&dt<1114112&&(H=dt))}}H===null?(H=65533,ut=1):H>65535&&(H-=65536,h.push(H>>>10&1023|55296),H=56320|H&1023),h.push(H),O+=ut}return K(h)}const z=4096;function K(t){const e=t.length;if(e<=z)return String.fromCharCode.apply(String,t);let o="",h=0;for(;hh)&&(o=h);let O="";for(let k=e;ko&&(t=o),e<0?(e+=o,e<0&&(e=0)):e>o&&(e=o),eo)throw new RangeError("Trying to access beyond buffer length")}w.prototype.readUintLE=w.prototype.readUIntLE=function(t,e,o){t=t>>>0,e=e>>>0,o||nt(t,e,this.length);let h=this[t],O=1,k=0;for(;++k>>0,e=e>>>0,o||nt(t,e,this.length);let h=this[t+--e],O=1;for(;e>0&&(O*=256);)h+=this[t+--e]*O;return h},w.prototype.readUint8=w.prototype.readUInt8=function(t,e){return t=t>>>0,e||nt(t,1,this.length),this[t]},w.prototype.readUint16LE=w.prototype.readUInt16LE=function(t,e){return t=t>>>0,e||nt(t,2,this.length),this[t]|this[t+1]<<8},w.prototype.readUint16BE=w.prototype.readUInt16BE=function(t,e){return t=t>>>0,e||nt(t,2,this.length),this[t]<<8|this[t+1]},w.prototype.readUint32LE=w.prototype.readUInt32LE=function(t,e){return t=t>>>0,e||nt(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+this[t+3]*16777216},w.prototype.readUint32BE=w.prototype.readUInt32BE=function(t,e){return t=t>>>0,e||nt(t,4,this.length),this[t]*16777216+(this[t+1]<<16|this[t+2]<<8|this[t+3])},w.prototype.readBigUInt64LE=_t(function(t){t=t>>>0,Pt(t,"offset");const e=this[t],o=this[t+7];(e===void 0||o===void 0)&&Ct(t,this.length-8);const h=e+this[++t]*2**8+this[++t]*2**16+this[++t]*2**24,O=this[++t]+this[++t]*2**8+this[++t]*2**16+o*2**24;return BigInt(h)+(BigInt(O)<>>0,Pt(t,"offset");const e=this[t],o=this[t+7];(e===void 0||o===void 0)&&Ct(t,this.length-8);const h=e*2**24+this[++t]*2**16+this[++t]*2**8+this[++t],O=this[++t]*2**24+this[++t]*2**16+this[++t]*2**8+o;return(BigInt(h)<>>0,e=e>>>0,o||nt(t,e,this.length);let h=this[t],O=1,k=0;for(;++k=O&&(h-=Math.pow(2,8*e)),h},w.prototype.readIntBE=function(t,e,o){t=t>>>0,e=e>>>0,o||nt(t,e,this.length);let h=e,O=1,k=this[t+--h];for(;h>0&&(O*=256);)k+=this[t+--h]*O;return O*=128,k>=O&&(k-=Math.pow(2,8*e)),k},w.prototype.readInt8=function(t,e){return t=t>>>0,e||nt(t,1,this.length),this[t]&128?(255-this[t]+1)*-1:this[t]},w.prototype.readInt16LE=function(t,e){t=t>>>0,e||nt(t,2,this.length);const o=this[t]|this[t+1]<<8;return o&32768?o|4294901760:o},w.prototype.readInt16BE=function(t,e){t=t>>>0,e||nt(t,2,this.length);const o=this[t+1]|this[t]<<8;return o&32768?o|4294901760:o},w.prototype.readInt32LE=function(t,e){return t=t>>>0,e||nt(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},w.prototype.readInt32BE=function(t,e){return t=t>>>0,e||nt(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},w.prototype.readBigInt64LE=_t(function(t){t=t>>>0,Pt(t,"offset");const e=this[t],o=this[t+7];(e===void 0||o===void 0)&&Ct(t,this.length-8);const h=this[t+4]+this[t+5]*2**8+this[t+6]*2**16+(o<<24);return(BigInt(h)<>>0,Pt(t,"offset");const e=this[t],o=this[t+7];(e===void 0||o===void 0)&&Ct(t,this.length-8);const h=(e<<24)+this[++t]*2**16+this[++t]*2**8+this[++t];return(BigInt(h)<>>0,e||nt(t,4,this.length),c.read(this,t,!0,23,4)},w.prototype.readFloatBE=function(t,e){return t=t>>>0,e||nt(t,4,this.length),c.read(this,t,!1,23,4)},w.prototype.readDoubleLE=function(t,e){return t=t>>>0,e||nt(t,8,this.length),c.read(this,t,!0,52,8)},w.prototype.readDoubleBE=function(t,e){return t=t>>>0,e||nt(t,8,this.length),c.read(this,t,!1,52,8)};function ct(t,e,o,h,O,k){if(!w.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>O||et.length)throw new RangeError("Index out of range")}w.prototype.writeUintLE=w.prototype.writeUIntLE=function(t,e,o,h){if(t=+t,e=e>>>0,o=o>>>0,!h){const H=Math.pow(2,8*o)-1;ct(this,t,e,o,H,0)}let O=1,k=0;for(this[e]=t&255;++k>>0,o=o>>>0,!h){const H=Math.pow(2,8*o)-1;ct(this,t,e,o,H,0)}let O=o-1,k=1;for(this[e+O]=t&255;--O>=0&&(k*=256);)this[e+O]=t/k&255;return e+o},w.prototype.writeUint8=w.prototype.writeUInt8=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,1,255,0),this[e]=t&255,e+1},w.prototype.writeUint16LE=w.prototype.writeUInt16LE=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,2,65535,0),this[e]=t&255,this[e+1]=t>>>8,e+2},w.prototype.writeUint16BE=w.prototype.writeUInt16BE=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=t&255,e+2},w.prototype.writeUint32LE=w.prototype.writeUInt32LE=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=t&255,e+4},w.prototype.writeUint32BE=w.prototype.writeUInt32BE=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=t&255,e+4};function Ot(t,e,o,h,O){Xe(e,h,O,t,o,7);let k=Number(e&BigInt(4294967295));t[o++]=k,k=k>>8,t[o++]=k,k=k>>8,t[o++]=k,k=k>>8,t[o++]=k;let H=Number(e>>BigInt(32)&BigInt(4294967295));return t[o++]=H,H=H>>8,t[o++]=H,H=H>>8,t[o++]=H,H=H>>8,t[o++]=H,o}function It(t,e,o,h,O){Xe(e,h,O,t,o,7);let k=Number(e&BigInt(4294967295));t[o+7]=k,k=k>>8,t[o+6]=k,k=k>>8,t[o+5]=k,k=k>>8,t[o+4]=k;let H=Number(e>>BigInt(32)&BigInt(4294967295));return t[o+3]=H,H=H>>8,t[o+2]=H,H=H>>8,t[o+1]=H,H=H>>8,t[o]=H,o+8}w.prototype.writeBigUInt64LE=_t(function(t,e=0){return Ot(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))}),w.prototype.writeBigUInt64BE=_t(function(t,e=0){return It(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))}),w.prototype.writeIntLE=function(t,e,o,h){if(t=+t,e=e>>>0,!h){const ut=Math.pow(2,8*o-1);ct(this,t,e,o,ut-1,-ut)}let O=0,k=1,H=0;for(this[e]=t&255;++O>0)-H&255;return e+o},w.prototype.writeIntBE=function(t,e,o,h){if(t=+t,e=e>>>0,!h){const ut=Math.pow(2,8*o-1);ct(this,t,e,o,ut-1,-ut)}let O=o-1,k=1,H=0;for(this[e+O]=t&255;--O>=0&&(k*=256);)t<0&&H===0&&this[e+O+1]!==0&&(H=1),this[e+O]=(t/k>>0)-H&255;return e+o},w.prototype.writeInt8=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=t&255,e+1},w.prototype.writeInt16LE=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,2,32767,-32768),this[e]=t&255,this[e+1]=t>>>8,e+2},w.prototype.writeInt16BE=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=t&255,e+2},w.prototype.writeInt32LE=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,4,2147483647,-2147483648),this[e]=t&255,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},w.prototype.writeInt32BE=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=t&255,e+4},w.prototype.writeBigInt64LE=_t(function(t,e=0){return Ot(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),w.prototype.writeBigInt64BE=_t(function(t,e=0){return It(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function St(t,e,o,h,O,k){if(o+h>t.length)throw new RangeError("Index out of range");if(o<0)throw new RangeError("Index out of range")}function wt(t,e,o,h,O){return e=+e,o=o>>>0,O||St(t,e,o,4),c.write(t,e,o,h,23,4),o+4}w.prototype.writeFloatLE=function(t,e,o){return wt(this,t,e,!0,o)},w.prototype.writeFloatBE=function(t,e,o){return wt(this,t,e,!1,o)};function Et(t,e,o,h,O){return e=+e,o=o>>>0,O||St(t,e,o,8),c.write(t,e,o,h,52,8),o+8}w.prototype.writeDoubleLE=function(t,e,o){return Et(this,t,e,!0,o)},w.prototype.writeDoubleBE=function(t,e,o){return Et(this,t,e,!1,o)},w.prototype.copy=function(t,e,o,h){if(!w.isBuffer(t))throw new TypeError("argument should be a Buffer");if(o||(o=0),!h&&h!==0&&(h=this.length),e>=t.length&&(e=t.length),e||(e=0),h>0&&h=this.length)throw new RangeError("Index out of range");if(h<0)throw new RangeError("sourceEnd out of bounds");h>this.length&&(h=this.length),t.length-e>>0,o=o===void 0?this.length:o>>>0,t||(t=0);let O;if(typeof t=="number")for(O=e;O2**32?O=qe(String(o)):typeof o=="bigint"&&(O=String(o),(o>BigInt(2)**BigInt(32)||o<-(BigInt(2)**BigInt(32)))&&(O=qe(O)),O+="n"),h+=` It must be ${e}. Received ${O}`,h},RangeError);function qe(t){let e="",o=t.length;const h=t[0]==="-"?1:0;for(;o>=h+4;o-=3)e=`_${t.slice(o-3,o)}${e}`;return`${t.slice(0,o)}${e}`}function ho(t,e,o){Pt(e,"offset"),(t[e]===void 0||t[e+o]===void 0)&&Ct(e,t.length-(o+1))}function Xe(t,e,o,h,O,k){if(t>o||t= 0${H} and < 2${H} ** ${(k+1)*8}${H}`:ut=`>= -(2${H} ** ${(k+1)*8-1}${H}) and < 2 ** ${(k+1)*8-1}${H}`,new Rt.ERR_OUT_OF_RANGE("value",ut,t)}ho(h,O,k)}function Pt(t,e){if(typeof t!="number")throw new Rt.ERR_INVALID_ARG_TYPE(e,"number",t)}function Ct(t,e,o){throw Math.floor(t)!==t?(Pt(t,o),new Rt.ERR_OUT_OF_RANGE("offset","an integer",t)):e<0?new Rt.ERR_BUFFER_OUT_OF_BOUNDS:new Rt.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${e}`,t)}const yo=/[^+/0-9A-Za-z-_]/g;function go(t){if(t=t.split("=")[0],t=t.trim().replace(yo,""),t.length<2)return"";for(;t.length%4!==0;)t=t+"=";return t}function Vt(t,e){e=e||1/0;let o;const h=t.length;let O=null;const k=[];for(let H=0;H55295&&o<57344){if(!O){if(o>56319){(e-=3)>-1&&k.push(239,191,189);continue}else if(H+1===h){(e-=3)>-1&&k.push(239,191,189);continue}O=o;continue}if(o<56320){(e-=3)>-1&&k.push(239,191,189),O=o;continue}o=(O-55296<<10|o-56320)+65536}else O&&(e-=3)>-1&&k.push(239,191,189);if(O=null,o<128){if((e-=1)<0)break;k.push(o)}else if(o<2048){if((e-=2)<0)break;k.push(o>>6|192,o&63|128)}else if(o<65536){if((e-=3)<0)break;k.push(o>>12|224,o>>6&63|128,o&63|128)}else if(o<1114112){if((e-=4)<0)break;k.push(o>>18|240,o>>12&63|128,o>>6&63|128,o&63|128)}else throw new Error("Invalid code point")}return k}function bo(t){const e=[];for(let o=0;o>8,O=o%256,k.push(O),k.push(h);return k}function ze(t){return E.toByteArray(go(t))}function jt(t,e,o,h){let O;for(O=0;O=e.length||O>=t.length);++O)e[O+o]=t[O];return O}function vt(t,e){return t instanceof e||t!=null&&t.constructor!=null&&t.constructor.name!=null&&t.constructor.name===e.name}function Yt(t){return t!==t}const vo=(function(){const t="0123456789abcdef",e=new Array(256);for(let o=0;o<16;++o){const h=o*16;for(let O=0;O<16;++O)e[h+O]=t[o]+t[O]}return e})();function _t(t){return typeof BigInt>"u"?wo:t}function wo(){throw new Error("BigInt not supported")}})(v);const y=v.Buffer;a.Blob=v.Blob,a.BlobOptions=v.BlobOptions,a.Buffer=v.Buffer,a.File=v.File,a.FileOptions=v.FileOptions,a.INSPECT_MAX_BYTES=v.INSPECT_MAX_BYTES,a.SlowBuffer=v.SlowBuffer,a.TranscodeEncoding=v.TranscodeEncoding,a.atob=v.atob,a.btoa=v.btoa,a.constants=v.constants,a.default=y,a.isAscii=v.isAscii,a.isUtf8=v.isUtf8,a.kMaxLength=v.kMaxLength,a.kStringMaxLength=v.kStringMaxLength,a.resolveObjectURL=v.resolveObjectURL,a.transcode=v.transcode})(rr)),rr}var or={},ir={},ar,ur;function Zn(){return ur||(ur=1,ar=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var a={},v=Symbol("test"),A=Object(v);if(typeof v=="string"||Object.prototype.toString.call(v)!=="[object Symbol]"||Object.prototype.toString.call(A)!=="[object Symbol]")return!1;var _=42;a[v]=_;for(var D in a)return!1;if(typeof Object.keys=="function"&&Object.keys(a).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(a).length!==0)return!1;var d=Object.getOwnPropertySymbols(a);if(d.length!==1||d[0]!==v||!Object.prototype.propertyIsEnumerable.call(a,v))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var T=Object.getOwnPropertyDescriptor(a,v);if(T.value!==_||T.enumerable!==!0)return!1}return!0}),ar}var Xt,sr;function Ut(){if(sr)return Xt;sr=1;var a=Zn();return Xt=function(){return a()&&!!Symbol.toStringTag},Xt}var fr,cr;function Jn(){return cr||(cr=1,fr=Object),fr}var lr,pr;function Ro(){return pr||(pr=1,lr=Error),lr}var hr,yr;function Po(){return yr||(yr=1,hr=EvalError),hr}var dr,gr;function No(){return gr||(gr=1,dr=RangeError),dr}var br,mr;function Bo(){return mr||(mr=1,br=ReferenceError),br}var vr,wr;function to(){return wr||(wr=1,vr=SyntaxError),vr}var Er,Sr;function Mt(){return Sr||(Sr=1,Er=TypeError),Er}var _r,Tr;function Lo(){return Tr||(Tr=1,_r=URIError),_r}var Ar,Or;function Co(){return Or||(Or=1,Ar=Math.abs),Ar}var Ir,Rr;function Mo(){return Rr||(Rr=1,Ir=Math.floor),Ir}var Pr,Nr;function xo(){return Nr||(Nr=1,Pr=Math.max),Pr}var Br,Lr;function Do(){return Lr||(Lr=1,Br=Math.min),Br}var Cr,Mr;function jo(){return Mr||(Mr=1,Cr=Math.pow),Cr}var xr,Dr;function ko(){return Dr||(Dr=1,xr=Math.round),xr}var jr,kr;function Fo(){return kr||(kr=1,jr=Number.isNaN||function(a){return a!==a}),jr}var zt,Fr;function Uo(){if(Fr)return zt;Fr=1;var a=Fo();return zt=function(v){return a(v)||v===0?v:v<0?-1:1},zt}var Ur,Gr;function Go(){return Gr||(Gr=1,Ur=Object.getOwnPropertyDescriptor),Ur}var Qt,Wr;function Bt(){if(Wr)return Qt;Wr=1;var a=Go();if(a)try{a([],"length")}catch{a=null}return Qt=a,Qt}var Kt,Vr;function Gt(){if(Vr)return Kt;Vr=1;var a=Object.defineProperty||!1;if(a)try{a({},"a",{value:1})}catch{a=!1}return Kt=a,Kt}var Zt,Yr;function Wo(){if(Yr)return Zt;Yr=1;var a=typeof Symbol<"u"&&Symbol,v=Zn();return Zt=function(){return typeof a!="function"||typeof Symbol!="function"||typeof a("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:v()},Zt}var Hr,$r;function eo(){return $r||($r=1,Hr=typeof Reflect<"u"&&Reflect.getPrototypeOf||null),Hr}var Jt,qr;function ro(){if(qr)return Jt;qr=1;var a=Jn();return Jt=a.getPrototypeOf||null,Jt}var te,Xr;function Vo(){if(Xr)return te;Xr=1;var a="Function.prototype.bind called on incompatible ",v=Object.prototype.toString,A=Math.max,_="[object Function]",D=function(l,m){for(var N=[],P=0;P"u"||!B?a:B(Uint8Array),et={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?a:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?a:ArrayBuffer,"%ArrayIteratorPrototype%":R&&B?B([][Symbol.iterator]()):a,"%AsyncFromSyncIteratorPrototype%":a,"%AsyncFunction%":w,"%AsyncGenerator%":w,"%AsyncGeneratorFunction%":w,"%AsyncIteratorPrototype%":w,"%Atomics%":typeof Atomics>"u"?a:Atomics,"%BigInt%":typeof BigInt>"u"?a:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?a:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?a:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?a:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":A,"%eval%":eval,"%EvalError%":_,"%Float16Array%":typeof Float16Array>"u"?a:Float16Array,"%Float32Array%":typeof Float32Array>"u"?a:Float32Array,"%Float64Array%":typeof Float64Array>"u"?a:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?a:FinalizationRegistry,"%Function%":M,"%GeneratorFunction%":w,"%Int8Array%":typeof Int8Array>"u"?a:Int8Array,"%Int16Array%":typeof Int16Array>"u"?a:Int16Array,"%Int32Array%":typeof Int32Array>"u"?a:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":R&&B?B(B([][Symbol.iterator]())):a,"%JSON%":typeof JSON=="object"?JSON:a,"%Map%":typeof Map>"u"?a:Map,"%MapIteratorPrototype%":typeof Map>"u"||!R||!B?a:B(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":v,"%Object.getOwnPropertyDescriptor%":g,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?a:Promise,"%Proxy%":typeof Proxy>"u"?a:Proxy,"%RangeError%":D,"%ReferenceError%":d,"%Reflect%":typeof Reflect>"u"?a:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?a:Set,"%SetIteratorPrototype%":typeof Set>"u"||!R||!B?a:B(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?a:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":R&&B?B(""[Symbol.iterator]()):a,"%Symbol%":R?Symbol:a,"%SyntaxError%":T,"%ThrowTypeError%":S,"%TypedArray%":J,"%TypeError%":l,"%Uint8Array%":typeof Uint8Array>"u"?a:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?a:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?a:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?a:Uint32Array,"%URIError%":m,"%WeakMap%":typeof WeakMap>"u"?a:WeakMap,"%WeakRef%":typeof WeakRef>"u"?a:WeakRef,"%WeakSet%":typeof WeakSet>"u"?a:WeakSet,"%Function.prototype.call%":Q,"%Function.prototype.apply%":q,"%Object.defineProperty%":E,"%Object.getPrototypeOf%":x,"%Math.abs%":N,"%Math.floor%":P,"%Math.max%":C,"%Math.min%":U,"%Math.pow%":$,"%Math.round%":W,"%Math.sign%":G,"%Reflect.getPrototypeOf%":s};if(B)try{null.error}catch(p){var rt=B(B(p));et["%Error.prototype%"]=rt}var at=function p(f){var i;if(f==="%AsyncFunction%")i=y("async function () {}");else if(f==="%GeneratorFunction%")i=y("function* () {}");else if(f==="%AsyncGeneratorFunction%")i=y("async function* () {}");else if(f==="%AsyncGenerator%"){var u=p("%AsyncGeneratorFunction%");u&&(i=u.prototype)}else if(f==="%AsyncIteratorPrototype%"){var L=p("%AsyncGenerator%");L&&B&&(i=B(L.prototype))}return et[f]=i,i},Z={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},lt=xt(),pt=oo(),ot=lt.call(Q,Array.prototype.concat),yt=lt.call(q,Array.prototype.splice),ht=lt.call(Q,String.prototype.replace),I=lt.call(Q,String.prototype.slice),j=lt.call(Q,RegExp.prototype.exec),Y=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,b=/\\(\\)?/g,n=function(p){var f=I(p,0,1),i=I(p,-1);if(f==="%"&&i!=="%")throw new T("invalid intrinsic syntax, expected closing `%`");if(i==="%"&&f!=="%")throw new T("invalid intrinsic syntax, expected opening `%`");var u=[];return ht(p,Y,function(L,V,X,z){u[u.length]=X?ht(z,b,"$1"):V||L}),u},r=function(p,f){var i=p,u;if(pt(Z,i)&&(u=Z[i],i="%"+u[0]+"%"),pt(et,i)){var L=et[i];if(L===w&&(L=at(i)),typeof L>"u"&&!f)throw new l("intrinsic "+p+" exists, but is not available. Please file an issue!");return{alias:u,name:i,value:L}}throw new T("intrinsic "+p+" does not exist!")};return ue=function(p,f){if(typeof p!="string"||p.length===0)throw new l("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof f!="boolean")throw new l('"allowMissing" argument must be a boolean');if(j(/^%?[^%]*%?$/,p)===null)throw new T("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var i=n(p),u=i.length>0?i[0]:"",L=r("%"+u+"%",f),V=L.name,X=L.value,z=!1,K=L.alias;K&&(u=K[0],yt(i,ot([0,1],K)));for(var ft=1,F=!0;ft=i.length){var ct=g(X,gt);F=!!ct,F&&"get"in ct&&!("originalValue"in ct.get)?X=ct.get:X=X[gt]}else F=pt(X,gt),X=X[gt];F&&!z&&(et[V]=X)}}return X},ue}var se,fn;function Dt(){if(fn)return se;fn=1;var a=io(),v=Ye(),A=v([a("%String.prototype.indexOf%")]);return se=function(_,D){var d=a(_,!!D);return typeof d=="function"&&A(_,".prototype.")>-1?v([d]):d},se}var fe,cn;function $o(){if(cn)return fe;cn=1;var a=Ut()(),v=Dt(),A=v("Object.prototype.toString"),_=function(T){return a&&T&&typeof T=="object"&&Symbol.toStringTag in T?!1:A(T)==="[object Arguments]"},D=function(T){return _(T)?!0:T!==null&&typeof T=="object"&&"length"in T&&typeof T.length=="number"&&T.length>=0&&A(T)!=="[object Array]"&&"callee"in T&&A(T.callee)==="[object Function]"},d=(function(){return _(arguments)})();return _.isLegacyArguments=D,fe=d?_:D,fe}var ce,ln;function qo(){if(ln)return ce;ln=1;var a=Dt(),v=Ut()(),A=oo(),_=Bt(),D;if(v){var d=a("RegExp.prototype.exec"),T={},l=function(){throw T},m={toString:l,valueOf:l};typeof Symbol.toPrimitive=="symbol"&&(m[Symbol.toPrimitive]=l),D=function(C){if(!C||typeof C!="object")return!1;var U=_(C,"lastIndex"),$=U&&A(U,"value");if(!$)return!1;try{d(C,m)}catch(W){return W===T}}}else{var N=a("Object.prototype.toString"),P="[object RegExp]";D=function(C){return!C||typeof C!="object"&&typeof C!="function"?!1:N(C)===P}}return ce=D,ce}var le,pn;function Xo(){if(pn)return le;pn=1;var a=Dt(),v=qo(),A=a("RegExp.prototype.exec"),_=Mt();return le=function(D){if(!v(D))throw new _("`regex` must be a RegExp");return function(d){return A(D,d)!==null}},le}var pe,hn;function zo(){if(hn)return pe;hn=1;const a=function*(){}.constructor;return pe=()=>a,pe}var he,yn;function Qo(){if(yn)return he;yn=1;var a=Dt(),v=Xo(),A=v(/^\s*(?:function)?\*/),_=Ut()(),D=He(),d=a("Object.prototype.toString"),T=a("Function.prototype.toString"),l=zo();return he=function(m){if(typeof m!="function")return!1;if(A(T(m)))return!0;if(!_){var N=d(m);return N==="[object GeneratorFunction]"}if(!D)return!1;var P=l();return P&&D(m)===P.prototype},he}var ye,dn;function Ko(){if(dn)return ye;dn=1;var a=Function.prototype.toString,v=typeof Reflect=="object"&&Reflect!==null&&Reflect.apply,A,_;if(typeof v=="function"&&typeof Object.defineProperty=="function")try{A=Object.defineProperty({},"length",{get:function(){throw _}}),_={},v(function(){throw 42},null,A)}catch(g){g!==_&&(v=null)}else v=null;var D=/^\s*class\b/,d=function(g){try{var E=a.call(g);return D.test(E)}catch{return!1}},T=function(g){try{return d(g)?!1:(a.call(g),!0)}catch{return!1}},l=Object.prototype.toString,m="[object Object]",N="[object Function]",P="[object GeneratorFunction]",C="[object HTMLAllCollection]",U="[object HTML document.all class]",$="[object HTMLCollection]",W=typeof Symbol=="function"&&!!Symbol.toStringTag,G=!(0 in[,]),M=function(){return!1};if(typeof document=="object"){var y=document.all;l.call(y)===l.call(document.all)&&(M=function(g){if((G||!g)&&(typeof g>"u"||typeof g=="object"))try{var E=l.call(g);return(E===C||E===U||E===$||E===m)&&g("")==null}catch{}return!1})}return ye=v?function(g){if(M(g))return!0;if(!g||typeof g!="function"&&typeof g!="object")return!1;try{v(g,null,A)}catch(E){if(E!==_)return!1}return!d(g)&&T(g)}:function(g){if(M(g))return!0;if(!g||typeof g!="function"&&typeof g!="object")return!1;if(W)return T(g);if(d(g))return!1;var E=l.call(g);return E!==N&&E!==P&&!/^\[object HTML/.test(E)?!1:T(g)},ye}var de,gn;function Zo(){if(gn)return de;gn=1;var a=Ko(),v=Object.prototype.toString,A=Object.prototype.hasOwnProperty,_=function(l,m,N){for(var P=0,C=l.length;P=3&&(P=N),T(l)?_(l,m,P):typeof l=="string"?D(l,m,P):d(l,m,P)},de}var bn,mn;function Jo(){return mn||(mn=1,bn=["Float16Array","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"]),bn}var ge,vn;function ti(){if(vn)return ge;vn=1;var a=Jo(),v=typeof globalThis>"u"?Tt:globalThis;return ge=function(){for(var A=[],_=0;_3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new A("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new A("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new A("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new A("`loose`, if provided, must be a boolean");var l=arguments.length>3?arguments[3]:null,m=arguments.length>4?arguments[4]:null,N=arguments.length>5?arguments[5]:null,P=arguments.length>6?arguments[6]:!1,C=!!_&&_(D,d);if(a)a(D,d,{configurable:N===null&&C?C.configurable:!N,enumerable:l===null&&C?C.enumerable:!l,value:T,writable:m===null&&C?C.writable:!m});else if(P||!l&&!m&&!N)D[d]=T;else throw new v("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},be}var me,Sn;function ri(){if(Sn)return me;Sn=1;var a=Gt(),v=function(){return!!a};return v.hasArrayLengthDefineBug=function(){if(!a)return null;try{return a([],"length",{value:1}).length!==1}catch{return!0}},me=v,me}var ve,_n;function ni(){if(_n)return ve;_n=1;var a=io(),v=ei(),A=ri()(),_=Bt(),D=Mt(),d=a("%Math.floor%");return ve=function(T,l){if(typeof T!="function")throw new D("`fn` is not a function");if(typeof l!="number"||l<0||l>4294967295||d(l)!==l)throw new D("`length` must be a positive 32-bit integer");var m=arguments.length>2&&!!arguments[2],N=!0,P=!0;if("length"in T&&_){var C=_(T,"length");C&&!C.configurable&&(N=!1),C&&!C.writable&&(P=!1)}return(N||P||!m)&&(A?v(T,"length",l,!0,!0):v(T,"length",l)),T},ve}var we,Tn;function oi(){if(Tn)return we;Tn=1;var a=xt(),v=Ve(),A=no();return we=function(){return A(a,v,arguments)},we}var An;function ii(){return An||(An=1,(function(a){var v=ni(),A=Gt(),_=Ye(),D=oi();a.exports=function(d){var T=_(arguments),l=1+d.length-(arguments.length-1);return v(T,l>0?l:0,!0)},A?A(a.exports,"apply",{value:D}):a.exports.apply=D})(wn)),wn.exports}var Ee,On;function ao(){if(On)return Ee;On=1;var a=Zo(),v=ti(),A=ii(),_=Dt(),D=Bt(),d=He(),T=_("Object.prototype.toString"),l=Ut()(),m=typeof globalThis>"u"?Tt:globalThis,N=v(),P=_("String.prototype.slice"),C=_("Array.prototype.indexOf",!0)||function(M,y){for(var g=0;g-1}return Ee=function(M){if(!M||typeof M!="object")return!1;if(!l){var y=P(T(M),8,-1);return G(y)?y:y!=="Object"?!1:W(M)}return D?$(M):null},Ee}var Se,In;function ai(){if(In)return Se;In=1;var a=ao();return Se=function(v){return!!a(v)},Se}var Rn;function ui(){return Rn||(Rn=1,(function(a){var v=$o(),A=Qo(),_=ao(),D=ai();function d(F){return F.call.bind(F)}var T=typeof BigInt<"u",l=typeof Symbol<"u",m=d(Object.prototype.toString),N=d(Number.prototype.valueOf),P=d(String.prototype.valueOf),C=d(Boolean.prototype.valueOf);if(T)var U=d(BigInt.prototype.valueOf);if(l)var $=d(Symbol.prototype.valueOf);function W(F,gt){if(typeof F!="object")return!1;try{return gt(F),!0}catch{return!1}}a.isArgumentsObject=v,a.isGeneratorFunction=A,a.isTypedArray=D;function G(F){return typeof Promise<"u"&&F instanceof Promise||F!==null&&typeof F=="object"&&typeof F.then=="function"&&typeof F.catch=="function"}a.isPromise=G;function M(F){return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?ArrayBuffer.isView(F):D(F)||I(F)}a.isArrayBufferView=M;function y(F){return _(F)==="Uint8Array"}a.isUint8Array=y;function g(F){return _(F)==="Uint8ClampedArray"}a.isUint8ClampedArray=g;function E(F){return _(F)==="Uint16Array"}a.isUint16Array=E;function c(F){return _(F)==="Uint32Array"}a.isUint32Array=c;function S(F){return _(F)==="Int8Array"}a.isInt8Array=S;function R(F){return _(F)==="Int16Array"}a.isInt16Array=R;function B(F){return _(F)==="Int32Array"}a.isInt32Array=B;function x(F){return _(F)==="Float32Array"}a.isFloat32Array=x;function s(F){return _(F)==="Float64Array"}a.isFloat64Array=s;function q(F){return _(F)==="BigInt64Array"}a.isBigInt64Array=q;function Q(F){return _(F)==="BigUint64Array"}a.isBigUint64Array=Q;function w(F){return m(F)==="[object Map]"}w.working=typeof Map<"u"&&w(new Map);function J(F){return typeof Map>"u"?!1:w.working?w(F):F instanceof Map}a.isMap=J;function et(F){return m(F)==="[object Set]"}et.working=typeof Set<"u"&&et(new Set);function rt(F){return typeof Set>"u"?!1:et.working?et(F):F instanceof Set}a.isSet=rt;function at(F){return m(F)==="[object WeakMap]"}at.working=typeof WeakMap<"u"&&at(new WeakMap);function Z(F){return typeof WeakMap>"u"?!1:at.working?at(F):F instanceof WeakMap}a.isWeakMap=Z;function lt(F){return m(F)==="[object WeakSet]"}lt.working=typeof WeakSet<"u"&<(new WeakSet);function pt(F){return lt(F)}a.isWeakSet=pt;function ot(F){return m(F)==="[object ArrayBuffer]"}ot.working=typeof ArrayBuffer<"u"&&ot(new ArrayBuffer);function yt(F){return typeof ArrayBuffer>"u"?!1:ot.working?ot(F):F instanceof ArrayBuffer}a.isArrayBuffer=yt;function ht(F){return m(F)==="[object DataView]"}ht.working=typeof ArrayBuffer<"u"&&typeof DataView<"u"&&ht(new DataView(new ArrayBuffer(1),0,1));function I(F){return typeof DataView>"u"?!1:ht.working?ht(F):F instanceof DataView}a.isDataView=I;var j=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:void 0;function Y(F){return m(F)==="[object SharedArrayBuffer]"}function b(F){return typeof j>"u"?!1:(typeof Y.working>"u"&&(Y.working=Y(new j)),Y.working?Y(F):F instanceof j)}a.isSharedArrayBuffer=b;function n(F){return m(F)==="[object AsyncFunction]"}a.isAsyncFunction=n;function r(F){return m(F)==="[object Map Iterator]"}a.isMapIterator=r;function p(F){return m(F)==="[object Set Iterator]"}a.isSetIterator=p;function f(F){return m(F)==="[object Generator]"}a.isGeneratorObject=f;function i(F){return m(F)==="[object WebAssembly.Module]"}a.isWebAssemblyCompiledModule=i;function u(F){return W(F,N)}a.isNumberObject=u;function L(F){return W(F,P)}a.isStringObject=L;function V(F){return W(F,C)}a.isBooleanObject=V;function X(F){return T&&W(F,U)}a.isBigIntObject=X;function z(F){return l&&W(F,$)}a.isSymbolObject=z;function K(F){return u(F)||L(F)||V(F)||X(F)||z(F)}a.isBoxedPrimitive=K;function ft(F){return typeof Uint8Array<"u"&&(yt(F)||b(F))}a.isAnyArrayBuffer=ft,["isProxy","isExternal","isModuleNamespaceObject"].forEach(function(F){Object.defineProperty(a,F,{enumerable:!1,value:function(){throw new Error(F+" is not supported in userland")}})})})(ir)),ir}var Pn,Nn;function si(){return Nn||(Nn=1,Pn=function(a){return a&&typeof a=="object"&&typeof a.copy=="function"&&typeof a.fill=="function"&&typeof a.readUInt8=="function"}),Pn}var Bn;function uo(){return Bn||(Bn=1,(function(a){var v={},A=Object.getOwnPropertyDescriptors||function(I){for(var j=Object.keys(I),Y={},b=0;b=n)return i;switch(i){case"%s":return String(b[Y++]);case"%d":return Number(b[Y++]);case"%j":try{return JSON.stringify(b[Y++])}catch{return"[Circular]"}default:return i}}),p=b[Y];Y"u")return function(){return a.deprecate(I,j).apply(this,arguments)};var Y=!1;function b(){if(!Y){if(tt.throwDeprecation)throw new Error(j);tt.traceDeprecation?console.trace(j):console.error(j),Y=!0}return I.apply(this,arguments)}return b};var D={},d=/^$/;if(v.NODE_DEBUG){var T=v.NODE_DEBUG;T=T.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),d=new RegExp("^"+T+"$","i")}a.debuglog=function(I){if(I=I.toUpperCase(),!D[I])if(d.test(I)){var j=tt.pid;D[I]=function(){var Y=a.format.apply(a,arguments);console.error("%s %d: %s",I,j,Y)}}else D[I]=function(){};return D[I]};function l(I,j){var Y={seen:[],stylize:N};return arguments.length>=3&&(Y.depth=arguments[2]),arguments.length>=4&&(Y.colors=arguments[3]),g(j)?Y.showHidden=j:j&&a._extend(Y,j),x(Y.showHidden)&&(Y.showHidden=!1),x(Y.depth)&&(Y.depth=2),x(Y.colors)&&(Y.colors=!1),x(Y.customInspect)&&(Y.customInspect=!0),Y.colors&&(Y.stylize=m),C(Y,I,Y.depth)}a.inspect=l,l.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},l.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function m(I,j){var Y=l.styles[j];return Y?"\x1B["+l.colors[Y][0]+"m"+I+"\x1B["+l.colors[Y][1]+"m":I}function N(I,j){return I}function P(I){var j={};return I.forEach(function(Y,b){j[Y]=!0}),j}function C(I,j,Y){if(I.customInspect&&j&&J(j.inspect)&&j.inspect!==a.inspect&&!(j.constructor&&j.constructor.prototype===j)){var b=j.inspect(Y,I);return R(b)||(b=C(I,b,Y)),b}var n=U(I,j);if(n)return n;var r=Object.keys(j),p=P(r);if(I.showHidden&&(r=Object.getOwnPropertyNames(j)),w(j)&&(r.indexOf("message")>=0||r.indexOf("description")>=0))return $(j);if(r.length===0){if(J(j)){var f=j.name?": "+j.name:"";return I.stylize("[Function"+f+"]","special")}if(s(j))return I.stylize(RegExp.prototype.toString.call(j),"regexp");if(Q(j))return I.stylize(Date.prototype.toString.call(j),"date");if(w(j))return $(j)}var i="",u=!1,L=["{","}"];if(y(j)&&(u=!0,L=["[","]"]),J(j)){var V=j.name?": "+j.name:"";i=" [Function"+V+"]"}if(s(j)&&(i=" "+RegExp.prototype.toString.call(j)),Q(j)&&(i=" "+Date.prototype.toUTCString.call(j)),w(j)&&(i=" "+$(j)),r.length===0&&(!u||j.length==0))return L[0]+i+L[1];if(Y<0)return s(j)?I.stylize(RegExp.prototype.toString.call(j),"regexp"):I.stylize("[Object]","special");I.seen.push(j);var X;return u?X=W(I,j,Y,p,r):X=r.map(function(z){return G(I,j,Y,p,z,u)}),I.seen.pop(),M(X,i,L)}function U(I,j){if(x(j))return I.stylize("undefined","undefined");if(R(j)){var Y="'"+JSON.stringify(j).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return I.stylize(Y,"string")}if(S(j))return I.stylize(""+j,"number");if(g(j))return I.stylize(""+j,"boolean");if(E(j))return I.stylize("null","null")}function $(I){return"["+Error.prototype.toString.call(I)+"]"}function W(I,j,Y,b,n){for(var r=[],p=0,f=j.length;p-1&&(r?f=f.split(` `).map(function(u){return" "+u}).join(` @@ -16,5 +16,5 @@ Char: `+n.c),r=new Error(r),n.error=r,Q(n,"onerror",r),n}function at(n){return n Actual: `+n.attribValue);else if(f==="xmlns"&&n.attribValue!==W)Z(n,"xmlns: prefix must be bound to "+W+` Actual: `+n.attribValue);else{var i=n.tag,u=n.tags[n.tags.length-1]||n;i.ns===u.ns&&(i.ns=Object.create(u.ns)),i.ns[f]=n.attribValue}n.attribList.push([n.attribName,n.attribValue])}else n.tag.attributes[n.attribName]=n.attribValue,w(n,"onattribute",{name:n.attribName,value:n.attribValue});n.attribName=n.attribValue=""}function yt(n,r){if(n.opt.xmlns){var p=n.tag,f=pt(n.tagName);p.prefix=f.prefix,p.local=f.local,p.uri=p.ns[f.prefix]||"",p.prefix&&!p.uri&&(Z(n,"Unbound namespace prefix: "+JSON.stringify(n.tagName)),p.uri=f.prefix);var i=n.tags[n.tags.length-1]||n;p.ns&&i.ns!==p.ns&&Object.keys(p.ns).forEach(function(nt){w(n,"onopennamespace",{prefix:nt,uri:p.ns[nt]})});for(var u=0,L=n.attribList.length;u",n.tagName="",n.state=s.SCRIPT;return}w(n,"onscript",n.script),n.script=""}var r=n.tags.length,p=n.tagName;n.strict||(p=p[n.looseCase]());for(var f=p;r--;){var i=n.tags[r];if(i.name!==f)Z(n,"Unexpected close tag");else break}if(r<0){Z(n,"Unmatched closing tag: "+n.tagName),n.textNode+="",n.state=s.TEXT;return}n.tagName=p;for(var u=n.tags.length;u-- >r;){var L=n.tag=n.tags.pop();n.tagName=n.tag.name,w(n,"onclosetag",n.tagName);var V={};for(var X in L.ns)V[X]=L.ns[X];var z=n.tags[n.tags.length-1]||n;n.opt.xmlns&&L.ns!==z.ns&&Object.keys(L.ns).forEach(function(K){var ft=L.ns[K];w(n,"onclosenamespace",{prefix:K,uri:ft})})}r===0&&(n.closedRoot=!0),n.tagName=n.attribValue=n.attribName="",n.attribList.length=0,n.state=s.TEXT}function I(n){var r=n.entity,p=r.toLowerCase(),f,i="";return n.ENTITIES[r]?n.ENTITIES[r]:n.ENTITIES[p]?n.ENTITIES[p]:(r=p,r.charAt(0)==="#"&&(r.charAt(1)==="x"?(r=r.slice(2),f=parseInt(r,16),i=f.toString(16)):(r=r.slice(1),f=parseInt(r,10),i=f.toString(10))),r=r.replace(/^0+/,""),isNaN(f)||i.toLowerCase()!==r?(Z(n,"Invalid character entity"),"&"+n.entity+";"):String.fromCodePoint(f))}function j(n,r){r==="<"?(n.state=s.OPEN_WAKA,n.startTagPosition=n.position):c(r)||(Z(n,"Non-whitespace before first tag."),n.textNode=r,n.state=s.TEXT)}function Y(n,r){var p="";return r"?(w(r,"onsgmldeclaration",r.sgmlDecl),r.sgmlDecl="",r.state=s.TEXT):(S(f)&&(r.state=s.SGML_DECL_QUOTED),r.sgmlDecl+=f);continue;case s.SGML_DECL_QUOTED:f===r.q&&(r.state=s.SGML_DECL,r.q=""),r.sgmlDecl+=f;continue;case s.DOCTYPE:f===">"?(r.state=s.TEXT,w(r,"ondoctype",r.doctype),r.doctype=!0):(r.doctype+=f,f==="["?r.state=s.DOCTYPE_DTD:S(f)&&(r.state=s.DOCTYPE_QUOTED,r.q=f));continue;case s.DOCTYPE_QUOTED:r.doctype+=f,f===r.q&&(r.q="",r.state=s.DOCTYPE);continue;case s.DOCTYPE_DTD:f==="]"?(r.doctype+=f,r.state=s.DOCTYPE):f==="<"?(r.state=s.OPEN_WAKA,r.startTagPosition=r.position):S(f)?(r.doctype+=f,r.state=s.DOCTYPE_DTD_QUOTED,r.q=f):r.doctype+=f;continue;case s.DOCTYPE_DTD_QUOTED:r.doctype+=f,f===r.q&&(r.state=s.DOCTYPE_DTD,r.q="");continue;case s.COMMENT:f==="-"?r.state=s.COMMENT_ENDING:r.comment+=f;continue;case s.COMMENT_ENDING:f==="-"?(r.state=s.COMMENT_ENDED,r.comment=et(r.opt,r.comment),r.comment&&w(r,"oncomment",r.comment),r.comment=""):(r.comment+="-"+f,r.state=s.COMMENT);continue;case s.COMMENT_ENDED:f!==">"?(Z(r,"Malformed comment"),r.comment+="--"+f,r.state=s.COMMENT):r.doctype&&r.doctype!==!0?r.state=s.DOCTYPE_DTD:r.state=s.TEXT;continue;case s.CDATA:f==="]"?r.state=s.CDATA_ENDING:r.cdata+=f;continue;case s.CDATA_ENDING:f==="]"?r.state=s.CDATA_ENDING_2:(r.cdata+="]"+f,r.state=s.CDATA);continue;case s.CDATA_ENDING_2:f===">"?(r.cdata&&w(r,"oncdata",r.cdata),w(r,"onclosecdata"),r.cdata="",r.state=s.TEXT):f==="]"?r.cdata+="]":(r.cdata+="]]"+f,r.state=s.CDATA);continue;case s.PROC_INST:f==="?"?r.state=s.PROC_INST_ENDING:c(f)?r.state=s.PROC_INST_BODY:r.procInstName+=f;continue;case s.PROC_INST_BODY:if(!r.procInstBody&&c(f))continue;f==="?"?r.state=s.PROC_INST_ENDING:r.procInstBody+=f;continue;case s.PROC_INST_ENDING:f===">"?(w(r,"onprocessinginstruction",{name:r.procInstName,body:r.procInstBody}),r.procInstName=r.procInstBody="",r.state=s.TEXT):(r.procInstBody+="?"+f,r.state=s.PROC_INST_BODY);continue;case s.OPEN_TAG:B(y,f)?r.tagName+=f:(lt(r),f===">"?yt(r):f==="/"?r.state=s.OPEN_TAG_SLASH:(c(f)||Z(r,"Invalid character in tag name"),r.state=s.ATTRIB));continue;case s.OPEN_TAG_SLASH:f===">"?(yt(r,!0),ht(r)):(Z(r,"Forward-slash in opening tag not followed by >"),r.state=s.ATTRIB);continue;case s.ATTRIB:if(c(f))continue;f===">"?yt(r):f==="/"?r.state=s.OPEN_TAG_SLASH:B(M,f)?(r.attribName=f,r.attribValue="",r.state=s.ATTRIB_NAME):Z(r,"Invalid attribute name");continue;case s.ATTRIB_NAME:f==="="?r.state=s.ATTRIB_VALUE:f===">"?(Z(r,"Attribute without value"),r.attribValue=r.attribName,ot(r),yt(r)):c(f)?r.state=s.ATTRIB_NAME_SAW_WHITE:B(y,f)?r.attribName+=f:Z(r,"Invalid attribute name");continue;case s.ATTRIB_NAME_SAW_WHITE:if(f==="=")r.state=s.ATTRIB_VALUE;else{if(c(f))continue;Z(r,"Attribute without value"),r.tag.attributes[r.attribName]="",r.attribValue="",w(r,"onattribute",{name:r.attribName,value:""}),r.attribName="",f===">"?yt(r):B(M,f)?(r.attribName=f,r.state=s.ATTRIB_NAME):(Z(r,"Invalid attribute name"),r.state=s.ATTRIB)}continue;case s.ATTRIB_VALUE:if(c(f))continue;S(f)?(r.q=f,r.state=s.ATTRIB_VALUE_QUOTED):(r.opt.unquotedAttributeValues||rt(r,"Unquoted attribute value"),r.state=s.ATTRIB_VALUE_UNQUOTED,r.attribValue=f);continue;case s.ATTRIB_VALUE_QUOTED:if(f!==r.q){f==="&"?r.state=s.ATTRIB_VALUE_ENTITY_Q:r.attribValue+=f;continue}ot(r),r.q="",r.state=s.ATTRIB_VALUE_CLOSED;continue;case s.ATTRIB_VALUE_CLOSED:c(f)?r.state=s.ATTRIB:f===">"?yt(r):f==="/"?r.state=s.OPEN_TAG_SLASH:B(M,f)?(Z(r,"No whitespace between attributes"),r.attribName=f,r.attribValue="",r.state=s.ATTRIB_NAME):Z(r,"Invalid attribute name");continue;case s.ATTRIB_VALUE_UNQUOTED:if(!R(f)){f==="&"?r.state=s.ATTRIB_VALUE_ENTITY_U:r.attribValue+=f;continue}ot(r),f===">"?yt(r):r.state=s.ATTRIB;continue;case s.CLOSE_TAG:if(r.tagName)f===">"?ht(r):B(y,f)?r.tagName+=f:r.script?(r.script+=""?ht(r):Z(r,"Invalid characters in closing tag");continue;case s.TEXT_ENTITY:case s.ATTRIB_VALUE_ENTITY_Q:case s.ATTRIB_VALUE_ENTITY_U:var L,V;switch(r.state){case s.TEXT_ENTITY:L=s.TEXT,V="textNode";break;case s.ATTRIB_VALUE_ENTITY_Q:L=s.ATTRIB_VALUE_QUOTED,V="attribValue";break;case s.ATTRIB_VALUE_ENTITY_U:L=s.ATTRIB_VALUE_UNQUOTED,V="attribValue";break}if(f===";"){var X=I(r);r.opt.unparsedEntities&&!Object.values(v.XML_ENTITIES).includes(X)?(r.entity="",r.state=L,r.write(X)):(r[V]+=X,r.entity="",r.state=L)}else B(r.entity.length?E:g,f)?r.entity+=f:(Z(r,"Invalid character in entity name"),r[V]+="&"+r.entity+f,r.entity="",r.state=L);continue;default:throw new Error(r,"Unknown state: "+r.state)}return r.position>=r.bufferCheckPosition&&D(r),r}String.fromCodePoint||(function(){var n=String.fromCharCode,r=Math.floor,p=function(){var f=16384,i=[],u,L,V=-1,X=arguments.length;if(!X)return"";for(var z="";++V1114111||r(K)!==K)throw RangeError("Invalid code point: "+K);K<=65535?i.push(K):(K-=65536,u=(K>>10)+55296,L=K%1024+56320,i.push(u,L)),(V+1===X||i.length>f)&&(z+=n.apply(null,i),i.length=0)}return z};Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:p,configurable:!0,writable:!0}):String.fromCodePoint=p})()})(a)})(Ke)),Ke}var mi=bi();const vi=_o(mi),wi={"http://www.w3.org/2000/svg":{ext:"svg",mime:"image/svg+xml"},"http://www.w3.org/1999/xhtml":{ext:"xhtml",mime:"application/xhtml+xml"},"http://www.opengis.net/kml/2.2":{ext:"kml",mime:"application/vnd.google-earth.kml+xml"},"http://www.opengis.net/gml":{ext:"gml",mime:"application/gml+xml"}},Ei={rss:{ext:"rss",mime:"application/rss+xml"},"score-partwise":{ext:"musicxml",mime:"application/vnd.recordare.musicxml+xml"},svg:{ext:"svg",mime:"image/svg+xml"}};class Si{constructor(v){this.options=v??{},this.firstTag=!0,this.onEnd=!1,this.parser=vi.parser(!0,{xmlns:!0}),this.nesting=0,this.parser.onerror=A=>{A.message.startsWith("Invalid character entity")||(this.fileType=void 0,this.onEnd=!0)},this.parser.onopentag=A=>{++this.nesting,!(!this.firstTag||this.onEnd)&&(this.firstTag=!1,A.uri?this.fileType=wi[A.uri]:A.name&&(this.fileType=Ei[A.name.toLowerCase()]),this.fileType&&!this.options.fullScan&&(this.onEnd=!0))},this.parser.onclosetag=()=>{--this.nesting}}write(v){this.parser.write(v)}close(){this.parser.close(),this.onEnd=!0}isValid(){return this.nesting===0}}function _i(a,{validate:v=!0}={}){if(typeof a!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof a}\``);if(a=a.trim(),a.length===0)return!1;const A=new Si({fullScan:v});if(v){if(A.write(a),!A.isValid())return!1}else{let _=0;for(;a.length>_&&!A.onEnd;)A.write(a.slice(_,Math.min(_+128,a.length))),_+=128}return A.fileType?.ext==="svg"}function Ti(a){if(Ai(a),$t.filesSidebarTabs??=new Map,$t.filesSidebarTabs.has(a.id)){Qe.warn(`Sidebar tab with id "${a.id}" already registered. Skipping.`);return}$t.filesSidebarTabs.set(a.id,a),Qe.debug(`New sidebar tab with id "${a.id}" registered.`)}function Ai(a){if(typeof a!="object")throw new Error("Sidebar tab is not an object");if(!a.id||typeof a.id!="string"||a.id!==CSS.escape(a.id))throw new Error("Sidebar tabs need to have an id conforming to the HTML id attribute specifications");if(!a.tagName||typeof a.tagName!="string")throw new Error("Sidebar tabs need to have the tagName name set");if(!a.tagName.match(/^[a-z][a-z0-9-_]+$/))throw new Error('Sidebar tab "tagName" is invalid');if(!a.displayName||typeof a.displayName!="string")throw new Error("Sidebar tabs need to have a name set");if(typeof a.iconSvgInline!="string"||!_i(a.iconSvgInline))throw new Error("Sidebar tabs need to have an valid SVG icon");if(typeof a.order!="number")throw new Error("Sidebar tabs need to have a numeric order set");if(a.enabled&&typeof a.enabled!="function")throw new Error('Sidebar tab "enabled" is not a function');if(a.onInit&&typeof a.onInit!="function")throw new Error('Sidebar tab "onInit" is not a function')}const Fe="activity-files-sidebar-tab";window.customElements.get(Fe)===void 0&&(window.customElements.define(Fe,To(Oo(()=>Eo(()=>import("./ActivityTab-EzBumh36.chunk.mjs"),__vite__mapDeps([0,1,2,3,4,5,6,7]),import.meta.url)),{shadowRoot:!1})),Ti({id:"activity",order:50,displayName:Ao("activity","Activity"),iconSvgInline:Io,tagName:Fe,enabled(){return!0}}));export{Io as l}; +`?(r.line++,r.column=0):r.column++);r.textNode+=n.substring(i,p-1)}f==="<"&&!(r.sawRoot&&r.closedRoot&&!r.strict)?(r.state=s.OPEN_WAKA,r.startTagPosition=r.position):(!c(f)&&(!r.sawRoot||r.closedRoot)&&Z(r,"Text data outside of root node."),f==="&"?r.state=s.TEXT_ENTITY:r.textNode+=f);continue;case s.SCRIPT:f==="<"?r.state=s.SCRIPT_ENDING:r.script+=f;continue;case s.SCRIPT_ENDING:f==="/"?r.state=s.CLOSE_TAG:(r.script+="<"+f,r.state=s.SCRIPT);continue;case s.OPEN_WAKA:if(f==="!")r.state=s.SGML_DECL,r.sgmlDecl="";else if(!c(f))if(B(M,f))r.state=s.OPEN_TAG,r.tagName=f;else if(f==="/")r.state=s.CLOSE_TAG,r.tagName="";else if(f==="?")r.state=s.PROC_INST,r.procInstName=r.procInstBody="";else{if(Z(r,"Unencoded <"),r.startTagPosition+1"?(w(r,"onsgmldeclaration",r.sgmlDecl),r.sgmlDecl="",r.state=s.TEXT):(S(f)&&(r.state=s.SGML_DECL_QUOTED),r.sgmlDecl+=f);continue;case s.SGML_DECL_QUOTED:f===r.q&&(r.state=s.SGML_DECL,r.q=""),r.sgmlDecl+=f;continue;case s.DOCTYPE:f===">"?(r.state=s.TEXT,w(r,"ondoctype",r.doctype),r.doctype=!0):(r.doctype+=f,f==="["?r.state=s.DOCTYPE_DTD:S(f)&&(r.state=s.DOCTYPE_QUOTED,r.q=f));continue;case s.DOCTYPE_QUOTED:r.doctype+=f,f===r.q&&(r.q="",r.state=s.DOCTYPE);continue;case s.DOCTYPE_DTD:f==="]"?(r.doctype+=f,r.state=s.DOCTYPE):f==="<"?(r.state=s.OPEN_WAKA,r.startTagPosition=r.position):S(f)?(r.doctype+=f,r.state=s.DOCTYPE_DTD_QUOTED,r.q=f):r.doctype+=f;continue;case s.DOCTYPE_DTD_QUOTED:r.doctype+=f,f===r.q&&(r.state=s.DOCTYPE_DTD,r.q="");continue;case s.COMMENT:f==="-"?r.state=s.COMMENT_ENDING:r.comment+=f;continue;case s.COMMENT_ENDING:f==="-"?(r.state=s.COMMENT_ENDED,r.comment=et(r.opt,r.comment),r.comment&&w(r,"oncomment",r.comment),r.comment=""):(r.comment+="-"+f,r.state=s.COMMENT);continue;case s.COMMENT_ENDED:f!==">"?(Z(r,"Malformed comment"),r.comment+="--"+f,r.state=s.COMMENT):r.doctype&&r.doctype!==!0?r.state=s.DOCTYPE_DTD:r.state=s.TEXT;continue;case s.CDATA:f==="]"?r.state=s.CDATA_ENDING:r.cdata+=f;continue;case s.CDATA_ENDING:f==="]"?r.state=s.CDATA_ENDING_2:(r.cdata+="]"+f,r.state=s.CDATA);continue;case s.CDATA_ENDING_2:f===">"?(r.cdata&&w(r,"oncdata",r.cdata),w(r,"onclosecdata"),r.cdata="",r.state=s.TEXT):f==="]"?r.cdata+="]":(r.cdata+="]]"+f,r.state=s.CDATA);continue;case s.PROC_INST:f==="?"?r.state=s.PROC_INST_ENDING:c(f)?r.state=s.PROC_INST_BODY:r.procInstName+=f;continue;case s.PROC_INST_BODY:if(!r.procInstBody&&c(f))continue;f==="?"?r.state=s.PROC_INST_ENDING:r.procInstBody+=f;continue;case s.PROC_INST_ENDING:f===">"?(w(r,"onprocessinginstruction",{name:r.procInstName,body:r.procInstBody}),r.procInstName=r.procInstBody="",r.state=s.TEXT):(r.procInstBody+="?"+f,r.state=s.PROC_INST_BODY);continue;case s.OPEN_TAG:B(y,f)?r.tagName+=f:(lt(r),f===">"?yt(r):f==="/"?r.state=s.OPEN_TAG_SLASH:(c(f)||Z(r,"Invalid character in tag name"),r.state=s.ATTRIB));continue;case s.OPEN_TAG_SLASH:f===">"?(yt(r,!0),ht(r)):(Z(r,"Forward-slash in opening tag not followed by >"),r.state=s.ATTRIB);continue;case s.ATTRIB:if(c(f))continue;f===">"?yt(r):f==="/"?r.state=s.OPEN_TAG_SLASH:B(M,f)?(r.attribName=f,r.attribValue="",r.state=s.ATTRIB_NAME):Z(r,"Invalid attribute name");continue;case s.ATTRIB_NAME:f==="="?r.state=s.ATTRIB_VALUE:f===">"?(Z(r,"Attribute without value"),r.attribValue=r.attribName,ot(r),yt(r)):c(f)?r.state=s.ATTRIB_NAME_SAW_WHITE:B(y,f)?r.attribName+=f:Z(r,"Invalid attribute name");continue;case s.ATTRIB_NAME_SAW_WHITE:if(f==="=")r.state=s.ATTRIB_VALUE;else{if(c(f))continue;Z(r,"Attribute without value"),r.tag.attributes[r.attribName]="",r.attribValue="",w(r,"onattribute",{name:r.attribName,value:""}),r.attribName="",f===">"?yt(r):B(M,f)?(r.attribName=f,r.state=s.ATTRIB_NAME):(Z(r,"Invalid attribute name"),r.state=s.ATTRIB)}continue;case s.ATTRIB_VALUE:if(c(f))continue;S(f)?(r.q=f,r.state=s.ATTRIB_VALUE_QUOTED):(r.opt.unquotedAttributeValues||rt(r,"Unquoted attribute value"),r.state=s.ATTRIB_VALUE_UNQUOTED,r.attribValue=f);continue;case s.ATTRIB_VALUE_QUOTED:if(f!==r.q){f==="&"?r.state=s.ATTRIB_VALUE_ENTITY_Q:r.attribValue+=f;continue}ot(r),r.q="",r.state=s.ATTRIB_VALUE_CLOSED;continue;case s.ATTRIB_VALUE_CLOSED:c(f)?r.state=s.ATTRIB:f===">"?yt(r):f==="/"?r.state=s.OPEN_TAG_SLASH:B(M,f)?(Z(r,"No whitespace between attributes"),r.attribName=f,r.attribValue="",r.state=s.ATTRIB_NAME):Z(r,"Invalid attribute name");continue;case s.ATTRIB_VALUE_UNQUOTED:if(!R(f)){f==="&"?r.state=s.ATTRIB_VALUE_ENTITY_U:r.attribValue+=f;continue}ot(r),f===">"?yt(r):r.state=s.ATTRIB;continue;case s.CLOSE_TAG:if(r.tagName)f===">"?ht(r):B(y,f)?r.tagName+=f:r.script?(r.script+=""?ht(r):Z(r,"Invalid characters in closing tag");continue;case s.TEXT_ENTITY:case s.ATTRIB_VALUE_ENTITY_Q:case s.ATTRIB_VALUE_ENTITY_U:var L,V;switch(r.state){case s.TEXT_ENTITY:L=s.TEXT,V="textNode";break;case s.ATTRIB_VALUE_ENTITY_Q:L=s.ATTRIB_VALUE_QUOTED,V="attribValue";break;case s.ATTRIB_VALUE_ENTITY_U:L=s.ATTRIB_VALUE_UNQUOTED,V="attribValue";break}if(f===";"){var X=I(r);r.opt.unparsedEntities&&!Object.values(v.XML_ENTITIES).includes(X)?(r.entity="",r.state=L,r.write(X)):(r[V]+=X,r.entity="",r.state=L)}else B(r.entity.length?E:g,f)?r.entity+=f:(Z(r,"Invalid character in entity name"),r[V]+="&"+r.entity+f,r.entity="",r.state=L);continue;default:throw new Error(r,"Unknown state: "+r.state)}return r.position>=r.bufferCheckPosition&&D(r),r}String.fromCodePoint||(function(){var n=String.fromCharCode,r=Math.floor,p=function(){var f=16384,i=[],u,L,V=-1,X=arguments.length;if(!X)return"";for(var z="";++V1114111||r(K)!==K)throw RangeError("Invalid code point: "+K);K<=65535?i.push(K):(K-=65536,u=(K>>10)+55296,L=K%1024+56320,i.push(u,L)),(V+1===X||i.length>f)&&(z+=n.apply(null,i),i.length=0)}return z};Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:p,configurable:!0,writable:!0}):String.fromCodePoint=p})()})(a)})(Ke)),Ke}var mi=bi();const vi=_o(mi),wi={"http://www.w3.org/2000/svg":{ext:"svg",mime:"image/svg+xml"},"http://www.w3.org/1999/xhtml":{ext:"xhtml",mime:"application/xhtml+xml"},"http://www.opengis.net/kml/2.2":{ext:"kml",mime:"application/vnd.google-earth.kml+xml"},"http://www.opengis.net/gml":{ext:"gml",mime:"application/gml+xml"}},Ei={rss:{ext:"rss",mime:"application/rss+xml"},"score-partwise":{ext:"musicxml",mime:"application/vnd.recordare.musicxml+xml"},svg:{ext:"svg",mime:"image/svg+xml"}};class Si{constructor(v){this.options=v??{},this.firstTag=!0,this.onEnd=!1,this.parser=vi.parser(!0,{xmlns:!0}),this.nesting=0,this.parser.onerror=A=>{A.message.startsWith("Invalid character entity")||(this.fileType=void 0,this.onEnd=!0)},this.parser.onopentag=A=>{++this.nesting,!(!this.firstTag||this.onEnd)&&(this.firstTag=!1,A.uri?this.fileType=wi[A.uri]:A.name&&(this.fileType=Ei[A.name.toLowerCase()]),this.fileType&&!this.options.fullScan&&(this.onEnd=!0))},this.parser.onclosetag=()=>{--this.nesting}}write(v){this.parser.write(v)}close(){this.parser.close(),this.onEnd=!0}isValid(){return this.nesting===0}}function _i(a,{validate:v=!0}={}){if(typeof a!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof a}\``);if(a=a.trim(),a.length===0)return!1;const A=new Si({fullScan:v});if(v){if(A.write(a),!A.isValid())return!1}else{let _=0;for(;a.length>_&&!A.onEnd;)A.write(a.slice(_,Math.min(_+128,a.length))),_+=128}return A.fileType?.ext==="svg"}function Ti(a){if(Ai(a),$t.filesSidebarTabs??=new Map,$t.filesSidebarTabs.has(a.id)){Qe.warn(`Sidebar tab with id "${a.id}" already registered. Skipping.`);return}$t.filesSidebarTabs.set(a.id,a),Qe.debug(`New sidebar tab with id "${a.id}" registered.`)}function Ai(a){if(typeof a!="object")throw new Error("Sidebar tab is not an object");if(!a.id||typeof a.id!="string"||a.id!==CSS.escape(a.id))throw new Error("Sidebar tabs need to have an id conforming to the HTML id attribute specifications");if(!a.tagName||typeof a.tagName!="string")throw new Error("Sidebar tabs need to have the tagName name set");if(!a.tagName.match(/^[a-z][a-z0-9-_]+$/))throw new Error('Sidebar tab "tagName" is invalid');if(!a.displayName||typeof a.displayName!="string")throw new Error("Sidebar tabs need to have a name set");if(typeof a.iconSvgInline!="string"||!_i(a.iconSvgInline))throw new Error("Sidebar tabs need to have an valid SVG icon");if(typeof a.order!="number")throw new Error("Sidebar tabs need to have a numeric order set");if(a.enabled&&typeof a.enabled!="function")throw new Error('Sidebar tab "enabled" is not a function');if(a.onInit&&typeof a.onInit!="function")throw new Error('Sidebar tab "onInit" is not a function')}const Fe="activity-files-sidebar-tab";window.customElements.get(Fe)===void 0&&(window.customElements.define(Fe,To(Oo(()=>Eo(()=>import("./ActivityTab-Bb6AyMro.chunk.mjs"),__vite__mapDeps([0,1,2,3,4,5,6,7]),import.meta.url)),{shadowRoot:!1})),Ti({id:"activity",order:50,displayName:Ao("activity","Activity"),iconSvgInline:Io,tagName:Fe,enabled(){return!0}}));export{Io as l}; //# sourceMappingURL=activity-sidebar.mjs.map diff --git a/src/__mocks__/@nextcloud/axios.js b/src/__mocks__/@nextcloud/axios.js index 38f43e6d8..4a78e8ef1 100644 --- a/src/__mocks__/@nextcloud/axios.js +++ b/src/__mocks__/@nextcloud/axios.js @@ -12,9 +12,16 @@ const axios = { get(url) { return new Promise((resolve, reject) => { if (url.endsWith('/ocs/v2.php/apps/activity/api/v2/activity/filter')) { - resolve({ data: wsData }) + // Real responses carry the pagination headers; no `link` here + // because this fixture is the whole list + resolve({ + data: wsData, + headers: { + 'x-activity-last-given': String(wsData.ocs.data.at(-1).activity_id), + }, + }) } else if (url.endsWith('/ocs/v2.php/apps/activity/api/v2/activity/downloads/count')) { - resolve({ data: { ocs: { meta: { status: 'ok', statuscode: 200 }, data: { total: 10, last30d: 3 } } } }) + resolve({ data: { ocs: { meta: { status: 'ok', statuscode: 200 }, data: { total: 10, last30d: 3 } } }, headers: {} }) } else { reject(new Error(`URL not defined ${url}`)) } diff --git a/src/__tests__/ActivityTab.test.ts b/src/__tests__/ActivityTab.test.ts index 39fe00eea..d0a1039da 100644 --- a/src/__tests__/ActivityTab.test.ts +++ b/src/__tests__/ActivityTab.test.ts @@ -5,13 +5,59 @@ import type { VueWrapper } from '@vue/test-utils' -import { mount } from '@vue/test-utils' -import { expect, test, vi } from 'vitest' +import axios from '@nextcloud/axios' +import { flushPromises, mount } from '@vue/test-utils' +import { afterEach, describe, expect, test, vi } from 'vitest' import { nextTick } from 'vue' import ActivityTab from '../views/ActivityTab.vue' vi.mock('@nextcloud/axios') +const ACTIVITY_PATH = '/ocs/v2.php/apps/activity/api/v2/activity/filter' + +/** + * Build an OCS response holding one activity per given id. + * + * @param ids - Activity ids to include, used to tell responses apart + * @param options - Pagination headers the server would send alongside + */ +function responseWithIds(ids: number[], options: { hasMore?: boolean } = {}) { + return { + headers: { + 'x-activity-last-given': String(ids.at(-1) ?? ''), + // The API only sets a next page link while more activities remain + ...(options.hasMore ? { link: '; rel="next"' } : {}), + }, + data: { + ocs: { + meta: { status: 'ok', statuscode: 200, message: 'OK' }, + data: ids.map((id) => ({ + activity_id: id, + app: 'files', + type: 'file_changed', + user: 'admin', + subject: `Activity ${id}`, + subject_rich: [`Activity ${id}`, []], + message: '', + message_rich: ['', []], + icon: 'icon.svg', + datetime: '2021-04-29T13:57:11+00:00', + object_type: 'files', + object_id: id, + object_name: '', + objects: {}, + link: '', + })), + }, + }, + } +} + +/** Requests the component made for the activity list, newest last. */ +function activityCalls(spy: ReturnType) { + return spy.mock.calls.filter(([url]) => String(url).endsWith(ACTIVITY_PATH)) +} + test('Create ActivityTab', async () => { const wrapper = mount(ActivityTab, { props: { @@ -51,3 +97,216 @@ function waitFor(query: string, wrapper: VueWrapper, callback: () => void) { } nextTick(() => waitFor(query, wrapper, callback)) } + +describe('request handling', () => { + afterEach(() => { + vi.restoreAllMocks() + }) + + test('loads the activity list once per opened file, not twice', async () => { + const get = vi.spyOn(axios, 'get') + + const wrapper = mount(ActivityTab, { + props: { node: { id: 'test', fileid: 42 } as any }, + }) + await flushPromises() + + // The node watcher is immediate, so a mounted() hook loading as well + // would double every request the panel makes + expect(activityCalls(get)).toHaveLength(1) + wrapper.unmount() + }) + + test('asks only for the newly selected file when the selection changes', async () => { + const get = vi.spyOn(axios, 'get') + + const wrapper = mount(ActivityTab, { + props: { node: { id: 'a', fileid: 1 } as any }, + }) + await flushPromises() + await wrapper.setProps({ node: { id: 'b', fileid: 2 } as any }) + await flushPromises() + + expect(activityCalls(get)).toHaveLength(2) + expect(activityCalls(get).map(([, config]) => (config as any).params.object_id)).toEqual([1, 2]) + wrapper.unmount() + }) + + test('keeps the current file’s activity when an earlier response arrives late', async () => { + const pending: { resolve: (value: unknown) => void, objectId: number }[] = [] + vi.spyOn(axios, 'get').mockImplementation((url: string, config?: any) => { + return new Promise((resolve) => { + pending.push({ resolve, objectId: config?.params?.object_id }) + }) + }) + + const wrapper = mount(ActivityTab, { + props: { node: { id: 'a', fileid: 1 } as any }, + }) + await flushPromises() + await wrapper.setProps({ node: { id: 'b', fileid: 2 } as any }) + await flushPromises() + + expect(pending.map((request) => request.objectId)).toEqual([1, 2]) + + // Answer the current file first, then let the superseded request land + pending[1]!.resolve(responseWithIds([200])) + await flushPromises() + pending[0]!.resolve(responseWithIds([100, 101])) + await flushPromises() + + const shown = (wrapper.vm.$data.activities as { id: number }[]).map((activity) => activity.id) + expect(shown).toEqual([200]) + wrapper.unmount() + }) + + test('aborts the superseded request instead of leaving it running', async () => { + const signals: (AbortSignal | undefined)[] = [] + vi.spyOn(axios, 'get').mockImplementation((url: string, config?: any) => { + signals.push(config?.signal) + return new Promise(() => {}) + }) + + const wrapper = mount(ActivityTab, { + props: { node: { id: 'a', fileid: 1 } as any }, + }) + await flushPromises() + await wrapper.setProps({ node: { id: 'b', fileid: 2 } as any }) + await flushPromises() + + expect(signals[0]?.aborted).toBe(true) + expect(signals[1]?.aborted).toBe(false) + + // Unmounting has to release the last one too + wrapper.unmount() + expect(signals[1]?.aborted).toBe(true) + }) + + test('asks for an explicit page size instead of relying on the API default', async () => { + const get = vi.spyOn(axios, 'get') + + const wrapper = mount(ActivityTab, { + props: { node: { id: 'test', fileid: 42 } as any }, + }) + await flushPromises() + + const [, config] = activityCalls(get)[0]! + expect((config as any).params.limit).toBe(50) + // The first page has no cursor + expect((config as any).params.since).toBeUndefined() + wrapper.unmount() + }) + + test('does not surface an error when a request is superseded', async () => { + const rejections: ((reason: unknown) => void)[] = [] + vi.spyOn(axios, 'get').mockImplementation(() => { + return new Promise((resolve, reject) => { + rejections.push(reject) + }) + }) + + const wrapper = mount(ActivityTab, { + props: { node: { id: 'a', fileid: 1 } as any }, + }) + await flushPromises() + await wrapper.setProps({ node: { id: 'b', fileid: 2 } as any }) + await flushPromises() + + // axios rejects a cancelled request; that is not a failure to report + rejections[0]!(new Error('canceled')) + await flushPromises() + + expect(wrapper.vm.$data.error).toBe('') + expect(wrapper.vm.$data.loading).toBe(true) + wrapper.unmount() + }) +}) + +describe('pagination', () => { + const LOAD_MORE = '.activity__load-more button' + + afterEach(() => { + vi.restoreAllMocks() + }) + + /** Mount with the first page already applied. */ + async function mountWithFirstPage(response: unknown) { + const get = vi.spyOn(axios, 'get').mockResolvedValueOnce(response as never) + const wrapper = mount(ActivityTab, { + props: { node: { id: 'test', fileid: 42 } as any }, + }) + await flushPromises() + return { wrapper, get } + } + + test('offers to load older activities while the server has more', async () => { + const { wrapper } = await mountWithFirstPage(responseWithIds([30, 29], { hasMore: true })) + + expect(wrapper.find(LOAD_MORE).exists()).toBe(true) + wrapper.unmount() + }) + + test('offers nothing more once the list is complete', async () => { + const { wrapper } = await mountWithFirstPage(responseWithIds([30, 29], { hasMore: false })) + + expect(wrapper.find(LOAD_MORE).exists()).toBe(false) + wrapper.unmount() + }) + + test('requests the next page from the cursor the server gave', async () => { + const { wrapper, get } = await mountWithFirstPage(responseWithIds([30, 29], { hasMore: true })) + get.mockResolvedValueOnce(responseWithIds([28, 27], { hasMore: false }) as never) + + await wrapper.find(LOAD_MORE).trigger('click') + await flushPromises() + + const [, config] = activityCalls(get)[1]! + // 29 is the last activity of the first page + expect((config as any).params.since).toBe('29') + expect((config as any).params.limit).toBe(50) + wrapper.unmount() + }) + + test('appends the next page instead of replacing what is shown', async () => { + const { wrapper, get } = await mountWithFirstPage(responseWithIds([30, 29], { hasMore: true })) + get.mockResolvedValueOnce(responseWithIds([28, 27], { hasMore: false }) as never) + + await wrapper.find(LOAD_MORE).trigger('click') + await flushPromises() + + const shown = (wrapper.vm.$data.activities as { id: number }[]).map((activity) => activity.id) + expect(shown).toEqual([30, 29, 28, 27]) + // Nothing left to offer, so the button is gone + expect(wrapper.find(LOAD_MORE).exists()).toBe(false) + wrapper.unmount() + }) + + test('treats a 304 on the next page as the end of the list', async () => { + const { wrapper, get } = await mountWithFirstPage(responseWithIds([30, 29], { hasMore: true })) + get.mockRejectedValueOnce({ response: { status: 304 } } as never) + + await wrapper.find(LOAD_MORE).trigger('click') + await flushPromises() + + const shown = (wrapper.vm.$data.activities as { id: number }[]).map((activity) => activity.id) + expect(shown).toEqual([30, 29]) + expect(wrapper.find(LOAD_MORE).exists()).toBe(false) + expect(wrapper.vm.$data.error).toBe('') + wrapper.unmount() + }) + + test('starts over without a stale cursor when another file is selected', async () => { + const { wrapper, get } = await mountWithFirstPage(responseWithIds([30, 29], { hasMore: true })) + get.mockResolvedValueOnce(responseWithIds([9], { hasMore: false }) as never) + + await wrapper.setProps({ node: { id: 'other', fileid: 99 } as any }) + await flushPromises() + + const [, config] = activityCalls(get)[1]! + expect((config as any).params.object_id).toBe(99) + // Carrying 29 over would silently skip the newest activities of the new file + expect((config as any).params.since).toBeUndefined() + expect((wrapper.vm.$data.activities as { id: number }[]).map((a) => a.id)).toEqual([9]) + wrapper.unmount() + }) +}) diff --git a/src/views/ActivityTab.vue b/src/views/ActivityTab.vue index b2ab3834c..12adb6475 100644 --- a/src/views/ActivityTab.vue +++ b/src/views/ActivityTab.vue @@ -53,6 +53,18 @@ :activity="activity" :showPreviews="false" @reload="getActivities()" /> +
  • + + + {{ loadingMore ? t('activity', 'Loading older activities…') : t('activity', 'Load older activities') }} + +
  • @@ -69,6 +81,7 @@ import { translate as t } from '@nextcloud/l10n' import { generateOcsUrl } from '@nextcloud/router' import { ShareType } from '@nextcloud/sharing' import { defineComponent, nextTick } from 'vue' +import NcButton from '@nextcloud/vue/components/NcButton' import NcEmptyContent from '@nextcloud/vue/components/NcEmptyContent' import NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper' import NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon' @@ -79,12 +92,21 @@ import ActivityModel from '../models/ActivityModel.ts' import { getActivityFilters, getAdditionalEntries, getSidebarActions } from '../utils/api.ts' import logger from '../utils/logger.ts' +/** + * How many activities to ask for per page. + * + * Sent explicitly rather than relying on the API default, so the page size the + * panel gets is the one it asks for. + */ +const ACTIVITY_PAGE_SIZE = 50 + const ActivityTab = defineComponent({ name: 'ActivityTab', components: { ActivityComponent, DownloadSummary, + NcButton, NcEmptyContent, NcIconSvgWrapper, NcLoadingIcon, @@ -127,9 +149,25 @@ const ActivityTab = defineComponent({ return { error: '', loading: true, + loadingMore: false, activities: [] as (IActivitySidebarEntry | ActivityModel)[], lightningBoltSVG, sidebarPlugins: [] as IActivitySidebarAction[], + // Only ever read inside methods, never from the template. Vue 3 + // leaves class instances it does not recognise unproxied, so the + // controller keeps working: abort() needs its original receiver. + requestController: null as AbortController | null, + // The pages loaded so far, kept apart from `activities` because the + // rendered list is those merged with the plugin entries below + realActivities: [] as ActivityModel[], + // Belong to the node rather than to a page, so they are fetched once + // per file and re-merged into every page + otherEntries: [] as IActivitySidebarEntry[], + // Id of the last activity the server returned, the cursor for the + // next page + lastGiven: undefined as string | undefined, + // Whether the server offered a next page + hasMore: false, } }, @@ -141,6 +179,9 @@ const ActivityTab = defineComponent({ }, watch: { + // `immediate` covers the initial load as well, so there is deliberately + // no mounted() hook doing the same thing: having both meant every + // sidebar open fired two identical requests node: { immediate: true, async handler() { @@ -149,10 +190,8 @@ const ActivityTab = defineComponent({ }, }, - async mounted() { - if (this.node) { - await this.update() - } + beforeUnmount() { + this.requestController?.abort() }, methods: { @@ -173,20 +212,77 @@ const ActivityTab = defineComponent({ }, /** - * Get the existing activities + * Load the newest activities, replacing whatever is shown */ async getActivities() { + await this.fetchPage(true) + }, + + /** + * Append the next, older page of activities + */ + async loadMoreActivities() { + await this.fetchPage(false) + }, + + /** + * Load one page of activities and merge it into the list + * + * Any request still in flight is superseded first. Without that, moving + * between files faster than the server answers would let an earlier + * response arrive last and leave the panel showing another file's + * activity, since the responses are applied in arrival order rather + * than request order. + * + * @param reset - Start from the newest activity instead of appending + */ + async fetchPage(reset: boolean) { + this.requestController?.abort() + const controller = new AbortController() + this.requestController = controller + const { signal } = controller + try { - this.loading = true + if (reset) { + this.loading = true + } else { + this.loadingMore = true + } + + const page = await this.loadRealActivities(signal, reset ? undefined : this.lastGiven) + const activities = this.processActivities(page.activities) + // Plugin supplied entries cannot be aborted, so their result is + // discarded below instead. They describe the node rather than a + // page, so they are only re-collected when starting over. + const otherEntries = reset + ? await getAdditionalEntries({ node: this.node }) + : this.otherEntries + if (signal.aborted) { + return + } - const activities = await this.processActivities(await this.loadRealActivities()) - const otherEntries = await getAdditionalEntries({ node: this.node }) - this.activities = [...activities, ...otherEntries].sort((a, b) => b.timestamp - a.timestamp) + this.realActivities = reset ? activities : [...this.realActivities, ...activities] + this.otherEntries = otherEntries + if (reset || page.lastGiven !== undefined) { + this.lastGiven = page.lastGiven + } + this.hasMore = page.hasMore + this.activities = [...this.realActivities, ...this.otherEntries] + .sort((a, b) => b.timestamp - a.timestamp) } catch (error) { + if (signal.aborted) { + // Cancelled in favour of a newer request, which owns the + // state from here on + return + } this.error = t('activity', 'Unable to load the activity list') logger.error('Error loading the activity list', { error }) } finally { - this.loading = false + // A newer request has already set these + if (!signal.aborted) { + this.loading = false + this.loadingMore = false + } } }, @@ -195,30 +291,48 @@ const ActivityTab = defineComponent({ */ resetState() { this.loading = true + this.loadingMore = false this.error = '' this.activities = [] + this.realActivities = [] + this.otherEntries = [] + this.lastGiven = undefined + this.hasMore = false }, /** - * Load activites from API + * Load one page of activites from the API + * + * @param signal - Aborted when a newer request supersedes this one + * @param since - Cursor from the previous page, omitted for the first one */ - async loadRealActivities() { + async loadRealActivities(signal?: AbortSignal, since?: string) { try { - const { data } = await axios.get( + const response = await axios.get( generateOcsUrl('apps/activity/api/v2/activity/filter'), { + signal, params: { format: 'json', object_type: 'files', object_id: this.node.fileid, + limit: ACTIVITY_PAGE_SIZE, + ...(since === undefined ? {} : { since }), }, }, ) - return data.ocs.data + return { + activities: response.data.ocs.data, + lastGiven: response.headers['x-activity-last-given'], + // The server only sends a next page link while activities + // remain, so its presence is what decides whether there is + // more to offer rather than the size of this page + hasMore: String(response.headers.link ?? '').includes('rel="next"'), + } } catch (error) { - // Status 304 is not an error. + // Status 304 is not an error, it means there is nothing (more) to show. if (error.response !== undefined && error.response.status === 304) { - return [] + return { activities: [], lastGiven: undefined, hasMore: false } } throw error } @@ -267,6 +381,14 @@ export type ActivityTabType = typeof ActivityTab overflow: scroll; } + &__load-more { + // Sits at the end of the scrolled list rather than pinned below it, so + // it reads as the continuation of the list it extends + display: flex; + justify-content: center; + padding-block: calc(var(--default-grid-baseline) * 2); + } + &__empty-content { height: 100%; }