diff --git a/core/src/views/PublicPageMenu.vue b/core/src/views/PublicPageMenu.vue index ddadfb63bc0..19cf8d5690b 100644 --- a/core/src/views/PublicPageMenu.vue +++ b/core/src/views/PublicPageMenu.vue @@ -135,7 +135,23 @@ function openDialogIfNeeded() { } &__primary-icon { - filter: var(--primary-invert-if-bright); + // Light mode: icon is black by default, invert to white when primary is dark + filter: var(--primary-invert-if-dark); + + // Dark mode: icon is white (swapped in icons.css), invert to black when primary is bright + @media (prefers-color-scheme: dark) { + filter: var(--primary-invert-if-bright); + } } } + +// Dark theme via Nextcloud setting (data-themes attribute, not media query) +:global([data-themes*=dark]) .public-page-menu__primary-icon { + filter: var(--primary-invert-if-bright); +} + +// Light theme explicitly set (overrides dark media query if system is dark but user chose light) +:global([data-themes*=light]) .public-page-menu__primary-icon { + filter: var(--primary-invert-if-dark); +} diff --git a/dist/ActivityCommentAction-CHAIR39m.chunk.mjs b/dist/ActivityCommentAction-DcqrOWtA.chunk.mjs similarity index 90% rename from dist/ActivityCommentAction-CHAIR39m.chunk.mjs rename to dist/ActivityCommentAction-DcqrOWtA.chunk.mjs index 55aa26d9076..58e1284c6ad 100644 --- a/dist/ActivityCommentAction-CHAIR39m.chunk.mjs +++ b/dist/ActivityCommentAction-DcqrOWtA.chunk.mjs @@ -1,2 +1,2 @@ -import{a as t}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{t as e}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{C as m,a}from"./CommentView-sS3KT9Kn.chunk.mjs";import{l as p}from"./activity-CgsVnLJG.chunk.mjs";import{b as i,r as s,o as n,c,m as u}from"./Web-BwmPK40i.chunk.mjs";import{_ as l}from"./public-C1mLBHT3.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./index-B-dGqfIG.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";import"./pinia-CLibr4cC.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";/* empty css */import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./index-BLNGy7h5.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./GetComments-BEnDgTs6.chunk.mjs";import"./index-BYnFfAmz.chunk.mjs";const d=i({components:{Comment:a},mixins:[m],props:{reloadCallback:{type:Function,required:!0}},methods:{onNewComment(){try{this.reloadCallback()}catch(o){t(e("comments","Could not reload comments")),p.error("Could not reload comments",{error:o})}}}});function C(o,f,y,w,D,N){const r=s("Comment");return n(),c(r,u(o.editorData,{autoComplete:o.autoComplete,resourceType:o.resourceType,editor:!0,userData:o.userData,resourceId:o.resourceId,class:"comments-action",onNew:o.onNewComment}),null,16,["autoComplete","resourceType","userData","resourceId","onNew"])}const S=l(d,[["render",C],["__scopeId","data-v-29a1e244"]]);export{S as default}; -//# sourceMappingURL=ActivityCommentAction-CHAIR39m.chunk.mjs.map +import{a as t}from"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import{t as e}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{C as m,a}from"./CommentView-DhkE9b-A.chunk.mjs";import{l as p}from"./activity-CgsVnLJG.chunk.mjs";import{b as i,r as s,o as n,c,m as u}from"./Web-BwmPK40i.chunk.mjs";import{_ as l}from"./public-C1mLBHT3.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./index-B-dGqfIG.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";import"./pinia-CLibr4cC.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";/* empty css */import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./index-BLNGy7h5.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./GetComments-BEnDgTs6.chunk.mjs";import"./index-BYnFfAmz.chunk.mjs";const d=i({components:{Comment:a},mixins:[m],props:{reloadCallback:{type:Function,required:!0}},methods:{onNewComment(){try{this.reloadCallback()}catch(o){t(e("comments","Could not reload comments")),p.error("Could not reload comments",{error:o})}}}});function C(o,f,y,w,D,N){const r=s("Comment");return n(),c(r,u(o.editorData,{autoComplete:o.autoComplete,resourceType:o.resourceType,editor:!0,userData:o.userData,resourceId:o.resourceId,class:"comments-action",onNew:o.onNewComment}),null,16,["autoComplete","resourceType","userData","resourceId","onNew"])}const S=l(d,[["render",C],["__scopeId","data-v-29a1e244"]]);export{S as default}; +//# sourceMappingURL=ActivityCommentAction-DcqrOWtA.chunk.mjs.map diff --git a/dist/ActivityCommentAction-CHAIR39m.chunk.mjs.license b/dist/ActivityCommentAction-DcqrOWtA.chunk.mjs.license similarity index 100% rename from dist/ActivityCommentAction-CHAIR39m.chunk.mjs.license rename to dist/ActivityCommentAction-DcqrOWtA.chunk.mjs.license diff --git a/dist/ActivityCommentAction-CHAIR39m.chunk.mjs.map b/dist/ActivityCommentAction-DcqrOWtA.chunk.mjs.map similarity index 94% rename from dist/ActivityCommentAction-CHAIR39m.chunk.mjs.map rename to dist/ActivityCommentAction-DcqrOWtA.chunk.mjs.map index a819f919bc7..f5392a72637 100644 --- a/dist/ActivityCommentAction-CHAIR39m.chunk.mjs.map +++ b/dist/ActivityCommentAction-DcqrOWtA.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"ActivityCommentAction-CHAIR39m.chunk.mjs","sources":["../build/frontend/apps/comments/src/views/ActivityCommentAction.vue"],"sourcesContent":["\n\n\n\n\n\n\n"],"names":["_sfc_main","defineComponent","Comment","CommentView","error","showError","t","logger","_createBlock","_component_Comment","_mergeProps","_ctx"],"mappings":"ktCAyBA,MAAAA,EAAeC,EAAgB,CAC9B,WAAY,CACX,QAAAC,CAAA,EAGD,OAAQ,CAACC,CAAW,EACpB,MAAO,CACN,eAAgB,CACf,KAAM,SACN,SAAU,EAAA,CACX,EAGD,QAAS,CACR,cAAe,CACd,GAAI,CAEH,KAAK,eAAA,CACN,OAASC,EAAO,CACfC,EAAUC,EAAE,WAAY,2BAA2B,CAAC,EACpDC,EAAO,MAAM,4BAA6B,CAAE,MAAAH,CAAA,CAAO,CACpD,CACD,CAAA,CAEF,CAAC,0DA3CAI,EAQuBC,EARvBC,EAQuBC,EAPd,WAAU,CACjB,aAAcA,EAAA,aACd,aAAcA,EAAA,aACd,OAAQ,GACR,SAAUA,EAAA,SACV,WAAYA,EAAA,WACb,MAAM,kBACL,MAAKA,EAAA,YAAA,CAAA,EAAA,KAAA,GAAA,CAAA,eAAA,eAAA,WAAA,aAAA,OAAA,CAAA"} \ No newline at end of file +{"version":3,"file":"ActivityCommentAction-DcqrOWtA.chunk.mjs","sources":["../build/frontend/apps/comments/src/views/ActivityCommentAction.vue"],"sourcesContent":["\n\n\n\n\n\n\n"],"names":["_sfc_main","defineComponent","Comment","CommentView","error","showError","t","logger","_createBlock","_component_Comment","_mergeProps","_ctx"],"mappings":"ktCAyBA,MAAAA,EAAeC,EAAgB,CAC9B,WAAY,CACX,QAAAC,CAAA,EAGD,OAAQ,CAACC,CAAW,EACpB,MAAO,CACN,eAAgB,CACf,KAAM,SACN,SAAU,EAAA,CACX,EAGD,QAAS,CACR,cAAe,CACd,GAAI,CAEH,KAAK,eAAA,CACN,OAASC,EAAO,CACfC,EAAUC,EAAE,WAAY,2BAA2B,CAAC,EACpDC,EAAO,MAAM,4BAA6B,CAAE,MAAAH,CAAA,CAAO,CACpD,CACD,CAAA,CAEF,CAAC,0DA3CAI,EAQuBC,EARvBC,EAQuBC,EAPd,WAAU,CACjB,aAAcA,EAAA,aACd,aAAcA,EAAA,aACd,OAAQ,GACR,SAAUA,EAAA,SACV,WAAYA,EAAA,WACb,MAAM,kBACL,MAAKA,EAAA,YAAA,CAAA,EAAA,KAAA,GAAA,CAAA,eAAA,eAAA,WAAA,aAAA,OAAA,CAAA"} \ No newline at end of file diff --git a/dist/ActivityCommentAction-CHAIR39m.chunk.mjs.map.license b/dist/ActivityCommentAction-DcqrOWtA.chunk.mjs.map.license similarity index 100% rename from dist/ActivityCommentAction-CHAIR39m.chunk.mjs.map.license rename to dist/ActivityCommentAction-DcqrOWtA.chunk.mjs.map.license diff --git a/dist/ActivityCommentEntry-BbbT2NBb.chunk.mjs b/dist/ActivityCommentEntry-BCZMrASQ.chunk.mjs similarity index 90% rename from dist/ActivityCommentEntry-BbbT2NBb.chunk.mjs rename to dist/ActivityCommentEntry-BCZMrASQ.chunk.mjs index 8414d5b6d73..d0c750ff908 100644 --- a/dist/ActivityCommentEntry-BbbT2NBb.chunk.mjs +++ b/dist/ActivityCommentEntry-BCZMrASQ.chunk.mjs @@ -1,2 +1,2 @@ -import{t as s}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{C as p,a}from"./CommentView-sS3KT9Kn.chunk.mjs";import{_ as i}from"./public-C1mLBHT3.chunk.mjs";import{r as n,o as c,c as u,m as l}from"./Web-BwmPK40i.chunk.mjs";import"./index-B-dGqfIG.chunk.mjs";import"./pinia-CLibr4cC.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";/* empty css */import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./index-BLNGy7h5.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";import"./activity-CgsVnLJG.chunk.mjs";import"./GetComments-BEnDgTs6.chunk.mjs";import"./index-BYnFfAmz.chunk.mjs";const d={name:"ActivityCommentEntry",components:{Comment:a},mixins:[p],props:{comment:{type:Object,required:!0},reloadCallback:{type:Function,required:!0}},data(){return{commentMessage:""}},watch:{comment(){this.commentMessage=this.comment.props.message}},mounted(){this.commentMessage=this.comment.props.message},methods:{t:s}};function g(t,e,o,f,m,C){const r=n("Comment");return c(),u(r,l({ref:"comment",tag:"li"},o.comment.props,{autoComplete:t.autoComplete,resourceType:t.resourceType,message:m.commentMessage,resourceId:t.resourceId,userData:t.genMentionsData(o.comment.props.mentions),class:"comments-activity",onDelete:e[0]||(e[0]=y=>o.reloadCallback())}),null,16,["autoComplete","resourceType","message","resourceId","userData"])}const Q=i(d,[["render",g],["__scopeId","data-v-afc310f1"]]);export{Q as default}; -//# sourceMappingURL=ActivityCommentEntry-BbbT2NBb.chunk.mjs.map +import{t as s}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{C as p,a}from"./CommentView-DhkE9b-A.chunk.mjs";import{_ as i}from"./public-C1mLBHT3.chunk.mjs";import{r as n,o as c,c as u,m as l}from"./Web-BwmPK40i.chunk.mjs";import"./index-B-dGqfIG.chunk.mjs";import"./pinia-CLibr4cC.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";/* empty css */import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./index-BLNGy7h5.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";import"./activity-CgsVnLJG.chunk.mjs";import"./GetComments-BEnDgTs6.chunk.mjs";import"./index-BYnFfAmz.chunk.mjs";const d={name:"ActivityCommentEntry",components:{Comment:a},mixins:[p],props:{comment:{type:Object,required:!0},reloadCallback:{type:Function,required:!0}},data(){return{commentMessage:""}},watch:{comment(){this.commentMessage=this.comment.props.message}},mounted(){this.commentMessage=this.comment.props.message},methods:{t:s}};function g(t,e,o,f,m,C){const r=n("Comment");return c(),u(r,l({ref:"comment",tag:"li"},o.comment.props,{autoComplete:t.autoComplete,resourceType:t.resourceType,message:m.commentMessage,resourceId:t.resourceId,userData:t.genMentionsData(o.comment.props.mentions),class:"comments-activity",onDelete:e[0]||(e[0]=y=>o.reloadCallback())}),null,16,["autoComplete","resourceType","message","resourceId","userData"])}const Q=i(d,[["render",g],["__scopeId","data-v-afc310f1"]]);export{Q as default}; +//# sourceMappingURL=ActivityCommentEntry-BCZMrASQ.chunk.mjs.map diff --git a/dist/ActivityCommentEntry-BbbT2NBb.chunk.mjs.license b/dist/ActivityCommentEntry-BCZMrASQ.chunk.mjs.license similarity index 100% rename from dist/ActivityCommentEntry-BbbT2NBb.chunk.mjs.license rename to dist/ActivityCommentEntry-BCZMrASQ.chunk.mjs.license diff --git a/dist/ActivityCommentEntry-BbbT2NBb.chunk.mjs.map b/dist/ActivityCommentEntry-BCZMrASQ.chunk.mjs.map similarity index 95% rename from dist/ActivityCommentEntry-BbbT2NBb.chunk.mjs.map rename to dist/ActivityCommentEntry-BCZMrASQ.chunk.mjs.map index 37e6d8ecaab..fa45c2fb1fb 100644 --- a/dist/ActivityCommentEntry-BbbT2NBb.chunk.mjs.map +++ b/dist/ActivityCommentEntry-BCZMrASQ.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"ActivityCommentEntry-BbbT2NBb.chunk.mjs","sources":["../build/frontend/apps/comments/src/views/ActivityCommentEntry.vue"],"sourcesContent":["\n\n\n\n\n\n\n"],"names":["_sfc_main","Comment","CommentView","t","_openBlock","_createBlock","_component_Comment","_mergeProps","$props","_ctx","$data","_cache"],"mappings":"wrCA0BA,MAAAA,EAAe,CACd,KAAM,uBAEN,WAAY,CACX,QAAAC,CAAA,EAGD,OAAQ,CAACC,CAAW,EACpB,MAAO,CACN,QAAS,CACR,KAAM,OACN,SAAU,EAAA,EAGX,eAAgB,CACf,KAAM,SACN,SAAU,EAAA,CACX,EAGD,MAAO,CACN,MAAO,CACN,eAAgB,EAAA,CAElB,EAEA,MAAO,CACN,SAAU,CACT,KAAK,eAAiB,KAAK,QAAQ,MAAM,OAC1C,CAAA,EAGD,SAAU,CACT,KAAK,eAAiB,KAAK,QAAQ,MAAM,OAC1C,EAEA,QAAS,CAAA,EACRC,CAAA,CAEF,+CA3DC,OAAAC,EAAA,EAAAC,EAU8BC,EAV9BC,EAU8B,CAT7B,IAAI,UACJ,IAAI,IAAA,EACIC,UAAQ,MAAK,CACpB,aAAcC,EAAA,aACd,aAAcA,EAAA,aACd,QAASC,EAAA,eACT,WAAYD,EAAA,WACZ,SAAUA,EAAA,gBAAgBD,EAAA,QAAQ,MAAM,QAAQ,EACjD,MAAM,oBACL,SAAMG,eAAEH,EAAA,eAAA,EAAc,CAAA,EAAA,KAAA,GAAA,CAAA,eAAA,eAAA,UAAA,aAAA,UAAA,CAAA"} \ No newline at end of file +{"version":3,"file":"ActivityCommentEntry-BCZMrASQ.chunk.mjs","sources":["../build/frontend/apps/comments/src/views/ActivityCommentEntry.vue"],"sourcesContent":["\n\n\n\n\n\n\n"],"names":["_sfc_main","Comment","CommentView","t","_openBlock","_createBlock","_component_Comment","_mergeProps","$props","_ctx","$data","_cache"],"mappings":"wrCA0BA,MAAAA,EAAe,CACd,KAAM,uBAEN,WAAY,CACX,QAAAC,CAAA,EAGD,OAAQ,CAACC,CAAW,EACpB,MAAO,CACN,QAAS,CACR,KAAM,OACN,SAAU,EAAA,EAGX,eAAgB,CACf,KAAM,SACN,SAAU,EAAA,CACX,EAGD,MAAO,CACN,MAAO,CACN,eAAgB,EAAA,CAElB,EAEA,MAAO,CACN,SAAU,CACT,KAAK,eAAiB,KAAK,QAAQ,MAAM,OAC1C,CAAA,EAGD,SAAU,CACT,KAAK,eAAiB,KAAK,QAAQ,MAAM,OAC1C,EAEA,QAAS,CAAA,EACRC,CAAA,CAEF,+CA3DC,OAAAC,EAAA,EAAAC,EAU8BC,EAV9BC,EAU8B,CAT7B,IAAI,UACJ,IAAI,IAAA,EACIC,UAAQ,MAAK,CACpB,aAAcC,EAAA,aACd,aAAcA,EAAA,aACd,QAASC,EAAA,eACT,WAAYD,EAAA,WACZ,SAAUA,EAAA,gBAAgBD,EAAA,QAAQ,MAAM,QAAQ,EACjD,MAAM,oBACL,SAAMG,eAAEH,EAAA,eAAA,EAAc,CAAA,EAAA,KAAA,GAAA,CAAA,eAAA,eAAA,UAAA,aAAA,UAAA,CAAA"} \ No newline at end of file diff --git a/dist/ActivityCommentEntry-BbbT2NBb.chunk.mjs.map.license b/dist/ActivityCommentEntry-BCZMrASQ.chunk.mjs.map.license similarity index 100% rename from dist/ActivityCommentEntry-BbbT2NBb.chunk.mjs.map.license rename to dist/ActivityCommentEntry-BCZMrASQ.chunk.mjs.map.license diff --git a/dist/AppstoreBrowse-DO4WaaxR.chunk.mjs b/dist/AppstoreBrowse-BPyqEF5v.chunk.mjs similarity index 92% rename from dist/AppstoreBrowse-DO4WaaxR.chunk.mjs rename to dist/AppstoreBrowse-BPyqEF5v.chunk.mjs index 28831054901..dccbda6ba9a 100644 --- a/dist/AppstoreBrowse-DO4WaaxR.chunk.mjs +++ b/dist/AppstoreBrowse-BPyqEF5v.chunk.mjs @@ -1,2 +1,2 @@ -import{t as e}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{N as O,u as q}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as C}from"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import{N as L}from"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{u as V,a as z,b as D}from"./AppstoreSearch-CPzSIsIZ.chunk.mjs";import{e as E}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{_ as A,l as G}from"./public-C1mLBHT3.chunk.mjs";import{N as R}from"./mdi-Lt-19ASw.chunk.mjs";import{b as j,n as T,U as H,o,f as S,y as f,g as d,u as t,j as B,t as n,h as P,k as b,N as M,F as $,B as U,w as I,s as J,v as k,l as F,z as K,c as v,C as Q}from"./Web-BwmPK40i.chunk.mjs";import{N as W}from"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import{u as N,c as X,n as Y,a as Z,b as ee,d as te}from"./appstore-main.mjs";import"./index-B-dGqfIG.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./NcTextArea-Dxzj4zdb-stc727hj.chunk.mjs";import"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import"./index-BOH7nBEM.chunk.mjs";import"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./index-BLNGy7h5.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs";import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";/* empty css */import"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import"./index-CMXcwXc6.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./index-C_wPY1fR.chunk.mjs";/* empty css */import"./index-xEyWukTf.chunk.mjs";import"./NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs";import"./ContentCopy-BF1gBM5z.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./index-DlyLvrtV.chunk.mjs";import"./pinia-CLibr4cC.chunk.mjs";import"./modulepreload-polyfill-BxzAKjcf.chunk.mjs";import"./index-BU6wm4Hd.chunk.mjs";const ie=["id"],ae={key:0},se=["aria-label"],oe=j({__name:"OfficeSuiteSwitcherItem",props:J({suite:{},loading:{type:Boolean}},{selected:{},selectedModifiers:{}}),emits:["update:selected"],setup(p){const r=T(p,"selected"),m=H(),_=N(),s=k(()=>_.getAppById(p.suite.appId)),y=k(()=>!!s.value?.installed),w=k(()=>!s.value||!y.value&&!X(s.value));return(a,l)=>(o(),S("div",{class:f([a.$style.officeSuiteSwitcherItem,{[a.$style.officeSuiteSwitcherItem_selected]:r.value===p.suite.id}]),onClick:l[3]||(l[3]=i=>r.value=p.suite.id)},[d("div",{class:f(a.$style.officeSuiteSwitcherItem__header)},[d("h3",{id:t(m),class:f(a.$style.officeSuiteSwitcherItem__title)},[B(n(p.suite.name)+" ",1),y.value?(o(),S("span",ae,"("+n(t(e)("appstore","installed"))+")",1)):P("",!0)],10,ie),b(t(W),{modelValue:r.value,"onUpdate:modelValue":l[0]||(l[0]=i=>r.value=i),"aria-labelledby":t(m),disabled:w.value,loading:p.loading,type:"radio",name:"office-suite",value:p.suite.id,onClick:l[1]||(l[1]=M(()=>{},["stop"]))},null,8,["modelValue","aria-labelledby","disabled","loading","value"])],2),d("ul",{"aria-label":t(e)("appstore","Features"),class:f(a.$style.officeSuiteSwitcherItem__features)},[(o(!0),S($,null,U(p.suite.features,(i,c)=>(o(),S("li",{key:c},n(i),1))),128))],10,se),b(t(O),{href:p.suite.learnMoreUrl,onClick:l[2]||(l[2]=M(()=>{},["stop"]))},{default:I(()=>[B(n(t(e)("appstore","Learn more"))+"↗ ",1)]),_:1},8,["href"])],2))}}),re="_officeSuiteSwitcherItem_1x2g7_2",le="_officeSuiteSwitcherItem_selected_1x2g7_23",ce="_officeSuiteSwitcherItem__header_1x2g7_29",pe="_officeSuiteSwitcherItem__title_1x2g7_36",ue="_officeSuiteSwitcherItem__features_1x2g7_42",fe="_officeSuiteSwitcherItem__link_1x2g7_55",ne={officeSuiteSwitcherItem:re,officeSuiteSwitcherItem_selected:le,officeSuiteSwitcherItem__header:ce,officeSuiteSwitcherItem__title:pe,officeSuiteSwitcherItem__features:ue,officeSuiteSwitcherItem__link:fe},me={$style:ne},de=A(oe,[["__cssModules",me]]),g=Object.freeze([{id:"nextcloud-office",appId:"eurooffice",name:"Nextcloud Office",features:[e("settings","Powered by Euro-Office"),e("settings","Good Nextcloud integration"),e("settings","Open source"),e("settings","Best performance"),e("settings","Limited ODF compatibility"),e("settings","Best Microsoft compatibility")],learnMoreUrl:"https://github.com/Euro-Office",isPrimary:!0},{id:"collabora-office",appId:"richdocuments",name:"Collabora Office",features:[e("settings","Best Nextcloud integration"),e("settings","Open source"),e("settings","Good performance"),e("settings","Best security: documents never leave your server"),e("settings","Best ODF compatibility"),e("settings","Best support for legacy files")],learnMoreUrl:"https://nextcloud.com/collaboraonline/",isPrimary:!1}]),_e=j({__name:"OfficeSuiteSwitcher",setup(p){const r=N(),m=G("appstore","isAllInOne",!1),_=F(!1),s=F(y());K(s,l);function y(){for(const i of g){const c=r.apps.find(u=>u.id===i.appId&&u.installed);if(c&&c.active)return i.id}return g.find(i=>i.isPrimary)?.id??null}function w(){s.value=null}async function a(i){const c=r.getAppById(i.appId);c&&Z(c)&&await r.disableApp(i.appId)}async function l(i,c){if(!(_.value||i===c))try{_.value=!0;const u=g.find(h=>h.id===i);if(!u){for(const h of g)await a(h);return}const x=r.getAppById(u.appId);if(Y(x))if(await E({name:e("appstore","Force enable {suite}?",{suite:u.name}),text:e("appstore","Enabling {suite} requires force enabling the app. This may cause issues with your Nextcloud instance. Are you sure you want to proceed?",{suite:u.name}),labelConfirm:e("appstore","Force enable"),labelReject:e("appstore","Cancel"),severity:"warning"}))await r.enableApp(u.appId,!0);else{s.value=c;return}for(const h of g)h.id===i?await r.enableApp(h.appId):await a(h)}finally{_.value=!1}}return(i,c)=>t(m)?(o(),v(t(R),{key:0,type:"info"},{default:I(()=>[d("p",null,n(t(e)("appstore","Office suite switching is managed through the Nextcloud All-in-One interface.")),1),d("p",null,n(t(e)("appstore","Please use the AIO interface to switch between office suites.")),1)]),_:1})):(o(),S("section",{key:1,class:f(i.$style.officeSuiteSwitcher)},[d("h3",{class:f(i.$style.officeSuiteSwitcher__title)},n(t(e)("appstore","Select your preferred office suite.")),3),d("p",null,n(t(e)("appstore","Please note that installing requires manual server setup.")),1),d("fieldset",{class:f(i.$style.officeSuiteSwitcher__cards)},[(o(!0),S($,null,U(t(g),u=>(o(),v(de,{key:u.id,selected:s.value,"onUpdate:selected":c[0]||(c[0]=x=>s.value=x),class:f(i.$style.officeSuiteSwitcher__cardsItem),suite:u,loading:_.value},null,8,["selected","class","suite","loading"]))),128))],2),d("div",{class:f(i.$style.officeSuiteSwitcher__actions)},[b(t(O),{disabled:!s.value,onClick:w},{default:I(()=>[B(n(t(e)("appstore","Disable office suites")),1)]),_:1},8,["disabled"])],2)],2))}}),Se="_officeSuiteSwitcher_1ajfj_2",he="_officeSuiteSwitcher__cards_1ajfj_19",ye="_officeSuiteSwitcher__cardsItem_1ajfj_25",we="_officeSuiteSwitcher__actions_1ajfj_29",ge="_officeSuiteSwitcher__disableButton_1ajfj_33",ve={officeSuiteSwitcher:Se,officeSuiteSwitcher__cards:he,officeSuiteSwitcher__cardsItem:ye,officeSuiteSwitcher__actions:we,officeSuiteSwitcher__disableButton:ge},be={$style:ve},Ie=A(_e,[["__cssModules",be]]),ke=j({__name:"AppstoreBrowse",setup(p){const r=q(),m=N(),_=ee(),s=k(()=>r.params.category),y=k(()=>s.value==="featured"?m.apps.filter(a=>a.level===200):s.value==="supported"?m.apps.filter(a=>a.level===300):m.getAppsByCategory(s.value)),w=V(y);return(a,l)=>(o(),S($,null,[b(z),t(m).isLoadingApps?(o(),v(t(C),{key:0,name:t(e)("appstore","Loading app list")},{icon:I(()=>[b(t(L),{size:64})]),_:1},8,["name"])):(o(),S($,{key:1},[s.value==="office"?(o(),v(Ie,{key:0})):P("",!0),t(w).length?(o(),v(Q(t(_).isGridView?D:te),{key:1,class:f(a.$style.appstoreBrowse),apps:t(w)},null,8,["class","apps"])):(o(),v(t(C),{key:2,name:t(e)("appstore","No matching apps found")},{action:I(()=>[b(t(O),{variant:"primary",onClick:l[0]||(l[0]=i=>a.$router.push({query:a.$route.query,name:"apps-search"}))},{default:I(()=>[B(n(t(e)("appstore","Search everywhere")),1)]),_:1})]),_:1},8,["name"]))],64))],64))}}),Be="_appstoreBrowse_1w3np_2",$e={appstoreBrowse:Be},xe={$style:$e},vt=A(ke,[["__cssModules",xe]]);export{vt as default}; -//# sourceMappingURL=AppstoreBrowse-DO4WaaxR.chunk.mjs.map +import{t as e}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{N as O,u as q}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as C}from"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import{N as L}from"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{u as V,a as z,b as D}from"./AppstoreSearch-CZQ7JcU9.chunk.mjs";import{e as E}from"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import{_ as A,l as G}from"./public-C1mLBHT3.chunk.mjs";import{N as R}from"./mdi-Lt-19ASw.chunk.mjs";import{b as j,n as T,U as H,o,f as S,y as f,g as d,u as t,j as B,t as n,h as P,k as b,N as M,F as $,B as U,w as I,s as J,v as k,l as F,z as K,c as v,C as Q}from"./Web-BwmPK40i.chunk.mjs";import{N as W}from"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import{u as N,c as X,n as Y,a as Z,b as ee,d as te}from"./appstore-main.mjs";import"./index-B-dGqfIG.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./NcTextArea-Dxzj4zdb-BPZd41PF.chunk.mjs";import"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import"./index-dqLzhRZM.chunk.mjs";import"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./index-BLNGy7h5.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs";import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";/* empty css */import"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import"./index-CQct0mOs.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./index-BrjNu3x_.chunk.mjs";/* empty css */import"./index-CcOuN-F7.chunk.mjs";import"./NcSelectTags-D7qWNjXa-gqJ9LLZU.chunk.mjs";import"./ContentCopy-BF1gBM5z.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./index-DlyLvrtV.chunk.mjs";import"./pinia-CLibr4cC.chunk.mjs";import"./modulepreload-polyfill-BxzAKjcf.chunk.mjs";import"./index-BU6wm4Hd.chunk.mjs";const ie=["id"],ae={key:0},se=["aria-label"],oe=j({__name:"OfficeSuiteSwitcherItem",props:J({suite:{},loading:{type:Boolean}},{selected:{},selectedModifiers:{}}),emits:["update:selected"],setup(p){const r=T(p,"selected"),m=H(),_=N(),s=k(()=>_.getAppById(p.suite.appId)),y=k(()=>!!s.value?.installed),w=k(()=>!s.value||!y.value&&!X(s.value));return(a,l)=>(o(),S("div",{class:f([a.$style.officeSuiteSwitcherItem,{[a.$style.officeSuiteSwitcherItem_selected]:r.value===p.suite.id}]),onClick:l[3]||(l[3]=i=>r.value=p.suite.id)},[d("div",{class:f(a.$style.officeSuiteSwitcherItem__header)},[d("h3",{id:t(m),class:f(a.$style.officeSuiteSwitcherItem__title)},[B(n(p.suite.name)+" ",1),y.value?(o(),S("span",ae,"("+n(t(e)("appstore","installed"))+")",1)):P("",!0)],10,ie),b(t(W),{modelValue:r.value,"onUpdate:modelValue":l[0]||(l[0]=i=>r.value=i),"aria-labelledby":t(m),disabled:w.value,loading:p.loading,type:"radio",name:"office-suite",value:p.suite.id,onClick:l[1]||(l[1]=M(()=>{},["stop"]))},null,8,["modelValue","aria-labelledby","disabled","loading","value"])],2),d("ul",{"aria-label":t(e)("appstore","Features"),class:f(a.$style.officeSuiteSwitcherItem__features)},[(o(!0),S($,null,U(p.suite.features,(i,c)=>(o(),S("li",{key:c},n(i),1))),128))],10,se),b(t(O),{href:p.suite.learnMoreUrl,onClick:l[2]||(l[2]=M(()=>{},["stop"]))},{default:I(()=>[B(n(t(e)("appstore","Learn more"))+"↗ ",1)]),_:1},8,["href"])],2))}}),re="_officeSuiteSwitcherItem_1x2g7_2",le="_officeSuiteSwitcherItem_selected_1x2g7_23",ce="_officeSuiteSwitcherItem__header_1x2g7_29",pe="_officeSuiteSwitcherItem__title_1x2g7_36",ue="_officeSuiteSwitcherItem__features_1x2g7_42",fe="_officeSuiteSwitcherItem__link_1x2g7_55",ne={officeSuiteSwitcherItem:re,officeSuiteSwitcherItem_selected:le,officeSuiteSwitcherItem__header:ce,officeSuiteSwitcherItem__title:pe,officeSuiteSwitcherItem__features:ue,officeSuiteSwitcherItem__link:fe},me={$style:ne},de=A(oe,[["__cssModules",me]]),g=Object.freeze([{id:"nextcloud-office",appId:"eurooffice",name:"Nextcloud Office",features:[e("settings","Powered by Euro-Office"),e("settings","Good Nextcloud integration"),e("settings","Open source"),e("settings","Best performance"),e("settings","Limited ODF compatibility"),e("settings","Best Microsoft compatibility")],learnMoreUrl:"https://github.com/Euro-Office",isPrimary:!0},{id:"collabora-office",appId:"richdocuments",name:"Collabora Office",features:[e("settings","Best Nextcloud integration"),e("settings","Open source"),e("settings","Good performance"),e("settings","Best security: documents never leave your server"),e("settings","Best ODF compatibility"),e("settings","Best support for legacy files")],learnMoreUrl:"https://nextcloud.com/collaboraonline/",isPrimary:!1}]),_e=j({__name:"OfficeSuiteSwitcher",setup(p){const r=N(),m=G("appstore","isAllInOne",!1),_=F(!1),s=F(y());K(s,l);function y(){for(const i of g){const c=r.apps.find(u=>u.id===i.appId&&u.installed);if(c&&c.active)return i.id}return g.find(i=>i.isPrimary)?.id??null}function w(){s.value=null}async function a(i){const c=r.getAppById(i.appId);c&&Z(c)&&await r.disableApp(i.appId)}async function l(i,c){if(!(_.value||i===c))try{_.value=!0;const u=g.find(h=>h.id===i);if(!u){for(const h of g)await a(h);return}const x=r.getAppById(u.appId);if(Y(x))if(await E({name:e("appstore","Force enable {suite}?",{suite:u.name}),text:e("appstore","Enabling {suite} requires force enabling the app. This may cause issues with your Nextcloud instance. Are you sure you want to proceed?",{suite:u.name}),labelConfirm:e("appstore","Force enable"),labelReject:e("appstore","Cancel"),severity:"warning"}))await r.enableApp(u.appId,!0);else{s.value=c;return}for(const h of g)h.id===i?await r.enableApp(h.appId):await a(h)}finally{_.value=!1}}return(i,c)=>t(m)?(o(),v(t(R),{key:0,type:"info"},{default:I(()=>[d("p",null,n(t(e)("appstore","Office suite switching is managed through the Nextcloud All-in-One interface.")),1),d("p",null,n(t(e)("appstore","Please use the AIO interface to switch between office suites.")),1)]),_:1})):(o(),S("section",{key:1,class:f(i.$style.officeSuiteSwitcher)},[d("h3",{class:f(i.$style.officeSuiteSwitcher__title)},n(t(e)("appstore","Select your preferred office suite.")),3),d("p",null,n(t(e)("appstore","Please note that installing requires manual server setup.")),1),d("fieldset",{class:f(i.$style.officeSuiteSwitcher__cards)},[(o(!0),S($,null,U(t(g),u=>(o(),v(de,{key:u.id,selected:s.value,"onUpdate:selected":c[0]||(c[0]=x=>s.value=x),class:f(i.$style.officeSuiteSwitcher__cardsItem),suite:u,loading:_.value},null,8,["selected","class","suite","loading"]))),128))],2),d("div",{class:f(i.$style.officeSuiteSwitcher__actions)},[b(t(O),{disabled:!s.value,onClick:w},{default:I(()=>[B(n(t(e)("appstore","Disable office suites")),1)]),_:1},8,["disabled"])],2)],2))}}),Se="_officeSuiteSwitcher_1ajfj_2",he="_officeSuiteSwitcher__cards_1ajfj_19",ye="_officeSuiteSwitcher__cardsItem_1ajfj_25",we="_officeSuiteSwitcher__actions_1ajfj_29",ge="_officeSuiteSwitcher__disableButton_1ajfj_33",ve={officeSuiteSwitcher:Se,officeSuiteSwitcher__cards:he,officeSuiteSwitcher__cardsItem:ye,officeSuiteSwitcher__actions:we,officeSuiteSwitcher__disableButton:ge},be={$style:ve},Ie=A(_e,[["__cssModules",be]]),ke=j({__name:"AppstoreBrowse",setup(p){const r=q(),m=N(),_=ee(),s=k(()=>r.params.category),y=k(()=>s.value==="featured"?m.apps.filter(a=>a.level===200):s.value==="supported"?m.apps.filter(a=>a.level===300):m.getAppsByCategory(s.value)),w=V(y);return(a,l)=>(o(),S($,null,[b(z),t(m).isLoadingApps?(o(),v(t(C),{key:0,name:t(e)("appstore","Loading app list")},{icon:I(()=>[b(t(L),{size:64})]),_:1},8,["name"])):(o(),S($,{key:1},[s.value==="office"?(o(),v(Ie,{key:0})):P("",!0),t(w).length?(o(),v(Q(t(_).isGridView?D:te),{key:1,class:f(a.$style.appstoreBrowse),apps:t(w)},null,8,["class","apps"])):(o(),v(t(C),{key:2,name:t(e)("appstore","No matching apps found")},{action:I(()=>[b(t(O),{variant:"primary",onClick:l[0]||(l[0]=i=>a.$router.push({query:a.$route.query,name:"apps-search"}))},{default:I(()=>[B(n(t(e)("appstore","Search everywhere")),1)]),_:1})]),_:1},8,["name"]))],64))],64))}}),Be="_appstoreBrowse_1w3np_2",$e={appstoreBrowse:Be},xe={$style:$e},vt=A(ke,[["__cssModules",xe]]);export{vt as default}; +//# sourceMappingURL=AppstoreBrowse-BPyqEF5v.chunk.mjs.map diff --git a/dist/AppstoreBrowse-DO4WaaxR.chunk.mjs.license b/dist/AppstoreBrowse-BPyqEF5v.chunk.mjs.license similarity index 100% rename from dist/AppstoreBrowse-DO4WaaxR.chunk.mjs.license rename to dist/AppstoreBrowse-BPyqEF5v.chunk.mjs.license diff --git a/dist/AppstoreBrowse-DO4WaaxR.chunk.mjs.map b/dist/AppstoreBrowse-BPyqEF5v.chunk.mjs.map similarity index 99% rename from dist/AppstoreBrowse-DO4WaaxR.chunk.mjs.map rename to dist/AppstoreBrowse-BPyqEF5v.chunk.mjs.map index 3b6e37243ed..67c8ebaf340 100644 --- a/dist/AppstoreBrowse-DO4WaaxR.chunk.mjs.map +++ b/dist/AppstoreBrowse-BPyqEF5v.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"AppstoreBrowse-DO4WaaxR.chunk.mjs","sources":["../build/frontend/apps/appstore/src/components/AppstoreBrowse/OfficeSuiteSwitcherItem.vue","../build/frontend/apps/appstore/src/service/OfficeSuites.ts","../build/frontend/apps/appstore/src/components/AppstoreBrowse/OfficeSuiteSwitcher.vue","../build/frontend/apps/appstore/src/views/AppstoreBrowse.vue"],"sourcesContent":["\n\n\n\n\n\n\n","/*\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '@nextcloud/l10n'\n\nexport const OFFICE_SUITES = Object.freeze([\n\t{\n\t\tid: 'nextcloud-office',\n\t\tappId: 'eurooffice',\n\t\tname: 'Nextcloud Office',\n\t\tfeatures: [\n\t\t\tt('settings', 'Powered by Euro-Office'),\n\t\t\tt('settings', 'Good Nextcloud integration'),\n\t\t\tt('settings', 'Open source'),\n\t\t\tt('settings', 'Best performance'),\n\t\t\tt('settings', 'Limited ODF compatibility'),\n\t\t\tt('settings', 'Best Microsoft compatibility'),\n\t\t],\n\t\tlearnMoreUrl: 'https://github.com/Euro-Office',\n\t\tisPrimary: true,\n\t},\n\t{\n\t\tid: 'collabora-office',\n\t\tappId: 'richdocuments',\n\t\tname: 'Collabora Office',\n\t\tfeatures: [\n\t\t\tt('settings', 'Best Nextcloud integration'),\n\t\t\tt('settings', 'Open source'),\n\t\t\tt('settings', 'Good performance'),\n\t\t\tt('settings', 'Best security: documents never leave your server'),\n\t\t\tt('settings', 'Best ODF compatibility'),\n\t\t\tt('settings', 'Best support for legacy files'),\n\t\t],\n\t\tlearnMoreUrl: 'https://nextcloud.com/collaboraonline/',\n\t\tisPrimary: false,\n\t},\n])\n\n/**\n * Get office suite configuration by ID\n *\n * @param id - The suite ID\n * @return The suite configuration or undefined if not found\n */\nexport function getOfficeSuiteById(id: string) {\n\treturn OFFICE_SUITES.find((suite) => suite.id === id)\n}\n\n/**\n * Get office suite configuration by app ID\n *\n * @param appId - The app ID (richdocuments, onlyoffice, etc.)\n * @return The suite configuration or undefined if not found\n */\nexport function getOfficeSuiteByAppId(appId: string) {\n\treturn OFFICE_SUITES.find((suite) => suite.appId === appId)\n}\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n"],"names":["selectedSuiteId","_useModel","__props","headerId","useId","store","useAppsStore","app","computed","isInstalled","cannotInstall","canInstall","_createElementBlock","_normalizeClass","$style","_cache","$event","_createElementVNode","_unref","_openBlock","_hoisted_2","_toDisplayString","t","_createVNode","NcCheckboxRadioSwitch","_Fragment","feature","index","NcButton","_createTextVNode","OFFICE_SUITES","isAllInOne","loadState","isProcessing","ref","getInitialSuite","watch","onSuiteChanged","suite","a","s","disableSuites","disableSuite","canDisable","newSuiteId","oldSuiteId","needForceEnable","showConfirmation","_createBlock","NcNoteCard","_renderList","OfficeSuiteSwitcherItem","route","useRoute","userSettings","useUserSettingsStore","currentCategory","apps","visibleApps","useFilteredApps","AppToolbar","NcEmptyContent","NcLoadingIcon","OfficeSuiteSwitcher","_resolveDynamicComponent","AppGrid","AppTable","$router","$route"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"AppstoreBrowse-BPyqEF5v.chunk.mjs","sources":["../build/frontend/apps/appstore/src/components/AppstoreBrowse/OfficeSuiteSwitcherItem.vue","../build/frontend/apps/appstore/src/service/OfficeSuites.ts","../build/frontend/apps/appstore/src/components/AppstoreBrowse/OfficeSuiteSwitcher.vue","../build/frontend/apps/appstore/src/views/AppstoreBrowse.vue"],"sourcesContent":["\n\n\n\n\n\n\n","/*\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '@nextcloud/l10n'\n\nexport const OFFICE_SUITES = Object.freeze([\n\t{\n\t\tid: 'nextcloud-office',\n\t\tappId: 'eurooffice',\n\t\tname: 'Nextcloud Office',\n\t\tfeatures: [\n\t\t\tt('settings', 'Powered by Euro-Office'),\n\t\t\tt('settings', 'Good Nextcloud integration'),\n\t\t\tt('settings', 'Open source'),\n\t\t\tt('settings', 'Best performance'),\n\t\t\tt('settings', 'Limited ODF compatibility'),\n\t\t\tt('settings', 'Best Microsoft compatibility'),\n\t\t],\n\t\tlearnMoreUrl: 'https://github.com/Euro-Office',\n\t\tisPrimary: true,\n\t},\n\t{\n\t\tid: 'collabora-office',\n\t\tappId: 'richdocuments',\n\t\tname: 'Collabora Office',\n\t\tfeatures: [\n\t\t\tt('settings', 'Best Nextcloud integration'),\n\t\t\tt('settings', 'Open source'),\n\t\t\tt('settings', 'Good performance'),\n\t\t\tt('settings', 'Best security: documents never leave your server'),\n\t\t\tt('settings', 'Best ODF compatibility'),\n\t\t\tt('settings', 'Best support for legacy files'),\n\t\t],\n\t\tlearnMoreUrl: 'https://nextcloud.com/collaboraonline/',\n\t\tisPrimary: false,\n\t},\n])\n\n/**\n * Get office suite configuration by ID\n *\n * @param id - The suite ID\n * @return The suite configuration or undefined if not found\n */\nexport function getOfficeSuiteById(id: string) {\n\treturn OFFICE_SUITES.find((suite) => suite.id === id)\n}\n\n/**\n * Get office suite configuration by app ID\n *\n * @param appId - The app ID (richdocuments, onlyoffice, etc.)\n * @return The suite configuration or undefined if not found\n */\nexport function getOfficeSuiteByAppId(appId: string) {\n\treturn OFFICE_SUITES.find((suite) => suite.appId === appId)\n}\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n"],"names":["selectedSuiteId","_useModel","__props","headerId","useId","store","useAppsStore","app","computed","isInstalled","cannotInstall","canInstall","_createElementBlock","_normalizeClass","$style","_cache","$event","_createElementVNode","_unref","_openBlock","_hoisted_2","_toDisplayString","t","_createVNode","NcCheckboxRadioSwitch","_Fragment","feature","index","NcButton","_createTextVNode","OFFICE_SUITES","isAllInOne","loadState","isProcessing","ref","getInitialSuite","watch","onSuiteChanged","suite","a","s","disableSuites","disableSuite","canDisable","newSuiteId","oldSuiteId","needForceEnable","showConfirmation","_createBlock","NcNoteCard","_renderList","OfficeSuiteSwitcherItem","route","useRoute","userSettings","useUserSettingsStore","currentCategory","apps","visibleApps","useFilteredApps","AppToolbar","NcEmptyContent","NcLoadingIcon","OfficeSuiteSwitcher","_resolveDynamicComponent","AppGrid","AppTable","$router","$route"],"mappings":"kmFAeA,MAAMA,EAAkBC,EAA0BC,EAAC,UAAU,EAOvDC,EAAWC,EAAA,EACXC,EAAQC,EAAA,EAERC,EAAMC,EAAS,IAAMH,EAAM,WAAWH,EAAA,MAAM,KAAK,CAAC,EAClDO,EAAcD,EAAS,IAAM,CAAC,CAACD,EAAI,OAAO,SAAS,EACnDG,EAAgBF,EAAS,IAAM,CAACD,EAAI,OAAU,CAACE,EAAY,OAAS,CAACE,EAAWJ,EAAI,KAAM,CAAE,oBAIjGK,EA4BM,MAAA,CA3BJ,MAAKC,EAAA,CAAGC,EAAAA,OAAO,wBAAuB,CAAQA,CAAAA,EAAAA,OAAO,gCAAgC,EAAGd,UAAoBE,EAAA,MAAM,EAAA,IAGlH,QAAKa,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAEhB,EAAA,MAAkBE,EAAA,MAAM,GAAA,GAChCe,EAcM,MAAA,CAdA,MAAKJ,EAAEC,EAAAA,OAAO,+BAA+B,CAAA,GAClDG,EAGK,KAAA,CAHA,GAAIC,EAAAf,CAAA,EAAW,MAAKU,EAAEC,EAAAA,OAAO,8BAA8B,CAAA,OAC5DZ,EAAA,MAAM,IAAI,EAAG,IAChB,CAAA,EAAYO,EAAA,OAAZU,IAAAP,EAAkE,OAAAQ,GAAzC,IAACC,EAAGH,EAAAI,CAAA,2BAA6B,IAAC,CAAA,oBAE5DC,EAQeL,EAAAM,CAAA,EAAA,YAPLxB,EAAA,2CAAAA,EAAe,MAAAgB,GACvB,kBAAiBE,EAAAf,CAAA,EACjB,SAAUO,EAAA,MACV,QAASR,EAAA,QACV,KAAK,QACL,KAAK,eACJ,MAAOA,EAAA,MAAM,GACb,sBAAD,IAAA,CAAA,EAAW,CAAA,MAAA,CAAA,EAAA,4EAEbe,EAIK,KAAA,CAJA,aAAYC,EAAAI,CAAA,EAAC,WAAA,UAAA,EAA2B,MAAKT,EAAEC,EAAAA,OAAO,iCAAiC,CAAA,IAC3FK,EAAA,EAAA,EAAAP,EAEKa,SAF0BvB,EAAA,MAAM,SAAQ,CAAjCwB,EAASC,KAArBR,EAAA,EAAAP,EAEK,KAAA,CAF2C,IAAKe,CAAA,IACjDD,CAAO,EAAA,CAAA,kBAGZH,EAEWL,EAAAU,CAAA,EAAA,CAFA,KAAM1B,EAAA,MAAM,aAAe,sBAAD,IAAA,CAAA,EAAW,CAAA,MAAA,CAAA,EAAA,aAC/C,IAAiC,CAA9B2B,EAAAR,EAAAH,EAAAI,CAAA,4BAA8B,KAClC,CAAA,CAAA,0iBCnDWQ,EAAgB,OAAO,OAAO,CAC1C,CACC,GAAI,mBACJ,MAAO,aACP,KAAM,mBACN,SAAU,CACTR,EAAE,WAAY,wBAAwB,EACtCA,EAAE,WAAY,4BAA4B,EAC1CA,EAAE,WAAY,aAAa,EAC3BA,EAAE,WAAY,kBAAkB,EAChCA,EAAE,WAAY,2BAA2B,EACzCA,EAAE,WAAY,8BAA8B,CAAA,EAE7C,aAAc,iCACd,UAAW,EAAA,EAEZ,CACC,GAAI,mBACJ,MAAO,gBACP,KAAM,mBACN,SAAU,CACTA,EAAE,WAAY,4BAA4B,EAC1CA,EAAE,WAAY,aAAa,EAC3BA,EAAE,WAAY,kBAAkB,EAChCA,EAAE,WAAY,kDAAkD,EAChEA,EAAE,WAAY,wBAAwB,EACtCA,EAAE,WAAY,+BAA+B,CAAA,EAE9C,aAAc,yCACd,UAAW,EAAA,CAEb,CAAC,8CCrBD,MAAMjB,EAAQC,EAAA,EACRyB,EAAaC,EAAU,WAAY,aAAc,EAAK,EAEtDC,EAAeC,EAAI,EAAK,EACxBlC,EAAkBkC,EAAmBC,GAAiB,EAC5DC,EAAMpC,EAAiBqC,CAAc,EAKrC,SAASF,GAAkB,CAC1B,UAAWG,KAASR,EAAe,CAClC,MAAMvB,EAAMF,EAAM,KAAK,KAAMkC,GAAMA,EAAE,KAAOD,EAAM,OAASC,EAAE,SAAS,EACtE,GAAIhC,GAAOA,EAAI,OACd,OAAO+B,EAAM,EAEf,CACA,OAAOR,EAAc,KAAMU,GAAMA,EAAE,SAAS,GAAG,IAAM,IACtD,CAKA,SAASC,GAAgB,CACxBzC,EAAgB,MAAQ,IACzB,CAOA,eAAe0C,EAAaJ,EAAqC,CAChE,MAAM/B,EAAMF,EAAM,WAAWiC,EAAM,KAAK,EACnC/B,GAIDoC,EAAWpC,CAAG,GACjB,MAAMF,EAAM,WAAWiC,EAAM,KAAK,CAEpC,CAQA,eAAeD,EAAeO,EAA2BC,EAA2B,CACnF,GAAI,EAAAZ,EAAa,OAASW,IAAeC,GAIzC,GAAI,CACHZ,EAAa,MAAQ,GACrB,MAAMK,EAAQR,EAAc,KAAMU,GAAMA,EAAE,KAAOI,CAAU,EAC3D,GAAI,CAACN,EAAO,CAEX,UAAWE,KAAKV,EACf,MAAMY,EAAaF,CAAC,EAErB,MACD,CAEA,MAAMjC,EAAMF,EAAM,WAAWiC,EAAM,KAAK,EACxC,GAAIQ,EAAgBvC,CAAG,EAStB,GARe,MAAMwC,EAAiB,CACrC,KAAMzB,EAAE,WAAY,wBAAyB,CAAE,MAAOgB,EAAM,KAAM,EAClE,KAAMhB,EAAE,WAAY,0IAA2I,CAAE,MAAOgB,EAAM,KAAM,EACpL,aAAchB,EAAE,WAAY,cAAc,EAC1C,YAAaA,EAAE,WAAY,QAAQ,EACnC,SAAU,SAAA,CACV,EAGA,MAAMjB,EAAM,UAAUiC,EAAM,MAAO,EAAI,MACjC,CAENtC,EAAgB,MAAQ6C,EACxB,MACD,CAID,UAAWL,KAAKV,EACXU,EAAE,KAAOI,EACZ,MAAMvC,EAAM,UAAUmC,EAAE,KAAK,EAE7B,MAAME,EAAaF,CAAC,CAGvB,SACCP,EAAa,MAAQ,EACtB,CACD,cAImBf,EAAAa,CAAA,OAAlBiB,EAGa9B,EAAA+B,CAAA,EAAA,OAHiB,KAAK,MAAA,aAClC,IAA2G,CAA3GhC,EAA2G,WAArGC,EAAAI,CAAA,EAAC,WAAA,+EAAA,CAAA,EAAA,CAAA,EACPL,EAA2F,WAArFC,EAAAI,CAAA,EAAC,WAAA,+DAAA,CAAA,EAAA,CAAA,CAAA,eAGRV,EAmBU,UAAA,OAnBO,MAAKC,EAAEC,EAAAA,OAAO,mBAAmB,CAAA,GACjDG,EAEK,KAAA,CAFA,MAAKJ,EAAEC,EAAAA,OAAO,0BAA0B,CAAA,IACzCI,EAAAI,CAAA,EAAC,WAAA,qCAAA,CAAA,EAAA,CAAA,EAELL,EAAuF,WAAjFC,EAAAI,CAAA,EAAC,WAAA,2DAAA,CAAA,EAAA,CAAA,EACPL,EAQW,WAAA,CARA,MAAKJ,EAAEC,EAAAA,OAAO,0BAA0B,CAAA,UAClDF,EAM2Ba,EAAA,KAAAyB,EALVhC,EAAAY,CAAA,EAATQ,QADRU,EAM2BG,GAAA,CAJzB,IAAKb,EAAM,GACJ,SAAUtC,EAAA,yCAAAA,EAAe,MAAAgB,GAChC,MAAKH,EAAEC,EAAAA,OAAO,8BAA8B,EAC5C,MAAAwB,EACA,QAASL,EAAA,KAAA,6DAEZhB,EAIM,MAAA,CAJA,MAAKJ,EAAEC,EAAAA,OAAO,4BAA4B,CAAA,GAC/CS,EAEWL,EAAAU,CAAA,EAAA,CAFA,UAAW5B,EAAA,MAAkB,QAAOyC,CAAA,aAC9C,IAA4C,KAAzCvB,EAAAI,CAAA,EAAC,WAAA,uBAAA,CAAA,EAAA,CAAA,CAAA,mfCrHR,MAAM8B,EAAQC,EAAA,EACRhD,EAAQC,EAAA,EACRgD,EAAeC,GAAA,EAEfC,EAAkBhD,EAAS,IAAM4C,EAAM,OAAQ,QAAkB,EACjEK,EAAOjD,EAAS,IACjBgD,EAAgB,QAAU,WACtBnD,EAAM,KAAK,OAAQE,GAAQA,EAAI,QAAU,GAAG,EACzCiD,EAAgB,QAAU,YAC7BnD,EAAM,KAAK,OAAQE,GAAQA,EAAI,QAAU,GAAG,EAE7CF,EAAM,kBAAkBmD,EAAgB,KAAK,CACpD,EAEKE,EAAcC,EAAgBF,CAAI,8BAIvClC,EAAcqC,CAAA,EAIP1C,EAAAb,CAAA,EAAM,mBADb2C,EAMiB9B,EAAA2C,CAAA,EAAA,OAJf,KAAM3C,EAAAI,CAAA,EAAC,WAAA,kBAAA,CAAA,GACG,OACV,IAA4B,CAA5BC,EAA4BL,EAAA4C,CAAA,EAAA,CAAZ,KAAM,GAAE,CAAA,0BAI1BlD,EAiBWa,EAAA,CAAA,IAAA,GAAA,CAhBiB+B,EAAA,QAAe,cAA1CR,EAA2De,GAAA,CAAA,IAAA,CAAA,CAAA,YAIpD7C,EAAAwC,CAAA,EAAY,QAFnBvC,IAAA6B,EAIuBgB,EAHjB9C,EAAAoC,CAAA,EAAa,WAAaW,EAAUC,EAAQ,EAAA,OAEhD,MAAKrD,EAAEC,EAAAA,OAAO,cAAc,EAC5B,KAAMI,EAAAwC,CAAA,CAAA,iCACRV,EAQiB9B,EAAA2C,CAAA,EAAA,OANf,KAAM3C,EAAAI,CAAA,EAAC,WAAA,wBAAA,CAAA,GACG,SACV,IAEW,CAFXC,EAEWL,EAAAU,CAAA,EAAA,CAFD,QAAQ,UAAW,uBAAOuC,EAAAA,QAAQ,KAAI,CAAA,MAAUC,EAAAA,OAAO,MAAK,KAAA,cAAA,EAAA,aACrE,IAAwC,KAArClD,EAAAI,CAAA,EAAC,WAAA,mBAAA,CAAA,EAAA,CAAA,CAAA"} \ No newline at end of file diff --git a/dist/AppstoreBrowse-DO4WaaxR.chunk.mjs.map.license b/dist/AppstoreBrowse-BPyqEF5v.chunk.mjs.map.license similarity index 100% rename from dist/AppstoreBrowse-DO4WaaxR.chunk.mjs.map.license rename to dist/AppstoreBrowse-BPyqEF5v.chunk.mjs.map.license diff --git a/dist/AppstoreDiscover-WjjPyuuv.chunk.mjs b/dist/AppstoreDiscover-_AsCdJWP.chunk.mjs similarity index 83% rename from dist/AppstoreDiscover-WjjPyuuv.chunk.mjs rename to dist/AppstoreDiscover-_AsCdJWP.chunk.mjs index f2574640ee8..a79667fe967 100644 --- a/dist/AppstoreDiscover-WjjPyuuv.chunk.mjs +++ b/dist/AppstoreDiscover-_AsCdJWP.chunk.mjs @@ -1,3 +1,3 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/DiscoverTypePost-iZg8MLG2.chunk.mjs'),window.OC.filePath('', '', 'dist/mdi-Lt-19ASw.chunk.mjs'),window.OC.filePath('', '', 'dist/logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs'),window.OC.filePath('', '', 'dist/Web-BwmPK40i.chunk.mjs'),window.OC.filePath('', '', 'dist/public-C1mLBHT3.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs'),window.OC.filePath('', '', 'dist/translation-DoG5ZELJ-CFYnqluG.chunk.mjs'),window.OC.filePath('', '', 'dist/index-B-dGqfIG.chunk.mjs'),window.OC.filePath('', '', 'dist/common-createElementId-DhjFt1I9-C_oBIsvc.chunk.css'),window.OC.filePath('', '', 'dist/common-logger-D3RVzcfQ-BE3lcFW4.chunk.css'),window.OC.filePath('', '', 'dist/common-mdi-BWNFKLbC.chunk.css'),window.OC.filePath('', '', 'dist/index-DlyLvrtV.chunk.mjs'),window.OC.filePath('', '', 'dist/appstore-main.mjs'),window.OC.filePath('', '', 'dist/pinia-CLibr4cC.chunk.mjs'),window.OC.filePath('', '', 'dist/NcContent-BhMoPROW-DisoN_bw.chunk.mjs'),window.OC.filePath('', '', 'dist/NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcModal-DUWLRm_F-BsKc2RT9.chunk.css'),window.OC.filePath('', '', 'dist/common-NcContent-BhMoPROW-CuEPejA5.chunk.css'),window.OC.filePath('', '', 'dist/PencilOutline-CJ2aSuY5.chunk.mjs'),window.OC.filePath('', '', 'dist/common-PencilOutline-B3DMd8SU.chunk.css'),window.OC.filePath('', '', 'dist/NcTextArea-Dxzj4zdb-stc727hj.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BOH7nBEM.chunk.mjs'),window.OC.filePath('', '', 'dist/TrashCanOutline-Cv7t-yKN.chunk.mjs'),window.OC.filePath('', '', 'dist/common-TrashCanOutline-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/common-index-980JFXIN.chunk.css'),window.OC.filePath('', '', 'dist/TrayArrowDown-BI3qCRD6.chunk.mjs'),window.OC.filePath('', '', 'dist/common-TrayArrowDown-CaC9_ffV.chunk.css'),window.OC.filePath('', '', 'dist/NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcInputField-B1bGxYHt-BYHxARP-.chunk.css'),window.OC.filePath('', '', 'dist/index-BW4M2n71.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index-DYA_tnKg.chunk.css'),window.OC.filePath('', '', 'dist/NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BLNGy7h5.chunk.mjs'),window.OC.filePath('', '', 'dist/util-Alk1iwuj.chunk.mjs'),window.OC.filePath('', '', 'dist/ArrowRight-DKsMJImQ.chunk.mjs'),window.OC.filePath('', '', 'dist/common-ArrowRight-vZpQWIqF.chunk.css'),window.OC.filePath('', '', 'dist/colors-BDeMBgfq-BQ_6MaUU.chunk.mjs'),window.OC.filePath('', '', 'dist/NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcUserStatusIcon-DsviB2Cr-Bq_6hmXG.chunk.css'),window.OC.filePath('', '', 'dist/NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcDateTime-b9UhLDij.chunk.css'),window.OC.filePath('', '', 'dist/common-NcAvatar-M3-CbKbq-DTVmI7NO.chunk.css'),window.OC.filePath('', '', 'dist/NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcEmptyContent-CGAPqk4S-Don1d5Bd.chunk.css'),window.OC.filePath('', '', 'dist/NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs'),window.OC.filePath('', '', 'dist/NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcPasswordField-Be5_qcfm-Crp_EMfV.chunk.css'),window.OC.filePath('', '', 'dist/NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcBreadcrumbs-5gl8Syfa-CfbvucBX.chunk.css'),window.OC.filePath('', '', 'dist/common-NcTextArea-Dxzj4zdb-B-B2llha.chunk.css'),window.OC.filePath('', '', 'dist/NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcCheckboxRadioSwitch-D8Dfv4iw-CPGkDj-p.chunk.css'),window.OC.filePath('', '', 'dist/Plus-DYmK9QaT.chunk.mjs'),window.OC.filePath('', '', 'dist/common-Plus-Som-mR4B.chunk.css'),window.OC.filePath('', '', 'dist/index-BoBLp2fu.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index-bfXBK-tQ.chunk.css'),window.OC.filePath('', '', 'dist/index-CMXcwXc6.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index--xyrXnuf.chunk.css'),window.OC.filePath('', '', 'dist/NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs'),window.OC.filePath('', '', 'dist/emoji-C8k9NUlo-rFKNlNNR.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcEmojiPicker-Bpw-68QP-ChsL0oK6.chunk.css'),window.OC.filePath('', '', 'dist/index-C_wPY1fR.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index-CpSoVYoo.chunk.css'),window.OC.filePath('', '', 'dist/index-xEyWukTf.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index-MZEZ7XGj.chunk.css'),window.OC.filePath('', '', 'dist/NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs'),window.OC.filePath('', '', 'dist/ContentCopy-BF1gBM5z.chunk.mjs'),window.OC.filePath('', '', 'dist/common-ContentCopy-D7mIRwIy.chunk.css'),window.OC.filePath('', '', 'dist/NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcUserBubble-CDQa0hGy-f2DD9EAL.chunk.css'),window.OC.filePath('', '', 'dist/modulepreload-polyfill-BxzAKjcf.chunk.mjs'),window.OC.filePath('', '', 'dist/index-DL1yHC1K-DnBG6QLJ.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BU6wm4Hd.chunk.mjs'),window.OC.filePath('', '', 'dist/appstore-appstore-main-fIugqNvM.chunk.css'),window.OC.filePath('', '', 'dist/common-NcActionSeparator-Ct2RnclR-pXJ_-D_I.chunk.css'),window.OC.filePath('', '', 'dist/common-NcGuestContent-j8ai4O1K-D0718NyY.chunk.css'),window.OC.filePath('', '', 'dist/common-DiscoverTypePost-CpeIz2iE.chunk.css'),window.OC.filePath('', '', 'dist/DiscoverTypeCarousel-BKROD9d-.chunk.mjs'),window.OC.filePath('', '', 'dist/appstore-DiscoverTypeCarousel--4FoDSYW.chunk.css'),window.OC.filePath('', '', 'dist/DiscoverTypeShowcase-D91mSUxk.chunk.mjs'),window.OC.filePath('', '', 'dist/AppstoreSearch-CPzSIsIZ.chunk.mjs'),window.OC.filePath('', '', 'dist/common-AppstoreSearch-CAiP7JM1.chunk.css'),window.OC.filePath('', '', 'dist/appstore-DiscoverTypeShowcase-BsnvP-Fa.chunk.css')])))=>i.map(i=>d[i]); -import{b as _,A as x,o as i,c as u,w as v,k as y,u as e,f as h,F as A,B as N,m as C,C as I,l as w,a as d,_ as l}from"./Web-BwmPK40i.chunk.mjs";import{e as L}from"./mdi-Lt-19ASw.chunk.mjs";import{a as O}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{t as p}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{N as D}from"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import{N as P}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{N as R}from"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{c as T}from"./index-BLNGy7h5.chunk.mjs";import{c as V}from"./index-B-dGqfIG.chunk.mjs";import{l as g}from"./appstore-main.mjs";import{_ as b}from"./public-C1mLBHT3.chunk.mjs";import"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./pinia-CLibr4cC.chunk.mjs";import"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./NcTextArea-Dxzj4zdb-stc727hj.chunk.mjs";import"./index-BOH7nBEM.chunk.mjs";import"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs";import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";/* empty css */import"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import"./index-CMXcwXc6.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./index-C_wPY1fR.chunk.mjs";/* empty css */import"./index-xEyWukTf.chunk.mjs";import"./NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs";import"./ContentCopy-BF1gBM5z.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./index-DlyLvrtV.chunk.mjs";import"./modulepreload-polyfill-BxzAKjcf.chunk.mjs";import"./index-BU6wm4Hd.chunk.mjs";function z(o){const t={...o};if(t.date&&(t.date=Date.parse(t.date)),t.expiryDate&&(t.expiryDate=Date.parse(t.expiryDate)),t.type==="post"||t.type==="showcase"||t.type==="carousel")return t;throw new Error(`Invalid argument, app discover element with type ${o.type??"unknown"} is unknown`)}function F(o){const t=Date.now();return!(o.date&&o.date>t||o.expiryDate&&o.expiryDate(s.order??1/0)<(n.order??1/0)?-1:1),a}function q(o){for(let t=o.length-1;t>0;t--){const a=Math.floor(Math.random()*(t+1));[o[t],o[a]]=[o[a],o[t]]}return o}async function B(){const o=await T.get(V("/apps/appstore/api/v1/discover")),{data:t}=o.data.ocs;return t}const U={key:2,class:"app-discover"},$=_({__name:"AppstoreDiscover",setup(o){const t=d(()=>l(()=>import("./DiscoverTypePost-iZg8MLG2.chunk.mjs").then(r=>r.a),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76]),import.meta.url)),a=d(()=>l(()=>import("./DiscoverTypeCarousel-BKROD9d-.chunk.mjs"),__vite__mapDeps([77,3,4,1,2,5,6,7,8,9,10,0,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,78]),import.meta.url)),s=d(()=>l(()=>import("./DiscoverTypeShowcase-D91mSUxk.chunk.mjs"),__vite__mapDeps([79,11,3,4,80,6,7,2,5,8,9,42,43,22,23,12,13,14,15,16,17,18,19,20,21,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,1,10,63,64,65,66,67,68,69,70,71,72,73,74,75,81,0,76,82]),import.meta.url)),n=w(!1),m=w([]);x(async()=>{try{m.value=await M()}catch(r){n.value=!0,g.error(r),O(p("appstore","Could not load app discover section"))}});function k(r){return r==="post"?t:r==="carousel"?a:r==="showcase"?s:_({mounted:()=>g.error("Unknown component requested ",r),render:f=>f("div",p("appstore","Could not render element"))})}return(r,f)=>n.value?(i(),u(e(D),{key:0,name:e(p)("appstore","Nothing to show"),description:e(p)("appstore","Could not load section content from app store.")},{icon:v(()=>[y(e(P),{path:e(L),size:64},null,8,["path"])]),_:1},8,["name","description"])):m.value.length===0?(i(),u(e(D),{key:1,name:e(p)("appstore","Loading"),description:e(p)("appstore","Fetching the latest news…")},{icon:v(()=>[y(e(R),{size:64})]),_:1},8,["name","description"])):(i(),h("div",U,[(i(!0),h(A,null,N(m.value,(c,E)=>(i(),u(I(k(c.type)),C({key:c.id??E},{ref_for:!0},c),null,16))),128))]))}}),bt=b($,[["__scopeId","data-v-daf7ec3e"]]);export{bt as default}; -//# sourceMappingURL=AppstoreDiscover-WjjPyuuv.chunk.mjs.map +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/DiscoverTypePost-iZg8MLG2.chunk.mjs'),window.OC.filePath('', '', 'dist/mdi-Lt-19ASw.chunk.mjs'),window.OC.filePath('', '', 'dist/logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs'),window.OC.filePath('', '', 'dist/Web-BwmPK40i.chunk.mjs'),window.OC.filePath('', '', 'dist/public-C1mLBHT3.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs'),window.OC.filePath('', '', 'dist/translation-DoG5ZELJ-CFYnqluG.chunk.mjs'),window.OC.filePath('', '', 'dist/index-B-dGqfIG.chunk.mjs'),window.OC.filePath('', '', 'dist/common-createElementId-DhjFt1I9-C_oBIsvc.chunk.css'),window.OC.filePath('', '', 'dist/common-logger-D3RVzcfQ-BE3lcFW4.chunk.css'),window.OC.filePath('', '', 'dist/common-mdi-BWNFKLbC.chunk.css'),window.OC.filePath('', '', 'dist/index-DlyLvrtV.chunk.mjs'),window.OC.filePath('', '', 'dist/appstore-main.mjs'),window.OC.filePath('', '', 'dist/pinia-CLibr4cC.chunk.mjs'),window.OC.filePath('', '', 'dist/NcContent-BhMoPROW-DisoN_bw.chunk.mjs'),window.OC.filePath('', '', 'dist/NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcModal-DUWLRm_F-BsKc2RT9.chunk.css'),window.OC.filePath('', '', 'dist/common-NcContent-BhMoPROW-CuEPejA5.chunk.css'),window.OC.filePath('', '', 'dist/PencilOutline-CJ2aSuY5.chunk.mjs'),window.OC.filePath('', '', 'dist/common-PencilOutline-B3DMd8SU.chunk.css'),window.OC.filePath('', '', 'dist/NcTextArea-Dxzj4zdb-BPZd41PF.chunk.mjs'),window.OC.filePath('', '', 'dist/index-dqLzhRZM.chunk.mjs'),window.OC.filePath('', '', 'dist/TrashCanOutline-Cv7t-yKN.chunk.mjs'),window.OC.filePath('', '', 'dist/common-TrashCanOutline-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/common-index-BWhNCeJl.chunk.css'),window.OC.filePath('', '', 'dist/TrayArrowDown-BI3qCRD6.chunk.mjs'),window.OC.filePath('', '', 'dist/common-TrayArrowDown-CaC9_ffV.chunk.css'),window.OC.filePath('', '', 'dist/NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcInputField-B1bGxYHt-BYHxARP-.chunk.css'),window.OC.filePath('', '', 'dist/index-BW4M2n71.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index-DYA_tnKg.chunk.css'),window.OC.filePath('', '', 'dist/NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BLNGy7h5.chunk.mjs'),window.OC.filePath('', '', 'dist/util-Alk1iwuj.chunk.mjs'),window.OC.filePath('', '', 'dist/ArrowRight-DKsMJImQ.chunk.mjs'),window.OC.filePath('', '', 'dist/common-ArrowRight-vZpQWIqF.chunk.css'),window.OC.filePath('', '', 'dist/colors-BDeMBgfq-BQ_6MaUU.chunk.mjs'),window.OC.filePath('', '', 'dist/NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcUserStatusIcon-DsviB2Cr-Bq_6hmXG.chunk.css'),window.OC.filePath('', '', 'dist/NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcDateTime-b9UhLDij.chunk.css'),window.OC.filePath('', '', 'dist/common-NcAvatar-M3-CbKbq-DTVmI7NO.chunk.css'),window.OC.filePath('', '', 'dist/NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcEmptyContent-CGAPqk4S-Don1d5Bd.chunk.css'),window.OC.filePath('', '', 'dist/NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs'),window.OC.filePath('', '', 'dist/NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcPasswordField-Be5_qcfm-Crp_EMfV.chunk.css'),window.OC.filePath('', '', 'dist/NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcBreadcrumbs-5gl8Syfa-CfbvucBX.chunk.css'),window.OC.filePath('', '', 'dist/common-NcTextArea-Dxzj4zdb-CzDMVgRO.chunk.css'),window.OC.filePath('', '', 'dist/NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcCheckboxRadioSwitch-D8Dfv4iw-CPGkDj-p.chunk.css'),window.OC.filePath('', '', 'dist/Plus-DYmK9QaT.chunk.mjs'),window.OC.filePath('', '', 'dist/common-Plus-Som-mR4B.chunk.css'),window.OC.filePath('', '', 'dist/index-BoBLp2fu.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index-bfXBK-tQ.chunk.css'),window.OC.filePath('', '', 'dist/index-CQct0mOs.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index--xyrXnuf.chunk.css'),window.OC.filePath('', '', 'dist/NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs'),window.OC.filePath('', '', 'dist/emoji-C8k9NUlo-rFKNlNNR.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcEmojiPicker-Bpw-68QP-ChsL0oK6.chunk.css'),window.OC.filePath('', '', 'dist/index-BrjNu3x_.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index-CpSoVYoo.chunk.css'),window.OC.filePath('', '', 'dist/index-CcOuN-F7.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index-MZEZ7XGj.chunk.css'),window.OC.filePath('', '', 'dist/NcSelectTags-D7qWNjXa-gqJ9LLZU.chunk.mjs'),window.OC.filePath('', '', 'dist/ContentCopy-BF1gBM5z.chunk.mjs'),window.OC.filePath('', '', 'dist/common-ContentCopy-D7mIRwIy.chunk.css'),window.OC.filePath('', '', 'dist/NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcUserBubble-CDQa0hGy-f2DD9EAL.chunk.css'),window.OC.filePath('', '', 'dist/modulepreload-polyfill-BxzAKjcf.chunk.mjs'),window.OC.filePath('', '', 'dist/index-DL1yHC1K-BJ_TsAjb.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BU6wm4Hd.chunk.mjs'),window.OC.filePath('', '', 'dist/appstore-appstore-main-C0vSpMnG.chunk.css'),window.OC.filePath('', '', 'dist/common-NcActionSeparator-Ct2RnclR-pXJ_-D_I.chunk.css'),window.OC.filePath('', '', 'dist/common-NcGuestContent-j8ai4O1K-D0718NyY.chunk.css'),window.OC.filePath('', '', 'dist/common-DiscoverTypePost-CpeIz2iE.chunk.css'),window.OC.filePath('', '', 'dist/DiscoverTypeCarousel-BE61ZNsb.chunk.mjs'),window.OC.filePath('', '', 'dist/appstore-DiscoverTypeCarousel--4FoDSYW.chunk.css'),window.OC.filePath('', '', 'dist/DiscoverTypeShowcase-BRB4lIfH.chunk.mjs'),window.OC.filePath('', '', 'dist/AppstoreSearch-CZQ7JcU9.chunk.mjs'),window.OC.filePath('', '', 'dist/common-AppstoreSearch-B0Bi-bRK.chunk.css'),window.OC.filePath('', '', 'dist/appstore-DiscoverTypeShowcase-BsnvP-Fa.chunk.css')])))=>i.map(i=>d[i]); +import{b as _,A as x,o as i,c as u,w as v,k as y,u as e,f as h,F as A,B as N,m as C,C as I,l as w,a as d,_ as l}from"./Web-BwmPK40i.chunk.mjs";import{e as L}from"./mdi-Lt-19ASw.chunk.mjs";import{a as O}from"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import{t as p}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{N as D}from"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import{N as P}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{N as R}from"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{c as T}from"./index-BLNGy7h5.chunk.mjs";import{c as V}from"./index-B-dGqfIG.chunk.mjs";import{l as g}from"./appstore-main.mjs";import{_ as b}from"./public-C1mLBHT3.chunk.mjs";import"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./pinia-CLibr4cC.chunk.mjs";import"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./NcTextArea-Dxzj4zdb-BPZd41PF.chunk.mjs";import"./index-dqLzhRZM.chunk.mjs";import"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs";import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";/* empty css */import"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import"./index-CQct0mOs.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./index-BrjNu3x_.chunk.mjs";/* empty css */import"./index-CcOuN-F7.chunk.mjs";import"./NcSelectTags-D7qWNjXa-gqJ9LLZU.chunk.mjs";import"./ContentCopy-BF1gBM5z.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./index-DlyLvrtV.chunk.mjs";import"./modulepreload-polyfill-BxzAKjcf.chunk.mjs";import"./index-BU6wm4Hd.chunk.mjs";function z(o){const t={...o};if(t.date&&(t.date=Date.parse(t.date)),t.expiryDate&&(t.expiryDate=Date.parse(t.expiryDate)),t.type==="post"||t.type==="showcase"||t.type==="carousel")return t;throw new Error(`Invalid argument, app discover element with type ${o.type??"unknown"} is unknown`)}function F(o){const t=Date.now();return!(o.date&&o.date>t||o.expiryDate&&o.expiryDate(s.order??1/0)<(n.order??1/0)?-1:1),a}function q(o){for(let t=o.length-1;t>0;t--){const a=Math.floor(Math.random()*(t+1));[o[t],o[a]]=[o[a],o[t]]}return o}async function B(){const o=await T.get(V("/apps/appstore/api/v1/discover")),{data:t}=o.data.ocs;return t}const U={key:2,class:"app-discover"},$=_({__name:"AppstoreDiscover",setup(o){const t=d(()=>l(()=>import("./DiscoverTypePost-iZg8MLG2.chunk.mjs").then(r=>r.a),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76]),import.meta.url)),a=d(()=>l(()=>import("./DiscoverTypeCarousel-BE61ZNsb.chunk.mjs"),__vite__mapDeps([77,3,4,1,2,5,6,7,8,9,10,0,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,78]),import.meta.url)),s=d(()=>l(()=>import("./DiscoverTypeShowcase-BRB4lIfH.chunk.mjs"),__vite__mapDeps([79,11,3,4,80,6,7,2,5,8,9,42,43,22,23,12,13,14,15,16,17,18,19,20,21,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,1,10,63,64,65,66,67,68,69,70,71,72,73,74,75,81,0,76,82]),import.meta.url)),n=w(!1),m=w([]);x(async()=>{try{m.value=await M()}catch(r){n.value=!0,g.error(r),O(p("appstore","Could not load app discover section"))}});function k(r){return r==="post"?t:r==="carousel"?a:r==="showcase"?s:_({mounted:()=>g.error("Unknown component requested ",r),render:f=>f("div",p("appstore","Could not render element"))})}return(r,f)=>n.value?(i(),u(e(D),{key:0,name:e(p)("appstore","Nothing to show"),description:e(p)("appstore","Could not load section content from app store.")},{icon:v(()=>[y(e(P),{path:e(L),size:64},null,8,["path"])]),_:1},8,["name","description"])):m.value.length===0?(i(),u(e(D),{key:1,name:e(p)("appstore","Loading"),description:e(p)("appstore","Fetching the latest news…")},{icon:v(()=>[y(e(R),{size:64})]),_:1},8,["name","description"])):(i(),h("div",U,[(i(!0),h(A,null,N(m.value,(c,E)=>(i(),u(I(k(c.type)),C({key:c.id??E},{ref_for:!0},c),null,16))),128))]))}}),bt=b($,[["__scopeId","data-v-daf7ec3e"]]);export{bt as default}; +//# sourceMappingURL=AppstoreDiscover-_AsCdJWP.chunk.mjs.map diff --git a/dist/AppstoreDiscover-WjjPyuuv.chunk.mjs.license b/dist/AppstoreDiscover-_AsCdJWP.chunk.mjs.license similarity index 100% rename from dist/AppstoreDiscover-WjjPyuuv.chunk.mjs.license rename to dist/AppstoreDiscover-_AsCdJWP.chunk.mjs.license diff --git a/dist/AppstoreDiscover-WjjPyuuv.chunk.mjs.map b/dist/AppstoreDiscover-_AsCdJWP.chunk.mjs.map similarity index 99% rename from dist/AppstoreDiscover-WjjPyuuv.chunk.mjs.map rename to dist/AppstoreDiscover-_AsCdJWP.chunk.mjs.map index 427cc1adccc..b5e87ee0412 100644 --- a/dist/AppstoreDiscover-WjjPyuuv.chunk.mjs.map +++ b/dist/AppstoreDiscover-_AsCdJWP.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"mappings":"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","names":["parseApiResponse","element","appElement","filterElements","now","getDiscoverElements","data","loadDiscoverElements","parsedElements","shuffledElements","shuffleArray","a","b","array","i","j","response","axios","generateOcsUrl","PostType","defineAsyncComponent","__vitePreload","n","CarouselType","ShowcaseType","hasError","ref","elements","onBeforeMount","error","logger","showError","t","getComponent","type","defineComponent","h","_createBlock","_unref","NcEmptyContent","_createVNode","NcIconSvgWrapper","mdiEyeOffOutline","NcLoadingIcon","_openBlock","_createElementBlock","_hoisted_1","_Fragment","_renderList","entry","index","_resolveDynamicComponent","_mergeProps"],"ignoreList":[],"sources":["../build/frontend/apps/appstore/src/utils/appDiscoverParser.ts","../build/frontend/apps/appstore/src/service/app-discover.ts","../build/frontend/apps/appstore/src/views/AppstoreDiscover.vue"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { IAppDiscoverCarousel, IAppDiscoverElement, IAppDiscoverElements, IAppDiscoverPost, IAppDiscoverShowcase } from '../constants/AppDiscoverTypes.ts'\n\n/**\n * Helper to transform the JSON API results to proper frontend objects (app discover section elements)\n *\n * @param element The JSON API element to transform\n */\nexport function parseApiResponse(element: Record): IAppDiscoverElements {\n\tconst appElement = { ...element }\n\tif (appElement.date) {\n\t\tappElement.date = Date.parse(appElement.date as string)\n\t}\n\tif (appElement.expiryDate) {\n\t\tappElement.expiryDate = Date.parse(appElement.expiryDate as string)\n\t}\n\n\tif (appElement.type === 'post') {\n\t\treturn appElement as unknown as IAppDiscoverPost\n\t} else if (appElement.type === 'showcase') {\n\t\treturn appElement as unknown as IAppDiscoverShowcase\n\t} else if (appElement.type === 'carousel') {\n\t\treturn appElement as unknown as IAppDiscoverCarousel\n\t}\n\tthrow new Error(`Invalid argument, app discover element with type ${element.type ?? 'unknown'} is unknown`)\n}\n\n/**\n * Filter outdated or upcoming elements\n *\n * @param element Element to check\n */\nexport function filterElements(element: IAppDiscoverElement) {\n\tconst now = Date.now()\n\t// Element not yet published\n\tif (element.date && element.date > now) {\n\t\treturn false\n\t}\n\n\t// Element expired\n\tif (element.expiryDate && element.expiryDate < now) {\n\t\treturn false\n\t}\n\treturn true\n}\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { OCSResponse } from '@nextcloud/typings/ocs'\n\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { filterElements, parseApiResponse } from '../utils/appDiscoverParser.ts'\n\n/**\n * Get app discover elements\n */\nexport async function getDiscoverElements() {\n\tconst data = await loadDiscoverElements()\n\tif (data.length === 0) {\n\t\tthrow new Error('No app discover elements available (empty response)')\n\t}\n\n\t// Parse data to ensure dates are useable and then filter out expired or future elements\n\tconst parsedElements = data.map(parseApiResponse)\n\t\t.filter(filterElements)\n\n\t// Shuffle elements to make it looks more interesting\n\tconst shuffledElements = shuffleArray(parsedElements)\n\t// Sort pinned elements first\n\tshuffledElements.sort((a, b) => (a.order ?? Infinity) < (b.order ?? Infinity) ? -1 : 1)\n\treturn shuffledElements\n}\n\n/**\n * Shuffle using the Fisher-Yates algorithm\n *\n * @param array The array to shuffle (in place)\n */\nfunction shuffleArray(array: T[]): T[] {\n\tfor (let i = array.length - 1; i > 0; i--) {\n\t\tconst j = Math.floor(Math.random() * (i + 1));\n\t\t[array[i], array[j]] = [array[j]!, array[i]!]\n\t}\n\treturn array\n}\n\n/**\n * Load discover elements from the API\n */\nasync function loadDiscoverElements() {\n\tconst response = await axios.get[]>>(generateOcsUrl('/apps/appstore/api/v1/discover'))\n\tconst { data } = response.data.ocs\n\treturn data\n}\n","\n\n\n\n\n\n\n"],"file":"AppstoreDiscover-WjjPyuuv.chunk.mjs"} \ No newline at end of file +{"version":3,"mappings":"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","names":["parseApiResponse","element","appElement","filterElements","now","getDiscoverElements","data","loadDiscoverElements","parsedElements","shuffledElements","shuffleArray","a","b","array","i","j","response","axios","generateOcsUrl","PostType","defineAsyncComponent","__vitePreload","n","CarouselType","ShowcaseType","hasError","ref","elements","onBeforeMount","error","logger","showError","t","getComponent","type","defineComponent","h","_createBlock","_unref","NcEmptyContent","_createVNode","NcIconSvgWrapper","mdiEyeOffOutline","NcLoadingIcon","_openBlock","_createElementBlock","_hoisted_1","_Fragment","_renderList","entry","index","_resolveDynamicComponent","_mergeProps"],"ignoreList":[],"sources":["../build/frontend/apps/appstore/src/utils/appDiscoverParser.ts","../build/frontend/apps/appstore/src/service/app-discover.ts","../build/frontend/apps/appstore/src/views/AppstoreDiscover.vue"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { IAppDiscoverCarousel, IAppDiscoverElement, IAppDiscoverElements, IAppDiscoverPost, IAppDiscoverShowcase } from '../constants/AppDiscoverTypes.ts'\n\n/**\n * Helper to transform the JSON API results to proper frontend objects (app discover section elements)\n *\n * @param element The JSON API element to transform\n */\nexport function parseApiResponse(element: Record): IAppDiscoverElements {\n\tconst appElement = { ...element }\n\tif (appElement.date) {\n\t\tappElement.date = Date.parse(appElement.date as string)\n\t}\n\tif (appElement.expiryDate) {\n\t\tappElement.expiryDate = Date.parse(appElement.expiryDate as string)\n\t}\n\n\tif (appElement.type === 'post') {\n\t\treturn appElement as unknown as IAppDiscoverPost\n\t} else if (appElement.type === 'showcase') {\n\t\treturn appElement as unknown as IAppDiscoverShowcase\n\t} else if (appElement.type === 'carousel') {\n\t\treturn appElement as unknown as IAppDiscoverCarousel\n\t}\n\tthrow new Error(`Invalid argument, app discover element with type ${element.type ?? 'unknown'} is unknown`)\n}\n\n/**\n * Filter outdated or upcoming elements\n *\n * @param element Element to check\n */\nexport function filterElements(element: IAppDiscoverElement) {\n\tconst now = Date.now()\n\t// Element not yet published\n\tif (element.date && element.date > now) {\n\t\treturn false\n\t}\n\n\t// Element expired\n\tif (element.expiryDate && element.expiryDate < now) {\n\t\treturn false\n\t}\n\treturn true\n}\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { OCSResponse } from '@nextcloud/typings/ocs'\n\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { filterElements, parseApiResponse } from '../utils/appDiscoverParser.ts'\n\n/**\n * Get app discover elements\n */\nexport async function getDiscoverElements() {\n\tconst data = await loadDiscoverElements()\n\tif (data.length === 0) {\n\t\tthrow new Error('No app discover elements available (empty response)')\n\t}\n\n\t// Parse data to ensure dates are useable and then filter out expired or future elements\n\tconst parsedElements = data.map(parseApiResponse)\n\t\t.filter(filterElements)\n\n\t// Shuffle elements to make it looks more interesting\n\tconst shuffledElements = shuffleArray(parsedElements)\n\t// Sort pinned elements first\n\tshuffledElements.sort((a, b) => (a.order ?? Infinity) < (b.order ?? Infinity) ? -1 : 1)\n\treturn shuffledElements\n}\n\n/**\n * Shuffle using the Fisher-Yates algorithm\n *\n * @param array The array to shuffle (in place)\n */\nfunction shuffleArray(array: T[]): T[] {\n\tfor (let i = array.length - 1; i > 0; i--) {\n\t\tconst j = Math.floor(Math.random() * (i + 1));\n\t\t[array[i], array[j]] = [array[j]!, array[i]!]\n\t}\n\treturn array\n}\n\n/**\n * Load discover elements from the API\n */\nasync function loadDiscoverElements() {\n\tconst response = await axios.get[]>>(generateOcsUrl('/apps/appstore/api/v1/discover'))\n\tconst { data } = response.data.ocs\n\treturn data\n}\n","\n\n\n\n\n\n\n"],"file":"AppstoreDiscover-_AsCdJWP.chunk.mjs"} \ No newline at end of file diff --git a/dist/AppstoreDiscover-WjjPyuuv.chunk.mjs.map.license b/dist/AppstoreDiscover-_AsCdJWP.chunk.mjs.map.license similarity index 100% rename from dist/AppstoreDiscover-WjjPyuuv.chunk.mjs.map.license rename to dist/AppstoreDiscover-_AsCdJWP.chunk.mjs.map.license diff --git a/dist/AppstoreSearch-CPzSIsIZ.chunk.mjs b/dist/AppstoreSearch-CZQ7JcU9.chunk.mjs similarity index 94% rename from dist/AppstoreSearch-CPzSIsIZ.chunk.mjs rename to dist/AppstoreSearch-CZQ7JcU9.chunk.mjs index e01a934af58..016833a5028 100644 --- a/dist/AppstoreSearch-CPzSIsIZ.chunk.mjs +++ b/dist/AppstoreSearch-CZQ7JcU9.chunk.mjs @@ -1,2 +1,2 @@ -import{t as u}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{s as H,t as R,u as w,v as C,N as L}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as V}from"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import{N as z}from"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{b as g,B as W,e as D,f as E,u as N,d as A}from"./appstore-main.mjs";import{r as j,o as m,f as h,g as y,L as Q,am as J,y as c,k as n,t as G,n as K,b as f,H as X,c as _,u as e,l as $,w as d,h as B,v as I,a8 as Y,F as M,B as Z,z as S,j as T,a9 as ee,C as U}from"./Web-BwmPK40i.chunk.mjs";import{_ as v}from"./public-C1mLBHT3.chunk.mjs";import{N as ae}from"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import{D as pe,E as te,F as le,G as se,H as re,I as oe}from"./mdi-Lt-19ASw.chunk.mjs";import{a as ie,N as x}from"./PencilOutline-CJ2aSuY5.chunk.mjs";import{_ as ne,N as b,c as me}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{b as de}from"./NcTextArea-Dxzj4zdb-stc727hj.chunk.mjs";import{P as ue}from"./NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import{d as ce,a as _e}from"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";/* empty css */import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import"./index-B-dGqfIG.chunk.mjs";import"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./index-CMXcwXc6.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./index-BOH7nBEM.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import"./index-C_wPY1fR.chunk.mjs";/* empty css */import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./index-xEyWukTf.chunk.mjs";import"./index-BLNGy7h5.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import"./NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs";import"./ContentCopy-BF1gBM5z.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import{w as he}from"./index-DlyLvrtV.chunk.mjs";const ye={name:"NcActionCheckbox",components:{NcIconSvgWrapper:b},mixins:[ie],inject:{isInSemanticMenu:{from:ce,default:!1}},props:{id:{type:String,default:()=>"action-"+me(),validator:r=>r.trim()!==""},modelValue:{type:Boolean,default:!1},value:{type:[String,Number],default:""},disabled:{type:Boolean,default:!1}},emits:["change","check","uncheck","update:modelValue"],setup(r){return{model:K(r,"modelValue"),mdiCheckboxBlankOutline:R,mdiCheckboxMarked:H}},methods:{onChange(r){this.$emit("change",r),r.target.checked?this.$emit("check"):this.$emit("uncheck")}}},be=["role"],ge=["role","aria-checked"],fe={class:"action-checkbox__icon"},ve=["id","value","disabled"],ke={class:"action-checkbox__text"};function Ge(r,l,s,a,p,t){const o=j("NcIconSvgWrapper");return m(),h("li",{class:c(["action",{"action--disabled":s.disabled}]),role:t.isInSemanticMenu&&"presentation"},[y("label",{class:"action-checkbox",role:t.isInSemanticMenu&&"menuitemcheckbox","aria-checked":t.isInSemanticMenu&&a.model.toString()},[y("span",fe,[Q(y("input",{id:s.id,"onUpdate:modelValue":l[0]||(l[0]=i=>a.model=i),type:"checkbox",class:c(["action-checkbox__input",{focusable:!s.disabled}]),value:s.value,disabled:s.disabled,onChange:l[1]||(l[1]=(...i)=>t.onChange&&t.onChange(...i))},null,42,ve),[[J,a.model]]),n(o,{path:a.model?a.mdiCheckboxMarked:a.mdiCheckboxBlankOutline,size:20},null,8,["path"])]),y("span",ke,G(r.text),1)],8,ge)],10,be)}const Ie=ne(ye,[["render",Ge],["__scopeId","data-v-2947bc3b"]]),we=["src"],Se=new ue({concurrency:4}),Ve=f({__name:"AppImage",props:{app:{}},setup(r){const l=r,s=$(!1),a=$(!0);return X(()=>{l.app.screenshot?(s.value=!1,a.value=!0,Se.add(()=>{const p=new Image,{promise:t,resolve:o}=Promise.withResolvers();return p.onload=()=>{a.value=!1,o()},p.onerror=()=>{s.value=!0,a.value=!1,o()},p.src=l.app.screenshot,t})):(a.value=!1,s.value=!1)}),(p,t)=>(m(),h("div",{class:c(p.$style.appImage)},[s.value||!l.app.screenshot?(m(),_(e(b),{key:0,size:80,path:e(pe)},null,8,["path"])):a.value?(m(),_(e(z),{key:1,size:80})):(m(),h("img",{key:2,class:c(p.$style.appImage__image),src:l.app.screenshot,alt:""},null,10,we))],2))}}),xe="_appImage_1ky4h_2",$e="_appImage__image_1ky4h_9",ze={appImage:xe,appImage__image:$e},Me={$style:ze},qe=v(Ve,[["__cssModules",Me]]),Ce=f({__name:"AppGridItem",props:{app:{}},setup(r){const l=g(),s=w(),a=I(()=>({...s,params:{...s.params,id:r.app.id},query:l.getQuery()}));return(p,t)=>{const o=j("RouterLink");return m(),h("li",{class:c(p.$style.appGridItem)},[n(o,{to:a.value},{default:d(()=>[n(qe,{app:r.app,class:c(p.$style.appGridItem__image)},null,8,["app","class"]),y("div",{class:c(p.$style.appGridItem__content)},[y("h3",{class:c(p.$style.appGridItem__name)},G(r.app.name),3),y("p",null,G(r.app.summary),1)],2)]),_:1},8,["to"]),y("div",{class:c(p.$style.appGridItem__badges)},[n(W,{app:r.app},null,8,["app"]),n(D,{level:r.app.level},null,8,["level"]),r.app.app_api&&r.app.daemon?(m(),_(E,{key:0,daemon:r.app.daemon},null,8,["daemon"])):B("",!0)],2)],2)}}}),Le="_appGridItem_6wxsl_2",Ne="_appGridItem__content_6wxsl_17",Ae="_appGridItem__image_6wxsl_21",je="_appGridItem__name_6wxsl_29",Be="_appGridItem__badges_6wxsl_35",Te={appGridItem:Le,appGridItem__content:Ne,appGridItem__image:Ae,appGridItem__name:je,appGridItem__badges:Be},Ue={$style:Te},Oe=v(Ce,[["__cssModules",Ue]]),Pe=f({__name:"AppGrid",props:{apps:{}},setup(r){Y(a=>({dc9c258c:s.value}));const l=g(),s=I(()=>l.gridSizePx);return(a,p)=>(m(),h("ul",{class:c(a.$style.appGrid)},[(m(!0),h(M,null,Z(r.apps,t=>(m(),_(Oe,{key:t.id,app:t},null,8,["app"]))),128))],2))}}),Fe="_appGrid_xjc6e_2",He={appGrid:Fe},Re={$style:He},O=v(Pe,[["__cssModules",Re]]),We=f({__name:"AppToolbar",setup(r){const l=w(),s=C(),a=g();return S(()=>a.isGridView,p=>{s.replace({...l,query:{...l.query,grid:p?null:void 0}})}),S(()=>a.defaultGridSize,p=>{a.isGridView&&s.replace({...l,query:{...l.query,grid:p||null}})}),S(()=>a.showIncompatible,p=>{p?s.replace({...l,query:{...l.query,compatible:void 0}}):s.replace({...l,query:{...l.query,compatible:null}})}),(p,t)=>(m(),h("div",{class:c(p.$style.appToolbar)},[n(e(_e),{class:c(p.$style.appToolbar__filterButton),"aria-label":e(u)("appstore","Filter view"),forceMenu:""},{icon:d(()=>[n(e(b),{path:e(re)},null,8,["path"])]),default:d(()=>[e(a).isGridView?(m(),_(e(de),{key:0,name:e(u)("appstore","Grid size")},{default:d(()=>[n(e(x),{"aria-label":e(u)("appstore","Small grid size"),modelValue:e(a).defaultGridSize==="",type:"radio",value:"","onUpdate:modelValue":t[0]||(t[0]=o=>e(a).defaultGridSize="")},{icon:d(()=>[n(e(b),{path:e(te)},null,8,["path"])]),_:1},8,["aria-label","modelValue"]),n(e(x),{"aria-label":e(u)("appstore","Medium grid size"),modelValue:e(a).defaultGridSize==="m",type:"radio",value:"m","onUpdate:modelValue":t[1]||(t[1]=o=>e(a).defaultGridSize="m")},{icon:d(()=>[n(e(b),{path:e(le)},null,8,["path"])]),_:1},8,["aria-label","modelValue"]),n(e(x),{"aria-label":e(u)("appstore","Large grid size"),modelValue:e(a).defaultGridSize==="l",type:"radio",value:"l","onUpdate:modelValue":t[2]||(t[2]=o=>e(a).defaultGridSize="l")},{icon:d(()=>[n(e(b),{path:e(se)},null,8,["path"])]),_:1},8,["aria-label","modelValue"])]),_:1},8,["name"])):B("",!0),n(e(Ie),{modelValue:e(a).showIncompatible,"onUpdate:modelValue":t[3]||(t[3]=o=>e(a).showIncompatible=o)},{default:d(()=>[T(G(e(u)("appstore","Show incompatible")),1)]),_:1},8,["modelValue"])]),_:1},8,["class","aria-label"]),n(e(L),{pressed:e(a).isGridView,"onUpdate:pressed":t[4]||(t[4]=o=>e(a).isGridView=o),"aria-label":e(u)("appstore","Grid view"),variant:"tertiary"},{icon:d(()=>[n(e(b),{path:e(oe)},null,8,["path"])]),_:1},8,["pressed","aria-label"])],2))}}),De="_appToolbar_1v7y4_2",Ee={appToolbar:De},Qe={$style:Ee},P=v(We,[["__cssModules",Qe]]);function F(r){const l=g(),s=w();return I(()=>{const a=[s.query.q||""].flat()[0];return ee(r).filter(p=>{if(!l.showIncompatible&&p.isCompatible===!1)return!1;if(a){const t=a.trim().toLocaleLowerCase();return p.name.toLocaleLowerCase().includes(t)||p.id.toLocaleLowerCase().includes(t)||p.summary.toLocaleLowerCase().includes(t)}return!0})})}const Je=f({__name:"AppstoreManage",setup(r){const l=w(),s=N(),a=g(),p=I(()=>l.params.category),t=I(()=>p.value==="installed"?s.apps.filter(i=>i.installed):p.value==="enabled"?s.apps.filter(i=>i.active):p.value==="disabled"?s.apps.filter(i=>i.installed&&!i.active):p.value==="updates"?s.apps.filter(i=>i.update):[]),o=F(t);return(i,k)=>(m(),h(M,null,[n(P),e(s).isLoadingApps?(m(),_(e(V),{key:0,name:e(u)("appstore","Loading app list")},{icon:d(()=>[n(e(z),{size:64})]),_:1},8,["name"])):e(o).length?(m(),_(U(e(a).isGridView?O:A),{key:1,class:c(i.$style.appstoreManage),apps:e(o)},null,8,["class","apps"])):(m(),_(e(V),{key:2,name:e(u)("appstore","No matching apps found")},{action:d(()=>[n(e(L),{variant:"primary",onClick:k[0]||(k[0]=q=>i.$router.push({query:i.$route.query,name:"apps-search"}))},{default:d(()=>[T(G(e(u)("appstore","Search everywhere")),1)]),_:1})]),_:1},8,["name"]))],64))}}),Ke="_appstoreManage_msk54_2",Xe={appstoreManage:Ke},Ye={$style:Xe},Ze=v(Je,[["__cssModules",Ye]]),Wa=Object.freeze(Object.defineProperty({__proto__:null,default:Ze},Symbol.toStringTag,{value:"Module"})),ea=f({__name:"AppstoreSearch",setup(r){const l=w(),s=C(),a=N(),p=g(),t=F(()=>a.apps),o=$("");return S(()=>l.query.q,i=>{o.value=[i||""].flat()[0]},{immediate:!0}),he(o,i=>{s.replace({...l,query:{...l.query,q:i.trim()}})},{debounce:500}),(i,k)=>(m(),h(M,null,[n(P),e(a).isLoadingApps?(m(),_(e(V),{key:0,name:e(u)("appstore","Loading app list")},{icon:d(()=>[n(e(z),{size:64})]),_:1},8,["name"])):e(t).length&&o.value.trim().length>2?(m(),_(U(e(p).isGridView?O:A),{key:1,class:c(i.$style.appstoreSearch),apps:e(t)},null,8,["class","apps"])):(m(),_(e(V),{key:2,name:e(u)("appstore","No matching apps found"),description:o.value.trim().length<=2?e(u)("appstore","Please enter more characters to search."):void 0},{action:d(()=>[n(e(ae),{modelValue:o.value,"onUpdate:modelValue":k[0]||(k[0]=q=>o.value=q),type:"search",label:e(u)("appstore","Search apps")},null,8,["modelValue","label"])]),_:1},8,["name","description"]))],64))}}),aa="_appstoreSearch_e0puj_2",pa={appstoreSearch:aa},ta={$style:pa},la=v(ea,[["__cssModules",ta]]),Da=Object.freeze(Object.defineProperty({__proto__:null,default:la},Symbol.toStringTag,{value:"Module"}));export{qe as A,P as a,O as b,Wa as c,Da as d,F as u}; -//# sourceMappingURL=AppstoreSearch-CPzSIsIZ.chunk.mjs.map +import{t as u}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{s as H,t as R,u as w,v as C,N as L}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as V}from"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import{N as z}from"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{b as g,B as W,e as D,f as E,u as N,d as A}from"./appstore-main.mjs";import{r as j,o as m,f as h,g as y,L as Q,am as J,y as c,k as n,t as G,n as K,b as f,H as X,c as _,u as e,l as $,w as d,h as B,v as I,a8 as Y,F as M,B as Z,z as S,j as T,a9 as ee,C as U}from"./Web-BwmPK40i.chunk.mjs";import{_ as v}from"./public-C1mLBHT3.chunk.mjs";import{N as ae}from"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import{D as pe,E as te,F as le,G as se,H as re,I as oe}from"./mdi-Lt-19ASw.chunk.mjs";import{a as ie,N as x}from"./PencilOutline-CJ2aSuY5.chunk.mjs";import{_ as ne,N as b,c as me}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{b as de}from"./NcTextArea-Dxzj4zdb-BPZd41PF.chunk.mjs";import{P as ue}from"./NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import{d as ce,a as _e}from"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";/* empty css */import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import"./index-B-dGqfIG.chunk.mjs";import"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./index-CQct0mOs.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./index-dqLzhRZM.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import"./index-BrjNu3x_.chunk.mjs";/* empty css */import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./index-CcOuN-F7.chunk.mjs";import"./index-BLNGy7h5.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import"./NcSelectTags-D7qWNjXa-gqJ9LLZU.chunk.mjs";import"./ContentCopy-BF1gBM5z.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import{w as he}from"./index-DlyLvrtV.chunk.mjs";const ye={name:"NcActionCheckbox",components:{NcIconSvgWrapper:b},mixins:[ie],inject:{isInSemanticMenu:{from:ce,default:!1}},props:{id:{type:String,default:()=>"action-"+me(),validator:r=>r.trim()!==""},modelValue:{type:Boolean,default:!1},value:{type:[String,Number],default:""},disabled:{type:Boolean,default:!1}},emits:["change","check","uncheck","update:modelValue"],setup(r){return{model:K(r,"modelValue"),mdiCheckboxBlankOutline:R,mdiCheckboxMarked:H}},methods:{onChange(r){this.$emit("change",r),r.target.checked?this.$emit("check"):this.$emit("uncheck")}}},be=["role"],ge=["role","aria-checked"],fe={class:"action-checkbox__icon"},ve=["id","value","disabled"],ke={class:"action-checkbox__text"};function Ge(r,l,s,a,p,t){const o=j("NcIconSvgWrapper");return m(),h("li",{class:c(["action",{"action--disabled":s.disabled}]),role:t.isInSemanticMenu&&"presentation"},[y("label",{class:"action-checkbox",role:t.isInSemanticMenu&&"menuitemcheckbox","aria-checked":t.isInSemanticMenu&&a.model.toString()},[y("span",fe,[Q(y("input",{id:s.id,"onUpdate:modelValue":l[0]||(l[0]=i=>a.model=i),type:"checkbox",class:c(["action-checkbox__input",{focusable:!s.disabled}]),value:s.value,disabled:s.disabled,onChange:l[1]||(l[1]=(...i)=>t.onChange&&t.onChange(...i))},null,42,ve),[[J,a.model]]),n(o,{path:a.model?a.mdiCheckboxMarked:a.mdiCheckboxBlankOutline,size:20},null,8,["path"])]),y("span",ke,G(r.text),1)],8,ge)],10,be)}const Ie=ne(ye,[["render",Ge],["__scopeId","data-v-2947bc3b"]]),we=["src"],Se=new ue({concurrency:4}),Ve=f({__name:"AppImage",props:{app:{}},setup(r){const l=r,s=$(!1),a=$(!0);return X(()=>{l.app.screenshot?(s.value=!1,a.value=!0,Se.add(()=>{const p=new Image,{promise:t,resolve:o}=Promise.withResolvers();return p.onload=()=>{a.value=!1,o()},p.onerror=()=>{s.value=!0,a.value=!1,o()},p.src=l.app.screenshot,t})):(a.value=!1,s.value=!1)}),(p,t)=>(m(),h("div",{class:c(p.$style.appImage)},[s.value||!l.app.screenshot?(m(),_(e(b),{key:0,size:80,path:e(pe)},null,8,["path"])):a.value?(m(),_(e(z),{key:1,size:80})):(m(),h("img",{key:2,class:c(p.$style.appImage__image),src:l.app.screenshot,alt:""},null,10,we))],2))}}),xe="_appImage_1ky4h_2",$e="_appImage__image_1ky4h_9",ze={appImage:xe,appImage__image:$e},Me={$style:ze},qe=v(Ve,[["__cssModules",Me]]),Ce=f({__name:"AppGridItem",props:{app:{}},setup(r){const l=g(),s=w(),a=I(()=>({...s,params:{...s.params,id:r.app.id},query:l.getQuery()}));return(p,t)=>{const o=j("RouterLink");return m(),h("li",{class:c(p.$style.appGridItem)},[n(o,{to:a.value},{default:d(()=>[n(qe,{app:r.app,class:c(p.$style.appGridItem__image)},null,8,["app","class"]),y("div",{class:c(p.$style.appGridItem__content)},[y("h3",{class:c(p.$style.appGridItem__name)},G(r.app.name),3),y("p",null,G(r.app.summary),1)],2)]),_:1},8,["to"]),y("div",{class:c(p.$style.appGridItem__badges)},[n(W,{app:r.app},null,8,["app"]),n(D,{level:r.app.level},null,8,["level"]),r.app.app_api&&r.app.daemon?(m(),_(E,{key:0,daemon:r.app.daemon},null,8,["daemon"])):B("",!0)],2)],2)}}}),Le="_appGridItem_6wxsl_2",Ne="_appGridItem__content_6wxsl_17",Ae="_appGridItem__image_6wxsl_21",je="_appGridItem__name_6wxsl_29",Be="_appGridItem__badges_6wxsl_35",Te={appGridItem:Le,appGridItem__content:Ne,appGridItem__image:Ae,appGridItem__name:je,appGridItem__badges:Be},Ue={$style:Te},Oe=v(Ce,[["__cssModules",Ue]]),Pe=f({__name:"AppGrid",props:{apps:{}},setup(r){Y(a=>({dc9c258c:s.value}));const l=g(),s=I(()=>l.gridSizePx);return(a,p)=>(m(),h("ul",{class:c(a.$style.appGrid)},[(m(!0),h(M,null,Z(r.apps,t=>(m(),_(Oe,{key:t.id,app:t},null,8,["app"]))),128))],2))}}),Fe="_appGrid_xjc6e_2",He={appGrid:Fe},Re={$style:He},O=v(Pe,[["__cssModules",Re]]),We=f({__name:"AppToolbar",setup(r){const l=w(),s=C(),a=g();return S(()=>a.isGridView,p=>{s.replace({...l,query:{...l.query,grid:p?null:void 0}})}),S(()=>a.defaultGridSize,p=>{a.isGridView&&s.replace({...l,query:{...l.query,grid:p||null}})}),S(()=>a.showIncompatible,p=>{p?s.replace({...l,query:{...l.query,compatible:void 0}}):s.replace({...l,query:{...l.query,compatible:null}})}),(p,t)=>(m(),h("div",{class:c(p.$style.appToolbar)},[n(e(_e),{class:c(p.$style.appToolbar__filterButton),"aria-label":e(u)("appstore","Filter view"),forceMenu:""},{icon:d(()=>[n(e(b),{path:e(re)},null,8,["path"])]),default:d(()=>[e(a).isGridView?(m(),_(e(de),{key:0,name:e(u)("appstore","Grid size")},{default:d(()=>[n(e(x),{"aria-label":e(u)("appstore","Small grid size"),modelValue:e(a).defaultGridSize==="",type:"radio",value:"","onUpdate:modelValue":t[0]||(t[0]=o=>e(a).defaultGridSize="")},{icon:d(()=>[n(e(b),{path:e(te)},null,8,["path"])]),_:1},8,["aria-label","modelValue"]),n(e(x),{"aria-label":e(u)("appstore","Medium grid size"),modelValue:e(a).defaultGridSize==="m",type:"radio",value:"m","onUpdate:modelValue":t[1]||(t[1]=o=>e(a).defaultGridSize="m")},{icon:d(()=>[n(e(b),{path:e(le)},null,8,["path"])]),_:1},8,["aria-label","modelValue"]),n(e(x),{"aria-label":e(u)("appstore","Large grid size"),modelValue:e(a).defaultGridSize==="l",type:"radio",value:"l","onUpdate:modelValue":t[2]||(t[2]=o=>e(a).defaultGridSize="l")},{icon:d(()=>[n(e(b),{path:e(se)},null,8,["path"])]),_:1},8,["aria-label","modelValue"])]),_:1},8,["name"])):B("",!0),n(e(Ie),{modelValue:e(a).showIncompatible,"onUpdate:modelValue":t[3]||(t[3]=o=>e(a).showIncompatible=o)},{default:d(()=>[T(G(e(u)("appstore","Show incompatible")),1)]),_:1},8,["modelValue"])]),_:1},8,["class","aria-label"]),n(e(L),{pressed:e(a).isGridView,"onUpdate:pressed":t[4]||(t[4]=o=>e(a).isGridView=o),"aria-label":e(u)("appstore","Grid view"),variant:"tertiary"},{icon:d(()=>[n(e(b),{path:e(oe)},null,8,["path"])]),_:1},8,["pressed","aria-label"])],2))}}),De="_appToolbar_1v7y4_2",Ee={appToolbar:De},Qe={$style:Ee},P=v(We,[["__cssModules",Qe]]);function F(r){const l=g(),s=w();return I(()=>{const a=[s.query.q||""].flat()[0];return ee(r).filter(p=>{if(!l.showIncompatible&&p.isCompatible===!1)return!1;if(a){const t=a.trim().toLocaleLowerCase();return p.name.toLocaleLowerCase().includes(t)||p.id.toLocaleLowerCase().includes(t)||p.summary.toLocaleLowerCase().includes(t)}return!0})})}const Je=f({__name:"AppstoreManage",setup(r){const l=w(),s=N(),a=g(),p=I(()=>l.params.category),t=I(()=>p.value==="installed"?s.apps.filter(i=>i.installed):p.value==="enabled"?s.apps.filter(i=>i.active):p.value==="disabled"?s.apps.filter(i=>i.installed&&!i.active):p.value==="updates"?s.apps.filter(i=>i.update):[]),o=F(t);return(i,k)=>(m(),h(M,null,[n(P),e(s).isLoadingApps?(m(),_(e(V),{key:0,name:e(u)("appstore","Loading app list")},{icon:d(()=>[n(e(z),{size:64})]),_:1},8,["name"])):e(o).length?(m(),_(U(e(a).isGridView?O:A),{key:1,class:c(i.$style.appstoreManage),apps:e(o)},null,8,["class","apps"])):(m(),_(e(V),{key:2,name:e(u)("appstore","No matching apps found")},{action:d(()=>[n(e(L),{variant:"primary",onClick:k[0]||(k[0]=q=>i.$router.push({query:i.$route.query,name:"apps-search"}))},{default:d(()=>[T(G(e(u)("appstore","Search everywhere")),1)]),_:1})]),_:1},8,["name"]))],64))}}),Ke="_appstoreManage_msk54_2",Xe={appstoreManage:Ke},Ye={$style:Xe},Ze=v(Je,[["__cssModules",Ye]]),Wa=Object.freeze(Object.defineProperty({__proto__:null,default:Ze},Symbol.toStringTag,{value:"Module"})),ea=f({__name:"AppstoreSearch",setup(r){const l=w(),s=C(),a=N(),p=g(),t=F(()=>a.apps),o=$("");return S(()=>l.query.q,i=>{o.value=[i||""].flat()[0]},{immediate:!0}),he(o,i=>{s.replace({...l,query:{...l.query,q:i.trim()}})},{debounce:500}),(i,k)=>(m(),h(M,null,[n(P),e(a).isLoadingApps?(m(),_(e(V),{key:0,name:e(u)("appstore","Loading app list")},{icon:d(()=>[n(e(z),{size:64})]),_:1},8,["name"])):e(t).length&&o.value.trim().length>2?(m(),_(U(e(p).isGridView?O:A),{key:1,class:c(i.$style.appstoreSearch),apps:e(t)},null,8,["class","apps"])):(m(),_(e(V),{key:2,name:e(u)("appstore","No matching apps found"),description:o.value.trim().length<=2?e(u)("appstore","Please enter more characters to search."):void 0},{action:d(()=>[n(e(ae),{modelValue:o.value,"onUpdate:modelValue":k[0]||(k[0]=q=>o.value=q),type:"search",label:e(u)("appstore","Search apps")},null,8,["modelValue","label"])]),_:1},8,["name","description"]))],64))}}),aa="_appstoreSearch_e0puj_2",pa={appstoreSearch:aa},ta={$style:pa},la=v(ea,[["__cssModules",ta]]),Da=Object.freeze(Object.defineProperty({__proto__:null,default:la},Symbol.toStringTag,{value:"Module"}));export{qe as A,P as a,O as b,Wa as c,Da as d,F as u}; +//# sourceMappingURL=AppstoreSearch-CZQ7JcU9.chunk.mjs.map diff --git a/dist/AppstoreSearch-CPzSIsIZ.chunk.mjs.license b/dist/AppstoreSearch-CZQ7JcU9.chunk.mjs.license similarity index 100% rename from dist/AppstoreSearch-CPzSIsIZ.chunk.mjs.license rename to dist/AppstoreSearch-CZQ7JcU9.chunk.mjs.license diff --git a/dist/AppstoreSearch-CPzSIsIZ.chunk.mjs.map b/dist/AppstoreSearch-CZQ7JcU9.chunk.mjs.map similarity index 99% rename from dist/AppstoreSearch-CPzSIsIZ.chunk.mjs.map rename to dist/AppstoreSearch-CZQ7JcU9.chunk.mjs.map index 6cff57c8791..69cba393284 100644 --- a/dist/AppstoreSearch-CPzSIsIZ.chunk.mjs.map +++ b/dist/AppstoreSearch-CZQ7JcU9.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"AppstoreSearch-CPzSIsIZ.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcActionCheckbox-DBqiK-AZ.mjs","../build/frontend/apps/appstore/src/components/AppImage.vue","../build/frontend/apps/appstore/src/components/AppGrid/AppGridItem.vue","../build/frontend/apps/appstore/src/components/AppGrid/AppGrid.vue","../build/frontend/apps/appstore/src/components/AppToolbar.vue","../build/frontend/apps/appstore/src/composables/useFilteredApps.ts","../build/frontend/apps/appstore/src/views/AppstoreManage.vue","../build/frontend/apps/appstore/src/views/AppstoreSearch.vue"],"sourcesContent":["import '../assets/NcActionCheckbox-wD8m_a8-.css';\nimport { h as mdiCheckboxMarked, i as mdiCheckboxBlankOutline } from \"./mdi-CpchYUUV.mjs\";\nimport { resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, withDirectives, vModelCheckbox, createVNode, toDisplayString, useModel } from \"vue\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { A as ActionGlobalMixin } from \"./actionGlobal-BZFdtdJL.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-BzPO2c4h.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionCheckbox\",\n components: {\n NcIconSvgWrapper\n },\n mixins: [ActionGlobalMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\n /**\n * id attribute of the checkbox element\n */\n id: {\n type: String,\n default: () => \"action-\" + createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * checked state of the the checkbox element\n */\n modelValue: {\n type: Boolean,\n default: false\n },\n /**\n * value of the checkbox input\n */\n value: {\n type: [String, Number],\n default: \"\"\n },\n /**\n * disabled state of the checkbox element\n */\n disabled: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n /** Native change event */\n \"change\",\n /** Checkbox is checked */\n \"check\",\n /** Checkbox is unchecked */\n \"uncheck\",\n /** Model value changed */\n \"update:modelValue\"\n ],\n setup(props) {\n const model = useModel(props, \"modelValue\");\n return {\n model,\n mdiCheckboxBlankOutline,\n mdiCheckboxMarked\n };\n },\n methods: {\n onChange(event) {\n this.$emit(\"change\", event);\n if (event.target.checked) {\n this.$emit(\"check\");\n } else {\n this.$emit(\"uncheck\");\n }\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = [\"role\", \"aria-checked\"];\nconst _hoisted_3 = { class: \"action-checkbox__icon\" };\nconst _hoisted_4 = [\"id\", \"value\", \"disabled\"];\nconst _hoisted_5 = { class: \"action-checkbox__text\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n return openBlock(), createElementBlock(\"li\", {\n class: normalizeClass([\"action\", { \"action--disabled\": $props.disabled }]),\n role: $options.isInSemanticMenu && \"presentation\"\n }, [\n createElementVNode(\"label\", {\n class: \"action-checkbox\",\n role: $options.isInSemanticMenu && \"menuitemcheckbox\",\n \"aria-checked\": $options.isInSemanticMenu && $setup.model.toString()\n }, [\n createElementVNode(\"span\", _hoisted_3, [\n withDirectives(createElementVNode(\"input\", {\n id: $props.id,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => $setup.model = $event),\n type: \"checkbox\",\n class: normalizeClass([\"action-checkbox__input\", { focusable: !$props.disabled }]),\n value: $props.value,\n disabled: $props.disabled,\n onChange: _cache[1] || (_cache[1] = (...args) => $options.onChange && $options.onChange(...args))\n }, null, 42, _hoisted_4), [\n [vModelCheckbox, $setup.model]\n ]),\n createVNode(_component_NcIconSvgWrapper, {\n path: $setup.model ? $setup.mdiCheckboxMarked : $setup.mdiCheckboxBlankOutline,\n size: 20\n }, null, 8, [\"path\"])\n ]),\n createElementVNode(\"span\", _hoisted_5, toDisplayString(_ctx.text), 1)\n ], 8, _hoisted_2)\n ], 10, _hoisted_1);\n}\nconst NcActionCheckbox = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-2947bc3b\"]]);\nexport {\n NcActionCheckbox as N\n};\n//# sourceMappingURL=NcActionCheckbox-DBqiK-AZ.mjs.map\n","\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","/*!\n * SPDX-License-Identifier: AGPL-3.0-or-later\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n */\n\nimport type { MaybeRefOrGetter } from 'vue'\nimport type { IAppstoreApp, IAppstoreExApp } from '../apps.d.ts'\n\nimport { computed, toValue } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { useUserSettingsStore } from '../store/userSettings.ts'\n\n/**\n * Get the filtered list of apps based on the user settings\n *\n * @param apps - The apps to filter\n */\nexport function useFilteredApps(apps: MaybeRefOrGetter<(IAppstoreApp | IAppstoreExApp)[]>) {\n\tconst store = useUserSettingsStore()\n\tconst route = useRoute()\n\treturn computed(() => {\n\t\tconst query = [route.query.q || ''].flat()[0]!\n\t\treturn toValue(apps)\n\t\t\t.filter((app) => {\n\t\t\t\tif (!store.showIncompatible && app.isCompatible === false) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif (query) {\n\t\t\t\t\tconst needle = query.trim().toLocaleLowerCase()\n\t\t\t\t\treturn app.name.toLocaleLowerCase().includes(needle)\n\t\t\t\t\t\t|| app.id.toLocaleLowerCase().includes(needle)\n\t\t\t\t\t\t|| app.summary.toLocaleLowerCase().includes(needle)\n\t\t\t\t}\n\t\t\t\treturn true\n\t\t\t})\n\t})\n}\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n"],"names":["_sfc_main","NcIconSvgWrapper","ActionGlobalMixin","NC_ACTIONS_IS_SEMANTIC_MENU","createElementId","id","props","useModel","mdiCheckboxBlankOutline","mdiCheckboxMarked","event","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","_component_NcIconSvgWrapper","resolveComponent","openBlock","createElementBlock","normalizeClass","createElementVNode","withDirectives","$event","args","vModelCheckbox","createVNode","toDisplayString","NcActionCheckbox","_export_sfc","queue","PQueue","__props","isError","ref","isLoading","watchEffect","image","promise","resolve","_createElementBlock","_normalizeClass","$style","_createBlock","_unref","mdiCogOutline","NcLoadingIcon","userSettingsStore","useUserSettingsStore","route","useRoute","routeToDetails","computed","_createVNode","_component_RouterLink","AppImage","_createElementVNode","_toDisplayString","BadgeAppScore","BadgeAppLevel","BadgeAppDaemon","userSettings","gridSize","_Fragment","_renderList","app","AppGridItem","router","useRouter","watch","enabled","newSize","showIncompatible","NcActions","t","mdiFilterVariant","NcActionButtonGroup","NcActionButton","mdiSizeS","mdiSizeM","mdiSizeL","NcButton","mdiViewGrid","useFilteredApps","apps","store","query","toValue","needle","useAppsStore","currentCategory","visibleApps","AppToolbar","NcEmptyContent","_openBlock","_resolveDynamicComponent","AppGrid","AppTable","$router","$route","search","newQuery","watchDebounced","newValue","NcInputField"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"AppstoreSearch-CZQ7JcU9.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcActionCheckbox-DBqiK-AZ.mjs","../build/frontend/apps/appstore/src/components/AppImage.vue","../build/frontend/apps/appstore/src/components/AppGrid/AppGridItem.vue","../build/frontend/apps/appstore/src/components/AppGrid/AppGrid.vue","../build/frontend/apps/appstore/src/components/AppToolbar.vue","../build/frontend/apps/appstore/src/composables/useFilteredApps.ts","../build/frontend/apps/appstore/src/views/AppstoreManage.vue","../build/frontend/apps/appstore/src/views/AppstoreSearch.vue"],"sourcesContent":["import '../assets/NcActionCheckbox-wD8m_a8-.css';\nimport { h as mdiCheckboxMarked, i as mdiCheckboxBlankOutline } from \"./mdi-CpchYUUV.mjs\";\nimport { resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, withDirectives, vModelCheckbox, createVNode, toDisplayString, useModel } from \"vue\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { A as ActionGlobalMixin } from \"./actionGlobal-BZFdtdJL.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-BzPO2c4h.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionCheckbox\",\n components: {\n NcIconSvgWrapper\n },\n mixins: [ActionGlobalMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\n /**\n * id attribute of the checkbox element\n */\n id: {\n type: String,\n default: () => \"action-\" + createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * checked state of the the checkbox element\n */\n modelValue: {\n type: Boolean,\n default: false\n },\n /**\n * value of the checkbox input\n */\n value: {\n type: [String, Number],\n default: \"\"\n },\n /**\n * disabled state of the checkbox element\n */\n disabled: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n /** Native change event */\n \"change\",\n /** Checkbox is checked */\n \"check\",\n /** Checkbox is unchecked */\n \"uncheck\",\n /** Model value changed */\n \"update:modelValue\"\n ],\n setup(props) {\n const model = useModel(props, \"modelValue\");\n return {\n model,\n mdiCheckboxBlankOutline,\n mdiCheckboxMarked\n };\n },\n methods: {\n onChange(event) {\n this.$emit(\"change\", event);\n if (event.target.checked) {\n this.$emit(\"check\");\n } else {\n this.$emit(\"uncheck\");\n }\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = [\"role\", \"aria-checked\"];\nconst _hoisted_3 = { class: \"action-checkbox__icon\" };\nconst _hoisted_4 = [\"id\", \"value\", \"disabled\"];\nconst _hoisted_5 = { class: \"action-checkbox__text\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n return openBlock(), createElementBlock(\"li\", {\n class: normalizeClass([\"action\", { \"action--disabled\": $props.disabled }]),\n role: $options.isInSemanticMenu && \"presentation\"\n }, [\n createElementVNode(\"label\", {\n class: \"action-checkbox\",\n role: $options.isInSemanticMenu && \"menuitemcheckbox\",\n \"aria-checked\": $options.isInSemanticMenu && $setup.model.toString()\n }, [\n createElementVNode(\"span\", _hoisted_3, [\n withDirectives(createElementVNode(\"input\", {\n id: $props.id,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => $setup.model = $event),\n type: \"checkbox\",\n class: normalizeClass([\"action-checkbox__input\", { focusable: !$props.disabled }]),\n value: $props.value,\n disabled: $props.disabled,\n onChange: _cache[1] || (_cache[1] = (...args) => $options.onChange && $options.onChange(...args))\n }, null, 42, _hoisted_4), [\n [vModelCheckbox, $setup.model]\n ]),\n createVNode(_component_NcIconSvgWrapper, {\n path: $setup.model ? $setup.mdiCheckboxMarked : $setup.mdiCheckboxBlankOutline,\n size: 20\n }, null, 8, [\"path\"])\n ]),\n createElementVNode(\"span\", _hoisted_5, toDisplayString(_ctx.text), 1)\n ], 8, _hoisted_2)\n ], 10, _hoisted_1);\n}\nconst NcActionCheckbox = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-2947bc3b\"]]);\nexport {\n NcActionCheckbox as N\n};\n//# sourceMappingURL=NcActionCheckbox-DBqiK-AZ.mjs.map\n","\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","/*!\n * SPDX-License-Identifier: AGPL-3.0-or-later\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n */\n\nimport type { MaybeRefOrGetter } from 'vue'\nimport type { IAppstoreApp, IAppstoreExApp } from '../apps.d.ts'\n\nimport { computed, toValue } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { useUserSettingsStore } from '../store/userSettings.ts'\n\n/**\n * Get the filtered list of apps based on the user settings\n *\n * @param apps - The apps to filter\n */\nexport function useFilteredApps(apps: MaybeRefOrGetter<(IAppstoreApp | IAppstoreExApp)[]>) {\n\tconst store = useUserSettingsStore()\n\tconst route = useRoute()\n\treturn computed(() => {\n\t\tconst query = [route.query.q || ''].flat()[0]!\n\t\treturn toValue(apps)\n\t\t\t.filter((app) => {\n\t\t\t\tif (!store.showIncompatible && app.isCompatible === false) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif (query) {\n\t\t\t\t\tconst needle = query.trim().toLocaleLowerCase()\n\t\t\t\t\treturn app.name.toLocaleLowerCase().includes(needle)\n\t\t\t\t\t\t|| app.id.toLocaleLowerCase().includes(needle)\n\t\t\t\t\t\t|| app.summary.toLocaleLowerCase().includes(needle)\n\t\t\t\t}\n\t\t\t\treturn true\n\t\t\t})\n\t})\n}\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n"],"names":["_sfc_main","NcIconSvgWrapper","ActionGlobalMixin","NC_ACTIONS_IS_SEMANTIC_MENU","createElementId","id","props","useModel","mdiCheckboxBlankOutline","mdiCheckboxMarked","event","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","_component_NcIconSvgWrapper","resolveComponent","openBlock","createElementBlock","normalizeClass","createElementVNode","withDirectives","$event","args","vModelCheckbox","createVNode","toDisplayString","NcActionCheckbox","_export_sfc","queue","PQueue","__props","isError","ref","isLoading","watchEffect","image","promise","resolve","_createElementBlock","_normalizeClass","$style","_createBlock","_unref","mdiCogOutline","NcLoadingIcon","userSettingsStore","useUserSettingsStore","route","useRoute","routeToDetails","computed","_createVNode","_component_RouterLink","AppImage","_createElementVNode","_toDisplayString","BadgeAppScore","BadgeAppLevel","BadgeAppDaemon","userSettings","gridSize","_Fragment","_renderList","app","AppGridItem","router","useRouter","watch","enabled","newSize","showIncompatible","NcActions","t","mdiFilterVariant","NcActionButtonGroup","NcActionButton","mdiSizeS","mdiSizeM","mdiSizeL","NcButton","mdiViewGrid","useFilteredApps","apps","store","query","toValue","needle","useAppsStore","currentCategory","visibleApps","AppToolbar","NcEmptyContent","_openBlock","_resolveDynamicComponent","AppGrid","AppTable","$router","$route","search","newQuery","watchDebounced","newValue","NcInputField"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/dist/AppstoreSearch-CPzSIsIZ.chunk.mjs.map.license b/dist/AppstoreSearch-CZQ7JcU9.chunk.mjs.map.license similarity index 100% rename from dist/AppstoreSearch-CPzSIsIZ.chunk.mjs.map.license rename to dist/AppstoreSearch-CZQ7JcU9.chunk.mjs.map.license diff --git a/dist/AuthMechanismRsa-Bue2F6rp.chunk.mjs b/dist/AuthMechanismRsa-KxGDDW5e.chunk.mjs similarity index 93% rename from dist/AuthMechanismRsa-Bue2F6rp.chunk.mjs rename to dist/AuthMechanismRsa-KxGDDW5e.chunk.mjs index 1c9e7a9fbea..72526a1c95d 100644 --- a/dist/AuthMechanismRsa-Bue2F6rp.chunk.mjs +++ b/dist/AuthMechanismRsa-KxGDDW5e.chunk.mjs @@ -1,2 +1,2 @@ -import{b as y,n as g,u as l,o as r,c as p,C as h,w as v,j as _,t as V,s as b,z as M,f as d,F as x,B as w,L as K,M as U,k as f,l as j}from"./Web-BwmPK40i.chunk.mjs";import{c as q}from"./index-BLNGy7h5.chunk.mjs";import{a as L}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{t as s}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{b as N}from"./index-B-dGqfIG.chunk.mjs";import{N as S}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as z}from"./index-BOH7nBEM.chunk.mjs";import{N as A}from"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import{N as B}from"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import{_ as C}from"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import{a as c,C as k}from"./types-BINwlUX8.chunk.mjs";import{l as E}from"./logger-n22jyIXx.chunk.mjs";const P=y({__name:"ConfigurationEntry",props:b({configKey:{},configOption:{}},{modelValue:{type:[String,Boolean],default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const a=g(e,"modelValue");return(t,i)=>e.configOption.type!==l(c).Boolean?(r(),p(h(e.configOption.type===l(c).Password?l(B):l(C)),{key:0,modelValue:a.value,"onUpdate:modelValue":i[0]||(i[0]=o=>a.value=o),name:e.configKey,required:!(e.configOption.flags&l(k).Optional),label:e.configOption.value,title:e.configOption.tooltip},null,8,["modelValue","name","required","label","title"])):(r(),p(l(A),{key:1,modelValue:a.value,"onUpdate:modelValue":i[1]||(i[1]=o=>a.value=o),type:"switch",title:e.configOption.tooltip},{default:v(()=>[_(V(e.configOption.value),1)]),_:1},8,["modelValue","title"]))}}),R=y({__name:"AuthMechanismRsa",props:b({authMechanism:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const a=g(e,"modelValue"),t=j();M(t,()=>{t.value&&(a.value.private_key="",a.value.public_key="")});async function i(){try{const{data:o}=await q.post(N("/apps/files_external/ajax/public_key.php"),{keyLength:t.value});a.value.private_key=o.data.private_key,a.value.public_key=o.data.public_key}catch(o){E.error("Error generating RSA key pair",{error:o}),L(s("files_external","Error generating key pair"))}}return(o,m)=>(r(),d("div",null,[(r(!0),d(x,null,w(e.authMechanism.configuration,(n,u)=>K((r(),p(P,{key:n.value,modelValue:a.value[u],"onUpdate:modelValue":O=>a.value[u]=O,configKey:u,configOption:n},null,8,["modelValue","onUpdate:modelValue","configKey","configOption"])),[[U,!(n.flags&l(k).Hidden)]])),128)),f(l(z),{modelValue:t.value,"onUpdate:modelValue":m[0]||(m[0]=n=>t.value=n),clearable:!1,inputLabel:l(s)("files_external","Key size"),options:[1024,2048,4096],required:""},null,8,["modelValue","inputLabel"]),f(l(S),{disabled:!t.value,wide:"",onClick:i},{default:v(()=>[_(V(l(s)("files_external","Generate keys")),1)]),_:1},8,["disabled"])]))}}),$=Object.freeze(Object.defineProperty({__proto__:null,default:R},Symbol.toStringTag,{value:"Module"}));export{$ as A,P as _}; -//# sourceMappingURL=AuthMechanismRsa-Bue2F6rp.chunk.mjs.map +import{b as y,n as g,u as l,o as r,c as p,C as h,w as v,j as _,t as V,s as b,z as M,f as d,F as x,B as w,L as K,M as U,k as f,l as j}from"./Web-BwmPK40i.chunk.mjs";import{c as q}from"./index-BLNGy7h5.chunk.mjs";import{a as L}from"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import{t as s}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{b as N}from"./index-B-dGqfIG.chunk.mjs";import{N as S}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as z}from"./index-dqLzhRZM.chunk.mjs";import{N as A}from"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import{N as B}from"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import{_ as C}from"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import{a as c,C as k}from"./types-BINwlUX8.chunk.mjs";import{l as E}from"./logger-n22jyIXx.chunk.mjs";const P=y({__name:"ConfigurationEntry",props:b({configKey:{},configOption:{}},{modelValue:{type:[String,Boolean],default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const a=g(e,"modelValue");return(t,i)=>e.configOption.type!==l(c).Boolean?(r(),p(h(e.configOption.type===l(c).Password?l(B):l(C)),{key:0,modelValue:a.value,"onUpdate:modelValue":i[0]||(i[0]=o=>a.value=o),name:e.configKey,required:!(e.configOption.flags&l(k).Optional),label:e.configOption.value,title:e.configOption.tooltip},null,8,["modelValue","name","required","label","title"])):(r(),p(l(A),{key:1,modelValue:a.value,"onUpdate:modelValue":i[1]||(i[1]=o=>a.value=o),type:"switch",title:e.configOption.tooltip},{default:v(()=>[_(V(e.configOption.value),1)]),_:1},8,["modelValue","title"]))}}),R=y({__name:"AuthMechanismRsa",props:b({authMechanism:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const a=g(e,"modelValue"),t=j();M(t,()=>{t.value&&(a.value.private_key="",a.value.public_key="")});async function i(){try{const{data:o}=await q.post(N("/apps/files_external/ajax/public_key.php"),{keyLength:t.value});a.value.private_key=o.data.private_key,a.value.public_key=o.data.public_key}catch(o){E.error("Error generating RSA key pair",{error:o}),L(s("files_external","Error generating key pair"))}}return(o,m)=>(r(),d("div",null,[(r(!0),d(x,null,w(e.authMechanism.configuration,(n,u)=>K((r(),p(P,{key:n.value,modelValue:a.value[u],"onUpdate:modelValue":O=>a.value[u]=O,configKey:u,configOption:n},null,8,["modelValue","onUpdate:modelValue","configKey","configOption"])),[[U,!(n.flags&l(k).Hidden)]])),128)),f(l(z),{modelValue:t.value,"onUpdate:modelValue":m[0]||(m[0]=n=>t.value=n),clearable:!1,inputLabel:l(s)("files_external","Key size"),options:[1024,2048,4096],required:""},null,8,["modelValue","inputLabel"]),f(l(S),{disabled:!t.value,wide:"",onClick:i},{default:v(()=>[_(V(l(s)("files_external","Generate keys")),1)]),_:1},8,["disabled"])]))}}),$=Object.freeze(Object.defineProperty({__proto__:null,default:R},Symbol.toStringTag,{value:"Module"}));export{$ as A,P as _}; +//# sourceMappingURL=AuthMechanismRsa-KxGDDW5e.chunk.mjs.map diff --git a/dist/AuthMechanismRsa-Bue2F6rp.chunk.mjs.license b/dist/AuthMechanismRsa-KxGDDW5e.chunk.mjs.license similarity index 100% rename from dist/AuthMechanismRsa-Bue2F6rp.chunk.mjs.license rename to dist/AuthMechanismRsa-KxGDDW5e.chunk.mjs.license diff --git a/dist/AuthMechanismRsa-Bue2F6rp.chunk.mjs.map b/dist/AuthMechanismRsa-KxGDDW5e.chunk.mjs.map similarity index 98% rename from dist/AuthMechanismRsa-Bue2F6rp.chunk.mjs.map rename to dist/AuthMechanismRsa-KxGDDW5e.chunk.mjs.map index 860d8d44bb5..76e93ecf538 100644 --- a/dist/AuthMechanismRsa-Bue2F6rp.chunk.mjs.map +++ b/dist/AuthMechanismRsa-KxGDDW5e.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"AuthMechanismRsa-Bue2F6rp.chunk.mjs","sources":["../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/ConfigurationEntry.vue","../build/frontend/apps/files_external/src/views/AuthMechanismRsa.vue"],"sourcesContent":["\n\n\n\n\n","\n\n\n\n\n"],"names":["value","_useModel","__props","_unref","ConfigurationType","_createBlock","_resolveDynamicComponent","NcPasswordField","NcTextField","$event","ConfigurationFlag","NcCheckboxRadioSwitch","_createTextVNode","_toDisplayString","modelValue","keySize","ref","watch","generateKeys","data","axios","generateUrl","error","logger","showError","t","_createElementBlock","_openBlock","_Fragment","configOption","configKey","ConfigurationEntry","_vShow","_createVNode","NcSelect","NcButton"],"mappings":"w+BAaA,MAAMA,EAAQC,EAA6BC,EAAC,YAA6B,eAWjEA,EAAA,aAAa,OAASC,EAAAC,CAAA,EAAkB,aAF/CC,EAOiCC,EAN3BJ,EAAA,aAAa,OAASC,EAAAC,CAAA,EAAkB,SAAWD,EAAAI,CAAA,EAAkBJ,EAAAK,CAAA,CAAW,EAAA,kBAE5ER,EAAA,2CAAAA,EAAK,MAAAS,GACb,KAAMP,EAAA,UACN,WAAYA,EAAA,aAAa,MAAQC,EAAAO,CAAA,EAAkB,UACnD,MAAOR,EAAA,aAAa,MACpB,MAAOA,EAAA,aAAa,OAAA,iEACtBG,EAMwBF,EAAAQ,CAAA,EAAA,kBAJdX,EAAA,2CAAAA,EAAK,MAAAS,GACd,KAAK,SACJ,MAAOP,EAAA,aAAa,OAAA,aACrB,IAAwB,CAArBU,EAAAC,EAAAX,EAAA,aAAa,KAAK,EAAA,CAAA,CAAA,mLChBvB,MAAMY,EAAab,EAA6CC,EAAA,YAAmB,EAM7Ea,EAAUC,EAAA,EAChBC,EAAMF,EAAS,IAAM,CAChBA,EAAQ,QACXD,EAAW,MAAM,YAAc,GAC/BA,EAAW,MAAM,WAAa,GAEhC,CAAC,EAKD,eAAeI,GAAe,CAC7B,GAAI,CAEH,KAAM,CAAE,KAAAC,GAAS,MAAMC,EAAM,KAAKC,EAAY,0CAA0C,EAAG,CAC1F,UAAWN,EAAQ,KAAA,CACnB,EAEDD,EAAW,MAAM,YAAcK,EAAK,KAAK,YACzCL,EAAW,MAAM,WAAaK,EAAK,KAAK,UACzC,OAASG,EAAO,CACfC,EAAO,MAAM,gCAAiC,CAAE,MAAAD,CAAA,CAAO,EACvDE,EAAUC,EAAE,iBAAkB,2BAA2B,CAAC,CAC3D,CACD,mBAICC,EAsBM,MAAA,KAAA,EArBLC,EAAA,EAAA,EAAAD,EAMgCE,SALG1B,EAAA,cAAc,cAAa,CAAtD2B,EAAcC,WADtBzB,EAMgC0B,EAAA,CAH9B,IAAKF,EAAa,MACV,WAAAf,EAAA,MAAWgB,CAAS,EAApB,sBAAArB,GAAAK,EAAA,MAAWgB,CAAS,EAAArB,EAC5B,UAAAqB,EACA,aAAAD,CAAA,4EAJS,CAAAG,EAAA,EAAAH,EAAa,MAAQ1B,EAAAO,CAAA,EAAkB,OAAM,CAAA,UAMxDuB,EAKY9B,EAAA+B,CAAA,EAAA,YAJFnB,EAAA,2CAAAA,EAAO,MAAAN,GACf,UAAW,GACX,WAAYN,EAAAsB,CAAA,EAAC,iBAAA,UAAA,EACb,QAAS,CAAA,KAAA,KAAA,IAAA,EACV,SAAA,EAAA,sCAEDQ,EAKW9B,EAAAgC,CAAA,EAAA,CAJT,UAAWpB,EAAA,MACZ,KAAA,GACC,QAAOG,CAAA,aACR,IAA0C,KAAvCf,EAAAsB,CAAA,EAAC,iBAAA,eAAA,CAAA,EAAA,CAAA,CAAA"} \ No newline at end of file +{"version":3,"file":"AuthMechanismRsa-KxGDDW5e.chunk.mjs","sources":["../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/ConfigurationEntry.vue","../build/frontend/apps/files_external/src/views/AuthMechanismRsa.vue"],"sourcesContent":["\n\n\n\n\n","\n\n\n\n\n"],"names":["value","_useModel","__props","_unref","ConfigurationType","_createBlock","_resolveDynamicComponent","NcPasswordField","NcTextField","$event","ConfigurationFlag","NcCheckboxRadioSwitch","_createTextVNode","_toDisplayString","modelValue","keySize","ref","watch","generateKeys","data","axios","generateUrl","error","logger","showError","t","_createElementBlock","_openBlock","_Fragment","configOption","configKey","ConfigurationEntry","_vShow","_createVNode","NcSelect","NcButton"],"mappings":"w+BAaA,MAAMA,EAAQC,EAA6BC,EAAC,YAA6B,eAWjEA,EAAA,aAAa,OAASC,EAAAC,CAAA,EAAkB,aAF/CC,EAOiCC,EAN3BJ,EAAA,aAAa,OAASC,EAAAC,CAAA,EAAkB,SAAWD,EAAAI,CAAA,EAAkBJ,EAAAK,CAAA,CAAW,EAAA,kBAE5ER,EAAA,2CAAAA,EAAK,MAAAS,GACb,KAAMP,EAAA,UACN,WAAYA,EAAA,aAAa,MAAQC,EAAAO,CAAA,EAAkB,UACnD,MAAOR,EAAA,aAAa,MACpB,MAAOA,EAAA,aAAa,OAAA,iEACtBG,EAMwBF,EAAAQ,CAAA,EAAA,kBAJdX,EAAA,2CAAAA,EAAK,MAAAS,GACd,KAAK,SACJ,MAAOP,EAAA,aAAa,OAAA,aACrB,IAAwB,CAArBU,EAAAC,EAAAX,EAAA,aAAa,KAAK,EAAA,CAAA,CAAA,mLChBvB,MAAMY,EAAab,EAA6CC,EAAA,YAAmB,EAM7Ea,EAAUC,EAAA,EAChBC,EAAMF,EAAS,IAAM,CAChBA,EAAQ,QACXD,EAAW,MAAM,YAAc,GAC/BA,EAAW,MAAM,WAAa,GAEhC,CAAC,EAKD,eAAeI,GAAe,CAC7B,GAAI,CAEH,KAAM,CAAE,KAAAC,GAAS,MAAMC,EAAM,KAAKC,EAAY,0CAA0C,EAAG,CAC1F,UAAWN,EAAQ,KAAA,CACnB,EAEDD,EAAW,MAAM,YAAcK,EAAK,KAAK,YACzCL,EAAW,MAAM,WAAaK,EAAK,KAAK,UACzC,OAASG,EAAO,CACfC,EAAO,MAAM,gCAAiC,CAAE,MAAAD,CAAA,CAAO,EACvDE,EAAUC,EAAE,iBAAkB,2BAA2B,CAAC,CAC3D,CACD,mBAICC,EAsBM,MAAA,KAAA,EArBLC,EAAA,EAAA,EAAAD,EAMgCE,SALG1B,EAAA,cAAc,cAAa,CAAtD2B,EAAcC,WADtBzB,EAMgC0B,EAAA,CAH9B,IAAKF,EAAa,MACV,WAAAf,EAAA,MAAWgB,CAAS,EAApB,sBAAArB,GAAAK,EAAA,MAAWgB,CAAS,EAAArB,EAC5B,UAAAqB,EACA,aAAAD,CAAA,4EAJS,CAAAG,EAAA,EAAAH,EAAa,MAAQ1B,EAAAO,CAAA,EAAkB,OAAM,CAAA,UAMxDuB,EAKY9B,EAAA+B,CAAA,EAAA,YAJFnB,EAAA,2CAAAA,EAAO,MAAAN,GACf,UAAW,GACX,WAAYN,EAAAsB,CAAA,EAAC,iBAAA,UAAA,EACb,QAAS,CAAA,KAAA,KAAA,IAAA,EACV,SAAA,EAAA,sCAEDQ,EAKW9B,EAAAgC,CAAA,EAAA,CAJT,UAAWpB,EAAA,MACZ,KAAA,GACC,QAAOG,CAAA,aACR,IAA0C,KAAvCf,EAAAsB,CAAA,EAAC,iBAAA,eAAA,CAAA,EAAA,CAAA,CAAA"} \ No newline at end of file diff --git a/dist/AuthMechanismRsa-Bue2F6rp.chunk.mjs.map.license b/dist/AuthMechanismRsa-KxGDDW5e.chunk.mjs.map.license similarity index 100% rename from dist/AuthMechanismRsa-Bue2F6rp.chunk.mjs.map.license rename to dist/AuthMechanismRsa-KxGDDW5e.chunk.mjs.map.license diff --git a/dist/CommentView-sS3KT9Kn.chunk.mjs b/dist/CommentView-DhkE9b-A.chunk.mjs similarity index 96% rename from dist/CommentView-sS3KT9Kn.chunk.mjs rename to dist/CommentView-DhkE9b-A.chunk.mjs index bb267c9aa54..ae4aa4e78a6 100644 --- a/dist/CommentView-sS3KT9Kn.chunk.mjs +++ b/dist/CommentView-DhkE9b-A.chunk.mjs @@ -1,5 +1,5 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/index-xEyWukTf.chunk.mjs'),window.OC.filePath('', '', 'dist/index-B-dGqfIG.chunk.mjs'),window.OC.filePath('', '', 'dist/NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BLNGy7h5.chunk.mjs'),window.OC.filePath('', '', 'dist/Web-BwmPK40i.chunk.mjs'),window.OC.filePath('', '', 'dist/public-C1mLBHT3.chunk.mjs'),window.OC.filePath('', '', 'dist/util-Alk1iwuj.chunk.mjs'),window.OC.filePath('', '', 'dist/NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs'),window.OC.filePath('', '', 'dist/logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs'),window.OC.filePath('', '', 'dist/translation-DoG5ZELJ-CFYnqluG.chunk.mjs'),window.OC.filePath('', '', 'dist/common-createElementId-DhjFt1I9-C_oBIsvc.chunk.css'),window.OC.filePath('', '', 'dist/common-logger-D3RVzcfQ-BE3lcFW4.chunk.css'),window.OC.filePath('', '', 'dist/common-NcModal-DUWLRm_F-BsKc2RT9.chunk.css'),window.OC.filePath('', '', 'dist/ArrowRight-DKsMJImQ.chunk.mjs'),window.OC.filePath('', '', 'dist/common-ArrowRight-vZpQWIqF.chunk.css'),window.OC.filePath('', '', 'dist/colors-BDeMBgfq-BQ_6MaUU.chunk.mjs'),window.OC.filePath('', '', 'dist/NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcUserStatusIcon-DsviB2Cr-Bq_6hmXG.chunk.css'),window.OC.filePath('', '', 'dist/PencilOutline-CJ2aSuY5.chunk.mjs'),window.OC.filePath('', '', 'dist/common-PencilOutline-B3DMd8SU.chunk.css'),window.OC.filePath('', '', 'dist/NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcDateTime-b9UhLDij.chunk.css'),window.OC.filePath('', '', 'dist/TrashCanOutline-Cv7t-yKN.chunk.mjs'),window.OC.filePath('', '', 'dist/common-TrashCanOutline-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/common-NcAvatar-M3-CbKbq-DTVmI7NO.chunk.css'),window.OC.filePath('', '', 'dist/emoji-C8k9NUlo-rFKNlNNR.chunk.mjs'),window.OC.filePath('', '', 'dist/index-C_wPY1fR.chunk.mjs'),window.OC.filePath('', '', 'dist/NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcCheckboxRadioSwitch-D8Dfv4iw-CPGkDj-p.chunk.css'),window.OC.filePath('', '', 'dist/index-BOH7nBEM.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index-980JFXIN.chunk.css'),window.OC.filePath('', '', 'dist/NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcEmptyContent-CGAPqk4S-Don1d5Bd.chunk.css'),window.OC.filePath('', '', 'dist/NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcInputField-B1bGxYHt-BYHxARP-.chunk.css'),window.OC.filePath('', '', 'dist/common-index-CpSoVYoo.chunk.css'),window.OC.filePath('', '', 'dist/common-index-MZEZ7XGj.chunk.css')])))=>i.map(i=>d[i]); -import{o as n,f as h,g as u,t as y,h as N,m as V,a as T,_ as v,r as c,L as U,M as W,c as p,w as m,k as d,F as H,j as _,N as Z,y as w,C as G,b as J}from"./Web-BwmPK40i.chunk.mjs";import{a as f,c as K}from"./index-B-dGqfIG.chunk.mjs";import{t as Q}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{d as X,m as A}from"./pinia-CLibr4cC.chunk.mjs";import{N as Y,P as ee}from"./PencilOutline-CJ2aSuY5.chunk.mjs";import{a as te}from"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";/* empty css */import{_ as oe}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{N as ie}from"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import{N as se}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{_ as ae}from"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import{N as re,D as ne}from"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{N as ce}from"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import{A as me}from"./ArrowRight-DKsMJImQ.chunk.mjs";import{_ as S,l as de}from"./public-C1mLBHT3.chunk.mjs";import{a as I,T as le,f as ue}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{l as g}from"./activity-CgsVnLJG.chunk.mjs";import{c as D,a as pe}from"./GetComments-BEnDgTs6.chunk.mjs";import{c as x}from"./index-BLNGy7h5.chunk.mjs";const he={name:"NcActionSeparator"},ge={class:"action action-separator action--disabled",role:"separator"};function ye(e,o,i,a,r,s){return n(),h("li",ge)}const fe=oe(he,[["render",ye],["__scopeId","data-v-3e2324b7"]]),be={name:"CloseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ce=["aria-hidden","aria-label"],_e=["fill","width","height"],Ie={d:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"},Ne={key:0};function De(e,o,i,a,r,s){return n(),h("span",V(e.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon close-icon",role:"img",onClick:o[0]||(o[0]=b=>e.$emit("click",b))}),[(n(),h("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[u("path",Ie,[i.title?(n(),h("title",Ne,y(i.title),1)):N("",!0)])],8,_e))],16,Ce)}const ke=S(be,[["render",De]]);async function we(e,o,i){const a=["",e,o,i].join("/");await D.deleteFile(a)}async function Le(e,o,i,a){const r=["",e,o,i].join("/");return await D.customRequest(r,{method:"PROPPATCH",data:` +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/index-CcOuN-F7.chunk.mjs'),window.OC.filePath('', '', 'dist/index-B-dGqfIG.chunk.mjs'),window.OC.filePath('', '', 'dist/NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BLNGy7h5.chunk.mjs'),window.OC.filePath('', '', 'dist/Web-BwmPK40i.chunk.mjs'),window.OC.filePath('', '', 'dist/public-C1mLBHT3.chunk.mjs'),window.OC.filePath('', '', 'dist/util-Alk1iwuj.chunk.mjs'),window.OC.filePath('', '', 'dist/NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs'),window.OC.filePath('', '', 'dist/logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs'),window.OC.filePath('', '', 'dist/translation-DoG5ZELJ-CFYnqluG.chunk.mjs'),window.OC.filePath('', '', 'dist/common-createElementId-DhjFt1I9-C_oBIsvc.chunk.css'),window.OC.filePath('', '', 'dist/common-logger-D3RVzcfQ-BE3lcFW4.chunk.css'),window.OC.filePath('', '', 'dist/common-NcModal-DUWLRm_F-BsKc2RT9.chunk.css'),window.OC.filePath('', '', 'dist/ArrowRight-DKsMJImQ.chunk.mjs'),window.OC.filePath('', '', 'dist/common-ArrowRight-vZpQWIqF.chunk.css'),window.OC.filePath('', '', 'dist/colors-BDeMBgfq-BQ_6MaUU.chunk.mjs'),window.OC.filePath('', '', 'dist/NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcUserStatusIcon-DsviB2Cr-Bq_6hmXG.chunk.css'),window.OC.filePath('', '', 'dist/PencilOutline-CJ2aSuY5.chunk.mjs'),window.OC.filePath('', '', 'dist/common-PencilOutline-B3DMd8SU.chunk.css'),window.OC.filePath('', '', 'dist/NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcDateTime-b9UhLDij.chunk.css'),window.OC.filePath('', '', 'dist/TrashCanOutline-Cv7t-yKN.chunk.mjs'),window.OC.filePath('', '', 'dist/common-TrashCanOutline-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/common-NcAvatar-M3-CbKbq-DTVmI7NO.chunk.css'),window.OC.filePath('', '', 'dist/emoji-C8k9NUlo-rFKNlNNR.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BrjNu3x_.chunk.mjs'),window.OC.filePath('', '', 'dist/NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcCheckboxRadioSwitch-D8Dfv4iw-CPGkDj-p.chunk.css'),window.OC.filePath('', '', 'dist/index-dqLzhRZM.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index-BWhNCeJl.chunk.css'),window.OC.filePath('', '', 'dist/NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcEmptyContent-CGAPqk4S-Don1d5Bd.chunk.css'),window.OC.filePath('', '', 'dist/NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcInputField-B1bGxYHt-BYHxARP-.chunk.css'),window.OC.filePath('', '', 'dist/common-index-CpSoVYoo.chunk.css'),window.OC.filePath('', '', 'dist/common-index-MZEZ7XGj.chunk.css')])))=>i.map(i=>d[i]); +import{o as n,f as h,g as u,t as y,h as N,m as V,a as T,_ as v,r as c,L as U,M as W,c as p,w as m,k as d,F as H,j as _,N as Z,y as w,C as G,b as J}from"./Web-BwmPK40i.chunk.mjs";import{a as f,c as K}from"./index-B-dGqfIG.chunk.mjs";import{t as Q}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{d as X,m as A}from"./pinia-CLibr4cC.chunk.mjs";import{N as Y,P as ee}from"./PencilOutline-CJ2aSuY5.chunk.mjs";import{a as te}from"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";/* empty css */import{_ as oe}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{N as ie}from"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import{N as se}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{_ as ae}from"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import{N as re,D as ne}from"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{N as ce}from"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import{A as me}from"./ArrowRight-DKsMJImQ.chunk.mjs";import{_ as S,l as de}from"./public-C1mLBHT3.chunk.mjs";import{a as I,T as le,f as ue}from"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import{l as g}from"./activity-CgsVnLJG.chunk.mjs";import{c as D,a as pe}from"./GetComments-BEnDgTs6.chunk.mjs";import{c as x}from"./index-BLNGy7h5.chunk.mjs";const he={name:"NcActionSeparator"},ge={class:"action action-separator action--disabled",role:"separator"};function ye(e,o,i,a,r,s){return n(),h("li",ge)}const fe=oe(he,[["render",ye],["__scopeId","data-v-3e2324b7"]]),be={name:"CloseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ce=["aria-hidden","aria-label"],_e=["fill","width","height"],Ie={d:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"},Ne={key:0};function De(e,o,i,a,r,s){return n(),h("span",V(e.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon close-icon",role:"img",onClick:o[0]||(o[0]=b=>e.$emit("click",b))}),[(n(),h("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[u("path",Ie,[i.title?(n(),h("title",Ne,y(i.title),1)):N("",!0)])],8,_e))],16,Ce)}const ke=S(be,[["render",De]]);async function we(e,o,i){const a=["",e,o,i].join("/");await D.deleteFile(a)}async function Le(e,o,i,a){const r=["",e,o,i].join("/");return await D.customRequest(r,{method:"PROPPATCH",data:` @@ -8,5 +8,5 @@ import{o as n,f as h,g as u,t as y,h as N,m as V,a as T,_ as v,r as c,L as U,M a ${a} - `})}function L(e,o=1){const i=new DOMParser;let a=e;for(let r=0;r({idsInLimbo:[]}),actions:{addId(e){this.idsInLimbo.push(e)},removeId(e){const o=this.idsInLimbo.indexOf(e);o>-1&&this.idsInLimbo.splice(o,1)},checkForId(e){return this.idsInLimbo.includes(e)}}}),ve={props:{id:{type:Number,default:null},message:{type:String,default:""},resourceId:{type:[String,Number],required:!0},resourceType:{type:String,default:"files"}},data(){return{deleted:!1,editing:!1,loading:!1}},computed:{...A(M)},methods:{onEdit(){this.editing=!0},onEditCancel(){this.editing=!1,this.updateLocalMessage(this.message)},async onEditComment(e){this.loading=!0;try{await Le(this.resourceType,this.resourceId,this.id,e),g.debug("Comment edited",{resourceType:this.resourceType,resourceId:this.resourceId,id:this.id,message:e}),this.$emit("update:message",e),this.editing=!1}catch(o){I(t("comments","An error occurred while trying to edit the comment")),g.error("An error occurred while trying to edit the comment",{error:o})}finally{this.loading=!1}},onDeleteWithUndo(){this.$emit("delete"),this.deleted=!0,this.deletedCommentLimboStore.addId(this.id);const e=setTimeout(this.onDelete,le);ue(t("comments","Comment deleted"),()=>{clearTimeout(e),this.deleted=!1,this.deletedCommentLimboStore.removeId(this.id)})},async onDelete(){try{await we(this.resourceType,this.resourceId,this.id),g.debug("Comment deleted",{resourceType:this.resourceType,resourceId:this.resourceId,id:this.id}),this.$emit("delete",this.id)}catch(e){I(t("comments","An error occurred while trying to delete the comment")),g.error("An error occurred while trying to delete the comment",{error:e}),this.deleted=!1,this.deletedCommentLimboStore.removeId(this.id)}},async onNewComment(e){this.loading=!0;try{const o=await Te(this.resourceType,this.resourceId,e);g.debug("New comment posted",{resourceType:this.resourceType,resourceId:this.resourceId,newComment:o}),this.$emit("new",o),this.$emit("update:message",""),this.localMessage=""}catch(o){I(t("comments","An error occurred while trying to create the comment")),g.error("An error occurred while trying to create the comment",{error:o})}finally{this.loading=!1}}}},Ae=T(()=>v(()=>import("./index-xEyWukTf.chunk.mjs"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38]),import.meta.url)),Se=T(()=>v(()=>import("./index-C_wPY1fR.chunk.mjs").then(e=>e.i),__vite__mapDeps([27,4,5,8,9,10,1,11,12,28,23,24,29,3,6,30,7,13,31,32,33,14,15,34,35,36,37]),import.meta.url)),xe={name:"Comment",components:{IconArrowRight:me,IconClose:ke,IconTrashCanOutline:ne,IconPencilOutline:ee,NcActionButton:Y,NcActions:te,NcActionSeparator:fe,NcAvatar:ie,NcButton:se,NcDateTime:ae,NcLoadingIcon:re,NcRichContenteditable:Ae,NcRichText:Se},mixins:[ve],inheritAttrs:!1,props:{actorDisplayName:{type:String,required:!0},actorId:{type:String,required:!0},creationDateTime:{type:String,default:null},editor:{type:Boolean,default:!1},autoComplete:{type:Function,required:!0},userData:{type:Object,default:()=>({})},tag:{type:String,default:"div"}},data(){return{expanded:!1,localMessage:"",submitted:!1}},computed:{...A(M),isOwnComment(){return f().uid===this.actorId},richContent(){const e={};let o=this.localMessage;return Object.keys(this.userData).forEach((i,a)=>{const r=`mention-${a}`,s=new RegExp(`@${i}|@"${i}"`,"g");o=o.replace(s,`{${r}}`),e[r]={component:ce,props:{user:i,displayName:this.userData[i].label,primary:this.userData[i].primary}}}),{mentions:e,message:o}},isEmptyMessage(){return!this.localMessage||this.localMessage.trim()===""},timestamp(){return Date.parse(this.creationDateTime)},isLimbo(){return this.deletedCommentLimboStore.checkForId(this.id)}},watch:{message(e){this.updateLocalMessage(e)}},beforeMount(){this.updateLocalMessage(this.message)},methods:{t:Q,updateLocalMessage(e){this.localMessage=e.toString(),this.submitted=!1},onSubmit(){if(this.localMessage.trim()!==""){if(this.editor){this.onNewComment(this.localMessage.trim()),this.$nextTick(()=>{this.$refs.editor.$el.focus()});return}this.onEditComment(this.localMessage.trim())}},onExpand(){this.expanded=!0}}},Me={class:"comment__side"},Ee={class:"comment__body"},Oe={class:"comment__header"},Re={class:"comment__author"},$e={key:1,class:"comment_loading icon-loading-small"},je={class:"comment__editor-group"},Pe={class:"comment__submit"},ze={id:"tab-comments__editor-description",class:"comment__editor-description"};function qe(e,o,i,a,r,s){const b=c("NcAvatar"),C=c("IconPencilOutline"),l=c("NcActionButton"),E=c("NcActionSeparator"),O=c("IconTrashCanOutline"),R=c("IconClose"),$=c("NcActions"),j=c("NcDateTime"),P=c("NcRichContenteditable"),z=c("NcLoadingIcon"),q=c("IconArrowRight"),B=c("NcButton"),F=c("NcRichText");return U((n(),p(G(i.tag),{class:w([{"comment--loading":e.loading},"comment"])},{default:m(()=>[u("div",Me,[d(b,{class:"comment__avatar",displayName:i.actorDisplayName,user:i.actorId,size:32},null,8,["displayName","user"])]),u("div",Ee,[u("div",Oe,[u("span",Re,y(i.actorDisplayName),1),s.isOwnComment&&e.id&&!e.loading?(n(),p($,{key:0,class:"comment__actions"},{default:m(()=>[e.editing?(n(),p(l,{key:1,onClick:e.onEditCancel},{icon:m(()=>[d(R,{size:20})]),default:m(()=>[_(" "+y(s.t("comments","Cancel edit")),1)]),_:1},8,["onClick"])):(n(),h(H,{key:0},[d(l,{closeAfterClick:"",onClick:e.onEdit},{icon:m(()=>[d(C,{size:20})]),default:m(()=>[_(" "+y(s.t("comments","Edit comment")),1)]),_:1},8,["onClick"]),d(E),d(l,{closeAfterClick:"",onClick:e.onDeleteWithUndo},{icon:m(()=>[d(O,{size:20})]),default:m(()=>[_(" "+y(s.t("comments","Delete comment")),1)]),_:1},8,["onClick"])],64))]),_:1})):N("",!0),e.id&&e.loading?(n(),h("div",$e)):i.creationDateTime?(n(),p(j,{key:2,class:"comment__timestamp",timestamp:s.timestamp,ignoreSeconds:!0},null,8,["timestamp"])):N("",!0)]),i.editor||e.editing?(n(),h("form",{key:0,class:"comment__editor",onSubmit:o[2]||(o[2]=Z(()=>{},["prevent"]))},[u("div",je,[d(P,{ref:"editor",modelValue:r.localMessage,"onUpdate:modelValue":[o[0]||(o[0]=k=>r.localMessage=k),o[1]||(o[1]=k=>r.submitted=!1)],autoComplete:i.autoComplete,contenteditable:!e.loading,label:i.editor?s.t("comments","New comment"):s.t("comments","Edit comment"),placeholder:s.t("comments","Write a comment …"),userData:i.userData,"aria-describedby":"tab-comments__editor-description",onSubmit:s.onSubmit},null,8,["modelValue","autoComplete","contenteditable","label","placeholder","userData","onSubmit"]),u("div",Pe,[d(B,{variant:"tertiary-no-background",type:"submit","aria-label":s.t("comments","Post comment"),disabled:s.isEmptyMessage,onClick:s.onSubmit},{icon:m(()=>[e.loading?(n(),p(z,{key:0})):(n(),p(q,{key:1,size:20}))]),_:1},8,["aria-label","disabled","onClick"])])]),u("div",ze,y(s.t("comments","@ for mentions, : for emoji, / for smart picker")),1)],32)):(n(),p(F,{key:1,class:w(["comment__message",{"comment__message--expanded":r.expanded}]),text:s.richContent.message,arguments:s.richContent.mentions,useMarkdown:"",onClick:s.onExpand},null,8,["class","text","arguments","onClick"]))])]),_:1},8,["class"])),[[W,!e.deleted&&!s.isLimbo]])}const rt=S(xe,[["render",qe],["__scopeId","data-v-767e5a19"]]),nt=J({props:{resourceId:{type:Number,required:!0},resourceType:{type:String,default:"files"}},data(){return{editorData:{actorDisplayName:f().displayName,actorId:f().uid,key:"editor"},userData:{},currentResourceId:this.resourceId}},methods:{async autoComplete(e,o){const{data:i}=await x.get(K("core/autocomplete/get"),{params:{search:e,itemType:this.resourceType,itemId:this.currentResourceId,sorter:"commenters|share-recipients",limit:de("comments","maxAutoCompleteResults")}});return i.ocs.data.forEach(a=>{this.userData[a.id]=a}),o(Object.values(this.userData))},genMentionsData(e){return Object.values(e).flat().forEach(o=>{this.userData[o.mentionId]={icon:"icon-user",id:o.mentionId,label:o.mentionDisplayName,source:"users",primary:f()?.uid===o.mentionId}}),this.userData}}});export{nt as C,rt as a}; -//# sourceMappingURL=CommentView-sS3KT9Kn.chunk.mjs.map + `})}function L(e,o=1){const i=new DOMParser;let a=e;for(let r=0;r({idsInLimbo:[]}),actions:{addId(e){this.idsInLimbo.push(e)},removeId(e){const o=this.idsInLimbo.indexOf(e);o>-1&&this.idsInLimbo.splice(o,1)},checkForId(e){return this.idsInLimbo.includes(e)}}}),ve={props:{id:{type:Number,default:null},message:{type:String,default:""},resourceId:{type:[String,Number],required:!0},resourceType:{type:String,default:"files"}},data(){return{deleted:!1,editing:!1,loading:!1}},computed:{...A(M)},methods:{onEdit(){this.editing=!0},onEditCancel(){this.editing=!1,this.updateLocalMessage(this.message)},async onEditComment(e){this.loading=!0;try{await Le(this.resourceType,this.resourceId,this.id,e),g.debug("Comment edited",{resourceType:this.resourceType,resourceId:this.resourceId,id:this.id,message:e}),this.$emit("update:message",e),this.editing=!1}catch(o){I(t("comments","An error occurred while trying to edit the comment")),g.error("An error occurred while trying to edit the comment",{error:o})}finally{this.loading=!1}},onDeleteWithUndo(){this.$emit("delete"),this.deleted=!0,this.deletedCommentLimboStore.addId(this.id);const e=setTimeout(this.onDelete,le);ue(t("comments","Comment deleted"),()=>{clearTimeout(e),this.deleted=!1,this.deletedCommentLimboStore.removeId(this.id)})},async onDelete(){try{await we(this.resourceType,this.resourceId,this.id),g.debug("Comment deleted",{resourceType:this.resourceType,resourceId:this.resourceId,id:this.id}),this.$emit("delete",this.id)}catch(e){I(t("comments","An error occurred while trying to delete the comment")),g.error("An error occurred while trying to delete the comment",{error:e}),this.deleted=!1,this.deletedCommentLimboStore.removeId(this.id)}},async onNewComment(e){this.loading=!0;try{const o=await Te(this.resourceType,this.resourceId,e);g.debug("New comment posted",{resourceType:this.resourceType,resourceId:this.resourceId,newComment:o}),this.$emit("new",o),this.$emit("update:message",""),this.localMessage=""}catch(o){I(t("comments","An error occurred while trying to create the comment")),g.error("An error occurred while trying to create the comment",{error:o})}finally{this.loading=!1}}}},Ae=T(()=>v(()=>import("./index-CcOuN-F7.chunk.mjs"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38]),import.meta.url)),Se=T(()=>v(()=>import("./index-BrjNu3x_.chunk.mjs").then(e=>e.i),__vite__mapDeps([27,4,5,8,9,10,1,11,12,28,23,24,29,3,6,30,7,13,31,32,33,14,15,34,35,36,37]),import.meta.url)),xe={name:"Comment",components:{IconArrowRight:me,IconClose:ke,IconTrashCanOutline:ne,IconPencilOutline:ee,NcActionButton:Y,NcActions:te,NcActionSeparator:fe,NcAvatar:ie,NcButton:se,NcDateTime:ae,NcLoadingIcon:re,NcRichContenteditable:Ae,NcRichText:Se},mixins:[ve],inheritAttrs:!1,props:{actorDisplayName:{type:String,required:!0},actorId:{type:String,required:!0},creationDateTime:{type:String,default:null},editor:{type:Boolean,default:!1},autoComplete:{type:Function,required:!0},userData:{type:Object,default:()=>({})},tag:{type:String,default:"div"}},data(){return{expanded:!1,localMessage:"",submitted:!1}},computed:{...A(M),isOwnComment(){return f().uid===this.actorId},richContent(){const e={};let o=this.localMessage;return Object.keys(this.userData).forEach((i,a)=>{const r=`mention-${a}`,s=new RegExp(`@${i}|@"${i}"`,"g");o=o.replace(s,`{${r}}`),e[r]={component:ce,props:{user:i,displayName:this.userData[i].label,primary:this.userData[i].primary}}}),{mentions:e,message:o}},isEmptyMessage(){return!this.localMessage||this.localMessage.trim()===""},timestamp(){return Date.parse(this.creationDateTime)},isLimbo(){return this.deletedCommentLimboStore.checkForId(this.id)}},watch:{message(e){this.updateLocalMessage(e)}},beforeMount(){this.updateLocalMessage(this.message)},methods:{t:Q,updateLocalMessage(e){this.localMessage=e.toString(),this.submitted=!1},onSubmit(){if(this.localMessage.trim()!==""){if(this.editor){this.onNewComment(this.localMessage.trim()),this.$nextTick(()=>{this.$refs.editor.$el.focus()});return}this.onEditComment(this.localMessage.trim())}},onExpand(){this.expanded=!0}}},Me={class:"comment__side"},Ee={class:"comment__body"},Oe={class:"comment__header"},Re={class:"comment__author"},$e={key:1,class:"comment_loading icon-loading-small"},je={class:"comment__editor-group"},Pe={class:"comment__submit"},ze={id:"tab-comments__editor-description",class:"comment__editor-description"};function qe(e,o,i,a,r,s){const b=c("NcAvatar"),C=c("IconPencilOutline"),l=c("NcActionButton"),E=c("NcActionSeparator"),O=c("IconTrashCanOutline"),R=c("IconClose"),$=c("NcActions"),j=c("NcDateTime"),P=c("NcRichContenteditable"),z=c("NcLoadingIcon"),q=c("IconArrowRight"),B=c("NcButton"),F=c("NcRichText");return U((n(),p(G(i.tag),{class:w([{"comment--loading":e.loading},"comment"])},{default:m(()=>[u("div",Me,[d(b,{class:"comment__avatar",displayName:i.actorDisplayName,user:i.actorId,size:32},null,8,["displayName","user"])]),u("div",Ee,[u("div",Oe,[u("span",Re,y(i.actorDisplayName),1),s.isOwnComment&&e.id&&!e.loading?(n(),p($,{key:0,class:"comment__actions"},{default:m(()=>[e.editing?(n(),p(l,{key:1,onClick:e.onEditCancel},{icon:m(()=>[d(R,{size:20})]),default:m(()=>[_(" "+y(s.t("comments","Cancel edit")),1)]),_:1},8,["onClick"])):(n(),h(H,{key:0},[d(l,{closeAfterClick:"",onClick:e.onEdit},{icon:m(()=>[d(C,{size:20})]),default:m(()=>[_(" "+y(s.t("comments","Edit comment")),1)]),_:1},8,["onClick"]),d(E),d(l,{closeAfterClick:"",onClick:e.onDeleteWithUndo},{icon:m(()=>[d(O,{size:20})]),default:m(()=>[_(" "+y(s.t("comments","Delete comment")),1)]),_:1},8,["onClick"])],64))]),_:1})):N("",!0),e.id&&e.loading?(n(),h("div",$e)):i.creationDateTime?(n(),p(j,{key:2,class:"comment__timestamp",timestamp:s.timestamp,ignoreSeconds:!0},null,8,["timestamp"])):N("",!0)]),i.editor||e.editing?(n(),h("form",{key:0,class:"comment__editor",onSubmit:o[2]||(o[2]=Z(()=>{},["prevent"]))},[u("div",je,[d(P,{ref:"editor",modelValue:r.localMessage,"onUpdate:modelValue":[o[0]||(o[0]=k=>r.localMessage=k),o[1]||(o[1]=k=>r.submitted=!1)],autoComplete:i.autoComplete,contenteditable:!e.loading,label:i.editor?s.t("comments","New comment"):s.t("comments","Edit comment"),placeholder:s.t("comments","Write a comment …"),userData:i.userData,"aria-describedby":"tab-comments__editor-description",onSubmit:s.onSubmit},null,8,["modelValue","autoComplete","contenteditable","label","placeholder","userData","onSubmit"]),u("div",Pe,[d(B,{variant:"tertiary-no-background",type:"submit","aria-label":s.t("comments","Post comment"),disabled:s.isEmptyMessage,onClick:s.onSubmit},{icon:m(()=>[e.loading?(n(),p(z,{key:0})):(n(),p(q,{key:1,size:20}))]),_:1},8,["aria-label","disabled","onClick"])])]),u("div",ze,y(s.t("comments","@ for mentions, : for emoji, / for smart picker")),1)],32)):(n(),p(F,{key:1,class:w(["comment__message",{"comment__message--expanded":r.expanded}]),text:s.richContent.message,arguments:s.richContent.mentions,useMarkdown:"",onClick:s.onExpand},null,8,["class","text","arguments","onClick"]))])]),_:1},8,["class"])),[[W,!e.deleted&&!s.isLimbo]])}const rt=S(xe,[["render",qe],["__scopeId","data-v-767e5a19"]]),nt=J({props:{resourceId:{type:Number,required:!0},resourceType:{type:String,default:"files"}},data(){return{editorData:{actorDisplayName:f().displayName,actorId:f().uid,key:"editor"},userData:{},currentResourceId:this.resourceId}},methods:{async autoComplete(e,o){const{data:i}=await x.get(K("core/autocomplete/get"),{params:{search:e,itemType:this.resourceType,itemId:this.currentResourceId,sorter:"commenters|share-recipients",limit:de("comments","maxAutoCompleteResults")}});return i.ocs.data.forEach(a=>{this.userData[a.id]=a}),o(Object.values(this.userData))},genMentionsData(e){return Object.values(e).flat().forEach(o=>{this.userData[o.mentionId]={icon:"icon-user",id:o.mentionId,label:o.mentionDisplayName,source:"users",primary:f()?.uid===o.mentionId}}),this.userData}}});export{nt as C,rt as a}; +//# sourceMappingURL=CommentView-DhkE9b-A.chunk.mjs.map diff --git a/dist/CommentView-sS3KT9Kn.chunk.mjs.license b/dist/CommentView-DhkE9b-A.chunk.mjs.license similarity index 100% rename from dist/CommentView-sS3KT9Kn.chunk.mjs.license rename to dist/CommentView-DhkE9b-A.chunk.mjs.license diff --git a/dist/CommentView-sS3KT9Kn.chunk.mjs.map b/dist/CommentView-DhkE9b-A.chunk.mjs.map similarity index 99% rename from dist/CommentView-sS3KT9Kn.chunk.mjs.map rename to dist/CommentView-DhkE9b-A.chunk.mjs.map index b6b0420a197..232b1bc6fbb 100644 --- a/dist/CommentView-sS3KT9Kn.chunk.mjs.map +++ b/dist/CommentView-DhkE9b-A.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"mappings":"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","names":["_sfc_main","_hoisted_1","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","NcActionSeparator","_export_sfc","_hoisted_3","_createElementBlock","_mergeProps","$event","_createElementVNode","_openBlock","DeleteComment","resourceType","resourceId","commentId","commentPath","client","EditComment","message","decodeHtmlEntities","value","passes","parser","decoded","i","NewComment","resourcePath","response","axios","getRootPath","getCurrentUser","comment","props","useDeletedCommentLimbo","defineStore","id","index","CommentMixin","mapStores","logger","error","showError","timeOutDelete","TOAST_UNDO_TIMEOUT","showUndo","newComment","NcRichContenteditable","defineAsyncComponent","NcRichText","n","IconArrowRight","IconClose","IconTrashCanOutline","IconPencilOutline","NcActionButton","NcActions","NcAvatar","NcButton","NcDateTime","NcLoadingIcon","mentions","user","key","regex","NcUserBubble","t","_hoisted_2","_hoisted_4","_hoisted_6","_hoisted_7","_withDirectives","_createBlock","_resolveDynamicComponent","_normalizeClass","_createVNode","_component_NcAvatar","_toDisplayString","_component_NcActions","_component_NcActionButton","_component_IconClose","_createTextVNode","_Fragment","_component_IconPencilOutline","_component_NcActionSeparator","_component_IconTrashCanOutline","_hoisted_5","_component_NcDateTime","_component_NcRichContenteditable","_component_NcButton","_component_NcLoadingIcon","_component_IconArrowRight","_hoisted_8","_component_NcRichText","_vShow","CommentView","defineComponent","search","callback","data","generateOcsUrl","loadState","mention"],"ignoreList":[0,1],"sources":["../node_modules/@nextcloud/vue/dist/chunks/NcActionSeparator-B9pNQaji.mjs","../node_modules/vue-material-design-icons/Close.vue","../build/frontend/apps/comments/src/services/DeleteComment.ts","../build/frontend/apps/comments/src/services/EditComment.ts","../build/frontend/apps/comments/src/utils/decodeHtmlEntities.ts","../build/frontend/apps/comments/src/services/NewComment.ts","../build/frontend/apps/comments/src/store/deletedCommentLimbo.ts","../build/frontend/apps/comments/src/mixins/CommentMixin.ts","../build/frontend/apps/comments/src/components/Comment.vue","../build/frontend/apps/comments/src/mixins/CommentView.ts"],"sourcesContent":["import '../assets/NcActionSeparator-Ct2RnclR.css';\nimport { openBlock, createElementBlock } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionSeparator\"\n};\nconst _hoisted_1 = {\n class: \"action action-separator action--disabled\",\n role: \"separator\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"li\", _hoisted_1);\n}\nconst NcActionSeparator = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-3e2324b7\"]]);\nexport {\n NcActionSeparator as N\n};\n//# sourceMappingURL=NcActionSeparator-B9pNQaji.mjs.map\n","\n\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport client from './DavClient.ts'\n\n/**\n * Delete a comment\n *\n * @param resourceType the resource type\n * @param resourceId the resource ID\n * @param commentId the comment iD\n */\nexport default async function(resourceType: string, resourceId: number, commentId: number) {\n\tconst commentPath = ['', resourceType, resourceId, commentId].join('/')\n\n\t// Fetch newly created comment data\n\tawait client.deleteFile(commentPath)\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport client from './DavClient.ts'\n\n/**\n * Edit an existing comment\n *\n * @param resourceType the resource type\n * @param resourceId the resource ID\n * @param commentId the comment iD\n * @param message the message content\n */\nexport default async function(resourceType: string, resourceId: number, commentId: number, message: string) {\n\tconst commentPath = ['', resourceType, resourceId, commentId].join('/')\n\n\treturn await client.customRequest(commentPath, {\n\t\tmethod: 'PROPPATCH',\n\t\tdata: `\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${message}\n\t\t\t\t\n\t\t\t\n\t\t\t`,\n\t})\n}\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * @param value - the string to decode\n * @param passes - the number of times to decode the string, default is 1\n */\nexport function decodeHtmlEntities(value: string, passes = 1) {\n\tconst parser = new DOMParser()\n\tlet decoded = value\n\tfor (let i = 0; i < passes; i++) {\n\t\tdecoded = parser.parseFromString(decoded, 'text/html').documentElement.textContent\n\t}\n\treturn decoded\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { getRootPath } from '../utils/davUtils.ts'\nimport { decodeHtmlEntities } from '../utils/decodeHtmlEntities.ts'\nimport client from './DavClient.ts'\n\n/**\n * Retrieve the comments list\n *\n * @param resourceType the resource type\n * @param resourceId the resource ID\n * @param message the message\n * @return The new comment\n */\nexport default async function(resourceType: string, resourceId: number, message: string) {\n\tconst resourcePath = ['', resourceType, resourceId].join('/')\n\n\tconst response = await axios.post(getRootPath() + resourcePath, {\n\t\tactorDisplayName: getCurrentUser()!.displayName,\n\t\tactorId: getCurrentUser()!.uid,\n\t\tactorType: 'users',\n\t\tcreationDateTime: (new Date()).toUTCString(),\n\t\tmessage,\n\t\tobjectType: resourceType,\n\t\tverb: 'comment',\n\t})\n\n\t// Retrieve comment id from resource location\n\tconst commentId = parseInt(response.headers['content-location'].split('/').pop())\n\tconst commentPath = resourcePath + '/' + commentId\n\n\t// Fetch newly created comment data\n\tconst comment = await client.stat(commentPath, {\n\t\tdetails: true,\n\t})\n\n\tconst props = comment.data.props\n\t// Decode twice to handle potentially double-encoded entities\n\t// FIXME Remove this once https://github.com/nextcloud/server/issues/29306\n\t// is resolved\n\tprops.actorDisplayName = decodeHtmlEntities(props.actorDisplayName, 2)\n\tprops.message = decodeHtmlEntities(props.message, 2)\n\n\treturn comment.data\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { defineStore } from 'pinia'\n\nexport const useDeletedCommentLimbo = defineStore('deletedCommentLimbo', {\n\tstate: () => ({\n\t\tidsInLimbo: [],\n\t}),\n\tactions: {\n\t\taddId(id) {\n\t\t\tthis.idsInLimbo.push(id)\n\t\t},\n\n\t\tremoveId(id) {\n\t\t\tconst index = this.idsInLimbo.indexOf(id)\n\t\t\tif (index > -1) {\n\t\t\t\tthis.idsInLimbo.splice(index, 1)\n\t\t\t}\n\t\t},\n\n\t\tcheckForId(id) {\n\t\t\treturn this.idsInLimbo.includes(id)\n\t\t},\n\t},\n})\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { showError, showUndo, TOAST_UNDO_TIMEOUT } from '@nextcloud/dialogs'\nimport { mapStores } from 'pinia'\nimport logger from '../logger.ts'\nimport DeleteComment from '../services/DeleteComment.ts'\nimport EditComment from '../services/EditComment.ts'\nimport NewComment from '../services/NewComment.ts'\nimport { useDeletedCommentLimbo } from '../store/deletedCommentLimbo.ts'\n\nexport default {\n\tprops: {\n\t\tid: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\t\tmessage: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tresourceId: {\n\t\t\ttype: [String, Number],\n\t\t\trequired: true,\n\t\t},\n\t\tresourceType: {\n\t\t\ttype: String,\n\t\t\tdefault: 'files',\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tdeleted: false,\n\t\t\tediting: false,\n\t\t\tloading: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t...mapStores(useDeletedCommentLimbo),\n\t},\n\n\tmethods: {\n\t\t// EDITION\n\t\tonEdit() {\n\t\t\tthis.editing = true\n\t\t},\n\t\tonEditCancel() {\n\t\t\tthis.editing = false\n\t\t\t// Restore original value\n\t\t\tthis.updateLocalMessage(this.message)\n\t\t},\n\t\tasync onEditComment(message) {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tawait EditComment(this.resourceType, this.resourceId, this.id, message)\n\t\t\t\tlogger.debug('Comment edited', { resourceType: this.resourceType, resourceId: this.resourceId, id: this.id, message })\n\t\t\t\tthis.$emit('update:message', message)\n\t\t\t\tthis.editing = false\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to edit the comment'))\n\t\t\t\tlogger.error('An error occurred while trying to edit the comment', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\t// DELETION\n\t\tonDeleteWithUndo() {\n\t\t\tthis.$emit('delete')\n\t\t\tthis.deleted = true\n\t\t\tthis.deletedCommentLimboStore.addId(this.id)\n\t\t\tconst timeOutDelete = setTimeout(this.onDelete, TOAST_UNDO_TIMEOUT)\n\t\t\tshowUndo(t('comments', 'Comment deleted'), () => {\n\t\t\t\tclearTimeout(timeOutDelete)\n\t\t\t\tthis.deleted = false\n\t\t\t\tthis.deletedCommentLimboStore.removeId(this.id)\n\t\t\t})\n\t\t},\n\t\tasync onDelete() {\n\t\t\ttry {\n\t\t\t\tawait DeleteComment(this.resourceType, this.resourceId, this.id)\n\t\t\t\tlogger.debug('Comment deleted', { resourceType: this.resourceType, resourceId: this.resourceId, id: this.id })\n\t\t\t\tthis.$emit('delete', this.id)\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to delete the comment'))\n\t\t\t\tlogger.error('An error occurred while trying to delete the comment', { error })\n\t\t\t\tthis.deleted = false\n\t\t\t\tthis.deletedCommentLimboStore.removeId(this.id)\n\t\t\t}\n\t\t},\n\n\t\t// CREATION\n\t\tasync onNewComment(message) {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tconst newComment = await NewComment(this.resourceType, this.resourceId, message)\n\t\t\t\tlogger.debug('New comment posted', { resourceType: this.resourceType, resourceId: this.resourceId, newComment })\n\t\t\t\tthis.$emit('new', newComment)\n\n\t\t\t\t// Clear old content\n\t\t\t\tthis.$emit('update:message', '')\n\t\t\t\tthis.localMessage = ''\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to create the comment'))\n\t\t\t\tlogger.error('An error occurred while trying to create the comment', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t},\n}\n","\n\n\n\n\n\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { loadState } from '@nextcloud/initial-state'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n\tprops: {\n\t\tresourceId: {\n\t\t\ttype: Number,\n\t\t\trequired: true,\n\t\t},\n\t\tresourceType: {\n\t\t\ttype: String,\n\t\t\tdefault: 'files',\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\teditorData: {\n\t\t\t\tactorDisplayName: getCurrentUser()!.displayName as string,\n\t\t\t\tactorId: getCurrentUser()!.uid as string,\n\t\t\t\tkey: 'editor',\n\t\t\t},\n\t\t\tuserData: {},\n\t\t\tcurrentResourceId: this.resourceId,\n\t\t}\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Autocomplete `@mentions`\n\t\t *\n\t\t * @param search the query\n\t\t * @param callback the callback to process the results with\n\t\t */\n\t\tasync autoComplete(search, callback) {\n\t\t\tconst { data } = await axios.get(generateOcsUrl('core/autocomplete/get'), {\n\t\t\t\tparams: {\n\t\t\t\t\tsearch,\n\t\t\t\t\titemType: this.resourceType,\n\t\t\t\t\titemId: this.currentResourceId,\n\t\t\t\t\tsorter: 'commenters|share-recipients',\n\t\t\t\t\tlimit: loadState('comments', 'maxAutoCompleteResults'),\n\t\t\t\t},\n\t\t\t})\n\t\t\t// Save user data so it can be used by the editor to replace mentions\n\t\t\tdata.ocs.data.forEach((user) => {\n\t\t\t\tthis.userData[user.id] = user\n\t\t\t})\n\t\t\treturn callback(Object.values(this.userData))\n\t\t},\n\n\t\t/**\n\t\t * Make sure we have all mentions as Array of objects\n\t\t *\n\t\t * @param mentions the mentions list\n\t\t */\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\tgenMentionsData(mentions: any[]): Record {\n\t\t\tObject.values(mentions)\n\t\t\t\t.flat()\n\t\t\t\t.forEach((mention) => {\n\t\t\t\t\tthis.userData[mention.mentionId] = {\n\t\t\t\t\t\t// TODO: support groups\n\t\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\t\tid: mention.mentionId,\n\t\t\t\t\t\tlabel: mention.mentionDisplayName,\n\t\t\t\t\t\tsource: 'users',\n\t\t\t\t\t\tprimary: getCurrentUser()?.uid === mention.mentionId,\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\treturn this.userData\n\t\t},\n\t},\n})\n"],"file":"CommentView-sS3KT9Kn.chunk.mjs"} \ No newline at end of file +{"version":3,"mappings":"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","names":["_sfc_main","_hoisted_1","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","NcActionSeparator","_export_sfc","_hoisted_3","_createElementBlock","_mergeProps","$event","_createElementVNode","_openBlock","DeleteComment","resourceType","resourceId","commentId","commentPath","client","EditComment","message","decodeHtmlEntities","value","passes","parser","decoded","i","NewComment","resourcePath","response","axios","getRootPath","getCurrentUser","comment","props","useDeletedCommentLimbo","defineStore","id","index","CommentMixin","mapStores","logger","error","showError","timeOutDelete","TOAST_UNDO_TIMEOUT","showUndo","newComment","NcRichContenteditable","defineAsyncComponent","NcRichText","n","IconArrowRight","IconClose","IconTrashCanOutline","IconPencilOutline","NcActionButton","NcActions","NcAvatar","NcButton","NcDateTime","NcLoadingIcon","mentions","user","key","regex","NcUserBubble","t","_hoisted_2","_hoisted_4","_hoisted_6","_hoisted_7","_withDirectives","_createBlock","_resolveDynamicComponent","_normalizeClass","_createVNode","_component_NcAvatar","_toDisplayString","_component_NcActions","_component_NcActionButton","_component_IconClose","_createTextVNode","_Fragment","_component_IconPencilOutline","_component_NcActionSeparator","_component_IconTrashCanOutline","_hoisted_5","_component_NcDateTime","_component_NcRichContenteditable","_component_NcButton","_component_NcLoadingIcon","_component_IconArrowRight","_hoisted_8","_component_NcRichText","_vShow","CommentView","defineComponent","search","callback","data","generateOcsUrl","loadState","mention"],"ignoreList":[0,1],"sources":["../node_modules/@nextcloud/vue/dist/chunks/NcActionSeparator-B9pNQaji.mjs","../node_modules/vue-material-design-icons/Close.vue","../build/frontend/apps/comments/src/services/DeleteComment.ts","../build/frontend/apps/comments/src/services/EditComment.ts","../build/frontend/apps/comments/src/utils/decodeHtmlEntities.ts","../build/frontend/apps/comments/src/services/NewComment.ts","../build/frontend/apps/comments/src/store/deletedCommentLimbo.ts","../build/frontend/apps/comments/src/mixins/CommentMixin.ts","../build/frontend/apps/comments/src/components/Comment.vue","../build/frontend/apps/comments/src/mixins/CommentView.ts"],"sourcesContent":["import '../assets/NcActionSeparator-Ct2RnclR.css';\nimport { openBlock, createElementBlock } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionSeparator\"\n};\nconst _hoisted_1 = {\n class: \"action action-separator action--disabled\",\n role: \"separator\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"li\", _hoisted_1);\n}\nconst NcActionSeparator = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-3e2324b7\"]]);\nexport {\n NcActionSeparator as N\n};\n//# sourceMappingURL=NcActionSeparator-B9pNQaji.mjs.map\n","\n\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport client from './DavClient.ts'\n\n/**\n * Delete a comment\n *\n * @param resourceType the resource type\n * @param resourceId the resource ID\n * @param commentId the comment iD\n */\nexport default async function(resourceType: string, resourceId: number, commentId: number) {\n\tconst commentPath = ['', resourceType, resourceId, commentId].join('/')\n\n\t// Fetch newly created comment data\n\tawait client.deleteFile(commentPath)\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport client from './DavClient.ts'\n\n/**\n * Edit an existing comment\n *\n * @param resourceType the resource type\n * @param resourceId the resource ID\n * @param commentId the comment iD\n * @param message the message content\n */\nexport default async function(resourceType: string, resourceId: number, commentId: number, message: string) {\n\tconst commentPath = ['', resourceType, resourceId, commentId].join('/')\n\n\treturn await client.customRequest(commentPath, {\n\t\tmethod: 'PROPPATCH',\n\t\tdata: `\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${message}\n\t\t\t\t\n\t\t\t\n\t\t\t`,\n\t})\n}\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * @param value - the string to decode\n * @param passes - the number of times to decode the string, default is 1\n */\nexport function decodeHtmlEntities(value: string, passes = 1) {\n\tconst parser = new DOMParser()\n\tlet decoded = value\n\tfor (let i = 0; i < passes; i++) {\n\t\tdecoded = parser.parseFromString(decoded, 'text/html').documentElement.textContent\n\t}\n\treturn decoded\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { getRootPath } from '../utils/davUtils.ts'\nimport { decodeHtmlEntities } from '../utils/decodeHtmlEntities.ts'\nimport client from './DavClient.ts'\n\n/**\n * Retrieve the comments list\n *\n * @param resourceType the resource type\n * @param resourceId the resource ID\n * @param message the message\n * @return The new comment\n */\nexport default async function(resourceType: string, resourceId: number, message: string) {\n\tconst resourcePath = ['', resourceType, resourceId].join('/')\n\n\tconst response = await axios.post(getRootPath() + resourcePath, {\n\t\tactorDisplayName: getCurrentUser()!.displayName,\n\t\tactorId: getCurrentUser()!.uid,\n\t\tactorType: 'users',\n\t\tcreationDateTime: (new Date()).toUTCString(),\n\t\tmessage,\n\t\tobjectType: resourceType,\n\t\tverb: 'comment',\n\t})\n\n\t// Retrieve comment id from resource location\n\tconst commentId = parseInt(response.headers['content-location'].split('/').pop())\n\tconst commentPath = resourcePath + '/' + commentId\n\n\t// Fetch newly created comment data\n\tconst comment = await client.stat(commentPath, {\n\t\tdetails: true,\n\t})\n\n\tconst props = comment.data.props\n\t// Decode twice to handle potentially double-encoded entities\n\t// FIXME Remove this once https://github.com/nextcloud/server/issues/29306\n\t// is resolved\n\tprops.actorDisplayName = decodeHtmlEntities(props.actorDisplayName, 2)\n\tprops.message = decodeHtmlEntities(props.message, 2)\n\n\treturn comment.data\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { defineStore } from 'pinia'\n\nexport const useDeletedCommentLimbo = defineStore('deletedCommentLimbo', {\n\tstate: () => ({\n\t\tidsInLimbo: [],\n\t}),\n\tactions: {\n\t\taddId(id) {\n\t\t\tthis.idsInLimbo.push(id)\n\t\t},\n\n\t\tremoveId(id) {\n\t\t\tconst index = this.idsInLimbo.indexOf(id)\n\t\t\tif (index > -1) {\n\t\t\t\tthis.idsInLimbo.splice(index, 1)\n\t\t\t}\n\t\t},\n\n\t\tcheckForId(id) {\n\t\t\treturn this.idsInLimbo.includes(id)\n\t\t},\n\t},\n})\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { showError, showUndo, TOAST_UNDO_TIMEOUT } from '@nextcloud/dialogs'\nimport { mapStores } from 'pinia'\nimport logger from '../logger.ts'\nimport DeleteComment from '../services/DeleteComment.ts'\nimport EditComment from '../services/EditComment.ts'\nimport NewComment from '../services/NewComment.ts'\nimport { useDeletedCommentLimbo } from '../store/deletedCommentLimbo.ts'\n\nexport default {\n\tprops: {\n\t\tid: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\t\tmessage: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tresourceId: {\n\t\t\ttype: [String, Number],\n\t\t\trequired: true,\n\t\t},\n\t\tresourceType: {\n\t\t\ttype: String,\n\t\t\tdefault: 'files',\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tdeleted: false,\n\t\t\tediting: false,\n\t\t\tloading: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t...mapStores(useDeletedCommentLimbo),\n\t},\n\n\tmethods: {\n\t\t// EDITION\n\t\tonEdit() {\n\t\t\tthis.editing = true\n\t\t},\n\t\tonEditCancel() {\n\t\t\tthis.editing = false\n\t\t\t// Restore original value\n\t\t\tthis.updateLocalMessage(this.message)\n\t\t},\n\t\tasync onEditComment(message) {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tawait EditComment(this.resourceType, this.resourceId, this.id, message)\n\t\t\t\tlogger.debug('Comment edited', { resourceType: this.resourceType, resourceId: this.resourceId, id: this.id, message })\n\t\t\t\tthis.$emit('update:message', message)\n\t\t\t\tthis.editing = false\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to edit the comment'))\n\t\t\t\tlogger.error('An error occurred while trying to edit the comment', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\t// DELETION\n\t\tonDeleteWithUndo() {\n\t\t\tthis.$emit('delete')\n\t\t\tthis.deleted = true\n\t\t\tthis.deletedCommentLimboStore.addId(this.id)\n\t\t\tconst timeOutDelete = setTimeout(this.onDelete, TOAST_UNDO_TIMEOUT)\n\t\t\tshowUndo(t('comments', 'Comment deleted'), () => {\n\t\t\t\tclearTimeout(timeOutDelete)\n\t\t\t\tthis.deleted = false\n\t\t\t\tthis.deletedCommentLimboStore.removeId(this.id)\n\t\t\t})\n\t\t},\n\t\tasync onDelete() {\n\t\t\ttry {\n\t\t\t\tawait DeleteComment(this.resourceType, this.resourceId, this.id)\n\t\t\t\tlogger.debug('Comment deleted', { resourceType: this.resourceType, resourceId: this.resourceId, id: this.id })\n\t\t\t\tthis.$emit('delete', this.id)\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to delete the comment'))\n\t\t\t\tlogger.error('An error occurred while trying to delete the comment', { error })\n\t\t\t\tthis.deleted = false\n\t\t\t\tthis.deletedCommentLimboStore.removeId(this.id)\n\t\t\t}\n\t\t},\n\n\t\t// CREATION\n\t\tasync onNewComment(message) {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tconst newComment = await NewComment(this.resourceType, this.resourceId, message)\n\t\t\t\tlogger.debug('New comment posted', { resourceType: this.resourceType, resourceId: this.resourceId, newComment })\n\t\t\t\tthis.$emit('new', newComment)\n\n\t\t\t\t// Clear old content\n\t\t\t\tthis.$emit('update:message', '')\n\t\t\t\tthis.localMessage = ''\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to create the comment'))\n\t\t\t\tlogger.error('An error occurred while trying to create the comment', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t},\n}\n","\n\n\n\n\n\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { loadState } from '@nextcloud/initial-state'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n\tprops: {\n\t\tresourceId: {\n\t\t\ttype: Number,\n\t\t\trequired: true,\n\t\t},\n\t\tresourceType: {\n\t\t\ttype: String,\n\t\t\tdefault: 'files',\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\teditorData: {\n\t\t\t\tactorDisplayName: getCurrentUser()!.displayName as string,\n\t\t\t\tactorId: getCurrentUser()!.uid as string,\n\t\t\t\tkey: 'editor',\n\t\t\t},\n\t\t\tuserData: {},\n\t\t\tcurrentResourceId: this.resourceId,\n\t\t}\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Autocomplete `@mentions`\n\t\t *\n\t\t * @param search the query\n\t\t * @param callback the callback to process the results with\n\t\t */\n\t\tasync autoComplete(search, callback) {\n\t\t\tconst { data } = await axios.get(generateOcsUrl('core/autocomplete/get'), {\n\t\t\t\tparams: {\n\t\t\t\t\tsearch,\n\t\t\t\t\titemType: this.resourceType,\n\t\t\t\t\titemId: this.currentResourceId,\n\t\t\t\t\tsorter: 'commenters|share-recipients',\n\t\t\t\t\tlimit: loadState('comments', 'maxAutoCompleteResults'),\n\t\t\t\t},\n\t\t\t})\n\t\t\t// Save user data so it can be used by the editor to replace mentions\n\t\t\tdata.ocs.data.forEach((user) => {\n\t\t\t\tthis.userData[user.id] = user\n\t\t\t})\n\t\t\treturn callback(Object.values(this.userData))\n\t\t},\n\n\t\t/**\n\t\t * Make sure we have all mentions as Array of objects\n\t\t *\n\t\t * @param mentions the mentions list\n\t\t */\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\tgenMentionsData(mentions: any[]): Record {\n\t\t\tObject.values(mentions)\n\t\t\t\t.flat()\n\t\t\t\t.forEach((mention) => {\n\t\t\t\t\tthis.userData[mention.mentionId] = {\n\t\t\t\t\t\t// TODO: support groups\n\t\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\t\tid: mention.mentionId,\n\t\t\t\t\t\tlabel: mention.mentionDisplayName,\n\t\t\t\t\t\tsource: 'users',\n\t\t\t\t\t\tprimary: getCurrentUser()?.uid === mention.mentionId,\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\treturn this.userData\n\t\t},\n\t},\n})\n"],"file":"CommentView-DhkE9b-A.chunk.mjs"} \ No newline at end of file diff --git a/dist/CommentView-sS3KT9Kn.chunk.mjs.map.license b/dist/CommentView-DhkE9b-A.chunk.mjs.map.license similarity index 100% rename from dist/CommentView-sS3KT9Kn.chunk.mjs.map.license rename to dist/CommentView-DhkE9b-A.chunk.mjs.map.license diff --git a/dist/DiscoverTypeCarousel-BKROD9d-.chunk.mjs b/dist/DiscoverTypeCarousel-BE61ZNsb.chunk.mjs similarity index 86% rename from dist/DiscoverTypeCarousel-BKROD9d-.chunk.mjs rename to dist/DiscoverTypeCarousel-BE61ZNsb.chunk.mjs index c74925b2d54..1ebc45be010 100644 --- a/dist/DiscoverTypeCarousel-BKROD9d-.chunk.mjs +++ b/dist/DiscoverTypeCarousel-BE61ZNsb.chunk.mjs @@ -1,2 +1,2 @@ -import{b as w,l as h,z as I,o as p,f as y,t as N,u as a,h as D,g as u,k as r,w as d,c as k,m as M,T,F as q,B as z,v as s,G as A}from"./Web-BwmPK40i.chunk.mjs";import{f as B,g as F,h as G,i as P}from"./mdi-Lt-19ASw.chunk.mjs";import{t as n}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{N as f}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as g}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{c as S,D as j,u as E}from"./DiscoverTypePost-iZg8MLG2.chunk.mjs";import{_ as H}from"./public-C1mLBHT3.chunk.mjs";import"./index-B-dGqfIG.chunk.mjs";import"./index-DlyLvrtV.chunk.mjs";import"./appstore-main.mjs";import"./pinia-CLibr4cC.chunk.mjs";import"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./NcTextArea-Dxzj4zdb-stc727hj.chunk.mjs";import"./index-BOH7nBEM.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./index-BLNGy7h5.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import"./NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs";import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";/* empty css */import"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import"./index-CMXcwXc6.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./index-C_wPY1fR.chunk.mjs";/* empty css */import"./index-xEyWukTf.chunk.mjs";import"./NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs";import"./ContentCopy-BF1gBM5z.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./modulepreload-polyfill-BxzAKjcf.chunk.mjs";import"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import"./index-BU6wm4Hd.chunk.mjs";const J=["aria-roledescription","aria-labelledby"],K=["id"],L={class:"app-discover-carousel__wrapper"},O={class:"app-discover-carousel__button-wrapper"},Q={class:"app-discover-carousel__button-wrapper"},R=["aria-label"],U=w({__name:"DiscoverTypeCarousel",props:{...S,content:{type:Array,required:!0}},setup(m){const t=m,$=E(s(()=>t.headline)),e=h(Math.min(1,t.content.length-1)),c=h(t.content[e.value]),C=s(()=>e.valuee.value>0),l=s(()=>t.id??(Math.random()+1).toString(36).substring(7)),v=s(()=>`${l.value}-h`),b=h("slide-in");return I(()=>e.value,(_,i)=>{_{c.value=t.content[e.value]})}),(_,i)=>(p(),y("section",{"aria-roledescription":a(n)("appstore","Carousel"),"aria-labelledby":v.value?`${v.value}`:void 0},[_.headline?(p(),y("h3",{key:0,id:v.value},N(a($)),9,K)):D("",!0),u("div",L,[u("div",O,[r(a(f),{class:"app-discover-carousel__button app-discover-carousel__button--previous",variant:"tertiary-no-background","aria-label":a(n)("appstore","Previous slide"),disabled:!x.value,onClick:i[0]||(i[0]=o=>e.value-=1)},{icon:d(()=>[r(a(g),{path:a(B)},null,8,["path"])]),_:1},8,["aria-label","disabled"])]),r(T,{name:b.value,mode:"out-in"},{default:d(()=>[(p(),k(j,M(c.value,{key:c.value.id??e.value,"aria-labelledby":`${l.value}-tab-${e.value}`,domId:`${l.value}-tabpanel-${e.value}`,inline:"",role:"tabpanel"}),null,16,["aria-labelledby","domId"]))]),_:1},8,["name"]),u("div",Q,[r(a(f),{class:"app-discover-carousel__button app-discover-carousel__button--next",variant:"tertiary-no-background","aria-label":a(n)("appstore","Next slide"),disabled:!C.value,onClick:i[1]||(i[1]=o=>e.value+=1)},{icon:d(()=>[r(a(g),{path:a(F)},null,8,["path"])]),_:1},8,["aria-label","disabled"])])]),u("div",{class:"app-discover-carousel__tabs",role:"tablist","aria-label":a(n)("appstore","Choose slide to display")},[(p(!0),y(q,null,z(m.content.length,o=>(p(),k(a(f),{id:`${l.value}-tab-${o}`,key:o,"aria-label":a(n)("appstore","{index} of {total}",{index:o,total:m.content.length}),"aria-controls":`${l.value}-tabpanel-${o}`,"aria-selected":`${e.value===o-1}`,role:"tab",variant:"tertiary-no-background",onClick:V=>e.value=o-1},{icon:d(()=>[r(a(g),{path:e.value===o-1?a(G):a(P)},null,8,["path"])]),_:2},1032,["id","aria-label","aria-controls","aria-selected","onClick"]))),128))],8,R)],8,J))}}),Ka=H(U,[["__scopeId","data-v-89f194e4"]]);export{Ka as default}; -//# sourceMappingURL=DiscoverTypeCarousel-BKROD9d-.chunk.mjs.map +import{b as w,l as h,z as I,o as p,f as y,t as N,u as a,h as D,g as u,k as r,w as d,c as k,m as M,T,F as q,B as z,v as s,G as A}from"./Web-BwmPK40i.chunk.mjs";import{f as B,g as F,h as G,i as P}from"./mdi-Lt-19ASw.chunk.mjs";import{t as n}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{N as f}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as g}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{c as S,D as j,u as E}from"./DiscoverTypePost-iZg8MLG2.chunk.mjs";import{_ as H}from"./public-C1mLBHT3.chunk.mjs";import"./index-B-dGqfIG.chunk.mjs";import"./index-DlyLvrtV.chunk.mjs";import"./appstore-main.mjs";import"./pinia-CLibr4cC.chunk.mjs";import"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./NcTextArea-Dxzj4zdb-BPZd41PF.chunk.mjs";import"./index-dqLzhRZM.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./index-BLNGy7h5.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import"./NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs";import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";/* empty css */import"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import"./index-CQct0mOs.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./index-BrjNu3x_.chunk.mjs";/* empty css */import"./index-CcOuN-F7.chunk.mjs";import"./NcSelectTags-D7qWNjXa-gqJ9LLZU.chunk.mjs";import"./ContentCopy-BF1gBM5z.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./modulepreload-polyfill-BxzAKjcf.chunk.mjs";import"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import"./index-BU6wm4Hd.chunk.mjs";const J=["aria-roledescription","aria-labelledby"],K=["id"],L={class:"app-discover-carousel__wrapper"},O={class:"app-discover-carousel__button-wrapper"},Q={class:"app-discover-carousel__button-wrapper"},R=["aria-label"],U=w({__name:"DiscoverTypeCarousel",props:{...S,content:{type:Array,required:!0}},setup(m){const t=m,$=E(s(()=>t.headline)),e=h(Math.min(1,t.content.length-1)),c=h(t.content[e.value]),C=s(()=>e.valuee.value>0),l=s(()=>t.id??(Math.random()+1).toString(36).substring(7)),v=s(()=>`${l.value}-h`),b=h("slide-in");return I(()=>e.value,(_,i)=>{_{c.value=t.content[e.value]})}),(_,i)=>(p(),y("section",{"aria-roledescription":a(n)("appstore","Carousel"),"aria-labelledby":v.value?`${v.value}`:void 0},[_.headline?(p(),y("h3",{key:0,id:v.value},N(a($)),9,K)):D("",!0),u("div",L,[u("div",O,[r(a(f),{class:"app-discover-carousel__button app-discover-carousel__button--previous",variant:"tertiary-no-background","aria-label":a(n)("appstore","Previous slide"),disabled:!x.value,onClick:i[0]||(i[0]=o=>e.value-=1)},{icon:d(()=>[r(a(g),{path:a(B)},null,8,["path"])]),_:1},8,["aria-label","disabled"])]),r(T,{name:b.value,mode:"out-in"},{default:d(()=>[(p(),k(j,M(c.value,{key:c.value.id??e.value,"aria-labelledby":`${l.value}-tab-${e.value}`,domId:`${l.value}-tabpanel-${e.value}`,inline:"",role:"tabpanel"}),null,16,["aria-labelledby","domId"]))]),_:1},8,["name"]),u("div",Q,[r(a(f),{class:"app-discover-carousel__button app-discover-carousel__button--next",variant:"tertiary-no-background","aria-label":a(n)("appstore","Next slide"),disabled:!C.value,onClick:i[1]||(i[1]=o=>e.value+=1)},{icon:d(()=>[r(a(g),{path:a(F)},null,8,["path"])]),_:1},8,["aria-label","disabled"])])]),u("div",{class:"app-discover-carousel__tabs",role:"tablist","aria-label":a(n)("appstore","Choose slide to display")},[(p(!0),y(q,null,z(m.content.length,o=>(p(),k(a(f),{id:`${l.value}-tab-${o}`,key:o,"aria-label":a(n)("appstore","{index} of {total}",{index:o,total:m.content.length}),"aria-controls":`${l.value}-tabpanel-${o}`,"aria-selected":`${e.value===o-1}`,role:"tab",variant:"tertiary-no-background",onClick:V=>e.value=o-1},{icon:d(()=>[r(a(g),{path:e.value===o-1?a(G):a(P)},null,8,["path"])]),_:2},1032,["id","aria-label","aria-controls","aria-selected","onClick"]))),128))],8,R)],8,J))}}),Ka=H(U,[["__scopeId","data-v-89f194e4"]]);export{Ka as default}; +//# sourceMappingURL=DiscoverTypeCarousel-BE61ZNsb.chunk.mjs.map diff --git a/dist/DiscoverTypeCarousel-BKROD9d-.chunk.mjs.license b/dist/DiscoverTypeCarousel-BE61ZNsb.chunk.mjs.license similarity index 100% rename from dist/DiscoverTypeCarousel-BKROD9d-.chunk.mjs.license rename to dist/DiscoverTypeCarousel-BE61ZNsb.chunk.mjs.license diff --git a/dist/DiscoverTypeCarousel-BKROD9d-.chunk.mjs.map b/dist/DiscoverTypeCarousel-BE61ZNsb.chunk.mjs.map similarity index 99% rename from dist/DiscoverTypeCarousel-BKROD9d-.chunk.mjs.map rename to dist/DiscoverTypeCarousel-BE61ZNsb.chunk.mjs.map index 26cf2595e6e..c7c6c053c92 100644 --- a/dist/DiscoverTypeCarousel-BKROD9d-.chunk.mjs.map +++ b/dist/DiscoverTypeCarousel-BE61ZNsb.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"DiscoverTypeCarousel-BKROD9d-.chunk.mjs","sources":["../build/frontend/apps/appstore/src/components/DiscoverType/DiscoverTypeCarousel.vue"],"sourcesContent":["\n\n\n\n\n\n\n\n"],"names":["props","__props","translatedHeadline","useLocalizedValue","computed","currentIndex","ref","shownElement","hasNext","hasPrevious","internalId","headingId","transitionName","watch","o","n","nextTick","_createElementBlock","_unref","t","headline","_hoisted_2","_createElementVNode","_hoisted_3","_hoisted_4","_createVNode","NcButton","NcIconSvgWrapper","mdiChevronLeft","_Transition","_createBlock","DiscoverTypePost","_mergeProps","_hoisted_5","mdiChevronRight","_openBlock","_Fragment","_renderList","index","$event","mdiCircleSlice8","mdiCircleOutline"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"DiscoverTypeCarousel-BE61ZNsb.chunk.mjs","sources":["../build/frontend/apps/appstore/src/components/DiscoverType/DiscoverTypeCarousel.vue"],"sourcesContent":["\n\n\n\n\n\n\n\n"],"names":["props","__props","translatedHeadline","useLocalizedValue","computed","currentIndex","ref","shownElement","hasNext","hasPrevious","internalId","headingId","transitionName","watch","o","n","nextTick","_createElementBlock","_unref","t","headline","_hoisted_2","_createElementVNode","_hoisted_3","_hoisted_4","_createVNode","NcButton","NcIconSvgWrapper","mdiChevronLeft","_Transition","_createBlock","DiscoverTypePost","_mergeProps","_hoisted_5","mdiChevronRight","_openBlock","_Fragment","_renderList","index","$event","mdiCircleSlice8","mdiCircleOutline"],"mappings":"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"} \ No newline at end of file diff --git a/dist/DiscoverTypeCarousel-BKROD9d-.chunk.mjs.map.license b/dist/DiscoverTypeCarousel-BE61ZNsb.chunk.mjs.map.license similarity index 100% rename from dist/DiscoverTypeCarousel-BKROD9d-.chunk.mjs.map.license rename to dist/DiscoverTypeCarousel-BE61ZNsb.chunk.mjs.map.license diff --git a/dist/DiscoverTypeShowcase-D91mSUxk.chunk.mjs b/dist/DiscoverTypeShowcase-BRB4lIfH.chunk.mjs similarity index 87% rename from dist/DiscoverTypeShowcase-D91mSUxk.chunk.mjs rename to dist/DiscoverTypeShowcase-BRB4lIfH.chunk.mjs index 762174fd6e0..393cb527700 100644 --- a/dist/DiscoverTypeShowcase-D91mSUxk.chunk.mjs +++ b/dist/DiscoverTypeShowcase-BRB4lIfH.chunk.mjs @@ -1,2 +1,2 @@ -import{u as x}from"./index-DlyLvrtV.chunk.mjs";import{A}from"./AppstoreSearch-CPzSIsIZ.chunk.mjs";import{l as B,_ as V}from"./public-C1mLBHT3.chunk.mjs";import{b as D}from"./index-B-dGqfIG.chunk.mjs";import{u as j,R as T}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{b as w,H as q,o as p,f as l,I,m as v,i as g,c as f,u as _,w as $,h,l as y,J as E,k as d,g as c,j as F,t as k,v as u,F as H,B as J,y as L}from"./Web-BwmPK40i.chunk.mjs";import{u as O,B as R}from"./appstore-main.mjs";import{c as S,D as z,u as C}from"./DiscoverTypePost-iZg8MLG2.chunk.mjs";import"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./NcTextArea-Dxzj4zdb-stc727hj.chunk.mjs";import"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import"./index-BOH7nBEM.chunk.mjs";import"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./index-BLNGy7h5.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs";import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";/* empty css */import"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import"./index-CMXcwXc6.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./index-C_wPY1fR.chunk.mjs";/* empty css */import"./index-xEyWukTf.chunk.mjs";import"./NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs";import"./ContentCopy-BF1gBM5z.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./pinia-CLibr4cC.chunk.mjs";import"./modulepreload-polyfill-BxzAKjcf.chunk.mjs";import"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import"./index-BU6wm4Hd.chunk.mjs";const G=w({__name:"AppLink",props:{href:{}},setup(t){const o=t,i=j(),e=Object.fromEntries(B("core","apps").map(a=>[a.app??a.id,a.href])),s=y(),r=y();return q(()=>{const a=o.href.match(/^app:(\/\/)?([^/]+)(\/.+)?$/);if(s.value=void 0,r.value=void 0,a===null){r.value={href:o.href,target:"_blank",rel:"noreferrer noopener"};return}const m=a[2];if(a[3]){r.value={href:D(`/apps/${m}${a[3]}`)};return}if(m in e){r.value={href:e[m]};return}s.value={to:{name:"apps-discover",params:{category:i.params?.category??"discover",id:m}}}}),(a,m)=>r.value?(p(),l("a",I(v({key:0},r.value)),[g(a.$slots,"default")],16)):s.value?(p(),f(_(T),I(v({key:1},s.value)),{default:$(()=>[g(a.$slots,"default")]),_:3},16)):h("",!0)}}),K=["href","title"],M={key:1,class:"app-discover-app"},N={class:"app-discover-app__wrapper"},P={class:"app-discover-app__name"},Q=w({__name:"DiscoverTypeApp",props:{modelValue:{}},setup(t){const o=t,i=O(),e=u(()=>i.getAppById(o.modelValue.appId)),s=u(()=>o.modelValue.appId?`https://apps.nextcloud.com/apps/${o.modelValue.appId}`:"#");return(r,a)=>e.value?(p(),l("article",M,[d(A,{class:"app-discover-app__image",app:e.value},null,8,["app"]),c("div",N,[c("h3",P,[d(G,{href:`app:${e.value.id}`},{default:$(()=>[F(k(e.value.name),1)]),_:1},8,["href"])]),c("p",null,k(e.value.summary),1),d(R,{class:"app-discover-app__score",app:e.value},null,8,["app"])])])):(p(),l("a",{key:0,class:"app-discover-app app-discover-app__skeleton",href:s.value,target:"_blank",title:t.modelValue.appId,rel:"noopener noreferrer"},[...a[0]||(a[0]=[E('',5)])],8,K))}}),U=V(Q,[["__scopeId","data-v-6a756697"]]),W={key:0},X={class:"app-discover-showcase__list"},Y=w({__name:"DiscoverTypeShowcase",props:{...S,content:{type:Array,required:!0}},setup(t){const o=t,i=C(u(()=>o.headline)),e=y(),{width:s}=x(e),r=u(()=>s.value<768),a=u(()=>s.value<512);return(m,Z)=>(p(),l("section",{ref_key:"container",ref:e,class:L(["app-discover-showcase",{"app-discover-showcase--small":r.value,"app-discover-showcase--extra-small":a.value}])},[_(i)?(p(),l("h3",W,k(_(i)),1)):h("",!0),c("ul",X,[(p(!0),l(H,null,J(t.content,(n,b)=>(p(),l("li",{key:"id"in n?n.id:b,class:"app-discover-showcase__item"},[n.type==="post"?(p(),f(z,v({key:0,ref_for:!0},n,{inline:""}),null,16)):n.type==="app"?(p(),f(U,{key:1,modelValue:n},null,8,["modelValue"])):h("",!0)]))),128))])],2))}}),Qa=V(Y,[["__scopeId","data-v-83c1b4dd"]]);export{Qa as default}; -//# sourceMappingURL=DiscoverTypeShowcase-D91mSUxk.chunk.mjs.map +import{u as x}from"./index-DlyLvrtV.chunk.mjs";import{A}from"./AppstoreSearch-CZQ7JcU9.chunk.mjs";import{l as B,_ as V}from"./public-C1mLBHT3.chunk.mjs";import{b as D}from"./index-B-dGqfIG.chunk.mjs";import{u as j,R as T}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{b as w,H as q,o as p,f as l,I,m as v,i as g,c as f,u as _,w as $,h,l as y,J as E,k as d,g as c,j as F,t as k,v as u,F as H,B as J,y as L}from"./Web-BwmPK40i.chunk.mjs";import{u as O,B as R}from"./appstore-main.mjs";import{c as S,D as z,u as C}from"./DiscoverTypePost-iZg8MLG2.chunk.mjs";import"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./NcTextArea-Dxzj4zdb-BPZd41PF.chunk.mjs";import"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import"./index-dqLzhRZM.chunk.mjs";import"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./index-BLNGy7h5.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs";import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";/* empty css */import"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import"./index-CQct0mOs.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./index-BrjNu3x_.chunk.mjs";/* empty css */import"./index-CcOuN-F7.chunk.mjs";import"./NcSelectTags-D7qWNjXa-gqJ9LLZU.chunk.mjs";import"./ContentCopy-BF1gBM5z.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./pinia-CLibr4cC.chunk.mjs";import"./modulepreload-polyfill-BxzAKjcf.chunk.mjs";import"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import"./index-BU6wm4Hd.chunk.mjs";const G=w({__name:"AppLink",props:{href:{}},setup(t){const o=t,i=j(),e=Object.fromEntries(B("core","apps").map(a=>[a.app??a.id,a.href])),s=y(),r=y();return q(()=>{const a=o.href.match(/^app:(\/\/)?([^/]+)(\/.+)?$/);if(s.value=void 0,r.value=void 0,a===null){r.value={href:o.href,target:"_blank",rel:"noreferrer noopener"};return}const m=a[2];if(a[3]){r.value={href:D(`/apps/${m}${a[3]}`)};return}if(m in e){r.value={href:e[m]};return}s.value={to:{name:"apps-discover",params:{category:i.params?.category??"discover",id:m}}}}),(a,m)=>r.value?(p(),l("a",I(v({key:0},r.value)),[g(a.$slots,"default")],16)):s.value?(p(),f(_(T),I(v({key:1},s.value)),{default:$(()=>[g(a.$slots,"default")]),_:3},16)):h("",!0)}}),K=["href","title"],M={key:1,class:"app-discover-app"},N={class:"app-discover-app__wrapper"},P={class:"app-discover-app__name"},Q=w({__name:"DiscoverTypeApp",props:{modelValue:{}},setup(t){const o=t,i=O(),e=u(()=>i.getAppById(o.modelValue.appId)),s=u(()=>o.modelValue.appId?`https://apps.nextcloud.com/apps/${o.modelValue.appId}`:"#");return(r,a)=>e.value?(p(),l("article",M,[d(A,{class:"app-discover-app__image",app:e.value},null,8,["app"]),c("div",N,[c("h3",P,[d(G,{href:`app:${e.value.id}`},{default:$(()=>[F(k(e.value.name),1)]),_:1},8,["href"])]),c("p",null,k(e.value.summary),1),d(R,{class:"app-discover-app__score",app:e.value},null,8,["app"])])])):(p(),l("a",{key:0,class:"app-discover-app app-discover-app__skeleton",href:s.value,target:"_blank",title:t.modelValue.appId,rel:"noopener noreferrer"},[...a[0]||(a[0]=[E('',5)])],8,K))}}),U=V(Q,[["__scopeId","data-v-6a756697"]]),W={key:0},X={class:"app-discover-showcase__list"},Y=w({__name:"DiscoverTypeShowcase",props:{...S,content:{type:Array,required:!0}},setup(t){const o=t,i=C(u(()=>o.headline)),e=y(),{width:s}=x(e),r=u(()=>s.value<768),a=u(()=>s.value<512);return(m,Z)=>(p(),l("section",{ref_key:"container",ref:e,class:L(["app-discover-showcase",{"app-discover-showcase--small":r.value,"app-discover-showcase--extra-small":a.value}])},[_(i)?(p(),l("h3",W,k(_(i)),1)):h("",!0),c("ul",X,[(p(!0),l(H,null,J(t.content,(n,b)=>(p(),l("li",{key:"id"in n?n.id:b,class:"app-discover-showcase__item"},[n.type==="post"?(p(),f(z,v({key:0,ref_for:!0},n,{inline:""}),null,16)):n.type==="app"?(p(),f(U,{key:1,modelValue:n},null,8,["modelValue"])):h("",!0)]))),128))])],2))}}),Qa=V(Y,[["__scopeId","data-v-83c1b4dd"]]);export{Qa as default}; +//# sourceMappingURL=DiscoverTypeShowcase-BRB4lIfH.chunk.mjs.map diff --git a/dist/DiscoverTypeShowcase-D91mSUxk.chunk.mjs.license b/dist/DiscoverTypeShowcase-BRB4lIfH.chunk.mjs.license similarity index 100% rename from dist/DiscoverTypeShowcase-D91mSUxk.chunk.mjs.license rename to dist/DiscoverTypeShowcase-BRB4lIfH.chunk.mjs.license diff --git a/dist/DiscoverTypeShowcase-D91mSUxk.chunk.mjs.map b/dist/DiscoverTypeShowcase-BRB4lIfH.chunk.mjs.map similarity index 98% rename from dist/DiscoverTypeShowcase-D91mSUxk.chunk.mjs.map rename to dist/DiscoverTypeShowcase-BRB4lIfH.chunk.mjs.map index 42ae9cb7cd7..244f8c5bf05 100644 --- a/dist/DiscoverTypeShowcase-D91mSUxk.chunk.mjs.map +++ b/dist/DiscoverTypeShowcase-BRB4lIfH.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"DiscoverTypeShowcase-D91mSUxk.chunk.mjs","sources":["../build/frontend/apps/appstore/src/components/AppLink.vue","../build/frontend/apps/appstore/src/components/DiscoverType/DiscoverTypeApp.vue","../build/frontend/apps/appstore/src/components/DiscoverType/DiscoverTypeShowcase.vue"],"sourcesContent":["\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n"],"names":["props","__props","route","useRoute","knownRoutes","loadState","app","routerProps","ref","linkProps","watchEffect","match","appId","generateUrl","_openBlock","_createElementBlock","_renderSlot","_ctx","_createBlock","_unref","store","useAppsStore","computed","appStoreLink","_hoisted_2","_createVNode","AppImage","_createElementVNode","_hoisted_3","_hoisted_4","AppLink","_createTextVNode","_toDisplayString","BadgeAppScore","translatedHeadline","useLocalizedValue","container","containerWidth","useElementSize","isSmallWidth","isExtraSmallWidth","_Fragment","_renderList","item","index","DiscoverTypePost","_mergeProps","DiscoverTypeApp"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"DiscoverTypeShowcase-BRB4lIfH.chunk.mjs","sources":["../build/frontend/apps/appstore/src/components/AppLink.vue","../build/frontend/apps/appstore/src/components/DiscoverType/DiscoverTypeApp.vue","../build/frontend/apps/appstore/src/components/DiscoverType/DiscoverTypeShowcase.vue"],"sourcesContent":["\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n"],"names":["props","__props","route","useRoute","knownRoutes","loadState","app","routerProps","ref","linkProps","watchEffect","match","appId","generateUrl","_openBlock","_createElementBlock","_renderSlot","_ctx","_createBlock","_unref","store","useAppsStore","computed","appStoreLink","_hoisted_2","_createVNode","AppImage","_createElementVNode","_hoisted_3","_hoisted_4","AppLink","_createTextVNode","_toDisplayString","BadgeAppScore","translatedHeadline","useLocalizedValue","container","containerWidth","useElementSize","isSmallWidth","isExtraSmallWidth","_Fragment","_renderList","item","index","DiscoverTypePost","_mergeProps","DiscoverTypeApp"],"mappings":"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"} \ No newline at end of file diff --git a/dist/DiscoverTypeShowcase-D91mSUxk.chunk.mjs.map.license b/dist/DiscoverTypeShowcase-BRB4lIfH.chunk.mjs.map.license similarity index 100% rename from dist/DiscoverTypeShowcase-D91mSUxk.chunk.mjs.map.license rename to dist/DiscoverTypeShowcase-BRB4lIfH.chunk.mjs.map.license diff --git a/dist/FilePicker-DWYoSaVg-DRRVf2iD.chunk.mjs b/dist/FilePicker-DWYoSaVg-D_Ra0RFa.chunk.mjs similarity index 99% rename from dist/FilePicker-DWYoSaVg-DRRVf2iD.chunk.mjs rename to dist/FilePicker-DWYoSaVg-D_Ra0RFa.chunk.mjs index edeff581837..d8b833cde4d 100644 --- a/dist/FilePicker-DWYoSaVg-DRRVf2iD.chunk.mjs +++ b/dist/FilePicker-DWYoSaVg-D_Ra0RFa.chunk.mjs @@ -1,2 +1,2 @@ -import{r as re,o as s,f as c,c as C,q as Ne,w,i as ne,g as f,y as U,j as q,t as L,m as I,h as z,k as _,N as J,F as M,ai as be,ad as A,H as Ue,a9 as Z,l as $,b as H,z as Pe,D as Q,u as d,v as b,ag as de,n as ue,p as We,B as K,s as pe,E as Te,G as qe,P as Ze,Q as Oe,a6 as Fe}from"./Web-BwmPK40i.chunk.mjs";import{u as je,d as Ge,s as Qe,b as me,f as Je,n as X,a as Ke,m as Xe}from"./index-B-dGqfIG.chunk.mjs";import{N as Ye}from"./index-BW4M2n71.chunk.mjs";import{N as we}from"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import{v as et,I as tt,e as se,f as it,s as at}from"./index-BDagnpAU.chunk.mjs";import{N as O}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as Se}from"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import{N as ke,a as _e,_ as lt}from"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import{w as rt,x as nt,y as st,z as ot,A as ct,B as dt,C as Ce,t as ut,c as pt}from"./mdi-Lt-19ASw.chunk.mjs";import{S as $e}from"./ShareType-suoNfd7y.chunk.mjs";import{_ as ee,c as ft,N as xe}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{F as j,P as Le}from"./folder-29HuacU_-Joa_bkj_.chunk.mjs";import"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{P as mt,a as ht}from"./NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs";import{t as h,l as G,a as he}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{c as Ve}from"./index-BLNGy7h5.chunk.mjs";import{l as De,i as Ie}from"./public-C1mLBHT3.chunk.mjs";import{a as ve,l as vt}from"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import{N as ze}from"./PencilOutline-CJ2aSuY5.chunk.mjs";import{N as gt}from"./index-BOH7nBEM.chunk.mjs";import{_ as yt}from"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import{g as bt,h as wt,i as ge,j as kt,r as ye,k as Me}from"./dav-CGJ67RGS.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import"./index-BYnFfAmz.chunk.mjs";const _t={name:"ChevronRightIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ct=["aria-hidden","aria-label"],$t=["fill","width","height"],Lt={d:"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z"},zt={key:0};function Bt(t,i,e,a,l,r){return s(),c("span",I(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon chevron-right-icon",role:"img",onClick:i[0]||(i[0]=n=>t.$emit("click",n))}),[(s(),c("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[f("path",Lt,[e.title?(s(),c("title",zt,L(e.title),1)):z("",!0)])],8,$t))],16,Ct)}const Nt=ee(_t,[["render",Bt]]),Pt={name:"NcBreadcrumb",components:{NcActions:ve,ChevronRight:Nt,NcButton:O},inheritAttrs:!1,props:{name:{type:String,required:!0},title:{type:String,default:null},to:{type:[String,Object],default:void 0},href:{type:String,default:void 0},icon:{type:String,default:""},forceIconText:{type:Boolean,default:!1},disableDrop:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},open:{type:Boolean,default:!1},class:{type:[String,Array,Object],default:""}},emits:["dragenter","dragleave","dropped","update:open"],setup(){const t=ft();return{actionsContainer:`.vue-crumb[data-crumb-id="${t}"]`,crumbId:t}},data(){return{hovering:!1}},computed:{linkAttributes(){return this.to?{to:this.to,...this.$attrs}:this.href?{href:this.href,...this.$attrs}:this.$attrs}},methods:{onOpenChange(t){this.$emit("update:open",t)},dropped(t){return this.disableDrop||(this.$emit("dropped",t,this.to||this.href),this.$parent.$emit("dropped",t,this.to||this.href),this.hovering=!1),!1},dragEnter(t){this.$emit("dragenter",t),!this.disableDrop&&(this.hovering=!0)},dragLeave(t){this.$emit("dragleave",t),!this.disableDrop&&(t.target.contains(t.relatedTarget)||this.$refs.crumb.contains(t.relatedTarget)||(this.hovering=!1))}}},Ft=["data-crumb-id"];function St(t,i,e,a,l,r){const n=re("NcButton"),u=re("NcActions"),p=re("ChevronRight");return s(),c("li",{ref:"crumb",class:U(["vue-crumb",[{"vue-crumb--hovered":l.hovering},t.$props.class]]),"data-crumb-id":a.crumbId,draggable:"false",onDragstart:J(()=>{},["prevent"]),onDrop:i[0]||(i[0]=J((...o)=>r.dropped&&r.dropped(...o),["prevent"])),onDragover:J(()=>{},["prevent"]),onDragenter:i[1]||(i[1]=(...o)=>r.dragEnter&&r.dragEnter(...o)),onDragleave:i[2]||(i[2]=(...o)=>r.dragLeave&&r.dragLeave(...o))},[(e.name||e.icon||t.$slots.icon)&&!t.$slots.default?(s(),C(n,I({key:0,"aria-label":e.icon?e.name:void 0,variant:"tertiary"},r.linkAttributes),Ne({_:2},[t.$slots.icon||e.icon?{name:"icon",fn:w(()=>[ne(t.$slots,"icon",{},()=>[f("span",{class:U([e.icon,"icon"])},null,2)],!0)]),key:"0"}:void 0,!(t.$slots.icon||e.icon)||e.forceIconText?{name:"default",fn:w(()=>[q(L(e.name),1)]),key:"1"}:void 0]),1040,["aria-label"])):z("",!0),t.$slots.default?(s(),C(u,{key:1,ref:"actions",container:a.actionsContainer,forceMenu:e.forceMenu,forceName:"",menuName:e.name,open:e.open,title:e.title,variant:"tertiary","onUpdate:open":r.onOpenChange},{icon:w(()=>[ne(t.$slots,"menu-icon",{},void 0,!0)]),default:w(()=>[ne(t.$slots,"default",{},void 0,!0)]),_:3},8,["container","forceMenu","menuName","open","title","onUpdate:open"])):z("",!0),_(p,{class:"vue-crumb__separator",size:20})],42,Ft)}const Y=ee(Pt,[["render",St],["__scopeId","data-v-7cec4a3e"]]),xt={name:"FolderIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Vt=["aria-hidden","aria-label"],Dt=["fill","width","height"],It={d:"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z"},Mt={key:0};function Rt(t,i,e,a,l,r){return s(),c("span",I(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon folder-icon",role:"img",onClick:i[0]||(i[0]=n=>t.$emit("click",n))}),[(s(),c("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[f("path",It,[e.title?(s(),c("title",Mt,L(e.title),1)):z("",!0)])],8,Dt))],16,Vt)}const Be=ee(xt,[["render",Rt]]),S="vue-crumb",At={name:"NcBreadcrumbs",components:{NcActions:ve,NcActionButton:ze,NcActionRouter:_e,NcActionLink:ke,NcBreadcrumb:Y,IconFolder:Be},props:{rootIcon:{type:String,default:"icon-home"},ariaLabel:{type:String,default:null}},emits:["dropped"],data(){return{hiddenIndices:[],menuBreadcrumbProps:{name:"",forceMenu:!0,disableDrop:!0,open:!1},breadcrumbsRefs:[]}},created(){window.addEventListener("resize",Ge(()=>{this.handleWindowResize()},100)),Qe("navigation-toggled",this.delayedResize)},mounted(){this.handleWindowResize()},updated(){this.delayedResize(),this.$nextTick(()=>{this.hideCrumbs()})},beforeUnmount(){window.removeEventListener("resize",this.handleWindowResize),je("navigation-toggled",this.delayedResize)},methods:{closeActions(t){this.$refs.actionsBreadcrumb.$el.contains(t.relatedTarget)||(this.menuBreadcrumbProps.open=!1)},async delayedResize(){await this.$nextTick(),this.handleWindowResize()},handleWindowResize(){if(!this.$refs.container)return;const t=this.breadcrumbsRefs.length,i=[],e=this.$refs.container.offsetWidth;let a=this.getTotalWidth();this.$refs.breadcrumb__actions&&(a+=this.$refs.breadcrumb__actions.offsetWidth);let l=a-e;l+=l>0?64:0;let r=0;const n=Math.floor(t/2);for(;l>0&&ru-p))||(this.hiddenIndices=i)},arraysEqual(t,i){if(t.length!==i.length)return!1;if(t===i)return!0;if(t===null||i===null)return!1;for(let e=0;et+this.getWidth(i.$el,e===this.breadcrumbsRefs.length-1),0)},getWidth(t,i){if(!t?.classList)return 0;const e=t.classList.contains(`${S}--hidden`);t.style.minWidth="auto",i&&(t.style.maxWidth="210px"),t.classList.remove(`${S}--hidden`);const a=t.offsetWidth;return e&&t.classList.add(`${S}--hidden`),t.style.minWidth="",t.style.maxWidth="",a},preventDefault(t){return t.preventDefault&&t.preventDefault(),!1},dragStart(t){return this.preventDefault(t)},dropped(t,i,e){e||this.$emit("dropped",t,i),this.menuBreadcrumbProps.open=!1;const a=document.querySelectorAll(`.${S}`);for(const l of a)l.classList.remove(`${S}--hovered`);return this.preventDefault(t)},dragOver(t){return this.preventDefault(t)},dragEnter(t,i){if(!i&&t.target.closest){const e=t.target.closest(`.${S}`);if(e.classList&&e.classList.contains(S)){const a=document.querySelectorAll(`.${S}`);for(const l of a)l.classList.remove(`${S}--hovered`);e.classList.add(`${S}--hovered`)}}},dragLeave(t,i){if(!i&&!t.target.contains(t.relatedTarget)&&t.target.closest){const e=t.target.closest(`.${S}`);if(e.contains(t.relatedTarget))return;e.classList&&e.classList.contains(S)&&e.classList.remove(`${S}--hovered`)}},hideCrumbs(){this.breadcrumbsRefs.forEach((t,i)=>{t?.$el?.classList&&(this.hiddenIndices.includes(i)?t.$el.classList.add(`${S}--hidden`):t.$el.classList.remove(`${S}--hidden`))})},isBreadcrumb(t){return t?.type?.name==="NcBreadcrumb"}},render(){let t=[];if(this.$slots.default?.().forEach(l=>{if(this.isBreadcrumb(l)){t.push(l);return}l?.type===M&&l?.children?.forEach?.(r=>{this.isBreadcrumb(r)&&t.push(r)})}),t.length===0)return;t[0]=be(t[0],{icon:this.rootIcon,ref:"breadcrumbs"});const i=[];t=t.map((l,r)=>be(l,{ref:n=>{i[r]=n}}));const e=[...t];this.hiddenIndices.length&&e.splice(Math.round(t.length/2),0,A(Y,{class:"dropdown",...this.menuBreadcrumbProps,"aria-hidden":!0,ref:"actionsBreadcrumb",key:"actions-breadcrumb-1",onDragenter:()=>{this.menuBreadcrumbProps.open=!0},onDragleave:this.closeActions,"onUpdate:open":l=>{this.menuBreadcrumbProps.open=l}},{default:()=>this.hiddenIndices.filter(l=>l<=t.length-1).map(l=>{const r=t[l],{to:n,href:u,disableDrop:p,name:o,...g}=r.props;delete g.ref;let y=ze,v="";u&&(y=ke,v=u),n&&(y=_e,v=n);const B=A(Be,{size:20});return A(y,{...g,class:S,href:u||null,to:n||null,draggable:!1,onDragstart:this.dragStart,onDrop:V=>this.dropped(V,v,p),onDragover:this.dragOver,onDragenter:V=>this.dragEnter(V,p),onDragleave:V=>this.dragLeave(V,p)},{default:()=>o,icon:()=>B})})}));const a=[A("nav",{"aria-label":this.ariaLabel},[A("ul",{class:"breadcrumb__crumbs"},[e])])];return vt(this.$slots.actions?.())&&a.push(A("div",{class:"breadcrumb__actions",ref:"breadcrumb__actions"},this.$slots.actions?.())),this.breadcrumbsRefs=i,A("div",{class:["breadcrumb",{"breadcrumb--collapsed":this.hiddenIndices.length===t.length-2}],ref:"container"},a)}},Ht=ee(At,[["__scopeId","data-v-0015282c"]]),Et=new mt({concurrency:5});function Ut(t){const{resolve:i,promise:e}=Promise.withResolvers();return Et.add(()=>{const a=new Image;return a.onerror=()=>i(!1),a.onload=()=>i(!0),a.src=t,e}),e}function Wt(t,i={}){i={size:32,cropPreview:!1,mimeFallback:!0,...i};try{const e=t.attributes?.previewUrl||me("/core/preview?fileId={fileid}",{fileid:t.fileid});let a;try{a=new URL(e)}catch{a=new URL(e,window.location.origin)}return a.searchParams.set("x",`${i.size}`),a.searchParams.set("y",`${i.size}`),a.searchParams.set("mimeFallback",`${i.mimeFallback}`),a.searchParams.set("a",i.cropPreview===!0?"0":"1"),a.searchParams.set("c",`${t.attributes.etag}`),a}catch{return null}}function Tt(t,i){const e=$(null),a=$(!1);return Ue(()=>{a.value=!1,e.value=Wt(Z(t),Z(i||{})),e.value&&Z(t).type===j.File&&Ut(e.value.href).then(l=>{a.value=l})}),{previewURL:e,previewLoaded:a}}const x=(t,i)=>{const e=t.__vccOpts||t;for(const[a,l]of i)e[a]=l;return e},qt={name:"FileIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Zt=["aria-hidden","aria-label"],Ot=["fill","width","height"],jt={d:"M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z"},Gt={key:0};function Qt(t,i,e,a,l,r){return s(),c("span",I(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon file-icon",role:"img",onClick:i[0]||(i[0]=n=>t.$emit("click",n))}),[(s(),c("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[f("path",jt,[e.title?(s(),c("title",Gt,L(e.title),1)):z("",!0)])],8,Ot))],16,Zt)}const fe=x(qt,[["render",Qt]]),Jt={name:"MenuDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Kt=["aria-hidden","aria-label"],Xt=["fill","width","height"],Yt={d:"M7,10L12,15L17,10H7Z"},ei={key:0};function ti(t,i,e,a,l,r){return s(),c("span",I(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon menu-down-icon",role:"img",onClick:i[0]||(i[0]=n=>t.$emit("click",n))}),[(s(),c("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[f("path",Yt,[e.title?(s(),c("title",ei,L(e.title),1)):z("",!0)])],8,Xt))],16,Kt)}const oe=x(Jt,[["render",ti]]),ii={name:"MenuUpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ai=["aria-hidden","aria-label"],li=["fill","width","height"],ri={d:"M7,15L12,10L17,15H7Z"},ni={key:0};function si(t,i,e,a,l,r){return s(),c("span",I(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon menu-up-icon",role:"img",onClick:i[0]||(i[0]=n=>t.$emit("click",n))}),[(s(),c("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[f("path",ri,[e.title?(s(),c("title",ni,L(e.title),1)):z("",!0)])],8,li))],16,ai)}const ce=x(ii,[["render",si]]),oi={name:"FolderIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ci=["aria-hidden","aria-label"],di=["fill","width","height"],ui={d:"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z"},pi={key:0};function fi(t,i,e,a,l,r){return s(),c("span",I(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon folder-icon",role:"img",onClick:i[0]||(i[0]=n=>t.$emit("click",n))}),[(s(),c("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[f("path",ui,[e.title?(s(),c("title",pi,L(e.title),1)):z("",!0)])],8,di))],16,ci)}const Re=x(oi,[["render",fi]]),Ae={"file-picker__file-icon":"_file-picker__file-icon_1aykw_9","file-picker__file-icon--primary":"_file-picker__file-icon--primary_1aykw_22","file-picker__file-icon-overlay":"_file-picker__file-icon-overlay_1aykw_26"},mi=H({__name:"FilePreview",props:{node:{},cropImagePreviews:{type:Boolean}},setup(t){const i=t,e=$(Ae),{previewURL:a,previewLoaded:l}=Tt(Fe(i,"node"),b(()=>({cropPreview:i.cropImagePreviews}))),r=b(()=>i.node.type===j.File),n=b(()=>{if(i.node.type!==j.Folder)return null;if(i.node.attributes?.["is-encrypted"]===1)return ot;if(i.node.attributes?.["is-tag"])return ct;const u=Object.values(i.node.attributes?.["share-types"]||{}).flat();if(u.some(p=>p===$e.Link||p===$e.Email))return dt;if(u.length>0)return Ce;switch(i.node.attributes?.["mount-type"]){case"external":case"external-session":return pt;case"group":return ut;case"shared":return Ce}return null});return(u,p)=>(s(),c("div",{style:Oe(d(l)?{backgroundImage:`url(${d(a)})`}:void 0),class:U(e.value["file-picker__file-icon"])},[d(l)?z("",!0):(s(),c(M,{key:0},[r.value?(s(),C(fe,{key:0,size:32})):(s(),c(M,{key:1},[n.value?(s(),C(d(xe),{key:0,class:U(e.value["file-picker__file-icon-overlay"]),inline:"",path:n.value,size:16},null,8,["class","path"])):z("",!0),_(Re,{class:U(e.value["file-picker__file-icon--primary"]),size:32},null,8,["class"])],64))],64))],6))}}),hi=["tabindex","aria-selected","data-filename"],vi={class:"row-name"},gi={class:"file-picker__name-container","data-testid":"row-name"},yi=["title","textContent"],bi=["textContent"],wi={class:"row-size"},ki={class:"row-modified"},_i=H({__name:"FileListRow",props:{allowPickDirectory:{type:Boolean},selected:{type:Boolean},showCheckbox:{type:Boolean},canPick:{type:Boolean},node:{},cropImagePreviews:{type:Boolean}},emits:["update:selected","enterDirectory"],setup(t,{emit:i}){const e=t,a=i,l=b(()=>e.node.mtime??0),r=b(()=>Xe(e.node.displayname)),n=b(()=>e.node.displayname.slice(0,r.value?-r.value.length:void 0)),u=b(()=>e.node.type===j.Folder),p=b(()=>e.canPick&&(e.allowPickDirectory||!u.value)),o=b(()=>(e.node.permissions&Le.READ)===Le.READ);function g(){p.value&&a("update:selected",!e.selected)}function y(){u.value?o.value&&a("enterDirectory",e.node):g()}function v(B){B.key==="Enter"&&y()}return(B,V)=>(s(),c("tr",I({tabindex:t.showCheckbox&&!u.value?void 0:0,"aria-selected":p.value?t.selected:void 0,class:["file-picker__row",[{"file-picker__row--selected":t.selected&&!t.showCheckbox,"file-picker__row--not-navigatable":u.value&&!o.value,"file-picker__row--not-pickable":!p.value}]],"data-filename":t.node.basename,"data-testid":"file-list-row"},Ze({click:y,...!t.showCheckbox||u.value?{keydown:v}:{}},!0)),[t.showCheckbox?(s(),c("td",{key:0,class:"row-checkbox",onClick:J(()=>{},["stop"])},[_(d(Se),{"aria-label":d(h)("Select the row for {nodename}",{nodename:n.value}),disabled:!p.value,"data-testid":"row-checkbox",modelValue:t.selected,"onUpdate:modelValue":g},null,8,["aria-label","disabled","modelValue"])])):z("",!0),f("td",vi,[f("div",gi,[_(mi,{node:t.node,cropImagePreviews:t.cropImagePreviews},null,8,["node","cropImagePreviews"]),f("div",{class:"file-picker__file-name",title:n.value,textContent:L(n.value)},null,8,yi),f("div",{class:"file-picker__file-extension",textContent:L(r.value)},null,8,bi)])]),f("td",wi,L(d(it)(t.node.size||0)),1),f("td",ki,[_(d(lt),{timestamp:l.value,ignoreSeconds:""},null,8,["timestamp"])])],16,hi))}}),Ci=x(_i,[["__scopeId","data-v-7857e8bd"]]),$i={"aria-hidden":"true",class:"file-picker__row loading-row"},Li={key:0,class:"row-checkbox"},zi={class:"row-name"},Bi={class:"row-wrapper"},Ni=H({__name:"LoadingTableRow",props:{showCheckbox:{type:Boolean}},setup(t){return(i,e)=>(s(),c("tr",$i,[t.showCheckbox?(s(),c("td",Li,[...e[0]||(e[0]=[f("span",null,null,-1)])])):z("",!0),f("td",zi,[f("div",Bi,[f("span",{class:U(d(Ae)["file-picker__file-icon"])},null,2),e[1]||(e[1]=f("span",null,null,-1))])]),e[2]||(e[2]=f("td",{class:"row-size"},[f("span")],-1)),e[3]||(e[3]=f("td",{class:"row-modified"},[f("span")],-1))]))}}),Pi=x(Ni,[["__scopeId","data-v-1f96131b"]]);function He(){const t=De("files","config",null),i=$(t?.show_hidden??!0),e=$(t?.sort_favorites_first??!0),a=$(t?.crop_image_previews??!0);return Q(async()=>{if(Ie())G.debug("Skip loading files settings - currently on public share");else try{const{data:l}=await Ve.get(me("/apps/files/api/v1/configs"));i.value=l?.data?.show_hidden??!1,e.value=l?.data?.sort_favorites_first??!0,a.value=l?.data?.crop_image_previews??!0}catch(l){G.error("Could not load files settings",{error:l}),he(h("Could not load files settings"))}}),{showHiddenFiles:i,sortFavoritesFirst:e,cropImagePreviews:a}}function Fi(t){const i=o=>o==="asc"?"ascending":o==="desc"?"descending":"none",e=De("files","viewConfigs",null),a=$({sortBy:e?.files?.sorting_mode??"basename",order:i(e?.files?.sorting_direction??"asc")}),l=$({sortBy:e?.recent?.sorting_mode??"basename",order:i(e?.recent?.sorting_direction??"asc")}),r=$({sortBy:e?.favorites?.sorting_mode??"basename",order:i(e?.favorites?.sorting_direction??"asc")});Q(async()=>{if(Ie())G.debug("Skip loading files views - currently on public share");else try{const{data:o}=await Ve.get(me("/apps/files/api/v1/views"));a.value={sortBy:o?.data?.files?.sorting_mode??"basename",order:i(o?.data?.files?.sorting_direction)},r.value={sortBy:o?.data?.favorites?.sorting_mode??"basename",order:i(o?.data?.favorites?.sorting_direction)},l.value={sortBy:o?.data?.recent?.sorting_mode??"basename",order:i(o?.data?.recent?.sorting_direction)}}catch(o){G.error("Could not load files views",{error:o}),he(h("Could not load files views"))}});const n=b(()=>Z(t||"files")==="files"?a.value:Z(t)==="recent"?l.value:r.value),u=b(()=>n.value.sortBy),p=b(()=>n.value.order);return{filesViewConfig:a,favoritesViewConfig:r,recentViewConfig:l,currentConfig:n,sortBy:u,order:p}}const Si={key:0,class:"row-checkbox"},xi={class:"hidden-visually"},Vi=["aria-sort"],Di={class:"header-wrapper"},Ii={key:2,style:{width:"44px"}},Mi=["aria-sort"],Ri={key:2,style:{width:"44px"}},Ai=["aria-sort"],Hi={key:2,style:{width:"44px"}},Ei=H({__name:"FileList",props:pe({currentView:{},multiselect:{type:Boolean},allowPickDirectory:{type:Boolean},loading:{type:Boolean},files:{},canPick:{type:Function}},{path:{required:!0},pathModifiers:{},selectedFiles:{required:!0},selectedFilesModifiers:{}}),emits:["update:path","update:selectedFiles"],setup(t){const i=ue(t,"path"),e=ue(t,"selectedFiles"),a=t,l=$(),{currentConfig:r}=Fi(a.currentView),n=b(()=>l.value??r.value),u=b(()=>n.value.sortBy==="basename"?n.value.order==="none"?void 0:n.value.order:void 0),p=b(()=>n.value.sortBy==="size"?n.value.order==="none"?void 0:n.value.order:void 0),o=b(()=>n.value.sortBy==="mtime"?n.value.order==="none"?void 0:n.value.order:void 0);function g(N){n.value.sortBy===N?n.value.order==="ascending"?l.value={sortBy:n.value.sortBy,order:"descending"}:l.value={sortBy:n.value.sortBy,order:"ascending"}:l.value={sortBy:N,order:"ascending"}}const{sortFavoritesFirst:y,cropImagePreviews:v}=He(),B=b(()=>at(a.files,{sortFoldersFirst:!0,sortFavoritesFirst:y.value,sortingOrder:n.value.order==="descending"?"desc":"asc",sortingMode:n.value.sortBy})),V=b(()=>a.files.filter(N=>a.allowPickDirectory||N.type!==j.Folder)),te=b(()=>!a.loading&&e.value.length>0&&e.value.length>=V.value.length);function W(){e.value.lengthP.path!==N.path):a.multiselect?e.value=[...e.value,N]:e.value=[N]}function ae(N){i.value=N.path}const T=$(4),E=$();{const N=()=>qe(()=>{const P=E.value?.parentElement?.children||[];let F=E.value?.parentElement?.clientHeight||450;for(let R=0;R{window.addEventListener("resize",N),N()}),Te(()=>{window.removeEventListener("resize",N)})}return(N,P)=>(s(),c("div",{ref_key:"fileContainer",ref:E,class:"file-picker__files"},[f("table",null,[f("thead",null,[f("tr",null,[t.multiselect?(s(),c("th",Si,[f("span",xi,L(d(h)("Select entry")),1),t.multiselect?(s(),C(d(Se),{key:0,"aria-label":d(h)("Select all entries"),"data-testid":"select-all-checkbox",modelValue:te.value,"onUpdate:modelValue":W},null,8,["aria-label","modelValue"])):z("",!0)])):z("",!0),f("th",{"aria-sort":u.value,class:"row-name"},[f("div",Di,[P[3]||(P[3]=f("span",{class:"file-picker__header-preview"},null,-1)),_(d(O),{"data-test":"file-picker_sort-name",variant:"tertiary",wide:"",onClick:P[0]||(P[0]=F=>g("basename"))},{icon:w(()=>[u.value==="ascending"?(s(),C(ce,{key:0,size:20})):u.value==="descending"?(s(),C(oe,{key:1,size:20})):(s(),c("span",Ii))]),default:w(()=>[q(" "+L(d(h)("Name")),1)]),_:1})])],8,Vi),f("th",{"aria-sort":p.value,class:"row-size"},[_(d(O),{variant:"tertiary",wide:"",onClick:P[1]||(P[1]=F=>g("size"))},{icon:w(()=>[p.value==="ascending"?(s(),C(ce,{key:0,size:20})):p.value==="descending"?(s(),C(oe,{key:1,size:20})):(s(),c("span",Ri))]),default:w(()=>[q(" "+L(d(h)("Size")),1)]),_:1})],8,Mi),f("th",{"aria-sort":o.value,class:"row-modified"},[_(d(O),{variant:"tertiary",wide:"",onClick:P[2]||(P[2]=F=>g("mtime"))},{icon:w(()=>[o.value==="ascending"?(s(),C(ce,{key:0,size:20})):o.value==="descending"?(s(),C(oe,{key:1,size:20})):(s(),c("span",Hi))]),default:w(()=>[q(" "+L(d(h)("Modified")),1)]),_:1})],8,Ai)])]),f("tbody",null,[t.loading?(s(!0),c(M,{key:0},K(T.value,F=>(s(),C(Pi,{key:F,showCheckbox:t.multiselect},null,8,["showCheckbox"]))),128)):(s(!0),c(M,{key:1},K(B.value,F=>(s(),C(Ci,{key:F.fileid||F.path,allowPickDirectory:t.allowPickDirectory,showCheckbox:t.multiselect,canPick:(t.multiselect||e.value.length===0||e.value.includes(F))&&(t.canPick===void 0||t.canPick(F)),selected:e.value.includes(F),node:F,cropImagePreviews:d(v),"onUpdate:selected":R=>ie(F),onEnterDirectory:ae},null,8,["allowPickDirectory","showCheckbox","canPick","selected","node","cropImagePreviews","onUpdate:selected"]))),128))])])],512))}}),Ui=x(Ei,[["__scopeId","data-v-412efd5c"]]),Wi={name:"HomeIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ti=["aria-hidden","aria-label"],qi=["fill","width","height"],Zi={d:"M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z"},Oi={key:0};function ji(t,i,e,a,l,r){return s(),c("span",I(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon home-icon",role:"img",onClick:i[0]||(i[0]=n=>t.$emit("click",n))}),[(s(),c("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[f("path",Zi,[e.title?(s(),c("title",Oi,L(e.title),1)):z("",!0)])],8,qi))],16,Ti)}const Gi=x(Wi,[["render",ji]]),Qi={name:"PlusIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ji=["aria-hidden","aria-label"],Ki=["fill","width","height"],Xi={d:"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z"},Yi={key:0};function ea(t,i,e,a,l,r){return s(),c("span",I(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon plus-icon",role:"img",onClick:i[0]||(i[0]=n=>t.$emit("click",n))}),[(s(),c("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[f("path",Xi,[e.title?(s(),c("title",Yi,L(e.title),1)):z("",!0)])],8,Ki))],16,Ji)}const ta=x(Qi,[["render",ea]]),ia=H({__name:"FilePickerBreadcrumbs",props:pe({showMenu:{type:Boolean}},{path:{required:!0},pathModifiers:{}}),emits:pe(["createNode"],["update:path"]),setup(t,{emit:i}){const e=ue(t,"path"),a=i,l=$(!1),r=$(""),n=We("nameInput");function u(){const g=r.value.trim(),y=n.value?.$el?.querySelector("input");let v="";try{et(g)}catch(B){if(!(B instanceof tt))throw B;switch(B.reason){case se.Character:v=h('"{char}" is not allowed inside a folder name.',{char:B.segment});break;case se.ReservedName:v=h('"{segment}" is a reserved name and not allowed for folder names.',{segment:B.segment});break;case se.Extension:v=h('Folder names must not end with "{extension}".',{extension:B.segment});break;default:v=h("Invalid folder name.")}}return y&&y.setCustomValidity(v),v===""}function p(){const g=r.value.trim();u()&&(l.value=!1,a("createNode",g),r.value="")}const o=b(()=>e.value.split("/").filter(g=>g!=="").map((g,y,v)=>({name:g,path:"/"+v.slice(0,y+1).join("/")})));return(g,y)=>(s(),C(d(Ht),{class:"file-picker__breadcrumbs"},Ne({default:w(()=>[_(d(Y),{name:d(h)("All files"),title:d(h)("Home"),onClick:y[0]||(y[0]=v=>e.value="/")},{icon:w(()=>[_(Gi,{size:20})]),_:1},8,["name","title"]),(s(!0),c(M,null,K(o.value,v=>(s(),C(d(Y),{key:v.path,name:v.name,title:v.path,onClick:B=>e.value=v.path},null,8,["name","title","onClick"]))),128))]),_:2},[t.showMenu?{name:"actions",fn:w(()=>[_(d(ve),{open:l.value,"onUpdate:open":y[2]||(y[2]=v=>l.value=v),"aria-label":d(h)("Create directory"),forceMenu:!0,forceName:!0,menuName:d(h)("New"),variant:"secondary",onClose:y[3]||(y[3]=v=>r.value="")},{icon:w(()=>[_(ta,{size:20})]),default:w(()=>[_(d(ht),{ref_key:"nameInput",ref:n,modelValue:r.value,"onUpdate:modelValue":[y[1]||(y[1]=v=>r.value=v),u],label:d(h)("New folder"),placeholder:d(h)("New folder name"),onSubmit:p},{icon:w(()=>[_(Re,{size:20})]),_:1},8,["modelValue","label","placeholder"])]),_:1},8,["open","aria-label","menuName"])]),key:"0"}:void 0]),1024))}}),aa=x(ia,[["__scopeId","data-v-b448b141"]]),la={name:"CloseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ra=["aria-hidden","aria-label"],na=["fill","width","height"],sa={d:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"},oa={key:0};function ca(t,i,e,a,l,r){return s(),c("span",I(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon close-icon",role:"img",onClick:i[0]||(i[0]=n=>t.$emit("click",n))}),[(s(),c("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[f("path",sa,[e.title?(s(),c("title",oa,L(e.title),1)):z("",!0)])],8,na))],16,ra)}const da=x(la,[["render",ca]]),ua={name:"MagnifyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},pa=["aria-hidden","aria-label"],fa=["fill","width","height"],ma={d:"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"},ha={key:0};function va(t,i,e,a,l,r){return s(),c("span",I(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon magnify-icon",role:"img",onClick:i[0]||(i[0]=n=>t.$emit("click",n))}),[(s(),c("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[f("path",ma,[e.title?(s(),c("title",ha,L(e.title),1)):z("",!0)])],8,fa))],16,pa)}const ga=x(ua,[["render",va]]);function ya(t){const i=[{id:"files",label:h("All files"),icon:rt},{id:"recent",label:h("Recent"),icon:nt},{id:"favorites",label:h("Favorites"),icon:st}],e=t.value?i.filter(({id:a})=>a==="files"):i;return{allViews:i,availableViews:e}}const ba={key:0,class:"file-picker__side"},wa=H({__name:"FilePickerNavigation",props:{currentView:{},filterString:{},isCollapsed:{type:Boolean},disabledNavigation:{type:Boolean}},emits:["update:currentView","update:filterString"],setup(t,{emit:i}){const e=t,a=i,{availableViews:l}=ya($(Ke()===null)),r=b(()=>l.filter(u=>u.id===e.currentView)[0]??l[0]),n=u=>a("update:filterString",u.toString());return(u,p)=>(s(),c(M,null,[_(d(yt),{class:"file-picker__filter-input",label:d(h)("Filter file list"),showTrailingButton:!!t.filterString,modelValue:t.filterString,"onUpdate:modelValue":n,onTrailingButtonClick:p[0]||(p[0]=o=>n(""))},{"trailing-button-icon":w(()=>[_(da,{size:16})]),default:w(()=>[_(ga,{size:16})]),_:1},8,["label","showTrailingButton","modelValue"]),d(l).length>1&&!t.disabledNavigation?(s(),c(M,{key:0},[t.isCollapsed?(s(),C(d(gt),{key:1,"aria-label":d(h)("Current view selector"),clearable:!1,searchable:!1,options:d(l),modelValue:r.value,"onUpdate:modelValue":p[1]||(p[1]=o=>a("update:currentView",o.id))},null,8,["aria-label","options","modelValue"])):(s(),c("ul",ba,[(s(!0),c(M,null,K(d(l),o=>(s(),c("li",{key:o.id},[_(d(O),{variant:t.currentView===o.id?"primary":"tertiary",wide:!0,onClick:g=>u.$emit("update:currentView",o.id)},{icon:w(()=>[_(d(xe),{path:o.icon,size:20},null,8,["path"])]),default:w(()=>[q(" "+L(o.label),1)]),_:2},1032,["variant","onClick"])]))),128))]))],64)):z("",!0)],64))}}),ka=x(wa,[["__scopeId","data-v-e1c54e23"]]);async function _a({client:t,signal:i}){const e=Math.round(Date.now()/1e3)-1209600,{data:a}=await t.search("/",{signal:i,details:!0,data:kt(e)});return a.results.map(l=>ye(l))}async function Ca({client:t,path:i,signal:e}){const a=(await t.getDirectoryContents(X(ge,i),{signal:e,details:!0,includeSelf:!0,data:Me()})).data.map(l=>ye(l));return{contents:a.filter(({path:l})=>l!==i),folder:a.find(({path:l})=>i===l)}}async function $a(t,i){const{data:e}=await t.stat(X(ge,i),{details:!0,data:Me()});return ye(e)}function La(t,i){const e=bt(),a=de([]),l=de(null),r=$(!0);let n;async function u(o){const g=X(i.value,o);await e.createDirectory(X(ge,g));const y=await $a(e,g);return a.value=[...a.value,y],y}async function p(){n&&(n.abort(),n=void 0),n=new AbortController,r.value=!0;try{if(t.value==="favorites")a.value=await wt({client:e,path:i.value,signal:n.signal}),l.value=null;else if(t.value==="recent")a.value=await _a({client:e,signal:n.signal}),l.value=null;else{const o=await Ca({client:e,path:i.value,signal:n.signal});l.value=o.folder,a.value=o.contents}}catch(o){if(o instanceof Error&&o.name==="AbortError")return;throw o}finally{n=void 0,r.value=!1}}return Pe([t,i],()=>p()),Q(()=>p()),{isLoading:r,files:a,folder:l,loadFiles:p,createDirectory:u}}function za(t){const i=b(()=>t.value.map(e=>e.split("/")));return{isSupportedMimeType:e=>{const a=e.split("/");return i.value.some(([l,r])=>(a[0]===l||l==="*")&&(a[1]===r||r==="*"))}}}const Ba={class:"file-picker__main"},Na={key:1,class:"file-picker__view"},Pa=H({__name:"FilePicker",props:{buttons:{},name:{},allowPickDirectory:{type:Boolean,default:!1},noMenu:{type:Boolean,default:!1},disabledNavigation:{type:Boolean,default:!1},filterFn:{type:Function,default:void 0},canPickFn:{type:Function,default:void 0},mimetypeFilter:{default:()=>[]},multiselect:{type:Boolean,default:!1},path:{default:void 0}},emits:["close"],setup(t,{emit:i}){const e=t,a=i,l=$(!0),r=$("files"),n=$(window?.sessionStorage.getItem("NC.FilePicker.LastPath")||"/"),u=$(""),p=b({get:()=>r.value==="files"?u.value||e.path||n.value:"/",set:k=>{u.value=k}}),o=de([]),g=$(""),{files:y,folder:v,isLoading:B,loadFiles:V,createDirectory:te}=La(r,p);Pe([u],()=>{e.path===void 0&&u.value&&window.sessionStorage.setItem("NC.FilePicker.LastPath",u.value),o.value=[],g.value=""});let W=!1;const ie=b(()=>{const k=o.value.length===0&&e.allowPickDirectory&&v.value?[v.value]:o.value;return(typeof e.buttons=="function"?e.buttons(k,p.value,r.value):e.buttons).map(m=>({...m,disabled:m.disabled||B.value,callback:()=>{W=!0,ae(m.callback,k)}}))});async function ae(k,m){await k(m),a("close",m),W=!1}const T=b(()=>r.value==="favorites"?h("Favorites"):r.value==="recent"?h("Recent"):""),{isSupportedMimeType:E}=za(Fe(e,"mimetypeFilter"));Q(()=>V());const{showHiddenFiles:N}=He(),P=b(()=>{let k=y.value;return N.value||(k=k.filter(m=>!m.basename.startsWith("."))),e.mimetypeFilter.length>0&&(k=k.filter(m=>m.type==="folder"||m.mime&&E(m.mime))),g.value&&(k=k.filter(m=>m.basename.toLowerCase().includes(g.value.toLowerCase()))),e.filterFn&&(k=k.filter(m=>e.filterFn(m))),k}),F=b(()=>r.value==="files"?h("Upload some content or sync with your devices!"):r.value==="recent"?h("Files and folders you recently modified will show up here."):h("Files and folders you mark as favorite will show up here."));async function R(k){try{const m=await te(k);u.value=m.path,Je("files:node:created",y.value.filter(D=>D.basename===k)[0])}catch(m){G.warn("Could not create new folder",{name:k,error:m}),he(h("Could not create the new folder"))}}function Ee(k){!k&&!W&&a("close")}return(k,m)=>(s(),C(d(Ye),{open:l.value,"onUpdate:open":[m[6]||(m[6]=D=>l.value=D),Ee],buttons:ie.value,name:t.name,size:"large",contentClasses:"file-picker__content",dialogClasses:"file-picker",navigationClasses:"file-picker__navigation"},{navigation:w(({isCollapsed:D})=>[_(ka,{currentView:r.value,"onUpdate:currentView":m[0]||(m[0]=le=>r.value=le),filterString:g.value,"onUpdate:filterString":m[1]||(m[1]=le=>g.value=le),isCollapsed:D,disabledNavigation:t.disabledNavigation},null,8,["currentView","filterString","isCollapsed","disabledNavigation"])]),default:w(()=>[f("div",Ba,[r.value==="files"?(s(),C(aa,{key:0,path:p.value,"onUpdate:path":m[2]||(m[2]=D=>p.value=D),showMenu:!t.noMenu,onCreateNode:R},null,8,["path","showMenu"])):(s(),c("div",Na,[f("h3",null,L(T.value),1)])),d(B)||P.value.length>0?(s(),C(Ui,{key:2,path:p.value,"onUpdate:path":[m[3]||(m[3]=D=>p.value=D),m[5]||(m[5]=D=>r.value="files")],selectedFiles:o.value,"onUpdate:selectedFiles":m[4]||(m[4]=D=>o.value=D),allowPickDirectory:t.allowPickDirectory,currentView:r.value,files:P.value,multiselect:t.multiselect,loading:d(B),name:T.value,canPick:t.canPickFn},null,8,["path","selectedFiles","allowPickDirectory","currentView","files","multiselect","loading","name","canPick"])):g.value?(s(),C(d(we),{key:3,name:d(h)("No matching files"),description:d(h)("No files matching your filter were found.")},{icon:w(()=>[_(fe)]),_:1},8,["name","description"])):(s(),C(d(we),{key:4,name:d(h)("No files in here"),description:F.value},{icon:w(()=>[_(fe)]),_:1},8,["name","description"]))])]),_:1},8,["open","buttons","name"]))}}),al=x(Pa,[["__scopeId","data-v-4f89ed79"]]);export{al as default}; -//# sourceMappingURL=FilePicker-DWYoSaVg-DRRVf2iD.chunk.mjs.map +import{r as re,o as s,f as c,c as C,q as Ne,w,i as ne,g as f,y as U,j as q,t as L,m as I,h as z,k as _,N as J,F as M,ai as be,ad as A,H as Ue,a9 as Z,l as $,b as H,z as Pe,D as Q,u as d,v as b,ag as de,n as ue,p as We,B as K,s as pe,E as Te,G as qe,P as Ze,Q as Oe,a6 as Fe}from"./Web-BwmPK40i.chunk.mjs";import{u as je,d as Ge,s as Qe,b as me,f as Je,n as X,a as Ke,m as Xe}from"./index-B-dGqfIG.chunk.mjs";import{N as Ye}from"./index-BW4M2n71.chunk.mjs";import{N as we}from"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import{v as et,I as tt,e as se,f as it,s as at}from"./index-BDagnpAU.chunk.mjs";import{N as O}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as Se}from"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import{N as ke,a as _e,_ as lt}from"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import{w as rt,x as nt,y as st,z as ot,A as ct,B as dt,C as Ce,t as ut,c as pt}from"./mdi-Lt-19ASw.chunk.mjs";import{S as $e}from"./ShareType-suoNfd7y.chunk.mjs";import{_ as ee,c as ft,N as xe}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{F as j,P as Le}from"./folder-29HuacU_-Joa_bkj_.chunk.mjs";import"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{P as mt,a as ht}from"./NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs";import{t as h,l as G,a as he}from"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import{c as Ve}from"./index-BLNGy7h5.chunk.mjs";import{l as De,i as Ie}from"./public-C1mLBHT3.chunk.mjs";import{a as ve,l as vt}from"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import{N as ze}from"./PencilOutline-CJ2aSuY5.chunk.mjs";import{N as gt}from"./index-dqLzhRZM.chunk.mjs";import{_ as yt}from"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import{g as bt,h as wt,i as ge,j as kt,r as ye,k as Me}from"./dav-CGJ67RGS.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import"./index-BYnFfAmz.chunk.mjs";const _t={name:"ChevronRightIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ct=["aria-hidden","aria-label"],$t=["fill","width","height"],Lt={d:"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z"},zt={key:0};function Bt(t,i,e,a,l,r){return s(),c("span",I(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon chevron-right-icon",role:"img",onClick:i[0]||(i[0]=n=>t.$emit("click",n))}),[(s(),c("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[f("path",Lt,[e.title?(s(),c("title",zt,L(e.title),1)):z("",!0)])],8,$t))],16,Ct)}const Nt=ee(_t,[["render",Bt]]),Pt={name:"NcBreadcrumb",components:{NcActions:ve,ChevronRight:Nt,NcButton:O},inheritAttrs:!1,props:{name:{type:String,required:!0},title:{type:String,default:null},to:{type:[String,Object],default:void 0},href:{type:String,default:void 0},icon:{type:String,default:""},forceIconText:{type:Boolean,default:!1},disableDrop:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},open:{type:Boolean,default:!1},class:{type:[String,Array,Object],default:""}},emits:["dragenter","dragleave","dropped","update:open"],setup(){const t=ft();return{actionsContainer:`.vue-crumb[data-crumb-id="${t}"]`,crumbId:t}},data(){return{hovering:!1}},computed:{linkAttributes(){return this.to?{to:this.to,...this.$attrs}:this.href?{href:this.href,...this.$attrs}:this.$attrs}},methods:{onOpenChange(t){this.$emit("update:open",t)},dropped(t){return this.disableDrop||(this.$emit("dropped",t,this.to||this.href),this.$parent.$emit("dropped",t,this.to||this.href),this.hovering=!1),!1},dragEnter(t){this.$emit("dragenter",t),!this.disableDrop&&(this.hovering=!0)},dragLeave(t){this.$emit("dragleave",t),!this.disableDrop&&(t.target.contains(t.relatedTarget)||this.$refs.crumb.contains(t.relatedTarget)||(this.hovering=!1))}}},Ft=["data-crumb-id"];function St(t,i,e,a,l,r){const n=re("NcButton"),u=re("NcActions"),p=re("ChevronRight");return s(),c("li",{ref:"crumb",class:U(["vue-crumb",[{"vue-crumb--hovered":l.hovering},t.$props.class]]),"data-crumb-id":a.crumbId,draggable:"false",onDragstart:J(()=>{},["prevent"]),onDrop:i[0]||(i[0]=J((...o)=>r.dropped&&r.dropped(...o),["prevent"])),onDragover:J(()=>{},["prevent"]),onDragenter:i[1]||(i[1]=(...o)=>r.dragEnter&&r.dragEnter(...o)),onDragleave:i[2]||(i[2]=(...o)=>r.dragLeave&&r.dragLeave(...o))},[(e.name||e.icon||t.$slots.icon)&&!t.$slots.default?(s(),C(n,I({key:0,"aria-label":e.icon?e.name:void 0,variant:"tertiary"},r.linkAttributes),Ne({_:2},[t.$slots.icon||e.icon?{name:"icon",fn:w(()=>[ne(t.$slots,"icon",{},()=>[f("span",{class:U([e.icon,"icon"])},null,2)],!0)]),key:"0"}:void 0,!(t.$slots.icon||e.icon)||e.forceIconText?{name:"default",fn:w(()=>[q(L(e.name),1)]),key:"1"}:void 0]),1040,["aria-label"])):z("",!0),t.$slots.default?(s(),C(u,{key:1,ref:"actions",container:a.actionsContainer,forceMenu:e.forceMenu,forceName:"",menuName:e.name,open:e.open,title:e.title,variant:"tertiary","onUpdate:open":r.onOpenChange},{icon:w(()=>[ne(t.$slots,"menu-icon",{},void 0,!0)]),default:w(()=>[ne(t.$slots,"default",{},void 0,!0)]),_:3},8,["container","forceMenu","menuName","open","title","onUpdate:open"])):z("",!0),_(p,{class:"vue-crumb__separator",size:20})],42,Ft)}const Y=ee(Pt,[["render",St],["__scopeId","data-v-7cec4a3e"]]),xt={name:"FolderIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Vt=["aria-hidden","aria-label"],Dt=["fill","width","height"],It={d:"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z"},Mt={key:0};function Rt(t,i,e,a,l,r){return s(),c("span",I(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon folder-icon",role:"img",onClick:i[0]||(i[0]=n=>t.$emit("click",n))}),[(s(),c("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[f("path",It,[e.title?(s(),c("title",Mt,L(e.title),1)):z("",!0)])],8,Dt))],16,Vt)}const Be=ee(xt,[["render",Rt]]),S="vue-crumb",At={name:"NcBreadcrumbs",components:{NcActions:ve,NcActionButton:ze,NcActionRouter:_e,NcActionLink:ke,NcBreadcrumb:Y,IconFolder:Be},props:{rootIcon:{type:String,default:"icon-home"},ariaLabel:{type:String,default:null}},emits:["dropped"],data(){return{hiddenIndices:[],menuBreadcrumbProps:{name:"",forceMenu:!0,disableDrop:!0,open:!1},breadcrumbsRefs:[]}},created(){window.addEventListener("resize",Ge(()=>{this.handleWindowResize()},100)),Qe("navigation-toggled",this.delayedResize)},mounted(){this.handleWindowResize()},updated(){this.delayedResize(),this.$nextTick(()=>{this.hideCrumbs()})},beforeUnmount(){window.removeEventListener("resize",this.handleWindowResize),je("navigation-toggled",this.delayedResize)},methods:{closeActions(t){this.$refs.actionsBreadcrumb.$el.contains(t.relatedTarget)||(this.menuBreadcrumbProps.open=!1)},async delayedResize(){await this.$nextTick(),this.handleWindowResize()},handleWindowResize(){if(!this.$refs.container)return;const t=this.breadcrumbsRefs.length,i=[],e=this.$refs.container.offsetWidth;let a=this.getTotalWidth();this.$refs.breadcrumb__actions&&(a+=this.$refs.breadcrumb__actions.offsetWidth);let l=a-e;l+=l>0?64:0;let r=0;const n=Math.floor(t/2);for(;l>0&&ru-p))||(this.hiddenIndices=i)},arraysEqual(t,i){if(t.length!==i.length)return!1;if(t===i)return!0;if(t===null||i===null)return!1;for(let e=0;et+this.getWidth(i.$el,e===this.breadcrumbsRefs.length-1),0)},getWidth(t,i){if(!t?.classList)return 0;const e=t.classList.contains(`${S}--hidden`);t.style.minWidth="auto",i&&(t.style.maxWidth="210px"),t.classList.remove(`${S}--hidden`);const a=t.offsetWidth;return e&&t.classList.add(`${S}--hidden`),t.style.minWidth="",t.style.maxWidth="",a},preventDefault(t){return t.preventDefault&&t.preventDefault(),!1},dragStart(t){return this.preventDefault(t)},dropped(t,i,e){e||this.$emit("dropped",t,i),this.menuBreadcrumbProps.open=!1;const a=document.querySelectorAll(`.${S}`);for(const l of a)l.classList.remove(`${S}--hovered`);return this.preventDefault(t)},dragOver(t){return this.preventDefault(t)},dragEnter(t,i){if(!i&&t.target.closest){const e=t.target.closest(`.${S}`);if(e.classList&&e.classList.contains(S)){const a=document.querySelectorAll(`.${S}`);for(const l of a)l.classList.remove(`${S}--hovered`);e.classList.add(`${S}--hovered`)}}},dragLeave(t,i){if(!i&&!t.target.contains(t.relatedTarget)&&t.target.closest){const e=t.target.closest(`.${S}`);if(e.contains(t.relatedTarget))return;e.classList&&e.classList.contains(S)&&e.classList.remove(`${S}--hovered`)}},hideCrumbs(){this.breadcrumbsRefs.forEach((t,i)=>{t?.$el?.classList&&(this.hiddenIndices.includes(i)?t.$el.classList.add(`${S}--hidden`):t.$el.classList.remove(`${S}--hidden`))})},isBreadcrumb(t){return t?.type?.name==="NcBreadcrumb"}},render(){let t=[];if(this.$slots.default?.().forEach(l=>{if(this.isBreadcrumb(l)){t.push(l);return}l?.type===M&&l?.children?.forEach?.(r=>{this.isBreadcrumb(r)&&t.push(r)})}),t.length===0)return;t[0]=be(t[0],{icon:this.rootIcon,ref:"breadcrumbs"});const i=[];t=t.map((l,r)=>be(l,{ref:n=>{i[r]=n}}));const e=[...t];this.hiddenIndices.length&&e.splice(Math.round(t.length/2),0,A(Y,{class:"dropdown",...this.menuBreadcrumbProps,"aria-hidden":!0,ref:"actionsBreadcrumb",key:"actions-breadcrumb-1",onDragenter:()=>{this.menuBreadcrumbProps.open=!0},onDragleave:this.closeActions,"onUpdate:open":l=>{this.menuBreadcrumbProps.open=l}},{default:()=>this.hiddenIndices.filter(l=>l<=t.length-1).map(l=>{const r=t[l],{to:n,href:u,disableDrop:p,name:o,...g}=r.props;delete g.ref;let y=ze,v="";u&&(y=ke,v=u),n&&(y=_e,v=n);const B=A(Be,{size:20});return A(y,{...g,class:S,href:u||null,to:n||null,draggable:!1,onDragstart:this.dragStart,onDrop:V=>this.dropped(V,v,p),onDragover:this.dragOver,onDragenter:V=>this.dragEnter(V,p),onDragleave:V=>this.dragLeave(V,p)},{default:()=>o,icon:()=>B})})}));const a=[A("nav",{"aria-label":this.ariaLabel},[A("ul",{class:"breadcrumb__crumbs"},[e])])];return vt(this.$slots.actions?.())&&a.push(A("div",{class:"breadcrumb__actions",ref:"breadcrumb__actions"},this.$slots.actions?.())),this.breadcrumbsRefs=i,A("div",{class:["breadcrumb",{"breadcrumb--collapsed":this.hiddenIndices.length===t.length-2}],ref:"container"},a)}},Ht=ee(At,[["__scopeId","data-v-0015282c"]]),Et=new mt({concurrency:5});function Ut(t){const{resolve:i,promise:e}=Promise.withResolvers();return Et.add(()=>{const a=new Image;return a.onerror=()=>i(!1),a.onload=()=>i(!0),a.src=t,e}),e}function Wt(t,i={}){i={size:32,cropPreview:!1,mimeFallback:!0,...i};try{const e=t.attributes?.previewUrl||me("/core/preview?fileId={fileid}",{fileid:t.fileid});let a;try{a=new URL(e)}catch{a=new URL(e,window.location.origin)}return a.searchParams.set("x",`${i.size}`),a.searchParams.set("y",`${i.size}`),a.searchParams.set("mimeFallback",`${i.mimeFallback}`),a.searchParams.set("a",i.cropPreview===!0?"0":"1"),a.searchParams.set("c",`${t.attributes.etag}`),a}catch{return null}}function Tt(t,i){const e=$(null),a=$(!1);return Ue(()=>{a.value=!1,e.value=Wt(Z(t),Z(i||{})),e.value&&Z(t).type===j.File&&Ut(e.value.href).then(l=>{a.value=l})}),{previewURL:e,previewLoaded:a}}const x=(t,i)=>{const e=t.__vccOpts||t;for(const[a,l]of i)e[a]=l;return e},qt={name:"FileIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Zt=["aria-hidden","aria-label"],Ot=["fill","width","height"],jt={d:"M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z"},Gt={key:0};function Qt(t,i,e,a,l,r){return s(),c("span",I(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon file-icon",role:"img",onClick:i[0]||(i[0]=n=>t.$emit("click",n))}),[(s(),c("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[f("path",jt,[e.title?(s(),c("title",Gt,L(e.title),1)):z("",!0)])],8,Ot))],16,Zt)}const fe=x(qt,[["render",Qt]]),Jt={name:"MenuDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Kt=["aria-hidden","aria-label"],Xt=["fill","width","height"],Yt={d:"M7,10L12,15L17,10H7Z"},ei={key:0};function ti(t,i,e,a,l,r){return s(),c("span",I(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon menu-down-icon",role:"img",onClick:i[0]||(i[0]=n=>t.$emit("click",n))}),[(s(),c("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[f("path",Yt,[e.title?(s(),c("title",ei,L(e.title),1)):z("",!0)])],8,Xt))],16,Kt)}const oe=x(Jt,[["render",ti]]),ii={name:"MenuUpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ai=["aria-hidden","aria-label"],li=["fill","width","height"],ri={d:"M7,15L12,10L17,15H7Z"},ni={key:0};function si(t,i,e,a,l,r){return s(),c("span",I(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon menu-up-icon",role:"img",onClick:i[0]||(i[0]=n=>t.$emit("click",n))}),[(s(),c("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[f("path",ri,[e.title?(s(),c("title",ni,L(e.title),1)):z("",!0)])],8,li))],16,ai)}const ce=x(ii,[["render",si]]),oi={name:"FolderIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ci=["aria-hidden","aria-label"],di=["fill","width","height"],ui={d:"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z"},pi={key:0};function fi(t,i,e,a,l,r){return s(),c("span",I(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon folder-icon",role:"img",onClick:i[0]||(i[0]=n=>t.$emit("click",n))}),[(s(),c("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[f("path",ui,[e.title?(s(),c("title",pi,L(e.title),1)):z("",!0)])],8,di))],16,ci)}const Re=x(oi,[["render",fi]]),Ae={"file-picker__file-icon":"_file-picker__file-icon_1aykw_9","file-picker__file-icon--primary":"_file-picker__file-icon--primary_1aykw_22","file-picker__file-icon-overlay":"_file-picker__file-icon-overlay_1aykw_26"},mi=H({__name:"FilePreview",props:{node:{},cropImagePreviews:{type:Boolean}},setup(t){const i=t,e=$(Ae),{previewURL:a,previewLoaded:l}=Tt(Fe(i,"node"),b(()=>({cropPreview:i.cropImagePreviews}))),r=b(()=>i.node.type===j.File),n=b(()=>{if(i.node.type!==j.Folder)return null;if(i.node.attributes?.["is-encrypted"]===1)return ot;if(i.node.attributes?.["is-tag"])return ct;const u=Object.values(i.node.attributes?.["share-types"]||{}).flat();if(u.some(p=>p===$e.Link||p===$e.Email))return dt;if(u.length>0)return Ce;switch(i.node.attributes?.["mount-type"]){case"external":case"external-session":return pt;case"group":return ut;case"shared":return Ce}return null});return(u,p)=>(s(),c("div",{style:Oe(d(l)?{backgroundImage:`url(${d(a)})`}:void 0),class:U(e.value["file-picker__file-icon"])},[d(l)?z("",!0):(s(),c(M,{key:0},[r.value?(s(),C(fe,{key:0,size:32})):(s(),c(M,{key:1},[n.value?(s(),C(d(xe),{key:0,class:U(e.value["file-picker__file-icon-overlay"]),inline:"",path:n.value,size:16},null,8,["class","path"])):z("",!0),_(Re,{class:U(e.value["file-picker__file-icon--primary"]),size:32},null,8,["class"])],64))],64))],6))}}),hi=["tabindex","aria-selected","data-filename"],vi={class:"row-name"},gi={class:"file-picker__name-container","data-testid":"row-name"},yi=["title","textContent"],bi=["textContent"],wi={class:"row-size"},ki={class:"row-modified"},_i=H({__name:"FileListRow",props:{allowPickDirectory:{type:Boolean},selected:{type:Boolean},showCheckbox:{type:Boolean},canPick:{type:Boolean},node:{},cropImagePreviews:{type:Boolean}},emits:["update:selected","enterDirectory"],setup(t,{emit:i}){const e=t,a=i,l=b(()=>e.node.mtime??0),r=b(()=>Xe(e.node.displayname)),n=b(()=>e.node.displayname.slice(0,r.value?-r.value.length:void 0)),u=b(()=>e.node.type===j.Folder),p=b(()=>e.canPick&&(e.allowPickDirectory||!u.value)),o=b(()=>(e.node.permissions&Le.READ)===Le.READ);function g(){p.value&&a("update:selected",!e.selected)}function y(){u.value?o.value&&a("enterDirectory",e.node):g()}function v(B){B.key==="Enter"&&y()}return(B,V)=>(s(),c("tr",I({tabindex:t.showCheckbox&&!u.value?void 0:0,"aria-selected":p.value?t.selected:void 0,class:["file-picker__row",[{"file-picker__row--selected":t.selected&&!t.showCheckbox,"file-picker__row--not-navigatable":u.value&&!o.value,"file-picker__row--not-pickable":!p.value}]],"data-filename":t.node.basename,"data-testid":"file-list-row"},Ze({click:y,...!t.showCheckbox||u.value?{keydown:v}:{}},!0)),[t.showCheckbox?(s(),c("td",{key:0,class:"row-checkbox",onClick:J(()=>{},["stop"])},[_(d(Se),{"aria-label":d(h)("Select the row for {nodename}",{nodename:n.value}),disabled:!p.value,"data-testid":"row-checkbox",modelValue:t.selected,"onUpdate:modelValue":g},null,8,["aria-label","disabled","modelValue"])])):z("",!0),f("td",vi,[f("div",gi,[_(mi,{node:t.node,cropImagePreviews:t.cropImagePreviews},null,8,["node","cropImagePreviews"]),f("div",{class:"file-picker__file-name",title:n.value,textContent:L(n.value)},null,8,yi),f("div",{class:"file-picker__file-extension",textContent:L(r.value)},null,8,bi)])]),f("td",wi,L(d(it)(t.node.size||0)),1),f("td",ki,[_(d(lt),{timestamp:l.value,ignoreSeconds:""},null,8,["timestamp"])])],16,hi))}}),Ci=x(_i,[["__scopeId","data-v-7857e8bd"]]),$i={"aria-hidden":"true",class:"file-picker__row loading-row"},Li={key:0,class:"row-checkbox"},zi={class:"row-name"},Bi={class:"row-wrapper"},Ni=H({__name:"LoadingTableRow",props:{showCheckbox:{type:Boolean}},setup(t){return(i,e)=>(s(),c("tr",$i,[t.showCheckbox?(s(),c("td",Li,[...e[0]||(e[0]=[f("span",null,null,-1)])])):z("",!0),f("td",zi,[f("div",Bi,[f("span",{class:U(d(Ae)["file-picker__file-icon"])},null,2),e[1]||(e[1]=f("span",null,null,-1))])]),e[2]||(e[2]=f("td",{class:"row-size"},[f("span")],-1)),e[3]||(e[3]=f("td",{class:"row-modified"},[f("span")],-1))]))}}),Pi=x(Ni,[["__scopeId","data-v-1f96131b"]]);function He(){const t=De("files","config",null),i=$(t?.show_hidden??!0),e=$(t?.sort_favorites_first??!0),a=$(t?.crop_image_previews??!0);return Q(async()=>{if(Ie())G.debug("Skip loading files settings - currently on public share");else try{const{data:l}=await Ve.get(me("/apps/files/api/v1/configs"));i.value=l?.data?.show_hidden??!1,e.value=l?.data?.sort_favorites_first??!0,a.value=l?.data?.crop_image_previews??!0}catch(l){G.error("Could not load files settings",{error:l}),he(h("Could not load files settings"))}}),{showHiddenFiles:i,sortFavoritesFirst:e,cropImagePreviews:a}}function Fi(t){const i=o=>o==="asc"?"ascending":o==="desc"?"descending":"none",e=De("files","viewConfigs",null),a=$({sortBy:e?.files?.sorting_mode??"basename",order:i(e?.files?.sorting_direction??"asc")}),l=$({sortBy:e?.recent?.sorting_mode??"basename",order:i(e?.recent?.sorting_direction??"asc")}),r=$({sortBy:e?.favorites?.sorting_mode??"basename",order:i(e?.favorites?.sorting_direction??"asc")});Q(async()=>{if(Ie())G.debug("Skip loading files views - currently on public share");else try{const{data:o}=await Ve.get(me("/apps/files/api/v1/views"));a.value={sortBy:o?.data?.files?.sorting_mode??"basename",order:i(o?.data?.files?.sorting_direction)},r.value={sortBy:o?.data?.favorites?.sorting_mode??"basename",order:i(o?.data?.favorites?.sorting_direction)},l.value={sortBy:o?.data?.recent?.sorting_mode??"basename",order:i(o?.data?.recent?.sorting_direction)}}catch(o){G.error("Could not load files views",{error:o}),he(h("Could not load files views"))}});const n=b(()=>Z(t||"files")==="files"?a.value:Z(t)==="recent"?l.value:r.value),u=b(()=>n.value.sortBy),p=b(()=>n.value.order);return{filesViewConfig:a,favoritesViewConfig:r,recentViewConfig:l,currentConfig:n,sortBy:u,order:p}}const Si={key:0,class:"row-checkbox"},xi={class:"hidden-visually"},Vi=["aria-sort"],Di={class:"header-wrapper"},Ii={key:2,style:{width:"44px"}},Mi=["aria-sort"],Ri={key:2,style:{width:"44px"}},Ai=["aria-sort"],Hi={key:2,style:{width:"44px"}},Ei=H({__name:"FileList",props:pe({currentView:{},multiselect:{type:Boolean},allowPickDirectory:{type:Boolean},loading:{type:Boolean},files:{},canPick:{type:Function}},{path:{required:!0},pathModifiers:{},selectedFiles:{required:!0},selectedFilesModifiers:{}}),emits:["update:path","update:selectedFiles"],setup(t){const i=ue(t,"path"),e=ue(t,"selectedFiles"),a=t,l=$(),{currentConfig:r}=Fi(a.currentView),n=b(()=>l.value??r.value),u=b(()=>n.value.sortBy==="basename"?n.value.order==="none"?void 0:n.value.order:void 0),p=b(()=>n.value.sortBy==="size"?n.value.order==="none"?void 0:n.value.order:void 0),o=b(()=>n.value.sortBy==="mtime"?n.value.order==="none"?void 0:n.value.order:void 0);function g(N){n.value.sortBy===N?n.value.order==="ascending"?l.value={sortBy:n.value.sortBy,order:"descending"}:l.value={sortBy:n.value.sortBy,order:"ascending"}:l.value={sortBy:N,order:"ascending"}}const{sortFavoritesFirst:y,cropImagePreviews:v}=He(),B=b(()=>at(a.files,{sortFoldersFirst:!0,sortFavoritesFirst:y.value,sortingOrder:n.value.order==="descending"?"desc":"asc",sortingMode:n.value.sortBy})),V=b(()=>a.files.filter(N=>a.allowPickDirectory||N.type!==j.Folder)),te=b(()=>!a.loading&&e.value.length>0&&e.value.length>=V.value.length);function W(){e.value.lengthP.path!==N.path):a.multiselect?e.value=[...e.value,N]:e.value=[N]}function ae(N){i.value=N.path}const T=$(4),E=$();{const N=()=>qe(()=>{const P=E.value?.parentElement?.children||[];let F=E.value?.parentElement?.clientHeight||450;for(let R=0;R{window.addEventListener("resize",N),N()}),Te(()=>{window.removeEventListener("resize",N)})}return(N,P)=>(s(),c("div",{ref_key:"fileContainer",ref:E,class:"file-picker__files"},[f("table",null,[f("thead",null,[f("tr",null,[t.multiselect?(s(),c("th",Si,[f("span",xi,L(d(h)("Select entry")),1),t.multiselect?(s(),C(d(Se),{key:0,"aria-label":d(h)("Select all entries"),"data-testid":"select-all-checkbox",modelValue:te.value,"onUpdate:modelValue":W},null,8,["aria-label","modelValue"])):z("",!0)])):z("",!0),f("th",{"aria-sort":u.value,class:"row-name"},[f("div",Di,[P[3]||(P[3]=f("span",{class:"file-picker__header-preview"},null,-1)),_(d(O),{"data-test":"file-picker_sort-name",variant:"tertiary",wide:"",onClick:P[0]||(P[0]=F=>g("basename"))},{icon:w(()=>[u.value==="ascending"?(s(),C(ce,{key:0,size:20})):u.value==="descending"?(s(),C(oe,{key:1,size:20})):(s(),c("span",Ii))]),default:w(()=>[q(" "+L(d(h)("Name")),1)]),_:1})])],8,Vi),f("th",{"aria-sort":p.value,class:"row-size"},[_(d(O),{variant:"tertiary",wide:"",onClick:P[1]||(P[1]=F=>g("size"))},{icon:w(()=>[p.value==="ascending"?(s(),C(ce,{key:0,size:20})):p.value==="descending"?(s(),C(oe,{key:1,size:20})):(s(),c("span",Ri))]),default:w(()=>[q(" "+L(d(h)("Size")),1)]),_:1})],8,Mi),f("th",{"aria-sort":o.value,class:"row-modified"},[_(d(O),{variant:"tertiary",wide:"",onClick:P[2]||(P[2]=F=>g("mtime"))},{icon:w(()=>[o.value==="ascending"?(s(),C(ce,{key:0,size:20})):o.value==="descending"?(s(),C(oe,{key:1,size:20})):(s(),c("span",Hi))]),default:w(()=>[q(" "+L(d(h)("Modified")),1)]),_:1})],8,Ai)])]),f("tbody",null,[t.loading?(s(!0),c(M,{key:0},K(T.value,F=>(s(),C(Pi,{key:F,showCheckbox:t.multiselect},null,8,["showCheckbox"]))),128)):(s(!0),c(M,{key:1},K(B.value,F=>(s(),C(Ci,{key:F.fileid||F.path,allowPickDirectory:t.allowPickDirectory,showCheckbox:t.multiselect,canPick:(t.multiselect||e.value.length===0||e.value.includes(F))&&(t.canPick===void 0||t.canPick(F)),selected:e.value.includes(F),node:F,cropImagePreviews:d(v),"onUpdate:selected":R=>ie(F),onEnterDirectory:ae},null,8,["allowPickDirectory","showCheckbox","canPick","selected","node","cropImagePreviews","onUpdate:selected"]))),128))])])],512))}}),Ui=x(Ei,[["__scopeId","data-v-412efd5c"]]),Wi={name:"HomeIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ti=["aria-hidden","aria-label"],qi=["fill","width","height"],Zi={d:"M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z"},Oi={key:0};function ji(t,i,e,a,l,r){return s(),c("span",I(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon home-icon",role:"img",onClick:i[0]||(i[0]=n=>t.$emit("click",n))}),[(s(),c("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[f("path",Zi,[e.title?(s(),c("title",Oi,L(e.title),1)):z("",!0)])],8,qi))],16,Ti)}const Gi=x(Wi,[["render",ji]]),Qi={name:"PlusIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ji=["aria-hidden","aria-label"],Ki=["fill","width","height"],Xi={d:"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z"},Yi={key:0};function ea(t,i,e,a,l,r){return s(),c("span",I(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon plus-icon",role:"img",onClick:i[0]||(i[0]=n=>t.$emit("click",n))}),[(s(),c("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[f("path",Xi,[e.title?(s(),c("title",Yi,L(e.title),1)):z("",!0)])],8,Ki))],16,Ji)}const ta=x(Qi,[["render",ea]]),ia=H({__name:"FilePickerBreadcrumbs",props:pe({showMenu:{type:Boolean}},{path:{required:!0},pathModifiers:{}}),emits:pe(["createNode"],["update:path"]),setup(t,{emit:i}){const e=ue(t,"path"),a=i,l=$(!1),r=$(""),n=We("nameInput");function u(){const g=r.value.trim(),y=n.value?.$el?.querySelector("input");let v="";try{et(g)}catch(B){if(!(B instanceof tt))throw B;switch(B.reason){case se.Character:v=h('"{char}" is not allowed inside a folder name.',{char:B.segment});break;case se.ReservedName:v=h('"{segment}" is a reserved name and not allowed for folder names.',{segment:B.segment});break;case se.Extension:v=h('Folder names must not end with "{extension}".',{extension:B.segment});break;default:v=h("Invalid folder name.")}}return y&&y.setCustomValidity(v),v===""}function p(){const g=r.value.trim();u()&&(l.value=!1,a("createNode",g),r.value="")}const o=b(()=>e.value.split("/").filter(g=>g!=="").map((g,y,v)=>({name:g,path:"/"+v.slice(0,y+1).join("/")})));return(g,y)=>(s(),C(d(Ht),{class:"file-picker__breadcrumbs"},Ne({default:w(()=>[_(d(Y),{name:d(h)("All files"),title:d(h)("Home"),onClick:y[0]||(y[0]=v=>e.value="/")},{icon:w(()=>[_(Gi,{size:20})]),_:1},8,["name","title"]),(s(!0),c(M,null,K(o.value,v=>(s(),C(d(Y),{key:v.path,name:v.name,title:v.path,onClick:B=>e.value=v.path},null,8,["name","title","onClick"]))),128))]),_:2},[t.showMenu?{name:"actions",fn:w(()=>[_(d(ve),{open:l.value,"onUpdate:open":y[2]||(y[2]=v=>l.value=v),"aria-label":d(h)("Create directory"),forceMenu:!0,forceName:!0,menuName:d(h)("New"),variant:"secondary",onClose:y[3]||(y[3]=v=>r.value="")},{icon:w(()=>[_(ta,{size:20})]),default:w(()=>[_(d(ht),{ref_key:"nameInput",ref:n,modelValue:r.value,"onUpdate:modelValue":[y[1]||(y[1]=v=>r.value=v),u],label:d(h)("New folder"),placeholder:d(h)("New folder name"),onSubmit:p},{icon:w(()=>[_(Re,{size:20})]),_:1},8,["modelValue","label","placeholder"])]),_:1},8,["open","aria-label","menuName"])]),key:"0"}:void 0]),1024))}}),aa=x(ia,[["__scopeId","data-v-b448b141"]]),la={name:"CloseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ra=["aria-hidden","aria-label"],na=["fill","width","height"],sa={d:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"},oa={key:0};function ca(t,i,e,a,l,r){return s(),c("span",I(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon close-icon",role:"img",onClick:i[0]||(i[0]=n=>t.$emit("click",n))}),[(s(),c("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[f("path",sa,[e.title?(s(),c("title",oa,L(e.title),1)):z("",!0)])],8,na))],16,ra)}const da=x(la,[["render",ca]]),ua={name:"MagnifyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},pa=["aria-hidden","aria-label"],fa=["fill","width","height"],ma={d:"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"},ha={key:0};function va(t,i,e,a,l,r){return s(),c("span",I(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon magnify-icon",role:"img",onClick:i[0]||(i[0]=n=>t.$emit("click",n))}),[(s(),c("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[f("path",ma,[e.title?(s(),c("title",ha,L(e.title),1)):z("",!0)])],8,fa))],16,pa)}const ga=x(ua,[["render",va]]);function ya(t){const i=[{id:"files",label:h("All files"),icon:rt},{id:"recent",label:h("Recent"),icon:nt},{id:"favorites",label:h("Favorites"),icon:st}],e=t.value?i.filter(({id:a})=>a==="files"):i;return{allViews:i,availableViews:e}}const ba={key:0,class:"file-picker__side"},wa=H({__name:"FilePickerNavigation",props:{currentView:{},filterString:{},isCollapsed:{type:Boolean},disabledNavigation:{type:Boolean}},emits:["update:currentView","update:filterString"],setup(t,{emit:i}){const e=t,a=i,{availableViews:l}=ya($(Ke()===null)),r=b(()=>l.filter(u=>u.id===e.currentView)[0]??l[0]),n=u=>a("update:filterString",u.toString());return(u,p)=>(s(),c(M,null,[_(d(yt),{class:"file-picker__filter-input",label:d(h)("Filter file list"),showTrailingButton:!!t.filterString,modelValue:t.filterString,"onUpdate:modelValue":n,onTrailingButtonClick:p[0]||(p[0]=o=>n(""))},{"trailing-button-icon":w(()=>[_(da,{size:16})]),default:w(()=>[_(ga,{size:16})]),_:1},8,["label","showTrailingButton","modelValue"]),d(l).length>1&&!t.disabledNavigation?(s(),c(M,{key:0},[t.isCollapsed?(s(),C(d(gt),{key:1,"aria-label":d(h)("Current view selector"),clearable:!1,searchable:!1,options:d(l),modelValue:r.value,"onUpdate:modelValue":p[1]||(p[1]=o=>a("update:currentView",o.id))},null,8,["aria-label","options","modelValue"])):(s(),c("ul",ba,[(s(!0),c(M,null,K(d(l),o=>(s(),c("li",{key:o.id},[_(d(O),{variant:t.currentView===o.id?"primary":"tertiary",wide:!0,onClick:g=>u.$emit("update:currentView",o.id)},{icon:w(()=>[_(d(xe),{path:o.icon,size:20},null,8,["path"])]),default:w(()=>[q(" "+L(o.label),1)]),_:2},1032,["variant","onClick"])]))),128))]))],64)):z("",!0)],64))}}),ka=x(wa,[["__scopeId","data-v-e1c54e23"]]);async function _a({client:t,signal:i}){const e=Math.round(Date.now()/1e3)-1209600,{data:a}=await t.search("/",{signal:i,details:!0,data:kt(e)});return a.results.map(l=>ye(l))}async function Ca({client:t,path:i,signal:e}){const a=(await t.getDirectoryContents(X(ge,i),{signal:e,details:!0,includeSelf:!0,data:Me()})).data.map(l=>ye(l));return{contents:a.filter(({path:l})=>l!==i),folder:a.find(({path:l})=>i===l)}}async function $a(t,i){const{data:e}=await t.stat(X(ge,i),{details:!0,data:Me()});return ye(e)}function La(t,i){const e=bt(),a=de([]),l=de(null),r=$(!0);let n;async function u(o){const g=X(i.value,o);await e.createDirectory(X(ge,g));const y=await $a(e,g);return a.value=[...a.value,y],y}async function p(){n&&(n.abort(),n=void 0),n=new AbortController,r.value=!0;try{if(t.value==="favorites")a.value=await wt({client:e,path:i.value,signal:n.signal}),l.value=null;else if(t.value==="recent")a.value=await _a({client:e,signal:n.signal}),l.value=null;else{const o=await Ca({client:e,path:i.value,signal:n.signal});l.value=o.folder,a.value=o.contents}}catch(o){if(o instanceof Error&&o.name==="AbortError")return;throw o}finally{n=void 0,r.value=!1}}return Pe([t,i],()=>p()),Q(()=>p()),{isLoading:r,files:a,folder:l,loadFiles:p,createDirectory:u}}function za(t){const i=b(()=>t.value.map(e=>e.split("/")));return{isSupportedMimeType:e=>{const a=e.split("/");return i.value.some(([l,r])=>(a[0]===l||l==="*")&&(a[1]===r||r==="*"))}}}const Ba={class:"file-picker__main"},Na={key:1,class:"file-picker__view"},Pa=H({__name:"FilePicker",props:{buttons:{},name:{},allowPickDirectory:{type:Boolean,default:!1},noMenu:{type:Boolean,default:!1},disabledNavigation:{type:Boolean,default:!1},filterFn:{type:Function,default:void 0},canPickFn:{type:Function,default:void 0},mimetypeFilter:{default:()=>[]},multiselect:{type:Boolean,default:!1},path:{default:void 0}},emits:["close"],setup(t,{emit:i}){const e=t,a=i,l=$(!0),r=$("files"),n=$(window?.sessionStorage.getItem("NC.FilePicker.LastPath")||"/"),u=$(""),p=b({get:()=>r.value==="files"?u.value||e.path||n.value:"/",set:k=>{u.value=k}}),o=de([]),g=$(""),{files:y,folder:v,isLoading:B,loadFiles:V,createDirectory:te}=La(r,p);Pe([u],()=>{e.path===void 0&&u.value&&window.sessionStorage.setItem("NC.FilePicker.LastPath",u.value),o.value=[],g.value=""});let W=!1;const ie=b(()=>{const k=o.value.length===0&&e.allowPickDirectory&&v.value?[v.value]:o.value;return(typeof e.buttons=="function"?e.buttons(k,p.value,r.value):e.buttons).map(m=>({...m,disabled:m.disabled||B.value,callback:()=>{W=!0,ae(m.callback,k)}}))});async function ae(k,m){await k(m),a("close",m),W=!1}const T=b(()=>r.value==="favorites"?h("Favorites"):r.value==="recent"?h("Recent"):""),{isSupportedMimeType:E}=za(Fe(e,"mimetypeFilter"));Q(()=>V());const{showHiddenFiles:N}=He(),P=b(()=>{let k=y.value;return N.value||(k=k.filter(m=>!m.basename.startsWith("."))),e.mimetypeFilter.length>0&&(k=k.filter(m=>m.type==="folder"||m.mime&&E(m.mime))),g.value&&(k=k.filter(m=>m.basename.toLowerCase().includes(g.value.toLowerCase()))),e.filterFn&&(k=k.filter(m=>e.filterFn(m))),k}),F=b(()=>r.value==="files"?h("Upload some content or sync with your devices!"):r.value==="recent"?h("Files and folders you recently modified will show up here."):h("Files and folders you mark as favorite will show up here."));async function R(k){try{const m=await te(k);u.value=m.path,Je("files:node:created",y.value.filter(D=>D.basename===k)[0])}catch(m){G.warn("Could not create new folder",{name:k,error:m}),he(h("Could not create the new folder"))}}function Ee(k){!k&&!W&&a("close")}return(k,m)=>(s(),C(d(Ye),{open:l.value,"onUpdate:open":[m[6]||(m[6]=D=>l.value=D),Ee],buttons:ie.value,name:t.name,size:"large",contentClasses:"file-picker__content",dialogClasses:"file-picker",navigationClasses:"file-picker__navigation"},{navigation:w(({isCollapsed:D})=>[_(ka,{currentView:r.value,"onUpdate:currentView":m[0]||(m[0]=le=>r.value=le),filterString:g.value,"onUpdate:filterString":m[1]||(m[1]=le=>g.value=le),isCollapsed:D,disabledNavigation:t.disabledNavigation},null,8,["currentView","filterString","isCollapsed","disabledNavigation"])]),default:w(()=>[f("div",Ba,[r.value==="files"?(s(),C(aa,{key:0,path:p.value,"onUpdate:path":m[2]||(m[2]=D=>p.value=D),showMenu:!t.noMenu,onCreateNode:R},null,8,["path","showMenu"])):(s(),c("div",Na,[f("h3",null,L(T.value),1)])),d(B)||P.value.length>0?(s(),C(Ui,{key:2,path:p.value,"onUpdate:path":[m[3]||(m[3]=D=>p.value=D),m[5]||(m[5]=D=>r.value="files")],selectedFiles:o.value,"onUpdate:selectedFiles":m[4]||(m[4]=D=>o.value=D),allowPickDirectory:t.allowPickDirectory,currentView:r.value,files:P.value,multiselect:t.multiselect,loading:d(B),name:T.value,canPick:t.canPickFn},null,8,["path","selectedFiles","allowPickDirectory","currentView","files","multiselect","loading","name","canPick"])):g.value?(s(),C(d(we),{key:3,name:d(h)("No matching files"),description:d(h)("No files matching your filter were found.")},{icon:w(()=>[_(fe)]),_:1},8,["name","description"])):(s(),C(d(we),{key:4,name:d(h)("No files in here"),description:F.value},{icon:w(()=>[_(fe)]),_:1},8,["name","description"]))])]),_:1},8,["open","buttons","name"]))}}),al=x(Pa,[["__scopeId","data-v-4f89ed79"]]);export{al as default}; +//# sourceMappingURL=FilePicker-DWYoSaVg-D_Ra0RFa.chunk.mjs.map diff --git a/dist/FilePicker-DWYoSaVg-DRRVf2iD.chunk.mjs.license b/dist/FilePicker-DWYoSaVg-D_Ra0RFa.chunk.mjs.license similarity index 100% rename from dist/FilePicker-DWYoSaVg-DRRVf2iD.chunk.mjs.license rename to dist/FilePicker-DWYoSaVg-D_Ra0RFa.chunk.mjs.license diff --git a/dist/FilePicker-DWYoSaVg-DRRVf2iD.chunk.mjs.map b/dist/FilePicker-DWYoSaVg-D_Ra0RFa.chunk.mjs.map similarity index 99% rename from dist/FilePicker-DWYoSaVg-DRRVf2iD.chunk.mjs.map rename to dist/FilePicker-DWYoSaVg-D_Ra0RFa.chunk.mjs.map index 206588d99ef..03eb162c211 100644 --- a/dist/FilePicker-DWYoSaVg-DRRVf2iD.chunk.mjs.map +++ b/dist/FilePicker-DWYoSaVg-D_Ra0RFa.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"FilePicker-DWYoSaVg-DRRVf2iD.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcBreadcrumb-BeDMWE_b.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcBreadcrumbs-CuQDDvin.mjs","../node_modules/@nextcloud/dialogs/dist/chunks/preview-BIbJGxXF.mjs","../node_modules/@nextcloud/dialogs/dist/chunks/_plugin-vue_export-helper-1tPrXgE0.mjs","../node_modules/@nextcloud/dialogs/dist/chunks/FilePicker-DWYoSaVg.mjs"],"sourcesContent":["import '../assets/NcBreadcrumb-BxhZKQlW.css';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, resolveComponent, withModifiers, normalizeClass, createBlock, createSlots, withCtx, renderSlot, createTextVNode, createVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { N as NcActions } from \"./NcActions-CUmcZ3C3.mjs\";\nconst _sfc_main$1 = {\n name: \"ChevronRightIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon chevron-right-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1$1);\n}\nconst ChevronRight = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1]]);\nconst _sfc_main = {\n name: \"NcBreadcrumb\",\n components: {\n NcActions,\n ChevronRight,\n NcButton\n },\n inheritAttrs: false,\n props: {\n /**\n * The main text content of the entry.\n */\n name: {\n type: String,\n required: true\n },\n /**\n * The title attribute of the element.\n */\n title: {\n type: String,\n default: null\n },\n /**\n * Route Location the link should navigate to when clicked on.\n *\n * @see https://v3.router.vuejs.org/api/#to\n */\n to: {\n type: [String, Object],\n default: void 0\n },\n /**\n * Set this prop if your app doesn't use vue-router, breadcrumbs will show as normal links.\n */\n href: {\n type: String,\n default: void 0\n },\n /**\n * Set a css icon-class to show an icon along name text (if forceIconText is provided, otherwise just icon).\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * Enables text to accompany the icon, if the icon was provided. The text that will be displayed is the name prop.\n */\n forceIconText: {\n type: Boolean,\n default: false\n },\n /**\n * Disable dropping on this breadcrumb.\n */\n disableDrop: {\n type: Boolean,\n default: false\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Open state of the Actions menu\n */\n open: {\n type: Boolean,\n default: false\n },\n /**\n * CSS class to apply to the root element.\n */\n class: {\n type: [String, Array, Object],\n default: \"\"\n }\n },\n emits: [\n \"dragenter\",\n \"dragleave\",\n \"dropped\",\n \"update:open\"\n ],\n setup() {\n const crumbId = createElementId();\n return {\n actionsContainer: `.vue-crumb[data-crumb-id=\"${crumbId}\"]`,\n crumbId\n };\n },\n data() {\n return {\n /**\n * Variable to track if we hover over the breadcrumb\n */\n hovering: false\n };\n },\n computed: {\n /**\n * The attributes to pass to `router-link` or `a`\n */\n linkAttributes() {\n if (this.to) {\n return { to: this.to, ...this.$attrs };\n } else if (this.href) {\n return { href: this.href, ...this.$attrs };\n }\n return this.$attrs;\n }\n },\n methods: {\n /**\n * Function to handle changing the open state of the Actions menu\n * $emit the open state.\n *\n * @param {boolean} open The open state of the Actions menu\n */\n onOpenChange(open) {\n this.$emit(\"update:open\", open);\n },\n /**\n * Function to handle a drop on the breadcrumb.\n * $emit the event and the path, remove the hovering state.\n *\n * @param {object} e The drop event\n * @return {boolean}\n */\n dropped(e) {\n if (this.disableDrop) {\n return false;\n }\n this.$emit(\"dropped\", e, this.to || this.href);\n this.$parent.$emit(\"dropped\", e, this.to || this.href);\n this.hovering = false;\n return false;\n },\n /**\n * Add the hovering state on drag enter\n *\n * @param {DragEvent} e The drag-enter event\n */\n dragEnter(e) {\n this.$emit(\"dragenter\", e);\n if (this.disableDrop) {\n return;\n }\n this.hovering = true;\n },\n /**\n * Remove the hovering state on drag leave\n *\n * @param {DragEvent} e The drag leave event\n */\n dragLeave(e) {\n this.$emit(\"dragleave\", e);\n if (this.disableDrop) {\n return;\n }\n if (e.target.contains(e.relatedTarget) || this.$refs.crumb.contains(e.relatedTarget)) {\n return;\n }\n this.hovering = false;\n }\n }\n};\nconst _hoisted_1 = [\"data-crumb-id\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n const _component_ChevronRight = resolveComponent(\"ChevronRight\");\n return openBlock(), createElementBlock(\"li\", {\n ref: \"crumb\",\n class: normalizeClass([\"vue-crumb\", [{ \"vue-crumb--hovered\": $data.hovering }, _ctx.$props.class]]),\n \"data-crumb-id\": $setup.crumbId,\n draggable: \"false\",\n onDragstart: withModifiers(() => {\n }, [\"prevent\"]),\n onDrop: _cache[0] || (_cache[0] = withModifiers((...args) => $options.dropped && $options.dropped(...args), [\"prevent\"])),\n onDragover: withModifiers(() => {\n }, [\"prevent\"]),\n onDragenter: _cache[1] || (_cache[1] = (...args) => $options.dragEnter && $options.dragEnter(...args)),\n onDragleave: _cache[2] || (_cache[2] = (...args) => $options.dragLeave && $options.dragLeave(...args))\n }, [\n ($props.name || $props.icon || _ctx.$slots.icon) && !_ctx.$slots.default ? (openBlock(), createBlock(_component_NcButton, mergeProps({\n key: 0,\n \"aria-label\": $props.icon ? $props.name : void 0,\n variant: \"tertiary\"\n }, $options.linkAttributes), createSlots({ _: 2 }, [\n _ctx.$slots.icon || $props.icon ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createElementVNode(\"span\", {\n class: normalizeClass([$props.icon, \"icon\"])\n }, null, 2)\n ], true)\n ]),\n key: \"0\"\n } : void 0,\n !(_ctx.$slots.icon || $props.icon) || $props.forceIconText ? {\n name: \"default\",\n fn: withCtx(() => [\n createTextVNode(toDisplayString($props.name), 1)\n ]),\n key: \"1\"\n } : void 0\n ]), 1040, [\"aria-label\"])) : createCommentVNode(\"\", true),\n _ctx.$slots.default ? (openBlock(), createBlock(_component_NcActions, {\n key: 1,\n ref: \"actions\",\n container: $setup.actionsContainer,\n forceMenu: $props.forceMenu,\n forceName: \"\",\n menuName: $props.name,\n open: $props.open,\n title: $props.title,\n variant: \"tertiary\",\n \"onUpdate:open\": $options.onOpenChange\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"menu-icon\", {}, void 0, true)\n ]),\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"container\", \"forceMenu\", \"menuName\", \"open\", \"title\", \"onUpdate:open\"])) : createCommentVNode(\"\", true),\n createVNode(_component_ChevronRight, {\n class: \"vue-crumb__separator\",\n size: 20\n })\n ], 42, _hoisted_1);\n}\nconst NcBreadcrumb = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-7cec4a3e\"]]);\nexport {\n NcBreadcrumb as N\n};\n//# sourceMappingURL=NcBreadcrumb-BeDMWE_b.mjs.map\n","import '../assets/NcBreadcrumbs-5gl8Syfa.css';\nimport { unsubscribe, subscribe } from \"@nextcloud/event-bus\";\nimport debounce from \"debounce\";\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, Fragment, cloneVNode, h } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { N as NcActions, i as isSlotPopulated } from \"./NcActions-CUmcZ3C3.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-BO5T5ePT.mjs\";\nimport { N as NcActionLink } from \"./NcActionLink-BFiaYt9A.mjs\";\nimport { N as NcActionRouter } from \"./NcActionRouter-vYFtIOzD.mjs\";\nimport { N as NcBreadcrumb } from \"./NcBreadcrumb-BeDMWE_b.mjs\";\nconst _sfc_main$1 = {\n name: \"FolderIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon folder-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst IconFolder = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render]]);\nconst crumbClass = \"vue-crumb\";\nconst _sfc_main = {\n name: \"NcBreadcrumbs\",\n components: {\n NcActions,\n NcActionButton,\n NcActionRouter,\n NcActionLink,\n NcBreadcrumb,\n IconFolder\n },\n props: {\n /**\n * Set a css icon-class for the icon of the root breadcrumb to be used.\n */\n rootIcon: {\n type: String,\n default: \"icon-home\"\n },\n /**\n * Set the aria-label of the nav element.\n */\n ariaLabel: {\n type: String,\n default: null\n }\n },\n emits: [\"dropped\"],\n data() {\n return {\n /**\n * Array to track the hidden breadcrumbs by their index.\n * Comparing two crumbs somehow does not work, so we use the indices.\n */\n hiddenIndices: [],\n /**\n * This is the props of the middle Action menu\n * that show the ellipsised breadcrumbs\n */\n menuBreadcrumbProps: {\n // Don't show a name for this breadcrumb, only the Actions menu\n name: \"\",\n forceMenu: true,\n // Don't allow dropping directly on the actions breadcrumb\n disableDrop: true,\n // Is the menu open or not\n open: false\n },\n breadcrumbsRefs: []\n };\n },\n created() {\n window.addEventListener(\"resize\", debounce(() => {\n this.handleWindowResize();\n }, 100));\n subscribe(\"navigation-toggled\", this.delayedResize);\n },\n mounted() {\n this.handleWindowResize();\n },\n updated() {\n this.delayedResize();\n this.$nextTick(() => {\n this.hideCrumbs();\n });\n },\n beforeUnmount() {\n window.removeEventListener(\"resize\", this.handleWindowResize);\n unsubscribe(\"navigation-toggled\", this.delayedResize);\n },\n methods: {\n /**\n * Close the actions menu\n *\n * @param {object} e The event\n */\n closeActions(e) {\n if (this.$refs.actionsBreadcrumb.$el.contains(e.relatedTarget)) {\n return;\n }\n this.menuBreadcrumbProps.open = false;\n },\n /**\n * Call the resize function after a delay\n */\n async delayedResize() {\n await this.$nextTick();\n this.handleWindowResize();\n },\n /**\n * Check the width of the breadcrumb and hide breadcrumbs\n * if we overflow otherwise.\n */\n handleWindowResize() {\n if (!this.$refs.container) {\n return;\n }\n const nrCrumbs = this.breadcrumbsRefs.length;\n const hiddenIndices = [];\n const availableWidth = this.$refs.container.offsetWidth;\n let totalWidth = this.getTotalWidth();\n if (this.$refs.breadcrumb__actions) {\n totalWidth += this.$refs.breadcrumb__actions.offsetWidth;\n }\n let overflow = totalWidth - availableWidth;\n overflow += overflow > 0 ? 64 : 0;\n let i = 0;\n const startIndex = Math.floor(nrCrumbs / 2);\n while (overflow > 0 && i < nrCrumbs - 2) {\n const currentIndex = startIndex + (i % 2 ? i + 1 : i) / 2 * Math.pow(-1, i + nrCrumbs % 2);\n overflow -= this.getWidth(this.breadcrumbsRefs[currentIndex]?.$el, currentIndex === this.breadcrumbsRefs.length - 1);\n hiddenIndices.push(currentIndex);\n i++;\n }\n if (!this.arraysEqual(this.hiddenIndices, hiddenIndices.sort((a, b) => a - b))) {\n this.hiddenIndices = hiddenIndices;\n }\n },\n /**\n * Checks if two arrays are equal.\n * Only works for primitive arrays, but that's enough here.\n *\n * @param {Array} a The first array\n * @param {Array} b The second array\n * @return {boolean} Wether the arrays are equal\n */\n arraysEqual(a, b) {\n if (a.length !== b.length) {\n return false;\n } else if (a === b) {\n return true;\n } else if (a === null || b === null) {\n return false;\n }\n for (let i = 0; i < a.length; ++i) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n },\n /**\n * Calculates the total width of all breadcrumbs\n *\n * @return {number} The total width\n */\n getTotalWidth() {\n return this.breadcrumbsRefs.reduce((width, crumb, index) => width + this.getWidth(crumb.$el, index === this.breadcrumbsRefs.length - 1), 0);\n },\n /**\n * Calculates the width of the provided element\n *\n * @param {object} el The element\n * @param {boolean} isLast Is this the last crumb\n * @return {number} The width\n */\n getWidth(el, isLast) {\n if (!el?.classList) {\n return 0;\n }\n const hide = el.classList.contains(`${crumbClass}--hidden`);\n el.style.minWidth = \"auto\";\n if (isLast) {\n el.style.maxWidth = \"210px\";\n }\n el.classList.remove(`${crumbClass}--hidden`);\n const w = el.offsetWidth;\n if (hide) {\n el.classList.add(`${crumbClass}--hidden`);\n }\n el.style.minWidth = \"\";\n el.style.maxWidth = \"\";\n return w;\n },\n /**\n * Prevents the default of a provided event\n *\n * @param {object} e The event\n * @return {boolean}\n */\n preventDefault(e) {\n if (e.preventDefault) {\n e.preventDefault();\n }\n return false;\n },\n /**\n * Handles the drag start.\n * Prevents a breadcrumb from being draggable.\n *\n * @param {object} e The event\n * @return {boolean}\n */\n dragStart(e) {\n return this.preventDefault(e);\n },\n /**\n * Handles when something is dropped on the breadcrumb.\n *\n * @param {object} e The drop event\n * @param {string} path The path of the breadcrumb\n * @param {boolean} disabled Whether dropping is disabled for this breadcrumb\n * @return {boolean}\n */\n dropped(e, path, disabled) {\n if (!disabled) {\n this.$emit(\"dropped\", e, path);\n }\n this.menuBreadcrumbProps.open = false;\n const crumbs = document.querySelectorAll(`.${crumbClass}`);\n for (const crumb of crumbs) {\n crumb.classList.remove(`${crumbClass}--hovered`);\n }\n return this.preventDefault(e);\n },\n /**\n * Handles the drag over event\n *\n * @param {object} e The drag over event\n * @return {boolean}\n */\n dragOver(e) {\n return this.preventDefault(e);\n },\n /**\n * Handles the drag enter event\n *\n * @param {object} e The drag over event\n * @param {boolean} disabled Whether dropping is disabled for this breadcrumb\n */\n dragEnter(e, disabled) {\n if (disabled) {\n return;\n }\n if (e.target.closest) {\n const target = e.target.closest(`.${crumbClass}`);\n if (target.classList && target.classList.contains(crumbClass)) {\n const crumbs = document.querySelectorAll(`.${crumbClass}`);\n for (const crumb of crumbs) {\n crumb.classList.remove(`${crumbClass}--hovered`);\n }\n target.classList.add(`${crumbClass}--hovered`);\n }\n }\n },\n /**\n * Handles the drag leave event\n *\n * @param {object} e The drag leave event\n * @param {boolean} disabled Whether dropping is disabled for this breadcrumb\n */\n dragLeave(e, disabled) {\n if (disabled) {\n return;\n }\n if (e.target.contains(e.relatedTarget)) {\n return;\n }\n if (e.target.closest) {\n const target = e.target.closest(`.${crumbClass}`);\n if (target.contains(e.relatedTarget)) {\n return;\n }\n if (target.classList && target.classList.contains(crumbClass)) {\n target.classList.remove(`${crumbClass}--hovered`);\n }\n }\n },\n /**\n * Check for each crumb if we have to hide it and\n * add it to the array of all crumbs.\n */\n hideCrumbs() {\n this.breadcrumbsRefs.forEach((crumb, i) => {\n if (crumb?.$el?.classList) {\n if (this.hiddenIndices.includes(i)) {\n crumb.$el.classList.add(`${crumbClass}--hidden`);\n } else {\n crumb.$el.classList.remove(`${crumbClass}--hidden`);\n }\n }\n });\n },\n isBreadcrumb(vnode) {\n return vnode?.type?.name === \"NcBreadcrumb\";\n }\n },\n /**\n * The render function to display the component\n *\n * @return {object|undefined} The created VNode\n */\n render() {\n let breadcrumbs = [];\n this.$slots.default?.().forEach((vnode) => {\n if (this.isBreadcrumb(vnode)) {\n breadcrumbs.push(vnode);\n return;\n }\n if (vnode?.type === Fragment) {\n vnode?.children?.forEach?.((child) => {\n if (this.isBreadcrumb(child)) {\n breadcrumbs.push(child);\n }\n });\n }\n });\n if (breadcrumbs.length === 0) {\n return;\n }\n breadcrumbs[0] = cloneVNode(breadcrumbs[0], {\n icon: this.rootIcon,\n ref: \"breadcrumbs\"\n });\n const breadcrumbsRefs = [];\n breadcrumbs = breadcrumbs.map((crumb, index) => cloneVNode(crumb, {\n ref: (crumb2) => {\n breadcrumbsRefs[index] = crumb2;\n }\n }));\n const crumbs = [...breadcrumbs];\n if (this.hiddenIndices.length) {\n crumbs.splice(\n Math.round(breadcrumbs.length / 2),\n 0,\n // The Actions menu\n // Use a breadcrumb component for the hidden breadcrumbs\n // eslint-disable-line @stylistic/function-call-argument-newline\n h(NcBreadcrumb, {\n class: \"dropdown\",\n ...this.menuBreadcrumbProps,\n // Hide the dropdown menu from screen-readers,\n // since the crumbs in the menu are still in the list.\n \"aria-hidden\": true,\n // Add a ref to the Actions menu\n ref: \"actionsBreadcrumb\",\n key: \"actions-breadcrumb-1\",\n // Add handlers so the Actions menu opens on hover\n onDragenter: () => {\n this.menuBreadcrumbProps.open = true;\n },\n onDragleave: this.closeActions,\n // Make sure we keep the same open state\n // as the Actions component\n \"onUpdate:open\": (open) => {\n this.menuBreadcrumbProps.open = open;\n }\n // Add all hidden breadcrumbs as ActionRouter or ActionLink\n }, {\n default: () => this.hiddenIndices.filter((index) => index <= breadcrumbs.length - 1).map((index) => {\n const crumb = breadcrumbs[index];\n const {\n // Get the parameters from the breadcrumb component props\n to,\n href,\n disableDrop,\n name,\n // Props to forward\n ...propsToForward\n } = crumb.props;\n delete propsToForward.ref;\n let element = NcActionButton;\n let path = \"\";\n if (href) {\n element = NcActionLink;\n path = href;\n }\n if (to) {\n element = NcActionRouter;\n path = to;\n }\n const folderIcon = h(IconFolder, {\n size: 20\n });\n return h(element, {\n ...propsToForward,\n class: crumbClass,\n href: href || null,\n to: to || null,\n // Prevent the breadcrumbs from being draggable\n draggable: false,\n // Add the drag and drop handlers\n onDragstart: this.dragStart,\n onDrop: ($event) => this.dropped($event, path, disableDrop),\n onDragover: this.dragOver,\n onDragenter: ($event) => this.dragEnter($event, disableDrop),\n onDragleave: ($event) => this.dragLeave($event, disableDrop)\n }, {\n default: () => name,\n icon: () => folderIcon\n });\n })\n })\n );\n }\n const wrapper = [h(\"nav\", { \"aria-label\": this.ariaLabel }, [h(\"ul\", { class: \"breadcrumb__crumbs\" }, [crumbs])])];\n if (isSlotPopulated(this.$slots.actions?.())) {\n wrapper.push(h(\"div\", { class: \"breadcrumb__actions\", ref: \"breadcrumb__actions\" }, this.$slots.actions?.()));\n }\n this.breadcrumbsRefs = breadcrumbsRefs;\n return h(\"div\", { class: [\"breadcrumb\", { \"breadcrumb--collapsed\": this.hiddenIndices.length === breadcrumbs.length - 2 }], ref: \"container\" }, wrapper);\n }\n};\nconst NcBreadcrumbs = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-0015282c\"]]);\nexport {\n NcBreadcrumbs as N\n};\n//# sourceMappingURL=NcBreadcrumbs-CuQDDvin.mjs.map\n","import { FileType } from \"@nextcloud/files\";\nimport { generateUrl } from \"@nextcloud/router\";\nimport { ref, watchEffect, toValue } from \"vue\";\nimport PQueue from \"p-queue\";\nconst queue = new PQueue({ concurrency: 5 });\nfunction preloadImage(url) {\n const { resolve, promise } = Promise.withResolvers();\n queue.add(() => {\n const image = new Image();\n image.onerror = () => resolve(false);\n image.onload = () => resolve(true);\n image.src = url;\n return promise;\n });\n return promise;\n}\nfunction getPreviewURL(node, options = {}) {\n options = { size: 32, cropPreview: false, mimeFallback: true, ...options };\n try {\n const previewUrl = node.attributes?.previewUrl || generateUrl(\"/core/preview?fileId={fileid}\", {\n fileid: node.fileid\n });\n let url;\n try {\n url = new URL(previewUrl);\n } catch {\n url = new URL(previewUrl, window.location.origin);\n }\n url.searchParams.set(\"x\", `${options.size}`);\n url.searchParams.set(\"y\", `${options.size}`);\n url.searchParams.set(\"mimeFallback\", `${options.mimeFallback}`);\n url.searchParams.set(\"a\", options.cropPreview === true ? \"0\" : \"1\");\n url.searchParams.set(\"c\", `${node.attributes.etag}`);\n return url;\n } catch {\n return null;\n }\n}\nfunction usePreviewURL(node, options) {\n const previewURL = ref(null);\n const previewLoaded = ref(false);\n watchEffect(() => {\n previewLoaded.value = false;\n previewURL.value = getPreviewURL(toValue(node), toValue(options || {}));\n if (previewURL.value && toValue(node).type === FileType.File) {\n preloadImage(previewURL.value.href).then((success) => {\n previewLoaded.value = success;\n });\n }\n });\n return {\n previewURL,\n previewLoaded\n };\n}\nexport {\n getPreviewURL as g,\n usePreviewURL as u\n};\n//# sourceMappingURL=preview-BIbJGxXF.mjs.map\n","const _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nexport {\n _export_sfc as _\n};\n//# sourceMappingURL=_plugin-vue_export-helper-1tPrXgE0.mjs.map\n","import { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, defineComponent, ref, computed, toRef, normalizeClass, normalizeStyle, unref, Fragment, createBlock, createVNode, toHandlers, withModifiers, onMounted, toValue, useModel, onUnmounted, withCtx, createTextVNode, renderList, mergeModels, nextTick, useTemplateRef, createSlots, shallowRef, watch } from \"vue\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport NcDialog from \"@nextcloud/vue/components/NcDialog\";\nimport NcEmptyContent from \"@nextcloud/vue/components/NcEmptyContent\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { FileType, Permission, formatFileSize, sortNodes, validateFilename, InvalidFilenameError, InvalidFilenameErrorReason } from \"@nextcloud/files\";\nimport NcButton from \"@nextcloud/vue/components/NcButton\";\nimport NcCheckboxRadioSwitch from \"@nextcloud/vue/components/NcCheckboxRadioSwitch\";\nimport { extname, join } from \"@nextcloud/paths\";\nimport NcDateTime from \"@nextcloud/vue/components/NcDateTime\";\nimport { mdiKey, mdiTagOutline, mdiLink, mdiAccountPlus, mdiAccountGroupOutline, mdiNetworkOutline, mdiFolder, mdiClock, mdiStar } from \"@mdi/js\";\nimport { ShareType } from \"@nextcloud/sharing\";\nimport NcIconSvgWrapper from \"@nextcloud/vue/components/NcIconSvgWrapper\";\nimport { u as usePreviewURL } from \"./preview-BIbJGxXF.mjs\";\nimport { t, l as logger, s as showError } from \"./index-DL1yHC1K.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { loadState } from \"@nextcloud/initial-state\";\nimport { generateUrl } from \"@nextcloud/router\";\nimport { isPublicShare } from \"@nextcloud/sharing/public\";\nimport NcActionInput from \"@nextcloud/vue/components/NcActionInput\";\nimport NcActions from \"@nextcloud/vue/components/NcActions\";\nimport NcBreadcrumb from \"@nextcloud/vue/components/NcBreadcrumb\";\nimport NcBreadcrumbs from \"@nextcloud/vue/components/NcBreadcrumbs\";\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport NcSelect from \"@nextcloud/vue/components/NcSelect\";\nimport NcTextField from \"@nextcloud/vue/components/NcTextField\";\nimport { getRecentSearch, resultToNode, defaultRootPath, getDefaultPropfind, getClient, getFavoriteNodes } from \"@nextcloud/files/dav\";\nconst _sfc_main$e = {\n name: \"FileIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$c = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$b = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$a = { d: \"M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z\" };\nconst _hoisted_4$a = { key: 0 };\nfunction _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon file-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$a, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$a, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$b))\n ], 16, _hoisted_1$c);\n}\nconst IconFile = /* @__PURE__ */ _export_sfc(_sfc_main$e, [[\"render\", _sfc_render$7]]);\nconst _sfc_main$d = {\n name: \"MenuDownIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$b = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$a = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$9 = { d: \"M7,10L12,15L17,10H7Z\" };\nconst _hoisted_4$9 = { key: 0 };\nfunction _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon menu-down-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$9, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$9, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$a))\n ], 16, _hoisted_1$b);\n}\nconst IconSortDescending = /* @__PURE__ */ _export_sfc(_sfc_main$d, [[\"render\", _sfc_render$6]]);\nconst _sfc_main$c = {\n name: \"MenuUpIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$a = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$9 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$8 = { d: \"M7,15L12,10L17,15H7Z\" };\nconst _hoisted_4$8 = { key: 0 };\nfunction _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon menu-up-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$8, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$8, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$9))\n ], 16, _hoisted_1$a);\n}\nconst IconSortAscending = /* @__PURE__ */ _export_sfc(_sfc_main$c, [[\"render\", _sfc_render$5]]);\nconst _sfc_main$b = {\n name: \"FolderIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$9 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$8 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$7 = { d: \"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z\" };\nconst _hoisted_4$7 = { key: 0 };\nfunction _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon folder-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$7, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$7, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$8))\n ], 16, _hoisted_1$9);\n}\nconst IconFolder = /* @__PURE__ */ _export_sfc(_sfc_main$b, [[\"render\", _sfc_render$4]]);\nconst fileListIconStyles = {\n \"file-picker__file-icon\": \"_file-picker__file-icon_1aykw_9\",\n \"file-picker__file-icon--primary\": \"_file-picker__file-icon--primary_1aykw_22\",\n \"file-picker__file-icon-overlay\": \"_file-picker__file-icon-overlay_1aykw_26\"\n};\nconst _sfc_main$a = /* @__PURE__ */ defineComponent({\n __name: \"FilePreview\",\n props: {\n node: {},\n cropImagePreviews: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n const fileListIconStyles$1 = ref(fileListIconStyles);\n const {\n previewURL,\n previewLoaded\n } = usePreviewURL(toRef(props, \"node\"), computed(() => ({ cropPreview: props.cropImagePreviews })));\n const isFile = computed(() => props.node.type === FileType.File);\n const folderDecorationIcon = computed(() => {\n if (props.node.type !== FileType.Folder) {\n return null;\n }\n if (props.node.attributes?.[\"is-encrypted\"] === 1) {\n return mdiKey;\n }\n if (props.node.attributes?.[\"is-tag\"]) {\n return mdiTagOutline;\n }\n const shareTypes = Object.values(props.node.attributes?.[\"share-types\"] || {}).flat();\n if (shareTypes.some((type) => type === ShareType.Link || type === ShareType.Email)) {\n return mdiLink;\n }\n if (shareTypes.length > 0) {\n return mdiAccountPlus;\n }\n switch (props.node.attributes?.[\"mount-type\"]) {\n case \"external\":\n case \"external-session\":\n return mdiNetworkOutline;\n case \"group\":\n return mdiAccountGroupOutline;\n case \"shared\":\n return mdiAccountPlus;\n }\n return null;\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n style: normalizeStyle(unref(previewLoaded) ? { backgroundImage: `url(${unref(previewURL)})` } : void 0),\n class: normalizeClass(fileListIconStyles$1.value[\"file-picker__file-icon\"])\n }, [\n !unref(previewLoaded) ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n isFile.value ? (openBlock(), createBlock(IconFile, {\n key: 0,\n size: 32\n })) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [\n folderDecorationIcon.value ? (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 0,\n class: normalizeClass(fileListIconStyles$1.value[\"file-picker__file-icon-overlay\"]),\n inline: \"\",\n path: folderDecorationIcon.value,\n size: 16\n }, null, 8, [\"class\", \"path\"])) : createCommentVNode(\"\", true),\n createVNode(IconFolder, {\n class: normalizeClass(fileListIconStyles$1.value[\"file-picker__file-icon--primary\"]),\n size: 32\n }, null, 8, [\"class\"])\n ], 64))\n ], 64)) : createCommentVNode(\"\", true)\n ], 6);\n };\n }\n});\nconst _hoisted_1$8 = [\"tabindex\", \"aria-selected\", \"data-filename\"];\nconst _hoisted_2$7 = { class: \"row-name\" };\nconst _hoisted_3$6 = {\n class: \"file-picker__name-container\",\n \"data-testid\": \"row-name\"\n};\nconst _hoisted_4$6 = [\"title\", \"textContent\"];\nconst _hoisted_5$1 = [\"textContent\"];\nconst _hoisted_6$1 = { class: \"row-size\" };\nconst _hoisted_7$1 = { class: \"row-modified\" };\nconst _sfc_main$9 = /* @__PURE__ */ defineComponent({\n __name: \"FileListRow\",\n props: {\n allowPickDirectory: { type: Boolean },\n selected: { type: Boolean },\n showCheckbox: { type: Boolean },\n canPick: { type: Boolean },\n node: {},\n cropImagePreviews: { type: Boolean }\n },\n emits: [\"update:selected\", \"enterDirectory\"],\n setup(__props, { emit: __emit }) {\n const props = __props;\n const emit2 = __emit;\n const timestamp = computed(() => props.node.mtime ?? 0);\n const fileExtension = computed(() => extname(props.node.displayname));\n const displayName = computed(() => props.node.displayname.slice(0, fileExtension.value ? -fileExtension.value.length : void 0));\n const isDirectory = computed(() => props.node.type === FileType.Folder);\n const isPickable = computed(() => props.canPick && (props.allowPickDirectory || !isDirectory.value));\n const isNavigatable = computed(() => (props.node.permissions & Permission.READ) === Permission.READ);\n function toggleSelected() {\n if (!isPickable.value) {\n return;\n }\n emit2(\"update:selected\", !props.selected);\n }\n function handleClick() {\n if (isDirectory.value) {\n if (isNavigatable.value) {\n emit2(\"enterDirectory\", props.node);\n }\n } else {\n toggleSelected();\n }\n }\n function handleKeyDown(event) {\n if (event.key === \"Enter\") {\n handleClick();\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"tr\", mergeProps({\n tabindex: __props.showCheckbox && !isDirectory.value ? void 0 : 0,\n \"aria-selected\": !isPickable.value ? void 0 : __props.selected,\n class: [\"file-picker__row\", [\n {\n \"file-picker__row--selected\": __props.selected && !__props.showCheckbox,\n \"file-picker__row--not-navigatable\": isDirectory.value && !isNavigatable.value,\n \"file-picker__row--not-pickable\": !isPickable.value\n }\n ]],\n \"data-filename\": __props.node.basename,\n \"data-testid\": \"file-list-row\"\n }, toHandlers({\n click: handleClick,\n /* same as tabindex -> if we hide the checkbox or this is a directory we need keyboard access to enter the directory or select the node */\n ...!__props.showCheckbox || isDirectory.value ? { keydown: handleKeyDown } : {}\n }, true)), [\n __props.showCheckbox ? (openBlock(), createElementBlock(\"td\", {\n key: 0,\n class: \"row-checkbox\",\n onClick: withModifiers(() => {\n }, [\"stop\"])\n }, [\n createVNode(unref(NcCheckboxRadioSwitch), {\n \"aria-label\": unref(t)(\"Select the row for {nodename}\", { nodename: displayName.value }),\n disabled: !isPickable.value,\n \"data-testid\": \"row-checkbox\",\n modelValue: __props.selected,\n \"onUpdate:modelValue\": toggleSelected\n }, null, 8, [\"aria-label\", \"disabled\", \"modelValue\"])\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"td\", _hoisted_2$7, [\n createElementVNode(\"div\", _hoisted_3$6, [\n createVNode(_sfc_main$a, {\n node: __props.node,\n cropImagePreviews: __props.cropImagePreviews\n }, null, 8, [\"node\", \"cropImagePreviews\"]),\n createElementVNode(\"div\", {\n class: \"file-picker__file-name\",\n title: displayName.value,\n textContent: toDisplayString(displayName.value)\n }, null, 8, _hoisted_4$6),\n createElementVNode(\"div\", {\n class: \"file-picker__file-extension\",\n textContent: toDisplayString(fileExtension.value)\n }, null, 8, _hoisted_5$1)\n ])\n ]),\n createElementVNode(\"td\", _hoisted_6$1, toDisplayString(unref(formatFileSize)(__props.node.size || 0)), 1),\n createElementVNode(\"td\", _hoisted_7$1, [\n createVNode(unref(NcDateTime), {\n timestamp: timestamp.value,\n ignoreSeconds: \"\"\n }, null, 8, [\"timestamp\"])\n ])\n ], 16, _hoisted_1$8);\n };\n }\n});\nconst FileListRow = /* @__PURE__ */ _export_sfc(_sfc_main$9, [[\"__scopeId\", \"data-v-7857e8bd\"]]);\nconst _hoisted_1$7 = {\n \"aria-hidden\": \"true\",\n class: \"file-picker__row loading-row\"\n};\nconst _hoisted_2$6 = {\n key: 0,\n class: \"row-checkbox\"\n};\nconst _hoisted_3$5 = { class: \"row-name\" };\nconst _hoisted_4$5 = { class: \"row-wrapper\" };\nconst _sfc_main$8 = /* @__PURE__ */ defineComponent({\n __name: \"LoadingTableRow\",\n props: {\n showCheckbox: { type: Boolean }\n },\n setup(__props) {\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"tr\", _hoisted_1$7, [\n __props.showCheckbox ? (openBlock(), createElementBlock(\"td\", _hoisted_2$6, [..._cache[0] || (_cache[0] = [\n createElementVNode(\"span\", null, null, -1)\n ])])) : createCommentVNode(\"\", true),\n createElementVNode(\"td\", _hoisted_3$5, [\n createElementVNode(\"div\", _hoisted_4$5, [\n createElementVNode(\"span\", {\n class: normalizeClass(unref(fileListIconStyles)[\"file-picker__file-icon\"])\n }, null, 2),\n _cache[1] || (_cache[1] = createElementVNode(\"span\", null, null, -1))\n ])\n ]),\n _cache[2] || (_cache[2] = createElementVNode(\"td\", { class: \"row-size\" }, [\n createElementVNode(\"span\")\n ], -1)),\n _cache[3] || (_cache[3] = createElementVNode(\"td\", { class: \"row-modified\" }, [\n createElementVNode(\"span\")\n ], -1))\n ]);\n };\n }\n});\nconst LoadingTableRow = /* @__PURE__ */ _export_sfc(_sfc_main$8, [[\"__scopeId\", \"data-v-1f96131b\"]]);\nfunction useFilesSettings() {\n const filesUserState = loadState(\"files\", \"config\", null);\n const showHiddenFiles = ref(filesUserState?.show_hidden ?? true);\n const sortFavoritesFirst = ref(filesUserState?.sort_favorites_first ?? true);\n const cropImagePreviews = ref(filesUserState?.crop_image_previews ?? true);\n onMounted(async () => {\n if (!isPublicShare()) {\n try {\n const { data } = await axios.get(generateUrl(\"/apps/files/api/v1/configs\"));\n showHiddenFiles.value = data?.data?.show_hidden ?? false;\n sortFavoritesFirst.value = data?.data?.sort_favorites_first ?? true;\n cropImagePreviews.value = data?.data?.crop_image_previews ?? true;\n } catch (error) {\n logger.error(\"Could not load files settings\", { error });\n showError(t(\"Could not load files settings\"));\n }\n } else {\n logger.debug(\"Skip loading files settings - currently on public share\");\n }\n });\n return {\n showHiddenFiles,\n sortFavoritesFirst,\n cropImagePreviews\n };\n}\nfunction useFilesViews(currentView) {\n const convertOrder = (order2) => order2 === \"asc\" ? \"ascending\" : order2 === \"desc\" ? \"descending\" : \"none\";\n const filesViewsState = loadState(\"files\", \"viewConfigs\", null);\n const filesViewConfig = ref({\n sortBy: filesViewsState?.files?.sorting_mode ?? \"basename\",\n order: convertOrder(filesViewsState?.files?.sorting_direction ?? \"asc\")\n });\n const recentViewConfig = ref({\n sortBy: filesViewsState?.recent?.sorting_mode ?? \"basename\",\n order: convertOrder(filesViewsState?.recent?.sorting_direction ?? \"asc\")\n });\n const favoritesViewConfig = ref({\n sortBy: filesViewsState?.favorites?.sorting_mode ?? \"basename\",\n order: convertOrder(filesViewsState?.favorites?.sorting_direction ?? \"asc\")\n });\n onMounted(async () => {\n if (!isPublicShare()) {\n try {\n const { data } = await axios.get(generateUrl(\"/apps/files/api/v1/views\"));\n filesViewConfig.value = {\n sortBy: data?.data?.files?.sorting_mode ?? \"basename\",\n order: convertOrder(data?.data?.files?.sorting_direction)\n };\n favoritesViewConfig.value = {\n sortBy: data?.data?.favorites?.sorting_mode ?? \"basename\",\n order: convertOrder(data?.data?.favorites?.sorting_direction)\n };\n recentViewConfig.value = {\n sortBy: data?.data?.recent?.sorting_mode ?? \"basename\",\n order: convertOrder(data?.data?.recent?.sorting_direction)\n };\n } catch (error) {\n logger.error(\"Could not load files views\", { error });\n showError(t(\"Could not load files views\"));\n }\n } else {\n logger.debug(\"Skip loading files views - currently on public share\");\n }\n });\n const currentConfig = computed(() => toValue(currentView || \"files\") === \"files\" ? filesViewConfig.value : toValue(currentView) === \"recent\" ? recentViewConfig.value : favoritesViewConfig.value);\n const sortBy = computed(() => currentConfig.value.sortBy);\n const order = computed(() => currentConfig.value.order);\n return {\n filesViewConfig,\n favoritesViewConfig,\n recentViewConfig,\n currentConfig,\n sortBy,\n order\n };\n}\nconst _hoisted_1$6 = {\n key: 0,\n class: \"row-checkbox\"\n};\nconst _hoisted_2$5 = { class: \"hidden-visually\" };\nconst _hoisted_3$4 = [\"aria-sort\"];\nconst _hoisted_4$4 = { class: \"header-wrapper\" };\nconst _hoisted_5 = {\n key: 2,\n style: { \"width\": \"44px\" }\n};\nconst _hoisted_6 = [\"aria-sort\"];\nconst _hoisted_7 = {\n key: 2,\n style: { \"width\": \"44px\" }\n};\nconst _hoisted_8 = [\"aria-sort\"];\nconst _hoisted_9 = {\n key: 2,\n style: { \"width\": \"44px\" }\n};\nconst _sfc_main$7 = /* @__PURE__ */ defineComponent({\n __name: \"FileList\",\n props: /* @__PURE__ */ mergeModels({\n currentView: {},\n multiselect: { type: Boolean },\n allowPickDirectory: { type: Boolean },\n loading: { type: Boolean },\n files: {},\n canPick: { type: Function }\n }, {\n \"path\": { required: true },\n \"pathModifiers\": {},\n \"selectedFiles\": { required: true },\n \"selectedFilesModifiers\": {}\n }),\n emits: [\"update:path\", \"update:selectedFiles\"],\n setup(__props) {\n const path = useModel(__props, \"path\");\n const selectedFiles = useModel(__props, \"selectedFiles\");\n const props = __props;\n const customSortingConfig = ref();\n const { currentConfig: filesAppSorting } = useFilesViews(props.currentView);\n const sortingConfig = computed(() => customSortingConfig.value ?? filesAppSorting.value);\n const sortByName = computed(() => sortingConfig.value.sortBy === \"basename\" ? sortingConfig.value.order === \"none\" ? void 0 : sortingConfig.value.order : void 0);\n const sortBySize = computed(() => sortingConfig.value.sortBy === \"size\" ? sortingConfig.value.order === \"none\" ? void 0 : sortingConfig.value.order : void 0);\n const sortByModified = computed(() => sortingConfig.value.sortBy === \"mtime\" ? sortingConfig.value.order === \"none\" ? void 0 : sortingConfig.value.order : void 0);\n function toggleSorting(sortBy) {\n if (sortingConfig.value.sortBy === sortBy) {\n if (sortingConfig.value.order === \"ascending\") {\n customSortingConfig.value = { sortBy: sortingConfig.value.sortBy, order: \"descending\" };\n } else {\n customSortingConfig.value = { sortBy: sortingConfig.value.sortBy, order: \"ascending\" };\n }\n } else {\n customSortingConfig.value = { sortBy, order: \"ascending\" };\n }\n }\n const { sortFavoritesFirst, cropImagePreviews } = useFilesSettings();\n const sortedFiles = computed(() => {\n return sortNodes(props.files, {\n sortFoldersFirst: true,\n sortFavoritesFirst: sortFavoritesFirst.value,\n sortingOrder: sortingConfig.value.order === \"descending\" ? \"desc\" : \"asc\",\n sortingMode: sortingConfig.value.sortBy\n });\n });\n const selectableFiles = computed(() => props.files.filter((file) => props.allowPickDirectory || file.type !== FileType.Folder));\n const allSelected = computed(() => !props.loading && selectedFiles.value.length > 0 && selectedFiles.value.length >= selectableFiles.value.length);\n function onSelectAll() {\n if (selectedFiles.value.length < selectableFiles.value.length) {\n selectedFiles.value = [...selectableFiles.value];\n } else {\n selectedFiles.value = [];\n }\n }\n function onNodeSelected(file) {\n if (selectedFiles.value.includes(file)) {\n selectedFiles.value = selectedFiles.value.filter((f) => f.path !== file.path);\n } else {\n if (props.multiselect) {\n selectedFiles.value = [...selectedFiles.value, file];\n } else {\n selectedFiles.value = [file];\n }\n }\n }\n function onChangeDirectory(dir) {\n path.value = dir.path;\n }\n const skeletonNumber = ref(4);\n const fileContainer = ref();\n {\n const resize = () => nextTick(() => {\n const nodes = fileContainer.value?.parentElement?.children || [];\n let height = fileContainer.value?.parentElement?.clientHeight || 450;\n for (let index = 0; index < nodes.length; index++) {\n if (!fileContainer.value?.isSameNode(nodes[index])) {\n height -= nodes[index].clientHeight;\n }\n }\n skeletonNumber.value = Math.max(1, Math.floor((height - 50) / 50));\n });\n onMounted(() => {\n window.addEventListener(\"resize\", resize);\n resize();\n });\n onUnmounted(() => {\n window.removeEventListener(\"resize\", resize);\n });\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref_key: \"fileContainer\",\n ref: fileContainer,\n class: \"file-picker__files\"\n }, [\n createElementVNode(\"table\", null, [\n createElementVNode(\"thead\", null, [\n createElementVNode(\"tr\", null, [\n __props.multiselect ? (openBlock(), createElementBlock(\"th\", _hoisted_1$6, [\n createElementVNode(\"span\", _hoisted_2$5, toDisplayString(unref(t)(\"Select entry\")), 1),\n __props.multiselect ? (openBlock(), createBlock(unref(NcCheckboxRadioSwitch), {\n key: 0,\n \"aria-label\": unref(t)(\"Select all entries\"),\n \"data-testid\": \"select-all-checkbox\",\n modelValue: allSelected.value,\n \"onUpdate:modelValue\": onSelectAll\n }, null, 8, [\"aria-label\", \"modelValue\"])) : createCommentVNode(\"\", true)\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"th\", {\n \"aria-sort\": sortByName.value,\n class: \"row-name\"\n }, [\n createElementVNode(\"div\", _hoisted_4$4, [\n _cache[3] || (_cache[3] = createElementVNode(\"span\", { class: \"file-picker__header-preview\" }, null, -1)),\n createVNode(unref(NcButton), {\n \"data-test\": \"file-picker_sort-name\",\n variant: \"tertiary\",\n wide: \"\",\n onClick: _cache[0] || (_cache[0] = ($event) => toggleSorting(\"basename\"))\n }, {\n icon: withCtx(() => [\n sortByName.value === \"ascending\" ? (openBlock(), createBlock(IconSortAscending, {\n key: 0,\n size: 20\n })) : sortByName.value === \"descending\" ? (openBlock(), createBlock(IconSortDescending, {\n key: 1,\n size: 20\n })) : (openBlock(), createElementBlock(\"span\", _hoisted_5))\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(unref(t)(\"Name\")), 1)\n ]),\n _: 1\n })\n ])\n ], 8, _hoisted_3$4),\n createElementVNode(\"th\", {\n \"aria-sort\": sortBySize.value,\n class: \"row-size\"\n }, [\n createVNode(unref(NcButton), {\n variant: \"tertiary\",\n wide: \"\",\n onClick: _cache[1] || (_cache[1] = ($event) => toggleSorting(\"size\"))\n }, {\n icon: withCtx(() => [\n sortBySize.value === \"ascending\" ? (openBlock(), createBlock(IconSortAscending, {\n key: 0,\n size: 20\n })) : sortBySize.value === \"descending\" ? (openBlock(), createBlock(IconSortDescending, {\n key: 1,\n size: 20\n })) : (openBlock(), createElementBlock(\"span\", _hoisted_7))\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(unref(t)(\"Size\")), 1)\n ]),\n _: 1\n })\n ], 8, _hoisted_6),\n createElementVNode(\"th\", {\n \"aria-sort\": sortByModified.value,\n class: \"row-modified\"\n }, [\n createVNode(unref(NcButton), {\n variant: \"tertiary\",\n wide: \"\",\n onClick: _cache[2] || (_cache[2] = ($event) => toggleSorting(\"mtime\"))\n }, {\n icon: withCtx(() => [\n sortByModified.value === \"ascending\" ? (openBlock(), createBlock(IconSortAscending, {\n key: 0,\n size: 20\n })) : sortByModified.value === \"descending\" ? (openBlock(), createBlock(IconSortDescending, {\n key: 1,\n size: 20\n })) : (openBlock(), createElementBlock(\"span\", _hoisted_9))\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(unref(t)(\"Modified\")), 1)\n ]),\n _: 1\n })\n ], 8, _hoisted_8)\n ])\n ]),\n createElementVNode(\"tbody\", null, [\n __props.loading ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(skeletonNumber.value, (index) => {\n return openBlock(), createBlock(LoadingTableRow, {\n key: index,\n showCheckbox: __props.multiselect\n }, null, 8, [\"showCheckbox\"]);\n }), 128)) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(sortedFiles.value, (file) => {\n return openBlock(), createBlock(FileListRow, {\n key: file.fileid || file.path,\n allowPickDirectory: __props.allowPickDirectory,\n showCheckbox: __props.multiselect,\n canPick: (__props.multiselect || selectedFiles.value.length === 0 || selectedFiles.value.includes(file)) && (__props.canPick === void 0 || __props.canPick(file)),\n selected: selectedFiles.value.includes(file),\n node: file,\n cropImagePreviews: unref(cropImagePreviews),\n \"onUpdate:selected\": ($event) => onNodeSelected(file),\n onEnterDirectory: onChangeDirectory\n }, null, 8, [\"allowPickDirectory\", \"showCheckbox\", \"canPick\", \"selected\", \"node\", \"cropImagePreviews\", \"onUpdate:selected\"]);\n }), 128))\n ])\n ])\n ], 512);\n };\n }\n});\nconst FileList = /* @__PURE__ */ _export_sfc(_sfc_main$7, [[\"__scopeId\", \"data-v-412efd5c\"]]);\nconst _sfc_main$6 = {\n name: \"HomeIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$5 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$4 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$3 = { d: \"M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z\" };\nconst _hoisted_4$3 = { key: 0 };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon home-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$3, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$4))\n ], 16, _hoisted_1$5);\n}\nconst IconHome = /* @__PURE__ */ _export_sfc(_sfc_main$6, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$5 = {\n name: \"PlusIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$4 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$3 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { d: \"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z\" };\nconst _hoisted_4$2 = { key: 0 };\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon plus-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$2, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$2, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$3))\n ], 16, _hoisted_1$4);\n}\nconst IconPlus = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"render\", _sfc_render$2]]);\nconst _sfc_main$4 = /* @__PURE__ */ defineComponent({\n __name: \"FilePickerBreadcrumbs\",\n props: /* @__PURE__ */ mergeModels({\n showMenu: { type: Boolean }\n }, {\n \"path\": { required: true },\n \"pathModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"createNode\"], [\"update:path\"]),\n setup(__props, { emit: __emit }) {\n const path = useModel(__props, \"path\");\n const emit2 = __emit;\n const actionsOpen = ref(false);\n const newNodeName = ref(\"\");\n const nameInput = useTemplateRef(\"nameInput\");\n function validateInput() {\n const name = newNodeName.value.trim();\n const input = nameInput.value?.$el?.querySelector(\"input\");\n let validity = \"\";\n try {\n validateFilename(name);\n } catch (error) {\n if (!(error instanceof InvalidFilenameError)) {\n throw error;\n }\n switch (error.reason) {\n case InvalidFilenameErrorReason.Character:\n validity = t('\"{char}\" is not allowed inside a folder name.', { char: error.segment });\n break;\n case InvalidFilenameErrorReason.ReservedName:\n validity = t('\"{segment}\" is a reserved name and not allowed for folder names.', { segment: error.segment });\n break;\n case InvalidFilenameErrorReason.Extension:\n validity = t('Folder names must not end with \"{extension}\".', { extension: error.segment });\n break;\n default:\n validity = t(\"Invalid folder name.\");\n }\n }\n if (input) {\n input.setCustomValidity(validity);\n }\n return validity === \"\";\n }\n function onSubmit() {\n const name = newNodeName.value.trim();\n if (validateInput()) {\n actionsOpen.value = false;\n emit2(\"createNode\", name);\n newNodeName.value = \"\";\n }\n }\n const pathElements = computed(() => path.value.split(\"/\").filter((v) => v !== \"\").map((v, i, elements) => ({\n name: v,\n path: \"/\" + elements.slice(0, i + 1).join(\"/\")\n })));\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcBreadcrumbs), { class: \"file-picker__breadcrumbs\" }, createSlots({\n default: withCtx(() => [\n createVNode(unref(NcBreadcrumb), {\n name: unref(t)(\"All files\"),\n title: unref(t)(\"Home\"),\n onClick: _cache[0] || (_cache[0] = ($event) => path.value = \"/\")\n }, {\n icon: withCtx(() => [\n createVNode(IconHome, { size: 20 })\n ]),\n _: 1\n }, 8, [\"name\", \"title\"]),\n (openBlock(true), createElementBlock(Fragment, null, renderList(pathElements.value, (dir) => {\n return openBlock(), createBlock(unref(NcBreadcrumb), {\n key: dir.path,\n name: dir.name,\n title: dir.path,\n onClick: ($event) => path.value = dir.path\n }, null, 8, [\"name\", \"title\", \"onClick\"]);\n }), 128))\n ]),\n _: 2\n }, [\n __props.showMenu ? {\n name: \"actions\",\n fn: withCtx(() => [\n createVNode(unref(NcActions), {\n open: actionsOpen.value,\n \"onUpdate:open\": _cache[2] || (_cache[2] = ($event) => actionsOpen.value = $event),\n \"aria-label\": unref(t)(\"Create directory\"),\n forceMenu: true,\n forceName: true,\n menuName: unref(t)(\"New\"),\n variant: \"secondary\",\n onClose: _cache[3] || (_cache[3] = ($event) => newNodeName.value = \"\")\n }, {\n icon: withCtx(() => [\n createVNode(IconPlus, { size: 20 })\n ]),\n default: withCtx(() => [\n createVNode(unref(NcActionInput), {\n ref_key: \"nameInput\",\n ref: nameInput,\n modelValue: newNodeName.value,\n \"onUpdate:modelValue\": [\n _cache[1] || (_cache[1] = ($event) => newNodeName.value = $event),\n validateInput\n ],\n label: unref(t)(\"New folder\"),\n placeholder: unref(t)(\"New folder name\"),\n onSubmit\n }, {\n icon: withCtx(() => [\n createVNode(IconFolder, { size: 20 })\n ]),\n _: 1\n }, 8, [\"modelValue\", \"label\", \"placeholder\"])\n ]),\n _: 1\n }, 8, [\"open\", \"aria-label\", \"menuName\"])\n ]),\n key: \"0\"\n } : void 0\n ]), 1024);\n };\n }\n});\nconst FilePickerBreadcrumbs = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"__scopeId\", \"data-v-b448b141\"]]);\nconst _sfc_main$3 = {\n name: \"CloseIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$3 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon close-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$2))\n ], 16, _hoisted_1$3);\n}\nconst IconClose = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$1]]);\nconst _sfc_main$2 = {\n name: \"MagnifyIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$2 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon magnify-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$2);\n}\nconst IconMagnify = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render]]);\nfunction useViews(isAnonymous) {\n const allViews = [\n {\n id: \"files\",\n label: t(\"All files\"),\n icon: mdiFolder\n },\n {\n id: \"recent\",\n label: t(\"Recent\"),\n icon: mdiClock\n },\n {\n id: \"favorites\",\n label: t(\"Favorites\"),\n icon: mdiStar\n }\n ];\n const availableViews = isAnonymous.value ? allViews.filter(({ id }) => id === \"files\") : allViews;\n return {\n allViews,\n availableViews\n };\n}\nconst _hoisted_1$1 = {\n key: 0,\n class: \"file-picker__side\"\n};\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"FilePickerNavigation\",\n props: {\n currentView: {},\n filterString: {},\n isCollapsed: { type: Boolean },\n disabledNavigation: { type: Boolean }\n },\n emits: [\"update:currentView\", \"update:filterString\"],\n setup(__props, { emit: __emit }) {\n const props = __props;\n const emit2 = __emit;\n const { availableViews } = useViews(ref(getCurrentUser() === null));\n const currentViewObject = computed(() => availableViews.filter((v) => v.id === props.currentView)[0] ?? availableViews[0]);\n const updateFilterValue = (value) => emit2(\"update:filterString\", value.toString());\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(Fragment, null, [\n createVNode(unref(NcTextField), {\n class: \"file-picker__filter-input\",\n label: unref(t)(\"Filter file list\"),\n showTrailingButton: !!__props.filterString,\n modelValue: __props.filterString,\n \"onUpdate:modelValue\": updateFilterValue,\n onTrailingButtonClick: _cache[0] || (_cache[0] = ($event) => updateFilterValue(\"\"))\n }, {\n \"trailing-button-icon\": withCtx(() => [\n createVNode(IconClose, { size: 16 })\n ]),\n default: withCtx(() => [\n createVNode(IconMagnify, { size: 16 })\n ]),\n _: 1\n }, 8, [\"label\", \"showTrailingButton\", \"modelValue\"]),\n unref(availableViews).length > 1 && !__props.disabledNavigation ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n !__props.isCollapsed ? (openBlock(), createElementBlock(\"ul\", _hoisted_1$1, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(unref(availableViews), (view) => {\n return openBlock(), createElementBlock(\"li\", {\n key: view.id\n }, [\n createVNode(unref(NcButton), {\n variant: __props.currentView === view.id ? \"primary\" : \"tertiary\",\n wide: true,\n onClick: ($event) => _ctx.$emit(\"update:currentView\", view.id)\n }, {\n icon: withCtx(() => [\n createVNode(unref(NcIconSvgWrapper), {\n path: view.icon,\n size: 20\n }, null, 8, [\"path\"])\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(view.label), 1)\n ]),\n _: 2\n }, 1032, [\"variant\", \"onClick\"])\n ]);\n }), 128))\n ])) : (openBlock(), createBlock(unref(NcSelect), {\n key: 1,\n \"aria-label\": unref(t)(\"Current view selector\"),\n clearable: false,\n searchable: false,\n options: unref(availableViews),\n modelValue: currentViewObject.value,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => emit2(\"update:currentView\", $event.id))\n }, null, 8, [\"aria-label\", \"options\", \"modelValue\"]))\n ], 64)) : createCommentVNode(\"\", true)\n ], 64);\n };\n }\n});\nconst FilePickerNavigation = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"__scopeId\", \"data-v-e1c54e23\"]]);\nasync function getRecentNodes({ client, signal }) {\n const lastTwoWeek = Math.round(Date.now() / 1e3) - 60 * 60 * 24 * 14;\n const { data } = await client.search(\"/\", {\n signal,\n details: true,\n data: getRecentSearch(lastTwoWeek)\n });\n return data.results.map((result) => resultToNode(result));\n}\nasync function getNodes({ client, path, signal }) {\n const results = await client.getDirectoryContents(join(defaultRootPath, path), {\n signal,\n details: true,\n includeSelf: true,\n data: getDefaultPropfind()\n });\n const nodes = results.data.map((result) => resultToNode(result));\n return {\n contents: nodes.filter(({ path: nodePath }) => nodePath !== path),\n folder: nodes.find(({ path: nodePath }) => path === nodePath)\n };\n}\nasync function getFile(client, path) {\n const { data } = await client.stat(join(defaultRootPath, path), {\n details: true,\n data: getDefaultPropfind()\n });\n return resultToNode(data);\n}\nfunction useDAVFiles(currentView, currentPath) {\n const client = getClient();\n const files = shallowRef([]);\n const folder = shallowRef(null);\n const isLoading = ref(true);\n let abortController;\n async function createDirectory(name) {\n const path = join(currentPath.value, name);\n await client.createDirectory(join(defaultRootPath, path));\n const directory = await getFile(client, path);\n files.value = [...files.value, directory];\n return directory;\n }\n async function loadDAVFiles() {\n if (abortController) {\n abortController.abort();\n abortController = void 0;\n }\n abortController = new AbortController();\n isLoading.value = true;\n try {\n if (currentView.value === \"favorites\") {\n files.value = await getFavoriteNodes({ client, path: currentPath.value, signal: abortController.signal });\n folder.value = null;\n } else if (currentView.value === \"recent\") {\n files.value = await getRecentNodes({ client, signal: abortController.signal });\n folder.value = null;\n } else {\n const content = await getNodes({ client, path: currentPath.value, signal: abortController.signal });\n folder.value = content.folder;\n files.value = content.contents;\n }\n } catch (error) {\n if (error instanceof Error && error.name === \"AbortError\") {\n return;\n }\n throw error;\n } finally {\n abortController = void 0;\n isLoading.value = false;\n }\n }\n watch([currentView, currentPath], () => loadDAVFiles());\n onMounted(() => loadDAVFiles());\n return {\n isLoading,\n files,\n folder,\n loadFiles: loadDAVFiles,\n createDirectory\n };\n}\nfunction useMimeFilter(allowedMIMETypes) {\n const splittedTypes = computed(() => allowedMIMETypes.value.map((filter) => filter.split(\"/\")));\n const isSupportedMimeType = (mime) => {\n const mimeTypeArray = mime.split(\"/\");\n return splittedTypes.value.some(([type, subtype]) => (\n // check mime type matches or is wildcard\n (mimeTypeArray[0] === type || type === \"*\") && (mimeTypeArray[1] === subtype || subtype === \"*\")\n ));\n };\n return {\n isSupportedMimeType\n };\n}\nconst _hoisted_1 = { class: \"file-picker__main\" };\nconst _hoisted_2 = {\n key: 1,\n class: \"file-picker__view\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"FilePicker\",\n props: {\n buttons: {},\n name: {},\n allowPickDirectory: { type: Boolean, default: false },\n noMenu: { type: Boolean, default: false },\n disabledNavigation: { type: Boolean, default: false },\n filterFn: { type: Function, default: void 0 },\n canPickFn: { type: Function, default: void 0 },\n mimetypeFilter: { default: () => [] },\n multiselect: { type: Boolean, default: false },\n path: { default: void 0 }\n },\n emits: [\"close\"],\n setup(__props, { emit: __emit }) {\n const props = __props;\n const emit$1 = __emit;\n const isOpen = ref(true);\n const currentView = ref(\"files\");\n const savedPath = ref(window?.sessionStorage.getItem(\"NC.FilePicker.LastPath\") || \"/\");\n const navigatedPath = ref(\"\");\n const currentPath = computed({\n get: () => {\n return currentView.value === \"files\" ? navigatedPath.value || props.path || savedPath.value : \"/\";\n },\n set: (path) => {\n navigatedPath.value = path;\n }\n });\n const selectedFiles = shallowRef([]);\n const filterString = ref(\"\");\n const {\n files,\n folder: currentFolder,\n isLoading,\n loadFiles,\n createDirectory\n } = useDAVFiles(currentView, currentPath);\n watch([navigatedPath], () => {\n if (props.path === void 0 && navigatedPath.value) {\n window.sessionStorage.setItem(\"NC.FilePicker.LastPath\", navigatedPath.value);\n }\n selectedFiles.value = [];\n filterString.value = \"\";\n });\n let isHandlingCallback = false;\n const dialogButtons = computed(() => {\n const nodes = selectedFiles.value.length === 0 && props.allowPickDirectory && currentFolder.value ? [currentFolder.value] : selectedFiles.value;\n const buttons = typeof props.buttons === \"function\" ? props.buttons(nodes, currentPath.value, currentView.value) : props.buttons;\n return buttons.map((button) => ({\n ...button,\n disabled: button.disabled || isLoading.value,\n callback: () => {\n isHandlingCallback = true;\n handleButtonClick(button.callback, nodes);\n }\n }));\n });\n async function handleButtonClick(callback, nodes) {\n await callback(nodes);\n emit$1(\"close\", nodes);\n isHandlingCallback = false;\n }\n const viewHeadline = computed(() => currentView.value === \"favorites\" ? t(\"Favorites\") : currentView.value === \"recent\" ? t(\"Recent\") : \"\");\n const { isSupportedMimeType } = useMimeFilter(toRef(props, \"mimetypeFilter\"));\n onMounted(() => loadFiles());\n const { showHiddenFiles } = useFilesSettings();\n const filteredFiles = computed(() => {\n let filtered = files.value;\n if (!showHiddenFiles.value) {\n filtered = filtered.filter((file) => !file.basename.startsWith(\".\"));\n }\n if (props.mimetypeFilter.length > 0) {\n filtered = filtered.filter((file) => file.type === \"folder\" || file.mime && isSupportedMimeType(file.mime));\n }\n if (filterString.value) {\n filtered = filtered.filter((file) => file.basename.toLowerCase().includes(filterString.value.toLowerCase()));\n }\n if (props.filterFn) {\n filtered = filtered.filter((f) => props.filterFn(f));\n }\n return filtered;\n });\n const noFilesDescription = computed(() => {\n if (currentView.value === \"files\") {\n return t(\"Upload some content or sync with your devices!\");\n } else if (currentView.value === \"recent\") {\n return t(\"Files and folders you recently modified will show up here.\");\n } else {\n return t(\"Files and folders you mark as favorite will show up here.\");\n }\n });\n async function onCreateFolder(name) {\n try {\n const folder = await createDirectory(name);\n navigatedPath.value = folder.path;\n emit(\"files:node:created\", files.value.filter((file) => file.basename === name)[0]);\n } catch (error) {\n logger.warn(\"Could not create new folder\", { name, error });\n showError(t(\"Could not create the new folder\"));\n }\n }\n function handleClose(open) {\n if (!open && !isHandlingCallback) {\n emit$1(\"close\");\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcDialog), {\n open: isOpen.value,\n \"onUpdate:open\": [\n _cache[6] || (_cache[6] = ($event) => isOpen.value = $event),\n handleClose\n ],\n buttons: dialogButtons.value,\n name: __props.name,\n size: \"large\",\n contentClasses: \"file-picker__content\",\n dialogClasses: \"file-picker\",\n navigationClasses: \"file-picker__navigation\"\n }, {\n navigation: withCtx(({ isCollapsed }) => [\n createVNode(FilePickerNavigation, {\n currentView: currentView.value,\n \"onUpdate:currentView\": _cache[0] || (_cache[0] = ($event) => currentView.value = $event),\n filterString: filterString.value,\n \"onUpdate:filterString\": _cache[1] || (_cache[1] = ($event) => filterString.value = $event),\n isCollapsed,\n disabledNavigation: __props.disabledNavigation\n }, null, 8, [\"currentView\", \"filterString\", \"isCollapsed\", \"disabledNavigation\"])\n ]),\n default: withCtx(() => [\n createElementVNode(\"div\", _hoisted_1, [\n currentView.value === \"files\" ? (openBlock(), createBlock(FilePickerBreadcrumbs, {\n key: 0,\n path: currentPath.value,\n \"onUpdate:path\": _cache[2] || (_cache[2] = ($event) => currentPath.value = $event),\n showMenu: !__props.noMenu,\n onCreateNode: onCreateFolder\n }, null, 8, [\"path\", \"showMenu\"])) : (openBlock(), createElementBlock(\"div\", _hoisted_2, [\n createElementVNode(\"h3\", null, toDisplayString(viewHeadline.value), 1)\n ])),\n unref(isLoading) || filteredFiles.value.length > 0 ? (openBlock(), createBlock(FileList, {\n key: 2,\n path: currentPath.value,\n \"onUpdate:path\": [\n _cache[3] || (_cache[3] = ($event) => currentPath.value = $event),\n _cache[5] || (_cache[5] = ($event) => currentView.value = \"files\")\n ],\n selectedFiles: selectedFiles.value,\n \"onUpdate:selectedFiles\": _cache[4] || (_cache[4] = ($event) => selectedFiles.value = $event),\n allowPickDirectory: __props.allowPickDirectory,\n currentView: currentView.value,\n files: filteredFiles.value,\n multiselect: __props.multiselect,\n loading: unref(isLoading),\n name: viewHeadline.value,\n canPick: __props.canPickFn\n }, null, 8, [\"path\", \"selectedFiles\", \"allowPickDirectory\", \"currentView\", \"files\", \"multiselect\", \"loading\", \"name\", \"canPick\"])) : filterString.value ? (openBlock(), createBlock(unref(NcEmptyContent), {\n key: 3,\n name: unref(t)(\"No matching files\"),\n description: unref(t)(\"No files matching your filter were found.\")\n }, {\n icon: withCtx(() => [\n createVNode(IconFile)\n ]),\n _: 1\n }, 8, [\"name\", \"description\"])) : (openBlock(), createBlock(unref(NcEmptyContent), {\n key: 4,\n name: unref(t)(\"No files in here\"),\n description: noFilesDescription.value\n }, {\n icon: withCtx(() => [\n createVNode(IconFile)\n ]),\n _: 1\n }, 8, [\"name\", \"description\"]))\n ])\n ]),\n _: 1\n }, 8, [\"open\", \"buttons\", \"name\"]);\n };\n }\n});\nconst FilePicker = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-4f89ed79\"]]);\nexport {\n FilePicker as default\n};\n//# sourceMappingURL=FilePicker-DWYoSaVg.mjs.map\n"],"names":["_sfc_main$1","_hoisted_1$1","_hoisted_2","_hoisted_3","_hoisted_4","_sfc_render$1","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","mergeProps","$event","createElementVNode","toDisplayString","createCommentVNode","ChevronRight","_export_sfc","_sfc_main","NcActions","NcButton","crumbId","createElementId","open","e","_hoisted_1","_sfc_render","_component_NcButton","resolveComponent","_component_NcActions","_component_ChevronRight","normalizeClass","withModifiers","args","createBlock","createSlots","withCtx","renderSlot","createTextVNode","createVNode","NcBreadcrumb","IconFolder","crumbClass","NcActionButton","NcActionRouter","NcActionLink","debounce","subscribe","unsubscribe","nrCrumbs","hiddenIndices","availableWidth","totalWidth","overflow","i","startIndex","currentIndex","a","b","width","crumb","index","el","isLast","hide","w","path","disabled","crumbs","target","vnode","breadcrumbs","Fragment","child","cloneVNode","breadcrumbsRefs","crumb2","h","to","href","disableDrop","name","propsToForward","element","folderIcon","wrapper","isSlotPopulated","NcBreadcrumbs","queue","PQueue","preloadImage","url","resolve","promise","image","getPreviewURL","node","options","previewUrl","generateUrl","usePreviewURL","previewURL","ref","previewLoaded","watchEffect","toValue","FileType","success","sfc","props","key","val","_sfc_main$e","_hoisted_1$c","_hoisted_2$b","_hoisted_3$a","_hoisted_4$a","_sfc_render$7","IconFile","_sfc_main$d","_hoisted_1$b","_hoisted_2$a","_hoisted_3$9","_hoisted_4$9","_sfc_render$6","IconSortDescending","_sfc_main$c","_hoisted_1$a","_hoisted_2$9","_hoisted_3$8","_hoisted_4$8","_sfc_render$5","IconSortAscending","_sfc_main$b","_hoisted_1$9","_hoisted_2$8","_hoisted_3$7","_hoisted_4$7","_sfc_render$4","fileListIconStyles","_sfc_main$a","defineComponent","__props","fileListIconStyles$1","toRef","computed","isFile","folderDecorationIcon","mdiKey","mdiTagOutline","shareTypes","type","ShareType","mdiLink","mdiAccountPlus","mdiNetworkOutline","mdiAccountGroupOutline","normalizeStyle","unref","NcIconSvgWrapper","_hoisted_1$8","_hoisted_2$7","_hoisted_3$6","_hoisted_4$6","_hoisted_5$1","_hoisted_6$1","_hoisted_7$1","_sfc_main$9","__emit","emit2","timestamp","fileExtension","extname","displayName","isDirectory","isPickable","isNavigatable","Permission","toggleSelected","handleClick","handleKeyDown","event","toHandlers","NcCheckboxRadioSwitch","t","formatFileSize","NcDateTime","FileListRow","_hoisted_1$7","_hoisted_2$6","_hoisted_3$5","_hoisted_4$5","_sfc_main$8","LoadingTableRow","useFilesSettings","filesUserState","loadState","showHiddenFiles","sortFavoritesFirst","cropImagePreviews","onMounted","isPublicShare","logger","data","axios","error","showError","useFilesViews","currentView","convertOrder","order2","filesViewsState","filesViewConfig","recentViewConfig","favoritesViewConfig","currentConfig","sortBy","order","_hoisted_1$6","_hoisted_2$5","_hoisted_3$4","_hoisted_4$4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_sfc_main$7","mergeModels","useModel","selectedFiles","customSortingConfig","filesAppSorting","sortingConfig","sortByName","sortBySize","sortByModified","toggleSorting","sortedFiles","sortNodes","selectableFiles","file","allSelected","onSelectAll","onNodeSelected","f","onChangeDirectory","dir","skeletonNumber","fileContainer","resize","nextTick","nodes","height","onUnmounted","renderList","FileList","_sfc_main$6","_hoisted_1$5","_hoisted_2$4","_hoisted_3$3","_hoisted_4$3","_sfc_render$3","IconHome","_sfc_main$5","_hoisted_1$4","_hoisted_2$3","_hoisted_3$2","_hoisted_4$2","_sfc_render$2","IconPlus","_sfc_main$4","actionsOpen","newNodeName","nameInput","useTemplateRef","validateInput","input","validity","validateFilename","InvalidFilenameError","InvalidFilenameErrorReason","onSubmit","pathElements","v","elements","NcActionInput","FilePickerBreadcrumbs","_sfc_main$3","_hoisted_1$3","_hoisted_2$2","_hoisted_3$1","_hoisted_4$1","IconClose","_sfc_main$2","_hoisted_1$2","_hoisted_2$1","IconMagnify","useViews","isAnonymous","allViews","mdiFolder","mdiClock","mdiStar","availableViews","id","getCurrentUser","currentViewObject","updateFilterValue","value","NcTextField","NcSelect","view","FilePickerNavigation","getRecentNodes","client","signal","lastTwoWeek","getRecentSearch","result","resultToNode","getNodes","join","defaultRootPath","getDefaultPropfind","nodePath","getFile","useDAVFiles","currentPath","getClient","files","shallowRef","folder","isLoading","abortController","createDirectory","directory","loadDAVFiles","getFavoriteNodes","content","watch","useMimeFilter","allowedMIMETypes","splittedTypes","filter","mime","mimeTypeArray","subtype","emit$1","isOpen","savedPath","navigatedPath","filterString","currentFolder","loadFiles","isHandlingCallback","dialogButtons","button","handleButtonClick","callback","viewHeadline","isSupportedMimeType","filteredFiles","filtered","noFilesDescription","onCreateFolder","emit","handleClose","NcDialog","isCollapsed","NcEmptyContent","FilePicker"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]} \ No newline at end of file +{"version":3,"file":"FilePicker-DWYoSaVg-D_Ra0RFa.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcBreadcrumb-BeDMWE_b.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcBreadcrumbs-CuQDDvin.mjs","../node_modules/@nextcloud/dialogs/dist/chunks/preview-BIbJGxXF.mjs","../node_modules/@nextcloud/dialogs/dist/chunks/_plugin-vue_export-helper-1tPrXgE0.mjs","../node_modules/@nextcloud/dialogs/dist/chunks/FilePicker-DWYoSaVg.mjs"],"sourcesContent":["import '../assets/NcBreadcrumb-BxhZKQlW.css';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, resolveComponent, withModifiers, normalizeClass, createBlock, createSlots, withCtx, renderSlot, createTextVNode, createVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { N as NcActions } from \"./NcActions-CUmcZ3C3.mjs\";\nconst _sfc_main$1 = {\n name: \"ChevronRightIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon chevron-right-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1$1);\n}\nconst ChevronRight = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1]]);\nconst _sfc_main = {\n name: \"NcBreadcrumb\",\n components: {\n NcActions,\n ChevronRight,\n NcButton\n },\n inheritAttrs: false,\n props: {\n /**\n * The main text content of the entry.\n */\n name: {\n type: String,\n required: true\n },\n /**\n * The title attribute of the element.\n */\n title: {\n type: String,\n default: null\n },\n /**\n * Route Location the link should navigate to when clicked on.\n *\n * @see https://v3.router.vuejs.org/api/#to\n */\n to: {\n type: [String, Object],\n default: void 0\n },\n /**\n * Set this prop if your app doesn't use vue-router, breadcrumbs will show as normal links.\n */\n href: {\n type: String,\n default: void 0\n },\n /**\n * Set a css icon-class to show an icon along name text (if forceIconText is provided, otherwise just icon).\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * Enables text to accompany the icon, if the icon was provided. The text that will be displayed is the name prop.\n */\n forceIconText: {\n type: Boolean,\n default: false\n },\n /**\n * Disable dropping on this breadcrumb.\n */\n disableDrop: {\n type: Boolean,\n default: false\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Open state of the Actions menu\n */\n open: {\n type: Boolean,\n default: false\n },\n /**\n * CSS class to apply to the root element.\n */\n class: {\n type: [String, Array, Object],\n default: \"\"\n }\n },\n emits: [\n \"dragenter\",\n \"dragleave\",\n \"dropped\",\n \"update:open\"\n ],\n setup() {\n const crumbId = createElementId();\n return {\n actionsContainer: `.vue-crumb[data-crumb-id=\"${crumbId}\"]`,\n crumbId\n };\n },\n data() {\n return {\n /**\n * Variable to track if we hover over the breadcrumb\n */\n hovering: false\n };\n },\n computed: {\n /**\n * The attributes to pass to `router-link` or `a`\n */\n linkAttributes() {\n if (this.to) {\n return { to: this.to, ...this.$attrs };\n } else if (this.href) {\n return { href: this.href, ...this.$attrs };\n }\n return this.$attrs;\n }\n },\n methods: {\n /**\n * Function to handle changing the open state of the Actions menu\n * $emit the open state.\n *\n * @param {boolean} open The open state of the Actions menu\n */\n onOpenChange(open) {\n this.$emit(\"update:open\", open);\n },\n /**\n * Function to handle a drop on the breadcrumb.\n * $emit the event and the path, remove the hovering state.\n *\n * @param {object} e The drop event\n * @return {boolean}\n */\n dropped(e) {\n if (this.disableDrop) {\n return false;\n }\n this.$emit(\"dropped\", e, this.to || this.href);\n this.$parent.$emit(\"dropped\", e, this.to || this.href);\n this.hovering = false;\n return false;\n },\n /**\n * Add the hovering state on drag enter\n *\n * @param {DragEvent} e The drag-enter event\n */\n dragEnter(e) {\n this.$emit(\"dragenter\", e);\n if (this.disableDrop) {\n return;\n }\n this.hovering = true;\n },\n /**\n * Remove the hovering state on drag leave\n *\n * @param {DragEvent} e The drag leave event\n */\n dragLeave(e) {\n this.$emit(\"dragleave\", e);\n if (this.disableDrop) {\n return;\n }\n if (e.target.contains(e.relatedTarget) || this.$refs.crumb.contains(e.relatedTarget)) {\n return;\n }\n this.hovering = false;\n }\n }\n};\nconst _hoisted_1 = [\"data-crumb-id\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n const _component_ChevronRight = resolveComponent(\"ChevronRight\");\n return openBlock(), createElementBlock(\"li\", {\n ref: \"crumb\",\n class: normalizeClass([\"vue-crumb\", [{ \"vue-crumb--hovered\": $data.hovering }, _ctx.$props.class]]),\n \"data-crumb-id\": $setup.crumbId,\n draggable: \"false\",\n onDragstart: withModifiers(() => {\n }, [\"prevent\"]),\n onDrop: _cache[0] || (_cache[0] = withModifiers((...args) => $options.dropped && $options.dropped(...args), [\"prevent\"])),\n onDragover: withModifiers(() => {\n }, [\"prevent\"]),\n onDragenter: _cache[1] || (_cache[1] = (...args) => $options.dragEnter && $options.dragEnter(...args)),\n onDragleave: _cache[2] || (_cache[2] = (...args) => $options.dragLeave && $options.dragLeave(...args))\n }, [\n ($props.name || $props.icon || _ctx.$slots.icon) && !_ctx.$slots.default ? (openBlock(), createBlock(_component_NcButton, mergeProps({\n key: 0,\n \"aria-label\": $props.icon ? $props.name : void 0,\n variant: \"tertiary\"\n }, $options.linkAttributes), createSlots({ _: 2 }, [\n _ctx.$slots.icon || $props.icon ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createElementVNode(\"span\", {\n class: normalizeClass([$props.icon, \"icon\"])\n }, null, 2)\n ], true)\n ]),\n key: \"0\"\n } : void 0,\n !(_ctx.$slots.icon || $props.icon) || $props.forceIconText ? {\n name: \"default\",\n fn: withCtx(() => [\n createTextVNode(toDisplayString($props.name), 1)\n ]),\n key: \"1\"\n } : void 0\n ]), 1040, [\"aria-label\"])) : createCommentVNode(\"\", true),\n _ctx.$slots.default ? (openBlock(), createBlock(_component_NcActions, {\n key: 1,\n ref: \"actions\",\n container: $setup.actionsContainer,\n forceMenu: $props.forceMenu,\n forceName: \"\",\n menuName: $props.name,\n open: $props.open,\n title: $props.title,\n variant: \"tertiary\",\n \"onUpdate:open\": $options.onOpenChange\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"menu-icon\", {}, void 0, true)\n ]),\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"container\", \"forceMenu\", \"menuName\", \"open\", \"title\", \"onUpdate:open\"])) : createCommentVNode(\"\", true),\n createVNode(_component_ChevronRight, {\n class: \"vue-crumb__separator\",\n size: 20\n })\n ], 42, _hoisted_1);\n}\nconst NcBreadcrumb = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-7cec4a3e\"]]);\nexport {\n NcBreadcrumb as N\n};\n//# sourceMappingURL=NcBreadcrumb-BeDMWE_b.mjs.map\n","import '../assets/NcBreadcrumbs-5gl8Syfa.css';\nimport { unsubscribe, subscribe } from \"@nextcloud/event-bus\";\nimport debounce from \"debounce\";\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, Fragment, cloneVNode, h } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { N as NcActions, i as isSlotPopulated } from \"./NcActions-CUmcZ3C3.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-BO5T5ePT.mjs\";\nimport { N as NcActionLink } from \"./NcActionLink-BFiaYt9A.mjs\";\nimport { N as NcActionRouter } from \"./NcActionRouter-vYFtIOzD.mjs\";\nimport { N as NcBreadcrumb } from \"./NcBreadcrumb-BeDMWE_b.mjs\";\nconst _sfc_main$1 = {\n name: \"FolderIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon folder-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst IconFolder = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render]]);\nconst crumbClass = \"vue-crumb\";\nconst _sfc_main = {\n name: \"NcBreadcrumbs\",\n components: {\n NcActions,\n NcActionButton,\n NcActionRouter,\n NcActionLink,\n NcBreadcrumb,\n IconFolder\n },\n props: {\n /**\n * Set a css icon-class for the icon of the root breadcrumb to be used.\n */\n rootIcon: {\n type: String,\n default: \"icon-home\"\n },\n /**\n * Set the aria-label of the nav element.\n */\n ariaLabel: {\n type: String,\n default: null\n }\n },\n emits: [\"dropped\"],\n data() {\n return {\n /**\n * Array to track the hidden breadcrumbs by their index.\n * Comparing two crumbs somehow does not work, so we use the indices.\n */\n hiddenIndices: [],\n /**\n * This is the props of the middle Action menu\n * that show the ellipsised breadcrumbs\n */\n menuBreadcrumbProps: {\n // Don't show a name for this breadcrumb, only the Actions menu\n name: \"\",\n forceMenu: true,\n // Don't allow dropping directly on the actions breadcrumb\n disableDrop: true,\n // Is the menu open or not\n open: false\n },\n breadcrumbsRefs: []\n };\n },\n created() {\n window.addEventListener(\"resize\", debounce(() => {\n this.handleWindowResize();\n }, 100));\n subscribe(\"navigation-toggled\", this.delayedResize);\n },\n mounted() {\n this.handleWindowResize();\n },\n updated() {\n this.delayedResize();\n this.$nextTick(() => {\n this.hideCrumbs();\n });\n },\n beforeUnmount() {\n window.removeEventListener(\"resize\", this.handleWindowResize);\n unsubscribe(\"navigation-toggled\", this.delayedResize);\n },\n methods: {\n /**\n * Close the actions menu\n *\n * @param {object} e The event\n */\n closeActions(e) {\n if (this.$refs.actionsBreadcrumb.$el.contains(e.relatedTarget)) {\n return;\n }\n this.menuBreadcrumbProps.open = false;\n },\n /**\n * Call the resize function after a delay\n */\n async delayedResize() {\n await this.$nextTick();\n this.handleWindowResize();\n },\n /**\n * Check the width of the breadcrumb and hide breadcrumbs\n * if we overflow otherwise.\n */\n handleWindowResize() {\n if (!this.$refs.container) {\n return;\n }\n const nrCrumbs = this.breadcrumbsRefs.length;\n const hiddenIndices = [];\n const availableWidth = this.$refs.container.offsetWidth;\n let totalWidth = this.getTotalWidth();\n if (this.$refs.breadcrumb__actions) {\n totalWidth += this.$refs.breadcrumb__actions.offsetWidth;\n }\n let overflow = totalWidth - availableWidth;\n overflow += overflow > 0 ? 64 : 0;\n let i = 0;\n const startIndex = Math.floor(nrCrumbs / 2);\n while (overflow > 0 && i < nrCrumbs - 2) {\n const currentIndex = startIndex + (i % 2 ? i + 1 : i) / 2 * Math.pow(-1, i + nrCrumbs % 2);\n overflow -= this.getWidth(this.breadcrumbsRefs[currentIndex]?.$el, currentIndex === this.breadcrumbsRefs.length - 1);\n hiddenIndices.push(currentIndex);\n i++;\n }\n if (!this.arraysEqual(this.hiddenIndices, hiddenIndices.sort((a, b) => a - b))) {\n this.hiddenIndices = hiddenIndices;\n }\n },\n /**\n * Checks if two arrays are equal.\n * Only works for primitive arrays, but that's enough here.\n *\n * @param {Array} a The first array\n * @param {Array} b The second array\n * @return {boolean} Wether the arrays are equal\n */\n arraysEqual(a, b) {\n if (a.length !== b.length) {\n return false;\n } else if (a === b) {\n return true;\n } else if (a === null || b === null) {\n return false;\n }\n for (let i = 0; i < a.length; ++i) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n },\n /**\n * Calculates the total width of all breadcrumbs\n *\n * @return {number} The total width\n */\n getTotalWidth() {\n return this.breadcrumbsRefs.reduce((width, crumb, index) => width + this.getWidth(crumb.$el, index === this.breadcrumbsRefs.length - 1), 0);\n },\n /**\n * Calculates the width of the provided element\n *\n * @param {object} el The element\n * @param {boolean} isLast Is this the last crumb\n * @return {number} The width\n */\n getWidth(el, isLast) {\n if (!el?.classList) {\n return 0;\n }\n const hide = el.classList.contains(`${crumbClass}--hidden`);\n el.style.minWidth = \"auto\";\n if (isLast) {\n el.style.maxWidth = \"210px\";\n }\n el.classList.remove(`${crumbClass}--hidden`);\n const w = el.offsetWidth;\n if (hide) {\n el.classList.add(`${crumbClass}--hidden`);\n }\n el.style.minWidth = \"\";\n el.style.maxWidth = \"\";\n return w;\n },\n /**\n * Prevents the default of a provided event\n *\n * @param {object} e The event\n * @return {boolean}\n */\n preventDefault(e) {\n if (e.preventDefault) {\n e.preventDefault();\n }\n return false;\n },\n /**\n * Handles the drag start.\n * Prevents a breadcrumb from being draggable.\n *\n * @param {object} e The event\n * @return {boolean}\n */\n dragStart(e) {\n return this.preventDefault(e);\n },\n /**\n * Handles when something is dropped on the breadcrumb.\n *\n * @param {object} e The drop event\n * @param {string} path The path of the breadcrumb\n * @param {boolean} disabled Whether dropping is disabled for this breadcrumb\n * @return {boolean}\n */\n dropped(e, path, disabled) {\n if (!disabled) {\n this.$emit(\"dropped\", e, path);\n }\n this.menuBreadcrumbProps.open = false;\n const crumbs = document.querySelectorAll(`.${crumbClass}`);\n for (const crumb of crumbs) {\n crumb.classList.remove(`${crumbClass}--hovered`);\n }\n return this.preventDefault(e);\n },\n /**\n * Handles the drag over event\n *\n * @param {object} e The drag over event\n * @return {boolean}\n */\n dragOver(e) {\n return this.preventDefault(e);\n },\n /**\n * Handles the drag enter event\n *\n * @param {object} e The drag over event\n * @param {boolean} disabled Whether dropping is disabled for this breadcrumb\n */\n dragEnter(e, disabled) {\n if (disabled) {\n return;\n }\n if (e.target.closest) {\n const target = e.target.closest(`.${crumbClass}`);\n if (target.classList && target.classList.contains(crumbClass)) {\n const crumbs = document.querySelectorAll(`.${crumbClass}`);\n for (const crumb of crumbs) {\n crumb.classList.remove(`${crumbClass}--hovered`);\n }\n target.classList.add(`${crumbClass}--hovered`);\n }\n }\n },\n /**\n * Handles the drag leave event\n *\n * @param {object} e The drag leave event\n * @param {boolean} disabled Whether dropping is disabled for this breadcrumb\n */\n dragLeave(e, disabled) {\n if (disabled) {\n return;\n }\n if (e.target.contains(e.relatedTarget)) {\n return;\n }\n if (e.target.closest) {\n const target = e.target.closest(`.${crumbClass}`);\n if (target.contains(e.relatedTarget)) {\n return;\n }\n if (target.classList && target.classList.contains(crumbClass)) {\n target.classList.remove(`${crumbClass}--hovered`);\n }\n }\n },\n /**\n * Check for each crumb if we have to hide it and\n * add it to the array of all crumbs.\n */\n hideCrumbs() {\n this.breadcrumbsRefs.forEach((crumb, i) => {\n if (crumb?.$el?.classList) {\n if (this.hiddenIndices.includes(i)) {\n crumb.$el.classList.add(`${crumbClass}--hidden`);\n } else {\n crumb.$el.classList.remove(`${crumbClass}--hidden`);\n }\n }\n });\n },\n isBreadcrumb(vnode) {\n return vnode?.type?.name === \"NcBreadcrumb\";\n }\n },\n /**\n * The render function to display the component\n *\n * @return {object|undefined} The created VNode\n */\n render() {\n let breadcrumbs = [];\n this.$slots.default?.().forEach((vnode) => {\n if (this.isBreadcrumb(vnode)) {\n breadcrumbs.push(vnode);\n return;\n }\n if (vnode?.type === Fragment) {\n vnode?.children?.forEach?.((child) => {\n if (this.isBreadcrumb(child)) {\n breadcrumbs.push(child);\n }\n });\n }\n });\n if (breadcrumbs.length === 0) {\n return;\n }\n breadcrumbs[0] = cloneVNode(breadcrumbs[0], {\n icon: this.rootIcon,\n ref: \"breadcrumbs\"\n });\n const breadcrumbsRefs = [];\n breadcrumbs = breadcrumbs.map((crumb, index) => cloneVNode(crumb, {\n ref: (crumb2) => {\n breadcrumbsRefs[index] = crumb2;\n }\n }));\n const crumbs = [...breadcrumbs];\n if (this.hiddenIndices.length) {\n crumbs.splice(\n Math.round(breadcrumbs.length / 2),\n 0,\n // The Actions menu\n // Use a breadcrumb component for the hidden breadcrumbs\n // eslint-disable-line @stylistic/function-call-argument-newline\n h(NcBreadcrumb, {\n class: \"dropdown\",\n ...this.menuBreadcrumbProps,\n // Hide the dropdown menu from screen-readers,\n // since the crumbs in the menu are still in the list.\n \"aria-hidden\": true,\n // Add a ref to the Actions menu\n ref: \"actionsBreadcrumb\",\n key: \"actions-breadcrumb-1\",\n // Add handlers so the Actions menu opens on hover\n onDragenter: () => {\n this.menuBreadcrumbProps.open = true;\n },\n onDragleave: this.closeActions,\n // Make sure we keep the same open state\n // as the Actions component\n \"onUpdate:open\": (open) => {\n this.menuBreadcrumbProps.open = open;\n }\n // Add all hidden breadcrumbs as ActionRouter or ActionLink\n }, {\n default: () => this.hiddenIndices.filter((index) => index <= breadcrumbs.length - 1).map((index) => {\n const crumb = breadcrumbs[index];\n const {\n // Get the parameters from the breadcrumb component props\n to,\n href,\n disableDrop,\n name,\n // Props to forward\n ...propsToForward\n } = crumb.props;\n delete propsToForward.ref;\n let element = NcActionButton;\n let path = \"\";\n if (href) {\n element = NcActionLink;\n path = href;\n }\n if (to) {\n element = NcActionRouter;\n path = to;\n }\n const folderIcon = h(IconFolder, {\n size: 20\n });\n return h(element, {\n ...propsToForward,\n class: crumbClass,\n href: href || null,\n to: to || null,\n // Prevent the breadcrumbs from being draggable\n draggable: false,\n // Add the drag and drop handlers\n onDragstart: this.dragStart,\n onDrop: ($event) => this.dropped($event, path, disableDrop),\n onDragover: this.dragOver,\n onDragenter: ($event) => this.dragEnter($event, disableDrop),\n onDragleave: ($event) => this.dragLeave($event, disableDrop)\n }, {\n default: () => name,\n icon: () => folderIcon\n });\n })\n })\n );\n }\n const wrapper = [h(\"nav\", { \"aria-label\": this.ariaLabel }, [h(\"ul\", { class: \"breadcrumb__crumbs\" }, [crumbs])])];\n if (isSlotPopulated(this.$slots.actions?.())) {\n wrapper.push(h(\"div\", { class: \"breadcrumb__actions\", ref: \"breadcrumb__actions\" }, this.$slots.actions?.()));\n }\n this.breadcrumbsRefs = breadcrumbsRefs;\n return h(\"div\", { class: [\"breadcrumb\", { \"breadcrumb--collapsed\": this.hiddenIndices.length === breadcrumbs.length - 2 }], ref: \"container\" }, wrapper);\n }\n};\nconst NcBreadcrumbs = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-0015282c\"]]);\nexport {\n NcBreadcrumbs as N\n};\n//# sourceMappingURL=NcBreadcrumbs-CuQDDvin.mjs.map\n","import { FileType } from \"@nextcloud/files\";\nimport { generateUrl } from \"@nextcloud/router\";\nimport { ref, watchEffect, toValue } from \"vue\";\nimport PQueue from \"p-queue\";\nconst queue = new PQueue({ concurrency: 5 });\nfunction preloadImage(url) {\n const { resolve, promise } = Promise.withResolvers();\n queue.add(() => {\n const image = new Image();\n image.onerror = () => resolve(false);\n image.onload = () => resolve(true);\n image.src = url;\n return promise;\n });\n return promise;\n}\nfunction getPreviewURL(node, options = {}) {\n options = { size: 32, cropPreview: false, mimeFallback: true, ...options };\n try {\n const previewUrl = node.attributes?.previewUrl || generateUrl(\"/core/preview?fileId={fileid}\", {\n fileid: node.fileid\n });\n let url;\n try {\n url = new URL(previewUrl);\n } catch {\n url = new URL(previewUrl, window.location.origin);\n }\n url.searchParams.set(\"x\", `${options.size}`);\n url.searchParams.set(\"y\", `${options.size}`);\n url.searchParams.set(\"mimeFallback\", `${options.mimeFallback}`);\n url.searchParams.set(\"a\", options.cropPreview === true ? \"0\" : \"1\");\n url.searchParams.set(\"c\", `${node.attributes.etag}`);\n return url;\n } catch {\n return null;\n }\n}\nfunction usePreviewURL(node, options) {\n const previewURL = ref(null);\n const previewLoaded = ref(false);\n watchEffect(() => {\n previewLoaded.value = false;\n previewURL.value = getPreviewURL(toValue(node), toValue(options || {}));\n if (previewURL.value && toValue(node).type === FileType.File) {\n preloadImage(previewURL.value.href).then((success) => {\n previewLoaded.value = success;\n });\n }\n });\n return {\n previewURL,\n previewLoaded\n };\n}\nexport {\n getPreviewURL as g,\n usePreviewURL as u\n};\n//# sourceMappingURL=preview-BIbJGxXF.mjs.map\n","const _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nexport {\n _export_sfc as _\n};\n//# sourceMappingURL=_plugin-vue_export-helper-1tPrXgE0.mjs.map\n","import { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, defineComponent, ref, computed, toRef, normalizeClass, normalizeStyle, unref, Fragment, createBlock, createVNode, toHandlers, withModifiers, onMounted, toValue, useModel, onUnmounted, withCtx, createTextVNode, renderList, mergeModels, nextTick, useTemplateRef, createSlots, shallowRef, watch } from \"vue\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport NcDialog from \"@nextcloud/vue/components/NcDialog\";\nimport NcEmptyContent from \"@nextcloud/vue/components/NcEmptyContent\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { FileType, Permission, formatFileSize, sortNodes, validateFilename, InvalidFilenameError, InvalidFilenameErrorReason } from \"@nextcloud/files\";\nimport NcButton from \"@nextcloud/vue/components/NcButton\";\nimport NcCheckboxRadioSwitch from \"@nextcloud/vue/components/NcCheckboxRadioSwitch\";\nimport { extname, join } from \"@nextcloud/paths\";\nimport NcDateTime from \"@nextcloud/vue/components/NcDateTime\";\nimport { mdiKey, mdiTagOutline, mdiLink, mdiAccountPlus, mdiAccountGroupOutline, mdiNetworkOutline, mdiFolder, mdiClock, mdiStar } from \"@mdi/js\";\nimport { ShareType } from \"@nextcloud/sharing\";\nimport NcIconSvgWrapper from \"@nextcloud/vue/components/NcIconSvgWrapper\";\nimport { u as usePreviewURL } from \"./preview-BIbJGxXF.mjs\";\nimport { t, l as logger, s as showError } from \"./index-DL1yHC1K.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { loadState } from \"@nextcloud/initial-state\";\nimport { generateUrl } from \"@nextcloud/router\";\nimport { isPublicShare } from \"@nextcloud/sharing/public\";\nimport NcActionInput from \"@nextcloud/vue/components/NcActionInput\";\nimport NcActions from \"@nextcloud/vue/components/NcActions\";\nimport NcBreadcrumb from \"@nextcloud/vue/components/NcBreadcrumb\";\nimport NcBreadcrumbs from \"@nextcloud/vue/components/NcBreadcrumbs\";\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport NcSelect from \"@nextcloud/vue/components/NcSelect\";\nimport NcTextField from \"@nextcloud/vue/components/NcTextField\";\nimport { getRecentSearch, resultToNode, defaultRootPath, getDefaultPropfind, getClient, getFavoriteNodes } from \"@nextcloud/files/dav\";\nconst _sfc_main$e = {\n name: \"FileIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$c = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$b = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$a = { d: \"M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z\" };\nconst _hoisted_4$a = { key: 0 };\nfunction _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon file-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$a, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$a, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$b))\n ], 16, _hoisted_1$c);\n}\nconst IconFile = /* @__PURE__ */ _export_sfc(_sfc_main$e, [[\"render\", _sfc_render$7]]);\nconst _sfc_main$d = {\n name: \"MenuDownIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$b = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$a = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$9 = { d: \"M7,10L12,15L17,10H7Z\" };\nconst _hoisted_4$9 = { key: 0 };\nfunction _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon menu-down-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$9, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$9, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$a))\n ], 16, _hoisted_1$b);\n}\nconst IconSortDescending = /* @__PURE__ */ _export_sfc(_sfc_main$d, [[\"render\", _sfc_render$6]]);\nconst _sfc_main$c = {\n name: \"MenuUpIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$a = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$9 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$8 = { d: \"M7,15L12,10L17,15H7Z\" };\nconst _hoisted_4$8 = { key: 0 };\nfunction _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon menu-up-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$8, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$8, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$9))\n ], 16, _hoisted_1$a);\n}\nconst IconSortAscending = /* @__PURE__ */ _export_sfc(_sfc_main$c, [[\"render\", _sfc_render$5]]);\nconst _sfc_main$b = {\n name: \"FolderIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$9 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$8 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$7 = { d: \"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z\" };\nconst _hoisted_4$7 = { key: 0 };\nfunction _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon folder-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$7, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$7, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$8))\n ], 16, _hoisted_1$9);\n}\nconst IconFolder = /* @__PURE__ */ _export_sfc(_sfc_main$b, [[\"render\", _sfc_render$4]]);\nconst fileListIconStyles = {\n \"file-picker__file-icon\": \"_file-picker__file-icon_1aykw_9\",\n \"file-picker__file-icon--primary\": \"_file-picker__file-icon--primary_1aykw_22\",\n \"file-picker__file-icon-overlay\": \"_file-picker__file-icon-overlay_1aykw_26\"\n};\nconst _sfc_main$a = /* @__PURE__ */ defineComponent({\n __name: \"FilePreview\",\n props: {\n node: {},\n cropImagePreviews: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n const fileListIconStyles$1 = ref(fileListIconStyles);\n const {\n previewURL,\n previewLoaded\n } = usePreviewURL(toRef(props, \"node\"), computed(() => ({ cropPreview: props.cropImagePreviews })));\n const isFile = computed(() => props.node.type === FileType.File);\n const folderDecorationIcon = computed(() => {\n if (props.node.type !== FileType.Folder) {\n return null;\n }\n if (props.node.attributes?.[\"is-encrypted\"] === 1) {\n return mdiKey;\n }\n if (props.node.attributes?.[\"is-tag\"]) {\n return mdiTagOutline;\n }\n const shareTypes = Object.values(props.node.attributes?.[\"share-types\"] || {}).flat();\n if (shareTypes.some((type) => type === ShareType.Link || type === ShareType.Email)) {\n return mdiLink;\n }\n if (shareTypes.length > 0) {\n return mdiAccountPlus;\n }\n switch (props.node.attributes?.[\"mount-type\"]) {\n case \"external\":\n case \"external-session\":\n return mdiNetworkOutline;\n case \"group\":\n return mdiAccountGroupOutline;\n case \"shared\":\n return mdiAccountPlus;\n }\n return null;\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n style: normalizeStyle(unref(previewLoaded) ? { backgroundImage: `url(${unref(previewURL)})` } : void 0),\n class: normalizeClass(fileListIconStyles$1.value[\"file-picker__file-icon\"])\n }, [\n !unref(previewLoaded) ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n isFile.value ? (openBlock(), createBlock(IconFile, {\n key: 0,\n size: 32\n })) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [\n folderDecorationIcon.value ? (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 0,\n class: normalizeClass(fileListIconStyles$1.value[\"file-picker__file-icon-overlay\"]),\n inline: \"\",\n path: folderDecorationIcon.value,\n size: 16\n }, null, 8, [\"class\", \"path\"])) : createCommentVNode(\"\", true),\n createVNode(IconFolder, {\n class: normalizeClass(fileListIconStyles$1.value[\"file-picker__file-icon--primary\"]),\n size: 32\n }, null, 8, [\"class\"])\n ], 64))\n ], 64)) : createCommentVNode(\"\", true)\n ], 6);\n };\n }\n});\nconst _hoisted_1$8 = [\"tabindex\", \"aria-selected\", \"data-filename\"];\nconst _hoisted_2$7 = { class: \"row-name\" };\nconst _hoisted_3$6 = {\n class: \"file-picker__name-container\",\n \"data-testid\": \"row-name\"\n};\nconst _hoisted_4$6 = [\"title\", \"textContent\"];\nconst _hoisted_5$1 = [\"textContent\"];\nconst _hoisted_6$1 = { class: \"row-size\" };\nconst _hoisted_7$1 = { class: \"row-modified\" };\nconst _sfc_main$9 = /* @__PURE__ */ defineComponent({\n __name: \"FileListRow\",\n props: {\n allowPickDirectory: { type: Boolean },\n selected: { type: Boolean },\n showCheckbox: { type: Boolean },\n canPick: { type: Boolean },\n node: {},\n cropImagePreviews: { type: Boolean }\n },\n emits: [\"update:selected\", \"enterDirectory\"],\n setup(__props, { emit: __emit }) {\n const props = __props;\n const emit2 = __emit;\n const timestamp = computed(() => props.node.mtime ?? 0);\n const fileExtension = computed(() => extname(props.node.displayname));\n const displayName = computed(() => props.node.displayname.slice(0, fileExtension.value ? -fileExtension.value.length : void 0));\n const isDirectory = computed(() => props.node.type === FileType.Folder);\n const isPickable = computed(() => props.canPick && (props.allowPickDirectory || !isDirectory.value));\n const isNavigatable = computed(() => (props.node.permissions & Permission.READ) === Permission.READ);\n function toggleSelected() {\n if (!isPickable.value) {\n return;\n }\n emit2(\"update:selected\", !props.selected);\n }\n function handleClick() {\n if (isDirectory.value) {\n if (isNavigatable.value) {\n emit2(\"enterDirectory\", props.node);\n }\n } else {\n toggleSelected();\n }\n }\n function handleKeyDown(event) {\n if (event.key === \"Enter\") {\n handleClick();\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"tr\", mergeProps({\n tabindex: __props.showCheckbox && !isDirectory.value ? void 0 : 0,\n \"aria-selected\": !isPickable.value ? void 0 : __props.selected,\n class: [\"file-picker__row\", [\n {\n \"file-picker__row--selected\": __props.selected && !__props.showCheckbox,\n \"file-picker__row--not-navigatable\": isDirectory.value && !isNavigatable.value,\n \"file-picker__row--not-pickable\": !isPickable.value\n }\n ]],\n \"data-filename\": __props.node.basename,\n \"data-testid\": \"file-list-row\"\n }, toHandlers({\n click: handleClick,\n /* same as tabindex -> if we hide the checkbox or this is a directory we need keyboard access to enter the directory or select the node */\n ...!__props.showCheckbox || isDirectory.value ? { keydown: handleKeyDown } : {}\n }, true)), [\n __props.showCheckbox ? (openBlock(), createElementBlock(\"td\", {\n key: 0,\n class: \"row-checkbox\",\n onClick: withModifiers(() => {\n }, [\"stop\"])\n }, [\n createVNode(unref(NcCheckboxRadioSwitch), {\n \"aria-label\": unref(t)(\"Select the row for {nodename}\", { nodename: displayName.value }),\n disabled: !isPickable.value,\n \"data-testid\": \"row-checkbox\",\n modelValue: __props.selected,\n \"onUpdate:modelValue\": toggleSelected\n }, null, 8, [\"aria-label\", \"disabled\", \"modelValue\"])\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"td\", _hoisted_2$7, [\n createElementVNode(\"div\", _hoisted_3$6, [\n createVNode(_sfc_main$a, {\n node: __props.node,\n cropImagePreviews: __props.cropImagePreviews\n }, null, 8, [\"node\", \"cropImagePreviews\"]),\n createElementVNode(\"div\", {\n class: \"file-picker__file-name\",\n title: displayName.value,\n textContent: toDisplayString(displayName.value)\n }, null, 8, _hoisted_4$6),\n createElementVNode(\"div\", {\n class: \"file-picker__file-extension\",\n textContent: toDisplayString(fileExtension.value)\n }, null, 8, _hoisted_5$1)\n ])\n ]),\n createElementVNode(\"td\", _hoisted_6$1, toDisplayString(unref(formatFileSize)(__props.node.size || 0)), 1),\n createElementVNode(\"td\", _hoisted_7$1, [\n createVNode(unref(NcDateTime), {\n timestamp: timestamp.value,\n ignoreSeconds: \"\"\n }, null, 8, [\"timestamp\"])\n ])\n ], 16, _hoisted_1$8);\n };\n }\n});\nconst FileListRow = /* @__PURE__ */ _export_sfc(_sfc_main$9, [[\"__scopeId\", \"data-v-7857e8bd\"]]);\nconst _hoisted_1$7 = {\n \"aria-hidden\": \"true\",\n class: \"file-picker__row loading-row\"\n};\nconst _hoisted_2$6 = {\n key: 0,\n class: \"row-checkbox\"\n};\nconst _hoisted_3$5 = { class: \"row-name\" };\nconst _hoisted_4$5 = { class: \"row-wrapper\" };\nconst _sfc_main$8 = /* @__PURE__ */ defineComponent({\n __name: \"LoadingTableRow\",\n props: {\n showCheckbox: { type: Boolean }\n },\n setup(__props) {\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"tr\", _hoisted_1$7, [\n __props.showCheckbox ? (openBlock(), createElementBlock(\"td\", _hoisted_2$6, [..._cache[0] || (_cache[0] = [\n createElementVNode(\"span\", null, null, -1)\n ])])) : createCommentVNode(\"\", true),\n createElementVNode(\"td\", _hoisted_3$5, [\n createElementVNode(\"div\", _hoisted_4$5, [\n createElementVNode(\"span\", {\n class: normalizeClass(unref(fileListIconStyles)[\"file-picker__file-icon\"])\n }, null, 2),\n _cache[1] || (_cache[1] = createElementVNode(\"span\", null, null, -1))\n ])\n ]),\n _cache[2] || (_cache[2] = createElementVNode(\"td\", { class: \"row-size\" }, [\n createElementVNode(\"span\")\n ], -1)),\n _cache[3] || (_cache[3] = createElementVNode(\"td\", { class: \"row-modified\" }, [\n createElementVNode(\"span\")\n ], -1))\n ]);\n };\n }\n});\nconst LoadingTableRow = /* @__PURE__ */ _export_sfc(_sfc_main$8, [[\"__scopeId\", \"data-v-1f96131b\"]]);\nfunction useFilesSettings() {\n const filesUserState = loadState(\"files\", \"config\", null);\n const showHiddenFiles = ref(filesUserState?.show_hidden ?? true);\n const sortFavoritesFirst = ref(filesUserState?.sort_favorites_first ?? true);\n const cropImagePreviews = ref(filesUserState?.crop_image_previews ?? true);\n onMounted(async () => {\n if (!isPublicShare()) {\n try {\n const { data } = await axios.get(generateUrl(\"/apps/files/api/v1/configs\"));\n showHiddenFiles.value = data?.data?.show_hidden ?? false;\n sortFavoritesFirst.value = data?.data?.sort_favorites_first ?? true;\n cropImagePreviews.value = data?.data?.crop_image_previews ?? true;\n } catch (error) {\n logger.error(\"Could not load files settings\", { error });\n showError(t(\"Could not load files settings\"));\n }\n } else {\n logger.debug(\"Skip loading files settings - currently on public share\");\n }\n });\n return {\n showHiddenFiles,\n sortFavoritesFirst,\n cropImagePreviews\n };\n}\nfunction useFilesViews(currentView) {\n const convertOrder = (order2) => order2 === \"asc\" ? \"ascending\" : order2 === \"desc\" ? \"descending\" : \"none\";\n const filesViewsState = loadState(\"files\", \"viewConfigs\", null);\n const filesViewConfig = ref({\n sortBy: filesViewsState?.files?.sorting_mode ?? \"basename\",\n order: convertOrder(filesViewsState?.files?.sorting_direction ?? \"asc\")\n });\n const recentViewConfig = ref({\n sortBy: filesViewsState?.recent?.sorting_mode ?? \"basename\",\n order: convertOrder(filesViewsState?.recent?.sorting_direction ?? \"asc\")\n });\n const favoritesViewConfig = ref({\n sortBy: filesViewsState?.favorites?.sorting_mode ?? \"basename\",\n order: convertOrder(filesViewsState?.favorites?.sorting_direction ?? \"asc\")\n });\n onMounted(async () => {\n if (!isPublicShare()) {\n try {\n const { data } = await axios.get(generateUrl(\"/apps/files/api/v1/views\"));\n filesViewConfig.value = {\n sortBy: data?.data?.files?.sorting_mode ?? \"basename\",\n order: convertOrder(data?.data?.files?.sorting_direction)\n };\n favoritesViewConfig.value = {\n sortBy: data?.data?.favorites?.sorting_mode ?? \"basename\",\n order: convertOrder(data?.data?.favorites?.sorting_direction)\n };\n recentViewConfig.value = {\n sortBy: data?.data?.recent?.sorting_mode ?? \"basename\",\n order: convertOrder(data?.data?.recent?.sorting_direction)\n };\n } catch (error) {\n logger.error(\"Could not load files views\", { error });\n showError(t(\"Could not load files views\"));\n }\n } else {\n logger.debug(\"Skip loading files views - currently on public share\");\n }\n });\n const currentConfig = computed(() => toValue(currentView || \"files\") === \"files\" ? filesViewConfig.value : toValue(currentView) === \"recent\" ? recentViewConfig.value : favoritesViewConfig.value);\n const sortBy = computed(() => currentConfig.value.sortBy);\n const order = computed(() => currentConfig.value.order);\n return {\n filesViewConfig,\n favoritesViewConfig,\n recentViewConfig,\n currentConfig,\n sortBy,\n order\n };\n}\nconst _hoisted_1$6 = {\n key: 0,\n class: \"row-checkbox\"\n};\nconst _hoisted_2$5 = { class: \"hidden-visually\" };\nconst _hoisted_3$4 = [\"aria-sort\"];\nconst _hoisted_4$4 = { class: \"header-wrapper\" };\nconst _hoisted_5 = {\n key: 2,\n style: { \"width\": \"44px\" }\n};\nconst _hoisted_6 = [\"aria-sort\"];\nconst _hoisted_7 = {\n key: 2,\n style: { \"width\": \"44px\" }\n};\nconst _hoisted_8 = [\"aria-sort\"];\nconst _hoisted_9 = {\n key: 2,\n style: { \"width\": \"44px\" }\n};\nconst _sfc_main$7 = /* @__PURE__ */ defineComponent({\n __name: \"FileList\",\n props: /* @__PURE__ */ mergeModels({\n currentView: {},\n multiselect: { type: Boolean },\n allowPickDirectory: { type: Boolean },\n loading: { type: Boolean },\n files: {},\n canPick: { type: Function }\n }, {\n \"path\": { required: true },\n \"pathModifiers\": {},\n \"selectedFiles\": { required: true },\n \"selectedFilesModifiers\": {}\n }),\n emits: [\"update:path\", \"update:selectedFiles\"],\n setup(__props) {\n const path = useModel(__props, \"path\");\n const selectedFiles = useModel(__props, \"selectedFiles\");\n const props = __props;\n const customSortingConfig = ref();\n const { currentConfig: filesAppSorting } = useFilesViews(props.currentView);\n const sortingConfig = computed(() => customSortingConfig.value ?? filesAppSorting.value);\n const sortByName = computed(() => sortingConfig.value.sortBy === \"basename\" ? sortingConfig.value.order === \"none\" ? void 0 : sortingConfig.value.order : void 0);\n const sortBySize = computed(() => sortingConfig.value.sortBy === \"size\" ? sortingConfig.value.order === \"none\" ? void 0 : sortingConfig.value.order : void 0);\n const sortByModified = computed(() => sortingConfig.value.sortBy === \"mtime\" ? sortingConfig.value.order === \"none\" ? void 0 : sortingConfig.value.order : void 0);\n function toggleSorting(sortBy) {\n if (sortingConfig.value.sortBy === sortBy) {\n if (sortingConfig.value.order === \"ascending\") {\n customSortingConfig.value = { sortBy: sortingConfig.value.sortBy, order: \"descending\" };\n } else {\n customSortingConfig.value = { sortBy: sortingConfig.value.sortBy, order: \"ascending\" };\n }\n } else {\n customSortingConfig.value = { sortBy, order: \"ascending\" };\n }\n }\n const { sortFavoritesFirst, cropImagePreviews } = useFilesSettings();\n const sortedFiles = computed(() => {\n return sortNodes(props.files, {\n sortFoldersFirst: true,\n sortFavoritesFirst: sortFavoritesFirst.value,\n sortingOrder: sortingConfig.value.order === \"descending\" ? \"desc\" : \"asc\",\n sortingMode: sortingConfig.value.sortBy\n });\n });\n const selectableFiles = computed(() => props.files.filter((file) => props.allowPickDirectory || file.type !== FileType.Folder));\n const allSelected = computed(() => !props.loading && selectedFiles.value.length > 0 && selectedFiles.value.length >= selectableFiles.value.length);\n function onSelectAll() {\n if (selectedFiles.value.length < selectableFiles.value.length) {\n selectedFiles.value = [...selectableFiles.value];\n } else {\n selectedFiles.value = [];\n }\n }\n function onNodeSelected(file) {\n if (selectedFiles.value.includes(file)) {\n selectedFiles.value = selectedFiles.value.filter((f) => f.path !== file.path);\n } else {\n if (props.multiselect) {\n selectedFiles.value = [...selectedFiles.value, file];\n } else {\n selectedFiles.value = [file];\n }\n }\n }\n function onChangeDirectory(dir) {\n path.value = dir.path;\n }\n const skeletonNumber = ref(4);\n const fileContainer = ref();\n {\n const resize = () => nextTick(() => {\n const nodes = fileContainer.value?.parentElement?.children || [];\n let height = fileContainer.value?.parentElement?.clientHeight || 450;\n for (let index = 0; index < nodes.length; index++) {\n if (!fileContainer.value?.isSameNode(nodes[index])) {\n height -= nodes[index].clientHeight;\n }\n }\n skeletonNumber.value = Math.max(1, Math.floor((height - 50) / 50));\n });\n onMounted(() => {\n window.addEventListener(\"resize\", resize);\n resize();\n });\n onUnmounted(() => {\n window.removeEventListener(\"resize\", resize);\n });\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref_key: \"fileContainer\",\n ref: fileContainer,\n class: \"file-picker__files\"\n }, [\n createElementVNode(\"table\", null, [\n createElementVNode(\"thead\", null, [\n createElementVNode(\"tr\", null, [\n __props.multiselect ? (openBlock(), createElementBlock(\"th\", _hoisted_1$6, [\n createElementVNode(\"span\", _hoisted_2$5, toDisplayString(unref(t)(\"Select entry\")), 1),\n __props.multiselect ? (openBlock(), createBlock(unref(NcCheckboxRadioSwitch), {\n key: 0,\n \"aria-label\": unref(t)(\"Select all entries\"),\n \"data-testid\": \"select-all-checkbox\",\n modelValue: allSelected.value,\n \"onUpdate:modelValue\": onSelectAll\n }, null, 8, [\"aria-label\", \"modelValue\"])) : createCommentVNode(\"\", true)\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"th\", {\n \"aria-sort\": sortByName.value,\n class: \"row-name\"\n }, [\n createElementVNode(\"div\", _hoisted_4$4, [\n _cache[3] || (_cache[3] = createElementVNode(\"span\", { class: \"file-picker__header-preview\" }, null, -1)),\n createVNode(unref(NcButton), {\n \"data-test\": \"file-picker_sort-name\",\n variant: \"tertiary\",\n wide: \"\",\n onClick: _cache[0] || (_cache[0] = ($event) => toggleSorting(\"basename\"))\n }, {\n icon: withCtx(() => [\n sortByName.value === \"ascending\" ? (openBlock(), createBlock(IconSortAscending, {\n key: 0,\n size: 20\n })) : sortByName.value === \"descending\" ? (openBlock(), createBlock(IconSortDescending, {\n key: 1,\n size: 20\n })) : (openBlock(), createElementBlock(\"span\", _hoisted_5))\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(unref(t)(\"Name\")), 1)\n ]),\n _: 1\n })\n ])\n ], 8, _hoisted_3$4),\n createElementVNode(\"th\", {\n \"aria-sort\": sortBySize.value,\n class: \"row-size\"\n }, [\n createVNode(unref(NcButton), {\n variant: \"tertiary\",\n wide: \"\",\n onClick: _cache[1] || (_cache[1] = ($event) => toggleSorting(\"size\"))\n }, {\n icon: withCtx(() => [\n sortBySize.value === \"ascending\" ? (openBlock(), createBlock(IconSortAscending, {\n key: 0,\n size: 20\n })) : sortBySize.value === \"descending\" ? (openBlock(), createBlock(IconSortDescending, {\n key: 1,\n size: 20\n })) : (openBlock(), createElementBlock(\"span\", _hoisted_7))\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(unref(t)(\"Size\")), 1)\n ]),\n _: 1\n })\n ], 8, _hoisted_6),\n createElementVNode(\"th\", {\n \"aria-sort\": sortByModified.value,\n class: \"row-modified\"\n }, [\n createVNode(unref(NcButton), {\n variant: \"tertiary\",\n wide: \"\",\n onClick: _cache[2] || (_cache[2] = ($event) => toggleSorting(\"mtime\"))\n }, {\n icon: withCtx(() => [\n sortByModified.value === \"ascending\" ? (openBlock(), createBlock(IconSortAscending, {\n key: 0,\n size: 20\n })) : sortByModified.value === \"descending\" ? (openBlock(), createBlock(IconSortDescending, {\n key: 1,\n size: 20\n })) : (openBlock(), createElementBlock(\"span\", _hoisted_9))\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(unref(t)(\"Modified\")), 1)\n ]),\n _: 1\n })\n ], 8, _hoisted_8)\n ])\n ]),\n createElementVNode(\"tbody\", null, [\n __props.loading ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(skeletonNumber.value, (index) => {\n return openBlock(), createBlock(LoadingTableRow, {\n key: index,\n showCheckbox: __props.multiselect\n }, null, 8, [\"showCheckbox\"]);\n }), 128)) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(sortedFiles.value, (file) => {\n return openBlock(), createBlock(FileListRow, {\n key: file.fileid || file.path,\n allowPickDirectory: __props.allowPickDirectory,\n showCheckbox: __props.multiselect,\n canPick: (__props.multiselect || selectedFiles.value.length === 0 || selectedFiles.value.includes(file)) && (__props.canPick === void 0 || __props.canPick(file)),\n selected: selectedFiles.value.includes(file),\n node: file,\n cropImagePreviews: unref(cropImagePreviews),\n \"onUpdate:selected\": ($event) => onNodeSelected(file),\n onEnterDirectory: onChangeDirectory\n }, null, 8, [\"allowPickDirectory\", \"showCheckbox\", \"canPick\", \"selected\", \"node\", \"cropImagePreviews\", \"onUpdate:selected\"]);\n }), 128))\n ])\n ])\n ], 512);\n };\n }\n});\nconst FileList = /* @__PURE__ */ _export_sfc(_sfc_main$7, [[\"__scopeId\", \"data-v-412efd5c\"]]);\nconst _sfc_main$6 = {\n name: \"HomeIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$5 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$4 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$3 = { d: \"M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z\" };\nconst _hoisted_4$3 = { key: 0 };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon home-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$3, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$4))\n ], 16, _hoisted_1$5);\n}\nconst IconHome = /* @__PURE__ */ _export_sfc(_sfc_main$6, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$5 = {\n name: \"PlusIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$4 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$3 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { d: \"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z\" };\nconst _hoisted_4$2 = { key: 0 };\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon plus-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$2, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$2, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$3))\n ], 16, _hoisted_1$4);\n}\nconst IconPlus = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"render\", _sfc_render$2]]);\nconst _sfc_main$4 = /* @__PURE__ */ defineComponent({\n __name: \"FilePickerBreadcrumbs\",\n props: /* @__PURE__ */ mergeModels({\n showMenu: { type: Boolean }\n }, {\n \"path\": { required: true },\n \"pathModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"createNode\"], [\"update:path\"]),\n setup(__props, { emit: __emit }) {\n const path = useModel(__props, \"path\");\n const emit2 = __emit;\n const actionsOpen = ref(false);\n const newNodeName = ref(\"\");\n const nameInput = useTemplateRef(\"nameInput\");\n function validateInput() {\n const name = newNodeName.value.trim();\n const input = nameInput.value?.$el?.querySelector(\"input\");\n let validity = \"\";\n try {\n validateFilename(name);\n } catch (error) {\n if (!(error instanceof InvalidFilenameError)) {\n throw error;\n }\n switch (error.reason) {\n case InvalidFilenameErrorReason.Character:\n validity = t('\"{char}\" is not allowed inside a folder name.', { char: error.segment });\n break;\n case InvalidFilenameErrorReason.ReservedName:\n validity = t('\"{segment}\" is a reserved name and not allowed for folder names.', { segment: error.segment });\n break;\n case InvalidFilenameErrorReason.Extension:\n validity = t('Folder names must not end with \"{extension}\".', { extension: error.segment });\n break;\n default:\n validity = t(\"Invalid folder name.\");\n }\n }\n if (input) {\n input.setCustomValidity(validity);\n }\n return validity === \"\";\n }\n function onSubmit() {\n const name = newNodeName.value.trim();\n if (validateInput()) {\n actionsOpen.value = false;\n emit2(\"createNode\", name);\n newNodeName.value = \"\";\n }\n }\n const pathElements = computed(() => path.value.split(\"/\").filter((v) => v !== \"\").map((v, i, elements) => ({\n name: v,\n path: \"/\" + elements.slice(0, i + 1).join(\"/\")\n })));\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcBreadcrumbs), { class: \"file-picker__breadcrumbs\" }, createSlots({\n default: withCtx(() => [\n createVNode(unref(NcBreadcrumb), {\n name: unref(t)(\"All files\"),\n title: unref(t)(\"Home\"),\n onClick: _cache[0] || (_cache[0] = ($event) => path.value = \"/\")\n }, {\n icon: withCtx(() => [\n createVNode(IconHome, { size: 20 })\n ]),\n _: 1\n }, 8, [\"name\", \"title\"]),\n (openBlock(true), createElementBlock(Fragment, null, renderList(pathElements.value, (dir) => {\n return openBlock(), createBlock(unref(NcBreadcrumb), {\n key: dir.path,\n name: dir.name,\n title: dir.path,\n onClick: ($event) => path.value = dir.path\n }, null, 8, [\"name\", \"title\", \"onClick\"]);\n }), 128))\n ]),\n _: 2\n }, [\n __props.showMenu ? {\n name: \"actions\",\n fn: withCtx(() => [\n createVNode(unref(NcActions), {\n open: actionsOpen.value,\n \"onUpdate:open\": _cache[2] || (_cache[2] = ($event) => actionsOpen.value = $event),\n \"aria-label\": unref(t)(\"Create directory\"),\n forceMenu: true,\n forceName: true,\n menuName: unref(t)(\"New\"),\n variant: \"secondary\",\n onClose: _cache[3] || (_cache[3] = ($event) => newNodeName.value = \"\")\n }, {\n icon: withCtx(() => [\n createVNode(IconPlus, { size: 20 })\n ]),\n default: withCtx(() => [\n createVNode(unref(NcActionInput), {\n ref_key: \"nameInput\",\n ref: nameInput,\n modelValue: newNodeName.value,\n \"onUpdate:modelValue\": [\n _cache[1] || (_cache[1] = ($event) => newNodeName.value = $event),\n validateInput\n ],\n label: unref(t)(\"New folder\"),\n placeholder: unref(t)(\"New folder name\"),\n onSubmit\n }, {\n icon: withCtx(() => [\n createVNode(IconFolder, { size: 20 })\n ]),\n _: 1\n }, 8, [\"modelValue\", \"label\", \"placeholder\"])\n ]),\n _: 1\n }, 8, [\"open\", \"aria-label\", \"menuName\"])\n ]),\n key: \"0\"\n } : void 0\n ]), 1024);\n };\n }\n});\nconst FilePickerBreadcrumbs = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"__scopeId\", \"data-v-b448b141\"]]);\nconst _sfc_main$3 = {\n name: \"CloseIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$3 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon close-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$2))\n ], 16, _hoisted_1$3);\n}\nconst IconClose = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$1]]);\nconst _sfc_main$2 = {\n name: \"MagnifyIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$2 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon magnify-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$2);\n}\nconst IconMagnify = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render]]);\nfunction useViews(isAnonymous) {\n const allViews = [\n {\n id: \"files\",\n label: t(\"All files\"),\n icon: mdiFolder\n },\n {\n id: \"recent\",\n label: t(\"Recent\"),\n icon: mdiClock\n },\n {\n id: \"favorites\",\n label: t(\"Favorites\"),\n icon: mdiStar\n }\n ];\n const availableViews = isAnonymous.value ? allViews.filter(({ id }) => id === \"files\") : allViews;\n return {\n allViews,\n availableViews\n };\n}\nconst _hoisted_1$1 = {\n key: 0,\n class: \"file-picker__side\"\n};\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"FilePickerNavigation\",\n props: {\n currentView: {},\n filterString: {},\n isCollapsed: { type: Boolean },\n disabledNavigation: { type: Boolean }\n },\n emits: [\"update:currentView\", \"update:filterString\"],\n setup(__props, { emit: __emit }) {\n const props = __props;\n const emit2 = __emit;\n const { availableViews } = useViews(ref(getCurrentUser() === null));\n const currentViewObject = computed(() => availableViews.filter((v) => v.id === props.currentView)[0] ?? availableViews[0]);\n const updateFilterValue = (value) => emit2(\"update:filterString\", value.toString());\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(Fragment, null, [\n createVNode(unref(NcTextField), {\n class: \"file-picker__filter-input\",\n label: unref(t)(\"Filter file list\"),\n showTrailingButton: !!__props.filterString,\n modelValue: __props.filterString,\n \"onUpdate:modelValue\": updateFilterValue,\n onTrailingButtonClick: _cache[0] || (_cache[0] = ($event) => updateFilterValue(\"\"))\n }, {\n \"trailing-button-icon\": withCtx(() => [\n createVNode(IconClose, { size: 16 })\n ]),\n default: withCtx(() => [\n createVNode(IconMagnify, { size: 16 })\n ]),\n _: 1\n }, 8, [\"label\", \"showTrailingButton\", \"modelValue\"]),\n unref(availableViews).length > 1 && !__props.disabledNavigation ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n !__props.isCollapsed ? (openBlock(), createElementBlock(\"ul\", _hoisted_1$1, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(unref(availableViews), (view) => {\n return openBlock(), createElementBlock(\"li\", {\n key: view.id\n }, [\n createVNode(unref(NcButton), {\n variant: __props.currentView === view.id ? \"primary\" : \"tertiary\",\n wide: true,\n onClick: ($event) => _ctx.$emit(\"update:currentView\", view.id)\n }, {\n icon: withCtx(() => [\n createVNode(unref(NcIconSvgWrapper), {\n path: view.icon,\n size: 20\n }, null, 8, [\"path\"])\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(view.label), 1)\n ]),\n _: 2\n }, 1032, [\"variant\", \"onClick\"])\n ]);\n }), 128))\n ])) : (openBlock(), createBlock(unref(NcSelect), {\n key: 1,\n \"aria-label\": unref(t)(\"Current view selector\"),\n clearable: false,\n searchable: false,\n options: unref(availableViews),\n modelValue: currentViewObject.value,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => emit2(\"update:currentView\", $event.id))\n }, null, 8, [\"aria-label\", \"options\", \"modelValue\"]))\n ], 64)) : createCommentVNode(\"\", true)\n ], 64);\n };\n }\n});\nconst FilePickerNavigation = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"__scopeId\", \"data-v-e1c54e23\"]]);\nasync function getRecentNodes({ client, signal }) {\n const lastTwoWeek = Math.round(Date.now() / 1e3) - 60 * 60 * 24 * 14;\n const { data } = await client.search(\"/\", {\n signal,\n details: true,\n data: getRecentSearch(lastTwoWeek)\n });\n return data.results.map((result) => resultToNode(result));\n}\nasync function getNodes({ client, path, signal }) {\n const results = await client.getDirectoryContents(join(defaultRootPath, path), {\n signal,\n details: true,\n includeSelf: true,\n data: getDefaultPropfind()\n });\n const nodes = results.data.map((result) => resultToNode(result));\n return {\n contents: nodes.filter(({ path: nodePath }) => nodePath !== path),\n folder: nodes.find(({ path: nodePath }) => path === nodePath)\n };\n}\nasync function getFile(client, path) {\n const { data } = await client.stat(join(defaultRootPath, path), {\n details: true,\n data: getDefaultPropfind()\n });\n return resultToNode(data);\n}\nfunction useDAVFiles(currentView, currentPath) {\n const client = getClient();\n const files = shallowRef([]);\n const folder = shallowRef(null);\n const isLoading = ref(true);\n let abortController;\n async function createDirectory(name) {\n const path = join(currentPath.value, name);\n await client.createDirectory(join(defaultRootPath, path));\n const directory = await getFile(client, path);\n files.value = [...files.value, directory];\n return directory;\n }\n async function loadDAVFiles() {\n if (abortController) {\n abortController.abort();\n abortController = void 0;\n }\n abortController = new AbortController();\n isLoading.value = true;\n try {\n if (currentView.value === \"favorites\") {\n files.value = await getFavoriteNodes({ client, path: currentPath.value, signal: abortController.signal });\n folder.value = null;\n } else if (currentView.value === \"recent\") {\n files.value = await getRecentNodes({ client, signal: abortController.signal });\n folder.value = null;\n } else {\n const content = await getNodes({ client, path: currentPath.value, signal: abortController.signal });\n folder.value = content.folder;\n files.value = content.contents;\n }\n } catch (error) {\n if (error instanceof Error && error.name === \"AbortError\") {\n return;\n }\n throw error;\n } finally {\n abortController = void 0;\n isLoading.value = false;\n }\n }\n watch([currentView, currentPath], () => loadDAVFiles());\n onMounted(() => loadDAVFiles());\n return {\n isLoading,\n files,\n folder,\n loadFiles: loadDAVFiles,\n createDirectory\n };\n}\nfunction useMimeFilter(allowedMIMETypes) {\n const splittedTypes = computed(() => allowedMIMETypes.value.map((filter) => filter.split(\"/\")));\n const isSupportedMimeType = (mime) => {\n const mimeTypeArray = mime.split(\"/\");\n return splittedTypes.value.some(([type, subtype]) => (\n // check mime type matches or is wildcard\n (mimeTypeArray[0] === type || type === \"*\") && (mimeTypeArray[1] === subtype || subtype === \"*\")\n ));\n };\n return {\n isSupportedMimeType\n };\n}\nconst _hoisted_1 = { class: \"file-picker__main\" };\nconst _hoisted_2 = {\n key: 1,\n class: \"file-picker__view\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"FilePicker\",\n props: {\n buttons: {},\n name: {},\n allowPickDirectory: { type: Boolean, default: false },\n noMenu: { type: Boolean, default: false },\n disabledNavigation: { type: Boolean, default: false },\n filterFn: { type: Function, default: void 0 },\n canPickFn: { type: Function, default: void 0 },\n mimetypeFilter: { default: () => [] },\n multiselect: { type: Boolean, default: false },\n path: { default: void 0 }\n },\n emits: [\"close\"],\n setup(__props, { emit: __emit }) {\n const props = __props;\n const emit$1 = __emit;\n const isOpen = ref(true);\n const currentView = ref(\"files\");\n const savedPath = ref(window?.sessionStorage.getItem(\"NC.FilePicker.LastPath\") || \"/\");\n const navigatedPath = ref(\"\");\n const currentPath = computed({\n get: () => {\n return currentView.value === \"files\" ? navigatedPath.value || props.path || savedPath.value : \"/\";\n },\n set: (path) => {\n navigatedPath.value = path;\n }\n });\n const selectedFiles = shallowRef([]);\n const filterString = ref(\"\");\n const {\n files,\n folder: currentFolder,\n isLoading,\n loadFiles,\n createDirectory\n } = useDAVFiles(currentView, currentPath);\n watch([navigatedPath], () => {\n if (props.path === void 0 && navigatedPath.value) {\n window.sessionStorage.setItem(\"NC.FilePicker.LastPath\", navigatedPath.value);\n }\n selectedFiles.value = [];\n filterString.value = \"\";\n });\n let isHandlingCallback = false;\n const dialogButtons = computed(() => {\n const nodes = selectedFiles.value.length === 0 && props.allowPickDirectory && currentFolder.value ? [currentFolder.value] : selectedFiles.value;\n const buttons = typeof props.buttons === \"function\" ? props.buttons(nodes, currentPath.value, currentView.value) : props.buttons;\n return buttons.map((button) => ({\n ...button,\n disabled: button.disabled || isLoading.value,\n callback: () => {\n isHandlingCallback = true;\n handleButtonClick(button.callback, nodes);\n }\n }));\n });\n async function handleButtonClick(callback, nodes) {\n await callback(nodes);\n emit$1(\"close\", nodes);\n isHandlingCallback = false;\n }\n const viewHeadline = computed(() => currentView.value === \"favorites\" ? t(\"Favorites\") : currentView.value === \"recent\" ? t(\"Recent\") : \"\");\n const { isSupportedMimeType } = useMimeFilter(toRef(props, \"mimetypeFilter\"));\n onMounted(() => loadFiles());\n const { showHiddenFiles } = useFilesSettings();\n const filteredFiles = computed(() => {\n let filtered = files.value;\n if (!showHiddenFiles.value) {\n filtered = filtered.filter((file) => !file.basename.startsWith(\".\"));\n }\n if (props.mimetypeFilter.length > 0) {\n filtered = filtered.filter((file) => file.type === \"folder\" || file.mime && isSupportedMimeType(file.mime));\n }\n if (filterString.value) {\n filtered = filtered.filter((file) => file.basename.toLowerCase().includes(filterString.value.toLowerCase()));\n }\n if (props.filterFn) {\n filtered = filtered.filter((f) => props.filterFn(f));\n }\n return filtered;\n });\n const noFilesDescription = computed(() => {\n if (currentView.value === \"files\") {\n return t(\"Upload some content or sync with your devices!\");\n } else if (currentView.value === \"recent\") {\n return t(\"Files and folders you recently modified will show up here.\");\n } else {\n return t(\"Files and folders you mark as favorite will show up here.\");\n }\n });\n async function onCreateFolder(name) {\n try {\n const folder = await createDirectory(name);\n navigatedPath.value = folder.path;\n emit(\"files:node:created\", files.value.filter((file) => file.basename === name)[0]);\n } catch (error) {\n logger.warn(\"Could not create new folder\", { name, error });\n showError(t(\"Could not create the new folder\"));\n }\n }\n function handleClose(open) {\n if (!open && !isHandlingCallback) {\n emit$1(\"close\");\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcDialog), {\n open: isOpen.value,\n \"onUpdate:open\": [\n _cache[6] || (_cache[6] = ($event) => isOpen.value = $event),\n handleClose\n ],\n buttons: dialogButtons.value,\n name: __props.name,\n size: \"large\",\n contentClasses: \"file-picker__content\",\n dialogClasses: \"file-picker\",\n navigationClasses: \"file-picker__navigation\"\n }, {\n navigation: withCtx(({ isCollapsed }) => [\n createVNode(FilePickerNavigation, {\n currentView: currentView.value,\n \"onUpdate:currentView\": _cache[0] || (_cache[0] = ($event) => currentView.value = $event),\n filterString: filterString.value,\n \"onUpdate:filterString\": _cache[1] || (_cache[1] = ($event) => filterString.value = $event),\n isCollapsed,\n disabledNavigation: __props.disabledNavigation\n }, null, 8, [\"currentView\", \"filterString\", \"isCollapsed\", \"disabledNavigation\"])\n ]),\n default: withCtx(() => [\n createElementVNode(\"div\", _hoisted_1, [\n currentView.value === \"files\" ? (openBlock(), createBlock(FilePickerBreadcrumbs, {\n key: 0,\n path: currentPath.value,\n \"onUpdate:path\": _cache[2] || (_cache[2] = ($event) => currentPath.value = $event),\n showMenu: !__props.noMenu,\n onCreateNode: onCreateFolder\n }, null, 8, [\"path\", \"showMenu\"])) : (openBlock(), createElementBlock(\"div\", _hoisted_2, [\n createElementVNode(\"h3\", null, toDisplayString(viewHeadline.value), 1)\n ])),\n unref(isLoading) || filteredFiles.value.length > 0 ? (openBlock(), createBlock(FileList, {\n key: 2,\n path: currentPath.value,\n \"onUpdate:path\": [\n _cache[3] || (_cache[3] = ($event) => currentPath.value = $event),\n _cache[5] || (_cache[5] = ($event) => currentView.value = \"files\")\n ],\n selectedFiles: selectedFiles.value,\n \"onUpdate:selectedFiles\": _cache[4] || (_cache[4] = ($event) => selectedFiles.value = $event),\n allowPickDirectory: __props.allowPickDirectory,\n currentView: currentView.value,\n files: filteredFiles.value,\n multiselect: __props.multiselect,\n loading: unref(isLoading),\n name: viewHeadline.value,\n canPick: __props.canPickFn\n }, null, 8, [\"path\", \"selectedFiles\", \"allowPickDirectory\", \"currentView\", \"files\", \"multiselect\", \"loading\", \"name\", \"canPick\"])) : filterString.value ? (openBlock(), createBlock(unref(NcEmptyContent), {\n key: 3,\n name: unref(t)(\"No matching files\"),\n description: unref(t)(\"No files matching your filter were found.\")\n }, {\n icon: withCtx(() => [\n createVNode(IconFile)\n ]),\n _: 1\n }, 8, [\"name\", \"description\"])) : (openBlock(), createBlock(unref(NcEmptyContent), {\n key: 4,\n name: unref(t)(\"No files in here\"),\n description: noFilesDescription.value\n }, {\n icon: withCtx(() => [\n createVNode(IconFile)\n ]),\n _: 1\n }, 8, [\"name\", \"description\"]))\n ])\n ]),\n _: 1\n }, 8, [\"open\", \"buttons\", \"name\"]);\n };\n }\n});\nconst FilePicker = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-4f89ed79\"]]);\nexport {\n FilePicker as default\n};\n//# sourceMappingURL=FilePicker-DWYoSaVg.mjs.map\n"],"names":["_sfc_main$1","_hoisted_1$1","_hoisted_2","_hoisted_3","_hoisted_4","_sfc_render$1","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","mergeProps","$event","createElementVNode","toDisplayString","createCommentVNode","ChevronRight","_export_sfc","_sfc_main","NcActions","NcButton","crumbId","createElementId","open","e","_hoisted_1","_sfc_render","_component_NcButton","resolveComponent","_component_NcActions","_component_ChevronRight","normalizeClass","withModifiers","args","createBlock","createSlots","withCtx","renderSlot","createTextVNode","createVNode","NcBreadcrumb","IconFolder","crumbClass","NcActionButton","NcActionRouter","NcActionLink","debounce","subscribe","unsubscribe","nrCrumbs","hiddenIndices","availableWidth","totalWidth","overflow","i","startIndex","currentIndex","a","b","width","crumb","index","el","isLast","hide","w","path","disabled","crumbs","target","vnode","breadcrumbs","Fragment","child","cloneVNode","breadcrumbsRefs","crumb2","h","to","href","disableDrop","name","propsToForward","element","folderIcon","wrapper","isSlotPopulated","NcBreadcrumbs","queue","PQueue","preloadImage","url","resolve","promise","image","getPreviewURL","node","options","previewUrl","generateUrl","usePreviewURL","previewURL","ref","previewLoaded","watchEffect","toValue","FileType","success","sfc","props","key","val","_sfc_main$e","_hoisted_1$c","_hoisted_2$b","_hoisted_3$a","_hoisted_4$a","_sfc_render$7","IconFile","_sfc_main$d","_hoisted_1$b","_hoisted_2$a","_hoisted_3$9","_hoisted_4$9","_sfc_render$6","IconSortDescending","_sfc_main$c","_hoisted_1$a","_hoisted_2$9","_hoisted_3$8","_hoisted_4$8","_sfc_render$5","IconSortAscending","_sfc_main$b","_hoisted_1$9","_hoisted_2$8","_hoisted_3$7","_hoisted_4$7","_sfc_render$4","fileListIconStyles","_sfc_main$a","defineComponent","__props","fileListIconStyles$1","toRef","computed","isFile","folderDecorationIcon","mdiKey","mdiTagOutline","shareTypes","type","ShareType","mdiLink","mdiAccountPlus","mdiNetworkOutline","mdiAccountGroupOutline","normalizeStyle","unref","NcIconSvgWrapper","_hoisted_1$8","_hoisted_2$7","_hoisted_3$6","_hoisted_4$6","_hoisted_5$1","_hoisted_6$1","_hoisted_7$1","_sfc_main$9","__emit","emit2","timestamp","fileExtension","extname","displayName","isDirectory","isPickable","isNavigatable","Permission","toggleSelected","handleClick","handleKeyDown","event","toHandlers","NcCheckboxRadioSwitch","t","formatFileSize","NcDateTime","FileListRow","_hoisted_1$7","_hoisted_2$6","_hoisted_3$5","_hoisted_4$5","_sfc_main$8","LoadingTableRow","useFilesSettings","filesUserState","loadState","showHiddenFiles","sortFavoritesFirst","cropImagePreviews","onMounted","isPublicShare","logger","data","axios","error","showError","useFilesViews","currentView","convertOrder","order2","filesViewsState","filesViewConfig","recentViewConfig","favoritesViewConfig","currentConfig","sortBy","order","_hoisted_1$6","_hoisted_2$5","_hoisted_3$4","_hoisted_4$4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_sfc_main$7","mergeModels","useModel","selectedFiles","customSortingConfig","filesAppSorting","sortingConfig","sortByName","sortBySize","sortByModified","toggleSorting","sortedFiles","sortNodes","selectableFiles","file","allSelected","onSelectAll","onNodeSelected","f","onChangeDirectory","dir","skeletonNumber","fileContainer","resize","nextTick","nodes","height","onUnmounted","renderList","FileList","_sfc_main$6","_hoisted_1$5","_hoisted_2$4","_hoisted_3$3","_hoisted_4$3","_sfc_render$3","IconHome","_sfc_main$5","_hoisted_1$4","_hoisted_2$3","_hoisted_3$2","_hoisted_4$2","_sfc_render$2","IconPlus","_sfc_main$4","actionsOpen","newNodeName","nameInput","useTemplateRef","validateInput","input","validity","validateFilename","InvalidFilenameError","InvalidFilenameErrorReason","onSubmit","pathElements","v","elements","NcActionInput","FilePickerBreadcrumbs","_sfc_main$3","_hoisted_1$3","_hoisted_2$2","_hoisted_3$1","_hoisted_4$1","IconClose","_sfc_main$2","_hoisted_1$2","_hoisted_2$1","IconMagnify","useViews","isAnonymous","allViews","mdiFolder","mdiClock","mdiStar","availableViews","id","getCurrentUser","currentViewObject","updateFilterValue","value","NcTextField","NcSelect","view","FilePickerNavigation","getRecentNodes","client","signal","lastTwoWeek","getRecentSearch","result","resultToNode","getNodes","join","defaultRootPath","getDefaultPropfind","nodePath","getFile","useDAVFiles","currentPath","getClient","files","shallowRef","folder","isLoading","abortController","createDirectory","directory","loadDAVFiles","getFavoriteNodes","content","watch","useMimeFilter","allowedMIMETypes","splittedTypes","filter","mime","mimeTypeArray","subtype","emit$1","isOpen","savedPath","navigatedPath","filterString","currentFolder","loadFiles","isHandlingCallback","dialogButtons","button","handleButtonClick","callback","viewHeadline","isSupportedMimeType","filteredFiles","filtered","noFilesDescription","onCreateFolder","emit","handleClose","NcDialog","isCollapsed","NcEmptyContent","FilePicker"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]} \ No newline at end of file diff --git a/dist/FilePicker-DWYoSaVg-DRRVf2iD.chunk.mjs.map.license b/dist/FilePicker-DWYoSaVg-D_Ra0RFa.chunk.mjs.map.license similarity index 100% rename from dist/FilePicker-DWYoSaVg-DRRVf2iD.chunk.mjs.map.license rename to dist/FilePicker-DWYoSaVg-D_Ra0RFa.chunk.mjs.map.license diff --git a/dist/FilesSidebarTab-C3YsEUK4.chunk.mjs b/dist/FilesSidebarTab-uL8sB-Hg.chunk.mjs similarity index 97% rename from dist/FilesSidebarTab-C3YsEUK4.chunk.mjs rename to dist/FilesSidebarTab-uL8sB-Hg.chunk.mjs index d1f0b9787bd..155b36d8970 100644 --- a/dist/FilesSidebarTab-C3YsEUK4.chunk.mjs +++ b/dist/FilesSidebarTab-uL8sB-Hg.chunk.mjs @@ -1,4 +1,4 @@ -import{a as H}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{t as y}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{v as M}from"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import{N}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as S}from"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import{_ as f}from"./public-C1mLBHT3.chunk.mjs";import{o as s,f as r,g as I,t as p,h as d,m as h,r as c,ah as z,L,k as m,F as C,c as _,w as g,B as O,j as B,y as F,b as $,v as q}from"./Web-BwmPK40i.chunk.mjs";import{C as P,a as v}from"./CommentView-sS3KT9Kn.chunk.mjs";import{l as b}from"./activity-CgsVnLJG.chunk.mjs";import{c as j,g as U,D as w}from"./GetComments-BEnDgTs6.chunk.mjs";const E={name:"AlertCircleOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Z=["aria-hidden","aria-label"],G=["fill","width","height"],J={d:"M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z"},K={key:0};function Q(t,o,e,a,i,n){return s(),r("span",h(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon alert-circle-outline-icon",role:"img",onClick:o[0]||(o[0]=l=>t.$emit("click",l))}),[(s(),r("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[I("path",J,[e.title?(s(),r("title",K,p(e.title),1)):d("",!0)])],8,G))],16,Z)}const W=f(E,[["render",Q]]),X={name:"MessageReplyTextOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Y=["aria-hidden","aria-label"],ee=["fill","width","height"],te={d:"M9 11H18V13H9V11M18 7H6V9H18V7M22 4V22L18 18H4C2.9 18 2 17.11 2 16V4C2 2.9 2.9 2 4 2H20C21.1 2 22 2.89 22 4M20 4H4V16H18.83L20 17.17V4Z"},oe={key:0};function se(t,o,e,a,i,n){return s(),r("span",h(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon message-reply-text-outline-icon",role:"img",onClick:o[0]||(o[0]=l=>t.$emit("click",l))}),[(s(),r("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[I("path",te,[e.title?(s(),r("title",oe,p(e.title),1)):d("",!0)])],8,ee))],16,Y)}const re=f(X,[["render",se]]),ie={name:"RefreshIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ne=["aria-hidden","aria-label"],ae=["fill","width","height"],le={d:"M17.65,6.35C16.2,4.9 14.21,4 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C15.73,20 18.84,17.45 19.73,14H17.65C16.83,16.33 14.61,18 12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.66,6 15.14,6.69 16.22,7.78L13,11H20V4L17.65,6.35Z"},ce={key:0};function me(t,o,e,a,i,n){return s(),r("span",h(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon refresh-icon",role:"img",onClick:o[0]||(o[0]=l=>t.$emit("click",l))}),[(s(),r("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[I("path",le,[e.title?(s(),r("title",ce,p(e.title),1)):d("",!0)])],8,ae))],16,ne)}const de=f(ie,[["render",me]]);function ue(t,o,e){const a=["",t,o].join("/"),i=e.toUTCString();return j.customRequest(a,{method:"PROPPATCH",data:` +import{a as H}from"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import{t as y}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{v as M}from"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import{N}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as S}from"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import{_ as f}from"./public-C1mLBHT3.chunk.mjs";import{o as s,f as r,g as I,t as p,h as d,m as h,r as c,ah as z,L,k as m,F as C,c as _,w as g,B as O,j as B,y as F,b as $,v as q}from"./Web-BwmPK40i.chunk.mjs";import{C as P,a as v}from"./CommentView-DhkE9b-A.chunk.mjs";import{l as b}from"./activity-CgsVnLJG.chunk.mjs";import{c as j,g as U,D as w}from"./GetComments-BEnDgTs6.chunk.mjs";const E={name:"AlertCircleOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Z=["aria-hidden","aria-label"],G=["fill","width","height"],J={d:"M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z"},K={key:0};function Q(t,o,e,a,i,n){return s(),r("span",h(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon alert-circle-outline-icon",role:"img",onClick:o[0]||(o[0]=l=>t.$emit("click",l))}),[(s(),r("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[I("path",J,[e.title?(s(),r("title",K,p(e.title),1)):d("",!0)])],8,G))],16,Z)}const W=f(E,[["render",Q]]),X={name:"MessageReplyTextOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Y=["aria-hidden","aria-label"],ee=["fill","width","height"],te={d:"M9 11H18V13H9V11M18 7H6V9H18V7M22 4V22L18 18H4C2.9 18 2 17.11 2 16V4C2 2.9 2.9 2 4 2H20C21.1 2 22 2.89 22 4M20 4H4V16H18.83L20 17.17V4Z"},oe={key:0};function se(t,o,e,a,i,n){return s(),r("span",h(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon message-reply-text-outline-icon",role:"img",onClick:o[0]||(o[0]=l=>t.$emit("click",l))}),[(s(),r("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[I("path",te,[e.title?(s(),r("title",oe,p(e.title),1)):d("",!0)])],8,ee))],16,Y)}const re=f(X,[["render",se]]),ie={name:"RefreshIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ne=["aria-hidden","aria-label"],ae=["fill","width","height"],le={d:"M17.65,6.35C16.2,4.9 14.21,4 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C15.73,20 18.84,17.45 19.73,14H17.65C16.83,16.33 14.61,18 12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.66,6 15.14,6.69 16.22,7.78L13,11H20V4L17.65,6.35Z"},ce={key:0};function me(t,o,e,a,i,n){return s(),r("span",h(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon refresh-icon",role:"img",onClick:o[0]||(o[0]=l=>t.$emit("click",l))}),[(s(),r("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[I("path",le,[e.title?(s(),r("title",ce,p(e.title),1)):d("",!0)])],8,ae))],16,ne)}const de=f(ie,[["render",me]]);function ue(t,o,e){const a=["",t,o].join("/"),i=e.toUTCString();return j.customRequest(a,{method:"PROPPATCH",data:` @@ -8,4 +8,4 @@ import{a as H}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{t as y}from"./tra `})}function pe(t){const o=new AbortController,e=o.signal;return{request:async function(a,i){return await t(a,{signal:e,...i})},abort:()=>o.abort()}}const he={name:"CommentsApp",components:{Comment:v,NcEmptyContent:S,NcButton:N,IconRefresh:de,IconMessageReplyTextOutline:re,IconAlertCircleOutline:W},directives:{elementVisibility:M},mixins:[P],expose:["update"],data(){return{error:"",loading:!1,done:!1,offset:0,comments:[],cancelRequest:()=>{},Comment:v,userData:{}}},computed:{hasComments(){return this.comments.length>0},isFirstLoading(){return this.loading&&this.offset===0}},watch:{resourceId(){this.currentResourceId=this.resourceId}},methods:{t:y,async onVisibilityChange(t){if(t)try{await ue(this.resourceType,this.currentResourceId,new Date)}catch(o){H(o.message||y("comments","Failed to mark comments as read"))}},async update(t){this.currentResourceId=t,this.resetState(),await this.getComments()},onScrollBottomReached(){this.error||this.done||this.loading||this.getComments()},async getComments(){this.cancelRequest("cancel");try{this.loading=!0,this.error="";const{request:t,abort:o}=pe(U);this.cancelRequest=o;const{data:e}=await t({resourceType:this.resourceType,resourceId:this.currentResourceId},{offset:this.offset})||{data:[]};this.logger.debug(`Processed ${e.length} comments`,{comments:e}),e.lengthe.props.id===t);o>-1?this.comments.splice(o,1):b.error("Could not find the deleted comment in the list",{id:t})},resetState(){this.error="",this.loading=!1,this.done=!1,this.offset=0,this.comments=[]}}},ge={key:1},fe={key:2,class:"comments__info icon-loading"},ye={key:3,class:"comments__info"};function Ce(t,o,e,a,i,n){const l=c("Comment"),V=c("IconMessageReplyTextOutline"),k=c("NcEmptyContent"),R=c("IconAlertCircleOutline"),A=c("IconRefresh"),T=c("NcButton"),x=z("element-visibility");return L((s(),r("div",{class:F(["comments",{"icon-loading":n.isFirstLoading}])},[m(l,h(t.editorData,{editor:"",autoComplete:t.autoComplete,resourceType:t.resourceType,userData:i.userData,resourceId:t.currentResourceId,class:"comments__writer",onNew:n.onNewComment}),null,16,["autoComplete","resourceType","userData","resourceId","onNew"]),n.isFirstLoading?d("",!0):(s(),r(C,{key:0},[!n.hasComments&&i.done?(s(),_(k,{key:0,class:"comments__empty",name:n.t("comments","No comments yet, start the conversation!")},{icon:g(()=>[m(V)]),_:1},8,["name"])):(s(),r("ul",ge,[(s(!0),r(C,null,O(i.comments,u=>(s(),_(l,h({key:u.props.id,modelValue:u.props.message,"onUpdate:modelValue":D=>u.props.message=D,tag:"li"},{ref_for:!0},u.props,{autoComplete:t.autoComplete,resourceType:t.resourceType,resourceId:t.currentResourceId,userData:t.genMentionsData(u.props.mentions),class:"comments__list",onDelete:n.onDelete}),null,16,["modelValue","onUpdate:modelValue","autoComplete","resourceType","resourceId","userData","onDelete"]))),128))])),i.loading&&!n.isFirstLoading?(s(),r("div",fe)):n.hasComments&&i.done?(s(),r("div",ye,p(n.t("comments","No more messages")),1)):i.error?(s(),r(C,{key:4},[m(k,{class:"comments__error",name:i.error},{icon:g(()=>[m(R)]),_:1},8,["name"]),m(T,{class:"comments__retry",onClick:n.getComments},{icon:g(()=>[m(A)]),default:g(()=>[B(" "+p(n.t("comments","Retry")),1)]),_:1},8,["onClick"])],64)):d("",!0)],64))],2)),[[x,n.onVisibilityChange]])}const _e=f(he,[["render",Ce],["__scopeId","data-v-2295a278"]]),Ie=$({__name:"FilesSidebarTab",props:{node:{},active:{type:Boolean},folder:{},view:{}},setup(t){const o=t,e=q(()=>o.node?.fileid);return(a,i)=>e.value!==void 0?(s(),_(_e,{key:e.value,resourceId:e.value,resourceType:"files"},null,8,["resourceId"])):d("",!0)}}),He=Object.freeze(Object.defineProperty({__proto__:null,default:Ie},Symbol.toStringTag,{value:"Module"}));export{_e as C,He as F}; -//# sourceMappingURL=FilesSidebarTab-C3YsEUK4.chunk.mjs.map +//# sourceMappingURL=FilesSidebarTab-uL8sB-Hg.chunk.mjs.map diff --git a/dist/FilesSidebarTab-C3YsEUK4.chunk.mjs.license b/dist/FilesSidebarTab-uL8sB-Hg.chunk.mjs.license similarity index 100% rename from dist/FilesSidebarTab-C3YsEUK4.chunk.mjs.license rename to dist/FilesSidebarTab-uL8sB-Hg.chunk.mjs.license diff --git a/dist/FilesSidebarTab-C3YsEUK4.chunk.mjs.map b/dist/FilesSidebarTab-uL8sB-Hg.chunk.mjs.map similarity index 99% rename from dist/FilesSidebarTab-C3YsEUK4.chunk.mjs.map rename to dist/FilesSidebarTab-uL8sB-Hg.chunk.mjs.map index 6e5d3d21424..321f5bf5199 100644 --- a/dist/FilesSidebarTab-C3YsEUK4.chunk.mjs.map +++ b/dist/FilesSidebarTab-uL8sB-Hg.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"FilesSidebarTab-C3YsEUK4.chunk.mjs","sources":["../node_modules/vue-material-design-icons/AlertCircleOutline.vue","../node_modules/vue-material-design-icons/MessageReplyTextOutline.vue","../node_modules/vue-material-design-icons/Refresh.vue","../build/frontend/apps/comments/src/services/ReadComments.ts","../build/frontend/apps/comments/src/utils/cancelableRequest.ts","../build/frontend/apps/comments/src/views/CommentsApp.vue","../build/frontend/apps/comments/src/views/FilesSidebarTab.vue"],"sourcesContent":["\n\n","\n\n","\n\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { Response } from 'webdav'\n\nimport client from './DavClient.ts'\n\n/**\n * Mark comments older than the date timestamp as read\n *\n * @param resourceType the resource type\n * @param resourceId the resource ID\n * @param date the date object\n */\nexport function markCommentsAsRead(\n\tresourceType: string,\n\tresourceId: number,\n\tdate: Date,\n): Promise {\n\tconst resourcePath = ['', resourceType, resourceId].join('/')\n\tconst readMarker = date.toUTCString()\n\n\treturn client.customRequest(resourcePath, {\n\t\tmethod: 'PROPPATCH',\n\t\tdata: `\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${readMarker}\n\t\t\t\t\n\t\t\t\n\t\t\t`,\n\t})\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Creates a cancelable axios 'request object'.\n *\n * @param request the axios promise request\n * @return\n */\nfunction cancelableRequest(request: (url: string, options?: Record) => Promise) {\n\tconst controller = new AbortController()\n\tconst signal = controller.signal\n\n\t/**\n\t * Execute the request\n\t *\n\t * @param url the url to send the request to\n\t * @param [options] optional config for the request\n\t */\n\tconst fetch = async function(url: string, options?: Record) {\n\t\tconst response = await request(\n\t\t\turl,\n\t\t\t{ signal, ...options },\n\t\t)\n\t\treturn response\n\t}\n\n\treturn {\n\t\trequest: fetch,\n\t\tabort: () => controller.abort(),\n\t}\n}\n\nexport default cancelableRequest\n","\n\n\n\n\n\n\n","\n\n\n\n\n"],"names":["_sfc_main","_hoisted_3","_createElementBlock","_mergeProps","_ctx","$props","_cache","$event","_createElementVNode","_openBlock","markCommentsAsRead","resourceType","resourceId","date","resourcePath","readMarker","client","cancelableRequest","request","controller","signal","url","options","Comment","NcEmptyContent","NcButton","IconRefresh","IconMessageReplyTextOutline","IconAlertCircleOutline","elementVisibility","CommentView","t","isVisible","e","showError","abort","getComments","comments","DEFAULT_LIMIT","comment","error","logger","id","index","_normalizeClass","$options","_createVNode","_component_Comment","$data","_Fragment","_createBlock","_component_NcEmptyContent","_component_IconMessageReplyTextOutline","_hoisted_1","_renderList","_hoisted_2","_toDisplayString","_component_IconAlertCircleOutline","_component_NcButton","_component_IconRefresh","_createTextVNode","props","__props","computed","CommentsApp"],"mappings":"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","x_google_ignoreList":[0,1,2]} \ No newline at end of file +{"version":3,"file":"FilesSidebarTab-uL8sB-Hg.chunk.mjs","sources":["../node_modules/vue-material-design-icons/AlertCircleOutline.vue","../node_modules/vue-material-design-icons/MessageReplyTextOutline.vue","../node_modules/vue-material-design-icons/Refresh.vue","../build/frontend/apps/comments/src/services/ReadComments.ts","../build/frontend/apps/comments/src/utils/cancelableRequest.ts","../build/frontend/apps/comments/src/views/CommentsApp.vue","../build/frontend/apps/comments/src/views/FilesSidebarTab.vue"],"sourcesContent":["\n\n","\n\n","\n\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { Response } from 'webdav'\n\nimport client from './DavClient.ts'\n\n/**\n * Mark comments older than the date timestamp as read\n *\n * @param resourceType the resource type\n * @param resourceId the resource ID\n * @param date the date object\n */\nexport function markCommentsAsRead(\n\tresourceType: string,\n\tresourceId: number,\n\tdate: Date,\n): Promise {\n\tconst resourcePath = ['', resourceType, resourceId].join('/')\n\tconst readMarker = date.toUTCString()\n\n\treturn client.customRequest(resourcePath, {\n\t\tmethod: 'PROPPATCH',\n\t\tdata: `\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${readMarker}\n\t\t\t\t\n\t\t\t\n\t\t\t`,\n\t})\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Creates a cancelable axios 'request object'.\n *\n * @param request the axios promise request\n * @return\n */\nfunction cancelableRequest(request: (url: string, options?: Record) => Promise) {\n\tconst controller = new AbortController()\n\tconst signal = controller.signal\n\n\t/**\n\t * Execute the request\n\t *\n\t * @param url the url to send the request to\n\t * @param [options] optional config for the request\n\t */\n\tconst fetch = async function(url: string, options?: Record) {\n\t\tconst response = await request(\n\t\t\turl,\n\t\t\t{ signal, ...options },\n\t\t)\n\t\treturn response\n\t}\n\n\treturn {\n\t\trequest: fetch,\n\t\tabort: () => controller.abort(),\n\t}\n}\n\nexport default cancelableRequest\n","\n\n\n\n\n\n\n","\n\n\n\n\n"],"names":["_sfc_main","_hoisted_3","_createElementBlock","_mergeProps","_ctx","$props","_cache","$event","_createElementVNode","_openBlock","markCommentsAsRead","resourceType","resourceId","date","resourcePath","readMarker","client","cancelableRequest","request","controller","signal","url","options","Comment","NcEmptyContent","NcButton","IconRefresh","IconMessageReplyTextOutline","IconAlertCircleOutline","elementVisibility","CommentView","t","isVisible","e","showError","abort","getComments","comments","DEFAULT_LIMIT","comment","error","logger","id","index","_normalizeClass","$options","_createVNode","_component_Comment","$data","_Fragment","_createBlock","_component_NcEmptyContent","_component_IconMessageReplyTextOutline","_hoisted_1","_renderList","_hoisted_2","_toDisplayString","_component_IconAlertCircleOutline","_component_NcButton","_component_IconRefresh","_createTextVNode","props","__props","computed","CommentsApp"],"mappings":"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","x_google_ignoreList":[0,1,2]} \ No newline at end of file diff --git a/dist/FilesSidebarTab-C3YsEUK4.chunk.mjs.map.license b/dist/FilesSidebarTab-uL8sB-Hg.chunk.mjs.map.license similarity index 100% rename from dist/FilesSidebarTab-C3YsEUK4.chunk.mjs.map.license rename to dist/FilesSidebarTab-uL8sB-Hg.chunk.mjs.map.license diff --git a/dist/FilesVersionsSidebarTab-Dy1jRbse.chunk.mjs b/dist/FilesVersionsSidebarTab-DnlxLRCh.chunk.mjs similarity index 99% rename from dist/FilesVersionsSidebarTab-Dy1jRbse.chunk.mjs rename to dist/FilesVersionsSidebarTab-DnlxLRCh.chunk.mjs index 9a0dfe6b694..1a82fffe18b 100644 --- a/dist/FilesVersionsSidebarTab-Dy1jRbse.chunk.mjs +++ b/dist/FilesVersionsSidebarTab-DnlxLRCh.chunk.mjs @@ -1,4 +1,4 @@ -import{d as j,a as Y}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{a as B,q as te,g as se,b as G,h as oe,j as ne,n as re,f as T}from"./index-B-dGqfIG.chunk.mjs";import{t as c,b as O}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{c as ae}from"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import{D as le,N as ce}from"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{f as de}from"./index-BDagnpAU.chunk.mjs";import{_ as E,l as ue}from"./public-C1mLBHT3.chunk.mjs";import{N as I,P as ve}from"./PencilOutline-CJ2aSuY5.chunk.mjs";import{N as me,_ as pe}from"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import{N as fe}from"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import{D as he,N as ge,s as be}from"./TrayArrowDown-BI3qCRD6.chunk.mjs";import{o as a,f as m,g as C,t as _,h as y,m as Q,b as P,l as $,c as H,w as h,u as d,j as D,k as S,v as g,G as J,p as ye,H as X,i as M,Q as ee,z as we,F as _e,B as Ce}from"./Web-BwmPK40i.chunk.mjs";import{P as Z}from"./folder-29HuacU_-Joa_bkj_.chunk.mjs";import{N as ke}from"./index-BW4M2n71.chunk.mjs";import{_ as Ve}from"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import{c as Se}from"./index-BLNGy7h5.chunk.mjs";import{g as He}from"./dav-CGJ67RGS.chunk.mjs";import{w as ze}from"./index-DlyLvrtV.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";import"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import"./index-BYnFfAmz.chunk.mjs";const Le={name:"BackupRestoreIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ae=["aria-hidden","aria-label"],$e=["fill","width","height"],xe={d:"M12,3A9,9 0 0,0 3,12H0L4,16L8,12H5A7,7 0 0,1 12,5A7,7 0 0,1 19,12A7,7 0 0,1 12,19C10.5,19 9.09,18.5 7.94,17.7L6.5,19.14C8.04,20.3 9.94,21 12,21A9,9 0 0,0 21,12A9,9 0 0,0 12,3M14,12A2,2 0 0,0 12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12Z"},Ee={key:0};function De(e,t,i,n,v,r){return a(),m("span",Q(e.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon backup-restore-icon",role:"img",onClick:t[0]||(t[0]=l=>e.$emit("click",l))}),[(a(),m("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[C("path",xe,[i.title?(a(),m("title",Ee,_(i.title),1)):y("",!0)])],8,$e))],16,Ae)}const Ne=E(Le,[["render",De]]),Te={name:"FileCompareIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ie=["aria-hidden","aria-label"],Me=["fill","width","height"],Be={d:"M10,18H6V16H10V18M10,14H6V12H10V14M10,1V2H6C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H10V23H12V1H10M20,8V20C20,21.11 19.11,22 18,22H14V20H18V11H14V9H18.5L14,4.5V2L20,8M16,14H14V12H16V14M16,18H14V16H16V18Z"},Oe={key:0};function Pe(e,t,i,n,v,r){return a(),m("span",Q(e.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon file-compare-icon",role:"img",onClick:t[0]||(t[0]=l=>e.$emit("click",l))}),[(a(),m("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[C("path",Be,[i.title?(a(),m("title",Oe,_(i.title),1)):y("",!0)])],8,Me))],16,Ie)}const Re=E(Te,[["render",Pe]]),Fe={name:"ImageOffOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ue=["aria-hidden","aria-label"],qe=["fill","width","height"],Ke={d:"M22 20.7L3.3 2L2 3.3L3 4.3V19C3 20.1 3.9 21 5 21H19.7L20.7 22L22 20.7M5 19V6.3L12.6 13.9L11.1 15.8L9 13.1L6 17H15.7L17.7 19H5M8.8 5L6.8 3H19C20.1 3 21 3.9 21 5V17.2L19 15.2V5H8.8"},We={key:0};function je(e,t,i,n,v,r){return a(),m("span",Q(e.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon image-off-outline-icon",role:"img",onClick:t[0]||(t[0]=l=>e.$emit("click",l))}),[(a(),m("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[C("path",Ke,[i.title?(a(),m("title",We,_(i.title),1)):y("",!0)])],8,qe))],16,Ue)}const Ye=E(Fe,[["render",je]]),Ze={key:0,class:"version__image"},Ge=["src"],Je={key:2,class:"version__image"},Qe={class:"version__info"},Xe=["title"],ei={key:1,class:"version__info","data-cy-files-version-author-name":""},ii={key:0},ti=["title"],si={class:"version__info version__info__subline"},oi=P({__name:"VersionEntry",props:{version:{},node:{},isCurrent:{type:Boolean},isFirstVersion:{type:Boolean},loadPreview:{type:Boolean},canView:{type:Boolean},canCompare:{type:Boolean}},emits:["click","compare","restore","delete","labelUpdateRequest"],setup(e,{emit:t}){const i=e,n=t,v=$(!1),r=$(!1),l=$(ue("core","capabilities",{files:{version_labeling:!1,version_deletion:!1}})),k=g(()=>de(i.version.size)),f=g(()=>{const p=i.version.label??"";return i.isCurrent?p===""?c("files_versions","Current version"):`${p} (${c("files_versions","Current version")})`:i.isFirstVersion&&p===""?c("files_versions","Initial version"):p}),w=g(()=>!i.version.author||!i.version.authorName?"":i.version.author===B()?.uid?c("files_versions","You"):i.version.authorName??i.version.author),o=g(()=>new Date(i.version.mtime).toLocaleString([O(),O().split("-")[0]],{timeStyle:"long",dateStyle:"long"})),V=g(()=>i.isCurrent?i.node.source:te()+i.version.url),A=g(()=>l.value.files.version_labeling===!0),z=g(()=>l.value.files.version_deletion===!0),F=g(()=>b(i.node,Z.DELETE)),N=g(()=>b(i.node,Z.UPDATE)),U=g(()=>!((i.node.permissions&Z.READ)===0||i.node.attributes["mount-type"]==="shared"&&i.node.attributes["share-attributes"]&&(JSON.parse(i.node.attributes["share-attributes"]).find(p=>p.scope==="permissions"&&p.key==="download")||{})?.value===!1));function q(){n("labelUpdateRequest")}function K(){n("restore",i.version)}async function W(){await J(),await J(),n("delete",i.version)}function s(p){i.canView&&p.preventDefault(),n("click",i.version)}function u(){if(!i.canView)throw new Error("Cannot compare version of this file");n("compare",i.version)}function b(p,L){return(p.permissions&L)!==0}return(p,L)=>(a(),H(d(ge),{class:"version",forceDisplayActions:!0,"actions-aria-label":d(c)("files_versions","Actions for version from {versionHumanExplicitDate}",{versionHumanExplicitDate:o.value}),"data-files-versions-version":e.version.fileVersion,href:V.value,onClick:s},{icon:h(()=>[e.loadPreview||v.value?e.version.previewUrl&&!r.value?(a(),m("img",{key:1,src:e.version.previewUrl,alt:"",decoding:"async",fetchpriority:"low",loading:"lazy",class:"version__image",onLoad:L[0]||(L[0]=ie=>v.value=!0),onError:L[1]||(L[1]=ie=>r.value=!0)},null,40,Ge)):(a(),m("div",Je,[S(Ye,{size:20})])):(a(),m("div",Ze))]),name:h(()=>[C("div",Qe,[f.value?(a(),m("div",{key:0,class:"version__info__label","data-cy-files-version-label":"",title:f.value},_(f.value),9,Xe)):y("",!0),w.value?(a(),m("div",ei,[f.value?(a(),m("span",ii,"•")):y("",!0),S(d(fe),{class:"avatar",user:e.version.author??void 0,size:20,disableMenu:"",disableTooltip:"",hideStatus:""},null,8,["user"]),C("div",{class:"version__info__author_name",title:w.value},_(w.value),9,ti)])):y("",!0)])]),subname:h(()=>[C("div",si,[S(d(pe),{class:"version__info__date",relativeTime:"short",timestamp:e.version.mtime},null,8,["timestamp"]),L[2]||(L[2]=C("span",null,"•",-1)),C("span",null,_(k.value),1)])]),actions:h(()=>[A.value&&N.value?(a(),H(d(I),{key:0,"data-cy-files-versions-version-action":"label",closeAfterClick:!0,onClick:q},{icon:h(()=>[S(ve,{size:22})]),default:h(()=>[D(" "+_(e.version.label===""?d(c)("files_versions","Name this version"):d(c)("files_versions","Edit version name")),1)]),_:1})):y("",!0),!e.isCurrent&&e.canView&&e.canCompare?(a(),H(d(I),{key:1,"data-cy-files-versions-version-action":"compare",closeAfterClick:!0,onClick:u},{icon:h(()=>[S(Re,{size:22})]),default:h(()=>[D(" "+_(d(c)("files_versions","Compare to current version")),1)]),_:1})):y("",!0),!e.isCurrent&&N.value?(a(),H(d(I),{key:2,"data-cy-files-versions-version-action":"restore",closeAfterClick:!0,onClick:K},{icon:h(()=>[S(Ne,{size:22})]),default:h(()=>[D(" "+_(d(c)("files_versions","Restore version")),1)]),_:1})):y("",!0),U.value?(a(),H(d(me),{key:3,"data-cy-files-versions-version-action":"download",href:V.value,closeAfterClick:!0,download:V.value},{icon:h(()=>[S(he,{size:22})]),default:h(()=>[D(" "+_(d(c)("files_versions","Download version")),1)]),_:1},8,["href","download"])):y("",!0),!e.isCurrent&&z.value&&F.value?(a(),H(d(I),{key:4,"data-cy-files-versions-version-action":"delete",closeAfterClick:!0,onClick:W},{icon:h(()=>[S(le,{size:22})]),default:h(()=>[D(" "+_(d(c)("files_versions","Delete version")),1)]),_:1})):y("",!0)]),_:1},8,["actions-aria-label","data-files-versions-version","href"]))}}),ni=E(oi,[["__scopeId","data-v-037e7d96"]]),ri={class:"version-label-modal__info"},ai=P({__name:"VersionLabelDialog",props:{open:{type:Boolean,default:!1},label:{type:String,default:""}},emits:["update:open","update:label"],setup(e,{emit:t}){const i=e,n=t,v=ye("labelInput"),r=$(""),l=g(()=>{const f=[];return i.label.trim()===""?f.push({label:c("files_versions","Cancel")}):f.push({label:c("files_versions","Remove version name"),type:"reset",variant:"error",callback:()=>{k("")}}),[...f,{label:c("files_versions","Save version name"),icon:be,type:"submit",variant:"primary"}]});X(()=>{r.value=i.label??""}),X(()=>{i.open&&J(()=>v.value?.focus()),r.value=i.label});function k(f){n("update:label",f)}return(f,w)=>(a(),H(d(ke),{buttons:l.value,contentClasses:"version-label-modal",isForm:"",open:e.open,size:"normal",name:d(c)("files_versions","Name this version"),"onUpdate:open":w[1]||(w[1]=o=>f.$emit("update:open",o)),onSubmit:w[2]||(w[2]=o=>k(r.value))},{default:h(()=>[S(d(Ve),{ref_key:"labelInput",ref:v,modelValue:r.value,"onUpdate:modelValue":w[0]||(w[0]=o=>r.value=o),class:"version-label-modal__input",label:d(c)("files_versions","Version name"),placeholder:d(c)("files_versions","Version name")},null,8,["modelValue","label","placeholder"]),C("p",ri,_(d(c)("files_versions","Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.")),1)]),_:1},8,["buttons","open","name"]))}}),li=E(ai,[["__scopeId","data-v-0955585b"]]),x=se().setApp("files_version").detectUser().build(),ci=P({name:"VirtualScrolling",props:{sections:{type:Array,required:!0},containerElement:{type:HTMLElement,default:null},useWindow:{type:Boolean,default:!1},headerHeight:{type:Number,default:75},renderDistance:{type:Number,default:.5},bottomBufferRatio:{type:Number,default:2},scrollToKey:{type:String,default:""}},emits:["needContent"],data(){return{scrollPosition:0,containerHeight:0,rowsContainerHeight:0,resizeObserver:null}},computed:{visibleSections(){x.debug("[VirtualScrolling] Computing visible section",{sections:this.sections});const e=this.containerHeight,t=this.scrollPosition,i=t+e;let n=0,v=0;const r=this.sections.map(o=>(v+=this.headerHeight,{...o,rows:o.rows.reduce((V,A)=>{n=v,v+=A.height;let z=0;return vi&&(z=(n-i)/e),z>this.renderDistance?V:[...V,{...A,distance:z}]},[])})).filter(o=>o.rows.length>0),l=r.flatMap(({rows:o})=>o).flatMap(({items:o})=>o),k=this._rowIdToKeyMap;l.forEach(o=>o.key=k[o.id]);const f=l.map(({key:o})=>o).filter(o=>o!==void 0),w=Object.values(k).filter(o=>!f.includes(o));return l.filter(({key:o})=>o===void 0).forEach(o=>o.key=w.pop()??Math.random().toString(36).substr(2)),this._rowIdToKeyMap=l.reduce((o,{id:V,key:A})=>({...o,[`${V}`]:A}),{}),r},totalHeight(){return this.sections.map(e=>this.headerHeight+e.height).reduce((e,t)=>e+t,0)+0},paddingTop(){if(this.visibleSections.length===0)return 0;let e=0;for(const t of this.sections){if(t.key!==this.visibleSections[0].rows[0].sectionKey){e+=this.headerHeight+t.height;continue}for(const i of t.rows){if(i.key===this.visibleSections[0].rows[0].key)return e;e+=i.height}e+=this.headerHeight}return e},rowsContainerStyle(){return{height:`${this.totalHeight}px`,paddingTop:`${this.paddingTop}px`}},isNearBottom(){const e=this.containerHeight*this.bottomBufferRatio;return this.scrollPosition+this.containerHeight>=this.totalHeight-e},container(){return x.debug("[VirtualScrolling] Computing container"),this.containerElement!==null?this.containerElement:this.useWindow?window:this.$refs.container}},watch:{isNearBottom(e){x.debug("[VirtualScrolling] isNearBottom changed",{value:e}),e&&this.$emit("needContent")},visibleSections(){this.isNearBottom&&this.$emit("needContent")},scrollToKey(e){let t=0;for(const i of this.sections){if(i.key!==e){t+=this.headerHeight+i.height;continue}break}x.debug("[VirtualScrolling] Scrolling to",{currentRowTopDistanceFromTop:t}),this.container.scrollTo({top:t,behavior:"smooth"})}},beforeCreate(){this._rowIdToKeyMap={}},mounted(){this.resizeObserver=new ResizeObserver(e=>{for(const t of e){const i=t.contentRect;t.target===this.container&&(this.containerHeight=i.height),t.target.classList.contains("vs-rows-container")&&(this.rowsContainerHeight=i.height)}}),this.useWindow?(window.addEventListener("resize",this.updateContainerSize,{passive:!0}),this.containerHeight=window.innerHeight):this.resizeObserver.observe(this.container),this.resizeObserver.observe(this.$refs.rowsContainer),this.container.addEventListener("scroll",this.updateScrollPosition,{passive:!0})},beforeUnmount(){this.useWindow&&window.removeEventListener("resize",this.updateContainerSize),this.resizeObserver?.disconnect(),this.container.removeEventListener("scroll",this.updateScrollPosition)},methods:{updateScrollPosition(){this._onScrollHandle??=requestAnimationFrame(()=>{this._onScrollHandle=null,this.useWindow?this.scrollPosition=this.container.scrollY:this.scrollPosition=this.container.scrollTop})},updateContainerSize(){this.containerHeight=window.innerHeight}}}),di={key:0,ref:"container",class:"vs-container"};function ui(e,t,i,n,v,r){return!e.useWindow&&e.containerElement===null?(a(),m("div",di,[C("div",{ref:"rowsContainer",class:"vs-rows-container",style:ee(e.rowsContainerStyle)},[M(e.$slots,"default",{visibleSections:e.visibleSections},void 0,!0),M(e.$slots,"loader",{},void 0,!0)],4)],512)):(a(),m("div",{key:1,ref:"rowsContainer",class:"vs-rows-container",style:ee(e.rowsContainerStyle)},[M(e.$slots,"default",{visibleSections:e.visibleSections},void 0,!0),M(e.$slots,"loader",{},void 0,!0)],4))}const vi=E(ci,[["render",ui],["__scopeId","data-v-0a27da21"]]),mi=` +import{d as j,a as Y}from"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import{a as B,q as te,g as se,b as G,h as oe,j as ne,n as re,f as T}from"./index-B-dGqfIG.chunk.mjs";import{t as c,b as O}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{c as ae}from"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import{D as le,N as ce}from"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{f as de}from"./index-BDagnpAU.chunk.mjs";import{_ as E,l as ue}from"./public-C1mLBHT3.chunk.mjs";import{N as I,P as ve}from"./PencilOutline-CJ2aSuY5.chunk.mjs";import{N as me,_ as pe}from"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import{N as fe}from"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import{D as he,N as ge,s as be}from"./TrayArrowDown-BI3qCRD6.chunk.mjs";import{o as a,f as m,g as C,t as _,h as y,m as Q,b as P,l as $,c as H,w as h,u as d,j as D,k as S,v as g,G as J,p as ye,H as X,i as M,Q as ee,z as we,F as _e,B as Ce}from"./Web-BwmPK40i.chunk.mjs";import{P as Z}from"./folder-29HuacU_-Joa_bkj_.chunk.mjs";import{N as ke}from"./index-BW4M2n71.chunk.mjs";import{_ as Ve}from"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import{c as Se}from"./index-BLNGy7h5.chunk.mjs";import{g as He}from"./dav-CGJ67RGS.chunk.mjs";import{w as ze}from"./index-DlyLvrtV.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";import"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import"./index-BYnFfAmz.chunk.mjs";const Le={name:"BackupRestoreIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ae=["aria-hidden","aria-label"],$e=["fill","width","height"],xe={d:"M12,3A9,9 0 0,0 3,12H0L4,16L8,12H5A7,7 0 0,1 12,5A7,7 0 0,1 19,12A7,7 0 0,1 12,19C10.5,19 9.09,18.5 7.94,17.7L6.5,19.14C8.04,20.3 9.94,21 12,21A9,9 0 0,0 21,12A9,9 0 0,0 12,3M14,12A2,2 0 0,0 12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12Z"},Ee={key:0};function De(e,t,i,n,v,r){return a(),m("span",Q(e.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon backup-restore-icon",role:"img",onClick:t[0]||(t[0]=l=>e.$emit("click",l))}),[(a(),m("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[C("path",xe,[i.title?(a(),m("title",Ee,_(i.title),1)):y("",!0)])],8,$e))],16,Ae)}const Ne=E(Le,[["render",De]]),Te={name:"FileCompareIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ie=["aria-hidden","aria-label"],Me=["fill","width","height"],Be={d:"M10,18H6V16H10V18M10,14H6V12H10V14M10,1V2H6C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H10V23H12V1H10M20,8V20C20,21.11 19.11,22 18,22H14V20H18V11H14V9H18.5L14,4.5V2L20,8M16,14H14V12H16V14M16,18H14V16H16V18Z"},Oe={key:0};function Pe(e,t,i,n,v,r){return a(),m("span",Q(e.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon file-compare-icon",role:"img",onClick:t[0]||(t[0]=l=>e.$emit("click",l))}),[(a(),m("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[C("path",Be,[i.title?(a(),m("title",Oe,_(i.title),1)):y("",!0)])],8,Me))],16,Ie)}const Re=E(Te,[["render",Pe]]),Fe={name:"ImageOffOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ue=["aria-hidden","aria-label"],qe=["fill","width","height"],Ke={d:"M22 20.7L3.3 2L2 3.3L3 4.3V19C3 20.1 3.9 21 5 21H19.7L20.7 22L22 20.7M5 19V6.3L12.6 13.9L11.1 15.8L9 13.1L6 17H15.7L17.7 19H5M8.8 5L6.8 3H19C20.1 3 21 3.9 21 5V17.2L19 15.2V5H8.8"},We={key:0};function je(e,t,i,n,v,r){return a(),m("span",Q(e.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon image-off-outline-icon",role:"img",onClick:t[0]||(t[0]=l=>e.$emit("click",l))}),[(a(),m("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[C("path",Ke,[i.title?(a(),m("title",We,_(i.title),1)):y("",!0)])],8,qe))],16,Ue)}const Ye=E(Fe,[["render",je]]),Ze={key:0,class:"version__image"},Ge=["src"],Je={key:2,class:"version__image"},Qe={class:"version__info"},Xe=["title"],ei={key:1,class:"version__info","data-cy-files-version-author-name":""},ii={key:0},ti=["title"],si={class:"version__info version__info__subline"},oi=P({__name:"VersionEntry",props:{version:{},node:{},isCurrent:{type:Boolean},isFirstVersion:{type:Boolean},loadPreview:{type:Boolean},canView:{type:Boolean},canCompare:{type:Boolean}},emits:["click","compare","restore","delete","labelUpdateRequest"],setup(e,{emit:t}){const i=e,n=t,v=$(!1),r=$(!1),l=$(ue("core","capabilities",{files:{version_labeling:!1,version_deletion:!1}})),k=g(()=>de(i.version.size)),f=g(()=>{const p=i.version.label??"";return i.isCurrent?p===""?c("files_versions","Current version"):`${p} (${c("files_versions","Current version")})`:i.isFirstVersion&&p===""?c("files_versions","Initial version"):p}),w=g(()=>!i.version.author||!i.version.authorName?"":i.version.author===B()?.uid?c("files_versions","You"):i.version.authorName??i.version.author),o=g(()=>new Date(i.version.mtime).toLocaleString([O(),O().split("-")[0]],{timeStyle:"long",dateStyle:"long"})),V=g(()=>i.isCurrent?i.node.source:te()+i.version.url),A=g(()=>l.value.files.version_labeling===!0),z=g(()=>l.value.files.version_deletion===!0),F=g(()=>b(i.node,Z.DELETE)),N=g(()=>b(i.node,Z.UPDATE)),U=g(()=>!((i.node.permissions&Z.READ)===0||i.node.attributes["mount-type"]==="shared"&&i.node.attributes["share-attributes"]&&(JSON.parse(i.node.attributes["share-attributes"]).find(p=>p.scope==="permissions"&&p.key==="download")||{})?.value===!1));function q(){n("labelUpdateRequest")}function K(){n("restore",i.version)}async function W(){await J(),await J(),n("delete",i.version)}function s(p){i.canView&&p.preventDefault(),n("click",i.version)}function u(){if(!i.canView)throw new Error("Cannot compare version of this file");n("compare",i.version)}function b(p,L){return(p.permissions&L)!==0}return(p,L)=>(a(),H(d(ge),{class:"version",forceDisplayActions:!0,"actions-aria-label":d(c)("files_versions","Actions for version from {versionHumanExplicitDate}",{versionHumanExplicitDate:o.value}),"data-files-versions-version":e.version.fileVersion,href:V.value,onClick:s},{icon:h(()=>[e.loadPreview||v.value?e.version.previewUrl&&!r.value?(a(),m("img",{key:1,src:e.version.previewUrl,alt:"",decoding:"async",fetchpriority:"low",loading:"lazy",class:"version__image",onLoad:L[0]||(L[0]=ie=>v.value=!0),onError:L[1]||(L[1]=ie=>r.value=!0)},null,40,Ge)):(a(),m("div",Je,[S(Ye,{size:20})])):(a(),m("div",Ze))]),name:h(()=>[C("div",Qe,[f.value?(a(),m("div",{key:0,class:"version__info__label","data-cy-files-version-label":"",title:f.value},_(f.value),9,Xe)):y("",!0),w.value?(a(),m("div",ei,[f.value?(a(),m("span",ii,"•")):y("",!0),S(d(fe),{class:"avatar",user:e.version.author??void 0,size:20,disableMenu:"",disableTooltip:"",hideStatus:""},null,8,["user"]),C("div",{class:"version__info__author_name",title:w.value},_(w.value),9,ti)])):y("",!0)])]),subname:h(()=>[C("div",si,[S(d(pe),{class:"version__info__date",relativeTime:"short",timestamp:e.version.mtime},null,8,["timestamp"]),L[2]||(L[2]=C("span",null,"•",-1)),C("span",null,_(k.value),1)])]),actions:h(()=>[A.value&&N.value?(a(),H(d(I),{key:0,"data-cy-files-versions-version-action":"label",closeAfterClick:!0,onClick:q},{icon:h(()=>[S(ve,{size:22})]),default:h(()=>[D(" "+_(e.version.label===""?d(c)("files_versions","Name this version"):d(c)("files_versions","Edit version name")),1)]),_:1})):y("",!0),!e.isCurrent&&e.canView&&e.canCompare?(a(),H(d(I),{key:1,"data-cy-files-versions-version-action":"compare",closeAfterClick:!0,onClick:u},{icon:h(()=>[S(Re,{size:22})]),default:h(()=>[D(" "+_(d(c)("files_versions","Compare to current version")),1)]),_:1})):y("",!0),!e.isCurrent&&N.value?(a(),H(d(I),{key:2,"data-cy-files-versions-version-action":"restore",closeAfterClick:!0,onClick:K},{icon:h(()=>[S(Ne,{size:22})]),default:h(()=>[D(" "+_(d(c)("files_versions","Restore version")),1)]),_:1})):y("",!0),U.value?(a(),H(d(me),{key:3,"data-cy-files-versions-version-action":"download",href:V.value,closeAfterClick:!0,download:V.value},{icon:h(()=>[S(he,{size:22})]),default:h(()=>[D(" "+_(d(c)("files_versions","Download version")),1)]),_:1},8,["href","download"])):y("",!0),!e.isCurrent&&z.value&&F.value?(a(),H(d(I),{key:4,"data-cy-files-versions-version-action":"delete",closeAfterClick:!0,onClick:W},{icon:h(()=>[S(le,{size:22})]),default:h(()=>[D(" "+_(d(c)("files_versions","Delete version")),1)]),_:1})):y("",!0)]),_:1},8,["actions-aria-label","data-files-versions-version","href"]))}}),ni=E(oi,[["__scopeId","data-v-037e7d96"]]),ri={class:"version-label-modal__info"},ai=P({__name:"VersionLabelDialog",props:{open:{type:Boolean,default:!1},label:{type:String,default:""}},emits:["update:open","update:label"],setup(e,{emit:t}){const i=e,n=t,v=ye("labelInput"),r=$(""),l=g(()=>{const f=[];return i.label.trim()===""?f.push({label:c("files_versions","Cancel")}):f.push({label:c("files_versions","Remove version name"),type:"reset",variant:"error",callback:()=>{k("")}}),[...f,{label:c("files_versions","Save version name"),icon:be,type:"submit",variant:"primary"}]});X(()=>{r.value=i.label??""}),X(()=>{i.open&&J(()=>v.value?.focus()),r.value=i.label});function k(f){n("update:label",f)}return(f,w)=>(a(),H(d(ke),{buttons:l.value,contentClasses:"version-label-modal",isForm:"",open:e.open,size:"normal",name:d(c)("files_versions","Name this version"),"onUpdate:open":w[1]||(w[1]=o=>f.$emit("update:open",o)),onSubmit:w[2]||(w[2]=o=>k(r.value))},{default:h(()=>[S(d(Ve),{ref_key:"labelInput",ref:v,modelValue:r.value,"onUpdate:modelValue":w[0]||(w[0]=o=>r.value=o),class:"version-label-modal__input",label:d(c)("files_versions","Version name"),placeholder:d(c)("files_versions","Version name")},null,8,["modelValue","label","placeholder"]),C("p",ri,_(d(c)("files_versions","Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.")),1)]),_:1},8,["buttons","open","name"]))}}),li=E(ai,[["__scopeId","data-v-0955585b"]]),x=se().setApp("files_version").detectUser().build(),ci=P({name:"VirtualScrolling",props:{sections:{type:Array,required:!0},containerElement:{type:HTMLElement,default:null},useWindow:{type:Boolean,default:!1},headerHeight:{type:Number,default:75},renderDistance:{type:Number,default:.5},bottomBufferRatio:{type:Number,default:2},scrollToKey:{type:String,default:""}},emits:["needContent"],data(){return{scrollPosition:0,containerHeight:0,rowsContainerHeight:0,resizeObserver:null}},computed:{visibleSections(){x.debug("[VirtualScrolling] Computing visible section",{sections:this.sections});const e=this.containerHeight,t=this.scrollPosition,i=t+e;let n=0,v=0;const r=this.sections.map(o=>(v+=this.headerHeight,{...o,rows:o.rows.reduce((V,A)=>{n=v,v+=A.height;let z=0;return vi&&(z=(n-i)/e),z>this.renderDistance?V:[...V,{...A,distance:z}]},[])})).filter(o=>o.rows.length>0),l=r.flatMap(({rows:o})=>o).flatMap(({items:o})=>o),k=this._rowIdToKeyMap;l.forEach(o=>o.key=k[o.id]);const f=l.map(({key:o})=>o).filter(o=>o!==void 0),w=Object.values(k).filter(o=>!f.includes(o));return l.filter(({key:o})=>o===void 0).forEach(o=>o.key=w.pop()??Math.random().toString(36).substr(2)),this._rowIdToKeyMap=l.reduce((o,{id:V,key:A})=>({...o,[`${V}`]:A}),{}),r},totalHeight(){return this.sections.map(e=>this.headerHeight+e.height).reduce((e,t)=>e+t,0)+0},paddingTop(){if(this.visibleSections.length===0)return 0;let e=0;for(const t of this.sections){if(t.key!==this.visibleSections[0].rows[0].sectionKey){e+=this.headerHeight+t.height;continue}for(const i of t.rows){if(i.key===this.visibleSections[0].rows[0].key)return e;e+=i.height}e+=this.headerHeight}return e},rowsContainerStyle(){return{height:`${this.totalHeight}px`,paddingTop:`${this.paddingTop}px`}},isNearBottom(){const e=this.containerHeight*this.bottomBufferRatio;return this.scrollPosition+this.containerHeight>=this.totalHeight-e},container(){return x.debug("[VirtualScrolling] Computing container"),this.containerElement!==null?this.containerElement:this.useWindow?window:this.$refs.container}},watch:{isNearBottom(e){x.debug("[VirtualScrolling] isNearBottom changed",{value:e}),e&&this.$emit("needContent")},visibleSections(){this.isNearBottom&&this.$emit("needContent")},scrollToKey(e){let t=0;for(const i of this.sections){if(i.key!==e){t+=this.headerHeight+i.height;continue}break}x.debug("[VirtualScrolling] Scrolling to",{currentRowTopDistanceFromTop:t}),this.container.scrollTo({top:t,behavior:"smooth"})}},beforeCreate(){this._rowIdToKeyMap={}},mounted(){this.resizeObserver=new ResizeObserver(e=>{for(const t of e){const i=t.contentRect;t.target===this.container&&(this.containerHeight=i.height),t.target.classList.contains("vs-rows-container")&&(this.rowsContainerHeight=i.height)}}),this.useWindow?(window.addEventListener("resize",this.updateContainerSize,{passive:!0}),this.containerHeight=window.innerHeight):this.resizeObserver.observe(this.container),this.resizeObserver.observe(this.$refs.rowsContainer),this.container.addEventListener("scroll",this.updateScrollPosition,{passive:!0})},beforeUnmount(){this.useWindow&&window.removeEventListener("resize",this.updateContainerSize),this.resizeObserver?.disconnect(),this.container.removeEventListener("scroll",this.updateScrollPosition)},methods:{updateScrollPosition(){this._onScrollHandle??=requestAnimationFrame(()=>{this._onScrollHandle=null,this.useWindow?this.scrollPosition=this.container.scrollY:this.scrollPosition=this.container.scrollTop})},updateContainerSize(){this.containerHeight=window.innerHeight}}}),di={key:0,ref:"container",class:"vs-container"};function ui(e,t,i,n,v,r){return!e.useWindow&&e.containerElement===null?(a(),m("div",di,[C("div",{ref:"rowsContainer",class:"vs-rows-container",style:ee(e.rowsContainerStyle)},[M(e.$slots,"default",{visibleSections:e.visibleSections},void 0,!0),M(e.$slots,"loader",{},void 0,!0)],4)],512)):(a(),m("div",{key:1,ref:"rowsContainer",class:"vs-rows-container",style:ee(e.rowsContainerStyle)},[M(e.$slots,"default",{visibleSections:e.visibleSections},void 0,!0),M(e.$slots,"loader",{},void 0,!0)],4))}const vi=E(ci,[["render",ui],["__scopeId","data-v-0a27da21"]]),mi=` `})}async function bi(e){await R.deleteFile(e.filename)}const yi={key:0,class:"versions-tab__container"},wi=["aria-label"],Yi=P({__name:"FilesVersionsSidebarTab",props:{active:{type:Boolean},node:{},folder:{},view:{}},setup(e){const t=e,i=ae(),n=$([]),v=$(!1),r=$(!1),l=$(null),k=g(()=>t.node?.mtime?.getTime()??0),f=g(()=>[...n.value].sort((s,u)=>t.node?s.mtime===t.node.mtime?.getTime()?-1:u.mtime===t.node.mtime?.getTime()?1:u.mtime-s.mtime:0)),w=g(()=>[{key:"versions",rows:f.value.map(s=>({key:s.mtime.toString(),height:68,sectionKey:"versions",items:[{id:s.mtime.toString(),version:s}]})),height:68*f.value.length}]),o=g(()=>n.value.map(s=>s.mtime).reduce((s,u)=>Math.min(s,u))),V=g(()=>t.node?window.OCA.Viewer?.mimetypes?.includes(t.node?.mime):!1),A=g(()=>!i.value&&window.OCA.Viewer?.mimetypesCompare?.includes(t.node?.mime));we(()=>t.node.id,z,{immediate:!0}),ze(k,z,{debounce:600});async function z(){try{v.value=!0,n.value=await pi(t.node)}finally{v.value=!1}}async function F(s){if(!t.node)return;const u=t.node.clone();u.attributes.etag=s.etag,u.size=s.size,u.mtime=new Date(s.mtime);const b={preventDefault:!1,node:u,version:s};if(T("files_versions:restore:requested",b),!b.preventDefault)try{await fi(s),s.label?j(c("files_versions",`${s.label} restored`)):s.mtime===o.value?j(c("files_versions","Initial version restored")):j(c("files_versions","Version restored")),T("files:node:updated",u),T("files_versions:restore:restored",{node:u,version:s})}catch{Y(c("files_versions","Could not restore version")),T("files_versions:restore:failed",s)}}function N(s){r.value=!0,l.value=s}async function U(s){if(l.value===null)throw new Error("editedVersion should be set at that point");const u=l.value.label;l.value.label=s,r.value=!1;try{await gi(l.value,s),l.value=null}catch(b){l.value.label=u,Y(c("files_versions","Could not set version label")),x.error("Could not set version label",{exception:b})}}async function q(s){const u=n.value.indexOf(s);n.value.splice(u,1);try{await bi(s)}catch{n.value.push(s),Y(c("files_versions","Could not delete version"))}}function K(s){if(t.node!==null){if(s.mtime===t.node?.mtime?.getTime()){window.OCA.Viewer.open({path:t.node.path});return}window.OCA.Viewer.open({fileInfo:{...s,filename:s.filename,previewUrl:void 0},enableSidebar:!1})}}function W(s){const u=n.value.map(b=>({...b,previewUrl:void 0}));window.OCA.Viewer.compare({path:t.node.path},u.find(b=>b.source===s.source))}return(s,u)=>e.node?(a(),m("div",yi,[S(vi,{sections:w.value,headerHeight:0},{default:h(({visibleSections:b})=>[C("ul",{"aria-label":d(c)("files_versions","File versions"),"data-files-versions-versions-list":""},[b.length===1?(a(!0),m(_e,{key:0},Ce(b[0].rows,p=>(a(),H(ni,{key:p.items[0].version.mtime,canView:V.value,canCompare:A.value,loadPreview:e.active,version:p.items[0].version,node:e.node,isCurrent:p.items[0].version.mtime===k.value,isFirstVersion:p.items[0].version.mtime===o.value,onClick:K,onCompare:W,onRestore:F,onLabelUpdateRequest:L=>N(p.items[0].version),onDelete:q},null,8,["canView","canCompare","loadPreview","version","node","isCurrent","isFirstVersion","onLabelUpdateRequest"]))),128)):y("",!0)],8,wi)]),loader:h(()=>[v.value?(a(),H(d(ce),{key:0,class:"files-list-viewer__loader"})):y("",!0)]),_:1},8,["sections"]),l.value?(a(),H(li,{key:0,open:r.value,"onUpdate:open":u[0]||(u[0]=b=>r.value=b),label:l.value.label,"onUpdate:label":U},null,8,["open","label"])):y("",!0)])):y("",!0)}});export{Yi as default}; -//# sourceMappingURL=FilesVersionsSidebarTab-Dy1jRbse.chunk.mjs.map +//# sourceMappingURL=FilesVersionsSidebarTab-DnlxLRCh.chunk.mjs.map diff --git a/dist/FilesVersionsSidebarTab-Dy1jRbse.chunk.mjs.license b/dist/FilesVersionsSidebarTab-DnlxLRCh.chunk.mjs.license similarity index 100% rename from dist/FilesVersionsSidebarTab-Dy1jRbse.chunk.mjs.license rename to dist/FilesVersionsSidebarTab-DnlxLRCh.chunk.mjs.license diff --git a/dist/FilesVersionsSidebarTab-Dy1jRbse.chunk.mjs.map b/dist/FilesVersionsSidebarTab-DnlxLRCh.chunk.mjs.map similarity index 99% rename from dist/FilesVersionsSidebarTab-Dy1jRbse.chunk.mjs.map rename to dist/FilesVersionsSidebarTab-DnlxLRCh.chunk.mjs.map index 2b73f57b462..dd20a1d8b12 100644 --- a/dist/FilesVersionsSidebarTab-Dy1jRbse.chunk.mjs.map +++ b/dist/FilesVersionsSidebarTab-DnlxLRCh.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"FilesVersionsSidebarTab-Dy1jRbse.chunk.mjs","sources":["../node_modules/vue-material-design-icons/BackupRestore.vue","../node_modules/vue-material-design-icons/FileCompare.vue","../node_modules/vue-material-design-icons/ImageOffOutline.vue","../build/frontend/apps/files_versions/src/components/VersionEntry.vue","../build/frontend/apps/files_versions/src/components/VersionLabelDialog.vue","../build/frontend/apps/files_versions/src/utils/logger.ts","../build/frontend/apps/files_versions/src/components/VirtualScrolling.vue","../build/frontend/apps/files_versions/src/utils/davRequest.ts","../build/frontend/apps/files_versions/src/utils/versions.ts","../build/frontend/apps/files_versions/src/views/FilesVersionsSidebarTab.vue"],"sourcesContent":["\n\n","\n\n","\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('files_version')\n\t.detectUser()\n\t.build()\n","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default `\n\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n`\n","/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { INode } from '@nextcloud/files'\nimport type { FileStat, ResponseDataDetailed } from 'webdav'\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { getClient } from '@nextcloud/files/dav'\nimport { getCanonicalLocale } from '@nextcloud/l10n'\nimport { encodePath, join } from '@nextcloud/paths'\nimport { generateRemoteUrl, generateUrl } from '@nextcloud/router'\nimport davRequest from '../utils/davRequest.ts'\nimport logger from '../utils/logger.ts'\n\nexport interface Version {\n\tfileId: string // The id of the file associated to the version.\n\tlabel: string // 'Current version' or ''\n\tauthor: string | null // UID for the author of the version\n\tauthorName: string | null // Display name of the author\n\tfilename: string // File name relative to the version DAV endpoint\n\tbasename: string // A base name generated from the mtime\n\tmime: string // Empty for the current version, else the actual mime type of the version\n\tetag: string // Empty for the current version, else the actual mime type of the version\n\tsize: number // File size in bytes\n\ttype: string // 'file'\n\tmtime: number // Version creation date as a timestamp\n\tpermissions: string // Only readable: 'R'\n\tpreviewUrl: string // Preview URL of the version\n\turl: string // Download URL of the version\n\tsource: string // The WebDAV endpoint of the resource\n\tfileVersion: string | null // The version id, null for the current version\n}\n\nconst client = getClient()\n\n/**\n * Get file versions for a given node\n *\n * @param node - The node to fetch versions for\n */\nexport async function fetchVersions(node: INode): Promise {\n\tconst path = `/versions/${getCurrentUser()?.uid}/versions/${node.fileid}`\n\n\ttry {\n\t\tconst response = await client.getDirectoryContents(path, {\n\t\t\tdata: davRequest,\n\t\t\tdetails: true,\n\t\t}) as ResponseDataDetailed\n\n\t\tconst versions = response.data\n\t\t\t// Filter out root\n\t\t\t.filter(({ mime }) => mime !== '')\n\t\t\t.map((version) => formatVersion(version as Required, node))\n\n\t\tconst authorIds = new Set(versions.map((version) => String(version.author)))\n\t\tconst authors = await axios.post(generateUrl('/displaynames'), { users: [...authorIds] })\n\n\t\tfor (const version of versions) {\n\t\t\tconst author = authors.data.users[version.author ?? '']\n\t\t\tif (author) {\n\t\t\t\tversion.authorName = author\n\t\t\t}\n\t\t}\n\n\t\treturn versions\n\t} catch (exception) {\n\t\tlogger.error('Could not fetch version', { exception })\n\t\tthrow exception\n\t}\n}\n\n/**\n * Restore the given version\n *\n * @param version - The version to restore\n */\nexport async function restoreVersion(version: Version) {\n\ttry {\n\t\tlogger.debug('Restoring version', { url: version.url })\n\t\tawait client.moveFile(\n\t\t\t`/versions/${getCurrentUser()?.uid}/versions/${version.fileId}/${version.fileVersion}`,\n\t\t\t`/versions/${getCurrentUser()?.uid}/restore/target`,\n\t\t)\n\t} catch (exception) {\n\t\tlogger.error('Could not restore version', { exception })\n\t\tthrow exception\n\t}\n}\n\n/**\n * Format version\n *\n * @param version - The version data from WebDAV\n * @param node - The original node\n */\nfunction formatVersion(version: Required, node: INode): Version {\n\tconst mtime = Date.parse(version.lastmod)\n\n\tlet previewUrl: string\n\tif (mtime === node.mtime?.getTime()) { // Version is the current one\n\t\tpreviewUrl = generateUrl('/core/preview?fileId={fileId}&c={fileEtag}&x=250&y=250&forceIcon=0&a=0&forceIcon=1&mimeFallback=1', {\n\t\t\tfileId: node.id,\n\t\t\tfileEtag: node.attributes.etag,\n\t\t})\n\t} else {\n\t\tpreviewUrl = generateUrl('/apps/files_versions/preview?file={file}&version={fileVersion}&mimeFallback=1', {\n\t\t\tfile: node.path,\n\t\t\tfileVersion: version.basename,\n\t\t})\n\t}\n\n\treturn {\n\t\tfileId: node.id!,\n\t\t// If version-label is defined make sure it is a string (prevent issue if the label is a number an PHP returns a number then)\n\t\tlabel: version.props['version-label'] ? String(version.props['version-label']) : '',\n\t\tauthor: version.props['version-author'] ? String(version.props['version-author']) : null,\n\t\tauthorName: null,\n\t\tfilename: version.filename,\n\t\tbasename: new Date(mtime).toLocaleString(\n\t\t\t[getCanonicalLocale(), getCanonicalLocale().split('-')[0]!],\n\t\t\t{\n\t\t\t\ttimeStyle: 'long',\n\t\t\t\tdateStyle: 'medium',\n\t\t\t},\n\t\t),\n\t\tmime: version.mime,\n\t\tetag: `${version.props.getetag}`,\n\t\tsize: version.size,\n\t\ttype: version.type,\n\t\tmtime,\n\t\tpermissions: 'R',\n\t\tpreviewUrl,\n\t\turl: join('/remote.php/dav', version.filename),\n\t\tsource: generateRemoteUrl('dav') + encodePath(version.filename),\n\t\tfileVersion: version.basename,\n\t}\n}\n\n/**\n * Set version label\n *\n * @param version - The version to set the label for\n * @param newLabel - The new label\n */\nexport async function setVersionLabel(version: Version, newLabel: string) {\n\treturn await client.customRequest(\n\t\tversion.filename,\n\t\t{\n\t\t\tmethod: 'PROPPATCH',\n\t\t\tdata: `\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t${newLabel}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t`,\n\t\t},\n\t)\n}\n\n/**\n * Delete version\n *\n * @param version - The version to delete\n */\nexport async function deleteVersion(version: Version) {\n\tawait client.deleteFile(version.filename)\n}\n","\n\n\n\n\n\n"],"names":["_sfc_main","_hoisted_3","_createElementBlock","_mergeProps","_ctx","$props","_cache","$event","_createElementVNode","_openBlock","props","__props","emit","__emit","previewLoaded","ref","previewErrored","capabilities","loadState","humanReadableSize","computed","formatFileSize","versionLabel","label","t","versionAuthor","getCurrentUser","versionHumanExplicitDate","getCanonicalLocale","downloadURL","getRootUrl","enableLabeling","enableDeletion","hasDeletePermissions","hasPermission","Permission","hasUpdatePermissions","isDownloadable","attribute","labelUpdate","restoreVersion","deleteVersion","nextTick","click","event","compareVersion","node","permission","_createBlock","_unref","NcListItem","_createVNode","ImageOffOutline","_hoisted_1","_hoisted_4","_hoisted_5","_hoisted_6","NcAvatar","_hoisted_8","_hoisted_9","NcDateTime","NcActionButton","Pencil","_createTextVNode","FileCompare","BackupRestore","NcActionLink","Download","Delete","labelInput","useTemplateRef","internalLabel","dialogButtons","buttons","setVersionLabel","svgCheck","watchEffect","NcDialog","$emit","NcTextField","_toDisplayString","logger","getLoggerBuilder","_sfc_main$1","defineComponent","containerHeight","containerTop","containerBottom","currentRowTop","currentRowBottom","visibleSections","section","visibleRows","row","distance","visibleItems","rows","items","rowIdToKeyMap","item","usedTokens","key","unusedTokens","finalMapping","id","totalHeight","sectionHeight","paddingTop","buffer","value","currentRowTopDistanceFromTop","entries","entry","cr","_normalizeStyle","_renderSlot","davRequest","client","getClient","fetchVersions","path","versions","mime","version","formatVersion","authorIds","authors","axios","generateUrl","author","exception","mtime","previewUrl","join","generateRemoteUrl","encodePath","newLabel","isMobile","useIsMobile","loading","showVersionLabelForm","editedVersion","currentVersionMtime","orderedVersions","a","b","sections","initialVersionMtime","canView","canCompare","watch","loadVersions","watchDebounced","handleRestore","restoredNode","restoreStartedEventState","showSuccess","showError","handleLabelUpdateRequest","handleLabelUpdate","oldLabel","handleDelete","index","openVersion","_versions","v","VirtualScrolling","_withCtx","_Fragment","_renderList","VersionEntry","NcLoadingIcon","VersionLabelDialog"],"mappings":"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","x_google_ignoreList":[0,1,2]} \ No newline at end of file +{"version":3,"file":"FilesVersionsSidebarTab-DnlxLRCh.chunk.mjs","sources":["../node_modules/vue-material-design-icons/BackupRestore.vue","../node_modules/vue-material-design-icons/FileCompare.vue","../node_modules/vue-material-design-icons/ImageOffOutline.vue","../build/frontend/apps/files_versions/src/components/VersionEntry.vue","../build/frontend/apps/files_versions/src/components/VersionLabelDialog.vue","../build/frontend/apps/files_versions/src/utils/logger.ts","../build/frontend/apps/files_versions/src/components/VirtualScrolling.vue","../build/frontend/apps/files_versions/src/utils/davRequest.ts","../build/frontend/apps/files_versions/src/utils/versions.ts","../build/frontend/apps/files_versions/src/views/FilesVersionsSidebarTab.vue"],"sourcesContent":["\n\n","\n\n","\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('files_version')\n\t.detectUser()\n\t.build()\n","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default `\n\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n`\n","/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { INode } from '@nextcloud/files'\nimport type { FileStat, ResponseDataDetailed } from 'webdav'\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { getClient } from '@nextcloud/files/dav'\nimport { getCanonicalLocale } from '@nextcloud/l10n'\nimport { encodePath, join } from '@nextcloud/paths'\nimport { generateRemoteUrl, generateUrl } from '@nextcloud/router'\nimport davRequest from '../utils/davRequest.ts'\nimport logger from '../utils/logger.ts'\n\nexport interface Version {\n\tfileId: string // The id of the file associated to the version.\n\tlabel: string // 'Current version' or ''\n\tauthor: string | null // UID for the author of the version\n\tauthorName: string | null // Display name of the author\n\tfilename: string // File name relative to the version DAV endpoint\n\tbasename: string // A base name generated from the mtime\n\tmime: string // Empty for the current version, else the actual mime type of the version\n\tetag: string // Empty for the current version, else the actual mime type of the version\n\tsize: number // File size in bytes\n\ttype: string // 'file'\n\tmtime: number // Version creation date as a timestamp\n\tpermissions: string // Only readable: 'R'\n\tpreviewUrl: string // Preview URL of the version\n\turl: string // Download URL of the version\n\tsource: string // The WebDAV endpoint of the resource\n\tfileVersion: string | null // The version id, null for the current version\n}\n\nconst client = getClient()\n\n/**\n * Get file versions for a given node\n *\n * @param node - The node to fetch versions for\n */\nexport async function fetchVersions(node: INode): Promise {\n\tconst path = `/versions/${getCurrentUser()?.uid}/versions/${node.fileid}`\n\n\ttry {\n\t\tconst response = await client.getDirectoryContents(path, {\n\t\t\tdata: davRequest,\n\t\t\tdetails: true,\n\t\t}) as ResponseDataDetailed\n\n\t\tconst versions = response.data\n\t\t\t// Filter out root\n\t\t\t.filter(({ mime }) => mime !== '')\n\t\t\t.map((version) => formatVersion(version as Required, node))\n\n\t\tconst authorIds = new Set(versions.map((version) => String(version.author)))\n\t\tconst authors = await axios.post(generateUrl('/displaynames'), { users: [...authorIds] })\n\n\t\tfor (const version of versions) {\n\t\t\tconst author = authors.data.users[version.author ?? '']\n\t\t\tif (author) {\n\t\t\t\tversion.authorName = author\n\t\t\t}\n\t\t}\n\n\t\treturn versions\n\t} catch (exception) {\n\t\tlogger.error('Could not fetch version', { exception })\n\t\tthrow exception\n\t}\n}\n\n/**\n * Restore the given version\n *\n * @param version - The version to restore\n */\nexport async function restoreVersion(version: Version) {\n\ttry {\n\t\tlogger.debug('Restoring version', { url: version.url })\n\t\tawait client.moveFile(\n\t\t\t`/versions/${getCurrentUser()?.uid}/versions/${version.fileId}/${version.fileVersion}`,\n\t\t\t`/versions/${getCurrentUser()?.uid}/restore/target`,\n\t\t)\n\t} catch (exception) {\n\t\tlogger.error('Could not restore version', { exception })\n\t\tthrow exception\n\t}\n}\n\n/**\n * Format version\n *\n * @param version - The version data from WebDAV\n * @param node - The original node\n */\nfunction formatVersion(version: Required, node: INode): Version {\n\tconst mtime = Date.parse(version.lastmod)\n\n\tlet previewUrl: string\n\tif (mtime === node.mtime?.getTime()) { // Version is the current one\n\t\tpreviewUrl = generateUrl('/core/preview?fileId={fileId}&c={fileEtag}&x=250&y=250&forceIcon=0&a=0&forceIcon=1&mimeFallback=1', {\n\t\t\tfileId: node.id,\n\t\t\tfileEtag: node.attributes.etag,\n\t\t})\n\t} else {\n\t\tpreviewUrl = generateUrl('/apps/files_versions/preview?file={file}&version={fileVersion}&mimeFallback=1', {\n\t\t\tfile: node.path,\n\t\t\tfileVersion: version.basename,\n\t\t})\n\t}\n\n\treturn {\n\t\tfileId: node.id!,\n\t\t// If version-label is defined make sure it is a string (prevent issue if the label is a number an PHP returns a number then)\n\t\tlabel: version.props['version-label'] ? String(version.props['version-label']) : '',\n\t\tauthor: version.props['version-author'] ? String(version.props['version-author']) : null,\n\t\tauthorName: null,\n\t\tfilename: version.filename,\n\t\tbasename: new Date(mtime).toLocaleString(\n\t\t\t[getCanonicalLocale(), getCanonicalLocale().split('-')[0]!],\n\t\t\t{\n\t\t\t\ttimeStyle: 'long',\n\t\t\t\tdateStyle: 'medium',\n\t\t\t},\n\t\t),\n\t\tmime: version.mime,\n\t\tetag: `${version.props.getetag}`,\n\t\tsize: version.size,\n\t\ttype: version.type,\n\t\tmtime,\n\t\tpermissions: 'R',\n\t\tpreviewUrl,\n\t\turl: join('/remote.php/dav', version.filename),\n\t\tsource: generateRemoteUrl('dav') + encodePath(version.filename),\n\t\tfileVersion: version.basename,\n\t}\n}\n\n/**\n * Set version label\n *\n * @param version - The version to set the label for\n * @param newLabel - The new label\n */\nexport async function setVersionLabel(version: Version, newLabel: string) {\n\treturn await client.customRequest(\n\t\tversion.filename,\n\t\t{\n\t\t\tmethod: 'PROPPATCH',\n\t\t\tdata: `\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t${newLabel}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t`,\n\t\t},\n\t)\n}\n\n/**\n * Delete version\n *\n * @param version - The version to delete\n */\nexport async function deleteVersion(version: Version) {\n\tawait client.deleteFile(version.filename)\n}\n","\n\n\n\n\n\n"],"names":["_sfc_main","_hoisted_3","_createElementBlock","_mergeProps","_ctx","$props","_cache","$event","_createElementVNode","_openBlock","props","__props","emit","__emit","previewLoaded","ref","previewErrored","capabilities","loadState","humanReadableSize","computed","formatFileSize","versionLabel","label","t","versionAuthor","getCurrentUser","versionHumanExplicitDate","getCanonicalLocale","downloadURL","getRootUrl","enableLabeling","enableDeletion","hasDeletePermissions","hasPermission","Permission","hasUpdatePermissions","isDownloadable","attribute","labelUpdate","restoreVersion","deleteVersion","nextTick","click","event","compareVersion","node","permission","_createBlock","_unref","NcListItem","_createVNode","ImageOffOutline","_hoisted_1","_hoisted_4","_hoisted_5","_hoisted_6","NcAvatar","_hoisted_8","_hoisted_9","NcDateTime","NcActionButton","Pencil","_createTextVNode","FileCompare","BackupRestore","NcActionLink","Download","Delete","labelInput","useTemplateRef","internalLabel","dialogButtons","buttons","setVersionLabel","svgCheck","watchEffect","NcDialog","$emit","NcTextField","_toDisplayString","logger","getLoggerBuilder","_sfc_main$1","defineComponent","containerHeight","containerTop","containerBottom","currentRowTop","currentRowBottom","visibleSections","section","visibleRows","row","distance","visibleItems","rows","items","rowIdToKeyMap","item","usedTokens","key","unusedTokens","finalMapping","id","totalHeight","sectionHeight","paddingTop","buffer","value","currentRowTopDistanceFromTop","entries","entry","cr","_normalizeStyle","_renderSlot","davRequest","client","getClient","fetchVersions","path","versions","mime","version","formatVersion","authorIds","authors","axios","generateUrl","author","exception","mtime","previewUrl","join","generateRemoteUrl","encodePath","newLabel","isMobile","useIsMobile","loading","showVersionLabelForm","editedVersion","currentVersionMtime","orderedVersions","a","b","sections","initialVersionMtime","canView","canCompare","watch","loadVersions","watchDebounced","handleRestore","restoredNode","restoreStartedEventState","showSuccess","showError","handleLabelUpdateRequest","handleLabelUpdate","oldLabel","handleDelete","index","openVersion","_versions","v","VirtualScrolling","_withCtx","_Fragment","_renderList","VersionEntry","NcLoadingIcon","VersionLabelDialog"],"mappings":"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","x_google_ignoreList":[0,1,2]} \ No newline at end of file diff --git a/dist/FilesVersionsSidebarTab-Dy1jRbse.chunk.mjs.map.license b/dist/FilesVersionsSidebarTab-DnlxLRCh.chunk.mjs.map.license similarity index 100% rename from dist/FilesVersionsSidebarTab-Dy1jRbse.chunk.mjs.map.license rename to dist/FilesVersionsSidebarTab-DnlxLRCh.chunk.mjs.map.license diff --git a/dist/NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs b/dist/NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs similarity index 98% rename from dist/NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs rename to dist/NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs index fbc16a1b960..a8ca2a12736 100644 --- a/dist/NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs +++ b/dist/NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs @@ -1,3 +1,3 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/index-BoBLp2fu.chunk.mjs'),window.OC.filePath('', '', 'dist/Web-BwmPK40i.chunk.mjs'),window.OC.filePath('', '', 'dist/public-C1mLBHT3.chunk.mjs'),window.OC.filePath('', '', 'dist/logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs'),window.OC.filePath('', '', 'dist/translation-DoG5ZELJ-CFYnqluG.chunk.mjs'),window.OC.filePath('', '', 'dist/index-B-dGqfIG.chunk.mjs'),window.OC.filePath('', '', 'dist/common-createElementId-DhjFt1I9-C_oBIsvc.chunk.css'),window.OC.filePath('', '', 'dist/common-logger-D3RVzcfQ-BE3lcFW4.chunk.css'),window.OC.filePath('', '', 'dist/colors-BDeMBgfq-BQ_6MaUU.chunk.mjs'),window.OC.filePath('', '', 'dist/NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcModal-DUWLRm_F-BsKc2RT9.chunk.css'),window.OC.filePath('', '', 'dist/common-index-bfXBK-tQ.chunk.css'),window.OC.filePath('', '', 'dist/index-CMXcwXc6.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BOH7nBEM.chunk.mjs'),window.OC.filePath('', '', 'dist/TrashCanOutline-Cv7t-yKN.chunk.mjs'),window.OC.filePath('', '', 'dist/common-TrashCanOutline-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/common-index-980JFXIN.chunk.css'),window.OC.filePath('', '', 'dist/common-index--xyrXnuf.chunk.css')])))=>i.map(i=>d[i]); -import{b as R,n as j,o as b,f as I,g,t as S,y as w,m as T,s as Y,v as V,r as k,i as Z,Q as L,N as H,h as D,c as x,k as Q,w as W,a as N,_ as P}from"./Web-BwmPK40i.chunk.mjs";import{r as F,o as G,_ as z,b as A,c as E,p as J}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{a as K}from"./PencilOutline-CJ2aSuY5.chunk.mjs";import{N as X}from"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import{_ as tt}from"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import{t as et}from"./index-B-dGqfIG.chunk.mjs";F(G);const it=["for"],st=["id","type","value","min","max"],nt=R({inheritAttrs:!1,__name:"NcDateTimePickerNative",props:Y({class:{default:void 0},id:{default:()=>E()},inputClass:{default:""},type:{default:"date"},label:{default:()=>A("Please choose a date")},min:{default:null},max:{default:null},hideLabel:{type:Boolean}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const e=j(r,"modelValue"),t=r,a=V(()=>e.value?p(e.value):""),c=V(()=>t.max?p(t.max):void 0),o=V(()=>t.min?p(t.min):void 0);function d(s){const i=s.getFullYear().toString().padStart(4,"0"),h=(s.getMonth()+1).toString().padStart(2,"0"),u=s.getDate().toString().padStart(2,"0"),m=s.getHours().toString().padStart(2,"0"),f=s.getMinutes().toString().padStart(2,"0");return{yyyy:i,MM:h,dd:u,hh:m,mm:f}}function p(s){const{yyyy:i,MM:h,dd:u,hh:m,mm:f}=d(s);if(t.type==="datetime-local")return`${i}-${h}-${u}T${m}:${f}`;if(t.type==="date")return`${i}-${h}-${u}`;if(t.type==="month")return`${i}-${h}`;if(t.type==="time")return`${m}:${f}`;if(t.type==="week"){const l=new Date(Number.parseInt(i),0,1),v=Math.floor((s.getTime()-l.getTime())/(1440*60*1e3)),_=Math.ceil(v/7);return`${i}-W${_}`}return""}function n(s){const i=s.target;if(!i||isNaN(i.valueAsNumber))e.value=null;else if(t.type==="time"){const h=i.value,{yyyy:u,MM:m,dd:f}=d(e.value||new Date);e.value=new Date(`${u}-${m}-${f}T${h}`)}else if(t.type==="month"){const h=(new Date(i.value).getMonth()+1).toString().padStart(2,"0"),{yyyy:u,dd:m,hh:f,mm:l}=d(e.value||new Date);e.value=new Date(`${u}-${h}-${m}T${f}:${l}`)}else{const h=new Date(i.valueAsNumber).getTimezoneOffset()*1e3*60,u=i.valueAsNumber+h;e.value=new Date(u)}}return(s,i)=>(b(),I("div",{class:w(["native-datetime-picker",s.$props.class])},[g("label",{class:w(["native-datetime-picker__label",{"hidden-visually":r.hideLabel}]),for:r.id},S(r.label),11,it),g("input",T({id:r.id,class:["native-datetime-picker__input",r.inputClass],type:r.type,value:a.value,min:o.value,max:c.value},s.$attrs,{onInput:n}),null,16,st)],2))}}),rt=z(nt,[["__scopeId","data-v-b97e1f7a"]]);F(J);const at={name:"NcActionInput",components:{NcDateTimePickerNative:rt,NcPasswordField:X,NcTextField:tt,NcColorPicker:N(()=>P(()=>import("./index-BoBLp2fu.chunk.mjs"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12]),import.meta.url)),NcDateTimePicker:N(()=>P(()=>import("./index-CMXcwXc6.chunk.mjs"),__vite__mapDeps([13,3,1,2,4,5,6,7,8,10,11,14,15,16,17,18]),import.meta.url)),NcSelect:N(()=>P(()=>import("./index-BOH7nBEM.chunk.mjs").then(r=>r.i),__vite__mapDeps([14,1,2,10,3,4,5,6,7,8,11,15,16,17]),import.meta.url))},mixins:[K],inheritAttrs:!1,props:{id:{type:String,default:()=>"action-"+E(),validator:r=>r.trim()!==""},inputId:{type:String,default:()=>"action-input-"+E(),validator:r=>r.trim()!==""},icon:{type:String,default:""},type:{type:String,default:"text",validator(r){return["date","datetime-local","month","multiselect","number","password","search","tel","text","time","url","week","color","email"].includes(r)}},idNativeDateTimePicker:{type:String,default:"date-time-picker_id"},isNativePicker:{type:Boolean,default:!1},label:{type:String,default:null},labelOutside:{type:Boolean,default:!0},modelValue:{type:[String,Date,Number,Array],default:""},disabled:{type:Boolean,default:!1},ariaLabel:{type:String,default:""},showTrailingButton:{type:Boolean,default:!0},trailingButtonLabel:{type:String,default:A("Submit")},class:{type:[String,Array,Object],default:""}},emits:["submit","update:modelValue"],computed:{isIconUrl(){try{return new URL(this.icon)}catch{return!1}},isMultiselectType(){return this.type==="multiselect"},nativeDatePickerType(){switch(this.type){case"date":case"month":case"time":case"week":case"datetime-local":return this.type}return!1},datePickerType(){if(!this.isNativePicker)switch(this.type){case"date":case"month":case"time":return this.type;case"datetime-local":return"datetime"}return!1},isFocusable(){return!this.disabled}},methods:{onLeave(){this.$refs.datetimepicker&&this.$refs.datetimepicker.$refs.datepicker&&this.$refs.datetimepicker.$refs.datepicker.closePopup()},onSubmit(r){if(r.preventDefault(),r.stopPropagation(),!this.disabled)this.$emit("submit",r);else return!1},onUpdateModelValue(r){this.$emit("update:modelValue",r)}}},ot={class:"action-input__icon-wrapper"},lt=["disabled"],ut={class:"action-input__container"},ht=["for"],ct={class:"action-input__input-container"},dt={key:4,class:"action-input__container"},pt=["for"],mt={class:"action-input__input-container"};function ft(r,e,t,a,c,o){const d=k("NcDateTimePicker"),p=k("NcDateTimePickerNative"),n=k("NcSelect"),s=k("NcPasswordField"),i=k("NcColorPicker"),h=k("NcTextField");return b(),I("li",{class:w(["action",[{"action--disabled":t.disabled},r.$props.class]])},[g("span",{class:w(["action-input",{"action-input-picker--disabled":t.disabled,"action-input--visible-label":t.labelOutside&&t.label}]),onMouseleave:e[3]||(e[3]=(...u)=>o.onLeave&&o.onLeave(...u))},[g("span",ot,[Z(r.$slots,"icon",{},()=>[g("span",{"aria-hidden":"true",class:w(["action-input__icon",[o.isIconUrl?"action-input__icon--url":t.icon]]),style:L({backgroundImage:o.isIconUrl?`url(${t.icon})`:null})},null,6)],!0)]),g("form",{ref:"form",class:"action-input__form",disabled:t.disabled,onSubmit:e[2]||(e[2]=H((...u)=>o.onSubmit&&o.onSubmit(...u),["prevent"]))},[g("div",ut,[t.label&&t.labelOutside&&!t.isNativePicker?(b(),I("label",{key:0,class:w(["action-input__text-label",{"action-input__text-label--hidden":!t.labelOutside}]),for:t.inputId},S(t.label),11,ht)):D("",!0),g("div",ct,[o.datePickerType?(b(),x(d,T({key:0,ref:"datetimepicker",modelValue:t.modelValue,style:{"z-index":"99999999999"},placeholder:r.text,disabled:t.disabled,type:o.datePickerType,inputClass:["mx-input",{focusable:o.isFocusable}],class:"action-input__datetimepicker",appendToBody:""},r.$attrs,{"onUpdate:modelValue":o.onUpdateModelValue}),null,16,["modelValue","placeholder","disabled","type","inputClass","onUpdate:modelValue"])):t.isNativePicker?(b(),x(p,T({key:1,id:t.idNativeDateTimePicker,modelValue:t.modelValue,label:t.label,type:o.nativeDatePickerType,inputClass:{focusable:o.isFocusable},class:"action-input__datetimepicker"},r.$attrs,{"onUpdate:modelValue":o.onUpdateModelValue}),null,16,["id","modelValue","label","type","inputClass","onUpdate:modelValue"])):o.isMultiselectType?(b(),x(n,T({key:2,modelValue:t.modelValue,placeholder:r.text,disabled:t.disabled,appendToBody:!1,inputClass:{focusable:o.isFocusable},class:"action-input__multi"},r.$attrs,{"onUpdate:modelValue":o.onUpdateModelValue}),null,16,["modelValue","placeholder","disabled","inputClass","onUpdate:modelValue"])):t.type==="password"?(b(),x(s,T({key:3,id:t.inputId,modelValue:t.modelValue,label:t.label,labelOutside:!t.label||t.labelOutside,placeholder:r.text,disabled:t.disabled,inputClass:{focusable:o.isFocusable},showTrailingButton:t.showTrailingButton&&!t.disabled},r.$attrs,{"onUpdate:modelValue":o.onUpdateModelValue}),null,16,["id","modelValue","label","labelOutside","placeholder","disabled","inputClass","showTrailingButton","onUpdate:modelValue"])):t.type==="color"?(b(),I("div",dt,[t.label&&t.type==="color"?(b(),I("label",{key:0,class:w(["action-input__text-label",{"action-input__text-label--hidden":!t.labelOutside}]),for:t.inputId},S(t.label),11,pt)):D("",!0),g("div",mt,[Q(i,T({id:"inputId",modelValue:t.modelValue,class:"colorpicker__trigger"},r.$attrs,{"onUpdate:modelValue":o.onUpdateModelValue,onSubmit:e[0]||(e[0]=u=>r.$refs.form.requestSubmit())}),{default:W(()=>[g("button",{class:w(["colorpicker__preview",{focusable:o.isFocusable}]),style:L({"background-color":t.modelValue})},null,6)]),_:1},16,["modelValue","onUpdate:modelValue"])])])):(b(),x(h,T({key:5,id:t.inputId,modelValue:t.modelValue,label:t.label,labelOutside:!t.label||t.labelOutside,placeholder:r.text,disabled:t.disabled,inputClass:{focusable:o.isFocusable},type:t.type,trailingButtonIcon:"arrowRight",trailingButtonLabel:t.trailingButtonLabel,showTrailingButton:t.showTrailingButton&&!t.disabled},r.$attrs,{onTrailingButtonClick:e[1]||(e[1]=u=>r.$refs.form.requestSubmit()),"onUpdate:modelValue":o.onUpdateModelValue}),null,16,["id","modelValue","label","labelOutside","placeholder","disabled","inputClass","type","trailingButtonLabel","showTrailingButton","onUpdate:modelValue"]))])])],40,lt)],34)],2)}const Nt=z(at,[["render",ft],["__scopeId","data-v-43230e98"]]);var O={exports:{}},M;function yt(){return M||(M=1,(function(r){var e=Object.prototype.hasOwnProperty,t="~";function a(){}Object.create&&(a.prototype=Object.create(null),new a().__proto__||(t=!1));function c(n,s,i){this.fn=n,this.context=s,this.once=i||!1}function o(n,s,i,h,u){if(typeof i!="function")throw new TypeError("The listener must be a function");var m=new c(i,h||n,u),f=t?t+s:s;return n._events[f]?n._events[f].fn?n._events[f]=[n._events[f],m]:n._events[f].push(m):(n._events[f]=m,n._eventsCount++),n}function d(n,s){--n._eventsCount===0?n._events=new a:delete n._events[s]}function p(){this._events=new a,this._eventsCount=0}p.prototype.eventNames=function(){var n=[],s,i;if(this._eventsCount===0)return n;for(i in s=this._events)e.call(s,i)&&n.push(t?i.slice(1):i);return Object.getOwnPropertySymbols?n.concat(Object.getOwnPropertySymbols(s)):n},p.prototype.listeners=function(n){var s=t?t+n:n,i=this._events[s];if(!i)return[];if(i.fn)return[i.fn];for(var h=0,u=i.length,m=new Array(u);hr.reason??new DOMException("This operation was aborted.","AbortError");function gt(r,e){const{milliseconds:t,fallback:a,message:c,customTimers:o={setTimeout,clearTimeout},signal:d}=e;let p,n;const s=new Promise((i,h)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(d?.aborted){h(U(d));return}if(d&&(n=()=>{h(U(d))},d.addEventListener("abort",n,{once:!0})),r.then(i,h),t===Number.POSITIVE_INFINITY)return;const u=new C;p=o.setTimeout.call(void 0,()=>{if(a){try{i(a())}catch(m){h(m)}return}typeof r.cancel=="function"&&r.cancel(),c===!1?i():c instanceof Error?h(c):(u.message=c??`Promise timed out after ${t} milliseconds`,h(u))},t)}).finally(()=>{s.clear(),n&&d&&d.removeEventListener("abort",n)});return s.clear=()=>{o.clearTimeout.call(void 0,p),p=void 0},s}function _t(r,e,t){let a=0,c=r.length;for(;c>0;){const o=Math.trunc(c/2);let d=a+o;t(r[d],e)<=0?(a=++d,c-=o+1):c=o}return a}const wt=100;class B{#e=[];#t=0;enqueue(e,t){const{priority:a=0,id:c}=t??{},{size:o}=this,d={priority:a,id:c,run:e};if(o===0){this.#e.length=0,this.#t=0,this.#e.push(d);return}if(this.#e.at(-1).priority>=a){this.#e.push(d);return}this.#r();const p=_t(this.#e,d,(n,s)=>s.priority-n.priority);this.#e.splice(p,0,d)}setPriority(e,t){const a=this.#e.findIndex((o,d)=>d>=this.#t&&o.id===e);if(a===-1)throw new ReferenceError(`No promise function with the id "${e}" exists in the queue.`);const[c]=this.#e.splice(a,1);this.enqueue(c.run,{priority:t,id:e})}remove(e){const t=this.#e.findIndex((a,c)=>cwt&&this.#t>this.#e.length/2&&this.#r(),e?.run}filter(e){const t=[];for(let a=this.#t;a=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??""}\` (${typeof e.interval})`);if(e.strict&&e.interval===0)throw new TypeError("The `strict` option requires a non-zero `interval`");if(e.strict&&e.intervalCap===Number.POSITIVE_INFINITY)throw new TypeError("The `strict` option requires a finite `intervalCap`");if(this.#e=e.carryoverIntervalCount??e.carryoverConcurrencyCount??!1,this.#t=e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,this.#p=e.intervalCap,this.#l=e.interval,this.#o=e.strict,this.#i=new e.queueClass,this.#N=e.queueClass,this.concurrency=e.concurrency,e.timeout!==void 0&&!(Number.isFinite(e.timeout)&&e.timeout>0))throw new TypeError(`Expected \`timeout\` to be a positive finite number, got \`${e.timeout}\` (${typeof e.timeout})`);this.timeout=e.timeout,this.#c=e.autoStart===!1,this.#A()}#T(e){for(;this.#n=this.#l)this.#n++;else break}(this.#n>100&&this.#n>this.#a.length/2||this.#n===this.#a.length)&&(this.#a=this.#a.slice(this.#n),this.#n=0)}#D(e){this.#o?this.#a.push(e):this.#r++}#O(){this.#o?this.#a.length>this.#n&&this.#a.pop():this.#r>0&&this.#r--}#k(){return this.#a.length-this.#n}get#M(){return this.#t?!0:this.#o?this.#k()=this.#p){const t=this.#a[this.#n],a=this.#l-(e-t);return this.#$(a),!0}return!1}if(this.#u===void 0){const t=this.#V-e;if(t<0){if(this.#_>0){const a=e-this.#_;if(a{this.#F()},e))}#x(){this.#u&&(clearInterval(this.#u),this.#u=void 0)}#P(){this.#h&&(clearTimeout(this.#h),this.#h=void 0)}#b(){if(this.#i.size===0){if(this.#x(),this.emit("empty"),this.#s===0){if(this.#P(),this.#o&&this.#n>0){const t=Date.now();this.#T(t)}this.emit("idle")}return!1}let e=!1;if(!this.#c){const t=Date.now(),a=!this.#z(t);if(this.#M&&this.#U){const c=this.#i.dequeue();this.#t||(this.#D(t),this.#m()),this.emit("active"),c(),a&&this.#S(),e=!0}}return e}#S(){this.#t||this.#u!==void 0||this.#o||(this.#u=setInterval(()=>{this.#E()},this.#l),this.#V=Date.now()+this.#l)}#E(){this.#o||(this.#r===0&&this.#s===0&&this.#u&&this.#x(),this.#r=this.#e?this.#s:0),this.#I(),this.#m()}#I(){for(;this.#b(););}get concurrency(){return this.#y}set concurrency(e){if(!(typeof e=="number"&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#y=e,this.#I()}setPriority(e,t){if(typeof t!="number"||!Number.isFinite(t))throw new TypeError(`Expected \`priority\` to be a finite number, got \`${t}\` (${typeof t})`);this.#i.setPriority(e,t)}async add(e,t={}){return t={timeout:this.timeout,...t,id:t.id??(this.#L++).toString()},new Promise((a,c)=>{const o=Symbol(`task-${t.id}`);let d=()=>{};const p=async()=>{d(),this.#s++,this.#v.set(o,{id:t.id,priority:t.priority??0,startTime:Date.now(),timeout:t.timeout});let s;try{try{t.signal?.throwIfAborted()}catch(u){throw this.#q(),this.#v.delete(o),u}this.#_=Date.now();let i=e({signal:t.signal});if(t.timeout&&(i=gt(Promise.resolve(i),{milliseconds:t.timeout,message:`Task timed out after ${t.timeout}ms (queue has ${this.#s} running, ${this.#i.size} waiting)`})),t.signal){const{signal:u}=t;i=Promise.race([i,new Promise((m,f)=>{s=()=>{f(u.reason)},u.addEventListener("abort",s,{once:!0})})])}const h=await i;a(h),this.emit("completed",h)}catch(i){c(i),this.emit("error",i)}finally{s&&t.signal?.removeEventListener("abort",s),this.#v.delete(o),queueMicrotask(()=>{this.#B()})}};this.#i.enqueue(p,t);const n=()=>{if(this.#i instanceof B){this.#i.remove(p);return}this.#i.remove?.(t.id)};if(t.signal){const{signal:s}=t,i=()=>{d(),n(),c(s.reason),this.#b(),this.emit("next")};if(d=()=>{s.removeEventListener("abort",i),this.#w.delete(d)},s.aborted){i();return}s.addEventListener("abort",i,{once:!0}),this.#w.add(d)}this.emit("add"),this.#b()})}async addAll(e,t){return Promise.all(e.map(async a=>this.add(a,t)))}start(){return this.#c?(this.#c=!1,this.#I(),this):this}pause(){this.#c=!0}clear(){for(const e of this.#w)e();this.#i=new this.#N,this.#x(),this.#C(),this.emit("empty"),this.#s===0&&(this.#P(),this.emit("idle")),this.emit("next")}async onEmpty(){this.#i.size!==0&&await this.#d("empty")}async onSizeLessThan(e){this.#i.sizethis.#i.size{const a=c=>{this.off("error",a),t(c)};this.on("error",a)})}async#d(e,t){return new Promise(a=>{const c=()=>{t&&!t()||(this.off(e,c),a())};this.on(e,c)})}get size(){return this.#i.size}sizeBy(e){return this.#i.filter(e).length}get pending(){return this.#s}get isPaused(){return this.#c}#A(){this.#t||(this.on("add",()=>{this.#i.size>0&&this.#m()}),this.on("next",()=>{this.#m()}))}#m(){this.#t||this.#g||(this.#g=!0,queueMicrotask(()=>{this.#g=!1,this.#C()}))}#q(){this.#t||(this.#O(),this.#m())}#C(){const e=this.#f;if(this.#t||this.#i.size===0){e&&(this.#f=!1,this.emit("rateLimitCleared"));return}let t;if(this.#o){const c=Date.now();this.#T(c),t=this.#k()}else t=this.#r;const a=t>=this.#p;a!==e&&(this.#f=a,this.emit(a?"rateLimit":"rateLimitCleared"))}get isRateLimited(){return this.#f}get isSaturated(){return this.#s===this.#y&&this.#i.size>0||this.isRateLimited&&this.#i.size>0}get runningTasks(){return[...this.#v.values()].map(e=>({...e}))}}export{rt as N,Pt as P,Nt as a}; -//# sourceMappingURL=NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs.map +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/index-BoBLp2fu.chunk.mjs'),window.OC.filePath('', '', 'dist/Web-BwmPK40i.chunk.mjs'),window.OC.filePath('', '', 'dist/public-C1mLBHT3.chunk.mjs'),window.OC.filePath('', '', 'dist/logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs'),window.OC.filePath('', '', 'dist/translation-DoG5ZELJ-CFYnqluG.chunk.mjs'),window.OC.filePath('', '', 'dist/index-B-dGqfIG.chunk.mjs'),window.OC.filePath('', '', 'dist/common-createElementId-DhjFt1I9-C_oBIsvc.chunk.css'),window.OC.filePath('', '', 'dist/common-logger-D3RVzcfQ-BE3lcFW4.chunk.css'),window.OC.filePath('', '', 'dist/colors-BDeMBgfq-BQ_6MaUU.chunk.mjs'),window.OC.filePath('', '', 'dist/NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcModal-DUWLRm_F-BsKc2RT9.chunk.css'),window.OC.filePath('', '', 'dist/common-index-bfXBK-tQ.chunk.css'),window.OC.filePath('', '', 'dist/index-CQct0mOs.chunk.mjs'),window.OC.filePath('', '', 'dist/index-dqLzhRZM.chunk.mjs'),window.OC.filePath('', '', 'dist/TrashCanOutline-Cv7t-yKN.chunk.mjs'),window.OC.filePath('', '', 'dist/common-TrashCanOutline-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/common-index-BWhNCeJl.chunk.css'),window.OC.filePath('', '', 'dist/common-index--xyrXnuf.chunk.css')])))=>i.map(i=>d[i]); +import{b as R,n as j,o as b,f as I,g,t as S,y as w,m as T,s as Y,v as V,r as k,i as Z,Q as L,N as H,h as D,c as x,k as Q,w as W,a as N,_ as P}from"./Web-BwmPK40i.chunk.mjs";import{r as F,o as G,_ as z,b as A,c as E,p as J}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{a as K}from"./PencilOutline-CJ2aSuY5.chunk.mjs";import{N as X}from"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import{_ as tt}from"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import{t as et}from"./index-B-dGqfIG.chunk.mjs";F(G);const it=["for"],st=["id","type","value","min","max"],nt=R({inheritAttrs:!1,__name:"NcDateTimePickerNative",props:Y({class:{default:void 0},id:{default:()=>E()},inputClass:{default:""},type:{default:"date"},label:{default:()=>A("Please choose a date")},min:{default:null},max:{default:null},hideLabel:{type:Boolean}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const e=j(r,"modelValue"),t=r,a=V(()=>e.value?p(e.value):""),c=V(()=>t.max?p(t.max):void 0),o=V(()=>t.min?p(t.min):void 0);function d(s){const i=s.getFullYear().toString().padStart(4,"0"),h=(s.getMonth()+1).toString().padStart(2,"0"),u=s.getDate().toString().padStart(2,"0"),m=s.getHours().toString().padStart(2,"0"),f=s.getMinutes().toString().padStart(2,"0");return{yyyy:i,MM:h,dd:u,hh:m,mm:f}}function p(s){const{yyyy:i,MM:h,dd:u,hh:m,mm:f}=d(s);if(t.type==="datetime-local")return`${i}-${h}-${u}T${m}:${f}`;if(t.type==="date")return`${i}-${h}-${u}`;if(t.type==="month")return`${i}-${h}`;if(t.type==="time")return`${m}:${f}`;if(t.type==="week"){const l=new Date(Number.parseInt(i),0,1),v=Math.floor((s.getTime()-l.getTime())/(1440*60*1e3)),_=Math.ceil(v/7);return`${i}-W${_}`}return""}function n(s){const i=s.target;if(!i||isNaN(i.valueAsNumber))e.value=null;else if(t.type==="time"){const h=i.value,{yyyy:u,MM:m,dd:f}=d(e.value||new Date);e.value=new Date(`${u}-${m}-${f}T${h}`)}else if(t.type==="month"){const h=(new Date(i.value).getMonth()+1).toString().padStart(2,"0"),{yyyy:u,dd:m,hh:f,mm:l}=d(e.value||new Date);e.value=new Date(`${u}-${h}-${m}T${f}:${l}`)}else{const h=new Date(i.valueAsNumber).getTimezoneOffset()*1e3*60,u=i.valueAsNumber+h;e.value=new Date(u)}}return(s,i)=>(b(),I("div",{class:w(["native-datetime-picker",s.$props.class])},[g("label",{class:w(["native-datetime-picker__label",{"hidden-visually":r.hideLabel}]),for:r.id},S(r.label),11,it),g("input",T({id:r.id,class:["native-datetime-picker__input",r.inputClass],type:r.type,value:a.value,min:o.value,max:c.value},s.$attrs,{onInput:n}),null,16,st)],2))}}),rt=z(nt,[["__scopeId","data-v-b97e1f7a"]]);F(J);const at={name:"NcActionInput",components:{NcDateTimePickerNative:rt,NcPasswordField:X,NcTextField:tt,NcColorPicker:N(()=>P(()=>import("./index-BoBLp2fu.chunk.mjs"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12]),import.meta.url)),NcDateTimePicker:N(()=>P(()=>import("./index-CQct0mOs.chunk.mjs"),__vite__mapDeps([13,3,1,2,4,5,6,7,8,10,11,14,15,16,17,18]),import.meta.url)),NcSelect:N(()=>P(()=>import("./index-dqLzhRZM.chunk.mjs").then(r=>r.i),__vite__mapDeps([14,1,2,10,3,4,5,6,7,8,11,15,16,17]),import.meta.url))},mixins:[K],inheritAttrs:!1,props:{id:{type:String,default:()=>"action-"+E(),validator:r=>r.trim()!==""},inputId:{type:String,default:()=>"action-input-"+E(),validator:r=>r.trim()!==""},icon:{type:String,default:""},type:{type:String,default:"text",validator(r){return["date","datetime-local","month","multiselect","number","password","search","tel","text","time","url","week","color","email"].includes(r)}},idNativeDateTimePicker:{type:String,default:"date-time-picker_id"},isNativePicker:{type:Boolean,default:!1},label:{type:String,default:null},labelOutside:{type:Boolean,default:!0},modelValue:{type:[String,Date,Number,Array],default:""},disabled:{type:Boolean,default:!1},ariaLabel:{type:String,default:""},showTrailingButton:{type:Boolean,default:!0},trailingButtonLabel:{type:String,default:A("Submit")},class:{type:[String,Array,Object],default:""}},emits:["submit","update:modelValue"],computed:{isIconUrl(){try{return new URL(this.icon)}catch{return!1}},isMultiselectType(){return this.type==="multiselect"},nativeDatePickerType(){switch(this.type){case"date":case"month":case"time":case"week":case"datetime-local":return this.type}return!1},datePickerType(){if(!this.isNativePicker)switch(this.type){case"date":case"month":case"time":return this.type;case"datetime-local":return"datetime"}return!1},isFocusable(){return!this.disabled}},methods:{onLeave(){this.$refs.datetimepicker&&this.$refs.datetimepicker.$refs.datepicker&&this.$refs.datetimepicker.$refs.datepicker.closePopup()},onSubmit(r){if(r.preventDefault(),r.stopPropagation(),!this.disabled)this.$emit("submit",r);else return!1},onUpdateModelValue(r){this.$emit("update:modelValue",r)}}},ot={class:"action-input__icon-wrapper"},lt=["disabled"],ut={class:"action-input__container"},ht=["for"],ct={class:"action-input__input-container"},dt={key:4,class:"action-input__container"},pt=["for"],mt={class:"action-input__input-container"};function ft(r,e,t,a,c,o){const d=k("NcDateTimePicker"),p=k("NcDateTimePickerNative"),n=k("NcSelect"),s=k("NcPasswordField"),i=k("NcColorPicker"),h=k("NcTextField");return b(),I("li",{class:w(["action",[{"action--disabled":t.disabled},r.$props.class]])},[g("span",{class:w(["action-input",{"action-input-picker--disabled":t.disabled,"action-input--visible-label":t.labelOutside&&t.label}]),onMouseleave:e[3]||(e[3]=(...u)=>o.onLeave&&o.onLeave(...u))},[g("span",ot,[Z(r.$slots,"icon",{},()=>[g("span",{"aria-hidden":"true",class:w(["action-input__icon",[o.isIconUrl?"action-input__icon--url":t.icon]]),style:L({backgroundImage:o.isIconUrl?`url(${t.icon})`:null})},null,6)],!0)]),g("form",{ref:"form",class:"action-input__form",disabled:t.disabled,onSubmit:e[2]||(e[2]=H((...u)=>o.onSubmit&&o.onSubmit(...u),["prevent"]))},[g("div",ut,[t.label&&t.labelOutside&&!t.isNativePicker?(b(),I("label",{key:0,class:w(["action-input__text-label",{"action-input__text-label--hidden":!t.labelOutside}]),for:t.inputId},S(t.label),11,ht)):D("",!0),g("div",ct,[o.datePickerType?(b(),x(d,T({key:0,ref:"datetimepicker",modelValue:t.modelValue,style:{"z-index":"99999999999"},placeholder:r.text,disabled:t.disabled,type:o.datePickerType,inputClass:["mx-input",{focusable:o.isFocusable}],class:"action-input__datetimepicker",appendToBody:""},r.$attrs,{"onUpdate:modelValue":o.onUpdateModelValue}),null,16,["modelValue","placeholder","disabled","type","inputClass","onUpdate:modelValue"])):t.isNativePicker?(b(),x(p,T({key:1,id:t.idNativeDateTimePicker,modelValue:t.modelValue,label:t.label,type:o.nativeDatePickerType,inputClass:{focusable:o.isFocusable},class:"action-input__datetimepicker"},r.$attrs,{"onUpdate:modelValue":o.onUpdateModelValue}),null,16,["id","modelValue","label","type","inputClass","onUpdate:modelValue"])):o.isMultiselectType?(b(),x(n,T({key:2,modelValue:t.modelValue,placeholder:r.text,disabled:t.disabled,appendToBody:!1,inputClass:{focusable:o.isFocusable},class:"action-input__multi"},r.$attrs,{"onUpdate:modelValue":o.onUpdateModelValue}),null,16,["modelValue","placeholder","disabled","inputClass","onUpdate:modelValue"])):t.type==="password"?(b(),x(s,T({key:3,id:t.inputId,modelValue:t.modelValue,label:t.label,labelOutside:!t.label||t.labelOutside,placeholder:r.text,disabled:t.disabled,inputClass:{focusable:o.isFocusable},showTrailingButton:t.showTrailingButton&&!t.disabled},r.$attrs,{"onUpdate:modelValue":o.onUpdateModelValue}),null,16,["id","modelValue","label","labelOutside","placeholder","disabled","inputClass","showTrailingButton","onUpdate:modelValue"])):t.type==="color"?(b(),I("div",dt,[t.label&&t.type==="color"?(b(),I("label",{key:0,class:w(["action-input__text-label",{"action-input__text-label--hidden":!t.labelOutside}]),for:t.inputId},S(t.label),11,pt)):D("",!0),g("div",mt,[Q(i,T({id:"inputId",modelValue:t.modelValue,class:"colorpicker__trigger"},r.$attrs,{"onUpdate:modelValue":o.onUpdateModelValue,onSubmit:e[0]||(e[0]=u=>r.$refs.form.requestSubmit())}),{default:W(()=>[g("button",{class:w(["colorpicker__preview",{focusable:o.isFocusable}]),style:L({"background-color":t.modelValue})},null,6)]),_:1},16,["modelValue","onUpdate:modelValue"])])])):(b(),x(h,T({key:5,id:t.inputId,modelValue:t.modelValue,label:t.label,labelOutside:!t.label||t.labelOutside,placeholder:r.text,disabled:t.disabled,inputClass:{focusable:o.isFocusable},type:t.type,trailingButtonIcon:"arrowRight",trailingButtonLabel:t.trailingButtonLabel,showTrailingButton:t.showTrailingButton&&!t.disabled},r.$attrs,{onTrailingButtonClick:e[1]||(e[1]=u=>r.$refs.form.requestSubmit()),"onUpdate:modelValue":o.onUpdateModelValue}),null,16,["id","modelValue","label","labelOutside","placeholder","disabled","inputClass","type","trailingButtonLabel","showTrailingButton","onUpdate:modelValue"]))])])],40,lt)],34)],2)}const Nt=z(at,[["render",ft],["__scopeId","data-v-43230e98"]]);var O={exports:{}},M;function yt(){return M||(M=1,(function(r){var e=Object.prototype.hasOwnProperty,t="~";function a(){}Object.create&&(a.prototype=Object.create(null),new a().__proto__||(t=!1));function c(n,s,i){this.fn=n,this.context=s,this.once=i||!1}function o(n,s,i,h,u){if(typeof i!="function")throw new TypeError("The listener must be a function");var m=new c(i,h||n,u),f=t?t+s:s;return n._events[f]?n._events[f].fn?n._events[f]=[n._events[f],m]:n._events[f].push(m):(n._events[f]=m,n._eventsCount++),n}function d(n,s){--n._eventsCount===0?n._events=new a:delete n._events[s]}function p(){this._events=new a,this._eventsCount=0}p.prototype.eventNames=function(){var n=[],s,i;if(this._eventsCount===0)return n;for(i in s=this._events)e.call(s,i)&&n.push(t?i.slice(1):i);return Object.getOwnPropertySymbols?n.concat(Object.getOwnPropertySymbols(s)):n},p.prototype.listeners=function(n){var s=t?t+n:n,i=this._events[s];if(!i)return[];if(i.fn)return[i.fn];for(var h=0,u=i.length,m=new Array(u);hr.reason??new DOMException("This operation was aborted.","AbortError");function gt(r,e){const{milliseconds:t,fallback:a,message:c,customTimers:o={setTimeout,clearTimeout},signal:d}=e;let p,n;const s=new Promise((i,h)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(d?.aborted){h(U(d));return}if(d&&(n=()=>{h(U(d))},d.addEventListener("abort",n,{once:!0})),r.then(i,h),t===Number.POSITIVE_INFINITY)return;const u=new C;p=o.setTimeout.call(void 0,()=>{if(a){try{i(a())}catch(m){h(m)}return}typeof r.cancel=="function"&&r.cancel(),c===!1?i():c instanceof Error?h(c):(u.message=c??`Promise timed out after ${t} milliseconds`,h(u))},t)}).finally(()=>{s.clear(),n&&d&&d.removeEventListener("abort",n)});return s.clear=()=>{o.clearTimeout.call(void 0,p),p=void 0},s}function _t(r,e,t){let a=0,c=r.length;for(;c>0;){const o=Math.trunc(c/2);let d=a+o;t(r[d],e)<=0?(a=++d,c-=o+1):c=o}return a}const wt=100;class B{#e=[];#t=0;enqueue(e,t){const{priority:a=0,id:c}=t??{},{size:o}=this,d={priority:a,id:c,run:e};if(o===0){this.#e.length=0,this.#t=0,this.#e.push(d);return}if(this.#e.at(-1).priority>=a){this.#e.push(d);return}this.#r();const p=_t(this.#e,d,(n,s)=>s.priority-n.priority);this.#e.splice(p,0,d)}setPriority(e,t){const a=this.#e.findIndex((o,d)=>d>=this.#t&&o.id===e);if(a===-1)throw new ReferenceError(`No promise function with the id "${e}" exists in the queue.`);const[c]=this.#e.splice(a,1);this.enqueue(c.run,{priority:t,id:e})}remove(e){const t=this.#e.findIndex((a,c)=>cwt&&this.#t>this.#e.length/2&&this.#r(),e?.run}filter(e){const t=[];for(let a=this.#t;a=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??""}\` (${typeof e.interval})`);if(e.strict&&e.interval===0)throw new TypeError("The `strict` option requires a non-zero `interval`");if(e.strict&&e.intervalCap===Number.POSITIVE_INFINITY)throw new TypeError("The `strict` option requires a finite `intervalCap`");if(this.#e=e.carryoverIntervalCount??e.carryoverConcurrencyCount??!1,this.#t=e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,this.#p=e.intervalCap,this.#l=e.interval,this.#o=e.strict,this.#i=new e.queueClass,this.#N=e.queueClass,this.concurrency=e.concurrency,e.timeout!==void 0&&!(Number.isFinite(e.timeout)&&e.timeout>0))throw new TypeError(`Expected \`timeout\` to be a positive finite number, got \`${e.timeout}\` (${typeof e.timeout})`);this.timeout=e.timeout,this.#c=e.autoStart===!1,this.#A()}#T(e){for(;this.#n=this.#l)this.#n++;else break}(this.#n>100&&this.#n>this.#a.length/2||this.#n===this.#a.length)&&(this.#a=this.#a.slice(this.#n),this.#n=0)}#D(e){this.#o?this.#a.push(e):this.#r++}#O(){this.#o?this.#a.length>this.#n&&this.#a.pop():this.#r>0&&this.#r--}#k(){return this.#a.length-this.#n}get#M(){return this.#t?!0:this.#o?this.#k()=this.#p){const t=this.#a[this.#n],a=this.#l-(e-t);return this.#$(a),!0}return!1}if(this.#u===void 0){const t=this.#V-e;if(t<0){if(this.#_>0){const a=e-this.#_;if(a{this.#F()},e))}#x(){this.#u&&(clearInterval(this.#u),this.#u=void 0)}#P(){this.#h&&(clearTimeout(this.#h),this.#h=void 0)}#b(){if(this.#i.size===0){if(this.#x(),this.emit("empty"),this.#s===0){if(this.#P(),this.#o&&this.#n>0){const t=Date.now();this.#T(t)}this.emit("idle")}return!1}let e=!1;if(!this.#c){const t=Date.now(),a=!this.#z(t);if(this.#M&&this.#U){const c=this.#i.dequeue();this.#t||(this.#D(t),this.#m()),this.emit("active"),c(),a&&this.#S(),e=!0}}return e}#S(){this.#t||this.#u!==void 0||this.#o||(this.#u=setInterval(()=>{this.#E()},this.#l),this.#V=Date.now()+this.#l)}#E(){this.#o||(this.#r===0&&this.#s===0&&this.#u&&this.#x(),this.#r=this.#e?this.#s:0),this.#I(),this.#m()}#I(){for(;this.#b(););}get concurrency(){return this.#y}set concurrency(e){if(!(typeof e=="number"&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#y=e,this.#I()}setPriority(e,t){if(typeof t!="number"||!Number.isFinite(t))throw new TypeError(`Expected \`priority\` to be a finite number, got \`${t}\` (${typeof t})`);this.#i.setPriority(e,t)}async add(e,t={}){return t={timeout:this.timeout,...t,id:t.id??(this.#L++).toString()},new Promise((a,c)=>{const o=Symbol(`task-${t.id}`);let d=()=>{};const p=async()=>{d(),this.#s++,this.#v.set(o,{id:t.id,priority:t.priority??0,startTime:Date.now(),timeout:t.timeout});let s;try{try{t.signal?.throwIfAborted()}catch(u){throw this.#q(),this.#v.delete(o),u}this.#_=Date.now();let i=e({signal:t.signal});if(t.timeout&&(i=gt(Promise.resolve(i),{milliseconds:t.timeout,message:`Task timed out after ${t.timeout}ms (queue has ${this.#s} running, ${this.#i.size} waiting)`})),t.signal){const{signal:u}=t;i=Promise.race([i,new Promise((m,f)=>{s=()=>{f(u.reason)},u.addEventListener("abort",s,{once:!0})})])}const h=await i;a(h),this.emit("completed",h)}catch(i){c(i),this.emit("error",i)}finally{s&&t.signal?.removeEventListener("abort",s),this.#v.delete(o),queueMicrotask(()=>{this.#B()})}};this.#i.enqueue(p,t);const n=()=>{if(this.#i instanceof B){this.#i.remove(p);return}this.#i.remove?.(t.id)};if(t.signal){const{signal:s}=t,i=()=>{d(),n(),c(s.reason),this.#b(),this.emit("next")};if(d=()=>{s.removeEventListener("abort",i),this.#w.delete(d)},s.aborted){i();return}s.addEventListener("abort",i,{once:!0}),this.#w.add(d)}this.emit("add"),this.#b()})}async addAll(e,t){return Promise.all(e.map(async a=>this.add(a,t)))}start(){return this.#c?(this.#c=!1,this.#I(),this):this}pause(){this.#c=!0}clear(){for(const e of this.#w)e();this.#i=new this.#N,this.#x(),this.#C(),this.emit("empty"),this.#s===0&&(this.#P(),this.emit("idle")),this.emit("next")}async onEmpty(){this.#i.size!==0&&await this.#d("empty")}async onSizeLessThan(e){this.#i.sizethis.#i.size{const a=c=>{this.off("error",a),t(c)};this.on("error",a)})}async#d(e,t){return new Promise(a=>{const c=()=>{t&&!t()||(this.off(e,c),a())};this.on(e,c)})}get size(){return this.#i.size}sizeBy(e){return this.#i.filter(e).length}get pending(){return this.#s}get isPaused(){return this.#c}#A(){this.#t||(this.on("add",()=>{this.#i.size>0&&this.#m()}),this.on("next",()=>{this.#m()}))}#m(){this.#t||this.#g||(this.#g=!0,queueMicrotask(()=>{this.#g=!1,this.#C()}))}#q(){this.#t||(this.#O(),this.#m())}#C(){const e=this.#f;if(this.#t||this.#i.size===0){e&&(this.#f=!1,this.emit("rateLimitCleared"));return}let t;if(this.#o){const c=Date.now();this.#T(c),t=this.#k()}else t=this.#r;const a=t>=this.#p;a!==e&&(this.#f=a,this.emit(a?"rateLimit":"rateLimitCleared"))}get isRateLimited(){return this.#f}get isSaturated(){return this.#s===this.#y&&this.#i.size>0||this.isRateLimited&&this.#i.size>0}get runningTasks(){return[...this.#v.values()].map(e=>({...e}))}}export{rt as N,Pt as P,Nt as a}; +//# sourceMappingURL=NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs.map diff --git a/dist/NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs.license b/dist/NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs.license similarity index 100% rename from dist/NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs.license rename to dist/NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs.license diff --git a/dist/NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs.map b/dist/NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs.map similarity index 99% rename from dist/NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs.map rename to dist/NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs.map index 959606d3b45..aa2e7f5f511 100644 --- a/dist/NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs.map +++ b/dist/NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"mappings":"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","names":["register","t40","_hoisted_1","_hoisted_2","_sfc_main","defineComponent","mergeModels","createElementId","t","__props","modelValue","useModel","props","formattedValue","computed","formatValue","formattedMax","formattedMin","getReadableDate","value","yyyy","MM","dd","hh","mm","startDate","daysSinceBeginningOfYear","weekNumber","onInput","event","input","time","timezoneOffsetSeconds","inputDateWithTimezone","_ctx","_cache","openBlock","createElementBlock","normalizeClass","createElementVNode","toDisplayString","mergeProps","NcDateTimePickerNative","_export_sfc","t49","NcPasswordField","_sfc_main$1","defineAsyncComponent","__vitePreload","n","ActionGlobalMixin","id","type","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_sfc_render","$props","$setup","$data","$options","_component_NcDateTimePicker","resolveComponent","_component_NcDateTimePickerNative","_component_NcSelect","_component_NcPasswordField","_component_NcColorPicker","_component_NcTextField","args","renderSlot","normalizeStyle","withModifiers","createCommentVNode","createBlock","createVNode","$event","withCtx","NcActionInput","has","prefix","Events","EE","fn","context","once","addListener","emitter","listener","evt","clearEvent","EventEmitter","names","events","name","handlers","i","l","ee","listeners","a1","a2","a3","a4","a5","len","length","j","module","TimeoutError","message","options","getAbortedReason","signal","pTimeout","promise","milliseconds","fallback","customTimers","timer","abortHandler","cancelablePromise","resolve","reject","timeoutError","error","lowerBound","array","comparator","first","count","step","it","compactionThreshold","PriorityQueue","#queue","#head","run","priority","size","element","#compact","index","a","b","item","idOrRun","result","PQueue","#carryoverIntervalCount","#isIntervalIgnored","#intervalCount","#intervalCap","#rateLimitedInInterval","#rateLimitFlushScheduled","#interval","#intervalEnd","#lastExecutionTime","#intervalId","#timeoutId","#strict","#strictTicks","#strictTicksStartIndex","#queueClass","#pending","#concurrency","#isPaused","#idAssigner","#runningTasks","#queueAbortListenerCleanupFunctions","#setupRateLimitTracking","#cleanupStrictTicks","now","oldestTick","#consumeIntervalSlot","#rollbackIntervalSlot","#getActiveTicksCount","#doesIntervalAllowAnother","#doesConcurrentAllowAnother","#next","#tryToStartAnother","#onResumeInterval","#onInterval","#initializeIntervalIfNeeded","#isIntervalPausedAt","delay","#createIntervalTimeout","timeSinceLastExecution","#clearIntervalTimer","#clearTimeoutTimer","taskStarted","canInitializeInterval","job","#scheduleRateLimitUpdate","#processQueue","newConcurrency","function_","taskSymbol","cleanupQueueAbortHandler","eventListener","#rollbackIntervalConsumption","operation","_resolve","removeQueuedTask","queueAbortHandler","functions","#updateRateLimitState","#onEvent","limit","handleError","filter","previous","shouldBeRateLimited","task"],"ignoreList":[0,1,2,3,4,5,6],"sources":["../node_modules/@nextcloud/vue/dist/chunks/NcDateTimePickerNative-BeM4WOA4.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionInput-BO0lB4VP.mjs","../node_modules/eventemitter3/index.js","../node_modules/p-timeout/index.js","../node_modules/p-queue/dist/lower-bound.js","../node_modules/p-queue/dist/priority-queue.js","../node_modules/p-queue/dist/index.js"],"sourcesContent":["import '../assets/NcDateTimePickerNative-BP6eg8aU.css';\nimport { defineComponent, useModel, computed, openBlock, createElementBlock, normalizeClass, createElementVNode, toDisplayString, mergeProps, mergeModels } from \"vue\";\nimport { r as register, x as t40, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t40);\nconst _hoisted_1 = [\"for\"];\nconst _hoisted_2 = [\"id\", \"type\", \"value\", \"min\", \"max\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"NcDateTimePickerNative\",\n props: /* @__PURE__ */ mergeModels({\n class: { default: void 0 },\n id: { default: () => createElementId() },\n inputClass: { default: \"\" },\n type: { default: \"date\" },\n label: { default: () => t(\"Please choose a date\") },\n min: { default: null },\n max: { default: null },\n hideLabel: { type: Boolean }\n }, {\n \"modelValue\": { default: null },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n const formattedValue = computed(() => modelValue.value ? formatValue(modelValue.value) : \"\");\n const formattedMax = computed(() => props.max ? formatValue(props.max) : void 0);\n const formattedMin = computed(() => props.min ? formatValue(props.min) : void 0);\n function getReadableDate(value) {\n const yyyy = value.getFullYear().toString().padStart(4, \"0\");\n const MM = (value.getMonth() + 1).toString().padStart(2, \"0\");\n const dd = value.getDate().toString().padStart(2, \"0\");\n const hh = value.getHours().toString().padStart(2, \"0\");\n const mm = value.getMinutes().toString().padStart(2, \"0\");\n return { yyyy, MM, dd, hh, mm };\n }\n function formatValue(value) {\n const { yyyy, MM, dd, hh, mm } = getReadableDate(value);\n if (props.type === \"datetime-local\") {\n return `${yyyy}-${MM}-${dd}T${hh}:${mm}`;\n } else if (props.type === \"date\") {\n return `${yyyy}-${MM}-${dd}`;\n } else if (props.type === \"month\") {\n return `${yyyy}-${MM}`;\n } else if (props.type === \"time\") {\n return `${hh}:${mm}`;\n } else if (props.type === \"week\") {\n const startDate = new Date(Number.parseInt(yyyy), 0, 1);\n const daysSinceBeginningOfYear = Math.floor((value.getTime() - startDate.getTime()) / (24 * 60 * 60 * 1e3));\n const weekNumber = Math.ceil(daysSinceBeginningOfYear / 7);\n return `${yyyy}-W${weekNumber}`;\n }\n return \"\";\n }\n function onInput(event) {\n const input = event.target;\n if (!input || isNaN(input.valueAsNumber)) {\n modelValue.value = null;\n } else if (props.type === \"time\") {\n const time = input.value;\n const { yyyy, MM, dd } = getReadableDate(modelValue.value || /* @__PURE__ */ new Date());\n modelValue.value = /* @__PURE__ */ new Date(`${yyyy}-${MM}-${dd}T${time}`);\n } else if (props.type === \"month\") {\n const MM = (new Date(input.value).getMonth() + 1).toString().padStart(2, \"0\");\n const { yyyy, dd, hh, mm } = getReadableDate(modelValue.value || /* @__PURE__ */ new Date());\n modelValue.value = /* @__PURE__ */ new Date(`${yyyy}-${MM}-${dd}T${hh}:${mm}`);\n } else {\n const timezoneOffsetSeconds = new Date(input.valueAsNumber).getTimezoneOffset() * 1e3 * 60;\n const inputDateWithTimezone = input.valueAsNumber + timezoneOffsetSeconds;\n modelValue.value = new Date(inputDateWithTimezone);\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"native-datetime-picker\", _ctx.$props.class])\n }, [\n createElementVNode(\"label\", {\n class: normalizeClass([\"native-datetime-picker__label\", { \"hidden-visually\": __props.hideLabel }]),\n for: __props.id\n }, toDisplayString(__props.label), 11, _hoisted_1),\n createElementVNode(\"input\", mergeProps({\n id: __props.id,\n class: [\"native-datetime-picker__input\", __props.inputClass],\n type: __props.type,\n value: formattedValue.value,\n min: formattedMin.value,\n max: formattedMax.value\n }, _ctx.$attrs, { onInput }), null, 16, _hoisted_2)\n ], 2);\n };\n }\n});\nconst NcDateTimePickerNative = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-b97e1f7a\"]]);\nexport {\n NcDateTimePickerNative as N\n};\n//# sourceMappingURL=NcDateTimePickerNative-BeM4WOA4.mjs.map\n","import '../assets/NcActionInput-t9WvlgV0.css';\nimport { defineAsyncComponent, resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, renderSlot, normalizeStyle, withModifiers, toDisplayString, createCommentVNode, createBlock, mergeProps, createVNode, withCtx } from \"vue\";\nimport { r as register, l as t49, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { A as ActionGlobalMixin } from \"./actionGlobal-BZFdtdJL.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { N as NcDateTimePickerNative } from \"./NcDateTimePickerNative-BeM4WOA4.mjs\";\nimport { N as NcPasswordField } from \"./NcPasswordField-Be5_qcfm.mjs\";\nimport { _ as _sfc_main$1 } from \"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t49);\nconst _sfc_main = {\n name: \"NcActionInput\",\n components: {\n NcDateTimePickerNative,\n NcPasswordField,\n NcTextField: _sfc_main$1,\n // Lazy load components with more than 50kB bundle size impact\n NcColorPicker: defineAsyncComponent(() => import(\"../components/NcColorPicker/index.mjs\")),\n NcDateTimePicker: defineAsyncComponent(() => import(\"../components/NcDateTimePicker/index.mjs\")),\n NcSelect: defineAsyncComponent(() => import(\"../components/NcSelect/index.mjs\"))\n },\n mixins: [ActionGlobalMixin],\n inheritAttrs: false,\n props: {\n /**\n * id attribute of the checkbox element\n */\n id: {\n type: String,\n default: () => \"action-\" + createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * id attribute of the text input element\n */\n inputId: {\n type: String,\n default: () => \"action-input-\" + createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * Icon to show with the action, can be either a CSS class or an URL\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * type attribute of the input field\n */\n type: {\n type: String,\n default: \"text\",\n validator(type) {\n return [\n \"date\",\n \"datetime-local\",\n \"month\",\n \"multiselect\",\n \"number\",\n \"password\",\n \"search\",\n \"tel\",\n \"text\",\n \"time\",\n \"url\",\n \"week\",\n \"color\",\n \"email\"\n ].includes(type);\n }\n },\n /**\n * id attribute for the native date time picker\n */\n idNativeDateTimePicker: {\n type: String,\n default: \"date-time-picker_id\"\n },\n /**\n * Flag to use a native date time picker\n */\n isNativePicker: {\n type: Boolean,\n default: false\n },\n /**\n * The visible input label for accessibility purposes.\n */\n label: {\n type: String,\n default: null\n },\n /**\n * If you want to show the label just above the\n * input field, pass in `true` to this prop.\n */\n labelOutside: {\n type: Boolean,\n default: true\n },\n /**\n * value attribute of the input field\n */\n modelValue: {\n type: [String, Date, Number, Array],\n default: \"\"\n },\n /**\n * disabled state of the input field\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * aria-label attribute of the input field\n */\n ariaLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Attribute forwarded to the underlying NcPasswordField and NcTextField\n */\n showTrailingButton: {\n type: Boolean,\n default: true\n },\n /**\n * Trailing button label forwarded to the underlying NcTextField\n */\n trailingButtonLabel: {\n type: String,\n default: t(\"Submit\")\n },\n /**\n * CSS class to apply to the root element.\n */\n class: {\n type: [String, Array, Object],\n default: \"\"\n }\n },\n emits: [\n \"submit\",\n \"update:modelValue\"\n ],\n computed: {\n isIconUrl() {\n try {\n return new URL(this.icon);\n } catch {\n return false;\n }\n },\n isMultiselectType() {\n return this.type === \"multiselect\";\n },\n nativeDatePickerType() {\n switch (this.type) {\n case \"date\":\n case \"month\":\n case \"time\":\n case \"week\":\n case \"datetime-local\":\n return this.type;\n }\n return false;\n },\n datePickerType() {\n if (!this.isNativePicker) {\n switch (this.type) {\n case \"date\":\n case \"month\":\n case \"time\":\n return this.type;\n case \"datetime-local\":\n return \"datetime\";\n }\n }\n return false;\n },\n /**\n * determines if the action is focusable\n *\n * @return {boolean} is the action focusable ?\n */\n isFocusable() {\n return !this.disabled;\n }\n },\n methods: {\n // closing datepicker popup on mouseleave = unfocus\n onLeave() {\n if (this.$refs.datetimepicker && this.$refs.datetimepicker.$refs.datepicker) {\n this.$refs.datetimepicker.$refs.datepicker.closePopup();\n }\n },\n onSubmit(event) {\n event.preventDefault();\n event.stopPropagation();\n if (!this.disabled) {\n this.$emit(\"submit\", event);\n } else {\n return false;\n }\n },\n onUpdateModelValue(event) {\n this.$emit(\"update:modelValue\", event);\n }\n }\n};\nconst _hoisted_1 = { class: \"action-input__icon-wrapper\" };\nconst _hoisted_2 = [\"disabled\"];\nconst _hoisted_3 = { class: \"action-input__container\" };\nconst _hoisted_4 = [\"for\"];\nconst _hoisted_5 = { class: \"action-input__input-container\" };\nconst _hoisted_6 = {\n key: 4,\n class: \"action-input__container\"\n};\nconst _hoisted_7 = [\"for\"];\nconst _hoisted_8 = { class: \"action-input__input-container\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcDateTimePicker = resolveComponent(\"NcDateTimePicker\");\n const _component_NcDateTimePickerNative = resolveComponent(\"NcDateTimePickerNative\");\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n const _component_NcPasswordField = resolveComponent(\"NcPasswordField\");\n const _component_NcColorPicker = resolveComponent(\"NcColorPicker\");\n const _component_NcTextField = resolveComponent(\"NcTextField\");\n return openBlock(), createElementBlock(\"li\", {\n class: normalizeClass([\"action\", [{ \"action--disabled\": $props.disabled }, _ctx.$props.class]])\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass([\"action-input\", {\n \"action-input-picker--disabled\": $props.disabled,\n \"action-input--visible-label\": $props.labelOutside && $props.label\n }]),\n onMouseleave: _cache[3] || (_cache[3] = (...args) => $options.onLeave && $options.onLeave(...args))\n }, [\n createElementVNode(\"span\", _hoisted_1, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createElementVNode(\"span\", {\n \"aria-hidden\": \"true\",\n class: normalizeClass([\"action-input__icon\", [$options.isIconUrl ? \"action-input__icon--url\" : $props.icon]]),\n style: normalizeStyle({ backgroundImage: $options.isIconUrl ? `url(${$props.icon})` : null })\n }, null, 6)\n ], true)\n ]),\n createElementVNode(\"form\", {\n ref: \"form\",\n class: \"action-input__form\",\n disabled: $props.disabled,\n onSubmit: _cache[2] || (_cache[2] = withModifiers((...args) => $options.onSubmit && $options.onSubmit(...args), [\"prevent\"]))\n }, [\n createElementVNode(\"div\", _hoisted_3, [\n $props.label && $props.labelOutside && !$props.isNativePicker ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: normalizeClass([\"action-input__text-label\", { \"action-input__text-label--hidden\": !$props.labelOutside }]),\n for: $props.inputId\n }, toDisplayString($props.label), 11, _hoisted_4)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_5, [\n $options.datePickerType ? (openBlock(), createBlock(_component_NcDateTimePicker, mergeProps({\n key: 0,\n ref: \"datetimepicker\",\n modelValue: $props.modelValue,\n style: { \"z-index\": \"99999999999\" },\n placeholder: _ctx.text,\n disabled: $props.disabled,\n type: $options.datePickerType,\n inputClass: [\"mx-input\", { focusable: $options.isFocusable }],\n class: \"action-input__datetimepicker\",\n appendToBody: \"\"\n }, _ctx.$attrs, { \"onUpdate:modelValue\": $options.onUpdateModelValue }), null, 16, [\"modelValue\", \"placeholder\", \"disabled\", \"type\", \"inputClass\", \"onUpdate:modelValue\"])) : $props.isNativePicker ? (openBlock(), createBlock(_component_NcDateTimePickerNative, mergeProps({\n key: 1,\n id: $props.idNativeDateTimePicker,\n modelValue: $props.modelValue,\n label: $props.label,\n type: $options.nativeDatePickerType,\n inputClass: { focusable: $options.isFocusable },\n class: \"action-input__datetimepicker\"\n }, _ctx.$attrs, { \"onUpdate:modelValue\": $options.onUpdateModelValue }), null, 16, [\"id\", \"modelValue\", \"label\", \"type\", \"inputClass\", \"onUpdate:modelValue\"])) : $options.isMultiselectType ? (openBlock(), createBlock(_component_NcSelect, mergeProps({\n key: 2,\n modelValue: $props.modelValue,\n placeholder: _ctx.text,\n disabled: $props.disabled,\n appendToBody: false,\n inputClass: { focusable: $options.isFocusable },\n class: \"action-input__multi\"\n }, _ctx.$attrs, { \"onUpdate:modelValue\": $options.onUpdateModelValue }), null, 16, [\"modelValue\", \"placeholder\", \"disabled\", \"inputClass\", \"onUpdate:modelValue\"])) : $props.type === \"password\" ? (openBlock(), createBlock(_component_NcPasswordField, mergeProps({\n key: 3,\n id: $props.inputId,\n modelValue: $props.modelValue,\n label: $props.label,\n labelOutside: !$props.label || $props.labelOutside,\n placeholder: _ctx.text,\n disabled: $props.disabled,\n inputClass: { focusable: $options.isFocusable },\n showTrailingButton: $props.showTrailingButton && !$props.disabled\n }, _ctx.$attrs, { \"onUpdate:modelValue\": $options.onUpdateModelValue }), null, 16, [\"id\", \"modelValue\", \"label\", \"labelOutside\", \"placeholder\", \"disabled\", \"inputClass\", \"showTrailingButton\", \"onUpdate:modelValue\"])) : $props.type === \"color\" ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n $props.label && $props.type === \"color\" ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: normalizeClass([\"action-input__text-label\", { \"action-input__text-label--hidden\": !$props.labelOutside }]),\n for: $props.inputId\n }, toDisplayString($props.label), 11, _hoisted_7)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_8, [\n createVNode(_component_NcColorPicker, mergeProps({\n id: \"inputId\",\n modelValue: $props.modelValue,\n class: \"colorpicker__trigger\"\n }, _ctx.$attrs, {\n \"onUpdate:modelValue\": $options.onUpdateModelValue,\n onSubmit: _cache[0] || (_cache[0] = ($event) => _ctx.$refs.form.requestSubmit())\n }), {\n default: withCtx(() => [\n createElementVNode(\"button\", {\n class: normalizeClass([\"colorpicker__preview\", { focusable: $options.isFocusable }]),\n style: normalizeStyle({ \"background-color\": $props.modelValue })\n }, null, 6)\n ]),\n _: 1\n }, 16, [\"modelValue\", \"onUpdate:modelValue\"])\n ])\n ])) : (openBlock(), createBlock(_component_NcTextField, mergeProps({\n key: 5,\n id: $props.inputId,\n modelValue: $props.modelValue,\n label: $props.label,\n labelOutside: !$props.label || $props.labelOutside,\n placeholder: _ctx.text,\n disabled: $props.disabled,\n inputClass: { focusable: $options.isFocusable },\n type: $props.type,\n trailingButtonIcon: \"arrowRight\",\n trailingButtonLabel: $props.trailingButtonLabel,\n showTrailingButton: $props.showTrailingButton && !$props.disabled\n }, _ctx.$attrs, {\n onTrailingButtonClick: _cache[1] || (_cache[1] = ($event) => _ctx.$refs.form.requestSubmit()),\n \"onUpdate:modelValue\": $options.onUpdateModelValue\n }), null, 16, [\"id\", \"modelValue\", \"label\", \"labelOutside\", \"placeholder\", \"disabled\", \"inputClass\", \"type\", \"trailingButtonLabel\", \"showTrailingButton\", \"onUpdate:modelValue\"]))\n ])\n ])\n ], 40, _hoisted_2)\n ], 34)\n ], 2);\n}\nconst NcActionInput = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-43230e98\"]]);\nexport {\n NcActionInput as N\n};\n//# sourceMappingURL=NcActionInput-BO0lB4VP.mjs.map\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","export class TimeoutError extends Error {\n\tname = 'TimeoutError';\n\n\tconstructor(message, options) {\n\t\tsuper(message, options);\n\t\tError.captureStackTrace?.(this, TimeoutError);\n\t}\n}\n\nconst getAbortedReason = signal => signal.reason ?? new DOMException('This operation was aborted.', 'AbortError');\n\nexport default function pTimeout(promise, options) {\n\tconst {\n\t\tmilliseconds,\n\t\tfallback,\n\t\tmessage,\n\t\tcustomTimers = {setTimeout, clearTimeout},\n\t\tsignal,\n\t} = options;\n\n\tlet timer;\n\tlet abortHandler;\n\n\tconst wrappedPromise = new Promise((resolve, reject) => {\n\t\tif (typeof milliseconds !== 'number' || Math.sign(milliseconds) !== 1) {\n\t\t\tthrow new TypeError(`Expected \\`milliseconds\\` to be a positive number, got \\`${milliseconds}\\``);\n\t\t}\n\n\t\tif (signal?.aborted) {\n\t\t\treject(getAbortedReason(signal));\n\t\t\treturn;\n\t\t}\n\n\t\tif (signal) {\n\t\t\tabortHandler = () => {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t};\n\n\t\t\tsignal.addEventListener('abort', abortHandler, {once: true});\n\t\t}\n\n\t\t// Use .then() instead of async IIFE to preserve stack traces\n\t\t// eslint-disable-next-line promise/prefer-await-to-then, promise/prefer-catch\n\t\tpromise.then(resolve, reject);\n\n\t\tif (milliseconds === Number.POSITIVE_INFINITY) {\n\t\t\treturn;\n\t\t}\n\n\t\t// We create the error outside of `setTimeout` to preserve the stack trace.\n\t\tconst timeoutError = new TimeoutError();\n\n\t\t// `.call(undefined, ...)` is needed for custom timers to avoid context issues\n\t\ttimer = customTimers.setTimeout.call(undefined, () => {\n\t\t\tif (fallback) {\n\t\t\t\ttry {\n\t\t\t\t\tresolve(fallback());\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (typeof promise.cancel === 'function') {\n\t\t\t\tpromise.cancel();\n\t\t\t}\n\n\t\t\tif (message === false) {\n\t\t\t\tresolve();\n\t\t\t} else if (message instanceof Error) {\n\t\t\t\treject(message);\n\t\t\t} else {\n\t\t\t\ttimeoutError.message = message ?? `Promise timed out after ${milliseconds} milliseconds`;\n\t\t\t\treject(timeoutError);\n\t\t\t}\n\t\t}, milliseconds);\n\t});\n\n\t// eslint-disable-next-line promise/prefer-await-to-then\n\tconst cancelablePromise = wrappedPromise.finally(() => {\n\t\tcancelablePromise.clear();\n\t\tif (abortHandler && signal) {\n\t\t\tsignal.removeEventListener('abort', abortHandler);\n\t\t}\n\t});\n\n\tcancelablePromise.clear = () => {\n\t\t// `.call(undefined, ...)` is needed for custom timers to avoid context issues\n\t\tcustomTimers.clearTimeout.call(undefined, timer);\n\t\ttimer = undefined;\n\t};\n\n\treturn cancelablePromise;\n}\n","// Port of lower_bound from https://en.cppreference.com/w/cpp/algorithm/lower_bound\n// Used to compute insertion index to keep queue sorted after insertion\nexport default function lowerBound(array, value, comparator) {\n let first = 0;\n let count = array.length;\n while (count > 0) {\n const step = Math.trunc(count / 2);\n let it = first + step;\n if (comparator(array[it], value) <= 0) {\n first = ++it;\n count -= step + 1;\n }\n else {\n count = step;\n }\n }\n return first;\n}\n","import lowerBound from './lower-bound.js';\nconst compactionThreshold = 100;\nexport default class PriorityQueue {\n #queue = [];\n // The queue is stored as a sorted array, but dequeued items are left before `#head` until compaction. Only items from `#head` onward are live, which keeps repeated dequeues amortized O(1).\n #head = 0;\n enqueue(run, options) {\n const { priority = 0, id, } = options ?? {};\n const { size } = this;\n const element = {\n priority,\n id,\n run,\n };\n if (size === 0) {\n // When the queue is logically empty, discard any consumed prefix before accepting new work.\n this.#queue.length = 0;\n this.#head = 0;\n this.#queue.push(element);\n return;\n }\n if (this.#queue.at(-1).priority >= priority) {\n // Same-priority and lower-priority items belong after the current tail. Appending preserves FIFO order for equal priorities.\n this.#queue.push(element);\n return;\n }\n // Binary insertion must run on the live sorted range only.\n this.#compact();\n const index = lowerBound(this.#queue, element, (a, b) => b.priority - a.priority);\n this.#queue.splice(index, 0, element);\n }\n setPriority(id, priority) {\n // A dequeued item with the same id is no longer part of the queue.\n const index = this.#queue.findIndex((element, index) => index >= this.#head && element.id === id);\n if (index === -1) {\n throw new ReferenceError(`No promise function with the id \"${id}\" exists in the queue.`);\n }\n const [item] = this.#queue.splice(index, 1);\n this.enqueue(item.run, { priority, id });\n }\n remove(idOrRun) {\n const index = this.#queue.findIndex((element, index) => {\n // The consumed prefix may still contain references that should not be removable.\n if (index < this.#head) {\n return false;\n }\n if (typeof idOrRun === 'string') {\n return element.id === idOrRun;\n }\n return element.run === idOrRun;\n });\n if (index !== -1) {\n this.#queue.splice(index, 1);\n }\n }\n dequeue() {\n if (this.#head === this.#queue.length) {\n return undefined;\n }\n const item = this.#queue[this.#head];\n this.#head++;\n if (this.#head === this.#queue.length) {\n // Fully drained queues are reset immediately so the next enqueue starts from a clean array.\n this.#queue.length = 0;\n this.#head = 0;\n }\n else if (this.#head > compactionThreshold && this.#head > this.#queue.length / 2) {\n // Keep repeated dequeues cheap, but stop the consumed prefix from growing without bound.\n this.#compact();\n }\n return item?.run;\n }\n filter(options) {\n const result = [];\n for (let index = this.#head; index < this.#queue.length; index++) {\n const element = this.#queue[index];\n if (element.priority === options.priority) {\n result.push(element.run);\n }\n }\n return result;\n }\n get size() {\n return this.#queue.length - this.#head;\n }\n #compact() {\n // Compaction restores the invariant that the whole array is the live sorted range.\n if (this.#head === 0) {\n return;\n }\n this.#queue.splice(0, this.#head);\n this.#head = 0;\n }\n}\n","import { EventEmitter } from 'eventemitter3';\nimport pTimeout from 'p-timeout';\nimport PriorityQueue from './priority-queue.js';\n/**\nPromise queue with concurrency control.\n*/\nexport default class PQueue extends EventEmitter {\n #carryoverIntervalCount;\n #isIntervalIgnored;\n #intervalCount = 0;\n #intervalCap;\n #rateLimitedInInterval = false;\n #rateLimitFlushScheduled = false;\n #interval;\n #intervalEnd = 0;\n #lastExecutionTime = 0;\n #intervalId;\n #timeoutId;\n #strict;\n // Circular buffer implementation for better performance\n #strictTicks = [];\n #strictTicksStartIndex = 0;\n #queue;\n #queueClass;\n #pending = 0;\n // The `!` is needed because of https://github.com/microsoft/TypeScript/issues/32194\n #concurrency;\n #isPaused;\n // Use to assign a unique identifier to a promise function, if not explicitly specified\n #idAssigner = 1n;\n // Track currently running tasks for debugging\n #runningTasks = new Map();\n #queueAbortListenerCleanupFunctions = new Set();\n /**\n Get or set the default timeout for all tasks. Can be changed at runtime.\n\n Operations will throw a `TimeoutError` if they don't complete within the specified time.\n\n The timeout begins when the operation is dequeued and starts execution, not while it's waiting in the queue.\n\n @example\n ```\n const queue = new PQueue({timeout: 5000});\n\n // Change timeout for all future tasks\n queue.timeout = 10000;\n ```\n */\n timeout;\n constructor(options) {\n super();\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n options = {\n carryoverIntervalCount: false,\n intervalCap: Number.POSITIVE_INFINITY,\n interval: 0,\n concurrency: Number.POSITIVE_INFINITY,\n autoStart: true,\n queueClass: PriorityQueue,\n strict: false,\n ...options,\n };\n if (!(typeof options.intervalCap === 'number' && options.intervalCap >= 1)) {\n throw new TypeError(`Expected \\`intervalCap\\` to be a number from 1 and up, got \\`${options.intervalCap?.toString() ?? ''}\\` (${typeof options.intervalCap})`);\n }\n if (options.interval === undefined || !(Number.isFinite(options.interval) && options.interval >= 0)) {\n throw new TypeError(`Expected \\`interval\\` to be a finite number >= 0, got \\`${options.interval?.toString() ?? ''}\\` (${typeof options.interval})`);\n }\n if (options.strict && options.interval === 0) {\n throw new TypeError('The `strict` option requires a non-zero `interval`');\n }\n if (options.strict && options.intervalCap === Number.POSITIVE_INFINITY) {\n throw new TypeError('The `strict` option requires a finite `intervalCap`');\n }\n // TODO: Remove this fallback in the next major version\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this.#carryoverIntervalCount = options.carryoverIntervalCount ?? options.carryoverConcurrencyCount ?? false;\n this.#isIntervalIgnored = options.intervalCap === Number.POSITIVE_INFINITY || options.interval === 0;\n this.#intervalCap = options.intervalCap;\n this.#interval = options.interval;\n this.#strict = options.strict;\n this.#queue = new options.queueClass();\n this.#queueClass = options.queueClass;\n this.concurrency = options.concurrency;\n if (options.timeout !== undefined && !(Number.isFinite(options.timeout) && options.timeout > 0)) {\n throw new TypeError(`Expected \\`timeout\\` to be a positive finite number, got \\`${options.timeout}\\` (${typeof options.timeout})`);\n }\n this.timeout = options.timeout;\n this.#isPaused = options.autoStart === false;\n this.#setupRateLimitTracking();\n }\n #cleanupStrictTicks(now) {\n // Remove ticks outside the current interval window using circular buffer approach\n while (this.#strictTicksStartIndex < this.#strictTicks.length) {\n const oldestTick = this.#strictTicks[this.#strictTicksStartIndex];\n if (oldestTick !== undefined && now - oldestTick >= this.#interval) {\n this.#strictTicksStartIndex++;\n }\n else {\n break;\n }\n }\n // Compact the array when it becomes inefficient or fully consumed\n // Compact when: (start index is large AND more than half wasted) OR all ticks expired\n const shouldCompact = (this.#strictTicksStartIndex > 100 && this.#strictTicksStartIndex > this.#strictTicks.length / 2)\n || this.#strictTicksStartIndex === this.#strictTicks.length;\n if (shouldCompact) {\n this.#strictTicks = this.#strictTicks.slice(this.#strictTicksStartIndex);\n this.#strictTicksStartIndex = 0;\n }\n }\n // Helper methods for interval consumption\n #consumeIntervalSlot(now) {\n if (this.#strict) {\n this.#strictTicks.push(now);\n }\n else {\n this.#intervalCount++;\n }\n }\n #rollbackIntervalSlot() {\n if (this.#strict) {\n // Pop from the end of the actual data (not from start index)\n if (this.#strictTicks.length > this.#strictTicksStartIndex) {\n this.#strictTicks.pop();\n }\n }\n else if (this.#intervalCount > 0) {\n this.#intervalCount--;\n }\n }\n #getActiveTicksCount() {\n return this.#strictTicks.length - this.#strictTicksStartIndex;\n }\n get #doesIntervalAllowAnother() {\n if (this.#isIntervalIgnored) {\n return true;\n }\n if (this.#strict) {\n // Cleanup already done by #isIntervalPausedAt before this is called\n return this.#getActiveTicksCount() < this.#intervalCap;\n }\n return this.#intervalCount < this.#intervalCap;\n }\n get #doesConcurrentAllowAnother() {\n return this.#pending < this.#concurrency;\n }\n #next() {\n this.#pending--;\n if (this.#pending === 0) {\n this.emit('pendingZero');\n }\n this.#tryToStartAnother();\n this.emit('next');\n }\n #onResumeInterval() {\n // Clear timeout ID before processing to prevent race condition\n // Must clear before #onInterval to allow new timeouts to be scheduled\n this.#timeoutId = undefined;\n this.#onInterval();\n this.#initializeIntervalIfNeeded();\n }\n #isIntervalPausedAt(now) {\n // Strict mode: check if we need to wait for oldest tick to age out\n if (this.#strict) {\n this.#cleanupStrictTicks(now);\n // If at capacity, need to wait for oldest tick to age out\n const activeTicksCount = this.#getActiveTicksCount();\n if (activeTicksCount >= this.#intervalCap) {\n const oldestTick = this.#strictTicks[this.#strictTicksStartIndex];\n // After cleanup, remaining ticks are within interval, so delay is always > 0\n const delay = this.#interval - (now - oldestTick);\n this.#createIntervalTimeout(delay);\n return true;\n }\n return false;\n }\n // Fixed window mode (original logic)\n if (this.#intervalId === undefined) {\n const delay = this.#intervalEnd - now;\n if (delay < 0) {\n // If the interval has expired while idle, check if we should enforce the interval\n // from the last task execution. This ensures proper spacing between tasks even\n // when the queue becomes empty and then new tasks are added.\n if (this.#lastExecutionTime > 0) {\n const timeSinceLastExecution = now - this.#lastExecutionTime;\n if (timeSinceLastExecution < this.#interval) {\n // Not enough time has passed since the last task execution\n this.#createIntervalTimeout(this.#interval - timeSinceLastExecution);\n return true;\n }\n }\n // Enough time has passed or no previous execution, allow execution\n this.#intervalCount = (this.#carryoverIntervalCount) ? this.#pending : 0;\n }\n else {\n // Act as the interval is pending\n this.#createIntervalTimeout(delay);\n return true;\n }\n }\n return false;\n }\n #createIntervalTimeout(delay) {\n if (this.#timeoutId !== undefined) {\n return;\n }\n this.#timeoutId = setTimeout(() => {\n this.#onResumeInterval();\n }, delay);\n }\n #clearIntervalTimer() {\n if (this.#intervalId) {\n clearInterval(this.#intervalId);\n this.#intervalId = undefined;\n }\n }\n #clearTimeoutTimer() {\n if (this.#timeoutId) {\n clearTimeout(this.#timeoutId);\n this.#timeoutId = undefined;\n }\n }\n #tryToStartAnother() {\n if (this.#queue.size === 0) {\n // We can clear the interval (\"pause\")\n // Because we can redo it later (\"resume\")\n this.#clearIntervalTimer();\n this.emit('empty');\n if (this.#pending === 0) {\n // Clear timeout as well when completely idle\n this.#clearTimeoutTimer();\n // Compact strict ticks when idle to free memory\n if (this.#strict && this.#strictTicksStartIndex > 0) {\n const now = Date.now();\n this.#cleanupStrictTicks(now);\n }\n this.emit('idle');\n }\n return false;\n }\n let taskStarted = false;\n if (!this.#isPaused) {\n const now = Date.now();\n const canInitializeInterval = !this.#isIntervalPausedAt(now);\n if (this.#doesIntervalAllowAnother && this.#doesConcurrentAllowAnother) {\n const job = this.#queue.dequeue();\n if (!this.#isIntervalIgnored) {\n this.#consumeIntervalSlot(now);\n this.#scheduleRateLimitUpdate();\n }\n this.emit('active');\n job();\n if (canInitializeInterval) {\n this.#initializeIntervalIfNeeded();\n }\n taskStarted = true;\n }\n }\n return taskStarted;\n }\n #initializeIntervalIfNeeded() {\n if (this.#isIntervalIgnored || this.#intervalId !== undefined) {\n return;\n }\n // Strict mode uses timeouts instead of interval timers\n if (this.#strict) {\n return;\n }\n this.#intervalId = setInterval(() => {\n this.#onInterval();\n }, this.#interval);\n this.#intervalEnd = Date.now() + this.#interval;\n }\n #onInterval() {\n // Non-strict mode uses interval timers and intervalCount\n if (!this.#strict) {\n if (this.#intervalCount === 0 && this.#pending === 0 && this.#intervalId) {\n this.#clearIntervalTimer();\n }\n this.#intervalCount = this.#carryoverIntervalCount ? this.#pending : 0;\n }\n this.#processQueue();\n this.#scheduleRateLimitUpdate();\n }\n /**\n Executes all queued functions until it reaches the limit.\n */\n #processQueue() {\n // eslint-disable-next-line no-empty\n while (this.#tryToStartAnother()) { }\n }\n get concurrency() {\n return this.#concurrency;\n }\n set concurrency(newConcurrency) {\n if (!(typeof newConcurrency === 'number' && newConcurrency >= 1)) {\n throw new TypeError(`Expected \\`concurrency\\` to be a number from 1 and up, got \\`${newConcurrency}\\` (${typeof newConcurrency})`);\n }\n this.#concurrency = newConcurrency;\n this.#processQueue();\n }\n /**\n Updates the priority of a promise function by its id, affecting its execution order. Requires a defined concurrency limit to take effect.\n\n For example, this can be used to prioritize a promise function to run earlier.\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 1});\n\n queue.add(async () => '🦄', {priority: 1});\n queue.add(async () => '🦀', {priority: 0, id: '🦀'});\n queue.add(async () => '🦄', {priority: 1});\n queue.add(async () => '🦄', {priority: 1});\n\n queue.setPriority('🦀', 2);\n ```\n\n In this case, the promise function with `id: '🦀'` runs second.\n\n You can also deprioritize a promise function to delay its execution:\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 1});\n\n queue.add(async () => '🦄', {priority: 1});\n queue.add(async () => '🦀', {priority: 1, id: '🦀'});\n queue.add(async () => '🦄');\n queue.add(async () => '🦄', {priority: 0});\n\n queue.setPriority('🦀', -1);\n ```\n Here, the promise function with `id: '🦀'` executes last.\n */\n setPriority(id, priority) {\n if (typeof priority !== 'number' || !Number.isFinite(priority)) {\n throw new TypeError(`Expected \\`priority\\` to be a finite number, got \\`${priority}\\` (${typeof priority})`);\n }\n this.#queue.setPriority(id, priority);\n }\n async add(function_, options = {}) {\n // Create a copy to avoid mutating the original options object\n options = {\n timeout: this.timeout,\n ...options,\n // Assign unique ID if not provided\n id: options.id ?? (this.#idAssigner++).toString(),\n };\n return new Promise((resolve, reject) => {\n // Create a unique symbol for tracking this task\n const taskSymbol = Symbol(`task-${options.id}`);\n let cleanupQueueAbortHandler = () => undefined;\n const run = async () => {\n // Task is now running — remove the queued-state abort listener\n cleanupQueueAbortHandler();\n this.#pending++;\n // Track this running task\n this.#runningTasks.set(taskSymbol, {\n id: options.id,\n priority: options.priority ?? 0, // Match priority-queue default\n startTime: Date.now(),\n timeout: options.timeout,\n });\n let eventListener;\n try {\n // Check abort signal - if aborted, need to decrement the counter\n // that was incremented in tryToStartAnother\n try {\n options.signal?.throwIfAborted();\n }\n catch (error) {\n this.#rollbackIntervalConsumption();\n // Clean up tracking before throwing\n this.#runningTasks.delete(taskSymbol);\n throw error;\n }\n this.#lastExecutionTime = Date.now();\n let operation = function_({ signal: options.signal });\n if (options.timeout) {\n operation = pTimeout(Promise.resolve(operation), {\n milliseconds: options.timeout,\n message: `Task timed out after ${options.timeout}ms (queue has ${this.#pending} running, ${this.#queue.size} waiting)`,\n });\n }\n if (options.signal) {\n const { signal } = options;\n operation = Promise.race([operation, new Promise((_resolve, reject) => {\n eventListener = () => {\n reject(signal.reason);\n };\n signal.addEventListener('abort', eventListener, { once: true });\n })]);\n }\n const result = await operation;\n resolve(result);\n this.emit('completed', result);\n }\n catch (error) {\n reject(error);\n this.emit('error', error);\n }\n finally {\n // Clean up abort event listener\n if (eventListener) {\n options.signal?.removeEventListener('abort', eventListener);\n }\n // Remove from running tasks\n this.#runningTasks.delete(taskSymbol);\n // Use queueMicrotask to prevent deep recursion while maintaining timing\n queueMicrotask(() => {\n this.#next();\n });\n }\n };\n this.#queue.enqueue(run, options);\n const removeQueuedTask = () => {\n if (this.#queue instanceof PriorityQueue) {\n this.#queue.remove(run);\n return;\n }\n this.#queue.remove?.(options.id); // Intentionally best-effort: queued abort removal is only supported for queue classes that implement `.remove()`.\n };\n // Handle abort while task is waiting in the queue\n if (options.signal) {\n const { signal } = options;\n const queueAbortHandler = () => {\n cleanupQueueAbortHandler();\n removeQueuedTask();\n reject(signal.reason);\n this.#tryToStartAnother();\n this.emit('next');\n };\n cleanupQueueAbortHandler = () => {\n signal.removeEventListener('abort', queueAbortHandler);\n this.#queueAbortListenerCleanupFunctions.delete(cleanupQueueAbortHandler);\n };\n if (signal.aborted) {\n queueAbortHandler();\n return;\n }\n signal.addEventListener('abort', queueAbortHandler, { once: true });\n this.#queueAbortListenerCleanupFunctions.add(cleanupQueueAbortHandler);\n }\n this.emit('add');\n this.#tryToStartAnother();\n });\n }\n async addAll(functions, options) {\n return Promise.all(functions.map(async (function_) => this.add(function_, options)));\n }\n /**\n Start (or resume) executing enqueued tasks within concurrency limit. No need to call this if queue is not paused (via `options.autoStart = false` or by `.pause()` method.)\n */\n start() {\n if (!this.#isPaused) {\n return this;\n }\n this.#isPaused = false;\n this.#processQueue();\n return this;\n }\n /**\n Put queue execution on hold.\n */\n pause() {\n this.#isPaused = true;\n }\n /**\n Clear the queue.\n */\n clear() {\n for (const cleanupQueueAbortHandler of this.#queueAbortListenerCleanupFunctions) {\n cleanupQueueAbortHandler();\n }\n this.#queue = new this.#queueClass();\n // Clear interval timer since queue is now empty (consistent with #tryToStartAnother)\n this.#clearIntervalTimer();\n // Note: We preserve strict mode rate-limiting state (ticks and timeout)\n // because clear() only clears queued tasks, not rate limit history.\n // This ensures that rate limits are still enforced after clearing the queue.\n // Note: We don't clear #runningTasks as those tasks are still running\n // They will be removed when they complete in the finally block\n // Force synchronous update since clear() should have immediate effect\n this.#updateRateLimitState();\n // Emit events so waiters (onEmpty, onIdle, onSizeLessThan) can resolve\n this.emit('empty');\n if (this.#pending === 0) {\n this.#clearTimeoutTimer();\n this.emit('idle');\n }\n this.emit('next');\n }\n /**\n Can be called multiple times. Useful if you for example add additional items at a later time.\n\n @returns A promise that settles when the queue becomes empty.\n */\n async onEmpty() {\n // Instantly resolve if the queue is empty\n if (this.#queue.size === 0) {\n return;\n }\n await this.#onEvent('empty');\n }\n /**\n @returns A promise that settles when the queue size is less than the given limit: `queue.size < limit`.\n\n If you want to avoid having the queue grow beyond a certain size you can `await queue.onSizeLessThan()` before adding a new item.\n\n Note that this only limits the number of items waiting to start. There could still be up to `concurrency` jobs already running that this call does not include in its calculation.\n */\n async onSizeLessThan(limit) {\n // Instantly resolve if the queue is empty.\n if (this.#queue.size < limit) {\n return;\n }\n await this.#onEvent('next', () => this.#queue.size < limit);\n }\n /**\n The difference with `.onEmpty` is that `.onIdle` guarantees that all work from the queue has finished. `.onEmpty` merely signals that the queue is empty, but it could mean that some promises haven't completed yet.\n\n @returns A promise that settles when the queue becomes empty, and all promises have completed; `queue.size === 0 && queue.pending === 0`.\n */\n async onIdle() {\n // Instantly resolve if none pending and if nothing else is queued\n if (this.#pending === 0 && this.#queue.size === 0) {\n return;\n }\n await this.#onEvent('idle');\n }\n /**\n The difference with `.onIdle` is that `.onPendingZero` only waits for currently running tasks to finish, ignoring queued tasks.\n\n @returns A promise that settles when all currently running tasks have completed; `queue.pending === 0`.\n */\n async onPendingZero() {\n if (this.#pending === 0) {\n return;\n }\n await this.#onEvent('pendingZero');\n }\n /**\n @returns A promise that settles when the queue becomes rate-limited due to intervalCap.\n */\n async onRateLimit() {\n if (this.isRateLimited) {\n return;\n }\n await this.#onEvent('rateLimit');\n }\n /**\n @returns A promise that settles when the queue is no longer rate-limited.\n */\n async onRateLimitCleared() {\n if (!this.isRateLimited) {\n return;\n }\n await this.#onEvent('rateLimitCleared');\n }\n /**\n @returns A promise that rejects when any task in the queue errors.\n\n Use with `Promise.race([queue.onError(), queue.onIdle()])` to fail fast on the first error while still resolving normally when the queue goes idle.\n\n Important: The promise returned by `add()` still rejects. You must handle each `add()` promise (for example, `.catch(() => {})`) to avoid unhandled rejections.\n\n @example\n ```\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 2});\n\n queue.add(() => fetchData(1)).catch(() => {});\n queue.add(() => fetchData(2)).catch(() => {});\n queue.add(() => fetchData(3)).catch(() => {});\n\n // Stop processing on first error\n try {\n await Promise.race([\n queue.onError(),\n queue.onIdle()\n ]);\n } catch (error) {\n queue.pause(); // Stop processing remaining tasks\n console.error('Queue failed:', error);\n }\n ```\n */\n // eslint-disable-next-line @typescript-eslint/promise-function-async\n onError() {\n return new Promise((_resolve, reject) => {\n const handleError = (error) => {\n this.off('error', handleError);\n reject(error);\n };\n this.on('error', handleError);\n });\n }\n async #onEvent(event, filter) {\n return new Promise(resolve => {\n const listener = () => {\n if (filter && !filter()) {\n return;\n }\n this.off(event, listener);\n resolve();\n };\n this.on(event, listener);\n });\n }\n /**\n Size of the queue, the number of queued items waiting to run.\n */\n get size() {\n return this.#queue.size;\n }\n /**\n Size of the queue, filtered by the given options.\n\n For example, this can be used to find the number of items remaining in the queue with a specific priority level.\n */\n sizeBy(options) {\n // eslint-disable-next-line unicorn/no-array-callback-reference\n return this.#queue.filter(options).length;\n }\n /**\n Number of running items (no longer in the queue).\n */\n get pending() {\n return this.#pending;\n }\n /**\n Whether the queue is currently paused.\n */\n get isPaused() {\n return this.#isPaused;\n }\n #setupRateLimitTracking() {\n // Only schedule updates when rate limiting is enabled\n if (this.#isIntervalIgnored) {\n return;\n }\n // Wire up to lifecycle events that affect rate limit state\n // Only 'add' and 'next' can actually change rate limit state\n this.on('add', () => {\n if (this.#queue.size > 0) {\n this.#scheduleRateLimitUpdate();\n }\n });\n this.on('next', () => {\n this.#scheduleRateLimitUpdate();\n });\n }\n #scheduleRateLimitUpdate() {\n // Skip if rate limiting is not enabled or already scheduled\n if (this.#isIntervalIgnored || this.#rateLimitFlushScheduled) {\n return;\n }\n this.#rateLimitFlushScheduled = true;\n queueMicrotask(() => {\n this.#rateLimitFlushScheduled = false;\n this.#updateRateLimitState();\n });\n }\n #rollbackIntervalConsumption() {\n if (this.#isIntervalIgnored) {\n return;\n }\n this.#rollbackIntervalSlot();\n this.#scheduleRateLimitUpdate();\n }\n #updateRateLimitState() {\n const previous = this.#rateLimitedInInterval;\n // Early exit if rate limiting is disabled or queue is empty\n if (this.#isIntervalIgnored || this.#queue.size === 0) {\n if (previous) {\n this.#rateLimitedInInterval = false;\n this.emit('rateLimitCleared');\n }\n return;\n }\n // Get the current count based on mode\n let count;\n if (this.#strict) {\n const now = Date.now();\n this.#cleanupStrictTicks(now);\n count = this.#getActiveTicksCount();\n }\n else {\n count = this.#intervalCount;\n }\n const shouldBeRateLimited = count >= this.#intervalCap;\n if (shouldBeRateLimited !== previous) {\n this.#rateLimitedInInterval = shouldBeRateLimited;\n this.emit(shouldBeRateLimited ? 'rateLimit' : 'rateLimitCleared');\n }\n }\n /**\n Whether the queue is currently rate-limited due to intervalCap.\n */\n get isRateLimited() {\n return this.#rateLimitedInInterval;\n }\n /**\n Whether the queue is saturated. Returns `true` when:\n - All concurrency slots are occupied and tasks are waiting, OR\n - The queue is rate-limited and tasks are waiting\n\n Useful for detecting backpressure and potential hanging tasks.\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 2});\n\n // Backpressure handling\n if (queue.isSaturated) {\n console.log('Queue is saturated, waiting for capacity...');\n await queue.onSizeLessThan(queue.concurrency);\n }\n\n // Monitoring for stuck tasks\n setInterval(() => {\n if (queue.isSaturated) {\n console.warn(`Queue saturated: ${queue.pending} running, ${queue.size} waiting`);\n }\n }, 60000);\n ```\n */\n get isSaturated() {\n return (this.#pending === this.#concurrency && this.#queue.size > 0)\n || (this.isRateLimited && this.#queue.size > 0);\n }\n /**\n The tasks currently being executed. Each task includes its `id`, `priority`, `startTime`, and `timeout` (if set).\n\n Returns an array of task info objects.\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 2});\n\n // Add tasks with IDs for better debugging\n queue.add(() => fetchUser(123), {id: 'user-123'});\n queue.add(() => fetchPosts(456), {id: 'posts-456', priority: 1});\n\n // Check what's running\n console.log(queue.runningTasks);\n // => [{\n // id: 'user-123',\n // priority: 0,\n // startTime: 1759253001716,\n // timeout: undefined\n // }, {\n // id: 'posts-456',\n // priority: 1,\n // startTime: 1759253001916,\n // timeout: undefined\n // }]\n ```\n */\n get runningTasks() {\n // Return fresh array with fresh objects to prevent mutations\n return [...this.#runningTasks.values()].map(task => ({ ...task }));\n }\n}\nexport { default as PriorityQueue } from './priority-queue.js';\n/**\nError thrown when a task times out.\n\n@example\n```\nimport PQueue, {TimeoutError} from 'p-queue';\n\nconst queue = new PQueue({timeout: 1000});\n\ntry {\n await queue.add(() => someTask());\n} catch (error) {\n if (error instanceof TimeoutError) {\n console.log('Task timed out');\n }\n}\n```\n*/\nexport { TimeoutError } from 'p-timeout';\n"],"file":"NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs"} \ No newline at end of file +{"version":3,"mappings":"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","names":["register","t40","_hoisted_1","_hoisted_2","_sfc_main","defineComponent","mergeModels","createElementId","t","__props","modelValue","useModel","props","formattedValue","computed","formatValue","formattedMax","formattedMin","getReadableDate","value","yyyy","MM","dd","hh","mm","startDate","daysSinceBeginningOfYear","weekNumber","onInput","event","input","time","timezoneOffsetSeconds","inputDateWithTimezone","_ctx","_cache","openBlock","createElementBlock","normalizeClass","createElementVNode","toDisplayString","mergeProps","NcDateTimePickerNative","_export_sfc","t49","NcPasswordField","_sfc_main$1","defineAsyncComponent","__vitePreload","n","ActionGlobalMixin","id","type","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_sfc_render","$props","$setup","$data","$options","_component_NcDateTimePicker","resolveComponent","_component_NcDateTimePickerNative","_component_NcSelect","_component_NcPasswordField","_component_NcColorPicker","_component_NcTextField","args","renderSlot","normalizeStyle","withModifiers","createCommentVNode","createBlock","createVNode","$event","withCtx","NcActionInput","has","prefix","Events","EE","fn","context","once","addListener","emitter","listener","evt","clearEvent","EventEmitter","names","events","name","handlers","i","l","ee","listeners","a1","a2","a3","a4","a5","len","length","j","module","TimeoutError","message","options","getAbortedReason","signal","pTimeout","promise","milliseconds","fallback","customTimers","timer","abortHandler","cancelablePromise","resolve","reject","timeoutError","error","lowerBound","array","comparator","first","count","step","it","compactionThreshold","PriorityQueue","#queue","#head","run","priority","size","element","#compact","index","a","b","item","idOrRun","result","PQueue","#carryoverIntervalCount","#isIntervalIgnored","#intervalCount","#intervalCap","#rateLimitedInInterval","#rateLimitFlushScheduled","#interval","#intervalEnd","#lastExecutionTime","#intervalId","#timeoutId","#strict","#strictTicks","#strictTicksStartIndex","#queueClass","#pending","#concurrency","#isPaused","#idAssigner","#runningTasks","#queueAbortListenerCleanupFunctions","#setupRateLimitTracking","#cleanupStrictTicks","now","oldestTick","#consumeIntervalSlot","#rollbackIntervalSlot","#getActiveTicksCount","#doesIntervalAllowAnother","#doesConcurrentAllowAnother","#next","#tryToStartAnother","#onResumeInterval","#onInterval","#initializeIntervalIfNeeded","#isIntervalPausedAt","delay","#createIntervalTimeout","timeSinceLastExecution","#clearIntervalTimer","#clearTimeoutTimer","taskStarted","canInitializeInterval","job","#scheduleRateLimitUpdate","#processQueue","newConcurrency","function_","taskSymbol","cleanupQueueAbortHandler","eventListener","#rollbackIntervalConsumption","operation","_resolve","removeQueuedTask","queueAbortHandler","functions","#updateRateLimitState","#onEvent","limit","handleError","filter","previous","shouldBeRateLimited","task"],"ignoreList":[0,1,2,3,4,5,6],"sources":["../node_modules/@nextcloud/vue/dist/chunks/NcDateTimePickerNative-BeM4WOA4.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionInput-BO0lB4VP.mjs","../node_modules/eventemitter3/index.js","../node_modules/p-timeout/index.js","../node_modules/p-queue/dist/lower-bound.js","../node_modules/p-queue/dist/priority-queue.js","../node_modules/p-queue/dist/index.js"],"sourcesContent":["import '../assets/NcDateTimePickerNative-BP6eg8aU.css';\nimport { defineComponent, useModel, computed, openBlock, createElementBlock, normalizeClass, createElementVNode, toDisplayString, mergeProps, mergeModels } from \"vue\";\nimport { r as register, x as t40, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t40);\nconst _hoisted_1 = [\"for\"];\nconst _hoisted_2 = [\"id\", \"type\", \"value\", \"min\", \"max\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"NcDateTimePickerNative\",\n props: /* @__PURE__ */ mergeModels({\n class: { default: void 0 },\n id: { default: () => createElementId() },\n inputClass: { default: \"\" },\n type: { default: \"date\" },\n label: { default: () => t(\"Please choose a date\") },\n min: { default: null },\n max: { default: null },\n hideLabel: { type: Boolean }\n }, {\n \"modelValue\": { default: null },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n const formattedValue = computed(() => modelValue.value ? formatValue(modelValue.value) : \"\");\n const formattedMax = computed(() => props.max ? formatValue(props.max) : void 0);\n const formattedMin = computed(() => props.min ? formatValue(props.min) : void 0);\n function getReadableDate(value) {\n const yyyy = value.getFullYear().toString().padStart(4, \"0\");\n const MM = (value.getMonth() + 1).toString().padStart(2, \"0\");\n const dd = value.getDate().toString().padStart(2, \"0\");\n const hh = value.getHours().toString().padStart(2, \"0\");\n const mm = value.getMinutes().toString().padStart(2, \"0\");\n return { yyyy, MM, dd, hh, mm };\n }\n function formatValue(value) {\n const { yyyy, MM, dd, hh, mm } = getReadableDate(value);\n if (props.type === \"datetime-local\") {\n return `${yyyy}-${MM}-${dd}T${hh}:${mm}`;\n } else if (props.type === \"date\") {\n return `${yyyy}-${MM}-${dd}`;\n } else if (props.type === \"month\") {\n return `${yyyy}-${MM}`;\n } else if (props.type === \"time\") {\n return `${hh}:${mm}`;\n } else if (props.type === \"week\") {\n const startDate = new Date(Number.parseInt(yyyy), 0, 1);\n const daysSinceBeginningOfYear = Math.floor((value.getTime() - startDate.getTime()) / (24 * 60 * 60 * 1e3));\n const weekNumber = Math.ceil(daysSinceBeginningOfYear / 7);\n return `${yyyy}-W${weekNumber}`;\n }\n return \"\";\n }\n function onInput(event) {\n const input = event.target;\n if (!input || isNaN(input.valueAsNumber)) {\n modelValue.value = null;\n } else if (props.type === \"time\") {\n const time = input.value;\n const { yyyy, MM, dd } = getReadableDate(modelValue.value || /* @__PURE__ */ new Date());\n modelValue.value = /* @__PURE__ */ new Date(`${yyyy}-${MM}-${dd}T${time}`);\n } else if (props.type === \"month\") {\n const MM = (new Date(input.value).getMonth() + 1).toString().padStart(2, \"0\");\n const { yyyy, dd, hh, mm } = getReadableDate(modelValue.value || /* @__PURE__ */ new Date());\n modelValue.value = /* @__PURE__ */ new Date(`${yyyy}-${MM}-${dd}T${hh}:${mm}`);\n } else {\n const timezoneOffsetSeconds = new Date(input.valueAsNumber).getTimezoneOffset() * 1e3 * 60;\n const inputDateWithTimezone = input.valueAsNumber + timezoneOffsetSeconds;\n modelValue.value = new Date(inputDateWithTimezone);\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"native-datetime-picker\", _ctx.$props.class])\n }, [\n createElementVNode(\"label\", {\n class: normalizeClass([\"native-datetime-picker__label\", { \"hidden-visually\": __props.hideLabel }]),\n for: __props.id\n }, toDisplayString(__props.label), 11, _hoisted_1),\n createElementVNode(\"input\", mergeProps({\n id: __props.id,\n class: [\"native-datetime-picker__input\", __props.inputClass],\n type: __props.type,\n value: formattedValue.value,\n min: formattedMin.value,\n max: formattedMax.value\n }, _ctx.$attrs, { onInput }), null, 16, _hoisted_2)\n ], 2);\n };\n }\n});\nconst NcDateTimePickerNative = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-b97e1f7a\"]]);\nexport {\n NcDateTimePickerNative as N\n};\n//# sourceMappingURL=NcDateTimePickerNative-BeM4WOA4.mjs.map\n","import '../assets/NcActionInput-t9WvlgV0.css';\nimport { defineAsyncComponent, resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, renderSlot, normalizeStyle, withModifiers, toDisplayString, createCommentVNode, createBlock, mergeProps, createVNode, withCtx } from \"vue\";\nimport { r as register, l as t49, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { A as ActionGlobalMixin } from \"./actionGlobal-BZFdtdJL.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { N as NcDateTimePickerNative } from \"./NcDateTimePickerNative-BeM4WOA4.mjs\";\nimport { N as NcPasswordField } from \"./NcPasswordField-Be5_qcfm.mjs\";\nimport { _ as _sfc_main$1 } from \"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t49);\nconst _sfc_main = {\n name: \"NcActionInput\",\n components: {\n NcDateTimePickerNative,\n NcPasswordField,\n NcTextField: _sfc_main$1,\n // Lazy load components with more than 50kB bundle size impact\n NcColorPicker: defineAsyncComponent(() => import(\"../components/NcColorPicker/index.mjs\")),\n NcDateTimePicker: defineAsyncComponent(() => import(\"../components/NcDateTimePicker/index.mjs\")),\n NcSelect: defineAsyncComponent(() => import(\"../components/NcSelect/index.mjs\"))\n },\n mixins: [ActionGlobalMixin],\n inheritAttrs: false,\n props: {\n /**\n * id attribute of the checkbox element\n */\n id: {\n type: String,\n default: () => \"action-\" + createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * id attribute of the text input element\n */\n inputId: {\n type: String,\n default: () => \"action-input-\" + createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * Icon to show with the action, can be either a CSS class or an URL\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * type attribute of the input field\n */\n type: {\n type: String,\n default: \"text\",\n validator(type) {\n return [\n \"date\",\n \"datetime-local\",\n \"month\",\n \"multiselect\",\n \"number\",\n \"password\",\n \"search\",\n \"tel\",\n \"text\",\n \"time\",\n \"url\",\n \"week\",\n \"color\",\n \"email\"\n ].includes(type);\n }\n },\n /**\n * id attribute for the native date time picker\n */\n idNativeDateTimePicker: {\n type: String,\n default: \"date-time-picker_id\"\n },\n /**\n * Flag to use a native date time picker\n */\n isNativePicker: {\n type: Boolean,\n default: false\n },\n /**\n * The visible input label for accessibility purposes.\n */\n label: {\n type: String,\n default: null\n },\n /**\n * If you want to show the label just above the\n * input field, pass in `true` to this prop.\n */\n labelOutside: {\n type: Boolean,\n default: true\n },\n /**\n * value attribute of the input field\n */\n modelValue: {\n type: [String, Date, Number, Array],\n default: \"\"\n },\n /**\n * disabled state of the input field\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * aria-label attribute of the input field\n */\n ariaLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Attribute forwarded to the underlying NcPasswordField and NcTextField\n */\n showTrailingButton: {\n type: Boolean,\n default: true\n },\n /**\n * Trailing button label forwarded to the underlying NcTextField\n */\n trailingButtonLabel: {\n type: String,\n default: t(\"Submit\")\n },\n /**\n * CSS class to apply to the root element.\n */\n class: {\n type: [String, Array, Object],\n default: \"\"\n }\n },\n emits: [\n \"submit\",\n \"update:modelValue\"\n ],\n computed: {\n isIconUrl() {\n try {\n return new URL(this.icon);\n } catch {\n return false;\n }\n },\n isMultiselectType() {\n return this.type === \"multiselect\";\n },\n nativeDatePickerType() {\n switch (this.type) {\n case \"date\":\n case \"month\":\n case \"time\":\n case \"week\":\n case \"datetime-local\":\n return this.type;\n }\n return false;\n },\n datePickerType() {\n if (!this.isNativePicker) {\n switch (this.type) {\n case \"date\":\n case \"month\":\n case \"time\":\n return this.type;\n case \"datetime-local\":\n return \"datetime\";\n }\n }\n return false;\n },\n /**\n * determines if the action is focusable\n *\n * @return {boolean} is the action focusable ?\n */\n isFocusable() {\n return !this.disabled;\n }\n },\n methods: {\n // closing datepicker popup on mouseleave = unfocus\n onLeave() {\n if (this.$refs.datetimepicker && this.$refs.datetimepicker.$refs.datepicker) {\n this.$refs.datetimepicker.$refs.datepicker.closePopup();\n }\n },\n onSubmit(event) {\n event.preventDefault();\n event.stopPropagation();\n if (!this.disabled) {\n this.$emit(\"submit\", event);\n } else {\n return false;\n }\n },\n onUpdateModelValue(event) {\n this.$emit(\"update:modelValue\", event);\n }\n }\n};\nconst _hoisted_1 = { class: \"action-input__icon-wrapper\" };\nconst _hoisted_2 = [\"disabled\"];\nconst _hoisted_3 = { class: \"action-input__container\" };\nconst _hoisted_4 = [\"for\"];\nconst _hoisted_5 = { class: \"action-input__input-container\" };\nconst _hoisted_6 = {\n key: 4,\n class: \"action-input__container\"\n};\nconst _hoisted_7 = [\"for\"];\nconst _hoisted_8 = { class: \"action-input__input-container\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcDateTimePicker = resolveComponent(\"NcDateTimePicker\");\n const _component_NcDateTimePickerNative = resolveComponent(\"NcDateTimePickerNative\");\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n const _component_NcPasswordField = resolveComponent(\"NcPasswordField\");\n const _component_NcColorPicker = resolveComponent(\"NcColorPicker\");\n const _component_NcTextField = resolveComponent(\"NcTextField\");\n return openBlock(), createElementBlock(\"li\", {\n class: normalizeClass([\"action\", [{ \"action--disabled\": $props.disabled }, _ctx.$props.class]])\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass([\"action-input\", {\n \"action-input-picker--disabled\": $props.disabled,\n \"action-input--visible-label\": $props.labelOutside && $props.label\n }]),\n onMouseleave: _cache[3] || (_cache[3] = (...args) => $options.onLeave && $options.onLeave(...args))\n }, [\n createElementVNode(\"span\", _hoisted_1, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createElementVNode(\"span\", {\n \"aria-hidden\": \"true\",\n class: normalizeClass([\"action-input__icon\", [$options.isIconUrl ? \"action-input__icon--url\" : $props.icon]]),\n style: normalizeStyle({ backgroundImage: $options.isIconUrl ? `url(${$props.icon})` : null })\n }, null, 6)\n ], true)\n ]),\n createElementVNode(\"form\", {\n ref: \"form\",\n class: \"action-input__form\",\n disabled: $props.disabled,\n onSubmit: _cache[2] || (_cache[2] = withModifiers((...args) => $options.onSubmit && $options.onSubmit(...args), [\"prevent\"]))\n }, [\n createElementVNode(\"div\", _hoisted_3, [\n $props.label && $props.labelOutside && !$props.isNativePicker ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: normalizeClass([\"action-input__text-label\", { \"action-input__text-label--hidden\": !$props.labelOutside }]),\n for: $props.inputId\n }, toDisplayString($props.label), 11, _hoisted_4)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_5, [\n $options.datePickerType ? (openBlock(), createBlock(_component_NcDateTimePicker, mergeProps({\n key: 0,\n ref: \"datetimepicker\",\n modelValue: $props.modelValue,\n style: { \"z-index\": \"99999999999\" },\n placeholder: _ctx.text,\n disabled: $props.disabled,\n type: $options.datePickerType,\n inputClass: [\"mx-input\", { focusable: $options.isFocusable }],\n class: \"action-input__datetimepicker\",\n appendToBody: \"\"\n }, _ctx.$attrs, { \"onUpdate:modelValue\": $options.onUpdateModelValue }), null, 16, [\"modelValue\", \"placeholder\", \"disabled\", \"type\", \"inputClass\", \"onUpdate:modelValue\"])) : $props.isNativePicker ? (openBlock(), createBlock(_component_NcDateTimePickerNative, mergeProps({\n key: 1,\n id: $props.idNativeDateTimePicker,\n modelValue: $props.modelValue,\n label: $props.label,\n type: $options.nativeDatePickerType,\n inputClass: { focusable: $options.isFocusable },\n class: \"action-input__datetimepicker\"\n }, _ctx.$attrs, { \"onUpdate:modelValue\": $options.onUpdateModelValue }), null, 16, [\"id\", \"modelValue\", \"label\", \"type\", \"inputClass\", \"onUpdate:modelValue\"])) : $options.isMultiselectType ? (openBlock(), createBlock(_component_NcSelect, mergeProps({\n key: 2,\n modelValue: $props.modelValue,\n placeholder: _ctx.text,\n disabled: $props.disabled,\n appendToBody: false,\n inputClass: { focusable: $options.isFocusable },\n class: \"action-input__multi\"\n }, _ctx.$attrs, { \"onUpdate:modelValue\": $options.onUpdateModelValue }), null, 16, [\"modelValue\", \"placeholder\", \"disabled\", \"inputClass\", \"onUpdate:modelValue\"])) : $props.type === \"password\" ? (openBlock(), createBlock(_component_NcPasswordField, mergeProps({\n key: 3,\n id: $props.inputId,\n modelValue: $props.modelValue,\n label: $props.label,\n labelOutside: !$props.label || $props.labelOutside,\n placeholder: _ctx.text,\n disabled: $props.disabled,\n inputClass: { focusable: $options.isFocusable },\n showTrailingButton: $props.showTrailingButton && !$props.disabled\n }, _ctx.$attrs, { \"onUpdate:modelValue\": $options.onUpdateModelValue }), null, 16, [\"id\", \"modelValue\", \"label\", \"labelOutside\", \"placeholder\", \"disabled\", \"inputClass\", \"showTrailingButton\", \"onUpdate:modelValue\"])) : $props.type === \"color\" ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n $props.label && $props.type === \"color\" ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: normalizeClass([\"action-input__text-label\", { \"action-input__text-label--hidden\": !$props.labelOutside }]),\n for: $props.inputId\n }, toDisplayString($props.label), 11, _hoisted_7)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_8, [\n createVNode(_component_NcColorPicker, mergeProps({\n id: \"inputId\",\n modelValue: $props.modelValue,\n class: \"colorpicker__trigger\"\n }, _ctx.$attrs, {\n \"onUpdate:modelValue\": $options.onUpdateModelValue,\n onSubmit: _cache[0] || (_cache[0] = ($event) => _ctx.$refs.form.requestSubmit())\n }), {\n default: withCtx(() => [\n createElementVNode(\"button\", {\n class: normalizeClass([\"colorpicker__preview\", { focusable: $options.isFocusable }]),\n style: normalizeStyle({ \"background-color\": $props.modelValue })\n }, null, 6)\n ]),\n _: 1\n }, 16, [\"modelValue\", \"onUpdate:modelValue\"])\n ])\n ])) : (openBlock(), createBlock(_component_NcTextField, mergeProps({\n key: 5,\n id: $props.inputId,\n modelValue: $props.modelValue,\n label: $props.label,\n labelOutside: !$props.label || $props.labelOutside,\n placeholder: _ctx.text,\n disabled: $props.disabled,\n inputClass: { focusable: $options.isFocusable },\n type: $props.type,\n trailingButtonIcon: \"arrowRight\",\n trailingButtonLabel: $props.trailingButtonLabel,\n showTrailingButton: $props.showTrailingButton && !$props.disabled\n }, _ctx.$attrs, {\n onTrailingButtonClick: _cache[1] || (_cache[1] = ($event) => _ctx.$refs.form.requestSubmit()),\n \"onUpdate:modelValue\": $options.onUpdateModelValue\n }), null, 16, [\"id\", \"modelValue\", \"label\", \"labelOutside\", \"placeholder\", \"disabled\", \"inputClass\", \"type\", \"trailingButtonLabel\", \"showTrailingButton\", \"onUpdate:modelValue\"]))\n ])\n ])\n ], 40, _hoisted_2)\n ], 34)\n ], 2);\n}\nconst NcActionInput = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-43230e98\"]]);\nexport {\n NcActionInput as N\n};\n//# sourceMappingURL=NcActionInput-BO0lB4VP.mjs.map\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","export class TimeoutError extends Error {\n\tname = 'TimeoutError';\n\n\tconstructor(message, options) {\n\t\tsuper(message, options);\n\t\tError.captureStackTrace?.(this, TimeoutError);\n\t}\n}\n\nconst getAbortedReason = signal => signal.reason ?? new DOMException('This operation was aborted.', 'AbortError');\n\nexport default function pTimeout(promise, options) {\n\tconst {\n\t\tmilliseconds,\n\t\tfallback,\n\t\tmessage,\n\t\tcustomTimers = {setTimeout, clearTimeout},\n\t\tsignal,\n\t} = options;\n\n\tlet timer;\n\tlet abortHandler;\n\n\tconst wrappedPromise = new Promise((resolve, reject) => {\n\t\tif (typeof milliseconds !== 'number' || Math.sign(milliseconds) !== 1) {\n\t\t\tthrow new TypeError(`Expected \\`milliseconds\\` to be a positive number, got \\`${milliseconds}\\``);\n\t\t}\n\n\t\tif (signal?.aborted) {\n\t\t\treject(getAbortedReason(signal));\n\t\t\treturn;\n\t\t}\n\n\t\tif (signal) {\n\t\t\tabortHandler = () => {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t};\n\n\t\t\tsignal.addEventListener('abort', abortHandler, {once: true});\n\t\t}\n\n\t\t// Use .then() instead of async IIFE to preserve stack traces\n\t\t// eslint-disable-next-line promise/prefer-await-to-then, promise/prefer-catch\n\t\tpromise.then(resolve, reject);\n\n\t\tif (milliseconds === Number.POSITIVE_INFINITY) {\n\t\t\treturn;\n\t\t}\n\n\t\t// We create the error outside of `setTimeout` to preserve the stack trace.\n\t\tconst timeoutError = new TimeoutError();\n\n\t\t// `.call(undefined, ...)` is needed for custom timers to avoid context issues\n\t\ttimer = customTimers.setTimeout.call(undefined, () => {\n\t\t\tif (fallback) {\n\t\t\t\ttry {\n\t\t\t\t\tresolve(fallback());\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (typeof promise.cancel === 'function') {\n\t\t\t\tpromise.cancel();\n\t\t\t}\n\n\t\t\tif (message === false) {\n\t\t\t\tresolve();\n\t\t\t} else if (message instanceof Error) {\n\t\t\t\treject(message);\n\t\t\t} else {\n\t\t\t\ttimeoutError.message = message ?? `Promise timed out after ${milliseconds} milliseconds`;\n\t\t\t\treject(timeoutError);\n\t\t\t}\n\t\t}, milliseconds);\n\t});\n\n\t// eslint-disable-next-line promise/prefer-await-to-then\n\tconst cancelablePromise = wrappedPromise.finally(() => {\n\t\tcancelablePromise.clear();\n\t\tif (abortHandler && signal) {\n\t\t\tsignal.removeEventListener('abort', abortHandler);\n\t\t}\n\t});\n\n\tcancelablePromise.clear = () => {\n\t\t// `.call(undefined, ...)` is needed for custom timers to avoid context issues\n\t\tcustomTimers.clearTimeout.call(undefined, timer);\n\t\ttimer = undefined;\n\t};\n\n\treturn cancelablePromise;\n}\n","// Port of lower_bound from https://en.cppreference.com/w/cpp/algorithm/lower_bound\n// Used to compute insertion index to keep queue sorted after insertion\nexport default function lowerBound(array, value, comparator) {\n let first = 0;\n let count = array.length;\n while (count > 0) {\n const step = Math.trunc(count / 2);\n let it = first + step;\n if (comparator(array[it], value) <= 0) {\n first = ++it;\n count -= step + 1;\n }\n else {\n count = step;\n }\n }\n return first;\n}\n","import lowerBound from './lower-bound.js';\nconst compactionThreshold = 100;\nexport default class PriorityQueue {\n #queue = [];\n // The queue is stored as a sorted array, but dequeued items are left before `#head` until compaction. Only items from `#head` onward are live, which keeps repeated dequeues amortized O(1).\n #head = 0;\n enqueue(run, options) {\n const { priority = 0, id, } = options ?? {};\n const { size } = this;\n const element = {\n priority,\n id,\n run,\n };\n if (size === 0) {\n // When the queue is logically empty, discard any consumed prefix before accepting new work.\n this.#queue.length = 0;\n this.#head = 0;\n this.#queue.push(element);\n return;\n }\n if (this.#queue.at(-1).priority >= priority) {\n // Same-priority and lower-priority items belong after the current tail. Appending preserves FIFO order for equal priorities.\n this.#queue.push(element);\n return;\n }\n // Binary insertion must run on the live sorted range only.\n this.#compact();\n const index = lowerBound(this.#queue, element, (a, b) => b.priority - a.priority);\n this.#queue.splice(index, 0, element);\n }\n setPriority(id, priority) {\n // A dequeued item with the same id is no longer part of the queue.\n const index = this.#queue.findIndex((element, index) => index >= this.#head && element.id === id);\n if (index === -1) {\n throw new ReferenceError(`No promise function with the id \"${id}\" exists in the queue.`);\n }\n const [item] = this.#queue.splice(index, 1);\n this.enqueue(item.run, { priority, id });\n }\n remove(idOrRun) {\n const index = this.#queue.findIndex((element, index) => {\n // The consumed prefix may still contain references that should not be removable.\n if (index < this.#head) {\n return false;\n }\n if (typeof idOrRun === 'string') {\n return element.id === idOrRun;\n }\n return element.run === idOrRun;\n });\n if (index !== -1) {\n this.#queue.splice(index, 1);\n }\n }\n dequeue() {\n if (this.#head === this.#queue.length) {\n return undefined;\n }\n const item = this.#queue[this.#head];\n this.#head++;\n if (this.#head === this.#queue.length) {\n // Fully drained queues are reset immediately so the next enqueue starts from a clean array.\n this.#queue.length = 0;\n this.#head = 0;\n }\n else if (this.#head > compactionThreshold && this.#head > this.#queue.length / 2) {\n // Keep repeated dequeues cheap, but stop the consumed prefix from growing without bound.\n this.#compact();\n }\n return item?.run;\n }\n filter(options) {\n const result = [];\n for (let index = this.#head; index < this.#queue.length; index++) {\n const element = this.#queue[index];\n if (element.priority === options.priority) {\n result.push(element.run);\n }\n }\n return result;\n }\n get size() {\n return this.#queue.length - this.#head;\n }\n #compact() {\n // Compaction restores the invariant that the whole array is the live sorted range.\n if (this.#head === 0) {\n return;\n }\n this.#queue.splice(0, this.#head);\n this.#head = 0;\n }\n}\n","import { EventEmitter } from 'eventemitter3';\nimport pTimeout from 'p-timeout';\nimport PriorityQueue from './priority-queue.js';\n/**\nPromise queue with concurrency control.\n*/\nexport default class PQueue extends EventEmitter {\n #carryoverIntervalCount;\n #isIntervalIgnored;\n #intervalCount = 0;\n #intervalCap;\n #rateLimitedInInterval = false;\n #rateLimitFlushScheduled = false;\n #interval;\n #intervalEnd = 0;\n #lastExecutionTime = 0;\n #intervalId;\n #timeoutId;\n #strict;\n // Circular buffer implementation for better performance\n #strictTicks = [];\n #strictTicksStartIndex = 0;\n #queue;\n #queueClass;\n #pending = 0;\n // The `!` is needed because of https://github.com/microsoft/TypeScript/issues/32194\n #concurrency;\n #isPaused;\n // Use to assign a unique identifier to a promise function, if not explicitly specified\n #idAssigner = 1n;\n // Track currently running tasks for debugging\n #runningTasks = new Map();\n #queueAbortListenerCleanupFunctions = new Set();\n /**\n Get or set the default timeout for all tasks. Can be changed at runtime.\n\n Operations will throw a `TimeoutError` if they don't complete within the specified time.\n\n The timeout begins when the operation is dequeued and starts execution, not while it's waiting in the queue.\n\n @example\n ```\n const queue = new PQueue({timeout: 5000});\n\n // Change timeout for all future tasks\n queue.timeout = 10000;\n ```\n */\n timeout;\n constructor(options) {\n super();\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n options = {\n carryoverIntervalCount: false,\n intervalCap: Number.POSITIVE_INFINITY,\n interval: 0,\n concurrency: Number.POSITIVE_INFINITY,\n autoStart: true,\n queueClass: PriorityQueue,\n strict: false,\n ...options,\n };\n if (!(typeof options.intervalCap === 'number' && options.intervalCap >= 1)) {\n throw new TypeError(`Expected \\`intervalCap\\` to be a number from 1 and up, got \\`${options.intervalCap?.toString() ?? ''}\\` (${typeof options.intervalCap})`);\n }\n if (options.interval === undefined || !(Number.isFinite(options.interval) && options.interval >= 0)) {\n throw new TypeError(`Expected \\`interval\\` to be a finite number >= 0, got \\`${options.interval?.toString() ?? ''}\\` (${typeof options.interval})`);\n }\n if (options.strict && options.interval === 0) {\n throw new TypeError('The `strict` option requires a non-zero `interval`');\n }\n if (options.strict && options.intervalCap === Number.POSITIVE_INFINITY) {\n throw new TypeError('The `strict` option requires a finite `intervalCap`');\n }\n // TODO: Remove this fallback in the next major version\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this.#carryoverIntervalCount = options.carryoverIntervalCount ?? options.carryoverConcurrencyCount ?? false;\n this.#isIntervalIgnored = options.intervalCap === Number.POSITIVE_INFINITY || options.interval === 0;\n this.#intervalCap = options.intervalCap;\n this.#interval = options.interval;\n this.#strict = options.strict;\n this.#queue = new options.queueClass();\n this.#queueClass = options.queueClass;\n this.concurrency = options.concurrency;\n if (options.timeout !== undefined && !(Number.isFinite(options.timeout) && options.timeout > 0)) {\n throw new TypeError(`Expected \\`timeout\\` to be a positive finite number, got \\`${options.timeout}\\` (${typeof options.timeout})`);\n }\n this.timeout = options.timeout;\n this.#isPaused = options.autoStart === false;\n this.#setupRateLimitTracking();\n }\n #cleanupStrictTicks(now) {\n // Remove ticks outside the current interval window using circular buffer approach\n while (this.#strictTicksStartIndex < this.#strictTicks.length) {\n const oldestTick = this.#strictTicks[this.#strictTicksStartIndex];\n if (oldestTick !== undefined && now - oldestTick >= this.#interval) {\n this.#strictTicksStartIndex++;\n }\n else {\n break;\n }\n }\n // Compact the array when it becomes inefficient or fully consumed\n // Compact when: (start index is large AND more than half wasted) OR all ticks expired\n const shouldCompact = (this.#strictTicksStartIndex > 100 && this.#strictTicksStartIndex > this.#strictTicks.length / 2)\n || this.#strictTicksStartIndex === this.#strictTicks.length;\n if (shouldCompact) {\n this.#strictTicks = this.#strictTicks.slice(this.#strictTicksStartIndex);\n this.#strictTicksStartIndex = 0;\n }\n }\n // Helper methods for interval consumption\n #consumeIntervalSlot(now) {\n if (this.#strict) {\n this.#strictTicks.push(now);\n }\n else {\n this.#intervalCount++;\n }\n }\n #rollbackIntervalSlot() {\n if (this.#strict) {\n // Pop from the end of the actual data (not from start index)\n if (this.#strictTicks.length > this.#strictTicksStartIndex) {\n this.#strictTicks.pop();\n }\n }\n else if (this.#intervalCount > 0) {\n this.#intervalCount--;\n }\n }\n #getActiveTicksCount() {\n return this.#strictTicks.length - this.#strictTicksStartIndex;\n }\n get #doesIntervalAllowAnother() {\n if (this.#isIntervalIgnored) {\n return true;\n }\n if (this.#strict) {\n // Cleanup already done by #isIntervalPausedAt before this is called\n return this.#getActiveTicksCount() < this.#intervalCap;\n }\n return this.#intervalCount < this.#intervalCap;\n }\n get #doesConcurrentAllowAnother() {\n return this.#pending < this.#concurrency;\n }\n #next() {\n this.#pending--;\n if (this.#pending === 0) {\n this.emit('pendingZero');\n }\n this.#tryToStartAnother();\n this.emit('next');\n }\n #onResumeInterval() {\n // Clear timeout ID before processing to prevent race condition\n // Must clear before #onInterval to allow new timeouts to be scheduled\n this.#timeoutId = undefined;\n this.#onInterval();\n this.#initializeIntervalIfNeeded();\n }\n #isIntervalPausedAt(now) {\n // Strict mode: check if we need to wait for oldest tick to age out\n if (this.#strict) {\n this.#cleanupStrictTicks(now);\n // If at capacity, need to wait for oldest tick to age out\n const activeTicksCount = this.#getActiveTicksCount();\n if (activeTicksCount >= this.#intervalCap) {\n const oldestTick = this.#strictTicks[this.#strictTicksStartIndex];\n // After cleanup, remaining ticks are within interval, so delay is always > 0\n const delay = this.#interval - (now - oldestTick);\n this.#createIntervalTimeout(delay);\n return true;\n }\n return false;\n }\n // Fixed window mode (original logic)\n if (this.#intervalId === undefined) {\n const delay = this.#intervalEnd - now;\n if (delay < 0) {\n // If the interval has expired while idle, check if we should enforce the interval\n // from the last task execution. This ensures proper spacing between tasks even\n // when the queue becomes empty and then new tasks are added.\n if (this.#lastExecutionTime > 0) {\n const timeSinceLastExecution = now - this.#lastExecutionTime;\n if (timeSinceLastExecution < this.#interval) {\n // Not enough time has passed since the last task execution\n this.#createIntervalTimeout(this.#interval - timeSinceLastExecution);\n return true;\n }\n }\n // Enough time has passed or no previous execution, allow execution\n this.#intervalCount = (this.#carryoverIntervalCount) ? this.#pending : 0;\n }\n else {\n // Act as the interval is pending\n this.#createIntervalTimeout(delay);\n return true;\n }\n }\n return false;\n }\n #createIntervalTimeout(delay) {\n if (this.#timeoutId !== undefined) {\n return;\n }\n this.#timeoutId = setTimeout(() => {\n this.#onResumeInterval();\n }, delay);\n }\n #clearIntervalTimer() {\n if (this.#intervalId) {\n clearInterval(this.#intervalId);\n this.#intervalId = undefined;\n }\n }\n #clearTimeoutTimer() {\n if (this.#timeoutId) {\n clearTimeout(this.#timeoutId);\n this.#timeoutId = undefined;\n }\n }\n #tryToStartAnother() {\n if (this.#queue.size === 0) {\n // We can clear the interval (\"pause\")\n // Because we can redo it later (\"resume\")\n this.#clearIntervalTimer();\n this.emit('empty');\n if (this.#pending === 0) {\n // Clear timeout as well when completely idle\n this.#clearTimeoutTimer();\n // Compact strict ticks when idle to free memory\n if (this.#strict && this.#strictTicksStartIndex > 0) {\n const now = Date.now();\n this.#cleanupStrictTicks(now);\n }\n this.emit('idle');\n }\n return false;\n }\n let taskStarted = false;\n if (!this.#isPaused) {\n const now = Date.now();\n const canInitializeInterval = !this.#isIntervalPausedAt(now);\n if (this.#doesIntervalAllowAnother && this.#doesConcurrentAllowAnother) {\n const job = this.#queue.dequeue();\n if (!this.#isIntervalIgnored) {\n this.#consumeIntervalSlot(now);\n this.#scheduleRateLimitUpdate();\n }\n this.emit('active');\n job();\n if (canInitializeInterval) {\n this.#initializeIntervalIfNeeded();\n }\n taskStarted = true;\n }\n }\n return taskStarted;\n }\n #initializeIntervalIfNeeded() {\n if (this.#isIntervalIgnored || this.#intervalId !== undefined) {\n return;\n }\n // Strict mode uses timeouts instead of interval timers\n if (this.#strict) {\n return;\n }\n this.#intervalId = setInterval(() => {\n this.#onInterval();\n }, this.#interval);\n this.#intervalEnd = Date.now() + this.#interval;\n }\n #onInterval() {\n // Non-strict mode uses interval timers and intervalCount\n if (!this.#strict) {\n if (this.#intervalCount === 0 && this.#pending === 0 && this.#intervalId) {\n this.#clearIntervalTimer();\n }\n this.#intervalCount = this.#carryoverIntervalCount ? this.#pending : 0;\n }\n this.#processQueue();\n this.#scheduleRateLimitUpdate();\n }\n /**\n Executes all queued functions until it reaches the limit.\n */\n #processQueue() {\n // eslint-disable-next-line no-empty\n while (this.#tryToStartAnother()) { }\n }\n get concurrency() {\n return this.#concurrency;\n }\n set concurrency(newConcurrency) {\n if (!(typeof newConcurrency === 'number' && newConcurrency >= 1)) {\n throw new TypeError(`Expected \\`concurrency\\` to be a number from 1 and up, got \\`${newConcurrency}\\` (${typeof newConcurrency})`);\n }\n this.#concurrency = newConcurrency;\n this.#processQueue();\n }\n /**\n Updates the priority of a promise function by its id, affecting its execution order. Requires a defined concurrency limit to take effect.\n\n For example, this can be used to prioritize a promise function to run earlier.\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 1});\n\n queue.add(async () => '🦄', {priority: 1});\n queue.add(async () => '🦀', {priority: 0, id: '🦀'});\n queue.add(async () => '🦄', {priority: 1});\n queue.add(async () => '🦄', {priority: 1});\n\n queue.setPriority('🦀', 2);\n ```\n\n In this case, the promise function with `id: '🦀'` runs second.\n\n You can also deprioritize a promise function to delay its execution:\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 1});\n\n queue.add(async () => '🦄', {priority: 1});\n queue.add(async () => '🦀', {priority: 1, id: '🦀'});\n queue.add(async () => '🦄');\n queue.add(async () => '🦄', {priority: 0});\n\n queue.setPriority('🦀', -1);\n ```\n Here, the promise function with `id: '🦀'` executes last.\n */\n setPriority(id, priority) {\n if (typeof priority !== 'number' || !Number.isFinite(priority)) {\n throw new TypeError(`Expected \\`priority\\` to be a finite number, got \\`${priority}\\` (${typeof priority})`);\n }\n this.#queue.setPriority(id, priority);\n }\n async add(function_, options = {}) {\n // Create a copy to avoid mutating the original options object\n options = {\n timeout: this.timeout,\n ...options,\n // Assign unique ID if not provided\n id: options.id ?? (this.#idAssigner++).toString(),\n };\n return new Promise((resolve, reject) => {\n // Create a unique symbol for tracking this task\n const taskSymbol = Symbol(`task-${options.id}`);\n let cleanupQueueAbortHandler = () => undefined;\n const run = async () => {\n // Task is now running — remove the queued-state abort listener\n cleanupQueueAbortHandler();\n this.#pending++;\n // Track this running task\n this.#runningTasks.set(taskSymbol, {\n id: options.id,\n priority: options.priority ?? 0, // Match priority-queue default\n startTime: Date.now(),\n timeout: options.timeout,\n });\n let eventListener;\n try {\n // Check abort signal - if aborted, need to decrement the counter\n // that was incremented in tryToStartAnother\n try {\n options.signal?.throwIfAborted();\n }\n catch (error) {\n this.#rollbackIntervalConsumption();\n // Clean up tracking before throwing\n this.#runningTasks.delete(taskSymbol);\n throw error;\n }\n this.#lastExecutionTime = Date.now();\n let operation = function_({ signal: options.signal });\n if (options.timeout) {\n operation = pTimeout(Promise.resolve(operation), {\n milliseconds: options.timeout,\n message: `Task timed out after ${options.timeout}ms (queue has ${this.#pending} running, ${this.#queue.size} waiting)`,\n });\n }\n if (options.signal) {\n const { signal } = options;\n operation = Promise.race([operation, new Promise((_resolve, reject) => {\n eventListener = () => {\n reject(signal.reason);\n };\n signal.addEventListener('abort', eventListener, { once: true });\n })]);\n }\n const result = await operation;\n resolve(result);\n this.emit('completed', result);\n }\n catch (error) {\n reject(error);\n this.emit('error', error);\n }\n finally {\n // Clean up abort event listener\n if (eventListener) {\n options.signal?.removeEventListener('abort', eventListener);\n }\n // Remove from running tasks\n this.#runningTasks.delete(taskSymbol);\n // Use queueMicrotask to prevent deep recursion while maintaining timing\n queueMicrotask(() => {\n this.#next();\n });\n }\n };\n this.#queue.enqueue(run, options);\n const removeQueuedTask = () => {\n if (this.#queue instanceof PriorityQueue) {\n this.#queue.remove(run);\n return;\n }\n this.#queue.remove?.(options.id); // Intentionally best-effort: queued abort removal is only supported for queue classes that implement `.remove()`.\n };\n // Handle abort while task is waiting in the queue\n if (options.signal) {\n const { signal } = options;\n const queueAbortHandler = () => {\n cleanupQueueAbortHandler();\n removeQueuedTask();\n reject(signal.reason);\n this.#tryToStartAnother();\n this.emit('next');\n };\n cleanupQueueAbortHandler = () => {\n signal.removeEventListener('abort', queueAbortHandler);\n this.#queueAbortListenerCleanupFunctions.delete(cleanupQueueAbortHandler);\n };\n if (signal.aborted) {\n queueAbortHandler();\n return;\n }\n signal.addEventListener('abort', queueAbortHandler, { once: true });\n this.#queueAbortListenerCleanupFunctions.add(cleanupQueueAbortHandler);\n }\n this.emit('add');\n this.#tryToStartAnother();\n });\n }\n async addAll(functions, options) {\n return Promise.all(functions.map(async (function_) => this.add(function_, options)));\n }\n /**\n Start (or resume) executing enqueued tasks within concurrency limit. No need to call this if queue is not paused (via `options.autoStart = false` or by `.pause()` method.)\n */\n start() {\n if (!this.#isPaused) {\n return this;\n }\n this.#isPaused = false;\n this.#processQueue();\n return this;\n }\n /**\n Put queue execution on hold.\n */\n pause() {\n this.#isPaused = true;\n }\n /**\n Clear the queue.\n */\n clear() {\n for (const cleanupQueueAbortHandler of this.#queueAbortListenerCleanupFunctions) {\n cleanupQueueAbortHandler();\n }\n this.#queue = new this.#queueClass();\n // Clear interval timer since queue is now empty (consistent with #tryToStartAnother)\n this.#clearIntervalTimer();\n // Note: We preserve strict mode rate-limiting state (ticks and timeout)\n // because clear() only clears queued tasks, not rate limit history.\n // This ensures that rate limits are still enforced after clearing the queue.\n // Note: We don't clear #runningTasks as those tasks are still running\n // They will be removed when they complete in the finally block\n // Force synchronous update since clear() should have immediate effect\n this.#updateRateLimitState();\n // Emit events so waiters (onEmpty, onIdle, onSizeLessThan) can resolve\n this.emit('empty');\n if (this.#pending === 0) {\n this.#clearTimeoutTimer();\n this.emit('idle');\n }\n this.emit('next');\n }\n /**\n Can be called multiple times. Useful if you for example add additional items at a later time.\n\n @returns A promise that settles when the queue becomes empty.\n */\n async onEmpty() {\n // Instantly resolve if the queue is empty\n if (this.#queue.size === 0) {\n return;\n }\n await this.#onEvent('empty');\n }\n /**\n @returns A promise that settles when the queue size is less than the given limit: `queue.size < limit`.\n\n If you want to avoid having the queue grow beyond a certain size you can `await queue.onSizeLessThan()` before adding a new item.\n\n Note that this only limits the number of items waiting to start. There could still be up to `concurrency` jobs already running that this call does not include in its calculation.\n */\n async onSizeLessThan(limit) {\n // Instantly resolve if the queue is empty.\n if (this.#queue.size < limit) {\n return;\n }\n await this.#onEvent('next', () => this.#queue.size < limit);\n }\n /**\n The difference with `.onEmpty` is that `.onIdle` guarantees that all work from the queue has finished. `.onEmpty` merely signals that the queue is empty, but it could mean that some promises haven't completed yet.\n\n @returns A promise that settles when the queue becomes empty, and all promises have completed; `queue.size === 0 && queue.pending === 0`.\n */\n async onIdle() {\n // Instantly resolve if none pending and if nothing else is queued\n if (this.#pending === 0 && this.#queue.size === 0) {\n return;\n }\n await this.#onEvent('idle');\n }\n /**\n The difference with `.onIdle` is that `.onPendingZero` only waits for currently running tasks to finish, ignoring queued tasks.\n\n @returns A promise that settles when all currently running tasks have completed; `queue.pending === 0`.\n */\n async onPendingZero() {\n if (this.#pending === 0) {\n return;\n }\n await this.#onEvent('pendingZero');\n }\n /**\n @returns A promise that settles when the queue becomes rate-limited due to intervalCap.\n */\n async onRateLimit() {\n if (this.isRateLimited) {\n return;\n }\n await this.#onEvent('rateLimit');\n }\n /**\n @returns A promise that settles when the queue is no longer rate-limited.\n */\n async onRateLimitCleared() {\n if (!this.isRateLimited) {\n return;\n }\n await this.#onEvent('rateLimitCleared');\n }\n /**\n @returns A promise that rejects when any task in the queue errors.\n\n Use with `Promise.race([queue.onError(), queue.onIdle()])` to fail fast on the first error while still resolving normally when the queue goes idle.\n\n Important: The promise returned by `add()` still rejects. You must handle each `add()` promise (for example, `.catch(() => {})`) to avoid unhandled rejections.\n\n @example\n ```\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 2});\n\n queue.add(() => fetchData(1)).catch(() => {});\n queue.add(() => fetchData(2)).catch(() => {});\n queue.add(() => fetchData(3)).catch(() => {});\n\n // Stop processing on first error\n try {\n await Promise.race([\n queue.onError(),\n queue.onIdle()\n ]);\n } catch (error) {\n queue.pause(); // Stop processing remaining tasks\n console.error('Queue failed:', error);\n }\n ```\n */\n // eslint-disable-next-line @typescript-eslint/promise-function-async\n onError() {\n return new Promise((_resolve, reject) => {\n const handleError = (error) => {\n this.off('error', handleError);\n reject(error);\n };\n this.on('error', handleError);\n });\n }\n async #onEvent(event, filter) {\n return new Promise(resolve => {\n const listener = () => {\n if (filter && !filter()) {\n return;\n }\n this.off(event, listener);\n resolve();\n };\n this.on(event, listener);\n });\n }\n /**\n Size of the queue, the number of queued items waiting to run.\n */\n get size() {\n return this.#queue.size;\n }\n /**\n Size of the queue, filtered by the given options.\n\n For example, this can be used to find the number of items remaining in the queue with a specific priority level.\n */\n sizeBy(options) {\n // eslint-disable-next-line unicorn/no-array-callback-reference\n return this.#queue.filter(options).length;\n }\n /**\n Number of running items (no longer in the queue).\n */\n get pending() {\n return this.#pending;\n }\n /**\n Whether the queue is currently paused.\n */\n get isPaused() {\n return this.#isPaused;\n }\n #setupRateLimitTracking() {\n // Only schedule updates when rate limiting is enabled\n if (this.#isIntervalIgnored) {\n return;\n }\n // Wire up to lifecycle events that affect rate limit state\n // Only 'add' and 'next' can actually change rate limit state\n this.on('add', () => {\n if (this.#queue.size > 0) {\n this.#scheduleRateLimitUpdate();\n }\n });\n this.on('next', () => {\n this.#scheduleRateLimitUpdate();\n });\n }\n #scheduleRateLimitUpdate() {\n // Skip if rate limiting is not enabled or already scheduled\n if (this.#isIntervalIgnored || this.#rateLimitFlushScheduled) {\n return;\n }\n this.#rateLimitFlushScheduled = true;\n queueMicrotask(() => {\n this.#rateLimitFlushScheduled = false;\n this.#updateRateLimitState();\n });\n }\n #rollbackIntervalConsumption() {\n if (this.#isIntervalIgnored) {\n return;\n }\n this.#rollbackIntervalSlot();\n this.#scheduleRateLimitUpdate();\n }\n #updateRateLimitState() {\n const previous = this.#rateLimitedInInterval;\n // Early exit if rate limiting is disabled or queue is empty\n if (this.#isIntervalIgnored || this.#queue.size === 0) {\n if (previous) {\n this.#rateLimitedInInterval = false;\n this.emit('rateLimitCleared');\n }\n return;\n }\n // Get the current count based on mode\n let count;\n if (this.#strict) {\n const now = Date.now();\n this.#cleanupStrictTicks(now);\n count = this.#getActiveTicksCount();\n }\n else {\n count = this.#intervalCount;\n }\n const shouldBeRateLimited = count >= this.#intervalCap;\n if (shouldBeRateLimited !== previous) {\n this.#rateLimitedInInterval = shouldBeRateLimited;\n this.emit(shouldBeRateLimited ? 'rateLimit' : 'rateLimitCleared');\n }\n }\n /**\n Whether the queue is currently rate-limited due to intervalCap.\n */\n get isRateLimited() {\n return this.#rateLimitedInInterval;\n }\n /**\n Whether the queue is saturated. Returns `true` when:\n - All concurrency slots are occupied and tasks are waiting, OR\n - The queue is rate-limited and tasks are waiting\n\n Useful for detecting backpressure and potential hanging tasks.\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 2});\n\n // Backpressure handling\n if (queue.isSaturated) {\n console.log('Queue is saturated, waiting for capacity...');\n await queue.onSizeLessThan(queue.concurrency);\n }\n\n // Monitoring for stuck tasks\n setInterval(() => {\n if (queue.isSaturated) {\n console.warn(`Queue saturated: ${queue.pending} running, ${queue.size} waiting`);\n }\n }, 60000);\n ```\n */\n get isSaturated() {\n return (this.#pending === this.#concurrency && this.#queue.size > 0)\n || (this.isRateLimited && this.#queue.size > 0);\n }\n /**\n The tasks currently being executed. Each task includes its `id`, `priority`, `startTime`, and `timeout` (if set).\n\n Returns an array of task info objects.\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 2});\n\n // Add tasks with IDs for better debugging\n queue.add(() => fetchUser(123), {id: 'user-123'});\n queue.add(() => fetchPosts(456), {id: 'posts-456', priority: 1});\n\n // Check what's running\n console.log(queue.runningTasks);\n // => [{\n // id: 'user-123',\n // priority: 0,\n // startTime: 1759253001716,\n // timeout: undefined\n // }, {\n // id: 'posts-456',\n // priority: 1,\n // startTime: 1759253001916,\n // timeout: undefined\n // }]\n ```\n */\n get runningTasks() {\n // Return fresh array with fresh objects to prevent mutations\n return [...this.#runningTasks.values()].map(task => ({ ...task }));\n }\n}\nexport { default as PriorityQueue } from './priority-queue.js';\n/**\nError thrown when a task times out.\n\n@example\n```\nimport PQueue, {TimeoutError} from 'p-queue';\n\nconst queue = new PQueue({timeout: 1000});\n\ntry {\n await queue.add(() => someTask());\n} catch (error) {\n if (error instanceof TimeoutError) {\n console.log('Task timed out');\n }\n}\n```\n*/\nexport { TimeoutError } from 'p-timeout';\n"],"file":"NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs"} \ No newline at end of file diff --git a/dist/NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs.map.license b/dist/NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs.map.license similarity index 100% rename from dist/NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs.map.license rename to dist/NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs.map.license diff --git a/dist/NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs b/dist/NcSelectTags-D7qWNjXa-gqJ9LLZU.chunk.mjs similarity index 96% rename from dist/NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs rename to dist/NcSelectTags-D7qWNjXa-gqJ9LLZU.chunk.mjs index 5ea09775640..42f7e7bd2da 100644 --- a/dist/NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs +++ b/dist/NcSelectTags-D7qWNjXa-gqJ9LLZU.chunk.mjs @@ -1,4 +1,4 @@ -import{r as V,h as N,b as r,_ as x}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{l as g}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as c,a as T}from"./index-BOH7nBEM.chunk.mjs";import{c as O}from"./index-BLNGy7h5.chunk.mjs";import{h as v}from"./index-B-dGqfIG.chunk.mjs";import{r as m,o as w,c as F,q as S,B as $,w as n,i as A,I as D,O as I,k as h,m as P}from"./Web-BwmPK40i.chunk.mjs";V(N);function u(e){let t={};if(e.nodeType===1){if(e.attributes.length>0){t["@attributes"]={};for(let s=0;s"u")t[a]=u(o);else{if(typeof t[a].push>"u"){const l=t[a];t[a]=[],t[a].push(l)}t[a].push(u(o))}}return t}function B(e){let t=null;try{t=new DOMParser().parseFromString(e,"text/xml")}catch(s){g.error("[NcSelectTags] Failed to parse xml document",{error:s})}return t}function f(e){const t=u(B(e))["d:multistatus"]["d:response"],s=[];for(const o in t){const a=t[o]["d:propstat"];a["d:status"]["#text"]==="HTTP/1.1 200 OK"&&s.push({id:parseInt(a["d:prop"]["oc:id"]["#text"]),displayName:a["d:prop"]["oc:display-name"]["#text"],canAssign:a["d:prop"]["oc:can-assign"]["#text"]==="true",userAssignable:a["d:prop"]["oc:user-assignable"]["#text"]==="true",userVisible:a["d:prop"]["oc:user-visible"]["#text"]==="true"})}return s}async function L(){if(window.NextcloudVueDocs)return Promise.resolve(f(window.NextcloudVueDocs.tags));const e=await O({method:"PROPFIND",url:v("dav")+"/systemtags/",data:` +import{r as V,h as N,b as r,_ as x}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{l as g}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as c,a as T}from"./index-dqLzhRZM.chunk.mjs";import{c as O}from"./index-BLNGy7h5.chunk.mjs";import{h as v}from"./index-B-dGqfIG.chunk.mjs";import{r as m,o as w,c as F,q as S,B as $,w as n,i as A,I as D,O as I,k as h,m as P}from"./Web-BwmPK40i.chunk.mjs";V(N);function u(e){let t={};if(e.nodeType===1){if(e.attributes.length>0){t["@attributes"]={};for(let s=0;s"u")t[a]=u(o);else{if(typeof t[a].push>"u"){const l=t[a];t[a]=[],t[a].push(l)}t[a].push(u(o))}}return t}function B(e){let t=null;try{t=new DOMParser().parseFromString(e,"text/xml")}catch(s){g.error("[NcSelectTags] Failed to parse xml document",{error:s})}return t}function f(e){const t=u(B(e))["d:multistatus"]["d:response"],s=[];for(const o in t){const a=t[o]["d:propstat"];a["d:status"]["#text"]==="HTTP/1.1 200 OK"&&s.push({id:parseInt(a["d:prop"]["oc:id"]["#text"]),displayName:a["d:prop"]["oc:display-name"]["#text"],canAssign:a["d:prop"]["oc:can-assign"]["#text"]==="true",userAssignable:a["d:prop"]["oc:user-assignable"]["#text"]==="true",userVisible:a["d:prop"]["oc:user-visible"]["#text"]==="true"})}return s}async function L(){if(window.NextcloudVueDocs)return Promise.resolve(f(window.NextcloudVueDocs.tags));const e=await O({method:"PROPFIND",url:v("dav")+"/systemtags/",data:` @@ -8,4 +8,4 @@ import{r as V,h as N,b as r,_ as x}from"./createElementId-DhjFt1I9-B4kXTdvj.chun `});return f(e.data)}const E={name:"NcSelectTags",components:{NcEllipsisedOption:T,NcSelect:c},props:{...c.props,fetchTags:{type:Boolean,default:!0},getOptionLabel:{type:Function,default:e=>{const{displayName:t,userVisible:s,userAssignable:o}=e;return s===!1?r("{tag} (invisible)",{tag:t}):o===!1?r("{tag} (restricted)",{tag:t}):t}},limit:{type:Number,default:5},multiple:{type:Boolean,default:!0},optionsFilter:{type:Function,default:null},passthru:{type:Boolean,default:!1},placeholder:{type:String,default:r("Select a tag")},modelValue:{type:[Number,Array,Object],default:null}," ":{}},emits:["update:modelValue"," "],data(){return{search:"",availableTags:[]}},computed:{availableOptions(){return this.optionsFilter?this.tags.filter(this.optionsFilter):this.tags},localValue(){return this.passthru?this.modelValue:this.tags.length===0?[]:this.multiple?this.modelValue.filter(e=>e!=="").map(e=>this.tags.find(t=>t.id===e)):this.tags.find(e=>e.id===this.modelValue)},propsToForward(){const e={...this.$props};return delete e.fetchTags,delete e.optionsFilter,delete e.passthru,e},tags(){return this.fetchTags?this.availableTags:this.options}},async created(){if(this.fetchTags)try{const e=await L();this.availableTags=e}catch(e){g.error("[NcSelectTags] Loading systemtags failed",e)}},methods:{handleInput(e){if(this.passthru){this.$emit("update:modelValue",e);return}this.multiple?this.$emit("update:modelValue",e.map(t=>t.id)):e===null?this.$emit("update:modelValue",null):this.$emit("update:modelValue",e.id)}}};function _(e,t,s,o,a,l){const p=m("NcEllipsisedOption"),b=m("NcSelect");return w(),F(b,P(l.propsToForward,{options:l.availableOptions,closeOnSelect:!s.multiple,modelValue:l.localValue,onSearch:t[0]||(t[0]=i=>a.search=i),"onUpdate:modelValue":l.handleInput}),S({option:n(i=>[h(p,{name:s.getOptionLabel(i),search:a.search},null,8,["name","search"])]),"selected-option":n(i=>[h(p,{name:s.getOptionLabel(i),search:a.search},null,8,["name","search"])]),_:2},[$(e.$slots,(i,d)=>({name:d,fn:n(y=>[A(e.$slots,d,D(I(y)))])}))]),1040,["options","closeOnSelect","modelValue","onUpdate:modelValue"])}const H=x(E,[["render",_]]);export{H as N}; -//# sourceMappingURL=NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs.map +//# sourceMappingURL=NcSelectTags-D7qWNjXa-gqJ9LLZU.chunk.mjs.map diff --git a/dist/NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs.license b/dist/NcSelectTags-D7qWNjXa-gqJ9LLZU.chunk.mjs.license similarity index 100% rename from dist/NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs.license rename to dist/NcSelectTags-D7qWNjXa-gqJ9LLZU.chunk.mjs.license diff --git a/dist/NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs.map b/dist/NcSelectTags-D7qWNjXa-gqJ9LLZU.chunk.mjs.map similarity index 99% rename from dist/NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs.map rename to dist/NcSelectTags-D7qWNjXa-gqJ9LLZU.chunk.mjs.map index 61ee49b22a4..3b5b7b0e8c2 100644 --- a/dist/NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs.map +++ b/dist/NcSelectTags-D7qWNjXa-gqJ9LLZU.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcSelectTags-D7qWNjXa.mjs"],"sourcesContent":["import { r as register, j as t0, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { N as NcEllipsisedOption } from \"./NcEllipsisedOption-D6Amb91K.mjs\";\nimport { N as NcSelect } from \"./NcSelect-BOFzoCwK.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { generateRemoteUrl } from \"@nextcloud/router\";\nimport { resolveComponent, openBlock, createBlock, mergeProps, createSlots, withCtx, createVNode, renderList, renderSlot, normalizeProps, guardReactiveProps } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t0);\nfunction xmlToJson(xml) {\n let obj = {};\n if (xml.nodeType === 1) {\n if (xml.attributes.length > 0) {\n obj[\"@attributes\"] = {};\n for (let j = 0; j < xml.attributes.length; j++) {\n const attribute = xml.attributes.item(j);\n obj[\"@attributes\"][attribute.nodeName] = attribute.nodeValue;\n }\n }\n } else if (xml.nodeType === 3) {\n obj = xml.nodeValue;\n }\n if (xml.hasChildNodes()) {\n for (let i = 0; i < xml.childNodes.length; i++) {\n const item = xml.childNodes.item(i);\n const nodeName = item.nodeName;\n if (typeof obj[nodeName] === \"undefined\") {\n obj[nodeName] = xmlToJson(item);\n } else {\n if (typeof obj[nodeName].push === \"undefined\") {\n const old = obj[nodeName];\n obj[nodeName] = [];\n obj[nodeName].push(old);\n }\n obj[nodeName].push(xmlToJson(item));\n }\n }\n }\n return obj;\n}\nfunction parseXml(xml) {\n let dom = null;\n try {\n dom = new DOMParser().parseFromString(xml, \"text/xml\");\n } catch (error) {\n logger.error(\"[NcSelectTags] Failed to parse xml document\", { error });\n }\n return dom;\n}\nfunction xmlToTagList(xml) {\n const json = xmlToJson(parseXml(xml));\n const list = json[\"d:multistatus\"][\"d:response\"];\n const result = [];\n for (const index in list) {\n const tag = list[index][\"d:propstat\"];\n if (tag[\"d:status\"][\"#text\"] !== \"HTTP/1.1 200 OK\") {\n continue;\n }\n result.push({\n id: parseInt(tag[\"d:prop\"][\"oc:id\"][\"#text\"]),\n displayName: tag[\"d:prop\"][\"oc:display-name\"][\"#text\"],\n canAssign: tag[\"d:prop\"][\"oc:can-assign\"][\"#text\"] === \"true\",\n userAssignable: tag[\"d:prop\"][\"oc:user-assignable\"][\"#text\"] === \"true\",\n userVisible: tag[\"d:prop\"][\"oc:user-visible\"][\"#text\"] === \"true\"\n });\n }\n return result;\n}\nasync function searchTags() {\n if (window.NextcloudVueDocs) {\n return Promise.resolve(xmlToTagList(window.NextcloudVueDocs.tags));\n }\n const result = await axios({\n method: \"PROPFIND\",\n url: generateRemoteUrl(\"dav\") + \"/systemtags/\",\n data: `\n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t`\n });\n return xmlToTagList(result.data);\n}\nconst _sfc_main = {\n name: \"NcSelectTags\",\n components: {\n NcEllipsisedOption,\n NcSelect\n },\n props: {\n // Add NcSelect prop defaults and populate $props\n ...NcSelect.props,\n /**\n * Enable automatic fetching of tags\n *\n * If `false`, available tags must be passed using the `options` prop\n */\n fetchTags: {\n type: Boolean,\n default: true\n },\n /**\n * Callback to generate the label text\n *\n * @see https://vue-select.org/api/props.html#getoptionlabel\n */\n getOptionLabel: {\n type: Function,\n default: (option) => {\n const { displayName, userVisible, userAssignable } = option;\n if (userVisible === false) {\n return t(\"{tag} (invisible)\", { tag: displayName });\n }\n if (userAssignable === false) {\n return t(\"{tag} (restricted)\", { tag: displayName });\n }\n return displayName;\n }\n },\n /**\n * Sets the maximum number of tags to display in the dropdown list\n *\n * Because of compatibility reasons only 5 tag entries are shown by\n * default\n */\n limit: {\n type: Number,\n default: 5\n },\n /**\n * Allow selection of multiple options\n *\n * This prop automatically sets the internal `closeOnSelect` prop to\n * its boolean opposite\n *\n * @see https://vue-select.org/api/props.html#multiple\n */\n multiple: {\n type: Boolean,\n default: true\n },\n /**\n * Callback to filter available options\n */\n optionsFilter: {\n type: Function,\n default: null\n },\n /**\n * Enable passing of `value` prop and emitted `input` events as-is\n * i.e. for usage with `v-model`\n *\n * If `true`, custom internal `value` and `input` handling is disabled\n */\n passthru: {\n type: Boolean,\n default: false\n },\n /**\n * Placeholder text\n *\n * @see https://vue-select.org/api/props.html#placeholder\n */\n placeholder: {\n type: String,\n default: t(\"Select a tag\")\n },\n /**\n * Currently selected value\n */\n modelValue: {\n type: [Number, Array, Object],\n default: null\n },\n /**\n * Any available prop\n *\n * @see https://vue-select.org/api/props.html\n */\n // Not an actual prop but needed to show in vue-styleguidist docs\n // eslint-disable-next-line\n \" \": {}\n },\n emits: [\n \"update:modelValue\",\n /**\n * All events from https://vue-select.org/api/events.html\n */\n // Not an actual event but needed to show in vue-styleguidist docs\n \" \"\n ],\n data() {\n return {\n search: \"\",\n availableTags: []\n };\n },\n computed: {\n availableOptions() {\n if (this.optionsFilter) {\n return this.tags.filter(this.optionsFilter);\n }\n return this.tags;\n },\n localValue() {\n if (this.passthru) {\n return this.modelValue;\n }\n if (this.tags.length === 0) {\n return [];\n }\n if (this.multiple) {\n return this.modelValue.filter((tag) => tag !== \"\").map((id) => this.tags.find((tag2) => tag2.id === id));\n } else {\n return this.tags.find((tag) => tag.id === this.modelValue);\n }\n },\n propsToForward() {\n const propsToForward = { ...this.$props };\n delete propsToForward.fetchTags;\n delete propsToForward.optionsFilter;\n delete propsToForward.passthru;\n return propsToForward;\n },\n tags() {\n if (!this.fetchTags) {\n return this.options;\n }\n return this.availableTags;\n }\n },\n async created() {\n if (!this.fetchTags) {\n return;\n }\n try {\n const result = await searchTags();\n this.availableTags = result;\n } catch (error) {\n logger.error(\"[NcSelectTags] Loading systemtags failed\", error);\n }\n },\n methods: {\n handleInput(value) {\n if (this.passthru) {\n this.$emit(\"update:modelValue\", value);\n return;\n }\n if (this.multiple) {\n this.$emit(\"update:modelValue\", value.map((element) => element.id));\n } else {\n if (value === null) {\n this.$emit(\"update:modelValue\", null);\n } else {\n this.$emit(\"update:modelValue\", value.id);\n }\n }\n }\n }\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcEllipsisedOption = resolveComponent(\"NcEllipsisedOption\");\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n return openBlock(), createBlock(_component_NcSelect, mergeProps($options.propsToForward, {\n options: $options.availableOptions,\n closeOnSelect: !$props.multiple,\n modelValue: $options.localValue,\n onSearch: _cache[0] || (_cache[0] = ($event) => $data.search = $event),\n \"onUpdate:modelValue\": $options.handleInput\n }), createSlots({\n option: withCtx((option) => [\n createVNode(_component_NcEllipsisedOption, {\n name: $props.getOptionLabel(option),\n search: $data.search\n }, null, 8, [\"name\", \"search\"])\n ]),\n \"selected-option\": withCtx((selectedOption) => [\n createVNode(_component_NcEllipsisedOption, {\n name: $props.getOptionLabel(selectedOption),\n search: $data.search\n }, null, 8, [\"name\", \"search\"])\n ]),\n _: 2\n }, [\n renderList(_ctx.$slots, (_, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1040, [\"options\", \"closeOnSelect\", \"modelValue\", \"onUpdate:modelValue\"]);\n}\nconst NcSelectTags = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n NcSelectTags as N\n};\n//# sourceMappingURL=NcSelectTags-D7qWNjXa.mjs.map\n"],"names":["register","t0","xmlToJson","xml","obj","j","attribute","i","item","nodeName","old","parseXml","dom","error","logger","xmlToTagList","list","result","index","tag","searchTags","axios","generateRemoteUrl","_sfc_main","NcEllipsisedOption","NcSelect","option","displayName","userVisible","userAssignable","t","id","tag2","propsToForward","value","element","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","_component_NcEllipsisedOption","resolveComponent","_component_NcSelect","openBlock","createBlock","mergeProps","$event","createSlots","withCtx","createVNode","selectedOption","renderList","_","name","data","renderSlot","normalizeProps","guardReactiveProps","NcSelectTags","_export_sfc"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"NcSelectTags-D7qWNjXa-gqJ9LLZU.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcSelectTags-D7qWNjXa.mjs"],"sourcesContent":["import { r as register, j as t0, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { N as NcEllipsisedOption } from \"./NcEllipsisedOption-D6Amb91K.mjs\";\nimport { N as NcSelect } from \"./NcSelect-BOFzoCwK.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { generateRemoteUrl } from \"@nextcloud/router\";\nimport { resolveComponent, openBlock, createBlock, mergeProps, createSlots, withCtx, createVNode, renderList, renderSlot, normalizeProps, guardReactiveProps } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t0);\nfunction xmlToJson(xml) {\n let obj = {};\n if (xml.nodeType === 1) {\n if (xml.attributes.length > 0) {\n obj[\"@attributes\"] = {};\n for (let j = 0; j < xml.attributes.length; j++) {\n const attribute = xml.attributes.item(j);\n obj[\"@attributes\"][attribute.nodeName] = attribute.nodeValue;\n }\n }\n } else if (xml.nodeType === 3) {\n obj = xml.nodeValue;\n }\n if (xml.hasChildNodes()) {\n for (let i = 0; i < xml.childNodes.length; i++) {\n const item = xml.childNodes.item(i);\n const nodeName = item.nodeName;\n if (typeof obj[nodeName] === \"undefined\") {\n obj[nodeName] = xmlToJson(item);\n } else {\n if (typeof obj[nodeName].push === \"undefined\") {\n const old = obj[nodeName];\n obj[nodeName] = [];\n obj[nodeName].push(old);\n }\n obj[nodeName].push(xmlToJson(item));\n }\n }\n }\n return obj;\n}\nfunction parseXml(xml) {\n let dom = null;\n try {\n dom = new DOMParser().parseFromString(xml, \"text/xml\");\n } catch (error) {\n logger.error(\"[NcSelectTags] Failed to parse xml document\", { error });\n }\n return dom;\n}\nfunction xmlToTagList(xml) {\n const json = xmlToJson(parseXml(xml));\n const list = json[\"d:multistatus\"][\"d:response\"];\n const result = [];\n for (const index in list) {\n const tag = list[index][\"d:propstat\"];\n if (tag[\"d:status\"][\"#text\"] !== \"HTTP/1.1 200 OK\") {\n continue;\n }\n result.push({\n id: parseInt(tag[\"d:prop\"][\"oc:id\"][\"#text\"]),\n displayName: tag[\"d:prop\"][\"oc:display-name\"][\"#text\"],\n canAssign: tag[\"d:prop\"][\"oc:can-assign\"][\"#text\"] === \"true\",\n userAssignable: tag[\"d:prop\"][\"oc:user-assignable\"][\"#text\"] === \"true\",\n userVisible: tag[\"d:prop\"][\"oc:user-visible\"][\"#text\"] === \"true\"\n });\n }\n return result;\n}\nasync function searchTags() {\n if (window.NextcloudVueDocs) {\n return Promise.resolve(xmlToTagList(window.NextcloudVueDocs.tags));\n }\n const result = await axios({\n method: \"PROPFIND\",\n url: generateRemoteUrl(\"dav\") + \"/systemtags/\",\n data: `\n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t`\n });\n return xmlToTagList(result.data);\n}\nconst _sfc_main = {\n name: \"NcSelectTags\",\n components: {\n NcEllipsisedOption,\n NcSelect\n },\n props: {\n // Add NcSelect prop defaults and populate $props\n ...NcSelect.props,\n /**\n * Enable automatic fetching of tags\n *\n * If `false`, available tags must be passed using the `options` prop\n */\n fetchTags: {\n type: Boolean,\n default: true\n },\n /**\n * Callback to generate the label text\n *\n * @see https://vue-select.org/api/props.html#getoptionlabel\n */\n getOptionLabel: {\n type: Function,\n default: (option) => {\n const { displayName, userVisible, userAssignable } = option;\n if (userVisible === false) {\n return t(\"{tag} (invisible)\", { tag: displayName });\n }\n if (userAssignable === false) {\n return t(\"{tag} (restricted)\", { tag: displayName });\n }\n return displayName;\n }\n },\n /**\n * Sets the maximum number of tags to display in the dropdown list\n *\n * Because of compatibility reasons only 5 tag entries are shown by\n * default\n */\n limit: {\n type: Number,\n default: 5\n },\n /**\n * Allow selection of multiple options\n *\n * This prop automatically sets the internal `closeOnSelect` prop to\n * its boolean opposite\n *\n * @see https://vue-select.org/api/props.html#multiple\n */\n multiple: {\n type: Boolean,\n default: true\n },\n /**\n * Callback to filter available options\n */\n optionsFilter: {\n type: Function,\n default: null\n },\n /**\n * Enable passing of `value` prop and emitted `input` events as-is\n * i.e. for usage with `v-model`\n *\n * If `true`, custom internal `value` and `input` handling is disabled\n */\n passthru: {\n type: Boolean,\n default: false\n },\n /**\n * Placeholder text\n *\n * @see https://vue-select.org/api/props.html#placeholder\n */\n placeholder: {\n type: String,\n default: t(\"Select a tag\")\n },\n /**\n * Currently selected value\n */\n modelValue: {\n type: [Number, Array, Object],\n default: null\n },\n /**\n * Any available prop\n *\n * @see https://vue-select.org/api/props.html\n */\n // Not an actual prop but needed to show in vue-styleguidist docs\n // eslint-disable-next-line\n \" \": {}\n },\n emits: [\n \"update:modelValue\",\n /**\n * All events from https://vue-select.org/api/events.html\n */\n // Not an actual event but needed to show in vue-styleguidist docs\n \" \"\n ],\n data() {\n return {\n search: \"\",\n availableTags: []\n };\n },\n computed: {\n availableOptions() {\n if (this.optionsFilter) {\n return this.tags.filter(this.optionsFilter);\n }\n return this.tags;\n },\n localValue() {\n if (this.passthru) {\n return this.modelValue;\n }\n if (this.tags.length === 0) {\n return [];\n }\n if (this.multiple) {\n return this.modelValue.filter((tag) => tag !== \"\").map((id) => this.tags.find((tag2) => tag2.id === id));\n } else {\n return this.tags.find((tag) => tag.id === this.modelValue);\n }\n },\n propsToForward() {\n const propsToForward = { ...this.$props };\n delete propsToForward.fetchTags;\n delete propsToForward.optionsFilter;\n delete propsToForward.passthru;\n return propsToForward;\n },\n tags() {\n if (!this.fetchTags) {\n return this.options;\n }\n return this.availableTags;\n }\n },\n async created() {\n if (!this.fetchTags) {\n return;\n }\n try {\n const result = await searchTags();\n this.availableTags = result;\n } catch (error) {\n logger.error(\"[NcSelectTags] Loading systemtags failed\", error);\n }\n },\n methods: {\n handleInput(value) {\n if (this.passthru) {\n this.$emit(\"update:modelValue\", value);\n return;\n }\n if (this.multiple) {\n this.$emit(\"update:modelValue\", value.map((element) => element.id));\n } else {\n if (value === null) {\n this.$emit(\"update:modelValue\", null);\n } else {\n this.$emit(\"update:modelValue\", value.id);\n }\n }\n }\n }\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcEllipsisedOption = resolveComponent(\"NcEllipsisedOption\");\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n return openBlock(), createBlock(_component_NcSelect, mergeProps($options.propsToForward, {\n options: $options.availableOptions,\n closeOnSelect: !$props.multiple,\n modelValue: $options.localValue,\n onSearch: _cache[0] || (_cache[0] = ($event) => $data.search = $event),\n \"onUpdate:modelValue\": $options.handleInput\n }), createSlots({\n option: withCtx((option) => [\n createVNode(_component_NcEllipsisedOption, {\n name: $props.getOptionLabel(option),\n search: $data.search\n }, null, 8, [\"name\", \"search\"])\n ]),\n \"selected-option\": withCtx((selectedOption) => [\n createVNode(_component_NcEllipsisedOption, {\n name: $props.getOptionLabel(selectedOption),\n search: $data.search\n }, null, 8, [\"name\", \"search\"])\n ]),\n _: 2\n }, [\n renderList(_ctx.$slots, (_, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1040, [\"options\", \"closeOnSelect\", \"modelValue\", \"onUpdate:modelValue\"]);\n}\nconst NcSelectTags = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n NcSelectTags as N\n};\n//# sourceMappingURL=NcSelectTags-D7qWNjXa.mjs.map\n"],"names":["register","t0","xmlToJson","xml","obj","j","attribute","i","item","nodeName","old","parseXml","dom","error","logger","xmlToTagList","list","result","index","tag","searchTags","axios","generateRemoteUrl","_sfc_main","NcEllipsisedOption","NcSelect","option","displayName","userVisible","userAssignable","t","id","tag2","propsToForward","value","element","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","_component_NcEllipsisedOption","resolveComponent","_component_NcSelect","openBlock","createBlock","mergeProps","$event","createSlots","withCtx","createVNode","selectedOption","renderList","_","name","data","renderSlot","normalizeProps","guardReactiveProps","NcSelectTags","_export_sfc"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/dist/NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs.map.license b/dist/NcSelectTags-D7qWNjXa-gqJ9LLZU.chunk.mjs.map.license similarity index 100% rename from dist/NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs.map.license rename to dist/NcSelectTags-D7qWNjXa-gqJ9LLZU.chunk.mjs.map.license diff --git a/dist/NcTextArea-Dxzj4zdb-stc727hj.chunk.mjs b/dist/NcTextArea-Dxzj4zdb-BPZd41PF.chunk.mjs similarity index 99% rename from dist/NcTextArea-Dxzj4zdb-stc727hj.chunk.mjs rename to dist/NcTextArea-Dxzj4zdb-BPZd41PF.chunk.mjs index 412a54990ed..b7f155c341f 100644 --- a/dist/NcTextArea-Dxzj4zdb-stc727hj.chunk.mjs +++ b/dist/NcTextArea-Dxzj4zdb-BPZd41PF.chunk.mjs @@ -1,4 +1,4 @@ -import{r as I,_ as N,b as $,c as tt,O as ba,N as Be,P as fa,Q as va,t as ya,R as Ca,S as Aa,u as ka,T as _a,U as Ea,V as Gt,W as Ta,X as Sa,Y as Ba,Z as La,l as Na,$ as wa,a0 as Ia,a1 as xa,a2 as $a,a3 as Fa}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{d as Da,w as Qt,x as Yt,c as Zt,a as Lt,y as Ra,l as Oa,z as za}from"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import{o as u,f as d,t as F,h as b,g as f,i as S,b as X,X as Xt,ak as Ma,p as Nt,l as ee,H as Pa,z as be,D as Ha,E as Ua,y as T,c as E,w as B,a7 as P,k as _,u as M,n as Ce,v as yt,m as U,r as A,L as J,aj as ja,N as w,j as at,I as Va,O as Ka,C as qa,x as Wa,s as fe,G as Ga,ah as Pt,af as Qa,Q as Jt,M as ct,T as Ya,F as Za,B as Xa,ae as Ja,K as ei}from"./Web-BwmPK40i.chunk.mjs";import{s as ti,f as dt,u as ai,d as ii}from"./index-B-dGqfIG.chunk.mjs";import{g as oe,F as ni,G as si,N as it,l as ea,i as pt,e as oi,f as ri}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{H as li,C as ui}from"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import{I as wt,C as ci,_ as di,N as pi}from"./index-BOH7nBEM.chunk.mjs";import{N as hi}from"./PencilOutline-CJ2aSuY5.chunk.mjs";import{N as ta}from"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{_ as aa}from"./TrayArrowDown-BI3qCRD6.chunk.mjs";import{N as gi}from"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import{e as ia,b as mi}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import{a as bi,b as fi,N as vi}from"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import{N as yi}from"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import{P as Ci}from"./NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./index-BLNGy7h5.chunk.mjs";import{g as Ai}from"./public-C1mLBHT3.chunk.mjs";I();const ki=X({name:"NcActionButtonGroup",inject:{isInSemanticMenu:{from:Da,default:!1}},props:{name:{required:!1,default:void 0,type:String}},setup(){return{labelId:tt()}},methods:{t:$}}),_i=["role"],Ei=["id"],Ti=["aria-labelledby"];function Si(e,a,t,s,n,i){return u(),d("li",{class:"nc-button-group-base",role:e.isInSemanticMenu&&"presentation"},[e.name?(u(),d("div",{key:0,id:e.labelId},F(e.name),9,Ei)):b("",!0),f("ul",{class:"nc-button-group-content",role:"group","aria-labelledby":e.name?e.labelId:void 0},[S(e.$slots,"default")],8,Ti)],8,_i)}const _o=N(ki,[["render",Si],["__scopeId","data-v-6a2b8de0"]]),Bi={name:"NcAppNavigationList"},Li={class:"app-navigation-list"};function Ni(e,a,t,s,n,i){return u(),d("ul",Li,[S(e.$slots,"default",{},void 0,!0)])}const wi=N(Bi,[["render",Ni],["__scopeId","data-v-d72957ed"]]);I(ba);const Ii={class:"app-navigation-toggle-wrapper"},xi=X({__name:"NcAppNavigationToggle",props:{open:{type:Boolean,required:!0},openModifiers:{}},emits:["update:open"],setup(e){const a=Ce(e,"open"),t=yt(()=>a.value?$("Close navigation"):$("Open navigation"));return(s,n)=>(u(),d("div",Ii,[_(M(it),{class:"app-navigation-toggle","aria-controls":"app-navigation-vue","aria-expanded":a.value?"true":"false","aria-label":t.value,title:t.value,variant:"tertiary",onClick:n[0]||(n[0]=i=>a.value=!a.value)},{icon:B(()=>[_(Be,{path:a.value?M(ni):M(si)},null,8,["path"])]),_:1},8,["aria-expanded","aria-label","title"])]))}}),$i=N(xi,[["__scopeId","data-v-5a15295d"]]),Fi=["aria-hidden","aria-label","aria-labelledby","inert"],Di={class:"app-navigation__search"},Ri=X({__name:"NcAppNavigation",props:{ariaLabel:{},ariaLabelledby:{}},setup(e){const a=e;let t;const s=Xt(li,()=>Ma(),!1),n=Nt("appNavigationContainer"),i=Zt(),o=ee(!i.value);Pa(()=>{!a.ariaLabel&&a.ariaLabelledby}),be(i,()=>{o.value=!i.value}),be(o,()=>{h()}),Ha(()=>{s(!0),ti("toggle-navigation",p),dt("navigation-toggled",{open:o.value}),t=Qt(n.value,{allowOutsideClick:!0,clickOutsideDeactivates:()=>(i.value&&(t.deactivate({returnFocus:!1}),l(!1)),!1),fallbackFocus:n.value,trapStack:Yt(),escapeDeactivates:!1}),h()}),Ua(()=>{s(!1),ai("toggle-navigation",p),t.deactivate()});function l(c){if(o.value===c){dt("navigation-toggled",{open:o.value});return}o.value=c===void 0?!o.value:c;const v=getComputedStyle(document.body),y=parseInt(v.getPropertyValue("--animation-quick"))||100;setTimeout(()=>{dt("navigation-toggled",{open:o.value})},1.5*y)}function p({open:c}){return l(c)}function h(){i.value&&o.value?t.activate():t.deactivate()}function g(){i.value&&l(!1)}return(c,v)=>(u(),d("div",{ref:"appNavigationContainer",class:T(["app-navigation",{"app-navigation--closed":!o.value,"app-navigation--legacy":M(oe)}])},[f("nav",{id:"app-navigation-vue","aria-hidden":o.value?"false":"true","aria-label":e.ariaLabel||void 0,"aria-labelledby":e.ariaLabelledby||void 0,class:"app-navigation__content",inert:!o.value||void 0,onKeydown:P(g,["esc"])},[f("div",Di,[S(c.$slots,"search",{},void 0,!0)]),f("div",{class:T(["app-navigation__body",{"app-navigation__body--no-list":!c.$slots.list}])},[S(c.$slots,"default",{},void 0,!0)],2),c.$slots.list?(u(),E(wi,{key:0,class:"app-navigation__list"},{default:B(()=>[S(c.$slots,"list",{},void 0,!0)]),_:3})):b("",!0),S(c.$slots,"footer",{},void 0,!0)],40,Fi),_($i,{open:o.value,"onUpdate:open":l},null,8,["open"])],2))}}),Eo=N(Ri,[["__scopeId","data-v-104ef656"]]);({...Lt.props});const Oi={name:"ChevronUpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},zi=["aria-hidden","aria-label"],Mi=["fill","width","height"],Pi={d:"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"},Hi={key:0};function Ui(e,a,t,s,n,i){return u(),d("span",U(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon chevron-up-icon",role:"img",onClick:a[0]||(a[0]=o=>e.$emit("click",o))}),[(u(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[f("path",Pi,[t.title?(u(),d("title",Hi,F(t.title),1)):b("",!0)])],8,Mi))],16,zi)}const ji=N(Oi,[["render",Ui]]),Vi={name:"ArrowRightIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ki=["aria-hidden","aria-label"],qi=["fill","width","height"],Wi={d:"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z"},Gi={key:0};function Qi(e,a,t,s,n,i){return u(),d("span",U(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon arrow-right-icon",role:"img",onClick:a[0]||(a[0]=o=>e.$emit("click",o))}),[(u(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[f("path",Wi,[t.title?(u(),d("title",Gi,F(t.title),1)):b("",!0)])],8,qi))],16,Ki)}const na=N(Vi,[["render",Qi]]);I(fa);const Yi={name:"NcInputConfirmCancel",components:{IconArrowRight:na,IconClose:wt,NcButton:it},setup(){return{isLegacy34:oe}},props:{primary:{default:!1,type:Boolean},placeholder:{default:"",type:String},modelValue:{default:"",type:String}},emits:["cancel","confirm","update:modelValue"],data(){return{labelConfirm:$("Confirm changes"),labelCancel:$("Cancel changes")}},computed:{valueModel:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{confirm(){this.$emit("confirm")},cancel(){this.$emit("cancel")},focusInput(){this.$refs.input.focus()}}},Zi=["placeholder"];function Xi(e,a,t,s,n,i){const o=A("IconArrowRight"),l=A("NcButton"),p=A("IconClose");return u(),d("div",{class:T(["app-navigation-input-confirm",{"app-navigation-input-confirm--legacy":s.isLegacy34}])},[f("form",{onSubmit:a[1]||(a[1]=w((...h)=>i.confirm&&i.confirm(...h),["prevent"])),onKeydown:a[2]||(a[2]=P(w((...h)=>i.cancel&&i.cancel(...h),["exact","stop","prevent"]),["esc"])),onClick:a[3]||(a[3]=w(()=>{},["stop","prevent"]))},[J(f("input",{ref:"input","onUpdate:modelValue":a[0]||(a[0]=h=>i.valueModel=h),type:"text",class:"app-navigation-input-confirm__input",placeholder:t.placeholder},null,8,Zi),[[ja,i.valueModel]]),_(l,{"aria-label":n.labelConfirm,type:"submit",variant:"primary",onClick:w(i.confirm,["stop","prevent"])},{icon:B(()=>[_(o,{size:20})]),_:1},8,["aria-label","onClick"]),_(l,{"aria-label":n.labelCancel,type:"reset",variant:t.primary?"primary":"tertiary",onClick:w(i.cancel,["stop","prevent"])},{icon:B(()=>[_(p,{size:20})]),_:1},8,["aria-label","variant","onClick"])],32)],2)}const Ji=N(Yi,[["render",Xi],["__scopeId","data-v-a8724c7f"]]),en={name:"PencilIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},tn=["aria-hidden","aria-label"],an=["fill","width","height"],nn={d:"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z"},sn={key:0};function on(e,a,t,s,n,i){return u(),d("span",U(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon pencil-icon",role:"img",onClick:a[0]||(a[0]=o=>e.$emit("click",o))}),[(u(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[f("path",nn,[t.title?(u(),d("title",sn,F(t.title),1)):b("",!0)])],8,an))],16,tn)}const rn=N(en,[["render",on]]),ln={name:"UndoIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},un=["aria-hidden","aria-label"],cn=["fill","width","height"],dn={d:"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z"},pn={key:0};function hn(e,a,t,s,n,i){return u(),d("span",U(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon undo-icon",role:"img",onClick:a[0]||(a[0]=o=>e.$emit("click",o))}),[(u(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[f("path",dn,[t.title?(u(),d("title",pn,F(t.title),1)):b("",!0)])],8,cn))],16,un)}const gn=N(ln,[["render",hn]]);I(va);const mn={name:"NcAppNavigationIconCollapsible",components:{NcButton:it,ChevronDown:ci,ChevronUp:ji},setup(){return{isLegacy34:oe}},props:{open:{type:Boolean,required:!0},active:{type:Boolean,required:!0}},emits:["click"],computed:{labelButton(){return this.open?$("Collapse menu"):$("Open menu")}},methods:{onClick(e){this.$emit("click",e)}}};function bn(e,a,t,s,n,i){const o=A("ChevronUp"),l=A("ChevronDown"),p=A("NcButton");return u(),E(p,{class:T(["icon-collapse",{"icon-collapse--active":t.active,"icon-collapse--open":t.open}]),"aria-label":i.labelButton,variant:t.active&&s.isLegacy34?"tertiary-on-primary":"tertiary",onClick:i.onClick},{icon:B(()=>[t.open?(u(),E(o,{key:0,size:20})):(u(),E(l,{key:1,size:20}))]),_:1},8,["class","aria-label","variant","onClick"])}const fn=N(mn,[["render",bn],["__scopeId","data-v-acf5ed2f"]]);I(Ca,ya);const vn={name:"NcAppNavigationItem",components:{NcActions:Lt,NcActionButton:hi,NcAppNavigationIconCollapsible:fn,NcInputConfirmCancel:Ji,NcLoadingIcon:ta,NcVNodes:aa,Pencil:rn,Undo:gn},props:{active:{type:Boolean,default:!1},name:{type:String,required:!0},title:{type:String,default:null},id:{type:String,default:()=>tt(),validator:e=>e.trim()!==""},icon:{type:String,default:""},loading:{type:Boolean,default:!1},to:{type:[String,Object],default:null},href:{type:String,default:null},allowCollapse:{type:Boolean,default:!1},editable:{type:Boolean,default:!1},editLabel:{type:String,default:""},editPlaceholder:{type:String,default:""},pinned:{type:Boolean,default:!1},undo:{type:Boolean,default:!1},open:{type:Boolean,default:!1},menuOpen:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},menuIcon:{type:String,default:void 0},menuPlacement:{type:String,default:"bottom"},ariaDescription:{type:String,default:null},forceDisplayActions:{type:Boolean,default:!1},inlineActions:{type:Number,default:0}},emits:["update:menuOpen","update:open","update:name","click","undo"],setup(){return{isMobile:Zt(),isLegacy34:oe}},data(){return{actionsBoundariesElement:void 0,editingValue:"",opened:this.open,editingActive:!1,menuOpenLocalValue:!1,focused:!1}},computed:{isRouterLink(){return this.to&&!this.href},canHaveChildren(){return this.$parent.$options._componentTag!=="AppNavigationItem"},editButtonAriaLabel(){return this.editLabel?this.editLabel:$("Edit item")},undoButtonAriaLabel(){return $("Undo changes")}},watch:{open(e){this.opened=e}},mounted(){this.actionsBoundariesElement=document.querySelector("#content-vue")||void 0},methods:{onMenuToggle(e){this.$emit("update:menuOpen",e),this.menuOpenLocalValue=e},toggleCollapse(){this.opened=!this.opened,this.$emit("update:open",this.opened)},onClick(e,a,t){this.$emit("click",e),!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&t&&(a?.(e),e.preventDefault())},handleEdit(){this.editingValue=this.name,this.editingActive=!0,this.onMenuToggle(!1),this.$nextTick(()=>{this.$refs.editingInput.focusInput()})},cancelEditing(){this.editingActive=!1},handleEditingDone(){this.$emit("update:name",this.editingValue),this.editingValue="",this.editingActive=!1},handleUndo(){this.$emit("undo")},handleFocus(){this.focused=!0},handleBlur(){this.focused=!1},handleTab(e){this.$refs.actions&&(this.focused?(e.preventDefault(),this.$refs.actions.$refs.triggerButton.$el.focus(),this.focused=!1):this.$refs.actions.$refs.triggerButton.$el.blur())},isExternal(e){return e&&e.match(/[a-z]+:\/\//i)}}},yn=["id"],Cn=["aria-current","aria-description","aria-expanded","href","target","title","onClick"],An={key:0,class:"editingContainer"},kn={key:1,class:"app-navigation-entry__deleted"},_n={class:"app-navigation-entry__deleted-description"},En={key:0,class:"app-navigation-entry__counter-wrapper"},Tn={key:0,class:"app-navigation-entry__children"};function Sn(e,a,t,s,n,i){const o=A("NcLoadingIcon"),l=A("NcInputConfirmCancel"),p=A("Pencil"),h=A("NcActionButton"),g=A("Undo"),c=A("NcActions"),v=A("NcAppNavigationIconCollapsible");return u(),d("li",{id:t.id,class:T([{"app-navigation-entry--opened":n.opened,"app-navigation-entry--pinned":t.pinned,"app-navigation-entry--collapsible":t.allowCollapse&&!!e.$slots.default},"app-navigation-entry-wrapper"])},[(u(),E(qa(i.isRouterLink?"router-link":"NcVNodes"),Va(Ka({...i.isRouterLink&&{custom:!0,to:t.to}})),{default:B(({href:y,navigate:D,isActive:C})=>[f("div",{class:T(["app-navigation-entry",{"app-navigation-entry--editing":n.editingActive,"app-navigation-entry--deleted":t.undo,"app-navigation-entry--legacy":s.isLegacy34,active:t.to&&C||t.active}])},[t.undo?b("",!0):(u(),d("a",{key:0,class:"app-navigation-entry-link","aria-current":t.active||t.to&&C?"page":void 0,"aria-description":t.ariaDescription,"aria-expanded":e.$slots.default?n.opened.toString():void 0,href:t.href||y||"#",target:i.isExternal(t.href)?"_blank":void 0,title:t.title||t.name,onBlur:a[1]||(a[1]=(...k)=>i.handleBlur&&i.handleBlur(...k)),onClick:k=>i.onClick(k,D,y),onFocus:a[2]||(a[2]=(...k)=>i.handleFocus&&i.handleFocus(...k)),onKeydown:a[3]||(a[3]=P(w((...k)=>i.handleTab&&i.handleTab(...k),["exact"]),["tab"]))},[f("div",{class:T(["app-navigation-entry-icon",{[t.icon]:t.icon}])},[t.loading?(u(),E(o,{key:0})):S(e.$slots,"icon",{key:1,active:t.active||t.to&&C},void 0,!0)],2),f("span",{class:T(["app-navigation-entry__name",{"hidden-visually":n.editingActive}])},F(t.name),3),n.editingActive?(u(),d("div",An,[_(l,{ref:"editingInput",modelValue:n.editingValue,"onUpdate:modelValue":a[0]||(a[0]=k=>n.editingValue=k),placeholder:t.editPlaceholder!==""?t.editPlaceholder:t.name,primary:t.to&&C||t.active,onCancel:i.cancelEditing,onConfirm:i.handleEditingDone},null,8,["modelValue","placeholder","primary","onCancel","onConfirm"])])):b("",!0)],40,Cn)),t.undo?(u(),d("div",kn,[f("div",_n,F(t.name),1)])):b("",!0),(e.$slots.actions||e.$slots.counter||t.editable||t.undo)&&!n.editingActive?(u(),d("div",{key:2,class:T(["app-navigation-entry__utils",{"app-navigation-entry__utils--display-actions":t.forceDisplayActions||n.menuOpenLocalValue||t.menuOpen}])},[e.$slots.counter?(u(),d("div",En,[S(e.$slots,"counter",{},void 0,!0)])):b("",!0),e.$slots.actions||t.editable&&!n.editingActive||t.undo?(u(),E(c,{key:1,ref:"actions",class:"app-navigation-entry__actions",container:"#app-navigation-vue",boundariesElement:n.actionsBoundariesElement,inline:t.inlineActions,placement:t.menuPlacement,open:t.menuOpen,forceMenu:t.forceMenu,defaultIcon:t.menuIcon,variant:"tertiary","onUpdate:open":i.onMenuToggle},{icon:B(()=>[S(e.$slots,"menu-icon",{},void 0,!0)]),default:B(()=>[t.editable&&!n.editingActive?(u(),E(h,{key:0,"aria-label":i.editButtonAriaLabel,onClick:i.handleEdit},{icon:B(()=>[_(p,{size:20})]),default:B(()=>[at(" "+F(t.editLabel),1)]),_:1},8,["aria-label","onClick"])):b("",!0),t.undo?(u(),E(h,{key:1,"aria-label":i.undoButtonAriaLabel,onClick:i.handleUndo},{icon:B(()=>[_(g,{size:20})]),_:1},8,["aria-label","onClick"])):b("",!0),S(e.$slots,"actions",{},void 0,!0)]),_:3},8,["boundariesElement","inline","placement","open","forceMenu","defaultIcon","onUpdate:open"])):b("",!0)],2)):b("",!0),t.allowCollapse&&e.$slots.default?(u(),E(v,{key:3,active:t.to&&C||t.active,open:n.opened,onClick:w(i.toggleCollapse,["prevent","stop"])},null,8,["active","open","onClick"])):b("",!0),S(e.$slots,"extra",{},void 0,!0)],2)]),_:3},16)),i.canHaveChildren&&e.$slots.default?(u(),d("ul",Tn,[S(e.$slots,"default",{},void 0,!0)])):b("",!0)],10,yn)}const To=N(vn,[["render",Sn],["__scopeId","data-v-e4d562ae"]]);I(ka,Aa);const Bn=X({__name:"NcAppNavigationSearch",props:fe({label:{type:String,default:$("Search …")},placeholder:{type:String,default:null}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const a=Ce(e,"modelValue"),t=Wa(),s=ee(),{focused:n}=Ra(s),i=Number.parseInt(window.getComputedStyle(window.document.body).getPropertyValue("--animation-quick"))||100,o=Nt("actionsContainer"),l=()=>!!t.actions?.({}),p=ee(!0),h=ee(),g=ee(!1);be(n,()=>{p.value=!n.value,window.clearTimeout(h.value),p.value?g.value=!1:window.setTimeout(()=>{g.value=!p.value},i)});function c(){a.value="",l()&&(p.value=!0,Ga(()=>o.value?.querySelector("button")?.focus()))}return(v,y)=>(u(),d("div",{class:T(["app-navigation-search",{"app-navigation-search--has-actions":l()}])},[_(gi,{ref_key:"inputElement",ref:s,modelValue:a.value,"onUpdate:modelValue":y[0]||(y[0]=D=>a.value=D),"aria-label":e.label,class:"app-navigation-search__input",labelOutside:"",placeholder:e.placeholder??e.label,showTrailingButton:a.value.length>0,trailingButtonLabel:M($)("Clear search"),type:"search",onTrailingButtonClick:c},{"trailing-button-icon":B(()=>[_(wt,{size:20})]),_:1},8,["modelValue","aria-label","placeholder","showTrailingButton","trailingButtonLabel"]),l()?(u(),d("div",{key:0,ref:"actionsContainer",class:T(["app-navigation-search__actions",{"app-navigation-search__actions--hidden":!p.value,"hidden-visually":g.value}])},[S(v.$slots,"actions",{},void 0,!0)],2)):b("",!0)],2))}}),So=N(Bn,[["__scopeId","data-v-191b6717"]]);I(_a),I(Ea),I(Gt);const Ln={mounted(e){e.focus()}},Nn="aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2odyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rck0msd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2oodside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2",wn="ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2",Ct="numeric",At="ascii",kt="alpha",ce="asciinumeric",ue="alphanumeric",_t="domain",sa="emoji",In="scheme",xn="slashscheme",ht="whitespace";function $n(e,a){return e in a||(a[e]=[]),a[e]}function te(e,a,t){a[Ct]&&(a[ce]=!0,a[ue]=!0),a[At]&&(a[ce]=!0,a[kt]=!0),a[ce]&&(a[ue]=!0),a[kt]&&(a[ue]=!0),a[ue]&&(a[_t]=!0),a[sa]&&(a[_t]=!0);for(const s in a){const n=$n(s,t);n.indexOf(e)<0&&n.push(e)}}function Fn(e,a){const t={};for(const s in a)a[s].indexOf(e)>=0&&(t[s]=!0);return t}function H(e=null){this.j={},this.jr=[],this.jd=null,this.t=e}H.groups={},H.prototype={accepts(){return!!this.t},go(e){const a=this,t=a.j[e];if(t)return t;for(let s=0;se.ta(a,t,s,n),L=(e,a,t,s,n)=>e.tr(a,t,s,n),Ht=(e,a,t,s,n)=>e.ts(a,t,s,n),r=(e,a,t,s,n)=>e.tt(a,t,s,n),Q="WORD",Et="UWORD",oa="ASCIINUMERICAL",ra="ALPHANUMERICAL",ve="LOCALHOST",Tt="TLD",St="UTLD",Se="SCHEME",se="SLASH_SCHEME",It="NUM",Bt="WS",xt="NL",de="OPENBRACE",pe="CLOSEBRACE",Le="OPENBRACKET",Ne="CLOSEBRACKET",we="OPENPAREN",Ie="CLOSEPAREN",xe="OPENANGLEBRACKET",$e="CLOSEANGLEBRACKET",Fe="FULLWIDTHLEFTPAREN",De="FULLWIDTHRIGHTPAREN",Re="LEFTCORNERBRACKET",Oe="RIGHTCORNERBRACKET",ze="LEFTWHITECORNERBRACKET",Me="RIGHTWHITECORNERBRACKET",Pe="FULLWIDTHLESSTHAN",He="FULLWIDTHGREATERTHAN",Ue="AMPERSAND",je="APOSTROPHE",Ve="ASTERISK",Z="AT",Ke="BACKSLASH",qe="BACKTICK",We="CARET",ae="COLON",$t="COMMA",Ge="DOLLAR",K="DOT",Qe="EQUALS",Ft="EXCLAMATION",V="HYPHEN",he="PERCENT",Ye="PIPE",Ze="PLUS",Xe="POUND",ge="QUERY",Dt="QUOTE",la="FULLWIDTHMIDDLEDOT",Rt="SEMI",q="SLASH",me="TILDE",Je="UNDERSCORE",ua="EMOJI",et="SYM";var ca=Object.freeze({__proto__:null,ALPHANUMERICAL:ra,AMPERSAND:Ue,APOSTROPHE:je,ASCIINUMERICAL:oa,ASTERISK:Ve,AT:Z,BACKSLASH:Ke,BACKTICK:qe,CARET:We,CLOSEANGLEBRACKET:$e,CLOSEBRACE:pe,CLOSEBRACKET:Ne,CLOSEPAREN:Ie,COLON:ae,COMMA:$t,DOLLAR:Ge,DOT:K,EMOJI:ua,EQUALS:Qe,EXCLAMATION:Ft,FULLWIDTHGREATERTHAN:He,FULLWIDTHLEFTPAREN:Fe,FULLWIDTHLESSTHAN:Pe,FULLWIDTHMIDDLEDOT:la,FULLWIDTHRIGHTPAREN:De,HYPHEN:V,LEFTCORNERBRACKET:Re,LEFTWHITECORNERBRACKET:ze,LOCALHOST:ve,NL:xt,NUM:It,OPENANGLEBRACKET:xe,OPENBRACE:de,OPENBRACKET:Le,OPENPAREN:we,PERCENT:he,PIPE:Ye,PLUS:Ze,POUND:Xe,QUERY:ge,QUOTE:Dt,RIGHTCORNERBRACKET:Oe,RIGHTWHITECORNERBRACKET:Me,SCHEME:Se,SEMI:Rt,SLASH:q,SLASH_SCHEME:se,SYM:et,TILDE:me,TLD:Tt,UNDERSCORE:Je,UTLD:St,UWORD:Et,WORD:Q,WS:Bt});const W=/[a-z]/,le=new RegExp("\\p{L}","u"),gt=new RegExp("\\p{Emoji}","u"),G=/\d/,mt=/\s/,Ut="\r",bt=` +import{r as I,_ as N,b as $,c as tt,O as ba,N as Be,P as fa,Q as va,t as ya,R as Ca,S as Aa,u as ka,T as _a,U as Ea,V as Gt,W as Ta,X as Sa,Y as Ba,Z as La,l as Na,$ as wa,a0 as Ia,a1 as xa,a2 as $a,a3 as Fa}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{d as Da,w as Qt,x as Yt,c as Zt,a as Lt,y as Ra,l as Oa,z as za}from"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import{o as u,f as d,t as F,h as b,g as f,i as S,b as X,X as Xt,ak as Ma,p as Nt,l as ee,H as Pa,z as be,D as Ha,E as Ua,y as T,c as E,w as B,a7 as P,k as _,u as M,n as Ce,v as yt,m as U,r as A,L as J,aj as ja,N as w,j as at,I as Va,O as Ka,C as qa,x as Wa,s as fe,G as Ga,ah as Pt,af as Qa,Q as Jt,M as ct,T as Ya,F as Za,B as Xa,ae as Ja,K as ei}from"./Web-BwmPK40i.chunk.mjs";import{s as ti,f as dt,u as ai,d as ii}from"./index-B-dGqfIG.chunk.mjs";import{g as oe,F as ni,G as si,N as it,l as ea,i as pt,e as oi,f as ri}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{H as li,C as ui}from"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import{I as wt,C as ci,_ as di,N as pi}from"./index-dqLzhRZM.chunk.mjs";import{N as hi}from"./PencilOutline-CJ2aSuY5.chunk.mjs";import{N as ta}from"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{_ as aa}from"./TrayArrowDown-BI3qCRD6.chunk.mjs";import{N as gi}from"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import{e as ia,b as mi}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import{a as bi,b as fi,N as vi}from"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import{N as yi}from"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import{P as Ci}from"./NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./index-BLNGy7h5.chunk.mjs";import{g as Ai}from"./public-C1mLBHT3.chunk.mjs";I();const ki=X({name:"NcActionButtonGroup",inject:{isInSemanticMenu:{from:Da,default:!1}},props:{name:{required:!1,default:void 0,type:String}},setup(){return{labelId:tt()}},methods:{t:$}}),_i=["role"],Ei=["id"],Ti=["aria-labelledby"];function Si(e,a,t,s,n,i){return u(),d("li",{class:"nc-button-group-base",role:e.isInSemanticMenu&&"presentation"},[e.name?(u(),d("div",{key:0,id:e.labelId},F(e.name),9,Ei)):b("",!0),f("ul",{class:"nc-button-group-content",role:"group","aria-labelledby":e.name?e.labelId:void 0},[S(e.$slots,"default")],8,Ti)],8,_i)}const _o=N(ki,[["render",Si],["__scopeId","data-v-6a2b8de0"]]),Bi={name:"NcAppNavigationList"},Li={class:"app-navigation-list"};function Ni(e,a,t,s,n,i){return u(),d("ul",Li,[S(e.$slots,"default",{},void 0,!0)])}const wi=N(Bi,[["render",Ni],["__scopeId","data-v-d72957ed"]]);I(ba);const Ii={class:"app-navigation-toggle-wrapper"},xi=X({__name:"NcAppNavigationToggle",props:{open:{type:Boolean,required:!0},openModifiers:{}},emits:["update:open"],setup(e){const a=Ce(e,"open"),t=yt(()=>a.value?$("Close navigation"):$("Open navigation"));return(s,n)=>(u(),d("div",Ii,[_(M(it),{class:"app-navigation-toggle","aria-controls":"app-navigation-vue","aria-expanded":a.value?"true":"false","aria-label":t.value,title:t.value,variant:"tertiary",onClick:n[0]||(n[0]=i=>a.value=!a.value)},{icon:B(()=>[_(Be,{path:a.value?M(ni):M(si)},null,8,["path"])]),_:1},8,["aria-expanded","aria-label","title"])]))}}),$i=N(xi,[["__scopeId","data-v-5a15295d"]]),Fi=["aria-hidden","aria-label","aria-labelledby","inert"],Di={class:"app-navigation__search"},Ri=X({__name:"NcAppNavigation",props:{ariaLabel:{},ariaLabelledby:{}},setup(e){const a=e;let t;const s=Xt(li,()=>Ma(),!1),n=Nt("appNavigationContainer"),i=Zt(),o=ee(!i.value);Pa(()=>{!a.ariaLabel&&a.ariaLabelledby}),be(i,()=>{o.value=!i.value}),be(o,()=>{h()}),Ha(()=>{s(!0),ti("toggle-navigation",p),dt("navigation-toggled",{open:o.value}),t=Qt(n.value,{allowOutsideClick:!0,clickOutsideDeactivates:()=>(i.value&&(t.deactivate({returnFocus:!1}),l(!1)),!1),fallbackFocus:n.value,trapStack:Yt(),escapeDeactivates:!1}),h()}),Ua(()=>{s(!1),ai("toggle-navigation",p),t.deactivate()});function l(c){if(o.value===c){dt("navigation-toggled",{open:o.value});return}o.value=c===void 0?!o.value:c;const v=getComputedStyle(document.body),y=parseInt(v.getPropertyValue("--animation-quick"))||100;setTimeout(()=>{dt("navigation-toggled",{open:o.value})},1.5*y)}function p({open:c}){return l(c)}function h(){i.value&&o.value?t.activate():t.deactivate()}function g(){i.value&&l(!1)}return(c,v)=>(u(),d("div",{ref:"appNavigationContainer",class:T(["app-navigation",{"app-navigation--closed":!o.value,"app-navigation--legacy":M(oe)}])},[f("nav",{id:"app-navigation-vue","aria-hidden":o.value?"false":"true","aria-label":e.ariaLabel||void 0,"aria-labelledby":e.ariaLabelledby||void 0,class:"app-navigation__content",inert:!o.value||void 0,onKeydown:P(g,["esc"])},[f("div",Di,[S(c.$slots,"search",{},void 0,!0)]),f("div",{class:T(["app-navigation__body",{"app-navigation__body--no-list":!c.$slots.list}])},[S(c.$slots,"default",{},void 0,!0)],2),c.$slots.list?(u(),E(wi,{key:0,class:"app-navigation__list"},{default:B(()=>[S(c.$slots,"list",{},void 0,!0)]),_:3})):b("",!0),S(c.$slots,"footer",{},void 0,!0)],40,Fi),_($i,{open:o.value,"onUpdate:open":l},null,8,["open"])],2))}}),Eo=N(Ri,[["__scopeId","data-v-104ef656"]]);({...Lt.props});const Oi={name:"ChevronUpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},zi=["aria-hidden","aria-label"],Mi=["fill","width","height"],Pi={d:"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"},Hi={key:0};function Ui(e,a,t,s,n,i){return u(),d("span",U(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon chevron-up-icon",role:"img",onClick:a[0]||(a[0]=o=>e.$emit("click",o))}),[(u(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[f("path",Pi,[t.title?(u(),d("title",Hi,F(t.title),1)):b("",!0)])],8,Mi))],16,zi)}const ji=N(Oi,[["render",Ui]]),Vi={name:"ArrowRightIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ki=["aria-hidden","aria-label"],qi=["fill","width","height"],Wi={d:"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z"},Gi={key:0};function Qi(e,a,t,s,n,i){return u(),d("span",U(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon arrow-right-icon",role:"img",onClick:a[0]||(a[0]=o=>e.$emit("click",o))}),[(u(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[f("path",Wi,[t.title?(u(),d("title",Gi,F(t.title),1)):b("",!0)])],8,qi))],16,Ki)}const na=N(Vi,[["render",Qi]]);I(fa);const Yi={name:"NcInputConfirmCancel",components:{IconArrowRight:na,IconClose:wt,NcButton:it},setup(){return{isLegacy34:oe}},props:{primary:{default:!1,type:Boolean},placeholder:{default:"",type:String},modelValue:{default:"",type:String}},emits:["cancel","confirm","update:modelValue"],data(){return{labelConfirm:$("Confirm changes"),labelCancel:$("Cancel changes")}},computed:{valueModel:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{confirm(){this.$emit("confirm")},cancel(){this.$emit("cancel")},focusInput(){this.$refs.input.focus()}}},Zi=["placeholder"];function Xi(e,a,t,s,n,i){const o=A("IconArrowRight"),l=A("NcButton"),p=A("IconClose");return u(),d("div",{class:T(["app-navigation-input-confirm",{"app-navigation-input-confirm--legacy":s.isLegacy34}])},[f("form",{onSubmit:a[1]||(a[1]=w((...h)=>i.confirm&&i.confirm(...h),["prevent"])),onKeydown:a[2]||(a[2]=P(w((...h)=>i.cancel&&i.cancel(...h),["exact","stop","prevent"]),["esc"])),onClick:a[3]||(a[3]=w(()=>{},["stop","prevent"]))},[J(f("input",{ref:"input","onUpdate:modelValue":a[0]||(a[0]=h=>i.valueModel=h),type:"text",class:"app-navigation-input-confirm__input",placeholder:t.placeholder},null,8,Zi),[[ja,i.valueModel]]),_(l,{"aria-label":n.labelConfirm,type:"submit",variant:"primary",onClick:w(i.confirm,["stop","prevent"])},{icon:B(()=>[_(o,{size:20})]),_:1},8,["aria-label","onClick"]),_(l,{"aria-label":n.labelCancel,type:"reset",variant:t.primary?"primary":"tertiary",onClick:w(i.cancel,["stop","prevent"])},{icon:B(()=>[_(p,{size:20})]),_:1},8,["aria-label","variant","onClick"])],32)],2)}const Ji=N(Yi,[["render",Xi],["__scopeId","data-v-a8724c7f"]]),en={name:"PencilIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},tn=["aria-hidden","aria-label"],an=["fill","width","height"],nn={d:"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z"},sn={key:0};function on(e,a,t,s,n,i){return u(),d("span",U(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon pencil-icon",role:"img",onClick:a[0]||(a[0]=o=>e.$emit("click",o))}),[(u(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[f("path",nn,[t.title?(u(),d("title",sn,F(t.title),1)):b("",!0)])],8,an))],16,tn)}const rn=N(en,[["render",on]]),ln={name:"UndoIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},un=["aria-hidden","aria-label"],cn=["fill","width","height"],dn={d:"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z"},pn={key:0};function hn(e,a,t,s,n,i){return u(),d("span",U(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon undo-icon",role:"img",onClick:a[0]||(a[0]=o=>e.$emit("click",o))}),[(u(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[f("path",dn,[t.title?(u(),d("title",pn,F(t.title),1)):b("",!0)])],8,cn))],16,un)}const gn=N(ln,[["render",hn]]);I(va);const mn={name:"NcAppNavigationIconCollapsible",components:{NcButton:it,ChevronDown:ci,ChevronUp:ji},setup(){return{isLegacy34:oe}},props:{open:{type:Boolean,required:!0},active:{type:Boolean,required:!0}},emits:["click"],computed:{labelButton(){return this.open?$("Collapse menu"):$("Open menu")}},methods:{onClick(e){this.$emit("click",e)}}};function bn(e,a,t,s,n,i){const o=A("ChevronUp"),l=A("ChevronDown"),p=A("NcButton");return u(),E(p,{class:T(["icon-collapse",{"icon-collapse--active":t.active,"icon-collapse--open":t.open}]),"aria-label":i.labelButton,variant:t.active&&s.isLegacy34?"tertiary-on-primary":"tertiary",onClick:i.onClick},{icon:B(()=>[t.open?(u(),E(o,{key:0,size:20})):(u(),E(l,{key:1,size:20}))]),_:1},8,["class","aria-label","variant","onClick"])}const fn=N(mn,[["render",bn],["__scopeId","data-v-acf5ed2f"]]);I(Ca,ya);const vn={name:"NcAppNavigationItem",components:{NcActions:Lt,NcActionButton:hi,NcAppNavigationIconCollapsible:fn,NcInputConfirmCancel:Ji,NcLoadingIcon:ta,NcVNodes:aa,Pencil:rn,Undo:gn},props:{active:{type:Boolean,default:!1},name:{type:String,required:!0},title:{type:String,default:null},id:{type:String,default:()=>tt(),validator:e=>e.trim()!==""},icon:{type:String,default:""},loading:{type:Boolean,default:!1},to:{type:[String,Object],default:null},href:{type:String,default:null},allowCollapse:{type:Boolean,default:!1},editable:{type:Boolean,default:!1},editLabel:{type:String,default:""},editPlaceholder:{type:String,default:""},pinned:{type:Boolean,default:!1},undo:{type:Boolean,default:!1},open:{type:Boolean,default:!1},menuOpen:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},menuIcon:{type:String,default:void 0},menuPlacement:{type:String,default:"bottom"},ariaDescription:{type:String,default:null},forceDisplayActions:{type:Boolean,default:!1},inlineActions:{type:Number,default:0}},emits:["update:menuOpen","update:open","update:name","click","undo"],setup(){return{isMobile:Zt(),isLegacy34:oe}},data(){return{actionsBoundariesElement:void 0,editingValue:"",opened:this.open,editingActive:!1,menuOpenLocalValue:!1,focused:!1}},computed:{isRouterLink(){return this.to&&!this.href},canHaveChildren(){return this.$parent.$options._componentTag!=="AppNavigationItem"},editButtonAriaLabel(){return this.editLabel?this.editLabel:$("Edit item")},undoButtonAriaLabel(){return $("Undo changes")}},watch:{open(e){this.opened=e}},mounted(){this.actionsBoundariesElement=document.querySelector("#content-vue")||void 0},methods:{onMenuToggle(e){this.$emit("update:menuOpen",e),this.menuOpenLocalValue=e},toggleCollapse(){this.opened=!this.opened,this.$emit("update:open",this.opened)},onClick(e,a,t){this.$emit("click",e),!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&t&&(a?.(e),e.preventDefault())},handleEdit(){this.editingValue=this.name,this.editingActive=!0,this.onMenuToggle(!1),this.$nextTick(()=>{this.$refs.editingInput.focusInput()})},cancelEditing(){this.editingActive=!1},handleEditingDone(){this.$emit("update:name",this.editingValue),this.editingValue="",this.editingActive=!1},handleUndo(){this.$emit("undo")},handleFocus(){this.focused=!0},handleBlur(){this.focused=!1},handleTab(e){this.$refs.actions&&(this.focused?(e.preventDefault(),this.$refs.actions.$refs.triggerButton.$el.focus(),this.focused=!1):this.$refs.actions.$refs.triggerButton.$el.blur())},isExternal(e){return e&&e.match(/[a-z]+:\/\//i)}}},yn=["id"],Cn=["aria-current","aria-description","aria-expanded","href","target","title","onClick"],An={key:0,class:"editingContainer"},kn={key:1,class:"app-navigation-entry__deleted"},_n={class:"app-navigation-entry__deleted-description"},En={key:0,class:"app-navigation-entry__counter-wrapper"},Tn={key:0,class:"app-navigation-entry__children"};function Sn(e,a,t,s,n,i){const o=A("NcLoadingIcon"),l=A("NcInputConfirmCancel"),p=A("Pencil"),h=A("NcActionButton"),g=A("Undo"),c=A("NcActions"),v=A("NcAppNavigationIconCollapsible");return u(),d("li",{id:t.id,class:T([{"app-navigation-entry--opened":n.opened,"app-navigation-entry--pinned":t.pinned,"app-navigation-entry--collapsible":t.allowCollapse&&!!e.$slots.default},"app-navigation-entry-wrapper"])},[(u(),E(qa(i.isRouterLink?"router-link":"NcVNodes"),Va(Ka({...i.isRouterLink&&{custom:!0,to:t.to}})),{default:B(({href:y,navigate:D,isActive:C})=>[f("div",{class:T(["app-navigation-entry",{"app-navigation-entry--editing":n.editingActive,"app-navigation-entry--deleted":t.undo,"app-navigation-entry--legacy":s.isLegacy34,active:t.to&&C||t.active}])},[t.undo?b("",!0):(u(),d("a",{key:0,class:"app-navigation-entry-link","aria-current":t.active||t.to&&C?"page":void 0,"aria-description":t.ariaDescription,"aria-expanded":e.$slots.default?n.opened.toString():void 0,href:t.href||y||"#",target:i.isExternal(t.href)?"_blank":void 0,title:t.title||t.name,onBlur:a[1]||(a[1]=(...k)=>i.handleBlur&&i.handleBlur(...k)),onClick:k=>i.onClick(k,D,y),onFocus:a[2]||(a[2]=(...k)=>i.handleFocus&&i.handleFocus(...k)),onKeydown:a[3]||(a[3]=P(w((...k)=>i.handleTab&&i.handleTab(...k),["exact"]),["tab"]))},[f("div",{class:T(["app-navigation-entry-icon",{[t.icon]:t.icon}])},[t.loading?(u(),E(o,{key:0})):S(e.$slots,"icon",{key:1,active:t.active||t.to&&C},void 0,!0)],2),f("span",{class:T(["app-navigation-entry__name",{"hidden-visually":n.editingActive}])},F(t.name),3),n.editingActive?(u(),d("div",An,[_(l,{ref:"editingInput",modelValue:n.editingValue,"onUpdate:modelValue":a[0]||(a[0]=k=>n.editingValue=k),placeholder:t.editPlaceholder!==""?t.editPlaceholder:t.name,primary:t.to&&C||t.active,onCancel:i.cancelEditing,onConfirm:i.handleEditingDone},null,8,["modelValue","placeholder","primary","onCancel","onConfirm"])])):b("",!0)],40,Cn)),t.undo?(u(),d("div",kn,[f("div",_n,F(t.name),1)])):b("",!0),(e.$slots.actions||e.$slots.counter||t.editable||t.undo)&&!n.editingActive?(u(),d("div",{key:2,class:T(["app-navigation-entry__utils",{"app-navigation-entry__utils--display-actions":t.forceDisplayActions||n.menuOpenLocalValue||t.menuOpen}])},[e.$slots.counter?(u(),d("div",En,[S(e.$slots,"counter",{},void 0,!0)])):b("",!0),e.$slots.actions||t.editable&&!n.editingActive||t.undo?(u(),E(c,{key:1,ref:"actions",class:"app-navigation-entry__actions",container:"#app-navigation-vue",boundariesElement:n.actionsBoundariesElement,inline:t.inlineActions,placement:t.menuPlacement,open:t.menuOpen,forceMenu:t.forceMenu,defaultIcon:t.menuIcon,variant:"tertiary","onUpdate:open":i.onMenuToggle},{icon:B(()=>[S(e.$slots,"menu-icon",{},void 0,!0)]),default:B(()=>[t.editable&&!n.editingActive?(u(),E(h,{key:0,"aria-label":i.editButtonAriaLabel,onClick:i.handleEdit},{icon:B(()=>[_(p,{size:20})]),default:B(()=>[at(" "+F(t.editLabel),1)]),_:1},8,["aria-label","onClick"])):b("",!0),t.undo?(u(),E(h,{key:1,"aria-label":i.undoButtonAriaLabel,onClick:i.handleUndo},{icon:B(()=>[_(g,{size:20})]),_:1},8,["aria-label","onClick"])):b("",!0),S(e.$slots,"actions",{},void 0,!0)]),_:3},8,["boundariesElement","inline","placement","open","forceMenu","defaultIcon","onUpdate:open"])):b("",!0)],2)):b("",!0),t.allowCollapse&&e.$slots.default?(u(),E(v,{key:3,active:t.to&&C||t.active,open:n.opened,onClick:w(i.toggleCollapse,["prevent","stop"])},null,8,["active","open","onClick"])):b("",!0),S(e.$slots,"extra",{},void 0,!0)],2)]),_:3},16)),i.canHaveChildren&&e.$slots.default?(u(),d("ul",Tn,[S(e.$slots,"default",{},void 0,!0)])):b("",!0)],10,yn)}const To=N(vn,[["render",Sn],["__scopeId","data-v-e4d562ae"]]);I(ka,Aa);const Bn=X({__name:"NcAppNavigationSearch",props:fe({label:{type:String,default:$("Search …")},placeholder:{type:String,default:null}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const a=Ce(e,"modelValue"),t=Wa(),s=ee(),{focused:n}=Ra(s),i=Number.parseInt(window.getComputedStyle(window.document.body).getPropertyValue("--animation-quick"))||100,o=Nt("actionsContainer"),l=()=>!!t.actions?.({}),p=ee(!0),h=ee(),g=ee(!1);be(n,()=>{p.value=!n.value,window.clearTimeout(h.value),p.value?g.value=!1:window.setTimeout(()=>{g.value=!p.value},i)});function c(){a.value="",l()&&(p.value=!0,Ga(()=>o.value?.querySelector("button")?.focus()))}return(v,y)=>(u(),d("div",{class:T(["app-navigation-search",{"app-navigation-search--has-actions":l()}])},[_(gi,{ref_key:"inputElement",ref:s,modelValue:a.value,"onUpdate:modelValue":y[0]||(y[0]=D=>a.value=D),"aria-label":e.label,class:"app-navigation-search__input",labelOutside:"",placeholder:e.placeholder??e.label,showTrailingButton:a.value.length>0,trailingButtonLabel:M($)("Clear search"),type:"search",onTrailingButtonClick:c},{"trailing-button-icon":B(()=>[_(wt,{size:20})]),_:1},8,["modelValue","aria-label","placeholder","showTrailingButton","trailingButtonLabel"]),l()?(u(),d("div",{key:0,ref:"actionsContainer",class:T(["app-navigation-search__actions",{"app-navigation-search__actions--hidden":!p.value,"hidden-visually":g.value}])},[S(v.$slots,"actions",{},void 0,!0)],2)):b("",!0)],2))}}),So=N(Bn,[["__scopeId","data-v-191b6717"]]);I(_a),I(Ea),I(Gt);const Ln={mounted(e){e.focus()}},Nn="aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2odyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rck0msd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2oodside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2",wn="ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2",Ct="numeric",At="ascii",kt="alpha",ce="asciinumeric",ue="alphanumeric",_t="domain",sa="emoji",In="scheme",xn="slashscheme",ht="whitespace";function $n(e,a){return e in a||(a[e]=[]),a[e]}function te(e,a,t){a[Ct]&&(a[ce]=!0,a[ue]=!0),a[At]&&(a[ce]=!0,a[kt]=!0),a[ce]&&(a[ue]=!0),a[kt]&&(a[ue]=!0),a[ue]&&(a[_t]=!0),a[sa]&&(a[_t]=!0);for(const s in a){const n=$n(s,t);n.indexOf(e)<0&&n.push(e)}}function Fn(e,a){const t={};for(const s in a)a[s].indexOf(e)>=0&&(t[s]=!0);return t}function H(e=null){this.j={},this.jr=[],this.jd=null,this.t=e}H.groups={},H.prototype={accepts(){return!!this.t},go(e){const a=this,t=a.j[e];if(t)return t;for(let s=0;se.ta(a,t,s,n),L=(e,a,t,s,n)=>e.tr(a,t,s,n),Ht=(e,a,t,s,n)=>e.ts(a,t,s,n),r=(e,a,t,s,n)=>e.tt(a,t,s,n),Q="WORD",Et="UWORD",oa="ASCIINUMERICAL",ra="ALPHANUMERICAL",ve="LOCALHOST",Tt="TLD",St="UTLD",Se="SCHEME",se="SLASH_SCHEME",It="NUM",Bt="WS",xt="NL",de="OPENBRACE",pe="CLOSEBRACE",Le="OPENBRACKET",Ne="CLOSEBRACKET",we="OPENPAREN",Ie="CLOSEPAREN",xe="OPENANGLEBRACKET",$e="CLOSEANGLEBRACKET",Fe="FULLWIDTHLEFTPAREN",De="FULLWIDTHRIGHTPAREN",Re="LEFTCORNERBRACKET",Oe="RIGHTCORNERBRACKET",ze="LEFTWHITECORNERBRACKET",Me="RIGHTWHITECORNERBRACKET",Pe="FULLWIDTHLESSTHAN",He="FULLWIDTHGREATERTHAN",Ue="AMPERSAND",je="APOSTROPHE",Ve="ASTERISK",Z="AT",Ke="BACKSLASH",qe="BACKTICK",We="CARET",ae="COLON",$t="COMMA",Ge="DOLLAR",K="DOT",Qe="EQUALS",Ft="EXCLAMATION",V="HYPHEN",he="PERCENT",Ye="PIPE",Ze="PLUS",Xe="POUND",ge="QUERY",Dt="QUOTE",la="FULLWIDTHMIDDLEDOT",Rt="SEMI",q="SLASH",me="TILDE",Je="UNDERSCORE",ua="EMOJI",et="SYM";var ca=Object.freeze({__proto__:null,ALPHANUMERICAL:ra,AMPERSAND:Ue,APOSTROPHE:je,ASCIINUMERICAL:oa,ASTERISK:Ve,AT:Z,BACKSLASH:Ke,BACKTICK:qe,CARET:We,CLOSEANGLEBRACKET:$e,CLOSEBRACE:pe,CLOSEBRACKET:Ne,CLOSEPAREN:Ie,COLON:ae,COMMA:$t,DOLLAR:Ge,DOT:K,EMOJI:ua,EQUALS:Qe,EXCLAMATION:Ft,FULLWIDTHGREATERTHAN:He,FULLWIDTHLEFTPAREN:Fe,FULLWIDTHLESSTHAN:Pe,FULLWIDTHMIDDLEDOT:la,FULLWIDTHRIGHTPAREN:De,HYPHEN:V,LEFTCORNERBRACKET:Re,LEFTWHITECORNERBRACKET:ze,LOCALHOST:ve,NL:xt,NUM:It,OPENANGLEBRACKET:xe,OPENBRACE:de,OPENBRACKET:Le,OPENPAREN:we,PERCENT:he,PIPE:Ye,PLUS:Ze,POUND:Xe,QUERY:ge,QUOTE:Dt,RIGHTCORNERBRACKET:Oe,RIGHTWHITECORNERBRACKET:Me,SCHEME:Se,SEMI:Rt,SLASH:q,SLASH_SCHEME:se,SYM:et,TILDE:me,TLD:Tt,UNDERSCORE:Je,UTLD:St,UWORD:Et,WORD:Q,WS:Bt});const W=/[a-z]/,le=new RegExp("\\p{L}","u"),gt=new RegExp("\\p{Emoji}","u"),G=/\d/,mt=/\s/,Ut="\r",bt=` `,Dn="️",Rn="‍",ft="";let ke=null,_e=null;function On(e=[]){const a={};H.groups=a;const t=new H;ke==null&&(ke=jt(Nn)),_e==null&&(_e=jt(wn)),r(t,"'",je),r(t,"{",de),r(t,"}",pe),r(t,"[",Le),r(t,"]",Ne),r(t,"(",we),r(t,")",Ie),r(t,"<",xe),r(t,">",$e),r(t,"(",Fe),r(t,")",De),r(t,"「",Re),r(t,"」",Oe),r(t,"『",ze),r(t,"』",Me),r(t,"<",Pe),r(t,">",He),r(t,"&",Ue),r(t,"*",Ve),r(t,"@",Z),r(t,"`",qe),r(t,"^",We),r(t,":",ae),r(t,",",$t),r(t,"$",Ge),r(t,".",K),r(t,"=",Qe),r(t,"!",Ft),r(t,"-",V),r(t,"%",he),r(t,"|",Ye),r(t,"+",Ze),r(t,"#",Xe),r(t,"?",ge),r(t,'"',Dt),r(t,"/",q),r(t,";",Rt),r(t,"~",me),r(t,"_",Je),r(t,"\\",Ke),r(t,"・",la);const s=L(t,G,It,{[Ct]:!0});L(s,G,s);const n=L(s,W,oa,{[ce]:!0}),i=L(s,le,ra,{[ue]:!0}),o=L(t,W,Q,{[At]:!0});L(o,G,n),L(o,W,o),L(n,G,n),L(n,W,n);const l=L(t,le,Et,{[kt]:!0});L(l,W),L(l,G,i),L(l,le,l),L(i,G,i),L(i,W),L(i,le,i);const p=r(t,bt,xt,{[ht]:!0}),h=r(t,Ut,Bt,{[ht]:!0}),g=L(t,mt,Bt,{[ht]:!0});r(t,ft,g),r(h,bt,p),r(h,ft,g),L(h,mt,g),r(g,Ut),r(g,bt),L(g,mt,g),r(g,ft,g);const c=L(t,gt,ua,{[sa]:!0});r(c,"#"),L(c,gt,c),r(c,Dn,c);const v=r(c,Rn);r(v,"#"),L(v,gt,c);const y=[[W,o],[G,n]],D=[[W,null],[le,l],[G,i]];for(let C=0;CC[0]>k[0]?1:-1);for(let C=0;C=0?x[_t]=!0:W.test(k)?G.test(k)?x[ce]=!0:x[At]=!0:x[Ct]=!0,Ht(t,k,k,x)}return Ht(t,"localhost",ve,{ascii:!0}),t.jd=new H(et),{start:t,tokens:Object.assign({groups:a},ca)}}function da(e,a){const t=zn(a.replace(/[A-Z]/g,l=>l.toLowerCase())),s=t.length,n=[];let i=0,o=0;for(;o=0&&(c+=t[o].length,v++),h+=t[o].length,i+=t[o].length,o++;i-=c,o-=v,h-=c,n.push({t:g.t,v:a.slice(i-h,i),s:i-h,e:i})}return n}function zn(e){const a=[],t=e.length;let s=0;for(;s56319||s+1===t||(i=e.charCodeAt(s+1))<56320||i>57343?e[s]:e.slice(s,s+2);a.push(o),s+=o.length}return a}function Y(e,a,t,s,n){let i;const o=a.length;for(let l=0;l=0;)i++;if(i>0){a.push(t.join(""));for(let o=parseInt(e.substring(s,s+i),10);o>0;o--)t.pop();s+=i}else t.push(e[s]),s++}return a}const ye={defaultProtocol:"http",events:null,format:Vt,formatHref:Vt,nl2br:!1,tagName:"a",target:null,rel:null,validate:!0,truncate:1/0,className:null,attributes:null,ignoreTags:[],render:null};function Ot(e,a=null){let t=Object.assign({},ye);e&&(t=Object.assign(t,e instanceof Ot?e.o:e));const s=t.ignoreTags,n=[];for(let i=0;it?s.substring(0,t)+"…":s},toFormattedHref(e){return e.get("formatHref",this.toHref(e.get("defaultProtocol")),this)},startIndex(){return this.tk[0].s},endIndex(){return this.tk[this.tk.length-1].e},toObject(e=ye.defaultProtocol){return{type:this.t,value:this.toString(),isLink:this.isLink,href:this.toHref(e),start:this.startIndex(),end:this.endIndex()}},toFormattedObject(e){return{type:this.t,value:this.toFormattedString(e),isLink:this.isLink,href:this.toFormattedHref(e),start:this.startIndex(),end:this.endIndex()}},validate(e){return e.get("validate",this.toString(),this)},render(e){const a=this,t=this.toHref(e.get("defaultProtocol")),s=e.get("formatHref",t,this),n=e.get("tagName",t,a),i=this.toFormattedString(e),o={},l=e.get("className",t,a),p=e.get("target",t,a),h=e.get("rel",t,a),g=e.getObj("attributes",t,a),c=e.getObj("events",t,a);return o.href=s,l&&(o.class=l),p&&(o.target=p),h&&(o.rel=h),g&&Object.assign(o,g),{tagName:n,attributes:o,content:i,eventListeners:c}}};function nt(e,a){class t extends pa{constructor(n,i){super(n,i),this.t=e}}for(const s in a)t.prototype[s]=a[s];return t.t=e,t}const Mn=nt("email",{isLink:!0,toHref(){return"mailto:"+this.toString()}}),Kt=nt("text"),Pn=nt("nl"),Ee=nt("url",{isLink:!0,toHref(e=ye.defaultProtocol){return this.hasProtocol()?this.v:`${e}://${this.v}`},hasProtocol(){const e=this.tk;return e.length>=2&&e[0].t!==ve&&e[1].t===ae}}),j=e=>new H(e);function Hn({groups:e}){const a=e.domain.concat([Ue,Ve,Z,Ke,qe,We,Ge,Qe,V,It,he,Ye,Ze,Xe,q,et,me,Je]),t=[je,ae,$t,K,Ft,he,ge,Dt,Rt,xe,$e,de,pe,Ne,Le,we,Ie,Fe,De,Re,Oe,ze,Me,Pe,He],s=[Ue,je,Ve,Ke,qe,We,Ge,Qe,V,de,pe,he,Ye,Ze,Xe,ge,q,et,me,Je],n=j(),i=r(n,me);m(i,s,i),m(i,e.domain,i);const o=j(),l=j(),p=j();m(n,e.domain,o),m(n,e.scheme,l),m(n,e.slashscheme,p),m(o,s,i),m(o,e.domain,o);const h=r(o,Z);r(i,Z,h),r(l,Z,h),r(p,Z,h);const g=r(i,K);m(g,s,i),m(g,e.domain,i);const c=j();m(h,e.domain,c),m(c,e.domain,c);const v=r(c,K);m(v,e.domain,c);const y=j(Mn);m(v,e.tld,y),m(v,e.utld,y),r(h,ve,y);const D=r(c,V);r(D,V,D),m(D,e.domain,c),m(y,e.domain,c),r(y,K,v),r(y,V,D);const C=r(o,V),k=r(o,K);r(C,V,C),m(C,e.domain,o),m(k,s,i),m(k,e.domain,o);const x=j(Ee);m(k,e.tld,x),m(k,e.utld,x),m(x,e.domain,o),m(x,s,i),r(x,K,k),r(x,V,C),r(x,Z,h);const st=r(x,ae),z=j(Ee);m(st,e.numeric,z);const R=j(Ee),re=j();m(R,a,R),m(R,t,re),m(re,a,R),m(re,t,re),r(x,q,R),r(z,q,R);const ot=r(l,ae),ga=r(p,ae),ma=r(ga,q),rt=r(ma,q);m(l,e.domain,o),r(l,K,k),r(l,V,C),m(p,e.domain,o),r(p,K,k),r(p,V,C),m(ot,e.domain,R),r(ot,q,R),r(ot,ge,R),m(rt,e.domain,R),m(rt,a,R),r(rt,q,R);const zt=[[de,pe],[Le,Ne],[we,Ie],[xe,$e],[Fe,De],[Re,Oe],[ze,Me],[Pe,He]];for(let lt=0;lt=0&&v++,n++,g++;if(v<0)n-=g,n0&&(i.push(vt(Kt,a,o)),o=[]),n-=v,g-=v;const y=c.t,D=t.slice(n-g,n);i.push(vt(y,a,D))}}return o.length>0&&i.push(vt(Kt,a,o)),i}function vt(e,a,t){const s=t[0].s,n=t[t.length-1].e,i=a.slice(s,n);return new e(i,t)}const O={scanner:null,parser:null,tokenQueue:[],pluginQueue:[],customSchemes:[],initialized:!1};function jn(){O.scanner=On(O.customSchemes);for(let e=0;e `):!n.isLink||!a.check(n)?s.push(ia(n.toString())):s.push(a.render(n));return s.join("")}function Kn(e){return e.replace(/"/g,""")}function qn(e){const a=[];for(const t in e){const s=e[t]+"";a.push(`${t}="${Kn(s)}"`)}return a.join(" ")}function Wn({tagName:e,attributes:a,content:t}){return`<${e} ${qn(a)}>${ia(t)}`}const Gn=function(e,{value:a}){a?.linkify===!0&&(e.innerHTML=Vn(a.text))},Qn=["title"],Yn=X({__name:"NcAppSidebarHeader",props:{name:{},title:{},linkify:{type:Boolean}},setup(e){const a=Xt("NcAppSidebar:header:ref");return(t,s)=>J((u(),d("h2",{ref_key:"headerRef",ref:a,tabindex:"-1",title:e.title},[at(F(e.name),1)],8,Qn)),[[M(Gn),{text:e.name,linkify:e.linkify}]])}}),Zn={name:"DockRightIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Xn=["aria-hidden","aria-label"],Jn=["fill","width","height"],es={d:"M20 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V6A2 2 0 0 0 20 4M15 18H4V6H15Z"},ts={key:0};function as(e,a,t,s,n,i){return u(),d("span",U(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon dock-right-icon",role:"img",onClick:a[0]||(a[0]=o=>e.$emit("click",o))}),[(u(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[f("path",es,[t.title?(u(),d("title",ts,F(t.title),1)):b("",!0)])],8,Jn))],16,Xn)}const is=N(Zn,[["render",as]]),ns={name:"StarIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ss=["aria-hidden","aria-label"],os=["fill","width","height"],rs={d:"M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z"},ls={key:0};function us(e,a,t,s,n,i){return u(),d("span",U(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon star-icon",role:"img",onClick:a[0]||(a[0]=o=>e.$emit("click",o))}),[(u(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[f("path",rs,[t.title?(u(),d("title",ls,F(t.title),1)):b("",!0)])],8,os))],16,ss)}const cs=N(ns,[["render",us]]),ds={name:"StarOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ps=["aria-hidden","aria-label"],hs=["fill","width","height"],gs={d:"M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z"},ms={key:0};function bs(e,a,t,s,n,i){return u(),d("span",U(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon star-outline-icon",role:"img",onClick:a[0]||(a[0]=o=>e.$emit("click",o))}),[(u(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[f("path",gs,[t.title?(u(),d("title",ms,F(t.title),1)):b("",!0)])],8,hs))],16,ps)}const fs=N(ds,[["render",bs]]),vs=["aria-selected","tabindex"],ys=X({__name:"NcAppSidebarTabsButton",props:fe({tab:{}},{selected:{type:Boolean,required:!0},selectedModifiers:{}}),emits:["update:selected"],setup(e){const a=Ce(e,"selected");return(t,s)=>(u(),d("button",{class:T(["button-vue",[t.$style.sidebarTabsButton,{[t.$style.sidebarTabsButton_selected]:a.value,[t.$style.sidebarTabsButton_legacy]:M(oe)}]]),role:"tab","aria-selected":a.value,tabindex:a.value?0:-1,onClick:s[0]||(s[0]=n=>a.value=!0)},[f("span",{class:T(t.$style.sidebarTabsButton__icon)},[_(aa,{vnodes:e.tab.renderIcon()},{default:B(()=>[f("span",{class:T([t.$style.sidebarTabsButton__legacyIcon,e.tab.icon])},null,2)]),_:1},8,["vnodes"])],2),f("span",{class:T(t.$style.sidebarTabsButton__name)},F(e.tab.name),3)],10,vs))}}),Cs="_sidebarTabsButton_6hxfz",As="_sidebarTabsButton_legacy_Qp20k",ks="_sidebarTabsButton_selected_eBHM-",_s="_sidebarTabsButton__name_YlW5S",Es="_sidebarTabsButton__icon_MPS-D",Ts="_sidebarTabsButton__legacyIcon_rzPOu",Ss={"material-design-icon":"_material-design-icon_m4vbX",sidebarTabsButton:Cs,sidebarTabsButton_legacy:As,sidebarTabsButton_selected:ks,sidebarTabsButton__name:_s,sidebarTabsButton__icon:Es,sidebarTabsButton__legacyIcon:Ts},Bs={$style:Ss},Ls=N(ys,[["__cssModules",Bs]]),Ns={name:"NcAppSidebarTabs",components:{NcAppSidebarTabsButton:Ls},provide(){return{registerTab:this.registerTab,unregisterTab:this.unregisterTab,getActiveTab:()=>this.activeTab,isTablistShown:()=>this.hasMultipleTabs}},props:{active:{type:String,default:""},forceTabs:{type:Boolean,default:!1}},emits:["update:active"],data(e){return{tabs:[],activeTab:e.active,isLegacy34:oe}},computed:{hasMultipleTabs(){return this.tabs.length>1},showForSingleTab(){return this.forceTabs&&this.tabs.length===1},currentTabIndex(){return this.tabs.findIndex(e=>e.id===this.activeTab)}},watch:{tabs(){this.active&&this.updateActive()},active(e){e!==this.activeTab&&this.updateActive()}},methods:{setActive(e){this.activeTab=e,this.$emit("update:active",this.activeTab)},focusPreviousTab(){this.currentTabIndex>0&&this.setActive(this.tabs[this.currentTabIndex-1].id),this.focusActiveTab()},focusNextTab(){this.currentTabIndexe===this.active)?this.active:this.tabs[0]?.id??""},registerTab(e){this.tabs.push(e),this.tabs.sort((a,t)=>a.order===t.order?a.name.localeCompare(t.name,[mi()]):a.order-t.order),this.updateActive()},unregisterTab(e){const a=this.tabs.findIndex(t=>t.id===e);a!==-1&&this.tabs.splice(a,1),this.activeTab===e&&this.updateActive()}}},ws={class:"app-sidebar-tabs"};function Is(e,a,t,s,n,i){const o=A("NcAppSidebarTabsButton");return u(),d("div",ws,[i.hasMultipleTabs||i.showForSingleTab?(u(),d("div",{key:0,role:"tablist",class:T(["app-sidebar-tabs__nav",{"app-sidebar-tabs__nav--legacy":n.isLegacy34}]),onKeydown:[a[0]||(a[0]=P(w((...l)=>i.focusPreviousTab&&i.focusPreviousTab(...l),["exact","prevent","stop"]),["left"])),a[1]||(a[1]=P(w((...l)=>i.focusNextTab&&i.focusNextTab(...l),["exact","prevent","stop"]),["right"])),a[2]||(a[2]=P(w((...l)=>i.focusActiveTabContent&&i.focusActiveTabContent(...l),["exact","prevent","stop"]),["tab"])),a[3]||(a[3]=P(w((...l)=>i.focusFirstTab&&i.focusFirstTab(...l),["exact","prevent","stop"]),["home"])),a[4]||(a[4]=P(w((...l)=>i.focusLastTab&&i.focusLastTab(...l),["exact","prevent","stop"]),["end"])),a[5]||(a[5]=P(w((...l)=>i.focusFirstTab&&i.focusFirstTab(...l),["exact","prevent","stop"]),["page-up"])),a[6]||(a[6]=P(w((...l)=>i.focusLastTab&&i.focusLastTab(...l),["exact","prevent","stop"]),["page-down"]))]},[(u(!0),d(Za,null,Xa(n.tabs,l=>(u(),E(o,{id:`tab-button-${l.id}`,key:l.id,class:"app-sidebar-tabs__tab","aria-controls":`tab-${l.id}`,selected:n.activeTab===l.id,tab:l,"onUpdate:selected":p=>i.setActive(l.id)},null,8,["id","aria-controls","selected","tab","onUpdate:selected"]))),128))],34)):b("",!0),f("div",{class:T(["app-sidebar-tabs__content",{"app-sidebar-tabs__content--multiple":i.hasMultipleTabs}])},[S(e.$slots,"default",{},void 0,!0)],2)])}const xs=N(Ns,[["render",Is],["__scopeId","data-v-e74d1502"]]);I(Ta);const $s={name:"NcAppSidebar",components:{NcActions:Lt,NcAppSidebarHeader:Yn,NcAppSidebarTabs:xs,NcButton:it,NcLoadingIcon:ta,NcEmptyContent:yi,IconArrowRight:na,IconClose:wt,IconDockRight:is,IconStar:cs,IconStarOutline:fs},directives:{Focus:Ln,ClickOutside:bi},inject:{ncContentSelector:{from:ui,default:void 0}},props:{active:{type:String,default:""},name:{type:String,required:!0},nameEditable:{type:Boolean,default:!1},namePlaceholder:{type:String,default:""},subname:{type:String,default:""},subtitle:{type:String,default:""},background:{type:String,default:""},starred:{type:Boolean,default:null},starLoading:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},compact:{type:Boolean,default:!1},empty:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},forceTabs:{type:Boolean,default:!1},linkifyName:{type:Boolean,default:!1},title:{type:String,default:""},open:{type:Boolean,default:!0},toggleClasses:{type:[String,Array,Object],default:""},toggleAttrs:{type:Object,default:void 0},noToggle:{type:Boolean,default:!1}},emits:["close","closed","opened","update:active","update:name","update:nameEditable","update:open","update:starred","submitName","dismissEditing"],setup(){const e=ee(null);return Ja("NcAppSidebar:header:ref",e),{uid:tt(),isMobile:za(),headerRef:e}},data(){return{changeNameTranslated:$("Change name"),closeTranslated:$("Close sidebar"),favoriteTranslated:$("Favorite"),isStarred:this.starred,focusTrap:null,elementToReturnFocus:null}},computed:{canStar(){return this.isStarred!==null},hasFigureClickListener(){return!!this.$attrs.onFigureClick}},watch:{starred(){this.isStarred=this.starred},isMobile(){this.toggleFocusTrap()},open(){this.checkToggleButtonContainerAvailability()}},created(){this.preserveElementToReturnFocus(),this.checkToggleButtonContainerAvailability()},beforeUnmount(){this.$emit("closed"),this.focusTrap?.deactivate()},methods:{isSlotPopulated:Oa,t:$,preserveElementToReturnFocus(){if(document.activeElement&&document.activeElement!==document.body&&(this.elementToReturnFocus=document.activeElement,this.elementToReturnFocus.getAttribute("role")==="menuitem")){const e=this.elementToReturnFocus.closest('[role="menu"]');if(e){const a=document.querySelector(`[aria-controls="${e.id}"]`);this.elementToReturnFocus=a}}},initFocusTrap(){this.focusTrap||(this.focusTrap=Qt([this.$refs.sidebar,document.querySelector("#header")],{allowOutsideClick:!0,fallbackFocus:this.$refs.closeButton.$el,trapStack:Yt(),escapeDeactivates:!1}))},toggleFocusTrap(){this.open&&this.isMobile?(this.initFocusTrap(),this.focusTrap.activate()):this.focusTrap?.deactivate()},onKeydownEsc(e){this.isMobile&&(e.stopPropagation(),this.closeSidebar())},onAfterEnter(e){this.elementToReturnFocus&&this.focus(),this.toggleFocusTrap(),this.$emit("opened",e)},onAfterLeave(e){this.$emit("closed",e),this.toggleFocusTrap(),this.elementToReturnFocus?.focus({focusVisible:!0}),this.elementToReturnFocus=null},closeSidebar(e){this.$emit("close",e),this.$emit("update:open",!1)},onFigureClick(e){this.$emit("figureClick",e)},toggleStarred(){this.isStarred=!this.isStarred,this.$emit("update:starred",this.isStarred)},async editName(){this.$emit("update:nameEditable",!0),this.nameEditable&&(await this.$nextTick(),this.$refs.nameInput.focus())},focus(){if(!this.open&&!this.noToggle){this.$refs.toggle.$el.focus();return}try{this.headerRef.focus()}catch{}},focusActiveTabContent(){this.preserveElementToReturnFocus(),this.$refs.tabs.focusActiveTabContent()},checkToggleButtonContainerAvailability(){this.open===!1&&!this.noToggle&&!this.ncContentSelector&&ea.warn("[NcAppSidebar] It looks like you want to use NcAppSidebar with the built-in toggle button. This feature is only available when NcAppSidebar is used in NcContent.")},onNameInput(e){this.$emit("update:name",e.target.value)},onSubmitName(e){this.$emit("update:nameEditable",!1),this.$emit("submitName",e)},onDismissEditing(){this.$emit("update:nameEditable",!1),this.$emit("dismissEditing")},onUpdateActive(e){this.$emit("update:active",e)}}},Fs=["aria-labelledby"],Ds={class:"app-sidebar-header__info"},Rs={key:0,class:"app-sidebar-header__tertiary-actions"},Os={class:"app-sidebar-header__name-container"},zs={class:"app-sidebar-header__mainname-container"},Ms=["placeholder","value"],Ps=["title"],Hs={key:2,class:"app-sidebar-header__description"};function Us(e,a,t,s,n,i){const o=A("IconDockRight"),l=A("NcButton"),p=A("NcLoadingIcon"),h=A("IconStar"),g=A("IconStarOutline"),c=A("NcAppSidebarHeader"),v=A("IconArrowRight"),y=A("NcActions"),D=A("IconClose"),C=A("NcAppSidebarTabs"),k=A("NcEmptyContent"),x=Pt("focus"),st=Pt("click-outside");return u(),E(Ya,{appear:"",name:"slide-right",onAfterEnter:i.onAfterEnter,onAfterLeave:i.onAfterLeave},{default:B(()=>[J(f("aside",{id:"app-sidebar-vue",ref:"sidebar",class:"app-sidebar","aria-labelledby":`app-sidebar-vue-${s.uid}__header`,onKeydown:a[6]||(a[6]=P((...z)=>i.onKeydownEsc&&i.onKeydownEsc(...z),["esc"]))},[i.ncContentSelector&&!t.open&&!t.noToggle?(u(),E(Qa,{key:0,to:i.ncContentSelector},[_(l,U({ref:"toggle","aria-label":i.t("Open sidebar"),class:["app-sidebar__toggle",t.toggleClasses],variant:"tertiary"},t.toggleAttrs,{onClick:a[0]||(a[0]=z=>e.$emit("update:open",!0))}),{icon:B(()=>[S(e.$slots,"toggle-icon",{},()=>[_(o,{size:20})],!0)]),_:3},16,["aria-label","class"])],8,["to"])):b("",!0),f("header",{class:T(["app-sidebar-header",{"app-sidebar-header--with-figure":i.isSlotPopulated(e.$slots.header?.())||t.background,"app-sidebar-header--compact":t.compact}])},[t.empty?(u(),E(c,{key:1,class:"app-sidebar-header__mainname--hidden",name:t.name,tabindex:"-1"},null,8,["name"])):S(e.$slots,"info",{key:0},()=>[f("div",Ds,[i.isSlotPopulated(e.$slots.header?.())||t.background?(u(),d("div",{key:0,class:T(["app-sidebar-header__figure",{"app-sidebar-header__figure--with-action":i.hasFigureClickListener}]),style:Jt({backgroundImage:`url(${t.background})`}),tabindex:"0",onClick:a[1]||(a[1]=(...z)=>i.onFigureClick&&i.onFigureClick(...z)),onKeydown:a[2]||(a[2]=P((...z)=>i.onFigureClick&&i.onFigureClick(...z),["enter"]))},[S(e.$slots,"header",{class:"app-sidebar-header__background"},void 0,!0)],38)):b("",!0),f("div",{class:T(["app-sidebar-header__desc",{"app-sidebar-header__desc--with-tertiary-action":i.canStar||i.isSlotPopulated(e.$slots["tertiary-actions"]?.()),"app-sidebar-header__desc--editable":t.nameEditable&&!t.subname,"app-sidebar-header__desc--with-subname--editable":t.nameEditable&&t.subname,"app-sidebar-header__desc--without-actions":!i.isSlotPopulated(e.$slots["secondary-actions"]?.())}])},[i.canStar||i.isSlotPopulated(e.$slots["tertiary-actions"]?.())?(u(),d("div",Rs,[S(e.$slots,"tertiary-actions",{},()=>[i.canStar?(u(),E(l,{key:0,"aria-label":n.favoriteTranslated,pressed:n.isStarred,class:"app-sidebar-header__star",variant:"secondary",onClick:w(i.toggleStarred,["prevent"])},{icon:B(()=>[t.starLoading?(u(),E(p,{key:0})):n.isStarred?(u(),E(h,{key:1,size:20})):(u(),E(g,{key:2,size:20}))]),_:1},8,["aria-label","pressed","onClick"])):b("",!0)],!0)])):b("",!0),f("div",Os,[f("div",zs,[J(_(c,{class:"app-sidebar-header__mainname",name:t.name,linkify:t.linkifyName,title:t.title,tabindex:t.nameEditable?0:-1,onClick:w(i.editName,["self"])},null,8,["name","linkify","title","tabindex","onClick"]),[[ct,!t.nameEditable]]),t.nameEditable?J((u(),d("form",{key:0,class:"app-sidebar-header__mainname-form",onSubmit:a[5]||(a[5]=w((...z)=>i.onSubmitName&&i.onSubmitName(...z),["prevent"]))},[J(f("input",{ref:"nameInput",class:"app-sidebar-header__mainname-input",type:"text",placeholder:t.namePlaceholder,value:t.name,onKeydown:a[3]||(a[3]=P(w((...z)=>i.onDismissEditing&&i.onDismissEditing(...z),["stop"]),["esc"])),onInput:a[4]||(a[4]=(...z)=>i.onNameInput&&i.onNameInput(...z))},null,40,Ms),[[x]]),_(l,{"aria-label":n.changeNameTranslated,type:"submit",variant:"tertiary-no-background"},{icon:B(()=>[_(v,{size:20})]),_:1},8,["aria-label"])],32)),[[st,()=>i.onSubmitName()]]):b("",!0),i.isSlotPopulated(e.$slots["secondary-actions"]?.())?(u(),E(y,{key:1,class:"app-sidebar-header__menu",forceMenu:t.forceMenu},{default:B(()=>[S(e.$slots,"secondary-actions",{},void 0,!0)]),_:3},8,["forceMenu"])):b("",!0)]),t.subname.trim()!==""||e.$slots.subname?(u(),d("p",{key:0,title:t.subtitle||void 0,class:"app-sidebar-header__subname"},[S(e.$slots,"subname",{},()=>[at(F(t.subname),1)],!0)],8,Ps)):b("",!0)])],2)])],!0),_(l,{ref:"closeButton","aria-label":n.closeTranslated,title:n.closeTranslated,class:"app-sidebar__close",variant:"tertiary",onClick:w(i.closeSidebar,["prevent"])},{icon:B(()=>[_(D,{size:20})]),_:1},8,["aria-label","title","onClick"]),i.isSlotPopulated(e.$slots.description?.())&&!t.empty?(u(),d("div",Hs,[S(e.$slots,"description",{},void 0,!0)])):b("",!0)],2),J(_(C,{ref:"tabs",active:t.active,forceTabs:t.forceTabs,"onUpdate:active":i.onUpdateActive},{default:B(()=>[S(e.$slots,"default",{},void 0,!0)]),_:3},8,["active","forceTabs","onUpdate:active"]),[[ct,!t.loading]]),t.loading?(u(),E(k,{key:1},{icon:B(()=>[_(p,{size:64})]),_:1})):b("",!0)],40,Fs),[[ct,t.open]])]),_:3},8,["onAfterEnter","onAfterLeave"])}const Bo=N($s,[["render",Us],["__scopeId","data-v-e8979b7f"]]);new Ci({concurrency:5}),I(Sa),I(Ba),I(La),$("More items …");const js=Na().detectLanguage(),Te=js.build();Te.ngettext.bind(Te),Te.gettext.bind(Te),I(wa),I(Gt);const Vs=8,qt=32,Ks={name:"NcListItemIcon",components:{NcAvatar:vi,NcHighlight:di,NcIconSvgWrapper:Be},mixins:[fi],props:{name:{type:String,required:!0},subname:{type:String,default:""},icon:{type:String,default:""},iconSvg:{type:String,default:""},iconName:{type:String,default:""},search:{type:String,default:""},avatarSize:{type:Number,default:qt},noMargin:{type:Boolean,default:!1},displayName:{type:String,default:null},isNoUser:{type:Boolean,default:!1},id:{type:String,default:null}},setup(){return{margin:Vs,defaultSize:qt}},computed:{hasIcon(){return this.icon!==""},hasIconSvg(){return this.iconSvg!==""},isValidSubname(){return this.subname?.trim?.()!==""},isSizeBigEnough(){return this.avatarSize>=26},cssVars(){const e=this.noMargin?0:this.margin;return{"--height":this.avatarSize+2*e+"px","--margin":this.margin+"px"}},searchParts(){const e=/^([^<]*)<([^>]+)>?$/,a=this.search.match(e);return this.isNoUser||!a?[this.search,this.search]:[a[1].trim(),a[2]]}},beforeMount(){!this.isNoUser&&!this.subname&&this.fetchUserStatus(this.user)}},qs=["id"],Ws={class:"option__details"},Gs={key:1},Qs=["aria-label"];function Ys(e,a,t,s,n,i){const o=A("NcAvatar"),l=A("NcHighlight"),p=A("NcIconSvgWrapper");return u(),d("span",{id:t.id,class:T(["option",{"option--compact":t.avatarSize[i.hasIconSvg?(u(),E(p,{key:0,class:"option__icon",svg:t.iconSvg,name:t.iconName},null,8,["svg","name"])):i.hasIcon?(u(),d("span",{key:1,class:T(["icon option__icon",t.icon]),"aria-label":t.iconName},null,10,Qs)):b("",!0)],!0)],14,qs)}const Wt=N(Ks,[["render",Ys],["__scopeId","data-v-0ee94269"]]);Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-grid-baseline")),Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-clickable-area")),Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--clickable-area-small")),I(Ia),I(xa),Ai()?.circles?.teamResourceProviders,I($a),$("Related resources"),$("Anything shared with the same group of people will show up here");const Zs=X({__name:"NcSelectUsers",props:fe({ariaLabelClearSelected:{},ariaLabelListbox:{},ariaLabelDeselectOption:{type:Function},disabled:{type:Boolean},inputId:{},inputLabel:{},labelOutside:{type:Boolean},keepOpen:{type:Boolean},loading:{type:Boolean},multiple:{type:Boolean},noWrap:{type:Boolean},options:{},placeholder:{},required:{type:Boolean}},{modelValue:{},modelModifiers:{}}),emits:fe(["search"],["update:modelValue"]),setup(e,{emit:a}){const t=Ce(e,"modelValue"),s=a,n=ee("");be(n,()=>s("search",n.value));const i=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-clickable-area")),o=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-grid-baseline")),l=i-2*o;function p(h,g,c){const v=/[^<]*<([^>]+)/,y=c.match(v),D=h.subname?.toLocaleLowerCase()??"";return y&&D.indexOf(y[1].toLocaleLowerCase())>-1||`${g} ${h.subname}`.toLocaleLowerCase().indexOf(c.toLocaleLowerCase())>-1}return(h,g)=>(u(),E(M(pi),U({modelValue:t.value,"onUpdate:modelValue":g[0]||(g[0]=c=>t.value=c),class:"nc-select-users"},h.$props,{filterBy:p,label:"displayName",onSearch:g[1]||(g[1]=c=>n.value=c)}),{option:B(c=>[_(M(Wt),U(c,{avatarSize:32,name:c.displayName,search:n.value}),null,16,["name","search"])]),"selected-option":B(c=>[_(M(Wt),U(c,{avatarSize:l,name:c.displayName,noMargin:"",search:n.value}),null,16,["name","search"])]),_:1},16,["modelValue"]))}}),Lo=N(Zs,[["__scopeId","data-v-e8e18fd3"]]);I(Fa),ii(function(e){this.loadGroup(e)},200);const Xs={class:"textarea__main-wrapper"},Js=["id","aria-describedby","disabled","placeholder","value"],eo=["for"],to=["id"],ao=X({inheritAttrs:!1,__name:"NcTextArea",props:fe({disabled:{type:Boolean},error:{type:Boolean},helperText:{default:void 0},id:{default:()=>tt()},inputClass:{default:""},label:{default:void 0},labelOutside:{type:Boolean},placeholder:{default:void 0},resize:{default:"both"},success:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e,{expose:a}){const t=Ce(e,"modelValue"),s=e;a({focus:h,select:g});const n=ei(),i=Nt("input"),o=yt(()=>s.placeholder||(pt?s.label:void 0));be(()=>s.labelOutside,()=>{!s.labelOutside&&!s.label&&ea.warn("[NcTextArea] You need to add a label to the NcInputField component. Either use the prop label or use an external one, as per the example in the documentation.")});const l=yt(()=>{const c=[];return s.helperText&&c.push(`${s.id}-helper-text`),typeof n["aria-describedby"]=="string"&&c.push(n["aria-describedby"]),c.join(" ")||void 0});function p(c){const{value:v}=c.target;t.value=v}function h(c){i.value.focus(c)}function g(){i.value.select()}return(c,v)=>(u(),d("div",{class:T(["textarea",[c.$attrs.class,{"textarea--disabled":e.disabled,"textarea--legacy":M(pt)}]])},[f("div",Xs,[f("textarea",U({...c.$attrs,class:void 0},{id:e.id,ref:"input","aria-describedby":l.value,"aria-live":"polite",class:["textarea__input",[e.inputClass,{"textarea__input--label-outside":e.labelOutside,"textarea__input--legacy":M(pt),"textarea__input--success":e.success,"textarea__input--error":e.error}]],disabled:e.disabled,placeholder:o.value,style:{resize:e.resize},value:t.value,onInput:p}),null,16,Js),e.labelOutside?b("",!0):(u(),d("label",{key:0,class:"textarea__label",for:e.id},F(e.label),9,eo))]),e.helperText?(u(),d("p",{key:0,id:`${e.id}-helper-text`,class:T(["textarea__helper-text-message",{"textarea__helper-text-message--error":e.error,"textarea__helper-text-message--success":e.success}])},[e.success?(u(),E(Be,{key:0,class:"textarea__helper-text-message__icon",path:M(oi),inline:""},null,8,["path"])):e.error?(u(),E(Be,{key:1,class:"textarea__helper-text-message__icon",path:M(ri),inline:""},null,8,["path"])):b("",!0),at(" "+F(e.helperText),1)],10,to)):b("",!0)],2))}}),No=N(ao,[["__scopeId","data-v-d327fb49"]]);export{Lo as N,No as a,_o as b,Eo as c,To as d,So as e,Bo as f}; -//# sourceMappingURL=NcTextArea-Dxzj4zdb-stc727hj.chunk.mjs.map +//# sourceMappingURL=NcTextArea-Dxzj4zdb-BPZd41PF.chunk.mjs.map diff --git a/dist/NcTextArea-Dxzj4zdb-stc727hj.chunk.mjs.license b/dist/NcTextArea-Dxzj4zdb-BPZd41PF.chunk.mjs.license similarity index 100% rename from dist/NcTextArea-Dxzj4zdb-stc727hj.chunk.mjs.license rename to dist/NcTextArea-Dxzj4zdb-BPZd41PF.chunk.mjs.license diff --git a/dist/NcTextArea-Dxzj4zdb-stc727hj.chunk.mjs.map b/dist/NcTextArea-Dxzj4zdb-BPZd41PF.chunk.mjs.map similarity index 99% rename from dist/NcTextArea-Dxzj4zdb-stc727hj.chunk.mjs.map rename to dist/NcTextArea-Dxzj4zdb-BPZd41PF.chunk.mjs.map index 9501187c8de..e148a0260e3 100644 --- a/dist/NcTextArea-Dxzj4zdb-stc727hj.chunk.mjs.map +++ b/dist/NcTextArea-Dxzj4zdb-BPZd41PF.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"NcTextArea-Dxzj4zdb-stc727hj.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcActionButtonGroup-B9LfyE-G.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationList-CGSWabRB.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigation-Bb9-C2eO.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationCaption-E9iJtiQt.mjs","../node_modules/@nextcloud/vue/dist/chunks/ChevronUp-ChH8oB7p.mjs","../node_modules/@nextcloud/vue/dist/chunks/ArrowRight-B1ncAhus.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcInputConfirmCancel-B6qC3s63.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationItem-BFAIHyTL.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationSearch-CiOKjV3M.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationSettings-fbuQmy-q.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSettingsDialog-DByPnndK.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSettingsShortcutsSection-DgqVuZGx.mjs","../node_modules/@nextcloud/vue/dist/directives/Focus/index.mjs","../node_modules/linkifyjs/dist/linkify.mjs","../node_modules/@nextcloud/vue/dist/directives/Linkify/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-C-QhdyiN.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSidebar-Ch7Vp7q5.mjs","../node_modules/@nextcloud/vue/dist/functions/preloadImage/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcCollectionList-CO-iHqi6.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDashboardWidget-ftOfMTzx.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFilePicker-nPCwHMqj.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcKbd-Iyp0KDp4.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcHotkeyList-CmMgGhMr.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcListItemIcon-D_f5AGrh.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcProgressBar-C-ane-Ni.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcRelatedResourcesPanel-C0j0Fs4r.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSelectUsers-CI8twLn9.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSettingsSelectGroup-TN64yH4k.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcTextArea-Dxzj4zdb.mjs"],"sourcesContent":["import '../assets/NcActionButtonGroup-Bt8kRk79.css';\nimport { defineComponent, openBlock, createElementBlock, toDisplayString, createCommentVNode, createElementVNode, renderSlot } from \"vue\";\nimport { r as register, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-BzPO2c4h.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister();\nconst _sfc_main = defineComponent({\n name: \"NcActionButtonGroup\",\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\n /**\n * Optional text shown below the button group\n */\n name: {\n required: false,\n default: void 0,\n type: String\n }\n },\n setup() {\n return {\n labelId: createElementId()\n };\n },\n methods: {\n t\n }\n});\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = [\"id\"];\nconst _hoisted_3 = [\"aria-labelledby\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"li\", {\n class: \"nc-button-group-base\",\n role: _ctx.isInSemanticMenu && \"presentation\"\n }, [\n _ctx.name ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n id: _ctx.labelId\n }, toDisplayString(_ctx.name), 9, _hoisted_2)) : createCommentVNode(\"\", true),\n createElementVNode(\"ul\", {\n class: \"nc-button-group-content\",\n role: \"group\",\n \"aria-labelledby\": _ctx.name ? _ctx.labelId : void 0\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 8, _hoisted_3)\n ], 8, _hoisted_1);\n}\nconst NcActionButtonGroup = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-6a2b8de0\"]]);\nexport {\n NcActionButtonGroup as N\n};\n//# sourceMappingURL=NcActionButtonGroup-B9LfyE-G.mjs.map\n","import '../assets/NcAppNavigationList--36j6Acm.css';\nimport { openBlock, createElementBlock, renderSlot } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcAppNavigationList\"\n};\nconst _hoisted_1 = { class: \"app-navigation-list\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"ul\", _hoisted_1, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]);\n}\nconst NcAppNavigationList = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-d72957ed\"]]);\nexport {\n NcAppNavigationList as N\n};\n//# sourceMappingURL=NcAppNavigationList-CGSWabRB.mjs.map\n","import '../assets/NcAppNavigation-2b1jxOXM.css';\nimport { defineComponent, useModel, computed, openBlock, createElementBlock, createVNode, unref, withCtx, inject, warn, useTemplateRef, ref, watchEffect, watch, onMounted, onUnmounted, normalizeClass, createElementVNode, withKeys, renderSlot, createBlock, createCommentVNode } from \"vue\";\nimport { subscribe, emit, unsubscribe } from \"@nextcloud/event-bus\";\nimport { createFocusTrap } from \"focus-trap\";\nimport { N as NcAppNavigationList } from \"./NcAppNavigationList-CGSWabRB.mjs\";\nimport { G as mdiMenuOpen, H as mdiMenu } from \"./mdi-CpchYUUV.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { r as register, P as t20, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { g as getTrapStack } from \"./focusTrap-HJQ4pqHV.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { H as HAS_APP_NAVIGATION_KEY } from \"./constants-Ciwvl5xb.mjs\";\nregister(t20);\nconst _hoisted_1$1 = { class: \"app-navigation-toggle-wrapper\" };\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"NcAppNavigationToggle\",\n props: {\n \"open\": { type: Boolean, ...{ required: true } },\n \"openModifiers\": {}\n },\n emits: [\"update:open\"],\n setup(__props) {\n const open = useModel(__props, \"open\");\n const title = computed(() => open.value ? t(\"Close navigation\") : t(\"Open navigation\"));\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n createVNode(unref(NcButton), {\n class: \"app-navigation-toggle\",\n \"aria-controls\": \"app-navigation-vue\",\n \"aria-expanded\": open.value ? \"true\" : \"false\",\n \"aria-label\": title.value,\n title: title.value,\n variant: \"tertiary\",\n onClick: _cache[0] || (_cache[0] = ($event) => open.value = !open.value)\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: open.value ? unref(mdiMenuOpen) : unref(mdiMenu)\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-expanded\", \"aria-label\", \"title\"])\n ]);\n };\n }\n});\nconst NcAppNavigationToggle = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"__scopeId\", \"data-v-5a15295d\"]]);\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\", \"aria-labelledby\", \"inert\"];\nconst _hoisted_2 = { class: \"app-navigation__search\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppNavigation\",\n props: {\n ariaLabel: {},\n ariaLabelledby: {}\n },\n setup(__props) {\n const props = __props;\n let focusTrap;\n const setHasAppNavigation = inject(\n HAS_APP_NAVIGATION_KEY,\n () => warn(\"NcAppNavigation is not mounted inside NcContent, this is probably an error.\"),\n false\n );\n const appNavigationContainerElement = useTemplateRef(\"appNavigationContainer\");\n const isMobile = useIsMobile();\n const open = ref(!isMobile.value);\n watchEffect(() => {\n if (!props.ariaLabel && !props.ariaLabelledby) {\n warn(\"NcAppNavigation requires either `ariaLabel` or `ariaLabelledby` to be set for accessibility.\");\n }\n });\n watch(isMobile, () => {\n open.value = !isMobile.value;\n });\n watch(open, () => {\n toggleFocusTrap();\n });\n onMounted(() => {\n setHasAppNavigation(true);\n subscribe(\"toggle-navigation\", toggleNavigationByEventBus);\n emit(\"navigation-toggled\", {\n open: open.value\n });\n focusTrap = createFocusTrap(appNavigationContainerElement.value, {\n allowOutsideClick: true,\n clickOutsideDeactivates: () => {\n if (isMobile.value) {\n focusTrap.deactivate({ returnFocus: false });\n toggleNavigation(false);\n }\n return false;\n },\n fallbackFocus: appNavigationContainerElement.value,\n trapStack: getTrapStack(),\n escapeDeactivates: false\n });\n toggleFocusTrap();\n });\n onUnmounted(() => {\n setHasAppNavigation(false);\n unsubscribe(\"toggle-navigation\", toggleNavigationByEventBus);\n focusTrap.deactivate();\n });\n function toggleNavigation(state) {\n if (open.value === state) {\n emit(\"navigation-toggled\", {\n open: open.value\n });\n return;\n }\n open.value = state === void 0 ? !open.value : state;\n const bodyStyles = getComputedStyle(document.body);\n const animationLength = parseInt(bodyStyles.getPropertyValue(\"--animation-quick\")) || 100;\n setTimeout(() => {\n emit(\"navigation-toggled\", {\n open: open.value\n });\n }, 1.5 * animationLength);\n }\n function toggleNavigationByEventBus({ open: open2 }) {\n return toggleNavigation(open2);\n }\n function toggleFocusTrap() {\n if (isMobile.value && open.value) {\n focusTrap.activate();\n } else {\n focusTrap.deactivate();\n }\n }\n function handleEsc() {\n if (isMobile.value) {\n toggleNavigation(false);\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref: \"appNavigationContainer\",\n class: normalizeClass([\"app-navigation\", {\n \"app-navigation--closed\": !open.value,\n \"app-navigation--legacy\": unref(isLegacy34)\n }])\n }, [\n createElementVNode(\"nav\", {\n id: \"app-navigation-vue\",\n \"aria-hidden\": open.value ? \"false\" : \"true\",\n \"aria-label\": __props.ariaLabel || void 0,\n \"aria-labelledby\": __props.ariaLabelledby || void 0,\n class: \"app-navigation__content\",\n inert: !open.value || void 0,\n onKeydown: withKeys(handleEsc, [\"esc\"])\n }, [\n createElementVNode(\"div\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"search\", {}, void 0, true)\n ]),\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-navigation__body\", { \"app-navigation__body--no-list\": !_ctx.$slots.list }])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 2),\n _ctx.$slots.list ? (openBlock(), createBlock(NcAppNavigationList, {\n key: 0,\n class: \"app-navigation__list\"\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"list\", {}, void 0, true)\n ]),\n _: 3\n })) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"footer\", {}, void 0, true)\n ], 40, _hoisted_1),\n createVNode(NcAppNavigationToggle, {\n open: open.value,\n \"onUpdate:open\": toggleNavigation\n }, null, 8, [\"open\"])\n ], 2);\n };\n }\n});\nconst NcAppNavigation = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-104ef656\"]]);\nexport {\n NcAppNavigation as N\n};\n//# sourceMappingURL=NcAppNavigation-Bb9-C2eO.mjs.map\n","import '../assets/NcAppNavigationCaption-ggcWspH2.css';\nimport { N as NcActions } from \"./NcActions-CUmcZ3C3.mjs\";\nimport { resolveComponent, openBlock, createBlock, resolveDynamicComponent, normalizeClass, withCtx, createTextVNode, toDisplayString, createElementBlock, createVNode, normalizeProps, guardReactiveProps, renderSlot, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcAppNavigationCaption\",\n components: {\n NcActions\n },\n props: {\n /**\n * The text of the caption\n */\n name: {\n type: String,\n required: true\n },\n /**\n * `id` to set on the inner caption\n * Can be used for connecting the `NcActionCaption` with `NcActionList` using `aria-labelledby`.\n */\n headingId: {\n type: String,\n default: null\n },\n /**\n * Enable when used as a heading\n * e.g. Before NcAppNavigationList\n */\n isHeading: {\n type: Boolean,\n default: false\n },\n /**\n * If `isHeading` is set, this defines the heading level that should be used\n */\n headingLevel: {\n type: Number,\n default: 2\n },\n /**\n * Any [NcActions](#/Components/NcActions?id=ncactions-1) prop\n */\n // Not an actual prop but needed to show in vue-styleguidist docs\n ...NcActions.props\n },\n computed: {\n actionsProps() {\n const actionProps = Object.keys(NcActions.props);\n const props = Object.entries(this.$props).filter(([key, _value]) => actionProps.includes(key));\n return Object.fromEntries(props);\n },\n wrapperTag() {\n return this.isHeading ? \"div\" : \"li\";\n },\n captionTag() {\n const headingLevel = Math.max(2, this.headingLevel);\n return this.isHeading ? `h${headingLevel}` : \"span\";\n }\n }\n};\nconst _hoisted_1 = {\n key: 0,\n class: \"app-navigation-caption__actions\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcActions = resolveComponent(\"NcActions\");\n return openBlock(), createBlock(resolveDynamicComponent($options.wrapperTag), {\n class: normalizeClass([\"app-navigation-caption\", { \"app-navigation-caption--heading\": $props.isHeading }])\n }, {\n default: withCtx(() => [\n (openBlock(), createBlock(resolveDynamicComponent($options.captionTag), {\n id: $props.headingId,\n class: \"app-navigation-caption__name\"\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString($props.name), 1)\n ]),\n _: 1\n }, 8, [\"id\"])),\n !!_ctx.$slots.actions ? (openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createVNode(_component_NcActions, normalizeProps(guardReactiveProps($options.actionsProps)), {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"actionsTriggerIcon\", {}, void 0, true)\n ]),\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 3\n }, 16)\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 8, [\"class\"]);\n}\nconst NcAppNavigationCaption = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-f0e411c2\"]]);\nexport {\n NcAppNavigationCaption as N\n};\n//# sourceMappingURL=NcAppNavigationCaption-E9iJtiQt.mjs.map\n","import { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"ChevronUpIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon chevron-up-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst ChevronUp = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n ChevronUp as C\n};\n//# sourceMappingURL=ChevronUp-ChH8oB7p.mjs.map\n","import { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"ArrowRightIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon arrow-right-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst IconArrowRight = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n IconArrowRight as I\n};\n//# sourceMappingURL=ArrowRight-B1ncAhus.mjs.map\n","import '../assets/NcInputConfirmCancel-BEmwC87z.css';\nimport { I as IconArrowRight } from \"./ArrowRight-B1ncAhus.mjs\";\nimport { I as IconClose } from \"./Close-CuhcJnX2.mjs\";\nimport { r as register, k as t14, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, withModifiers, withKeys, withDirectives, vModelText, createVNode, withCtx } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t14);\nconst _sfc_main = {\n name: \"NcInputConfirmCancel\",\n components: {\n IconArrowRight,\n IconClose,\n NcButton\n },\n setup() {\n return { isLegacy34 };\n },\n props: {\n /**\n * If this element is used on a primary element set to true for primary styling.\n */\n primary: {\n default: false,\n type: Boolean\n },\n /**\n * Placeholder of the edit field\n */\n placeholder: {\n default: \"\",\n type: String\n },\n /**\n * The current name (model value)\n */\n modelValue: {\n default: \"\",\n type: String\n }\n },\n emits: [\n \"cancel\",\n \"confirm\",\n \"update:modelValue\"\n ],\n data() {\n return {\n labelConfirm: t(\"Confirm changes\"),\n labelCancel: t(\"Cancel changes\")\n };\n },\n computed: {\n valueModel: {\n get() {\n return this.modelValue;\n },\n set(newValue) {\n this.$emit(\"update:modelValue\", newValue);\n }\n }\n },\n methods: {\n confirm() {\n this.$emit(\"confirm\");\n },\n cancel() {\n this.$emit(\"cancel\");\n },\n focusInput() {\n this.$refs.input.focus();\n }\n }\n};\nconst _hoisted_1 = [\"placeholder\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_IconArrowRight = resolveComponent(\"IconArrowRight\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_IconClose = resolveComponent(\"IconClose\");\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"app-navigation-input-confirm\", { \"app-navigation-input-confirm--legacy\": $setup.isLegacy34 }])\n }, [\n createElementVNode(\"form\", {\n onSubmit: _cache[1] || (_cache[1] = withModifiers((...args) => $options.confirm && $options.confirm(...args), [\"prevent\"])),\n onKeydown: _cache[2] || (_cache[2] = withKeys(withModifiers((...args) => $options.cancel && $options.cancel(...args), [\"exact\", \"stop\", \"prevent\"]), [\"esc\"])),\n onClick: _cache[3] || (_cache[3] = withModifiers(() => {\n }, [\"stop\", \"prevent\"]))\n }, [\n withDirectives(createElementVNode(\"input\", {\n ref: \"input\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => $options.valueModel = $event),\n type: \"text\",\n class: \"app-navigation-input-confirm__input\",\n placeholder: $props.placeholder\n }, null, 8, _hoisted_1), [\n [vModelText, $options.valueModel]\n ]),\n createVNode(_component_NcButton, {\n \"aria-label\": $data.labelConfirm,\n type: \"submit\",\n variant: \"primary\",\n onClick: withModifiers($options.confirm, [\"stop\", \"prevent\"])\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconArrowRight, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"]),\n createVNode(_component_NcButton, {\n \"aria-label\": $data.labelCancel,\n type: \"reset\",\n variant: $props.primary ? \"primary\" : \"tertiary\",\n onClick: withModifiers($options.cancel, [\"stop\", \"prevent\"])\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconClose, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"variant\", \"onClick\"])\n ], 32)\n ], 2);\n}\nconst NcInputConfirmCancel = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-a8724c7f\"]]);\nexport {\n NcInputConfirmCancel as N\n};\n//# sourceMappingURL=NcInputConfirmCancel-B6qC3s63.mjs.map\n","import '../assets/NcAppNavigationItem-BsuZoJAq.css';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, resolveComponent, createBlock, normalizeClass, withCtx, resolveDynamicComponent, normalizeProps, guardReactiveProps, withKeys, withModifiers, renderSlot, createVNode, createTextVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { C as ChevronDown } from \"./ChevronDown-C6gc637b.mjs\";\nimport { C as ChevronUp } from \"./ChevronUp-ChH8oB7p.mjs\";\nimport { r as register, N as t21, a as t, b as t51, O as t23 } from \"./_l10n-CG4CuN3H.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { N as NcInputConfirmCancel } from \"./NcInputConfirmCancel-B6qC3s63.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-BO5T5ePT.mjs\";\nimport { N as NcActions } from \"./NcActions-CUmcZ3C3.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-BOVpFVQz.mjs\";\nimport { _ as _sfc_main$4 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nconst _sfc_main$3 = {\n name: \"PencilIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$2 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { d: \"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z\" };\nconst _hoisted_4$2 = { key: 0 };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon pencil-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$2, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$2, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$2))\n ], 16, _hoisted_1$2);\n}\nconst Pencil = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$2 = {\n name: \"UndoIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon undo-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$1);\n}\nconst Undo = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2]]);\nregister(t21);\nconst _sfc_main$1 = {\n name: \"NcAppNavigationIconCollapsible\",\n components: {\n NcButton,\n ChevronDown,\n ChevronUp\n },\n setup() {\n return { isLegacy34 };\n },\n props: {\n /**\n * Is the list currently open (or collapsed)\n */\n open: {\n type: Boolean,\n required: true\n },\n /**\n * Is the navigation item currently active.\n */\n active: {\n type: Boolean,\n required: true\n }\n },\n emits: [\"click\"],\n computed: {\n labelButton() {\n return this.open ? t(\"Collapse menu\") : t(\"Open menu\");\n }\n },\n methods: {\n onClick(e) {\n this.$emit(\"click\", e);\n }\n }\n};\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ChevronUp = resolveComponent(\"ChevronUp\");\n const _component_ChevronDown = resolveComponent(\"ChevronDown\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n return openBlock(), createBlock(_component_NcButton, {\n class: normalizeClass([\"icon-collapse\", {\n \"icon-collapse--active\": $props.active,\n \"icon-collapse--open\": $props.open\n }]),\n \"aria-label\": $options.labelButton,\n variant: $props.active && $setup.isLegacy34 ? \"tertiary-on-primary\" : \"tertiary\",\n onClick: $options.onClick\n }, {\n icon: withCtx(() => [\n $props.open ? (openBlock(), createBlock(_component_ChevronUp, {\n key: 0,\n size: 20\n })) : (openBlock(), createBlock(_component_ChevronDown, {\n key: 1,\n size: 20\n }))\n ]),\n _: 1\n }, 8, [\"class\", \"aria-label\", \"variant\", \"onClick\"]);\n}\nconst NcAppNavigationIconCollapsible = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-acf5ed2f\"]]);\nregister(t23, t51);\nconst _sfc_main = {\n name: \"NcAppNavigationItem\",\n components: {\n NcActions,\n NcActionButton,\n NcAppNavigationIconCollapsible,\n NcInputConfirmCancel,\n NcLoadingIcon,\n NcVNodes: _sfc_main$4,\n Pencil,\n Undo\n },\n props: {\n /**\n * If you are not using vue-router you can use the property to set this item as the active navigation entry.\n * When using vue-router and the `to` property this is set automatically.\n */\n active: {\n type: Boolean,\n default: false\n },\n /**\n * The main text content of the entry.\n */\n name: {\n type: String,\n required: true\n },\n /**\n * The title attribute of the element.\n */\n title: {\n type: String,\n default: null\n },\n /**\n * id attribute of the list item element\n */\n id: {\n type: String,\n default: () => createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * Refers to the icon on the left, this prop accepts a class\n * like 'icon-category-enabled'.\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * Displays a loading animated icon on the left of the element\n * instead of the icon.\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Passing in a route will make the root element of this\n * component a `` that points to that route.\n * By leaving this blank, the root element will be a `
  • `.\n */\n to: {\n type: [String, Object],\n default: null\n },\n /**\n * A direct link. This will be used as the `href` attribute.\n * This will ignore any `to` prop being defined.\n */\n href: {\n type: String,\n default: null\n },\n /**\n * Gives the possibility to collapse the children elements into the\n * parent element (true) or expands the children elements (false).\n */\n allowCollapse: {\n type: Boolean,\n default: false\n },\n /**\n * Makes the name of the item editable by providing an `ActionButton`\n * component that toggles a form\n */\n editable: {\n type: Boolean,\n default: false\n },\n /**\n * Only for 'editable' items, sets label for the edit action button.\n */\n editLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Only for items in 'editable' mode, sets the placeholder text for the editing form.\n */\n editPlaceholder: {\n type: String,\n default: \"\"\n },\n /**\n * Pins the item to the bottom left area, above the settings. Do not\n * place 'non-pinned' `AppnavigationItem` components below `pinned`\n * ones.\n */\n pinned: {\n type: Boolean,\n default: false\n },\n /**\n * Puts the item in the 'undo' state.\n */\n undo: {\n type: Boolean,\n default: false\n },\n /**\n * The navigation collapsible state (synced)\n */\n open: {\n type: Boolean,\n default: false\n },\n /**\n * The actions menu open state (synced)\n */\n menuOpen: {\n type: Boolean,\n default: false\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * The action's menu default icon\n */\n menuIcon: {\n type: String,\n default: void 0\n },\n /**\n * The action's menu direction\n */\n menuPlacement: {\n type: String,\n default: \"bottom\"\n },\n /**\n * Entry aria details\n */\n ariaDescription: {\n type: String,\n default: null\n },\n /**\n * To be used only when the elements in the actions menu are very important\n */\n forceDisplayActions: {\n type: Boolean,\n default: false\n },\n /**\n * Number of action items outside the menu\n */\n inlineActions: {\n type: Number,\n default: 0\n }\n },\n emits: [\n \"update:menuOpen\",\n \"update:open\",\n \"update:name\",\n \"click\",\n \"undo\"\n ],\n setup() {\n return {\n isMobile: useIsMobile(),\n isLegacy34\n };\n },\n data() {\n return {\n actionsBoundariesElement: void 0,\n editingValue: \"\",\n opened: this.open,\n // Collapsible state\n editingActive: false,\n /**\n * Tracks the open state of the actions menu\n */\n menuOpenLocalValue: false,\n focused: false\n };\n },\n computed: {\n isRouterLink() {\n return this.to && !this.href;\n },\n // Checks if the component is already a children of another\n // instance of AppNavigationItem\n canHaveChildren() {\n if (this.$parent.$options._componentTag === \"AppNavigationItem\") {\n return false;\n } else {\n return true;\n }\n },\n editButtonAriaLabel() {\n return this.editLabel ? this.editLabel : t(\"Edit item\");\n },\n undoButtonAriaLabel() {\n return t(\"Undo changes\");\n }\n },\n watch: {\n open(newVal) {\n this.opened = newVal;\n }\n },\n mounted() {\n this.actionsBoundariesElement = document.querySelector(\"#content-vue\") || void 0;\n },\n methods: {\n // sync opened menu state with prop\n onMenuToggle(state) {\n this.$emit(\"update:menuOpen\", state);\n this.menuOpenLocalValue = state;\n },\n // toggle the collapsible state\n toggleCollapse() {\n this.opened = !this.opened;\n this.$emit(\"update:open\", this.opened);\n },\n /**\n * Handle link click\n *\n * @param {PointerEvent} event - Native click event\n * @param {Function} [navigate] - VueRouter link's navigate if any\n * @param {string} [routerLinkHref] - VueRouter link's href\n */\n onClick(event, navigate, routerLinkHref) {\n this.$emit(\"click\", event);\n if (event.metaKey || event.altKey || event.ctrlKey || event.shiftKey) {\n return;\n }\n if (routerLinkHref) {\n navigate?.(event);\n event.preventDefault();\n }\n },\n // Edition methods\n handleEdit() {\n this.editingValue = this.name;\n this.editingActive = true;\n this.onMenuToggle(false);\n this.$nextTick(() => {\n this.$refs.editingInput.focusInput();\n });\n },\n cancelEditing() {\n this.editingActive = false;\n },\n handleEditingDone() {\n this.$emit(\"update:name\", this.editingValue);\n this.editingValue = \"\";\n this.editingActive = false;\n },\n // Undo methods\n handleUndo() {\n this.$emit(\"undo\");\n },\n /**\n * Show actions upon focus\n */\n handleFocus() {\n this.focused = true;\n },\n handleBlur() {\n this.focused = false;\n },\n /**\n * This method checks if the root element of the component is focused and\n * if that's the case it focuses the actions button if available\n *\n * @param {Event} e the keydown event\n */\n handleTab(e) {\n if (!this.$refs.actions) {\n return;\n }\n if (this.focused) {\n e.preventDefault();\n this.$refs.actions.$refs.triggerButton.$el.focus();\n this.focused = false;\n } else {\n this.$refs.actions.$refs.triggerButton.$el.blur();\n }\n },\n /**\n * Is this an external link\n *\n * @param {string} href The link to check\n * @return {boolean} Whether it is external or not\n */\n isExternal(href) {\n return href && href.match(/[a-z]+:\\/\\//i);\n }\n }\n};\nconst _hoisted_1 = [\"id\"];\nconst _hoisted_2 = [\"aria-current\", \"aria-description\", \"aria-expanded\", \"href\", \"target\", \"title\", \"onClick\"];\nconst _hoisted_3 = {\n key: 0,\n class: \"editingContainer\"\n};\nconst _hoisted_4 = {\n key: 1,\n class: \"app-navigation-entry__deleted\"\n};\nconst _hoisted_5 = { class: \"app-navigation-entry__deleted-description\" };\nconst _hoisted_6 = {\n key: 0,\n class: \"app-navigation-entry__counter-wrapper\"\n};\nconst _hoisted_7 = {\n key: 0,\n class: \"app-navigation-entry__children\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_NcInputConfirmCancel = resolveComponent(\"NcInputConfirmCancel\");\n const _component_Pencil = resolveComponent(\"Pencil\");\n const _component_NcActionButton = resolveComponent(\"NcActionButton\");\n const _component_Undo = resolveComponent(\"Undo\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n const _component_NcAppNavigationIconCollapsible = resolveComponent(\"NcAppNavigationIconCollapsible\");\n return openBlock(), createElementBlock(\"li\", {\n id: $props.id,\n class: normalizeClass([{\n \"app-navigation-entry--opened\": $data.opened,\n \"app-navigation-entry--pinned\": $props.pinned,\n \"app-navigation-entry--collapsible\": $props.allowCollapse && !!_ctx.$slots.default\n }, \"app-navigation-entry-wrapper\"])\n }, [\n (openBlock(), createBlock(resolveDynamicComponent($options.isRouterLink ? \"router-link\" : \"NcVNodes\"), normalizeProps(guardReactiveProps({ ...$options.isRouterLink && { custom: true, to: $props.to } })), {\n default: withCtx(({ href: routerLinkHref, navigate, isActive }) => [\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-navigation-entry\", {\n \"app-navigation-entry--editing\": $data.editingActive,\n \"app-navigation-entry--deleted\": $props.undo,\n \"app-navigation-entry--legacy\": $setup.isLegacy34,\n active: $props.to && isActive || $props.active\n }])\n }, [\n !$props.undo ? (openBlock(), createElementBlock(\"a\", {\n key: 0,\n class: \"app-navigation-entry-link\",\n \"aria-current\": $props.active || $props.to && isActive ? \"page\" : void 0,\n \"aria-description\": $props.ariaDescription,\n \"aria-expanded\": !!_ctx.$slots.default ? $data.opened.toString() : void 0,\n href: $props.href || routerLinkHref || \"#\",\n target: $options.isExternal($props.href) ? \"_blank\" : void 0,\n title: $props.title || $props.name,\n onBlur: _cache[1] || (_cache[1] = (...args) => $options.handleBlur && $options.handleBlur(...args)),\n onClick: ($event) => $options.onClick($event, navigate, routerLinkHref),\n onFocus: _cache[2] || (_cache[2] = (...args) => $options.handleFocus && $options.handleFocus(...args)),\n onKeydown: _cache[3] || (_cache[3] = withKeys(withModifiers((...args) => $options.handleTab && $options.handleTab(...args), [\"exact\"]), [\"tab\"]))\n }, [\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-navigation-entry-icon\", { [$props.icon]: $props.icon }])\n }, [\n $props.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : renderSlot(_ctx.$slots, \"icon\", {\n key: 1,\n active: $props.active || $props.to && isActive\n }, void 0, true)\n ], 2),\n createElementVNode(\"span\", {\n class: normalizeClass([\"app-navigation-entry__name\", { \"hidden-visually\": $data.editingActive }])\n }, toDisplayString($props.name), 3),\n $data.editingActive ? (openBlock(), createElementBlock(\"div\", _hoisted_3, [\n createVNode(_component_NcInputConfirmCancel, {\n ref: \"editingInput\",\n modelValue: $data.editingValue,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => $data.editingValue = $event),\n placeholder: $props.editPlaceholder !== \"\" ? $props.editPlaceholder : $props.name,\n primary: $props.to && isActive || $props.active,\n onCancel: $options.cancelEditing,\n onConfirm: $options.handleEditingDone\n }, null, 8, [\"modelValue\", \"placeholder\", \"primary\", \"onCancel\", \"onConfirm\"])\n ])) : createCommentVNode(\"\", true)\n ], 40, _hoisted_2)) : createCommentVNode(\"\", true),\n $props.undo ? (openBlock(), createElementBlock(\"div\", _hoisted_4, [\n createElementVNode(\"div\", _hoisted_5, toDisplayString($props.name), 1)\n ])) : createCommentVNode(\"\", true),\n (!!_ctx.$slots.actions || !!_ctx.$slots.counter || $props.editable || $props.undo) && !$data.editingActive ? (openBlock(), createElementBlock(\"div\", {\n key: 2,\n class: normalizeClass([\"app-navigation-entry__utils\", { \"app-navigation-entry__utils--display-actions\": $props.forceDisplayActions || $data.menuOpenLocalValue || $props.menuOpen }])\n }, [\n !!_ctx.$slots.counter ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n renderSlot(_ctx.$slots, \"counter\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true),\n !!_ctx.$slots.actions || $props.editable && !$data.editingActive || $props.undo ? (openBlock(), createBlock(_component_NcActions, {\n key: 1,\n ref: \"actions\",\n class: \"app-navigation-entry__actions\",\n container: \"#app-navigation-vue\",\n boundariesElement: $data.actionsBoundariesElement,\n inline: $props.inlineActions,\n placement: $props.menuPlacement,\n open: $props.menuOpen,\n forceMenu: $props.forceMenu,\n defaultIcon: $props.menuIcon,\n variant: \"tertiary\",\n \"onUpdate:open\": $options.onMenuToggle\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"menu-icon\", {}, void 0, true)\n ]),\n default: withCtx(() => [\n $props.editable && !$data.editingActive ? (openBlock(), createBlock(_component_NcActionButton, {\n key: 0,\n \"aria-label\": $options.editButtonAriaLabel,\n onClick: $options.handleEdit\n }, {\n icon: withCtx(() => [\n createVNode(_component_Pencil, { size: 20 })\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString($props.editLabel), 1)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"])) : createCommentVNode(\"\", true),\n $props.undo ? (openBlock(), createBlock(_component_NcActionButton, {\n key: 1,\n \"aria-label\": $options.undoButtonAriaLabel,\n onClick: $options.handleUndo\n }, {\n icon: withCtx(() => [\n createVNode(_component_Undo, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"])) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"boundariesElement\", \"inline\", \"placement\", \"open\", \"forceMenu\", \"defaultIcon\", \"onUpdate:open\"])) : createCommentVNode(\"\", true)\n ], 2)) : createCommentVNode(\"\", true),\n $props.allowCollapse && !!_ctx.$slots.default ? (openBlock(), createBlock(_component_NcAppNavigationIconCollapsible, {\n key: 3,\n active: $props.to && isActive || $props.active,\n open: $data.opened,\n onClick: withModifiers($options.toggleCollapse, [\"prevent\", \"stop\"])\n }, null, 8, [\"active\", \"open\", \"onClick\"])) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"extra\", {}, void 0, true)\n ], 2)\n ]),\n _: 3\n }, 16)),\n $options.canHaveChildren && !!_ctx.$slots.default ? (openBlock(), createElementBlock(\"ul\", _hoisted_7, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 10, _hoisted_1);\n}\nconst NcAppNavigationItem = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-e4d562ae\"]]);\nexport {\n NcAppNavigationItem as N\n};\n//# sourceMappingURL=NcAppNavigationItem-BFAIHyTL.mjs.map\n","import '../assets/NcAppNavigationSearch-DD7mo6OW.css';\nimport { defineComponent, useModel, useSlots, ref, useTemplateRef, watch, openBlock, createElementBlock, normalizeClass, createVNode, unref, withCtx, renderSlot, createCommentVNode, mergeModels, nextTick } from \"vue\";\nimport { useFocusWithin } from \"@vueuse/core\";\nimport { I as IconClose } from \"./Close-CuhcJnX2.mjs\";\nimport { N as NcInputField } from \"./NcInputField-B1bGxYHt.mjs\";\nimport { r as register, C as t44, u as t16, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t16, t44);\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppNavigationSearch\",\n props: /* @__PURE__ */ mergeModels({\n /**\n * Text used to label the search input\n */\n label: {\n type: String,\n default: t(\"Search …\")\n },\n /**\n * Placeholder of the search input\n * By default the value of `label` is used.\n */\n placeholder: {\n type: String,\n default: null\n }\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const model = useModel(__props, \"modelValue\");\n const slots = useSlots();\n const inputElement = ref();\n const { focused: inputHasFocus } = useFocusWithin(inputElement);\n const transitionTimeout = Number.parseInt(window.getComputedStyle(window.document.body).getPropertyValue(\"--animation-quick\")) || 100;\n const actionsContainerElement = useTemplateRef(\"actionsContainer\");\n const hasActions = () => !!slots.actions?.({});\n const showActions = ref(true);\n const timeoutId = ref();\n const hideActions = ref(false);\n watch(inputHasFocus, () => {\n showActions.value = !inputHasFocus.value;\n window.clearTimeout(timeoutId.value);\n if (showActions.value) {\n hideActions.value = false;\n } else {\n window.setTimeout(() => {\n hideActions.value = !showActions.value;\n }, transitionTimeout);\n }\n });\n function onCloseSearch() {\n model.value = \"\";\n if (hasActions()) {\n showActions.value = true;\n nextTick(() => actionsContainerElement.value?.querySelector(\"button\")?.focus());\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"app-navigation-search\", {\n \"app-navigation-search--has-actions\": hasActions()\n }])\n }, [\n createVNode(NcInputField, {\n ref_key: \"inputElement\",\n ref: inputElement,\n modelValue: model.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => model.value = $event),\n \"aria-label\": __props.label,\n class: \"app-navigation-search__input\",\n labelOutside: \"\",\n placeholder: __props.placeholder ?? __props.label,\n showTrailingButton: model.value.length > 0,\n trailingButtonLabel: unref(t)(\"Clear search\"),\n type: \"search\",\n onTrailingButtonClick: onCloseSearch\n }, {\n \"trailing-button-icon\": withCtx(() => [\n createVNode(IconClose, { size: 20 })\n ]),\n _: 1\n }, 8, [\"modelValue\", \"aria-label\", \"placeholder\", \"showTrailingButton\", \"trailingButtonLabel\"]),\n hasActions() ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n ref: \"actionsContainer\",\n class: normalizeClass([\"app-navigation-search__actions\", {\n \"app-navigation-search__actions--hidden\": !showActions.value,\n \"hidden-visually\": hideActions.value\n }])\n }, [\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ], 2)) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcAppNavigationSearch = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-191b6717\"]]);\nexport {\n NcAppNavigationSearch as N\n};\n//# sourceMappingURL=NcAppNavigationSearch-CiOKjV3M.mjs.map\n","import '../assets/NcAppNavigationSettings-HQEDobBQ.css';\nimport { defineComponent, ref, useTemplateRef, computed, openBlock, createElementBlock, normalizeClass, createElementVNode, createVNode, unref, withCtx, createTextVNode, toDisplayString, Transition, withDirectives, renderSlot, vShow } from \"vue\";\nimport { C as mdiCog, D as mdiCogOutline } from \"./mdi-CpchYUUV.mjs\";\nimport { onClickOutside } from \"@vueuse/core\";\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { r as register, B as t47, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { a as isLegacy } from \"./legacy-BoqDmOCa.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t47);\nconst _hoisted_1 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppNavigationSettings\",\n props: {\n excludeClickOutsideSelectors: { default: () => [] },\n name: { default: () => t(\"Settings\") }\n },\n setup(__props) {\n const contentId = createElementId();\n const open = ref(false);\n const container2 = useTemplateRef(\"wrapperElement\");\n const ignore = computed(() => Array.isArray(__props.excludeClickOutsideSelectors) ? __props.excludeClickOutsideSelectors : __props.excludeClickOutsideSelectors.split(\" \"));\n onClickOutside(container2, () => {\n open.value = false;\n }, { ignore });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref: \"wrapperElement\",\n class: normalizeClass(_ctx.$style.container)\n }, [\n createElementVNode(\"div\", {\n class: normalizeClass(_ctx.$style.header)\n }, [\n createVNode(NcButton, {\n \"aria-controls\": unref(contentId),\n \"aria-expanded\": open.value ? \"true\" : \"false\",\n class: normalizeClass(_ctx.$style.button),\n alignment: \"start\",\n variant: \"tertiary\",\n wide: \"\",\n onClick: _cache[0] || (_cache[0] = ($event) => open.value = !open.value)\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: unref(isLegacy) ? unref(mdiCog) : unref(mdiCogOutline)\n }, null, 8, [\"path\"])\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(__props.name), 1)\n ]),\n _: 1\n }, 8, [\"aria-controls\", \"aria-expanded\", \"class\"])\n ], 2),\n createVNode(Transition, {\n enterActiveClass: _ctx.$style.animationActive,\n leaveActiveClass: _ctx.$style.animationActive,\n enterFromClass: _ctx.$style.animationStop,\n leaveToClass: _ctx.$style.animationStop\n }, {\n default: withCtx(() => [\n withDirectives(createElementVNode(\"div\", {\n id: unref(contentId),\n class: normalizeClass(_ctx.$style.content)\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 10, _hoisted_1), [\n [vShow, open.value]\n ])\n ]),\n _: 3\n }, 8, [\"enterActiveClass\", \"leaveActiveClass\", \"enterFromClass\", \"leaveToClass\"])\n ], 2);\n };\n }\n});\nconst container = \"_container_RFk6U\";\nconst header = \"_header_2CtDS\";\nconst button = \"_button_tAyis\";\nconst content = \"_content_--KYD\";\nconst animationActive = \"_animationActive_DAG1p\";\nconst animationStop = \"_animationStop_fWYQj\";\nconst style0 = {\n container,\n header,\n button,\n content,\n animationActive,\n animationStop\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcAppNavigationSettings = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcAppNavigationSettings as N\n};\n//# sourceMappingURL=NcAppNavigationSettings-fbuQmy-q.mjs.map\n","import '../assets/NcAppSettingsDialog-HsZoLuDy.css';\nimport { defineComponent, inject, openBlock, createElementBlock, normalizeClass, unref, toDisplayString, useModel, provide, toRef, useTemplateRef, ref, computed, onBeforeUnmount, warn, createBlock, createSlots, withCtx, createElementVNode, renderSlot, createCommentVNode, Fragment, renderList, withKeys, withModifiers, mergeModels } from \"vue\";\nimport debounce from \"debounce\";\nimport { N as NcDialog } from \"./NcDialog-kwzJ3A4X.mjs\";\nimport { _ as _sfc_main$2 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nimport { u as useLocalizedAppName, A as APP_VERSION } from \"./appName-DyNMVZpX.mjs\";\nimport { A as APP_SETTINGS_LEGACY_DESIGN_KEY, a as APP_SETTINGS_REGISTRATION_KEY } from \"./useAppSettingsDialog-C73Wx6iQ.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { r as register, I as t48, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"NcAppSettingsDialogVersion\",\n setup(__props) {\n const legacy = inject(APP_SETTINGS_LEGACY_DESIGN_KEY);\n const localizedAppName = useLocalizedAppName();\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([_ctx.$style.appSettingsDialogVersion, { [_ctx.$style.appSettingsDialogVersion__legacy]: unref(legacy) }])\n }, toDisplayString(unref(localizedAppName)) + \" \" + toDisplayString(unref(APP_VERSION)), 3);\n };\n }\n});\nconst appSettingsDialogVersion = \"_appSettingsDialogVersion_8Xr7R\";\nconst appSettingsDialogVersion__legacy = \"_appSettingsDialogVersion__legacy_7MO71\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_qDIHA\",\n appSettingsDialogVersion,\n appSettingsDialogVersion__legacy\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcAppSettingsDialogVersion = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"__cssModules\", cssModules]]);\nregister(t48);\nconst _hoisted_1 = {\n key: 0,\n class: \"app-settings__title\"\n};\nconst _hoisted_2 = {\n key: 1,\n class: \"navigation-list\"\n};\nconst _hoisted_3 = [\"aria-current\", \"href\", \"onClick\", \"onKeydown\"];\nconst _hoisted_4 = {\n key: 0,\n class: \"navigation-list__link-icon\"\n};\nconst _hoisted_5 = { class: \"navigation-list__link-text\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppSettingsDialog\",\n props: /* @__PURE__ */ mergeModels({\n showNavigation: { type: Boolean },\n container: { default: \"body\" },\n name: { default: \"\" },\n additionalTrapElements: { default: () => [] },\n legacy: { type: Boolean, default: false },\n noVersion: { type: Boolean, default: false }\n }, {\n \"open\": { type: Boolean, ...{ required: true } },\n \"openModifiers\": {}\n }),\n emits: [\"update:open\"],\n setup(__props) {\n const open = useModel(__props, \"open\");\n const props = __props;\n provide(APP_SETTINGS_REGISTRATION_KEY, {\n registerSection,\n unregisterSection\n });\n provide(APP_SETTINGS_LEGACY_DESIGN_KEY, toRef(() => props.legacy));\n const settingsScrollerElement = useTemplateRef(\"settingsScroller\");\n const isMobile = useIsMobile();\n const selectedSection = ref(\"\");\n const linkClicked = ref(false);\n const registeredSections = ref([]);\n const hasNavigation = computed(() => !isMobile.value && props.showNavigation);\n const hasNavigationIcons = computed(() => registeredSections.value.some(({ icon }) => !!icon));\n const unfocusNavigationItem = debounce(() => {\n selectedSection.value = \"\";\n if (document.activeElement?.className.includes(\"navigation-list__link\")) {\n document.activeElement.blur();\n }\n }, 300);\n const sectionsOrderMap = /* @__PURE__ */ new Map();\n onBeforeUnmount(() => {\n sectionsOrderMap.clear();\n });\n function handleSettingsNavigationClick(item) {\n linkClicked.value = true;\n document.getElementById(\"settings-section_\" + item).scrollIntoView({\n behavior: \"smooth\",\n inline: \"nearest\"\n });\n selectedSection.value = item;\n setTimeout(() => {\n linkClicked.value = false;\n }, 1e3);\n }\n function handleCloseModal(isOpen) {\n if (isOpen) {\n return;\n }\n open.value = false;\n settingsScrollerElement.value.scrollTop = 0;\n }\n function handleScroll() {\n if (open.value && !linkClicked.value) {\n unfocusNavigationItem();\n }\n }\n function registerSection(id, name, order, icon) {\n if (registeredSections.value.some(({ id: otherId }) => id === otherId)) {\n throw new Error(`Duplicate section id found: ${id}. Settings navigation sections must have unique section ids.`);\n }\n if (registeredSections.value.some(({ name: otherName }) => name === otherName)) {\n warn(`Duplicate section name found: ${name}. Settings navigation sections must have unique section names.`);\n }\n if (order !== void 0) {\n sectionsOrderMap.set(id, order);\n } else if (sectionsOrderMap.has(id)) {\n order = sectionsOrderMap.get(id);\n } else {\n order = Math.max(0, ...sectionsOrderMap.values()) + 1;\n sectionsOrderMap.set(id, order);\n }\n registeredSections.value = [...registeredSections.value, { id, name, order, icon }].sort(({ order: orderA }, { order: orderB }) => {\n return orderA - orderB;\n });\n if (registeredSections.value.length === 1) {\n selectedSection.value = id;\n }\n }\n function unregisterSection(id) {\n registeredSections.value = registeredSections.value.filter(({ id: otherId }) => id !== otherId);\n if (selectedSection.value === id) {\n selectedSection.value = registeredSections.value[0]?.id ?? \"\";\n }\n }\n return (_ctx, _cache) => {\n return open.value ? (openBlock(), createBlock(NcDialog, {\n key: 0,\n class: normalizeClass([\"app-settings\", { \"app-settings--legacy\": unref(isLegacy34) }]),\n contentClasses: \"app-settings__content\",\n navigationClasses: \"app-settings__navigation\",\n additionalTrapElements: __props.additionalTrapElements,\n container: __props.container,\n closeOnClickOutside: \"\",\n \"navigation-aria-label\": unref(t)(\"Settings navigation\"),\n size: \"large\",\n name: __props.name,\n \"onUpdate:open\": handleCloseModal\n }, createSlots({\n default: withCtx(() => [\n createElementVNode(\"div\", {\n ref: \"settingsScroller\",\n onScroll: handleScroll\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true),\n !__props.noVersion ? (openBlock(), createBlock(NcAppSettingsDialogVersion, { key: 0 })) : createCommentVNode(\"\", true)\n ], 544)\n ]),\n _: 2\n }, [\n hasNavigation.value ? {\n name: \"navigation\",\n fn: withCtx(({ isCollapsed }) => [\n !unref(isLegacy34) ? (openBlock(), createElementBlock(\"div\", _hoisted_1, toDisplayString(__props.name), 1)) : createCommentVNode(\"\", true),\n !isCollapsed ? (openBlock(), createElementBlock(\"ul\", _hoisted_2, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(registeredSections.value, (section) => {\n return openBlock(), createElementBlock(\"li\", {\n key: section.id\n }, [\n createElementVNode(\"a\", {\n \"aria-current\": `${section.id === selectedSection.value}`,\n class: normalizeClass([\"navigation-list__link\", {\n \"navigation-list__link--active\": section.id === selectedSection.value,\n \"navigation-list__link--icon\": hasNavigationIcons.value\n }]),\n href: `#settings-section_${section.id}`,\n tabindex: \"0\",\n onClick: withModifiers(($event) => handleSettingsNavigationClick(section.id), [\"prevent\"]),\n onKeydown: withKeys(($event) => handleSettingsNavigationClick(section.id), [\"enter\"])\n }, [\n hasNavigationIcons.value ? (openBlock(), createElementBlock(\"div\", _hoisted_4, [\n section.icon ? (openBlock(), createBlock(_sfc_main$2, {\n key: 0,\n vnodes: section.icon\n }, null, 8, [\"vnodes\"])) : createCommentVNode(\"\", true)\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_5, toDisplayString(section.name), 1)\n ], 42, _hoisted_3)\n ]);\n }), 128))\n ])) : createCommentVNode(\"\", true)\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"class\", \"additionalTrapElements\", \"container\", \"navigation-aria-label\", \"name\"])) : createCommentVNode(\"\", true);\n };\n }\n});\nconst NcAppSettingsDialog = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-e669a5ef\"]]);\nexport {\n NcAppSettingsDialog as N\n};\n//# sourceMappingURL=NcAppSettingsDialog-DByPnndK.mjs.map\n","import '../assets/NcAppSettingsShortcutsSection-BonG0SgH.css';\nimport { defineComponent, openBlock, createBlock, unref, withCtx, createElementVNode, normalizeClass, renderSlot } from \"vue\";\nimport { N as NcAppSettingsSection } from \"./NcAppSettingsSection-BosSmisT.mjs\";\nimport { r as register, p as t31, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t31);\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppSettingsShortcutsSection\",\n setup(__props) {\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcAppSettingsSection, {\n id: \"keyboard-shortcuts\",\n name: unref(t)(\"Keyboard shortcuts\")\n }, {\n default: withCtx(() => [\n createElementVNode(\"div\", {\n class: normalizeClass(_ctx.$style.appSettingsSectionShortcuts)\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 2)\n ]),\n _: 3\n }, 8, [\"name\"]);\n };\n }\n});\nconst appSettingsSectionShortcuts = \"_appSettingsSectionShortcuts_RqpkA\";\nconst style0 = {\n appSettingsSectionShortcuts\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcAppSettingsShortcutsSection = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcAppSettingsShortcutsSection as N\n};\n//# sourceMappingURL=NcAppSettingsShortcutsSection-DgqVuZGx.mjs.map\n","const directive = {\n mounted(el) {\n el.focus();\n }\n};\nexport {\n directive as default\n};\n//# sourceMappingURL=index.mjs.map\n","// THIS FILE IS AUTOMATICALLY GENERATED DO NOT EDIT DIRECTLY\n// See update-tlds.js for encoding/decoding format\n// https://data.iana.org/TLD/tlds-alpha-by-domain.txt\nconst encodedTlds = 'aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2odyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rck0msd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2oodside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2';\n// Internationalized domain names containing non-ASCII\nconst encodedUtlds = 'ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2';\n\n/**\n * Finite State Machine generation utilities\n */\n\n/**\n * @template T\n * @typedef {{ [group: string]: T[] }} Collections\n */\n\n/**\n * @typedef {{ [group: string]: true }} Flags\n */\n\n// Keys in scanner Collections instances\nconst numeric = 'numeric';\nconst ascii = 'ascii';\nconst alpha = 'alpha';\nconst asciinumeric = 'asciinumeric';\nconst alphanumeric = 'alphanumeric';\nconst domain = 'domain';\nconst emoji = 'emoji';\nconst scheme = 'scheme';\nconst slashscheme = 'slashscheme';\nconst whitespace = 'whitespace';\n\n/**\n * @template T\n * @param {string} name\n * @param {Collections} groups to register in\n * @returns {T[]} Current list of tokens in the given collection\n */\nfunction registerGroup(name, groups) {\n if (!(name in groups)) {\n groups[name] = [];\n }\n return groups[name];\n}\n\n/**\n * @template T\n * @param {T} t token to add\n * @param {Collections} groups\n * @param {Flags} flags\n */\nfunction addToGroups(t, flags, groups) {\n if (flags[numeric]) {\n flags[asciinumeric] = true;\n flags[alphanumeric] = true;\n }\n if (flags[ascii]) {\n flags[asciinumeric] = true;\n flags[alpha] = true;\n }\n if (flags[asciinumeric]) {\n flags[alphanumeric] = true;\n }\n if (flags[alpha]) {\n flags[alphanumeric] = true;\n }\n if (flags[alphanumeric]) {\n flags[domain] = true;\n }\n if (flags[emoji]) {\n flags[domain] = true;\n }\n for (const k in flags) {\n const group = registerGroup(k, groups);\n if (group.indexOf(t) < 0) {\n group.push(t);\n }\n }\n}\n\n/**\n * @template T\n * @param {T} t token to check\n * @param {Collections} groups\n * @returns {Flags} group flags that contain this token\n */\nfunction flagsForToken(t, groups) {\n const result = {};\n for (const c in groups) {\n if (groups[c].indexOf(t) >= 0) {\n result[c] = true;\n }\n }\n return result;\n}\n\n/**\n * @template T\n * @typedef {null | T } Transition\n */\n\n/**\n * Define a basic state machine state. j is the list of character transitions,\n * jr is the list of regex-match transitions, jd is the default state to\n * transition to t is the accepting token type, if any. If this is the terminal\n * state, then it does not emit a token.\n *\n * The template type T represents the type of the token this state accepts. This\n * should be a string (such as of the token exports in `text.js`) or a\n * MultiToken subclass (from `multi.js`)\n *\n * @template T\n * @param {T} [token] Token that this state emits\n */\nfunction State(token = null) {\n // this.n = null; // DEBUG: State name\n /** @type {{ [input: string]: State }} j */\n this.j = {}; // IMPLEMENTATION 1\n // this.j = []; // IMPLEMENTATION 2\n /** @type {[RegExp, State][]} jr */\n this.jr = [];\n /** @type {?State} jd */\n this.jd = null;\n /** @type {?T} t */\n this.t = token;\n}\n\n/**\n * Scanner token groups\n * @type Collections\n */\nState.groups = {};\nState.prototype = {\n accepts() {\n return !!this.t;\n },\n /**\n * Follow an existing transition from the given input to the next state.\n * Does not mutate.\n * @param {string} input character or token type to transition on\n * @returns {?State} the next state, if any\n */\n go(input) {\n const state = this;\n const nextState = state.j[input];\n if (nextState) {\n return nextState;\n }\n for (let i = 0; i < state.jr.length; i++) {\n const regex = state.jr[i][0];\n const nextState = state.jr[i][1]; // note: might be empty to prevent default jump\n if (nextState && regex.test(input)) {\n return nextState;\n }\n }\n // Nowhere left to jump! Return default, if any\n return state.jd;\n },\n /**\n * Whether the state has a transition for the given input. Set the second\n * argument to true to only look for an exact match (and not a default or\n * regular-expression-based transition)\n * @param {string} input\n * @param {boolean} exactOnly\n */\n has(input, exactOnly = false) {\n return exactOnly ? input in this.j : !!this.go(input);\n },\n /**\n * Short for \"transition all\"; create a transition from the array of items\n * in the given list to the same final resulting state.\n * @param {string | string[]} inputs Group of inputs to transition on\n * @param {Transition | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n */\n ta(inputs, next, flags, groups) {\n for (let i = 0; i < inputs.length; i++) {\n this.tt(inputs[i], next, flags, groups);\n }\n },\n /**\n * Short for \"take regexp transition\"; defines a transition for this state\n * when it encounters a token which matches the given regular expression\n * @param {RegExp} regexp Regular expression transition (populate first)\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n * @returns {State} taken after the given input\n */\n tr(regexp, next, flags, groups) {\n groups = groups || State.groups;\n let nextState;\n if (next && next.j) {\n nextState = next;\n } else {\n // Token with maybe token groups\n nextState = new State(next);\n if (flags && groups) {\n addToGroups(next, flags, groups);\n }\n }\n this.jr.push([regexp, nextState]);\n return nextState;\n },\n /**\n * Short for \"take transitions\", will take as many sequential transitions as\n * the length of the given input and returns the\n * resulting final state.\n * @param {string | string[]} input\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n * @returns {State} taken after the given input\n */\n ts(input, next, flags, groups) {\n let state = this;\n const len = input.length;\n if (!len) {\n return state;\n }\n for (let i = 0; i < len - 1; i++) {\n state = state.tt(input[i]);\n }\n return state.tt(input[len - 1], next, flags, groups);\n },\n /**\n * Short for \"take transition\", this is a method for building/working with\n * state machines.\n *\n * If a state already exists for the given input, returns it.\n *\n * If a token is specified, that state will emit that token when reached by\n * the linkify engine.\n *\n * If no state exists, it will be initialized with some default transitions\n * that resemble existing default transitions.\n *\n * If a state is given for the second argument, that state will be\n * transitioned to on the given input regardless of what that input\n * previously did.\n *\n * Specify a token group flags to define groups that this token belongs to.\n * The token will be added to corresponding entires in the given groups\n * object.\n *\n * @param {string} input character, token type to transition on\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of groups\n * @returns {State} taken after the given input\n */\n tt(input, next, flags, groups) {\n groups = groups || State.groups;\n const state = this;\n\n // Check if existing state given, just a basic transition\n if (next && next.j) {\n state.j[input] = next;\n return next;\n }\n const t = next;\n\n // Take the transition with the usual default mechanisms and use that as\n // a template for creating the next state\n let nextState,\n templateState = state.go(input);\n if (templateState) {\n nextState = new State();\n Object.assign(nextState.j, templateState.j);\n nextState.jr.push.apply(nextState.jr, templateState.jr);\n nextState.jd = templateState.jd;\n nextState.t = templateState.t;\n } else {\n nextState = new State();\n }\n if (t) {\n // Ensure newly token is in the same groups as the old token\n if (groups) {\n if (nextState.t && typeof nextState.t === 'string') {\n const allFlags = Object.assign(flagsForToken(nextState.t, groups), flags);\n addToGroups(t, allFlags, groups);\n } else if (flags) {\n addToGroups(t, flags, groups);\n }\n }\n nextState.t = t; // overwrite anything that was previously there\n }\n state.j[input] = nextState;\n return nextState;\n }\n};\n\n// Helper functions to improve minification (not exported outside linkifyjs module)\n\n/**\n * @template T\n * @param {State} state\n * @param {string | string[]} input\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\nconst ta = (state, input, next, flags, groups) => state.ta(input, next, flags, groups);\n\n/**\n * @template T\n * @param {State} state\n * @param {RegExp} regexp\n * @param {T | State} [next]\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\nconst tr = (state, regexp, next, flags, groups) => state.tr(regexp, next, flags, groups);\n\n/**\n * @template T\n * @param {State} state\n * @param {string | string[]} input\n * @param {T | State} [next]\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\nconst ts = (state, input, next, flags, groups) => state.ts(input, next, flags, groups);\n\n/**\n * @template T\n * @param {State} state\n * @param {string} input\n * @param {T | State} [next]\n * @param {Collections} [groups]\n * @param {Flags} [flags]\n */\nconst tt = (state, input, next, flags, groups) => state.tt(input, next, flags, groups);\n\n/******************************************************************************\nText Tokens\nIdentifiers for token outputs from the regexp scanner\n******************************************************************************/\n\n// A valid web domain token\nconst WORD = 'WORD'; // only contains a-z\nconst UWORD = 'UWORD'; // contains letters other than a-z, used for IDN\nconst ASCIINUMERICAL = 'ASCIINUMERICAL'; // contains a-z, 0-9\nconst ALPHANUMERICAL = 'ALPHANUMERICAL'; // contains numbers and letters other than a-z, used for IDN\n\n// Special case of word\nconst LOCALHOST = 'LOCALHOST';\n\n// Valid top-level domain, special case of WORD (see tlds.js)\nconst TLD = 'TLD';\n\n// Valid IDN TLD, special case of UWORD (see tlds.js)\nconst UTLD = 'UTLD';\n\n// The scheme portion of a web URI protocol. Supported types include: `mailto`,\n// `file`, and user-defined custom protocols. Limited to schemes that contain\n// only letters\nconst SCHEME = 'SCHEME';\n\n// Similar to SCHEME, except makes distinction for schemes that must always be\n// followed by `://`, not just `:`. Supported types include `http`, `https`,\n// `ftp`, `ftps`\nconst SLASH_SCHEME = 'SLASH_SCHEME';\n\n// Any sequence of digits 0-9\nconst NUM = 'NUM';\n\n// Any number of consecutive whitespace characters that are not newline\nconst WS = 'WS';\n\n// New line (unix style)\nconst NL = 'NL'; // \\n\n\n// Opening/closing bracket classes\n// TODO: Rename OPEN -> LEFT and CLOSE -> RIGHT in v5 to fit with Unicode names\n// Also rename angle brackes to LESSTHAN and GREATER THAN\nconst OPENBRACE = 'OPENBRACE'; // {\nconst CLOSEBRACE = 'CLOSEBRACE'; // }\nconst OPENBRACKET = 'OPENBRACKET'; // [\nconst CLOSEBRACKET = 'CLOSEBRACKET'; // ]\nconst OPENPAREN = 'OPENPAREN'; // (\nconst CLOSEPAREN = 'CLOSEPAREN'; // )\nconst OPENANGLEBRACKET = 'OPENANGLEBRACKET'; // <\nconst CLOSEANGLEBRACKET = 'CLOSEANGLEBRACKET'; // >\nconst FULLWIDTHLEFTPAREN = 'FULLWIDTHLEFTPAREN'; // (\nconst FULLWIDTHRIGHTPAREN = 'FULLWIDTHRIGHTPAREN'; // )\nconst LEFTCORNERBRACKET = 'LEFTCORNERBRACKET'; // 「\nconst RIGHTCORNERBRACKET = 'RIGHTCORNERBRACKET'; // 」\nconst LEFTWHITECORNERBRACKET = 'LEFTWHITECORNERBRACKET'; // 『\nconst RIGHTWHITECORNERBRACKET = 'RIGHTWHITECORNERBRACKET'; // 』\nconst FULLWIDTHLESSTHAN = 'FULLWIDTHLESSTHAN'; // <\nconst FULLWIDTHGREATERTHAN = 'FULLWIDTHGREATERTHAN'; // >\n\n// Various symbols\nconst AMPERSAND = 'AMPERSAND'; // &\nconst APOSTROPHE = 'APOSTROPHE'; // '\nconst ASTERISK = 'ASTERISK'; // *\nconst AT = 'AT'; // @\nconst BACKSLASH = 'BACKSLASH'; // \\\nconst BACKTICK = 'BACKTICK'; // `\nconst CARET = 'CARET'; // ^\nconst COLON = 'COLON'; // :\nconst COMMA = 'COMMA'; // ,\nconst DOLLAR = 'DOLLAR'; // $\nconst DOT = 'DOT'; // .\nconst EQUALS = 'EQUALS'; // =\nconst EXCLAMATION = 'EXCLAMATION'; // !\nconst HYPHEN = 'HYPHEN'; // -\nconst PERCENT = 'PERCENT'; // %\nconst PIPE = 'PIPE'; // |\nconst PLUS = 'PLUS'; // +\nconst POUND = 'POUND'; // #\nconst QUERY = 'QUERY'; // ?\nconst QUOTE = 'QUOTE'; // \"\nconst FULLWIDTHMIDDLEDOT = 'FULLWIDTHMIDDLEDOT'; // ・\n\nconst SEMI = 'SEMI'; // ;\nconst SLASH = 'SLASH'; // /\nconst TILDE = 'TILDE'; // ~\nconst UNDERSCORE = 'UNDERSCORE'; // _\n\n// Emoji symbol\nconst EMOJI$1 = 'EMOJI';\n\n// Default token - anything that is not one of the above\nconst SYM = 'SYM';\n\nvar tk = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tALPHANUMERICAL: ALPHANUMERICAL,\n\tAMPERSAND: AMPERSAND,\n\tAPOSTROPHE: APOSTROPHE,\n\tASCIINUMERICAL: ASCIINUMERICAL,\n\tASTERISK: ASTERISK,\n\tAT: AT,\n\tBACKSLASH: BACKSLASH,\n\tBACKTICK: BACKTICK,\n\tCARET: CARET,\n\tCLOSEANGLEBRACKET: CLOSEANGLEBRACKET,\n\tCLOSEBRACE: CLOSEBRACE,\n\tCLOSEBRACKET: CLOSEBRACKET,\n\tCLOSEPAREN: CLOSEPAREN,\n\tCOLON: COLON,\n\tCOMMA: COMMA,\n\tDOLLAR: DOLLAR,\n\tDOT: DOT,\n\tEMOJI: EMOJI$1,\n\tEQUALS: EQUALS,\n\tEXCLAMATION: EXCLAMATION,\n\tFULLWIDTHGREATERTHAN: FULLWIDTHGREATERTHAN,\n\tFULLWIDTHLEFTPAREN: FULLWIDTHLEFTPAREN,\n\tFULLWIDTHLESSTHAN: FULLWIDTHLESSTHAN,\n\tFULLWIDTHMIDDLEDOT: FULLWIDTHMIDDLEDOT,\n\tFULLWIDTHRIGHTPAREN: FULLWIDTHRIGHTPAREN,\n\tHYPHEN: HYPHEN,\n\tLEFTCORNERBRACKET: LEFTCORNERBRACKET,\n\tLEFTWHITECORNERBRACKET: LEFTWHITECORNERBRACKET,\n\tLOCALHOST: LOCALHOST,\n\tNL: NL,\n\tNUM: NUM,\n\tOPENANGLEBRACKET: OPENANGLEBRACKET,\n\tOPENBRACE: OPENBRACE,\n\tOPENBRACKET: OPENBRACKET,\n\tOPENPAREN: OPENPAREN,\n\tPERCENT: PERCENT,\n\tPIPE: PIPE,\n\tPLUS: PLUS,\n\tPOUND: POUND,\n\tQUERY: QUERY,\n\tQUOTE: QUOTE,\n\tRIGHTCORNERBRACKET: RIGHTCORNERBRACKET,\n\tRIGHTWHITECORNERBRACKET: RIGHTWHITECORNERBRACKET,\n\tSCHEME: SCHEME,\n\tSEMI: SEMI,\n\tSLASH: SLASH,\n\tSLASH_SCHEME: SLASH_SCHEME,\n\tSYM: SYM,\n\tTILDE: TILDE,\n\tTLD: TLD,\n\tUNDERSCORE: UNDERSCORE,\n\tUTLD: UTLD,\n\tUWORD: UWORD,\n\tWORD: WORD,\n\tWS: WS\n});\n\n// Note that these two Unicode ones expand into a really big one with Babel\nconst ASCII_LETTER = /[a-z]/;\nconst LETTER = /\\p{L}/u; // Any Unicode character with letter data type\nconst EMOJI = /\\p{Emoji}/u; // Any Unicode emoji character\nconst EMOJI_VARIATION$1 = /\\ufe0f/;\nconst DIGIT = /\\d/;\nconst SPACE = /\\s/;\n\nvar regexp = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tASCII_LETTER: ASCII_LETTER,\n\tDIGIT: DIGIT,\n\tEMOJI: EMOJI,\n\tEMOJI_VARIATION: EMOJI_VARIATION$1,\n\tLETTER: LETTER,\n\tSPACE: SPACE\n});\n\n/**\n\tThe scanner provides an interface that takes a string of text as input, and\n\toutputs an array of tokens instances that can be used for easy URL parsing.\n*/\n\nconst CR = '\\r'; // carriage-return character\nconst LF = '\\n'; // line-feed character\nconst EMOJI_VARIATION = '\\ufe0f'; // Variation selector, follows heart and others\nconst EMOJI_JOINER = '\\u200d'; // zero-width joiner\nconst OBJECT_REPLACEMENT = '\\ufffc'; // whitespace placeholder that sometimes appears in rich text editors\n\nlet tlds = null,\n utlds = null; // don't change so only have to be computed once\n\n/**\n * Scanner output token:\n * - `t` is the token name (e.g., 'NUM', 'EMOJI', 'TLD')\n * - `v` is the value of the token (e.g., '123', '❤️', 'com')\n * - `s` is the start index of the token in the original string\n * - `e` is the end index of the token in the original string\n * @typedef {{t: string, v: string, s: number, e: number}} Token\n */\n\n/**\n * @template T\n * @typedef {{ [collection: string]: T[] }} Collections\n */\n\n/**\n * Initialize the scanner character-based state machine for the given start\n * state\n * @param {[string, boolean][]} customSchemes List of custom schemes, where each\n * item is a length-2 tuple with the first element set to the string scheme, and\n * the second element set to `true` if the `://` after the scheme is optional\n */\nfunction init$2(customSchemes = []) {\n // Frequently used states (name argument removed during minification)\n /** @type Collections */\n const groups = {}; // of tokens\n State.groups = groups;\n /** @type State */\n const Start = new State();\n if (tlds == null) {\n tlds = decodeTlds(encodedTlds);\n }\n if (utlds == null) {\n utlds = decodeTlds(encodedUtlds);\n }\n\n // States for special URL symbols that accept immediately after start\n tt(Start, \"'\", APOSTROPHE);\n tt(Start, '{', OPENBRACE);\n tt(Start, '}', CLOSEBRACE);\n tt(Start, '[', OPENBRACKET);\n tt(Start, ']', CLOSEBRACKET);\n tt(Start, '(', OPENPAREN);\n tt(Start, ')', CLOSEPAREN);\n tt(Start, '<', OPENANGLEBRACKET);\n tt(Start, '>', CLOSEANGLEBRACKET);\n tt(Start, '(', FULLWIDTHLEFTPAREN);\n tt(Start, ')', FULLWIDTHRIGHTPAREN);\n tt(Start, '「', LEFTCORNERBRACKET);\n tt(Start, '」', RIGHTCORNERBRACKET);\n tt(Start, '『', LEFTWHITECORNERBRACKET);\n tt(Start, '』', RIGHTWHITECORNERBRACKET);\n tt(Start, '<', FULLWIDTHLESSTHAN);\n tt(Start, '>', FULLWIDTHGREATERTHAN);\n tt(Start, '&', AMPERSAND);\n tt(Start, '*', ASTERISK);\n tt(Start, '@', AT);\n tt(Start, '`', BACKTICK);\n tt(Start, '^', CARET);\n tt(Start, ':', COLON);\n tt(Start, ',', COMMA);\n tt(Start, '$', DOLLAR);\n tt(Start, '.', DOT);\n tt(Start, '=', EQUALS);\n tt(Start, '!', EXCLAMATION);\n tt(Start, '-', HYPHEN);\n tt(Start, '%', PERCENT);\n tt(Start, '|', PIPE);\n tt(Start, '+', PLUS);\n tt(Start, '#', POUND);\n tt(Start, '?', QUERY);\n tt(Start, '\"', QUOTE);\n tt(Start, '/', SLASH);\n tt(Start, ';', SEMI);\n tt(Start, '~', TILDE);\n tt(Start, '_', UNDERSCORE);\n tt(Start, '\\\\', BACKSLASH);\n tt(Start, '・', FULLWIDTHMIDDLEDOT);\n const Num = tr(Start, DIGIT, NUM, {\n [numeric]: true\n });\n tr(Num, DIGIT, Num);\n const Asciinumeric = tr(Num, ASCII_LETTER, ASCIINUMERICAL, {\n [asciinumeric]: true\n });\n const Alphanumeric = tr(Num, LETTER, ALPHANUMERICAL, {\n [alphanumeric]: true\n });\n\n // State which emits a word token\n const Word = tr(Start, ASCII_LETTER, WORD, {\n [ascii]: true\n });\n tr(Word, DIGIT, Asciinumeric);\n tr(Word, ASCII_LETTER, Word);\n tr(Asciinumeric, DIGIT, Asciinumeric);\n tr(Asciinumeric, ASCII_LETTER, Asciinumeric);\n\n // Same as previous, but specific to non-fsm.ascii alphabet words\n const UWord = tr(Start, LETTER, UWORD, {\n [alpha]: true\n });\n tr(UWord, ASCII_LETTER); // Non-accepting\n tr(UWord, DIGIT, Alphanumeric);\n tr(UWord, LETTER, UWord);\n tr(Alphanumeric, DIGIT, Alphanumeric);\n tr(Alphanumeric, ASCII_LETTER); // Non-accepting\n tr(Alphanumeric, LETTER, Alphanumeric); // Non-accepting\n\n // Whitespace jumps\n // Tokens of only non-newline whitespace are arbitrarily long\n // If any whitespace except newline, more whitespace!\n const Nl = tt(Start, LF, NL, {\n [whitespace]: true\n });\n const Cr = tt(Start, CR, WS, {\n [whitespace]: true\n });\n const Ws = tr(Start, SPACE, WS, {\n [whitespace]: true\n });\n tt(Start, OBJECT_REPLACEMENT, Ws);\n tt(Cr, LF, Nl); // \\r\\n\n tt(Cr, OBJECT_REPLACEMENT, Ws);\n tr(Cr, SPACE, Ws);\n tt(Ws, CR); // non-accepting state to avoid mixing whitespaces\n tt(Ws, LF); // non-accepting state to avoid mixing whitespaces\n tr(Ws, SPACE, Ws);\n tt(Ws, OBJECT_REPLACEMENT, Ws);\n\n // Emoji tokens. They are not grouped by the scanner except in cases where a\n // zero-width joiner is present\n const Emoji = tr(Start, EMOJI, EMOJI$1, {\n [emoji]: true\n });\n tt(Emoji, '#'); // no transition, emoji regex seems to match #\n tr(Emoji, EMOJI, Emoji);\n tt(Emoji, EMOJI_VARIATION, Emoji);\n // tt(Start, EMOJI_VARIATION, Emoji); // This one is sketchy\n\n const EmojiJoiner = tt(Emoji, EMOJI_JOINER);\n tt(EmojiJoiner, '#');\n tr(EmojiJoiner, EMOJI, Emoji);\n // tt(EmojiJoiner, EMOJI_VARIATION, Emoji); // also sketchy\n\n // Generates states for top-level domains\n // Note that this is most accurate when tlds are in alphabetical order\n const wordjr = [[ASCII_LETTER, Word], [DIGIT, Asciinumeric]];\n const uwordjr = [[ASCII_LETTER, null], [LETTER, UWord], [DIGIT, Alphanumeric]];\n for (let i = 0; i < tlds.length; i++) {\n fastts(Start, tlds[i], TLD, WORD, wordjr);\n }\n for (let i = 0; i < utlds.length; i++) {\n fastts(Start, utlds[i], UTLD, UWORD, uwordjr);\n }\n addToGroups(TLD, {\n tld: true,\n ascii: true\n }, groups);\n addToGroups(UTLD, {\n utld: true,\n alpha: true\n }, groups);\n\n // Collect the states generated by different protocols. NOTE: If any new TLDs\n // get added that are also protocols, set the token to be the same as the\n // protocol to ensure parsing works as expected.\n fastts(Start, 'file', SCHEME, WORD, wordjr);\n fastts(Start, 'mailto', SCHEME, WORD, wordjr);\n fastts(Start, 'http', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'https', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftp', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftps', SLASH_SCHEME, WORD, wordjr);\n addToGroups(SCHEME, {\n scheme: true,\n ascii: true\n }, groups);\n addToGroups(SLASH_SCHEME, {\n slashscheme: true,\n ascii: true\n }, groups);\n\n // Register custom schemes. Assumes each scheme is asciinumeric with hyphens\n customSchemes = customSchemes.sort((a, b) => a[0] > b[0] ? 1 : -1);\n for (let i = 0; i < customSchemes.length; i++) {\n const sch = customSchemes[i][0];\n const optionalSlashSlash = customSchemes[i][1];\n const flags = optionalSlashSlash ? {\n [scheme]: true\n } : {\n [slashscheme]: true\n };\n if (sch.indexOf('-') >= 0) {\n flags[domain] = true;\n } else if (!ASCII_LETTER.test(sch)) {\n flags[numeric] = true; // numbers only\n } else if (DIGIT.test(sch)) {\n flags[asciinumeric] = true;\n } else {\n flags[ascii] = true;\n }\n ts(Start, sch, sch, flags);\n }\n\n // Localhost token\n ts(Start, 'localhost', LOCALHOST, {\n ascii: true\n });\n\n // Set default transition for start state (some symbol)\n Start.jd = new State(SYM);\n return {\n start: Start,\n tokens: Object.assign({\n groups\n }, tk)\n };\n}\n\n/**\n\tGiven a string, returns an array of TOKEN instances representing the\n\tcomposition of that string.\n\n\t@method run\n\t@param {State} start scanner starting state\n\t@param {string} str input string to scan\n\t@return {Token[]} list of tokens, each with a type and value\n*/\nfunction run$1(start, str) {\n // State machine is not case sensitive, so input is tokenized in lowercased\n // form (still returns regular case). Uses selective `toLowerCase` because\n // lowercasing the entire string causes the length and character position to\n // vary in some non-English strings with V8-based runtimes.\n const iterable = stringToArray(str.replace(/[A-Z]/g, c => c.toLowerCase()));\n const charCount = iterable.length; // <= len if there are emojis, etc\n const tokens = []; // return value\n\n // cursor through the string itself, accounting for characters that have\n // width with length 2 such as emojis\n let cursor = 0;\n\n // Cursor through the array-representation of the string\n let charCursor = 0;\n\n // Tokenize the string\n while (charCursor < charCount) {\n let state = start;\n let nextState = null;\n let tokenLength = 0;\n let latestAccepting = null;\n let sinceAccepts = -1;\n let charsSinceAccepts = -1;\n while (charCursor < charCount && (nextState = state.go(iterable[charCursor]))) {\n state = nextState;\n\n // Keep track of the latest accepting state\n if (state.accepts()) {\n sinceAccepts = 0;\n charsSinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts += iterable[charCursor].length;\n charsSinceAccepts++;\n }\n tokenLength += iterable[charCursor].length;\n cursor += iterable[charCursor].length;\n charCursor++;\n }\n\n // Roll back to the latest accepting state\n cursor -= sinceAccepts;\n charCursor -= charsSinceAccepts;\n tokenLength -= sinceAccepts;\n\n // No more jumps, just make a new token from the last accepting one\n tokens.push({\n t: latestAccepting.t,\n // token type/name\n v: str.slice(cursor - tokenLength, cursor),\n // string value\n s: cursor - tokenLength,\n // start index\n e: cursor // end index (excluding)\n });\n }\n return tokens;\n}\n\n/**\n * Convert a String to an Array of characters, taking into account that some\n * characters like emojis take up two string indexes.\n *\n * Adapted from core-js (MIT license)\n * https://github.com/zloirock/core-js/blob/2d69cf5f99ab3ea3463c395df81e5a15b68f49d9/packages/core-js/internals/string-multibyte.js\n *\n * @function stringToArray\n * @param {string} str\n * @returns {string[]}\n */\nfunction stringToArray(str) {\n const result = [];\n const len = str.length;\n let index = 0;\n while (index < len) {\n let first = str.charCodeAt(index);\n let second;\n let char = first < 0xd800 || first > 0xdbff || index + 1 === len || (second = str.charCodeAt(index + 1)) < 0xdc00 || second > 0xdfff ? str[index] // single character\n : str.slice(index, index + 2); // two-index characters\n result.push(char);\n index += char.length;\n }\n return result;\n}\n\n/**\n * Fast version of ts function for when transition defaults are well known\n * @param {State} state\n * @param {string} input\n * @param {string} t\n * @param {string} defaultt\n * @param {[RegExp, State][]} jr\n * @returns {State}\n */\nfunction fastts(state, input, t, defaultt, jr) {\n let next;\n const len = input.length;\n for (let i = 0; i < len - 1; i++) {\n const char = input[i];\n if (state.j[char]) {\n next = state.j[char];\n } else {\n next = new State(defaultt);\n next.jr = jr.slice();\n state.j[char] = next;\n }\n state = next;\n }\n next = new State(t);\n next.jr = jr.slice();\n state.j[input[len - 1]] = next;\n return next;\n}\n\n/**\n * Converts a string of Top-Level Domain names encoded in update-tlds.js back\n * into a list of strings.\n * @param {str} encoded encoded TLDs string\n * @returns {str[]} original TLDs list\n */\nfunction decodeTlds(encoded) {\n const words = [];\n const stack = [];\n let i = 0;\n let digits = '0123456789';\n while (i < encoded.length) {\n let popDigitCount = 0;\n while (digits.indexOf(encoded[i + popDigitCount]) >= 0) {\n popDigitCount++; // encountered some digits, have to pop to go one level up trie\n }\n if (popDigitCount > 0) {\n words.push(stack.join('')); // whatever preceded the pop digits must be a word\n for (let popCount = parseInt(encoded.substring(i, i + popDigitCount), 10); popCount > 0; popCount--) {\n stack.pop();\n }\n i += popDigitCount;\n } else {\n stack.push(encoded[i]); // drop down a level into the trie\n i++;\n }\n }\n return words;\n}\n\n/**\n * An object where each key is a valid DOM Event Name such as `click` or `focus`\n * and each value is an event handler function.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/Element#events\n * @typedef {?{ [event: string]: Function }} EventListeners\n */\n\n/**\n * All formatted properties required to render a link, including `tagName`,\n * `attributes`, `content` and `eventListeners`.\n * @typedef {{ tagName: any, attributes: {[attr: string]: any}, content: string,\n * eventListeners: EventListeners }} IntermediateRepresentation\n */\n\n/**\n * Specify either an object described by the template type `O` or a function.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `O`\n * @template O\n * @typedef {O | ((value: string, type: string, token: MultiToken) => O)} OptObj\n */\n\n/**\n * Specify either a function described by template type `F` or an object.\n *\n * Each key in the object should be a link type (`'url'`, `'hashtag`', etc.). Each\n * value should be a function with template type `F` that is called when the\n * corresponding link type is encountered.\n * @template F\n * @typedef {F | { [type: string]: F}} OptFn\n */\n\n/**\n * Specify either a value with template type `V`, a function that returns `V` or\n * an object where each value resolves to `V`.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `V`\n *\n * For the object, each key should be a link type (`'url'`, `'hashtag`', etc.).\n * Each value should either have type `V` or a function that returns V. This\n * function similarly takes a string value and a token.\n *\n * Example valid types for `Opt`:\n *\n * ```js\n * 'hello'\n * (value, type, token) => 'world'\n * { url: 'hello', email: (value, token) => 'world'}\n * ```\n * @template V\n * @typedef {V | ((value: string, type: string, token: MultiToken) => V) | { [type: string]: V | ((value: string, token: MultiToken) => V) }} Opt\n */\n\n/**\n * See available options: https://linkify.js.org/docs/options.html\n * @typedef {{\n * \tdefaultProtocol?: string,\n * events?: OptObj,\n * \tformat?: Opt,\n * \tformatHref?: Opt,\n * \tnl2br?: boolean,\n * \ttagName?: Opt,\n * \ttarget?: Opt,\n * \trel?: Opt,\n * \tvalidate?: Opt,\n * \ttruncate?: Opt,\n * \tclassName?: Opt,\n * \tattributes?: OptObj<({ [attr: string]: any })>,\n * ignoreTags?: string[],\n * \trender?: OptFn<((ir: IntermediateRepresentation) => any)>\n * }} Opts\n */\n\n/**\n * @type Required\n */\nconst defaults = {\n defaultProtocol: 'http',\n events: null,\n format: noop,\n formatHref: noop,\n nl2br: false,\n tagName: 'a',\n target: null,\n rel: null,\n validate: true,\n truncate: Infinity,\n className: null,\n attributes: null,\n ignoreTags: [],\n render: null\n};\n\n/**\n * Utility class for linkify interfaces to apply specified\n * {@link Opts formatting and rendering options}.\n *\n * @param {Opts | Options} [opts] Option value overrides.\n * @param {(ir: IntermediateRepresentation) => any} [defaultRender] (For\n * internal use) default render function that determines how to generate an\n * HTML element based on a link token's derived tagName, attributes and HTML.\n * Similar to render option\n */\nfunction Options(opts, defaultRender = null) {\n let o = Object.assign({}, defaults);\n if (opts) {\n o = Object.assign(o, opts instanceof Options ? opts.o : opts);\n }\n\n // Ensure all ignored tags are uppercase\n const ignoredTags = o.ignoreTags;\n const uppercaseIgnoredTags = [];\n for (let i = 0; i < ignoredTags.length; i++) {\n uppercaseIgnoredTags.push(ignoredTags[i].toUpperCase());\n }\n /** @protected */\n this.o = o;\n if (defaultRender) {\n this.defaultRender = defaultRender;\n }\n this.ignoreTags = uppercaseIgnoredTags;\n}\nOptions.prototype = {\n o: defaults,\n /**\n * @type string[]\n */\n ignoreTags: [],\n /**\n * @param {IntermediateRepresentation} ir\n * @returns {any}\n */\n defaultRender(ir) {\n return ir;\n },\n /**\n * Returns true or false based on whether a token should be displayed as a\n * link based on the user options.\n * @param {MultiToken} token\n * @returns {boolean}\n */\n check(token) {\n return this.get('validate', token.toString(), token);\n },\n // Private methods\n\n /**\n * Resolve an option's value based on the value of the option and the given\n * params. If operator and token are specified and the target option is\n * callable, automatically calls the function with the given argument.\n * @template {keyof Opts} K\n * @param {K} key Name of option to use\n * @param {string} [operator] will be passed to the target option if it's a\n * function. If not specified, RAW function value gets returned\n * @param {MultiToken} [token] The token from linkify.tokenize\n * @returns {Opts[K] | any}\n */\n get(key, operator, token) {\n const isCallable = operator != null;\n let option = this.o[key];\n if (!option) {\n return option;\n }\n if (typeof option === 'object') {\n option = token.t in option ? option[token.t] : defaults[key];\n if (typeof option === 'function' && isCallable) {\n option = option(operator, token);\n }\n } else if (typeof option === 'function' && isCallable) {\n option = option(operator, token.t, token);\n }\n return option;\n },\n /**\n * @template {keyof Opts} L\n * @param {L} key Name of options object to use\n * @param {string} [operator]\n * @param {MultiToken} [token]\n * @returns {Opts[L] | any}\n */\n getObj(key, operator, token) {\n let obj = this.o[key];\n if (typeof obj === 'function' && operator != null) {\n obj = obj(operator, token.t, token);\n }\n return obj;\n },\n /**\n * Convert the given token to a rendered element that may be added to the\n * calling-interface's DOM\n * @param {MultiToken} token Token to render to an HTML element\n * @returns {any} Render result; e.g., HTML string, DOM element, React\n * Component, etc.\n */\n render(token) {\n const ir = token.render(this); // intermediate representation\n const renderFn = this.get('render', null, token) || this.defaultRender;\n return renderFn(ir, token.t, token);\n }\n};\nfunction noop(val) {\n return val;\n}\n\nvar options = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tOptions: Options,\n\tdefaults: defaults\n});\n\n/******************************************************************************\n\tMulti-Tokens\n\tTokens composed of arrays of TextTokens\n******************************************************************************/\n\n/**\n * @param {string} value\n * @param {Token[]} tokens\n */\nfunction MultiToken(value, tokens) {\n this.t = 'token';\n this.v = value;\n this.tk = tokens;\n}\n\n/**\n * Abstract class used for manufacturing tokens of text tokens. That is rather\n * than the value for a token being a small string of text, it's value an array\n * of text tokens.\n *\n * Used for grouping together URLs, emails, hashtags, and other potential\n * creations.\n * @class MultiToken\n * @property {string} t\n * @property {string} v\n * @property {Token[]} tk\n * @abstract\n */\nMultiToken.prototype = {\n isLink: false,\n /**\n * Return the string this token represents.\n * @return {string}\n */\n toString() {\n return this.v;\n },\n /**\n * What should the value for this token be in the `href` HTML attribute?\n * Returns the `.toString` value by default.\n * @param {string} [scheme]\n * @return {string}\n */\n toHref(scheme) {\n return this.toString();\n },\n /**\n * @param {Options} options Formatting options\n * @returns {string}\n */\n toFormattedString(options) {\n const val = this.toString();\n const truncate = options.get('truncate', val, this);\n const formatted = options.get('format', val, this);\n return truncate && formatted.length > truncate ? formatted.substring(0, truncate) + '…' : formatted;\n },\n /**\n *\n * @param {Options} options\n * @returns {string}\n */\n toFormattedHref(options) {\n return options.get('formatHref', this.toHref(options.get('defaultProtocol')), this);\n },\n /**\n * The start index of this token in the original input string\n * @returns {number}\n */\n startIndex() {\n return this.tk[0].s;\n },\n /**\n * The end index of this token in the original input string (up to this\n * index but not including it)\n * @returns {number}\n */\n endIndex() {\n return this.tk[this.tk.length - 1].e;\n },\n /**\n \tReturns an object of relevant values for this token, which includes keys\n \t* type - Kind of token ('url', 'email', etc.)\n \t* value - Original text\n \t* href - The value that should be added to the anchor tag's href\n \t\tattribute\n \t\t@method toObject\n \t@param {string} [protocol] `'http'` by default\n */\n toObject(protocol = defaults.defaultProtocol) {\n return {\n type: this.t,\n value: this.toString(),\n isLink: this.isLink,\n href: this.toHref(protocol),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n /**\n *\n * @param {Options} options Formatting option\n */\n toFormattedObject(options) {\n return {\n type: this.t,\n value: this.toFormattedString(options),\n isLink: this.isLink,\n href: this.toFormattedHref(options),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n /**\n * Whether this token should be rendered as a link according to the given options\n * @param {Options} options\n * @returns {boolean}\n */\n validate(options) {\n return options.get('validate', this.toString(), this);\n },\n /**\n * Return an object that represents how this link should be rendered.\n * @param {Options} options Formattinng options\n */\n render(options) {\n const token = this;\n const href = this.toHref(options.get('defaultProtocol'));\n const formattedHref = options.get('formatHref', href, this);\n const tagName = options.get('tagName', href, token);\n const content = this.toFormattedString(options);\n const attributes = {};\n const className = options.get('className', href, token);\n const target = options.get('target', href, token);\n const rel = options.get('rel', href, token);\n const attrs = options.getObj('attributes', href, token);\n const eventListeners = options.getObj('events', href, token);\n attributes.href = formattedHref;\n if (className) {\n attributes.class = className;\n }\n if (target) {\n attributes.target = target;\n }\n if (rel) {\n attributes.rel = rel;\n }\n if (attrs) {\n Object.assign(attributes, attrs);\n }\n return {\n tagName,\n attributes,\n content,\n eventListeners\n };\n }\n};\n\n/**\n * Create a new token that can be emitted by the parser state machine\n * @param {string} type readable type of the token\n * @param {object} props properties to assign or override, including isLink = true or false\n * @returns {new (value: string, tokens: Token[]) => MultiToken} new token class\n */\nfunction createTokenClass(type, props) {\n class Token extends MultiToken {\n constructor(value, tokens) {\n super(value, tokens);\n this.t = type;\n }\n }\n for (const p in props) {\n Token.prototype[p] = props[p];\n }\n Token.t = type;\n return Token;\n}\n\n/**\n\tRepresents a list of tokens making up a valid email address\n*/\nconst Email = createTokenClass('email', {\n isLink: true,\n toHref() {\n return 'mailto:' + this.toString();\n }\n});\n\n/**\n\tRepresents some plain text\n*/\nconst Text = createTokenClass('text');\n\n/**\n\tMulti-linebreak token - represents a line break\n\t@class Nl\n*/\nconst Nl = createTokenClass('nl');\n\n/**\n\tRepresents a list of text tokens making up a valid URL\n\t@class Url\n*/\nconst Url = createTokenClass('url', {\n isLink: true,\n /**\n \tLowercases relevant parts of the domain and adds the protocol if\n \trequired. Note that this will not escape unsafe HTML characters in the\n \tURL.\n \t\t@param {string} [scheme] default scheme (e.g., 'https')\n \t@return {string} the full href\n */\n toHref(scheme = defaults.defaultProtocol) {\n // Check if already has a prefix scheme\n return this.hasProtocol() ? this.v : `${scheme}://${this.v}`;\n },\n /**\n * Check whether this URL token has a protocol\n * @return {boolean}\n */\n hasProtocol() {\n const tokens = this.tk;\n return tokens.length >= 2 && tokens[0].t !== LOCALHOST && tokens[1].t === COLON;\n }\n});\n\nvar multi = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tBase: MultiToken,\n\tEmail: Email,\n\tMultiToken: MultiToken,\n\tNl: Nl,\n\tText: Text,\n\tUrl: Url,\n\tcreateTokenClass: createTokenClass\n});\n\n/**\n\tNot exactly parser, more like the second-stage scanner (although we can\n\ttheoretically hotswap the code here with a real parser in the future... but\n\tfor a little URL-finding utility abstract syntax trees may be a little\n\toverkill).\n\n\tURL format: http://en.wikipedia.org/wiki/URI_scheme\n\tEmail format: http://en.wikipedia.org/wiki/EmailAddress (links to RFC in\n\treference)\n\n\t@module linkify\n\t@submodule parser\n\t@main run\n*/\n\nconst makeState = arg => new State(arg);\n\n/**\n * Generate the parser multi token-based state machine\n * @param {{ groups: Collections }} tokens\n */\nfunction init$1({\n groups\n}) {\n // Types of characters the URL can definitely end in\n const qsAccepting = groups.domain.concat([AMPERSAND, ASTERISK, AT, BACKSLASH, BACKTICK, CARET, DOLLAR, EQUALS, HYPHEN, NUM, PERCENT, PIPE, PLUS, POUND, SLASH, SYM, TILDE, UNDERSCORE]);\n\n // Types of tokens that can follow a URL and be part of the query string\n // but cannot be the very last characters\n // Characters that cannot appear in the URL at all should be excluded\n const qsNonAccepting = [APOSTROPHE, COLON, COMMA, DOT, EXCLAMATION, PERCENT, QUERY, QUOTE, SEMI, OPENANGLEBRACKET, CLOSEANGLEBRACKET, OPENBRACE, CLOSEBRACE, CLOSEBRACKET, OPENBRACKET, OPENPAREN, CLOSEPAREN, FULLWIDTHLEFTPAREN, FULLWIDTHRIGHTPAREN, LEFTCORNERBRACKET, RIGHTCORNERBRACKET, LEFTWHITECORNERBRACKET, RIGHTWHITECORNERBRACKET, FULLWIDTHLESSTHAN, FULLWIDTHGREATERTHAN];\n\n // For addresses without the mailto prefix\n // Tokens allowed in the localpart of the email\n const localpartAccepting = [AMPERSAND, APOSTROPHE, ASTERISK, BACKSLASH, BACKTICK, CARET, DOLLAR, EQUALS, HYPHEN, OPENBRACE, CLOSEBRACE, PERCENT, PIPE, PLUS, POUND, QUERY, SLASH, SYM, TILDE, UNDERSCORE];\n\n // The universal starting state.\n /**\n * @type State\n */\n const Start = makeState();\n const Localpart = tt(Start, TILDE); // Local part of the email address\n ta(Localpart, localpartAccepting, Localpart);\n ta(Localpart, groups.domain, Localpart);\n const Domain = makeState(),\n Scheme = makeState(),\n SlashScheme = makeState();\n ta(Start, groups.domain, Domain); // parsed string ends with a potential domain name (A)\n ta(Start, groups.scheme, Scheme); // e.g., 'mailto'\n ta(Start, groups.slashscheme, SlashScheme); // e.g., 'http'\n\n ta(Domain, localpartAccepting, Localpart);\n ta(Domain, groups.domain, Domain);\n const LocalpartAt = tt(Domain, AT); // Local part of the email address plus @\n\n tt(Localpart, AT, LocalpartAt); // close to an email address now\n\n // Local part of an email address can be e.g. 'http' or 'mailto'\n tt(Scheme, AT, LocalpartAt);\n tt(SlashScheme, AT, LocalpartAt);\n const LocalpartDot = tt(Localpart, DOT); // Local part of the email address plus '.' (localpart cannot end in .)\n ta(LocalpartDot, localpartAccepting, Localpart);\n ta(LocalpartDot, groups.domain, Localpart);\n const EmailDomain = makeState();\n ta(LocalpartAt, groups.domain, EmailDomain); // parsed string starts with local email info + @ with a potential domain name\n ta(EmailDomain, groups.domain, EmailDomain);\n const EmailDomainDot = tt(EmailDomain, DOT); // domain followed by DOT\n ta(EmailDomainDot, groups.domain, EmailDomain);\n const Email$1 = makeState(Email); // Possible email address (could have more tlds)\n ta(EmailDomainDot, groups.tld, Email$1);\n ta(EmailDomainDot, groups.utld, Email$1);\n tt(LocalpartAt, LOCALHOST, Email$1);\n\n // Hyphen can jump back to a domain name\n const EmailDomainHyphen = tt(EmailDomain, HYPHEN); // parsed string starts with local email info + @ with a potential domain name\n tt(EmailDomainHyphen, HYPHEN, EmailDomainHyphen);\n ta(EmailDomainHyphen, groups.domain, EmailDomain);\n ta(Email$1, groups.domain, EmailDomain);\n tt(Email$1, DOT, EmailDomainDot);\n tt(Email$1, HYPHEN, EmailDomainHyphen);\n\n // Account for dots and hyphens. Hyphens are usually parts of domain names\n // (but not TLDs)\n const DomainHyphen = tt(Domain, HYPHEN); // domain followed by hyphen\n const DomainDot = tt(Domain, DOT); // domain followed by DOT\n tt(DomainHyphen, HYPHEN, DomainHyphen);\n ta(DomainHyphen, groups.domain, Domain);\n ta(DomainDot, localpartAccepting, Localpart);\n ta(DomainDot, groups.domain, Domain);\n const DomainDotTld = makeState(Url); // Simplest possible URL with no query string\n ta(DomainDot, groups.tld, DomainDotTld);\n ta(DomainDot, groups.utld, DomainDotTld);\n ta(DomainDotTld, groups.domain, Domain);\n ta(DomainDotTld, localpartAccepting, Localpart);\n tt(DomainDotTld, DOT, DomainDot);\n tt(DomainDotTld, HYPHEN, DomainHyphen);\n tt(DomainDotTld, AT, LocalpartAt);\n const DomainDotTldColon = tt(DomainDotTld, COLON); // URL followed by colon (potential port number here)\n const DomainDotTldColonPort = makeState(Url); // TLD followed by a port number\n ta(DomainDotTldColon, groups.numeric, DomainDotTldColonPort);\n\n // Long URL with optional port and maybe query string\n const Url$1 = makeState(Url);\n\n // URL with extra symbols at the end, followed by an opening bracket\n const UrlNonaccept = makeState(); // URL followed by some symbols (will not be part of the final URL)\n\n // Query strings\n ta(Url$1, qsAccepting, Url$1);\n ta(Url$1, qsNonAccepting, UrlNonaccept);\n ta(UrlNonaccept, qsAccepting, Url$1);\n ta(UrlNonaccept, qsNonAccepting, UrlNonaccept);\n\n // Become real URLs after `SLASH` or `COLON NUM SLASH`\n // Here works with or without scheme:// prefix\n tt(DomainDotTld, SLASH, Url$1);\n tt(DomainDotTldColonPort, SLASH, Url$1);\n\n // Note that domains that begin with schemes are treated slighly differently\n const SchemeColon = tt(Scheme, COLON); // e.g., 'mailto:'\n const SlashSchemeColon = tt(SlashScheme, COLON); // e.g., 'http:'\n const SlashSchemeColonSlash = tt(SlashSchemeColon, SLASH); // e.g., 'http:/'\n\n const UriPrefix = tt(SlashSchemeColonSlash, SLASH); // e.g., 'http://'\n\n // Scheme states can transition to domain states\n ta(Scheme, groups.domain, Domain);\n tt(Scheme, DOT, DomainDot);\n tt(Scheme, HYPHEN, DomainHyphen);\n ta(SlashScheme, groups.domain, Domain);\n tt(SlashScheme, DOT, DomainDot);\n tt(SlashScheme, HYPHEN, DomainHyphen);\n\n // Force URL with scheme prefix followed by anything sane\n ta(SchemeColon, groups.domain, Url$1);\n tt(SchemeColon, SLASH, Url$1);\n tt(SchemeColon, QUERY, Url$1);\n ta(UriPrefix, groups.domain, Url$1);\n ta(UriPrefix, qsAccepting, Url$1);\n tt(UriPrefix, SLASH, Url$1);\n const bracketPairs = [[OPENBRACE, CLOSEBRACE],\n // {}\n [OPENBRACKET, CLOSEBRACKET],\n // []\n [OPENPAREN, CLOSEPAREN],\n // ()\n [OPENANGLEBRACKET, CLOSEANGLEBRACKET],\n // <>\n [FULLWIDTHLEFTPAREN, FULLWIDTHRIGHTPAREN],\n // ()\n [LEFTCORNERBRACKET, RIGHTCORNERBRACKET],\n // 「」\n [LEFTWHITECORNERBRACKET, RIGHTWHITECORNERBRACKET],\n // 『』\n [FULLWIDTHLESSTHAN, FULLWIDTHGREATERTHAN] // <>\n ];\n for (let i = 0; i < bracketPairs.length; i++) {\n const [OPEN, CLOSE] = bracketPairs[i];\n const UrlOpen = tt(Url$1, OPEN); // URL followed by open bracket\n\n // Continue not accepting for open brackets\n tt(UrlNonaccept, OPEN, UrlOpen);\n\n // URL that begins with an opening bracket, followed by a symbols.\n // Note that the final state can still be `UrlOpen` (if the URL has a\n // single opening bracket for some reason).\n const UrlOpenQ = makeState(Url);\n ta(UrlOpen, qsAccepting, UrlOpenQ);\n const UrlOpenSyms = makeState(); // UrlOpen followed by some symbols it cannot end it\n ta(UrlOpen, qsNonAccepting, UrlOpenSyms);\n\n // Closing bracket component. This character WILL be included in the URL.\n // Must come after qsNonAccepting (which includes all close-bracket tokens)\n // so that CLOSE -> Url wins over CLOSE -> UrlOpenSyms.\n tt(UrlOpen, CLOSE, Url$1);\n\n // URL that begins with an opening bracket, followed by some symbols\n ta(UrlOpenQ, qsAccepting, UrlOpenQ);\n ta(UrlOpenQ, qsNonAccepting, UrlOpenSyms);\n ta(UrlOpenSyms, qsAccepting, UrlOpenQ);\n ta(UrlOpenSyms, qsNonAccepting, UrlOpenSyms);\n\n // Close brace/bracket to become regular URL\n tt(UrlOpenQ, CLOSE, Url$1);\n tt(UrlOpenSyms, CLOSE, Url$1);\n }\n tt(Start, LOCALHOST, DomainDotTld); // localhost is a valid URL state\n tt(Start, NL, Nl); // single new line\n\n return {\n start: Start,\n tokens: tk\n };\n}\n\n/**\n * Run the parser state machine on a list of scanned string-based tokens to\n * create a list of multi tokens, each of which represents a URL, email address,\n * plain text, etc.\n *\n * @param {State} start parser start state\n * @param {string} input the original input used to generate the given tokens\n * @param {Token[]} tokens list of scanned tokens\n * @returns {MultiToken[]}\n */\nfunction run(start, input, tokens) {\n let len = tokens.length;\n let cursor = 0;\n let multis = [];\n let textTokens = [];\n while (cursor < len) {\n let state = start;\n let secondState = null;\n let nextState = null;\n let multiLength = 0;\n let latestAccepting = null;\n let sinceAccepts = -1;\n while (cursor < len && !(secondState = state.go(tokens[cursor].t))) {\n // Starting tokens with nowhere to jump to.\n // Consider these to be just plain text\n textTokens.push(tokens[cursor++]);\n }\n while (cursor < len && (nextState = secondState || state.go(tokens[cursor].t))) {\n // Get the next state\n secondState = null;\n state = nextState;\n\n // Keep track of the latest accepting state\n if (state.accepts()) {\n sinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts++;\n }\n cursor++;\n multiLength++;\n }\n if (sinceAccepts < 0) {\n // No accepting state was found, part of a regular text token add\n // the first text token to the text tokens array and try again from\n // the next\n cursor -= multiLength;\n if (cursor < len) {\n textTokens.push(tokens[cursor]);\n cursor++;\n }\n } else {\n // Accepting state!\n // First close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n textTokens = [];\n }\n\n // Roll back to the latest accepting state\n cursor -= sinceAccepts;\n multiLength -= sinceAccepts;\n\n // Create a new multitoken\n const Multi = latestAccepting.t;\n const subtokens = tokens.slice(cursor - multiLength, cursor);\n multis.push(initMultiToken(Multi, input, subtokens));\n }\n }\n\n // Finally close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n }\n return multis;\n}\n\n/**\n * Utility function for instantiating a new multitoken with all the relevant\n * fields during parsing.\n * @param {new (value: string, tokens: Token[]) => MultiToken} Multi class to instantiate\n * @param {string} input original input string\n * @param {Token[]} tokens consecutive tokens scanned from input string\n * @returns {MultiToken}\n */\nfunction initMultiToken(Multi, input, tokens) {\n const startIdx = tokens[0].s;\n const endIdx = tokens[tokens.length - 1].e;\n const value = input.slice(startIdx, endIdx);\n return new Multi(value, tokens);\n}\n\nconst warn = typeof console !== 'undefined' && console && console.warn || (() => {});\nconst warnAdvice = 'until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.';\n\n// Side-effect initialization state\nconst INIT = {\n scanner: null,\n parser: null,\n tokenQueue: [],\n pluginQueue: [],\n customSchemes: [],\n initialized: false\n};\n\n/**\n * @typedef {{\n * \tstart: State,\n * \ttokens: { groups: Collections } & typeof tk\n * }} ScannerInit\n */\n\n/**\n * @typedef {{\n * \tstart: State,\n * \ttokens: typeof multi\n * }} ParserInit\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit }) => void} TokenPlugin\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit, parser: ParserInit }) => void} Plugin\n */\n\n/**\n * De-register all plugins and reset the internal state-machine. Used for\n * testing; not required in practice.\n * @private\n */\nfunction reset() {\n State.groups = {};\n INIT.scanner = null;\n INIT.parser = null;\n INIT.tokenQueue = [];\n INIT.pluginQueue = [];\n INIT.customSchemes = [];\n INIT.initialized = false;\n return INIT;\n}\n\n/**\n * Register a token plugin to allow the scanner to recognize additional token\n * types before the parser state machine is constructed from the results.\n * @param {string} name of plugin to register\n * @param {TokenPlugin} plugin function that accepts the scanner state machine\n * and available scanner tokens and collections and extends the state machine to\n * recognize additional tokens or groups.\n */\nfunction registerTokenPlugin(name, plugin) {\n if (typeof plugin !== 'function') {\n throw new Error(`linkifyjs: Invalid token plugin ${plugin} (expects function)`);\n }\n for (let i = 0; i < INIT.tokenQueue.length; i++) {\n if (name === INIT.tokenQueue[i][0]) {\n warn(`linkifyjs: token plugin \"${name}\" already registered - will be overwritten`);\n INIT.tokenQueue[i] = [name, plugin];\n return;\n }\n }\n INIT.tokenQueue.push([name, plugin]);\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register token plugin \"${name}\" ${warnAdvice}`);\n }\n}\n\n/**\n * Register a linkify plugin\n * @param {string} name of plugin to register\n * @param {Plugin} plugin function that accepts the parser state machine and\n * extends the parser to recognize additional link types\n */\nfunction registerPlugin(name, plugin) {\n if (typeof plugin !== 'function') {\n throw new Error(`linkifyjs: Invalid plugin ${plugin} (expects function)`);\n }\n for (let i = 0; i < INIT.pluginQueue.length; i++) {\n if (name === INIT.pluginQueue[i][0]) {\n warn(`linkifyjs: plugin \"${name}\" already registered - will be overwritten`);\n INIT.pluginQueue[i] = [name, plugin];\n return;\n }\n }\n INIT.pluginQueue.push([name, plugin]);\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register plugin \"${name}\" ${warnAdvice}`);\n }\n}\n\n/**\n * Detect URLs with the following additional protocol. Anything with format\n * \"protocol://...\" will be considered a link. If `optionalSlashSlash` is set to\n * `true`, anything with format \"protocol:...\" will be considered a link.\n * @param {string} scheme\n * @param {boolean} [optionalSlashSlash]\n */\nfunction registerCustomProtocol(scheme, optionalSlashSlash = false) {\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register custom scheme \"${scheme}\" ${warnAdvice}`);\n }\n if (!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(scheme)) {\n throw new Error(`linkifyjs: incorrect scheme format.\n1. Must only contain digits, lowercase ASCII letters or \"-\"\n2. Cannot start or end with \"-\"\n3. \"-\" cannot repeat`);\n }\n INIT.customSchemes.push([scheme, optionalSlashSlash]);\n}\n\n/**\n * Initialize the linkify state machine. Called automatically the first time\n * linkify is called on a string, but may be called manually as well.\n */\nfunction init() {\n // Initialize scanner state machine and plugins\n INIT.scanner = init$2(INIT.customSchemes);\n for (let i = 0; i < INIT.tokenQueue.length; i++) {\n INIT.tokenQueue[i][1]({\n scanner: INIT.scanner\n });\n }\n\n // Initialize parser state machine and plugins\n INIT.parser = init$1(INIT.scanner.tokens);\n for (let i = 0; i < INIT.pluginQueue.length; i++) {\n INIT.pluginQueue[i][1]({\n scanner: INIT.scanner,\n parser: INIT.parser\n });\n }\n INIT.initialized = true;\n return INIT;\n}\n\n/**\n * Parse a string into tokens that represent linkable and non-linkable sub-components\n * @param {string} str\n * @return {MultiToken[]} tokens\n */\nfunction tokenize(str) {\n if (!INIT.initialized) {\n init();\n }\n return run(INIT.parser.start, str, run$1(INIT.scanner.start, str));\n}\ntokenize.scan = run$1; // for testing\n\n/**\n * Find a list of linkable items in the given string.\n * @param {string} str string to find links in\n * @param {string | Opts} [type] either formatting options or specific type of\n * links to find, e.g., 'url' or 'email'\n * @param {Opts} [opts] formatting options for final output. Cannot be specified\n * if opts already provided in `type` argument\n */\nfunction find(str, type = null, opts = null) {\n if (type && typeof type === 'object') {\n if (opts) {\n throw Error(`linkifyjs: Invalid link type ${type}; must be a string`);\n }\n opts = type;\n type = null;\n }\n const options = new Options(opts);\n const tokens = tokenize(str);\n const filtered = [];\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n if (token.isLink && (!type || token.t === type) && options.check(token)) {\n filtered.push(token.toFormattedObject(options));\n }\n }\n return filtered;\n}\n\n/**\n * Is the given string valid linkable text of some sort. Note that this does not\n * trim the text for you.\n *\n * Optionally pass in a second `type` param, which is the type of link to test\n * for.\n *\n * For example,\n *\n * linkify.test(str, 'email');\n *\n * Returns `true` if str is a valid email.\n * @param {string} str string to test for links\n * @param {string} [type] optional specific link type to look for\n * @returns boolean true/false\n */\nfunction test(str, type = null) {\n const tokens = tokenize(str);\n return tokens.length === 1 && tokens[0].isLink && (!type || tokens[0].t === type);\n}\n\nexport { MultiToken, Options, State, createTokenClass, find, init, multi, options, regexp, registerCustomProtocol, registerPlugin, registerTokenPlugin, reset, stringToArray, test, multi as text, tokenize };\n","import escapeHTML from \"escape-html\";\nimport { Options, tokenize } from \"linkifyjs\";\nfunction linkifyString(str) {\n const options = new Options({\n defaultProtocol: \"https\",\n target: \"_blank\",\n className: \"external linkified\",\n attributes: {\n rel: \"nofollow noopener noreferrer\"\n }\n }, defaultRender);\n const tokens = tokenize(str);\n const result = [];\n for (const token of tokens) {\n if (token.t === \"nl\" && options.get(\"nl2br\")) {\n result.push(\"
    \\n\");\n } else if (!token.isLink || !options.check(token)) {\n result.push(escapeHTML(token.toString()));\n } else {\n result.push(options.render(token));\n }\n }\n return result.join(\"\");\n}\nfunction escapeAttr(href) {\n return href.replace(/\"/g, \""\");\n}\nfunction attributesToString(attributes) {\n const result = [];\n for (const attr in attributes) {\n const val = attributes[attr] + \"\";\n result.push(`${attr}=\"${escapeAttr(val)}\"`);\n }\n return result.join(\" \");\n}\nfunction defaultRender({ tagName, attributes, content }) {\n return `<${tagName} ${attributesToString(attributes)}>${escapeHTML(content)}`;\n}\nconst directive = function(el, { value }) {\n if (value?.linkify === true) {\n el.innerHTML = linkifyString(value.text);\n }\n};\nexport {\n directive as default\n};\n//# sourceMappingURL=index.mjs.map\n","import { defineComponent, inject, withDirectives, openBlock, createElementBlock, createTextVNode, toDisplayString, unref } from \"vue\";\nimport directive from \"../directives/Linkify/index.mjs\";\nconst _hoisted_1 = [\"title\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppSidebarHeader\",\n props: {\n name: {},\n title: {},\n linkify: { type: Boolean }\n },\n setup(__props) {\n const headerRef = inject(\"NcAppSidebar:header:ref\");\n return (_ctx, _cache) => {\n return withDirectives((openBlock(), createElementBlock(\"h2\", {\n ref_key: \"headerRef\",\n ref: headerRef,\n tabindex: \"-1\",\n title: __props.title\n }, [\n createTextVNode(toDisplayString(__props.name), 1)\n ], 8, _hoisted_1)), [\n [unref(directive), { text: __props.name, linkify: __props.linkify }]\n ]);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-C-QhdyiN.mjs.map\n","import '../assets/NcAppSidebar-dHtSShIl.css';\nimport { vOnClickOutside } from \"@vueuse/components\";\nimport { createFocusTrap } from \"focus-trap\";\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, defineComponent, useModel, normalizeClass, unref, createVNode, withCtx, mergeModels, resolveComponent, withKeys, withModifiers, Fragment, renderList, createBlock, renderSlot, resolveDirective, Transition, withDirectives, Teleport, normalizeStyle, vShow, createTextVNode, warn, ref, provide } from \"vue\";\nimport { I as IconArrowRight } from \"./ArrowRight-B1ncAhus.mjs\";\nimport { I as IconClose } from \"./Close-CuhcJnX2.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { getCanonicalLocale } from \"@nextcloud/l10n\";\nimport { _ as _sfc_main$6 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { useIsSmallMobile } from \"../composables/useIsMobile/index.mjs\";\nimport directive from \"../directives/Focus/index.mjs\";\nimport { r as register, V as t15, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { g as getTrapStack } from \"./focusTrap-HJQ4pqHV.mjs\";\nimport { i as isSlotPopulated, N as NcActions } from \"./NcActions-CUmcZ3C3.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { _ as _sfc_main$7 } from \"./NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-C-QhdyiN.mjs\";\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { C as CONTENT_SELECTOR_KEY } from \"./constants-Ciwvl5xb.mjs\";\nimport { N as NcEmptyContent } from \"./NcEmptyContent-CGAPqk4S.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-BOVpFVQz.mjs\";\nconst _sfc_main$5 = {\n name: \"DockRightIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$5 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$3 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$3 = { d: \"M20 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V6A2 2 0 0 0 20 4M15 18H4V6H15Z\" };\nconst _hoisted_4$3 = { key: 0 };\nfunction _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon dock-right-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$3, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$3))\n ], 16, _hoisted_1$5);\n}\nconst IconDockRight = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"render\", _sfc_render$4]]);\nconst _sfc_main$4 = {\n name: \"StarIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$4 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { d: \"M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z\" };\nconst _hoisted_4$2 = { key: 0 };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon star-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$2, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$2, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$2))\n ], 16, _hoisted_1$4);\n}\nconst IconStar = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$3 = {\n name: \"StarOutlineIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$3 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon star-outline-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$3);\n}\nconst IconStarOutline = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$2]]);\nconst _hoisted_1$2 = [\"aria-selected\", \"tabindex\"];\nconst _sfc_main$2 = /* @__PURE__ */ defineComponent({\n __name: \"NcAppSidebarTabsButton\",\n props: /* @__PURE__ */ mergeModels({\n tab: {}\n }, {\n \"selected\": { type: Boolean, ...{ required: true } },\n \"selectedModifiers\": {}\n }),\n emits: [\"update:selected\"],\n setup(__props) {\n const selected = useModel(__props, \"selected\");\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"button\", {\n class: normalizeClass([\"button-vue\", [_ctx.$style.sidebarTabsButton, {\n [_ctx.$style.sidebarTabsButton_selected]: selected.value,\n [_ctx.$style.sidebarTabsButton_legacy]: unref(isLegacy34)\n }]]),\n role: \"tab\",\n \"aria-selected\": selected.value,\n tabindex: selected.value ? 0 : -1,\n onClick: _cache[0] || (_cache[0] = ($event) => selected.value = true)\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.$style.sidebarTabsButton__icon)\n }, [\n createVNode(_sfc_main$6, {\n vnodes: __props.tab.renderIcon()\n }, {\n default: withCtx(() => [\n createElementVNode(\"span\", {\n class: normalizeClass([_ctx.$style.sidebarTabsButton__legacyIcon, __props.tab.icon])\n }, null, 2)\n ]),\n _: 1\n }, 8, [\"vnodes\"])\n ], 2),\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.$style.sidebarTabsButton__name)\n }, toDisplayString(__props.tab.name), 3)\n ], 10, _hoisted_1$2);\n };\n }\n});\nconst sidebarTabsButton = \"_sidebarTabsButton_6hxfz\";\nconst sidebarTabsButton_legacy = \"_sidebarTabsButton_legacy_Qp20k\";\nconst sidebarTabsButton_selected = \"_sidebarTabsButton_selected_eBHM-\";\nconst sidebarTabsButton__name = \"_sidebarTabsButton__name_YlW5S\";\nconst sidebarTabsButton__icon = \"_sidebarTabsButton__icon_MPS-D\";\nconst sidebarTabsButton__legacyIcon = \"_sidebarTabsButton__legacyIcon_rzPOu\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_m4vbX\",\n sidebarTabsButton,\n sidebarTabsButton_legacy,\n sidebarTabsButton_selected,\n sidebarTabsButton__name,\n sidebarTabsButton__icon,\n sidebarTabsButton__legacyIcon\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcAppSidebarTabsButton = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"__cssModules\", cssModules]]);\nconst _sfc_main$1 = {\n name: \"NcAppSidebarTabs\",\n components: {\n NcAppSidebarTabsButton\n },\n provide() {\n return {\n registerTab: this.registerTab,\n unregisterTab: this.unregisterTab,\n // Getter as an alternative to Vue 2.7 computed(() => this.activeTab)\n getActiveTab: () => this.activeTab,\n // Used to check whether the tab header is shown so the tabs can reference the tab header for `aria-labelledby` or not\n isTablistShown: () => this.hasMultipleTabs\n };\n },\n props: {\n /**\n * Id of the tab to activate\n */\n active: {\n type: String,\n default: \"\"\n },\n /**\n * Force the tab navigation to display even if there is only one tab\n */\n forceTabs: {\n type: Boolean,\n default: false\n }\n },\n emits: [\"update:active\"],\n data(props) {\n return {\n /**\n * Tab descriptions from the passed NcSidebarTab components' props to build the tab navbar from.\n */\n tabs: [],\n /**\n * Local active (open) tab's ID. It allows to use component without v-model:active\n */\n activeTab: props.active,\n isLegacy34\n };\n },\n computed: {\n /**\n * Has multiple tabs. If only one tab - its content is shown without navigation\n *\n * @return {boolean}\n */\n hasMultipleTabs() {\n return this.tabs.length > 1;\n },\n showForSingleTab() {\n return this.forceTabs && this.tabs.length === 1;\n },\n currentTabIndex() {\n return this.tabs.findIndex((tab) => tab.id === this.activeTab);\n }\n },\n watch: {\n tabs() {\n if (this.active) {\n this.updateActive();\n }\n },\n active(active) {\n if (active !== this.activeTab) {\n this.updateActive();\n }\n }\n },\n methods: {\n /**\n * Set the current active tab\n *\n * @param {string} id the id of the tab\n */\n setActive(id) {\n this.activeTab = id;\n this.$emit(\"update:active\", this.activeTab);\n },\n /**\n * Focus the previous tab\n * and emit to the parent component\n */\n focusPreviousTab() {\n if (this.currentTabIndex > 0) {\n this.setActive(this.tabs[this.currentTabIndex - 1].id);\n }\n this.focusActiveTab();\n },\n /**\n * Focus the next tab\n * and emit to the parent component\n */\n focusNextTab() {\n if (this.currentTabIndex < this.tabs.length - 1) {\n this.setActive(this.tabs[this.currentTabIndex + 1].id);\n }\n this.focusActiveTab();\n },\n /**\n * Focus the first tab\n * and emit to the parent component\n */\n focusFirstTab() {\n this.setActive(this.tabs[0].id);\n this.focusActiveTab();\n },\n /**\n * Focus the last tab\n * and emit to the parent component\n */\n focusLastTab() {\n this.setActive(this.tabs[this.tabs.length - 1].id);\n this.focusActiveTab();\n },\n /**\n * Focus the current active tab\n */\n focusActiveTab() {\n this.$el.querySelector(`#tab-button-${this.activeTab}`).focus();\n },\n /**\n * Focus the content on tab\n * see aria accessibility guidelines\n */\n focusActiveTabContent() {\n this.$el.querySelector(\"#tab-\" + this.activeTab).focus();\n },\n /**\n * Update the current active tab\n */\n updateActive() {\n this.activeTab = this.active && this.tabs.some(({ id }) => id === this.active) ? this.active : this.tabs[0]?.id ?? \"\";\n },\n /**\n * Register child tab in the tabs\n *\n * @param {object} tab child tab passed to slot\n */\n registerTab(tab) {\n this.tabs.push(tab);\n this.tabs.sort((a, b) => {\n if (a.order === b.order) {\n return a.name.localeCompare(b.name, [getCanonicalLocale()]);\n }\n return a.order - b.order;\n });\n this.updateActive();\n },\n /**\n * Unregister child tab from the tabs\n *\n * @param {string} id tab's id\n */\n unregisterTab(id) {\n const tabIndex = this.tabs.findIndex((tab) => tab.id === id);\n if (tabIndex !== -1) {\n this.tabs.splice(tabIndex, 1);\n }\n if (this.activeTab === id) {\n this.updateActive();\n }\n }\n }\n};\nconst _hoisted_1$1 = { class: \"app-sidebar-tabs\" };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAppSidebarTabsButton = resolveComponent(\"NcAppSidebarTabsButton\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n $options.hasMultipleTabs || $options.showForSingleTab ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n role: \"tablist\",\n class: normalizeClass([\"app-sidebar-tabs__nav\", { \"app-sidebar-tabs__nav--legacy\": $data.isLegacy34 }]),\n onKeydown: [\n _cache[0] || (_cache[0] = withKeys(withModifiers((...args) => $options.focusPreviousTab && $options.focusPreviousTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"left\"])),\n _cache[1] || (_cache[1] = withKeys(withModifiers((...args) => $options.focusNextTab && $options.focusNextTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"right\"])),\n _cache[2] || (_cache[2] = withKeys(withModifiers((...args) => $options.focusActiveTabContent && $options.focusActiveTabContent(...args), [\"exact\", \"prevent\", \"stop\"]), [\"tab\"])),\n _cache[3] || (_cache[3] = withKeys(withModifiers((...args) => $options.focusFirstTab && $options.focusFirstTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"home\"])),\n _cache[4] || (_cache[4] = withKeys(withModifiers((...args) => $options.focusLastTab && $options.focusLastTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"end\"])),\n _cache[5] || (_cache[5] = withKeys(withModifiers((...args) => $options.focusFirstTab && $options.focusFirstTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"page-up\"])),\n _cache[6] || (_cache[6] = withKeys(withModifiers((...args) => $options.focusLastTab && $options.focusLastTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"page-down\"]))\n ]\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($data.tabs, (tab) => {\n return openBlock(), createBlock(_component_NcAppSidebarTabsButton, {\n id: `tab-button-${tab.id}`,\n key: tab.id,\n class: \"app-sidebar-tabs__tab\",\n \"aria-controls\": `tab-${tab.id}`,\n selected: $data.activeTab === tab.id,\n tab,\n \"onUpdate:selected\": ($event) => $options.setActive(tab.id)\n }, null, 8, [\"id\", \"aria-controls\", \"selected\", \"tab\", \"onUpdate:selected\"]);\n }), 128))\n ], 34)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-sidebar-tabs__content\", { \"app-sidebar-tabs__content--multiple\": $options.hasMultipleTabs }])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 2)\n ]);\n}\nconst NcAppSidebarTabs = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-e74d1502\"]]);\nregister(t15);\nconst _sfc_main = {\n name: \"NcAppSidebar\",\n components: {\n NcActions,\n NcAppSidebarHeader: _sfc_main$7,\n NcAppSidebarTabs,\n NcButton,\n NcLoadingIcon,\n NcEmptyContent,\n IconArrowRight,\n IconClose,\n IconDockRight,\n IconStar,\n IconStarOutline\n },\n directives: {\n Focus: directive,\n /** @type {import('vue').ObjectDirective} */\n ClickOutside: vOnClickOutside\n },\n inject: {\n ncContentSelector: {\n from: CONTENT_SELECTOR_KEY,\n default: void 0\n }\n },\n props: {\n /**\n * The active tab\n */\n active: {\n type: String,\n default: \"\"\n },\n /**\n * Main text of the sidebar\n */\n name: {\n type: String,\n required: true\n },\n /**\n * Allow to edit the sidebar name.\n */\n nameEditable: {\n type: Boolean,\n default: false\n },\n /**\n * Placeholder in the edit field if the name is editable.\n */\n namePlaceholder: {\n type: String,\n default: \"\"\n },\n /**\n * Secondary name of the sidebar (subline)\n */\n subname: {\n type: String,\n default: \"\"\n },\n /**\n * Title to display for the subname.\n */\n subtitle: {\n type: String,\n default: \"\"\n },\n /**\n * Url to the top header background image\n * Applied with css\n */\n background: {\n type: String,\n default: \"\"\n },\n /**\n * Enable the favourite icon if not null\n * See fired events\n */\n starred: {\n type: Boolean,\n default: null\n },\n /**\n * Show loading spinner instead of the star icon\n */\n starLoading: {\n type: Boolean,\n default: false\n },\n /**\n * Show loading spinner instead of tabs\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Display the sidebar in compact mode\n */\n compact: {\n type: Boolean,\n default: false\n },\n /**\n * Only display close button and default slot content.\n * Don't display other header content and primary and secondary actions.\n * Useful when showing the EmptyContent component as content.\n */\n empty: {\n type: Boolean,\n default: false\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Force the tab navigation to display even if there is only one tab\n */\n forceTabs: {\n type: Boolean,\n default: false\n },\n /**\n * Linkify the name\n */\n linkifyName: {\n type: Boolean,\n default: false\n },\n /**\n * Title to display for the name.\n * Can be set to the same text in case it's too long.\n */\n title: {\n type: String,\n default: \"\"\n },\n /**\n * Allow to conditionally show the sidebar\n * You can also use `v-if` on the sidebar, but using the open prop allow to keep\n * the sidebar inside the DOM for performance if it is opened and closed multiple times.\n *\n * When using the `open` property to close the sidebar a built-in toggle button will be shown to reopen it,\n * similar to the app navigation. You can remove this button with the `no-toggle` prop.\n */\n open: {\n type: Boolean,\n default: true\n },\n /**\n * Custom classes to assign to the sidebar toggle button.\n * If needed this can be used to assign styles to the button using `:deep()` selector.\n */\n toggleClasses: {\n type: [String, Array, Object],\n default: \"\"\n },\n /**\n * Custom attrs to assign to the sidebar toggle button.\n */\n toggleAttrs: {\n type: Object,\n default: void 0\n },\n /**\n * Do not add the built-in toggle button with `open` prop.\n */\n noToggle: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"close\",\n \"closed\",\n \"opened\",\n // 'figureClick', not emitted on purpose to make \"hasFigureClickListener\" work\n \"update:active\",\n \"update:name\",\n \"update:nameEditable\",\n \"update:open\",\n \"update:starred\",\n \"submitName\",\n \"dismissEditing\"\n ],\n setup() {\n const headerRef = ref(null);\n provide(\"NcAppSidebar:header:ref\", headerRef);\n return {\n uid: createElementId(),\n isMobile: useIsSmallMobile(),\n headerRef\n };\n },\n data() {\n return {\n changeNameTranslated: t(\"Change name\"),\n closeTranslated: t(\"Close sidebar\"),\n favoriteTranslated: t(\"Favorite\"),\n isStarred: this.starred,\n focusTrap: null,\n elementToReturnFocus: null\n };\n },\n computed: {\n canStar() {\n return this.isStarred !== null;\n },\n hasFigureClickListener() {\n return !!this.$attrs.onFigureClick;\n }\n },\n watch: {\n starred() {\n this.isStarred = this.starred;\n },\n isMobile() {\n this.toggleFocusTrap();\n },\n open() {\n this.checkToggleButtonContainerAvailability();\n }\n },\n created() {\n this.preserveElementToReturnFocus();\n this.checkToggleButtonContainerAvailability();\n },\n beforeUnmount() {\n this.$emit(\"closed\");\n this.focusTrap?.deactivate();\n },\n methods: {\n isSlotPopulated,\n t,\n preserveElementToReturnFocus() {\n if (document.activeElement && document.activeElement !== document.body) {\n this.elementToReturnFocus = document.activeElement;\n if (this.elementToReturnFocus.getAttribute(\"role\") === \"menuitem\") {\n const menu = this.elementToReturnFocus.closest('[role=\"menu\"]');\n if (menu) {\n const menuTrigger = document.querySelector(`[aria-controls=\"${menu.id}\"]`);\n this.elementToReturnFocus = menuTrigger;\n }\n }\n }\n },\n initFocusTrap() {\n if (this.focusTrap) {\n return;\n }\n this.focusTrap = createFocusTrap([\n // The sidebar itself\n this.$refs.sidebar,\n // Nextcloud Server header navigation\n document.querySelector(\"#header\")\n ], {\n allowOutsideClick: true,\n fallbackFocus: this.$refs.closeButton.$el,\n trapStack: getTrapStack(),\n escapeDeactivates: false\n });\n },\n /**\n * Activate focus trap if it is currently needed, otherwise deactivate\n */\n toggleFocusTrap() {\n if (this.open && this.isMobile) {\n this.initFocusTrap();\n this.focusTrap.activate();\n } else {\n this.focusTrap?.deactivate();\n }\n },\n /**\n * Close the sidebar on pressing the escape key on mobile\n *\n * @param {KeyboardEvent} event key down event\n */\n onKeydownEsc(event) {\n if (this.isMobile) {\n event.stopPropagation();\n this.closeSidebar();\n }\n },\n onAfterEnter(element) {\n if (this.elementToReturnFocus) {\n this.focus();\n }\n this.toggleFocusTrap();\n this.$emit(\"opened\", element);\n },\n onAfterLeave(element) {\n this.$emit(\"closed\", element);\n this.toggleFocusTrap();\n this.elementToReturnFocus?.focus({ focusVisible: true });\n this.elementToReturnFocus = null;\n },\n /**\n * Used to tell parent component the user asked to close the sidebar\n *\n * @param {Event} e close icon click event\n */\n closeSidebar(e) {\n this.$emit(\"close\", e);\n this.$emit(\"update:open\", false);\n },\n /**\n * Emit figure click event to parent component\n *\n * @param {Event} e click event\n */\n onFigureClick(e) {\n this.$emit(\"figureClick\", e);\n },\n /**\n * Toggle the favourite state\n * and emit to the parent component\n */\n toggleStarred() {\n this.isStarred = !this.isStarred;\n this.$emit(\"update:starred\", this.isStarred);\n },\n async editName() {\n this.$emit(\"update:nameEditable\", true);\n if (this.nameEditable) {\n await this.$nextTick();\n this.$refs.nameInput.focus();\n }\n },\n /**\n * Focus the sidebar\n *\n * @public\n */\n focus() {\n if (!this.open && !this.noToggle) {\n this.$refs.toggle.$el.focus();\n return;\n }\n try {\n this.headerRef.focus();\n } catch {\n warn(\"NcAppSidebar should have focusable header for accessibility reasons. Use NcAppSidebarHeader component.\");\n }\n },\n /**\n * Focus the active tab\n *\n * @public\n */\n focusActiveTabContent() {\n this.preserveElementToReturnFocus();\n this.$refs.tabs.focusActiveTabContent();\n },\n /**\n * Check if the toggle button container is available\n */\n checkToggleButtonContainerAvailability() {\n if (this.open === false && !this.noToggle && !this.ncContentSelector) {\n logger.warn(\"[NcAppSidebar] It looks like you want to use NcAppSidebar with the built-in toggle button. This feature is only available when NcAppSidebar is used in NcContent.\");\n }\n },\n /**\n * Emit name change event to parent component\n *\n * @param {Event} event input event\n */\n onNameInput(event) {\n this.$emit(\"update:name\", event.target.value);\n },\n /**\n * Emit when the name form edit confirm button is pressed in order\n * to change the name.\n *\n * @param {Event} event submit event\n */\n onSubmitName(event) {\n this.$emit(\"update:nameEditable\", false);\n this.$emit(\"submitName\", event);\n },\n onDismissEditing() {\n this.$emit(\"update:nameEditable\", false);\n this.$emit(\"dismissEditing\");\n },\n onUpdateActive(activeTab) {\n this.$emit(\"update:active\", activeTab);\n }\n }\n};\nconst _hoisted_1 = [\"aria-labelledby\"];\nconst _hoisted_2 = { class: \"app-sidebar-header__info\" };\nconst _hoisted_3 = {\n key: 0,\n class: \"app-sidebar-header__tertiary-actions\"\n};\nconst _hoisted_4 = { class: \"app-sidebar-header__name-container\" };\nconst _hoisted_5 = { class: \"app-sidebar-header__mainname-container\" };\nconst _hoisted_6 = [\"placeholder\", \"value\"];\nconst _hoisted_7 = [\"title\"];\nconst _hoisted_8 = {\n key: 2,\n class: \"app-sidebar-header__description\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_IconDockRight = resolveComponent(\"IconDockRight\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_IconStar = resolveComponent(\"IconStar\");\n const _component_IconStarOutline = resolveComponent(\"IconStarOutline\");\n const _component_NcAppSidebarHeader = resolveComponent(\"NcAppSidebarHeader\");\n const _component_IconArrowRight = resolveComponent(\"IconArrowRight\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n const _component_IconClose = resolveComponent(\"IconClose\");\n const _component_NcAppSidebarTabs = resolveComponent(\"NcAppSidebarTabs\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n const _directive_focus = resolveDirective(\"focus\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return openBlock(), createBlock(Transition, {\n appear: \"\",\n name: \"slide-right\",\n onAfterEnter: $options.onAfterEnter,\n onAfterLeave: $options.onAfterLeave\n }, {\n default: withCtx(() => [\n withDirectives(createElementVNode(\"aside\", {\n id: \"app-sidebar-vue\",\n ref: \"sidebar\",\n class: \"app-sidebar\",\n \"aria-labelledby\": `app-sidebar-vue-${$setup.uid}__header`,\n onKeydown: _cache[6] || (_cache[6] = withKeys((...args) => $options.onKeydownEsc && $options.onKeydownEsc(...args), [\"esc\"]))\n }, [\n $options.ncContentSelector && !$props.open && !$props.noToggle ? (openBlock(), createBlock(Teleport, {\n key: 0,\n to: $options.ncContentSelector\n }, [\n createVNode(_component_NcButton, mergeProps({\n ref: \"toggle\",\n \"aria-label\": $options.t(\"Open sidebar\"),\n class: [\"app-sidebar__toggle\", $props.toggleClasses],\n variant: \"tertiary\"\n }, $props.toggleAttrs, {\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"update:open\", true))\n }), {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"toggle-icon\", {}, () => [\n createVNode(_component_IconDockRight, { size: 20 })\n ], true)\n ]),\n _: 3\n }, 16, [\"aria-label\", \"class\"])\n ], 8, [\"to\"])) : createCommentVNode(\"\", true),\n createElementVNode(\"header\", {\n class: normalizeClass([\"app-sidebar-header\", {\n \"app-sidebar-header--with-figure\": $options.isSlotPopulated(_ctx.$slots.header?.()) || $props.background,\n \"app-sidebar-header--compact\": $props.compact\n }])\n }, [\n !$props.empty ? renderSlot(_ctx.$slots, \"info\", { key: 0 }, () => [\n createElementVNode(\"div\", _hoisted_2, [\n $options.isSlotPopulated(_ctx.$slots.header?.()) || $props.background ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"app-sidebar-header__figure\", {\n \"app-sidebar-header__figure--with-action\": $options.hasFigureClickListener\n }]),\n style: normalizeStyle({\n backgroundImage: `url(${$props.background})`\n }),\n tabindex: \"0\",\n onClick: _cache[1] || (_cache[1] = (...args) => $options.onFigureClick && $options.onFigureClick(...args)),\n onKeydown: _cache[2] || (_cache[2] = withKeys((...args) => $options.onFigureClick && $options.onFigureClick(...args), [\"enter\"]))\n }, [\n renderSlot(_ctx.$slots, \"header\", { class: \"app-sidebar-header__background\" }, void 0, true)\n ], 38)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-sidebar-header__desc\", {\n \"app-sidebar-header__desc--with-tertiary-action\": $options.canStar || $options.isSlotPopulated(_ctx.$slots[\"tertiary-actions\"]?.()),\n \"app-sidebar-header__desc--editable\": $props.nameEditable && !$props.subname,\n \"app-sidebar-header__desc--with-subname--editable\": $props.nameEditable && $props.subname,\n \"app-sidebar-header__desc--without-actions\": !$options.isSlotPopulated(_ctx.$slots[\"secondary-actions\"]?.())\n }])\n }, [\n $options.canStar || $options.isSlotPopulated(_ctx.$slots[\"tertiary-actions\"]?.()) ? (openBlock(), createElementBlock(\"div\", _hoisted_3, [\n renderSlot(_ctx.$slots, \"tertiary-actions\", {}, () => [\n $options.canStar ? (openBlock(), createBlock(_component_NcButton, {\n key: 0,\n \"aria-label\": $data.favoriteTranslated,\n pressed: $data.isStarred,\n class: \"app-sidebar-header__star\",\n variant: \"secondary\",\n onClick: withModifiers($options.toggleStarred, [\"prevent\"])\n }, {\n icon: withCtx(() => [\n $props.starLoading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : $data.isStarred ? (openBlock(), createBlock(_component_IconStar, {\n key: 1,\n size: 20\n })) : (openBlock(), createBlock(_component_IconStarOutline, {\n key: 2,\n size: 20\n }))\n ]),\n _: 1\n }, 8, [\"aria-label\", \"pressed\", \"onClick\"])) : createCommentVNode(\"\", true)\n ], true)\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_4, [\n createElementVNode(\"div\", _hoisted_5, [\n withDirectives(createVNode(_component_NcAppSidebarHeader, {\n class: \"app-sidebar-header__mainname\",\n name: $props.name,\n linkify: $props.linkifyName,\n title: $props.title,\n tabindex: $props.nameEditable ? 0 : -1,\n onClick: withModifiers($options.editName, [\"self\"])\n }, null, 8, [\"name\", \"linkify\", \"title\", \"tabindex\", \"onClick\"]), [\n [vShow, !$props.nameEditable]\n ]),\n $props.nameEditable ? withDirectives((openBlock(), createElementBlock(\"form\", {\n key: 0,\n class: \"app-sidebar-header__mainname-form\",\n onSubmit: _cache[5] || (_cache[5] = withModifiers((...args) => $options.onSubmitName && $options.onSubmitName(...args), [\"prevent\"]))\n }, [\n withDirectives(createElementVNode(\"input\", {\n ref: \"nameInput\",\n class: \"app-sidebar-header__mainname-input\",\n type: \"text\",\n placeholder: $props.namePlaceholder,\n value: $props.name,\n onKeydown: _cache[3] || (_cache[3] = withKeys(withModifiers((...args) => $options.onDismissEditing && $options.onDismissEditing(...args), [\"stop\"]), [\"esc\"])),\n onInput: _cache[4] || (_cache[4] = (...args) => $options.onNameInput && $options.onNameInput(...args))\n }, null, 40, _hoisted_6), [\n [_directive_focus]\n ]),\n createVNode(_component_NcButton, {\n \"aria-label\": $data.changeNameTranslated,\n type: \"submit\",\n variant: \"tertiary-no-background\"\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconArrowRight, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\"])\n ], 32)), [\n [_directive_click_outside, () => $options.onSubmitName()]\n ]) : createCommentVNode(\"\", true),\n $options.isSlotPopulated(_ctx.$slots[\"secondary-actions\"]?.()) ? (openBlock(), createBlock(_component_NcActions, {\n key: 1,\n class: \"app-sidebar-header__menu\",\n forceMenu: $props.forceMenu\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"secondary-actions\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"forceMenu\"])) : createCommentVNode(\"\", true)\n ]),\n $props.subname.trim() !== \"\" || _ctx.$slots[\"subname\"] ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n title: $props.subtitle || void 0,\n class: \"app-sidebar-header__subname\"\n }, [\n renderSlot(_ctx.$slots, \"subname\", {}, () => [\n createTextVNode(toDisplayString($props.subname), 1)\n ], true)\n ], 8, _hoisted_7)) : createCommentVNode(\"\", true)\n ])\n ], 2)\n ])\n ], true) : (openBlock(), createBlock(_component_NcAppSidebarHeader, {\n key: 1,\n class: \"app-sidebar-header__mainname--hidden\",\n name: $props.name,\n tabindex: \"-1\"\n }, null, 8, [\"name\"])),\n createVNode(_component_NcButton, {\n ref: \"closeButton\",\n \"aria-label\": $data.closeTranslated,\n title: $data.closeTranslated,\n class: \"app-sidebar__close\",\n variant: \"tertiary\",\n onClick: withModifiers($options.closeSidebar, [\"prevent\"])\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconClose, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"]),\n $options.isSlotPopulated(_ctx.$slots.description?.()) && !$props.empty ? (openBlock(), createElementBlock(\"div\", _hoisted_8, [\n renderSlot(_ctx.$slots, \"description\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 2),\n withDirectives(createVNode(_component_NcAppSidebarTabs, {\n ref: \"tabs\",\n active: $props.active,\n forceTabs: $props.forceTabs,\n \"onUpdate:active\": $options.onUpdateActive\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"active\", \"forceTabs\", \"onUpdate:active\"]), [\n [vShow, !$props.loading]\n ]),\n $props.loading ? (openBlock(), createBlock(_component_NcEmptyContent, { key: 1 }, {\n icon: withCtx(() => [\n createVNode(_component_NcLoadingIcon, { size: 64 })\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ], 40, _hoisted_1), [\n [vShow, $props.open]\n ])\n ]),\n _: 3\n }, 8, [\"onAfterEnter\", \"onAfterLeave\"]);\n}\nconst NcAppSidebar = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-e8979b7f\"]]);\nexport {\n NcAppSidebar as N\n};\n//# sourceMappingURL=NcAppSidebar-Ch7Vp7q5.mjs.map\n","import PQueue from \"p-queue\";\nconst queue = new PQueue({ concurrency: 5 });\nfunction preloadImage(url) {\n const { resolve, promise } = Promise.withResolvers();\n queue.add(() => {\n const image = new Image();\n image.onerror = () => resolve(false);\n image.onload = () => resolve(true);\n image.src = url;\n return promise;\n });\n return promise;\n}\nexport {\n preloadImage\n};\n//# sourceMappingURL=index.mjs.map\n","import '../assets/NcCollectionList-e5JFvzqX.css';\nimport debounce from \"debounce\";\nimport { resolveComponent, openBlock, createElementBlock, createVNode, toDisplayString, withModifiers, normalizeClass, withDirectives, createElementVNode, vModelText, Fragment, renderList, createBlock, resolveDynamicComponent, withCtx, createCommentVNode, createTextVNode, Transition, ref } from \"vue\";\nimport { r as register, L as t28, a as t, M as t6 } from \"./_l10n-CG4CuN3H.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-BO5T5ePT.mjs\";\nimport { N as NcActions } from \"./NcActions-CUmcZ3C3.mjs\";\nimport { N as NcAvatar } from \"./NcAvatar-M3-CbKbq.mjs\";\nimport { g as getRoute } from \"./autolink-BT8u-IL-.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { N as NcSelect } from \"./NcSelect-BOFzoCwK.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nregister(t28);\nconst _sfc_main$1 = {\n name: \"NcCollectionListItem\",\n components: {\n NcAvatar,\n NcActions,\n NcActionButton\n },\n props: {\n /**\n * The collection\n */\n collection: {\n type: Object,\n default: null\n },\n /**\n * Current error if any\n */\n error: {\n type: String,\n default: void 0\n }\n },\n emits: [\n \"removeResource\",\n \"renameCollection\"\n ],\n data() {\n return {\n detailsOpen: false,\n newName: null\n };\n },\n computed: {\n getIcon() {\n return (resource) => [resource.iconClass];\n },\n typeClass() {\n return (resource) => \"resource-type-\" + resource.type;\n },\n resources() {\n return this.collection.resources?.filter((resource) => !Array.isArray(resource)) ?? [];\n },\n getComponent() {\n return (resource) => {\n const route = getRoute(this.$router, resource.link);\n return route ? { component: \"router-link\", to: route, href: void 0 } : { component: \"a\", to: void 0, href: resource.link };\n };\n },\n iconUrl() {\n return (resource) => {\n if (resource.mimetype) {\n return OC.MimeType.getIconUrl(resource.mimetype);\n }\n if (resource.iconUrl) {\n return resource.iconUrl;\n }\n return \"\";\n };\n }\n },\n methods: {\n t,\n toggleDetails() {\n this.detailsOpen = !this.detailsOpen;\n },\n showDetails() {\n this.detailsOpen = true;\n },\n removeResource(collection, resource) {\n this.$emit(\"removeResource\", {\n collectionId: collection.id,\n resourceType: resource.type,\n resourceId: resource.id\n });\n },\n openRename() {\n this.newName = this.collection.name;\n },\n renameCollection() {\n if (this.newName) {\n this.$emit(\"renameCollection\", {\n collectionId: this.collection.id,\n name: this.newName\n });\n }\n this.newName = null;\n }\n }\n};\nconst _hoisted_1$1 = { class: \"collection-list-item\" };\nconst _hoisted_2$1 = {\n key: 2,\n class: \"linked-icons\"\n};\nconst _hoisted_3$1 = [\"src\", \"alt\"];\nconst _hoisted_4$1 = {\n key: 3,\n class: \"sharingOptionsGroup\"\n};\nconst _hoisted_5$1 = {\n key: 0,\n class: \"error\"\n};\nconst _hoisted_6$1 = {\n key: 0,\n class: \"resource-list-details\"\n};\nconst _hoisted_7$1 = [\"src\", \"alt\"];\nconst _hoisted_8$1 = { class: \"resource-name\" };\nconst _hoisted_9 = [\"onClick\"];\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAvatar = resolveComponent(\"NcAvatar\");\n const _component_NcActionButton = resolveComponent(\"NcActionButton\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n return openBlock(), createElementBlock(\"li\", _hoisted_1$1, [\n createVNode(_component_NcAvatar, {\n displayName: $props.collection.name,\n allowPlaceholder: \"\",\n class: \"collection-avatar\"\n }, null, 8, [\"displayName\"]),\n $data.newName === null ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n class: \"collection-item-name\",\n title: \"\",\n onClick: _cache[0] || (_cache[0] = (...args) => $options.showDetails && $options.showDetails(...args))\n }, toDisplayString($props.collection.name), 1)) : (openBlock(), createElementBlock(\"form\", {\n key: 1,\n class: normalizeClass({ \"should-shake\": $props.error }),\n onSubmit: _cache[2] || (_cache[2] = withModifiers((...args) => $options.renameCollection && $options.renameCollection(...args), [\"prevent\"]))\n }, [\n withDirectives(createElementVNode(\"input\", {\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => $data.newName = $event),\n type: \"text\",\n autocomplete: \"off\",\n autocapitalize: \"off\"\n }, null, 512), [\n [vModelText, $data.newName]\n ]),\n _cache[3] || (_cache[3] = createElementVNode(\"input\", {\n type: \"submit\",\n value: \"\",\n class: \"icon-confirm\"\n }, null, -1))\n ], 34)),\n !$data.detailsOpen && $data.newName === null ? (openBlock(), createElementBlock(\"div\", _hoisted_2$1, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.resources.slice(0, 2), (resource) => {\n return openBlock(), createBlock(resolveDynamicComponent($options.getComponent(resource).component), {\n key: resource.type + \"|\" + resource.id,\n title: resource.name,\n to: $options.getComponent(resource).to,\n href: $options.getComponent(resource).href,\n class: normalizeClass($options.typeClass(resource))\n }, {\n default: withCtx(() => [\n createElementVNode(\"img\", {\n src: $options.iconUrl(resource),\n alt: resource.name\n }, null, 8, _hoisted_3$1)\n ]),\n _: 2\n }, 1032, [\"title\", \"to\", \"href\", \"class\"]);\n }), 128))\n ])) : createCommentVNode(\"\", true),\n $data.newName === null ? (openBlock(), createElementBlock(\"span\", _hoisted_4$1, [\n createVNode(_component_NcActions, null, {\n default: withCtx(() => [\n createVNode(_component_NcActionButton, {\n icon: \"icon-info\",\n onClick: withModifiers($options.toggleDetails, [\"prevent\"])\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString($data.detailsOpen ? $options.t(\"Hide details\") : $options.t(\"Show details\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n createVNode(_component_NcActionButton, {\n icon: \"icon-rename\",\n onClick: withModifiers($options.openRename, [\"prevent\"])\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString($options.t(\"Rename project\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n _: 1\n })\n ])) : createCommentVNode(\"\", true),\n createVNode(Transition, { name: \"fade\" }, {\n default: withCtx(() => [\n $props.error ? (openBlock(), createElementBlock(\"div\", _hoisted_5$1, toDisplayString($props.error), 1)) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n createVNode(Transition, { name: \"fade\" }, {\n default: withCtx(() => [\n $data.detailsOpen ? (openBlock(), createElementBlock(\"ul\", _hoisted_6$1, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.resources, (resource) => {\n return openBlock(), createElementBlock(\"li\", {\n key: resource.type + \"|\" + resource.id,\n class: normalizeClass($options.typeClass(resource))\n }, [\n (openBlock(), createBlock(resolveDynamicComponent($options.getComponent(resource).component), {\n to: $options.getComponent(resource).to,\n href: $options.getComponent(resource).href\n }, {\n default: withCtx(() => [\n createElementVNode(\"img\", {\n src: $options.iconUrl(resource),\n alt: resource.name\n }, null, 8, _hoisted_7$1),\n createElementVNode(\"span\", _hoisted_8$1, toDisplayString(resource.name || \"\"), 1)\n ]),\n _: 2\n }, 1032, [\"to\", \"href\"])),\n createElementVNode(\"span\", {\n class: \"icon-close\",\n onClick: ($event) => $options.removeResource($props.collection, resource)\n }, null, 8, _hoisted_9)\n ], 2);\n }), 128))\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n })\n ]);\n}\nconst NcCollectionListItem = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-8ebb9fc1\"]]);\nregister(t6);\nfunction extractOcsData(response) {\n return response.data.ocs.data;\n}\nfunction renameCollectionService(collectionId, collectionName) {\n return axios.put(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), { collectionName }).then(extractOcsData);\n}\nfunction getCollectionsByResourceService(resourceType, resourceId) {\n return axios.get(generateOcsUrl(\"collaboration/resources/{resourceType}/{resourceId}\", { resourceType, resourceId })).then(extractOcsData);\n}\nfunction createCollectionService(resourceType, resourceId, name) {\n return axios.post(generateOcsUrl(\"collaboration/resources/{resourceType}/{resourceId}\", { resourceType, resourceId }), { name }).then(extractOcsData);\n}\nfunction addResourceService(collectionId, resourceType, resourceId) {\n return axios.post(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), { resourceType, resourceId }).then(extractOcsData);\n}\nfunction removeResourceService(collectionId, resourceType, resourceId) {\n return axios.delete(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), { params: { resourceType, resourceId } }).then(extractOcsData);\n}\nfunction searchService(query) {\n return axios.get(generateOcsUrl(\"collaboration/resources/collections/search/{query}\", { query })).then(extractOcsData);\n}\nfunction useCollections() {\n const storedCollections = ref([]);\n const addCollections = (collections) => {\n storedCollections.value = collections;\n };\n const addCollection = (collection) => {\n storedCollections.value.push(collection);\n };\n const removeCollection = (collectionId) => {\n storedCollections.value = storedCollections.value.filter((item) => item.id !== collectionId);\n };\n const updateCollection = (collection) => {\n const index = storedCollections.value.findIndex((item) => item.id === collection.id);\n if (index !== -1) {\n storedCollections.value[index] = collection;\n } else {\n addCollection(collection);\n }\n };\n const fetchCollectionsByResource = async ({ resourceType, resourceId }) => {\n const collections = await getCollectionsByResourceService(resourceType, resourceId);\n addCollections(collections);\n };\n const createCollection = async ({ baseResourceType, baseResourceId, resourceType, resourceId, name }) => {\n const collection = await createCollectionService(baseResourceType, baseResourceId, name);\n addCollection(collection);\n await addResourceToCollection({\n collectionId: collection.id,\n resourceType,\n resourceId\n });\n };\n const renameCollection = async ({ collectionId, name }) => {\n const collection = await renameCollectionService(collectionId, name);\n updateCollection(collection);\n };\n async function addResourceToCollection({ collectionId, resourceType, resourceId }) {\n const collection = await addResourceService(collectionId, resourceType, String(resourceId));\n updateCollection(collection);\n }\n const removeResourceFromCollection = async ({ collectionId, resourceType, resourceId }) => {\n const collection = await removeResourceService(collectionId, resourceType, String(resourceId));\n if (collection.resources.length > 0) {\n updateCollection(collection);\n } else {\n removeCollection(collectionId);\n }\n };\n return {\n storedCollections,\n fetchCollectionsByResource,\n createCollection,\n renameCollection,\n addResourceToCollection,\n removeResourceFromCollection\n };\n}\nconst METHOD_CREATE_COLLECTION = 0;\nconst METHOD_ADD_TO_COLLECTION = 1;\nconst _sfc_main = {\n name: \"NcCollectionList\",\n components: {\n NcCollectionListItem,\n NcAvatar,\n NcSelect\n },\n props: {\n /**\n * Resource type identifier\n */\n type: {\n type: String,\n default: null\n },\n /**\n * Unique id of the resource\n */\n id: {\n type: String,\n default: null\n },\n /**\n * Name of the resource\n */\n name: {\n type: String,\n default: \"\"\n },\n /**\n * Whether the component is active (to start fetch resources)\n */\n isActive: {\n type: Boolean,\n default: true\n }\n },\n setup() {\n const {\n storedCollections,\n fetchCollectionsByResource,\n createCollection,\n addResourceToCollection,\n removeResourceFromCollection,\n renameCollection\n } = useCollections();\n const searchCollections = ref([]);\n const search = debounce(function(query, loading) {\n if (query !== \"\") {\n loading(true);\n searchService(query).then((collections) => {\n searchCollections.value = collections;\n }).catch((error) => {\n logger.error(\"Failed to search for collections\", { error });\n }).finally(() => {\n loading(false);\n });\n }\n }, 500);\n return {\n storedCollections,\n fetchCollectionsByResource,\n createCollection,\n addResourceToCollection,\n removeResourceFromCollection,\n renameCollection,\n searchCollections,\n search\n };\n },\n data() {\n return {\n selectIsOpen: false,\n generatingCodes: false,\n codes: void 0,\n value: null,\n model: {},\n collectionsError: {},\n error: null,\n isSelectOpen: false\n };\n },\n computed: {\n collections() {\n return this.storedCollections.filter((collection) => collection.resources.some((resource) => resource && resource.id === String(this.id) && resource.type === this.type));\n },\n placeholder() {\n return this.isSelectOpen ? t(\"Type to search for existing projects\") : t(\"Add to a project\");\n },\n options() {\n const options = [];\n window.OCP.Collaboration.getTypes().sort().forEach((type) => {\n options.push({\n method: METHOD_CREATE_COLLECTION,\n type,\n title: window.OCP.Collaboration.getLabel(type),\n class: window.OCP.Collaboration.getIcon(type),\n action: () => window.OCP.Collaboration.trigger(type)\n });\n });\n for (const index in this.searchCollections) {\n if (!this.collections.find((collection) => collection.id === this.searchCollections[index].id)) {\n options.push({\n method: METHOD_ADD_TO_COLLECTION,\n title: this.searchCollections[index].name,\n collectionId: this.searchCollections[index].id\n });\n }\n }\n return options;\n },\n resourceIdentifier() {\n return {\n resourceType: this.type,\n resourceId: this.id,\n isActive: this.isActive\n };\n }\n },\n watch: {\n resourceIdentifier: {\n deep: true,\n immediate: true,\n handler(resourceIdentifier) {\n if (!resourceIdentifier.isActive || !resourceIdentifier.resourceId || !resourceIdentifier.resourceType) {\n return;\n }\n this.fetchCollectionsByResource(resourceIdentifier);\n }\n }\n },\n methods: {\n t,\n select(selectedOption) {\n if (selectedOption.method === METHOD_CREATE_COLLECTION) {\n selectedOption.action().then((resourceId) => {\n this.createCollection({\n baseResourceType: this.type,\n baseResourceId: this.id,\n resourceType: selectedOption.type,\n resourceId,\n name: this.name\n }).catch((e) => {\n this.setError(t(\"Failed to create a project\"), e);\n });\n }).catch((e) => {\n logger.error(\"[NcCollectionList] No resource selected\", e);\n });\n }\n if (selectedOption.method === METHOD_ADD_TO_COLLECTION) {\n this.addResourceToCollection({\n collectionId: selectedOption.collectionId,\n resourceType: this.type,\n resourceId: this.id\n }).catch((e) => {\n this.setError(t(\"Failed to add the item to the project\"), e);\n });\n }\n this.value = null;\n },\n showSelect() {\n this.selectIsOpen = true;\n this.$refs.select.$el.focus();\n },\n setError(error, e) {\n logger.error(error, { error: e });\n this.error = error;\n setTimeout(() => {\n this.error = null;\n }, 5e3);\n },\n renameCollectionFromItem({ collectionId, name }) {\n this.renameCollection({ collectionId, name }).catch((e) => {\n logger.error(t(\"Failed to rename the project\"), { error: e });\n this.collectionsError[collectionId] = t(\"Failed to rename the project\");\n setTimeout(() => {\n this.collectionsError[collectionId] = null;\n }, 5e3);\n });\n }\n }\n};\nconst _hoisted_1 = {\n key: 0,\n id: \"collection-list\",\n class: \"collection-list\"\n};\nconst _hoisted_2 = { id: \"collection-select-container\" };\nconst _hoisted_3 = { class: \"option__desc\" };\nconst _hoisted_4 = { class: \"option__title\" };\nconst _hoisted_5 = { class: \"option__wrapper\" };\nconst _hoisted_6 = { class: \"option__title\" };\nconst _hoisted_7 = { class: \"hint\" };\nconst _hoisted_8 = {\n key: 0,\n class: \"error\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAvatar = resolveComponent(\"NcAvatar\");\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n const _component_NcCollectionListItem = resolveComponent(\"NcCollectionListItem\");\n return $options.collections && $props.type && $props.id ? (openBlock(), createElementBlock(\"ul\", _hoisted_1, [\n createElementVNode(\"li\", {\n onClick: _cache[3] || (_cache[3] = (...args) => $options.showSelect && $options.showSelect(...args))\n }, [\n _cache[4] || (_cache[4] = createElementVNode(\"div\", { class: \"avatar\" }, [\n createElementVNode(\"span\", { class: \"icon-projects\" })\n ], -1)),\n createElementVNode(\"div\", _hoisted_2, [\n createVNode(_component_NcSelect, {\n ref: \"select\",\n modelValue: $data.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => $data.value = $event),\n \"aria-label-combobox\": $options.t(\"Add to a project\"),\n options: $options.options,\n placeholder: $options.placeholder,\n label: \"title\",\n limit: 5,\n onClose: _cache[1] || (_cache[1] = ($event) => $data.isSelectOpen = false),\n onOpen: _cache[2] || (_cache[2] = ($event) => $data.isSelectOpen = true),\n \"onOption:selected\": $options.select,\n onSearch: $setup.search\n }, {\n \"selected-option\": withCtx((option) => [\n createElementVNode(\"span\", _hoisted_3, [\n createElementVNode(\"span\", _hoisted_4, toDisplayString(option.title), 1)\n ])\n ]),\n option: withCtx((option) => [\n createElementVNode(\"span\", _hoisted_5, [\n option.class ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n class: normalizeClass([option.class, \"avatar\"])\n }, null, 2)) : option.method !== 2 ? (openBlock(), createBlock(_component_NcAvatar, {\n key: 1,\n allowPlaceholder: \"\",\n displayName: option.title\n }, null, 8, [\"displayName\"])) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_6, toDisplayString(option.title), 1)\n ])\n ]),\n default: withCtx(() => [\n createElementVNode(\"p\", _hoisted_7, toDisplayString($options.t(\"Connect items to a project to make them easier to find\")), 1)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"aria-label-combobox\", \"options\", \"placeholder\", \"onOption:selected\", \"onSearch\"])\n ])\n ]),\n createVNode(Transition, { name: \"fade\" }, {\n default: withCtx(() => [\n $data.error ? (openBlock(), createElementBlock(\"li\", _hoisted_8, toDisplayString($data.error), 1)) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.collections, (collection) => {\n return openBlock(), createBlock(_component_NcCollectionListItem, {\n key: collection.id,\n collection,\n error: $data.collectionsError[collection.id],\n onRenameCollection: $options.renameCollectionFromItem,\n onRemoveResource: $setup.removeResourceFromCollection\n }, null, 8, [\"collection\", \"error\", \"onRenameCollection\", \"onRemoveResource\"]);\n }), 128))\n ])) : createCommentVNode(\"\", true);\n}\nconst NcCollectionList = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-0e169eff\"]]);\nexport {\n NcCollectionList as N\n};\n//# sourceMappingURL=NcCollectionList-CO-iHqi6.mjs.map\n","import '../assets/NcDashboardWidget-nZuIL1UN.css';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, resolveComponent, createBlock, withCtx, renderSlot, createVNode, Fragment, renderList, toHandlers } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { r as register, z as t35, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { N as NcAvatar } from \"./NcAvatar-M3-CbKbq.mjs\";\nimport { N as NcDashboardWidgetItem } from \"./NcDashboardWidgetItem-BwwFiNOL.mjs\";\nimport { N as NcEmptyContent } from \"./NcEmptyContent-CGAPqk4S.mjs\";\nconst _sfc_main$1 = {\n name: \"CheckIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon check-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$1);\n}\nconst Check = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1]]);\nregister(t35);\nconst _sfc_main = {\n name: \"NcDashboardWidget\",\n components: {\n NcAvatar,\n NcDashboardWidgetItem,\n NcEmptyContent,\n Check\n },\n props: {\n /**\n * An array containing the items to show (specific structure must be respected,\n * except if you override item rendering in the default slot).\n */\n items: {\n type: Array,\n default: () => {\n return [];\n }\n },\n /**\n * If this is set, a \"show more\" text is displayed on the widget's bottom.\n * It's a link pointing to this URL.\n */\n showMoreUrl: {\n type: String,\n default: \"\"\n },\n /**\n * The text of show more button.\n *\n * Expected to be in the form \"More {itemName} …\"\n */\n showMoreLabel: {\n type: String,\n default: t(\"More items …\")\n },\n /**\n * A boolean to put the widget in a loading state.\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * An object containing context menu entries that will be displayed for each item.\n */\n itemMenu: {\n type: Object,\n default: () => {\n return {};\n }\n },\n /**\n * Whether both the items and the empty content message are shown.\n * Usefull for e.g. showing \"No mentions\" and a list of elements.\n */\n showItemsAndEmptyContent: {\n type: Boolean,\n default: false\n },\n /**\n * The text to show in the empty content area.\n */\n emptyContentMessage: {\n type: String,\n default: \"\"\n },\n /**\n * The text to show in the half empty content area.\n */\n halfEmptyContentMessage: {\n type: String,\n default: \"\"\n }\n },\n computed: {\n // forward menu events to my parent\n handlers() {\n const h = {};\n for (const evName in this.itemMenu) {\n h[evName] = (it) => {\n this.$emit(evName, it);\n };\n }\n return h;\n },\n displayedItems() {\n const nbItems = this.showMoreUrl && this.items.length >= this.maxItemNumber ? this.maxItemNumber - 1 : this.maxItemNumber;\n return this.items.slice(0, nbItems);\n },\n showHalfEmptyContentArea() {\n return this.showItemsAndEmptyContent && this.halfEmptyContentString && this.items.length !== 0;\n },\n halfEmptyContentString() {\n return this.halfEmptyContentMessage || this.emptyContentMessage;\n },\n maxItemNumber() {\n return this.showItemsAndEmptyContent ? 5 : 7;\n },\n showMore() {\n return this.showMoreUrl && this.items.length >= this.maxItemNumber;\n }\n }\n};\nconst _hoisted_1 = { class: \"dashboard-widget\" };\nconst _hoisted_2 = { key: 1 };\nconst _hoisted_3 = [\"href\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_Check = resolveComponent(\"Check\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n const _component_NcDashboardWidgetItem = resolveComponent(\"NcDashboardWidgetItem\");\n const _component_NcAvatar = resolveComponent(\"NcAvatar\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1, [\n $options.showHalfEmptyContentArea ? (openBlock(), createBlock(_component_NcEmptyContent, {\n key: 0,\n description: $options.halfEmptyContentString,\n class: \"half-screen\"\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"halfEmptyContentIcon\", {}, () => [\n createVNode(_component_Check)\n ], true)\n ]),\n _: 3\n }, 8, [\"description\"])) : createCommentVNode(\"\", true),\n createElementVNode(\"ul\", null, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.displayedItems, (item) => {\n return openBlock(), createElementBlock(\"li\", {\n key: item.id\n }, [\n renderSlot(_ctx.$slots, \"default\", { item }, () => [\n createVNode(_component_NcDashboardWidgetItem, mergeProps({ ref_for: true }, item, { itemMenu: $props.itemMenu }, toHandlers($options.handlers)), null, 16, [\"itemMenu\"])\n ], true)\n ]);\n }), 128))\n ]),\n $props.loading ? (openBlock(), createElementBlock(\"div\", _hoisted_2, [\n (openBlock(), createElementBlock(Fragment, null, renderList(7, (i) => {\n return createElementVNode(\"div\", {\n key: i,\n class: \"item-list__entry\"\n }, [\n createVNode(_component_NcAvatar, {\n class: \"item-avatar\",\n size: 44\n }),\n _cache[0] || (_cache[0] = createElementVNode(\"div\", { class: \"item__details\" }, [\n createElementVNode(\"h3\", null, \" \"),\n createElementVNode(\"p\", { class: \"message\" }, \"   \")\n ], -1))\n ]);\n }), 64))\n ])) : $props.items.length === 0 ? renderSlot(_ctx.$slots, \"empty-content\", { key: 2 }, () => [\n $props.emptyContentMessage ? (openBlock(), createBlock(_component_NcEmptyContent, {\n key: 0,\n description: $props.emptyContentMessage\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"emptyContentIcon\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"description\"])) : createCommentVNode(\"\", true)\n ], true) : $options.showMore ? (openBlock(), createElementBlock(\"a\", {\n key: 3,\n href: $props.showMoreUrl,\n target: \"_blank\",\n class: \"more\",\n tabindex: \"0\"\n }, toDisplayString($props.showMoreLabel), 9, _hoisted_3)) : createCommentVNode(\"\", true)\n ]);\n}\nconst NcDashboardWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-8dabc003\"]]);\nexport {\n NcDashboardWidget as N\n};\n//# sourceMappingURL=NcDashboardWidget-ftOfMTzx.mjs.map\n","import '../assets/NcFilePicker-CimiKIH1.css';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, defineComponent, useTemplateRef, computed, normalizeClass, createVNode, withCtx, createBlock, createTextVNode, unref, Fragment, renderList, renderSlot, nextTick } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-BO5T5ePT.mjs\";\nimport { N as NcActionCaption } from \"./NcActionCaption-f7L9gBlT.mjs\";\nimport { N as NcActions } from \"./NcActions-CUmcZ3C3.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-BOVpFVQz.mjs\";\nimport { getGettextBuilder } from \"@nextcloud/l10n/gettext\";\nconst _sfc_main$3 = {\n name: \"FolderUploadIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$3 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { d: \"M20,6A2,2 0 0,1 22,8V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H10L12,6H20M10.75,13H14V17H16V13H19.25L15,8.75\" };\nconst _hoisted_4$2 = { key: 0 };\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon folder-upload-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$2, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$2, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$2))\n ], 16, _hoisted_1$3);\n}\nconst IconFolderUpload = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$2]]);\nconst _sfc_main$2 = {\n name: \"PlusIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$2 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon plus-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$2);\n}\nconst IconPlus = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$1]]);\nconst _sfc_main$1 = {\n name: \"UploadIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M9,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon upload-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1$1);\n}\nconst IconUpload = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render]]);\n/*!\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst gtBuilder = getGettextBuilder().detectLanguage();\nconst gt = gtBuilder.build();\ngt.ngettext.bind(gt);\nconst t = gt.gettext.bind(gt);\nconst _hoisted_1 = [\"accept\", \"multiple\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcFilePicker\",\n props: {\n accept: { default: void 0 },\n actionCaption: { default: \"\" },\n actions: { default: () => [] },\n directory: { type: Boolean },\n directoryOnly: { type: Boolean },\n disabled: { type: Boolean },\n iconOnly: { type: Boolean },\n label: { default: void 0 },\n loading: { type: Boolean },\n multiple: { type: Boolean },\n variant: { default: \"primary\" }\n },\n emits: [\"pick\"],\n setup(__props, { expose: __expose, emit: __emit }) {\n const props = __props;\n const emit = __emit;\n __expose({\n reset\n });\n const formElement = useTemplateRef(\"form\");\n const inputElement = useTemplateRef(\"input\");\n const currentLabel = computed(() => {\n if (props.loading) {\n return t(\"Uploading …\");\n } else if (props.label) {\n return props.label;\n } else if (props.directoryOnly) {\n return t(\"Pick folder\");\n }\n return props.multiple ? t(\"Pick files\") : t(\"Pick file\");\n });\n const canUploadFolders = computed(() => {\n return (props.directory || props.directoryOnly) && \"webkitdirectory\" in HTMLInputElement.prototype;\n });\n function triggerPickFiles(uploadFolders) {\n reset();\n if (canUploadFolders.value) {\n inputElement.value.webkitdirectory = uploadFolders;\n }\n nextTick(() => inputElement.value.click());\n }\n function onPick() {\n const files = inputElement.value?.files ? Array.from(inputElement.value.files) : [];\n emit(\"pick\", files);\n }\n function reset() {\n formElement.value.reset();\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"form\", {\n ref: \"form\",\n class: normalizeClass(_ctx.$style.filePicker)\n }, [\n createVNode(NcActions, {\n \"aria-label\": currentLabel.value,\n disabled: __props.disabled || __props.loading,\n menuName: __props.iconOnly ? void 0 : currentLabel.value,\n forceName: !__props.iconOnly,\n variant: __props.variant\n }, {\n icon: withCtx(() => [\n !__props.loading ? renderSlot(_ctx.$slots, \"icon\", { key: 0 }, () => [\n createVNode(IconPlus, { size: 20 })\n ]) : (openBlock(), createBlock(NcLoadingIcon, { key: 1 }))\n ]),\n default: withCtx(() => [\n __props.actionCaption ? (openBlock(), createBlock(NcActionCaption, {\n key: 0,\n name: __props.actionCaption\n }, null, 8, [\"name\"])) : createCommentVNode(\"\", true),\n !__props.directoryOnly ? (openBlock(), createBlock(NcActionButton, {\n key: 1,\n closeAfterClick: \"\",\n onClick: _cache[0] || (_cache[0] = ($event) => triggerPickFiles(false))\n }, {\n icon: withCtx(() => [\n createVNode(IconUpload, { size: 20 })\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(canUploadFolders.value || _ctx.$slots.actions ? __props.multiple ? unref(t)(\"Upload files\") : unref(t)(\"Upload file\") : currentLabel.value), 1)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true),\n canUploadFolders.value ? (openBlock(), createBlock(NcActionButton, {\n key: 2,\n closeAfterClick: \"\",\n onClick: _cache[1] || (_cache[1] = ($event) => triggerPickFiles(true))\n }, {\n icon: withCtx(() => [\n createVNode(IconFolderUpload, {\n style: { \"color\": \"var(--color-primary-element)\" },\n size: 20\n })\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(!__props.directoryOnly || _ctx.$slots.actions ? unref(t)(\"Upload folder\") : currentLabel.value), 1)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true),\n (openBlock(true), createElementBlock(Fragment, null, renderList(__props.actions, (group) => {\n return openBlock(), createElementBlock(Fragment, null, [\n group.caption ? (openBlock(), createBlock(NcActionCaption, {\n key: group.caption,\n name: group.caption\n }, null, 8, [\"name\"])) : createCommentVNode(\"\", true),\n (openBlock(true), createElementBlock(Fragment, null, renderList(group.actions ?? [group], (action) => {\n return openBlock(), createBlock(NcActionButton, {\n key: action.label,\n closeAfterClick: \"\",\n onClick: action.onClick\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n svg: action.iconSvg\n }, null, 8, [\"svg\"])\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(action.label), 1)\n ]),\n _: 2\n }, 1032, [\"onClick\"]);\n }), 128))\n ], 64);\n }), 256))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"menuName\", \"forceName\", \"variant\"]),\n createElementVNode(\"input\", {\n ref: \"input\",\n accept: __props.accept?.join(\", \"),\n \"aria-hidden\": \"true\",\n class: \"hidden-visually\",\n multiple: __props.multiple,\n type: \"file\",\n onChange: onPick\n }, null, 40, _hoisted_1),\n renderSlot(_ctx.$slots, \"default\")\n ], 2);\n };\n }\n});\nconst filePicker = \"_filePicker_UHtO-\";\nconst style0 = {\n filePicker\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcFilePicker = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcFilePicker as N\n};\n//# sourceMappingURL=NcFilePicker-nPCwHMqj.mjs.map\n","import '../assets/NcKbd-BeQpGp0b.css';\nimport { defineComponent, computed, openBlock, createElementBlock, normalizeClass, renderSlot, createTextVNode, toDisplayString } from \"vue\";\nimport { r as register, o as t7, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { i as isMac } from \"./platform-CC2ecGvV.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t7);\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcKbd\",\n props: {\n symbol: { default: () => void 0 },\n mac: { type: Boolean, default: () => isMac }\n },\n setup(__props) {\n const labels = computed(() => ({\n ArrowUp: \"↑\",\n ArrowDown: \"↓\",\n ArrowLeft: \"←\",\n ArrowRight: \"→\",\n Control: !__props.mac ? t(\"Ctrl\") : \"⌘\",\n Alt: !__props.mac ? t(\"Alt\") : \"⌥\",\n Shift: !__props.mac ? t(\"Shift\") : \"⇧\",\n Enter: !__props.mac ? t(\"Enter\") : \"⏎\",\n Tab: !__props.mac ? t(\"Tab\") : \"⇥\",\n Delete: !__props.mac ? t(\"Delete\") : \"⌫\",\n Escape: !__props.mac ? t(\"Escape\") : \"⎋\",\n Space: t(\"Space\")\n // TRANSLATORS: Space key on keyboard\n }));\n const label = computed(() => __props.symbol && labels.value[__props.symbol] || __props.symbol);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"kbd\", {\n class: normalizeClass(_ctx.$style.kbd)\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(label.value), 1)\n ])\n ], 2);\n };\n }\n});\nconst kbd = \"_kbd_3V7rw\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_FHHYV\",\n kbd\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcKbd = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcKbd as N\n};\n//# sourceMappingURL=NcKbd-Iyp0KDp4.mjs.map\n","import '../assets/NcHotkeyList-BfrEkKmK.css';\nimport { defineComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, toDisplayString, unref, renderSlot } from \"vue\";\nimport { r as register, p as t31, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t31);\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcHotkeyList\",\n props: {\n label: { default: () => void 0 }\n },\n setup(__props) {\n const labelId = `NcHotkeyList_${createElementId()}`;\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass(_ctx.$style.hotkeyList)\n }, [\n createElementVNode(\"div\", {\n id: labelId,\n class: normalizeClass([_ctx.$style.hotkeyList__heading, { \"hidden-visually\": !__props.label }])\n }, toDisplayString(__props.label || unref(t)(\"Keyboard shortcuts\")), 3),\n createElementVNode(\"ul\", { \"aria-labelledby\": labelId }, [\n renderSlot(_ctx.$slots, \"default\")\n ])\n ], 2);\n };\n }\n});\nconst hotkeyList = \"_hotkeyList_xNXCh\";\nconst hotkeyList__heading = \"_hotkeyList__heading_j6G86\";\nconst style0 = {\n hotkeyList,\n hotkeyList__heading\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcHotkeyList = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcHotkeyList as N\n};\n//# sourceMappingURL=NcHotkeyList-CmMgGhMr.mjs.map\n","import '../assets/NcListItemIcon-DJRcmlo1.css';\nimport \"escape-html\";\nimport \"striptags\";\nimport { resolveComponent, openBlock, createElementBlock, normalizeStyle, normalizeClass, createVNode, mergeProps, createElementVNode, createBlock, toDisplayString, createCommentVNode, renderSlot } from \"vue\";\nimport \"../composables/useIsDarkTheme/index.mjs\";\nimport \"@nextcloud/router\";\nimport \"../functions/isDarkTheme/index.mjs\";\nimport \"./NcMentionBubble.vue_vue_type_style_index_0_scoped_45238efd_lang-BX_KxRP-.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { u as userStatus, N as NcAvatar } from \"./NcAvatar-M3-CbKbq.mjs\";\nimport { _ as _sfc_main$1 } from \"./NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nconst margin = 8;\nconst defaultSize = 32;\nconst _sfc_main = {\n name: \"NcListItemIcon\",\n components: {\n NcAvatar,\n NcHighlight: _sfc_main$1,\n NcIconSvgWrapper\n },\n mixins: [\n userStatus\n ],\n props: {\n /**\n * Default first line text\n */\n name: {\n type: String,\n required: true\n },\n /**\n * Secondary optional line\n * Only visible on size of 32 and above\n */\n subname: {\n type: String,\n default: \"\"\n },\n /**\n * Icon class to be displayed at the end of the component\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * SVG icon to be displayed at the end of the component\n */\n iconSvg: {\n type: String,\n default: \"\"\n },\n /**\n * Descriptive name for the icon\n */\n iconName: {\n type: String,\n default: \"\"\n },\n /**\n * Search within the highlight of name/subname\n */\n search: {\n type: String,\n default: \"\"\n },\n /**\n * Set a size in px that will define the avatar height/width\n * and therefore, the height of the component\n */\n avatarSize: {\n type: Number,\n default: defaultSize\n },\n /**\n * Disable the margins of this component.\n * Useful for integration in `NcSelect` for example\n */\n noMargin: {\n type: Boolean,\n default: false\n },\n /**\n * See the [Avatar](#Avatar) displayName prop\n * Fallback to name\n */\n displayName: {\n type: String,\n default: null\n },\n /**\n * See the [Avatar](#Avatar) isNoUser prop\n * Enable/disable the UserStatus fetching\n */\n isNoUser: {\n type: Boolean,\n default: false\n },\n /**\n * Unique list item ID\n */\n id: {\n type: String,\n default: null\n }\n },\n setup() {\n return {\n margin,\n defaultSize\n };\n },\n computed: {\n hasIcon() {\n return this.icon !== \"\";\n },\n hasIconSvg() {\n return this.iconSvg !== \"\";\n },\n isValidSubname() {\n return this.subname?.trim?.() !== \"\";\n },\n isSizeBigEnough() {\n return this.avatarSize >= 26;\n },\n cssVars() {\n const margin2 = this.noMargin ? 0 : this.margin;\n return {\n \"--height\": this.avatarSize + 2 * margin2 + \"px\",\n \"--margin\": this.margin + \"px\"\n };\n },\n /**\n * Separates the search property into two parts, the first one is the search part on the name, the second on the subname.\n *\n * @return {[string, string]}\n */\n searchParts() {\n const EMAIL_NOTATION = /^([^<]*)<([^>]+)>?$/;\n const match = this.search.match(EMAIL_NOTATION);\n if (this.isNoUser || !match) {\n return [this.search, this.search];\n }\n return [match[1].trim(), match[2]];\n }\n },\n beforeMount() {\n if (!this.isNoUser && !this.subname) {\n this.fetchUserStatus(this.user);\n }\n }\n};\nconst _hoisted_1 = [\"id\"];\nconst _hoisted_2 = { class: \"option__details\" };\nconst _hoisted_3 = { key: 1 };\nconst _hoisted_4 = [\"aria-label\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAvatar = resolveComponent(\"NcAvatar\");\n const _component_NcHighlight = resolveComponent(\"NcHighlight\");\n const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n return openBlock(), createElementBlock(\"span\", {\n id: $props.id,\n class: normalizeClass([\"option\", { \"option--compact\": $props.avatarSize < $setup.defaultSize }]),\n style: normalizeStyle($options.cssVars)\n }, [\n createVNode(_component_NcAvatar, mergeProps(_ctx.$attrs, {\n disableMenu: \"\",\n disableTooltip: \"\",\n displayName: $props.displayName || $props.name,\n isNoUser: $props.isNoUser,\n size: $props.avatarSize,\n class: \"option__avatar\"\n }), null, 16, [\"displayName\", \"isNoUser\", \"size\"]),\n createElementVNode(\"div\", _hoisted_2, [\n createVNode(_component_NcHighlight, {\n class: \"option__lineone\",\n text: $props.name,\n search: $options.searchParts[0]\n }, null, 8, [\"text\", \"search\"]),\n $options.isValidSubname && $options.isSizeBigEnough ? (openBlock(), createBlock(_component_NcHighlight, {\n key: 0,\n class: \"option__linetwo\",\n text: $props.subname,\n search: $options.searchParts[1]\n }, null, 8, [\"text\", \"search\"])) : _ctx.hasStatus ? (openBlock(), createElementBlock(\"span\", _hoisted_3, [\n createElementVNode(\"span\", null, toDisplayString(_ctx.userStatus.icon), 1),\n createElementVNode(\"span\", null, toDisplayString(_ctx.userStatus.message), 1)\n ])) : createCommentVNode(\"\", true)\n ]),\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n $options.hasIconSvg ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {\n key: 0,\n class: \"option__icon\",\n svg: $props.iconSvg,\n name: $props.iconName\n }, null, 8, [\"svg\", \"name\"])) : $options.hasIcon ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: normalizeClass([\"icon option__icon\", $props.icon]),\n \"aria-label\": $props.iconName\n }, null, 10, _hoisted_4)) : createCommentVNode(\"\", true)\n ], true)\n ], 14, _hoisted_1);\n}\nconst NcListItemIcon = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-0ee94269\"]]);\nexport {\n NcListItemIcon as N\n};\n//# sourceMappingURL=NcListItemIcon-D_f5AGrh.mjs.map\n","import '../assets/NcProgressBar-B6wveIA1.css';\nimport { defineComponent, useCssVars, computed, openBlock, createElementBlock, normalizeClass, createElementVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"aria-valuenow\"];\nconst _hoisted_2 = [\"height\", \"width\"];\nconst _hoisted_3 = [\"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-width\", \"r\", \"cx\", \"cy\"];\nconst _hoisted_4 = [\"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-width\", \"r\", \"cx\", \"cy\"];\nconst _hoisted_5 = {\n key: 1,\n class: \"progress-bar-container\"\n};\nconst _hoisted_6 = [\"value\"];\nconst _hoisted_7 = {\n key: 0,\n class: \"progress-bar__value\"\n};\nconst gridBaseline = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-grid-baseline\"));\nconst clickableArea = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-clickable-area\"));\nconst clickableAreaSmall = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--clickable-area-small\"));\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcProgressBar\",\n props: {\n value: { default: 0 },\n size: { default: \"small\" },\n error: { type: Boolean },\n type: { default: \"linear\" },\n color: { default: \"var(--color-primary-element)\" },\n showValue: { type: Boolean, default: false }\n },\n setup(__props) {\n useCssVars((_ctx) => ({\n \"v3a86fec2\": _ctx.color,\n \"v57442460\": heightPx.value\n }));\n const props = __props;\n const normalizedProgress = computed(() => Math.max(0, Math.min(100, props.value)) / 100);\n const height = computed(() => {\n if (typeof props.size === \"number\") {\n return Math.round(props.size);\n }\n if (props.type === \"circular\") {\n if (props.size === \"medium\") {\n return clickableArea;\n } else {\n return clickableAreaSmall;\n }\n }\n if (props.size === \"medium\") {\n return 1.5 * gridBaseline;\n }\n return gridBaseline;\n });\n const heightPx = computed(() => `${height.value}px`);\n const strokeWidth = computed(() => Math.max(gridBaseline, height.value / clickableArea * gridBaseline));\n const circleCenterPosition = computed(() => height.value / 2);\n const circleRadius = computed(() => height.value / 2 - strokeWidth.value);\n const circumference = computed(() => circleRadius.value * 2 * Math.PI);\n return (_ctx, _cache) => {\n return __props.type === \"circular\" ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n role: \"progressbar\",\n \"aria-valuenow\": __props.value,\n class: normalizeClass([{ \"progress-bar--error\": __props.error }, \"progress-bar progress-bar--circular\"])\n }, [\n (openBlock(), createElementBlock(\"svg\", {\n height: height.value,\n width: height.value\n }, [\n createElementVNode(\"circle\", {\n stroke: \"currentColor\",\n fill: \"transparent\",\n \"stroke-dasharray\": `${normalizedProgress.value * circumference.value} ${(1 - normalizedProgress.value) * circumference.value}`,\n \"stroke-dashoffset\": 0.25 * circumference.value,\n \"stroke-width\": strokeWidth.value,\n r: circleRadius.value,\n cx: circleCenterPosition.value,\n cy: circleCenterPosition.value\n }, null, 8, _hoisted_3),\n createElementVNode(\"circle\", {\n stroke: \"var(--color-background-darker)\",\n fill: \"transparent\",\n \"stroke-dasharray\": `${(1 - normalizedProgress.value) * circumference.value} ${normalizedProgress.value * circumference.value}`,\n \"stroke-dashoffset\": (0.25 - normalizedProgress.value) * circumference.value,\n \"stroke-width\": strokeWidth.value,\n r: circleRadius.value,\n cx: circleCenterPosition.value,\n cy: circleCenterPosition.value\n }, null, 8, _hoisted_4)\n ], 8, _hoisted_2))\n ], 10, _hoisted_1)) : (openBlock(), createElementBlock(\"div\", _hoisted_5, [\n createElementVNode(\"progress\", {\n class: normalizeClass([\"progress-bar progress-bar--linear vue\", { \"progress-bar--error\": __props.error }]),\n value: __props.value,\n max: \"100\"\n }, null, 10, _hoisted_6),\n __props.showValue ? (openBlock(), createElementBlock(\"span\", _hoisted_7, toDisplayString(__props.value) + \"%\", 1)) : createCommentVNode(\"\", true)\n ]));\n };\n }\n});\nconst NcProgressBar = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-353fa414\"]]);\nexport {\n NcProgressBar as N\n};\n//# sourceMappingURL=NcProgressBar-C-ane-Ni.mjs.map\n","import '../assets/NcRelatedResourcesPanel-CiG_Ixb6.css';\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport { r as register, S as t38, a as t, T as t42, U as t9 } from \"./_l10n-CG4CuN3H.mjs\";\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { g as getRoute } from \"./autolink-BT8u-IL-.mjs\";\nimport { resolveComponent, openBlock, createElementBlock, createVNode, withCtx, createTextVNode, toDisplayString, createElementVNode, mergeProps, createCommentVNode, Fragment, renderList, createBlock } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { C as ChevronDown } from \"./ChevronDown-C6gc637b.mjs\";\nimport { C as ChevronUp } from \"./ChevronUp-ChH8oB7p.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nregister(t38);\nconst _sfc_main$4 = {\n name: \"NcResource\",\n components: {\n NcButton\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n icon: {\n type: String,\n required: true\n },\n name: {\n type: String,\n required: true\n },\n url: {\n type: String,\n required: true\n }\n },\n data() {\n return {\n labelTranslated: t('Open link to \"{resourceName}\"', { resourceName: this.name })\n };\n },\n computed: {\n route() {\n return getRoute(this.$router, this.url);\n }\n },\n methods: {\n t\n }\n};\nconst _hoisted_1$4 = { class: \"resource\" };\nconst _hoisted_2$4 = { class: \"resource__icon\" };\nconst _hoisted_3$3 = [\"src\"];\nfunction _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcButton = resolveComponent(\"NcButton\");\n return openBlock(), createElementBlock(\"li\", _hoisted_1$4, [\n createVNode(_component_NcButton, {\n class: \"resource__button\",\n \"aria-label\": $data.labelTranslated,\n to: $options.route,\n href: $options.route ? null : $props.url,\n variant: \"tertiary\"\n }, {\n icon: withCtx(() => [\n createElementVNode(\"div\", _hoisted_2$4, [\n createElementVNode(\"img\", { src: $props.icon }, null, 8, _hoisted_3$3)\n ])\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString($props.name), 1)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"to\", \"href\"])\n ]);\n}\nconst NcResource = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$4], [\"__scopeId\", \"data-v-77577e58\"]]);\nconst _sfc_main$3 = {\n name: \"AccountGroupIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$3 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$3 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { d: \"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z\" };\nconst _hoisted_4$2 = { key: 0 };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon account-group-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$2, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$2, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$3))\n ], 16, _hoisted_1$3);\n}\nconst AccountGroup = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$2 = {\n name: \"OpenInNewIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$2 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon open-in-new-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$2))\n ], 16, _hoisted_1$2);\n}\nconst OpenInNew = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2]]);\nregister(t42);\nconst teamResourceProviders = getCapabilities()?.circles?.teamResourceProviders ?? [];\nconst _sfc_main$1 = {\n name: \"NcTeamResources\",\n components: {\n AccountGroup,\n ChevronDown,\n ChevronUp,\n OpenInNew,\n NcButton,\n NcIconSvgWrapper\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n providerId: {\n type: String,\n default: null\n },\n itemId: {\n type: [String, Number],\n default: null\n }\n },\n data() {\n return {\n appEnabled: OC?.appswebroots?.circles !== void 0 && (OC.config.version.split(\".\")[0] ?? 0) >= 29,\n loading: false,\n teamResources: null,\n teamOpen: []\n };\n },\n computed: {\n isVisible() {\n return !this.loading && this.teamResources?.length > 0;\n },\n teamProviders() {\n return (teamId) => {\n const team = this.teamResources.find((t2) => t2.teamId === teamId);\n return team.resources?.reduce((acc, resource) => {\n if (resource.provider.id === this.providerId && resource.id === String(this.itemId)) {\n return acc;\n }\n if (!acc[resource.provider.id]) {\n acc[resource.provider.id] = resource.provider;\n acc[resource.provider.id].resources = [];\n }\n if (resource.provider.id === this.providerId && resource.id === String(this.itemId)) {\n return acc;\n }\n acc[resource.provider.id].resources.push(resource);\n return acc;\n }, {});\n };\n },\n open() {\n return (teamId) => {\n return this.teamOpen.indexOf(teamId) !== -1;\n };\n }\n },\n watch: {\n providerId() {\n this.fetchTeamResources();\n },\n itemId() {\n this.fetchTeamResources();\n }\n },\n created() {\n this.fetchTeamResources();\n },\n methods: {\n t,\n async fetchTeamResources() {\n if (!teamResourceProviders.includes(this.providerId)) {\n return;\n }\n try {\n this.loading = true;\n const response = await axios.get(generateOcsUrl(`/teams/resources/${this.providerId}/${this.itemId}`));\n this.teamResources = response.data.ocs.data.teams;\n this.teamOpen = [this.teamResources[0]?.teamId];\n } catch (error) {\n this.teamResources = null;\n logger.error(\"[NcTeamResources] Failed to fetch resources\", { error });\n } finally {\n this.loading = false;\n }\n },\n toggleOpen(teamId, open) {\n if (open) {\n this.teamOpen.push(teamId);\n } else {\n this.teamOpen.splice(this.teamOpen.indexOf(teamId), 1);\n }\n }\n }\n};\nconst _hoisted_1$1 = {\n key: 0,\n class: \"team-resources\"\n};\nconst _hoisted_2$1 = { class: \"team-resources__header\" };\nconst _hoisted_3 = [\"open\", \"onToggle\"];\nconst _hoisted_4 = { class: \"related-team__header\" };\nconst _hoisted_5 = { class: \"related-team__name\" };\nconst _hoisted_6 = { key: 0 };\nconst _hoisted_7 = [\"href\"];\nconst _hoisted_8 = {\n key: 0,\n class: \"resource__icon\"\n};\nconst _hoisted_9 = {\n key: 2,\n class: \"resource__icon\"\n};\nconst _hoisted_10 = [\"src\"];\nconst _hoisted_11 = { class: \"resource__name\" };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_AccountGroup = resolveComponent(\"AccountGroup\");\n const _component_OpenInNew = resolveComponent(\"OpenInNew\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_ChevronUp = resolveComponent(\"ChevronUp\");\n const _component_ChevronDown = resolveComponent(\"ChevronDown\");\n const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n return $data.appEnabled && $options.isVisible ? (openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n createElementVNode(\"h5\", _hoisted_2$1, toDisplayString($options.t(\"Related team resources\")), 1),\n (openBlock(true), createElementBlock(Fragment, null, renderList($data.teamResources, (team) => {\n return openBlock(), createElementBlock(\"details\", {\n key: team.teamId,\n name: \"Team resources\",\n class: \"related-team\",\n open: $options.open(team.teamId),\n onToggle: (event) => $options.toggleOpen(team.teamId, event.target.open)\n }, [\n createElementVNode(\"summary\", _hoisted_4, [\n createElementVNode(\"h5\", _hoisted_5, [\n createVNode(_component_AccountGroup, { size: 20 }),\n createTextVNode(\" \" + toDisplayString(team.displayName), 1)\n ]),\n createVNode(_component_NcButton, {\n \"aria-label\": $options.t(\"View team\"),\n href: team.link,\n title: $options.t(\"View team\"),\n variant: \"tertiary\"\n }, {\n icon: withCtx(() => [\n createVNode(_component_OpenInNew, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"href\", \"title\"]),\n $options.open(team.teamId) ? (openBlock(), createBlock(_component_ChevronUp, {\n key: 0,\n size: 20\n })) : (openBlock(), createBlock(_component_ChevronDown, {\n key: 1,\n size: 20\n }))\n ]),\n createElementVNode(\"div\", null, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.teamProviders(team.teamId), (provider) => {\n return openBlock(), createElementBlock(\"div\", {\n key: provider.id,\n class: \"related-team-provider\"\n }, [\n provider.resources.length > 0 ? (openBlock(), createElementBlock(\"h6\", _hoisted_6, toDisplayString(provider.name), 1)) : createCommentVNode(\"\", true),\n createElementVNode(\"ul\", null, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(provider.resources, (resource) => {\n return openBlock(), createElementBlock(\"li\", {\n key: resource.url,\n class: \"related-team-resource\"\n }, [\n createElementVNode(\"a\", {\n href: resource.url,\n class: \"related-team-resource__link\"\n }, [\n resource.iconEmoji ? (openBlock(), createElementBlock(\"span\", _hoisted_8, toDisplayString(resource.iconEmoji), 1)) : resource.iconSvg ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {\n key: 1,\n class: \"resource__icon\",\n svg: resource.iconSvg,\n size: 20\n }, null, 8, [\"svg\"])) : resource.iconURL ? (openBlock(), createElementBlock(\"span\", _hoisted_9, [\n createElementVNode(\"img\", {\n src: resource.iconURL,\n alt: \"\"\n }, null, 8, _hoisted_10)\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_11, toDisplayString(resource.label), 1)\n ], 8, _hoisted_7)\n ]);\n }), 128))\n ])\n ]);\n }), 128))\n ])\n ], 40, _hoisted_3);\n }), 128))\n ])) : createCommentVNode(\"\", true);\n}\nconst NcTeamResources = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-10ef45ac\"]]);\nregister(t9);\nconst _sfc_main = {\n name: \"NcRelatedResourcesPanel\",\n components: {\n NcResource,\n NcTeamResources\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n /**\n * The provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n */\n providerId: {\n type: String,\n default: null\n },\n /**\n * The item id which uniquely identities the e.g. Calendar event, Deck board, file, Talk room, etc.\n */\n itemId: {\n type: [String, Number],\n default: null\n },\n /**\n * Limits to specific resource type. i.e. any provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n */\n resourceType: {\n type: String,\n default: \"\"\n },\n /**\n * Set the maximum number of resources to load\n */\n limit: {\n type: Number,\n default: 0\n },\n /**\n * Only used by the files sidebar\n *\n * File info is passed when registered with `OCA.Sharing.ShareTabSections.registerSection()`\n */\n fileInfo: {\n type: Object,\n default: null\n },\n /**\n * Make the header name dynamic\n */\n header: {\n type: String,\n default: t(\"Related resources\")\n },\n description: {\n type: String,\n default: t(\"Anything shared with the same group of people will show up here\")\n },\n /**\n * If this element is used on a primary element set to true for primary styling.\n */\n primary: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"hasError\",\n \"hasResources\"\n ],\n data() {\n return {\n appEnabled: OC?.appswebroots?.related_resources !== void 0,\n loading: false,\n error: null,\n resources: []\n };\n },\n computed: {\n isVisible() {\n if (this.loading) {\n return false;\n }\n return this.error ?? this.resources.length > 0;\n },\n subline() {\n if (this.error) {\n return t(\"Error getting related resources. Please contact your system administrator if you have any questions.\");\n }\n return this.description;\n },\n hasResourceInfo() {\n if (this.providerId !== null && this.itemId !== null) {\n return true;\n }\n if (this.fileInfo !== null) {\n return true;\n }\n return false;\n },\n isFiles() {\n return this.fileInfo?.id !== void 0;\n },\n url() {\n let providerId;\n let itemId;\n if (this.isFiles) {\n providerId = \"files\";\n itemId = this.fileInfo.id;\n } else {\n providerId = this.providerId;\n itemId = this.itemId;\n }\n return generateOcsUrl(\"/apps/related_resources/related/{providerId}?itemId={itemId}&resourceType={resourceType}&limit={limit}&format=json\", {\n providerId,\n itemId,\n resourceType: this.resourceType,\n limit: this.limit\n });\n }\n },\n watch: {\n providerId() {\n this.fetchRelatedResources();\n },\n itemId() {\n this.fetchRelatedResources();\n },\n fileInfo() {\n this.fetchRelatedResources();\n },\n error(error) {\n this.$emit(\"hasError\", Boolean(error));\n },\n resources(resources) {\n this.$emit(\"hasResources\", resources.length > 0);\n }\n },\n created() {\n this.fetchRelatedResources();\n },\n methods: {\n t,\n async fetchRelatedResources() {\n if (!this.appEnabled || !this.hasResourceInfo) {\n return;\n }\n this.loading = true;\n this.error = null;\n this.resources = [];\n try {\n const response = await axios.get(this.url);\n this.resources = response.data.ocs?.data;\n } catch (error) {\n this.error = error;\n logger.error(\"[NcRelatedResourcesPanel] Failed to fetch resources\", { error });\n } finally {\n this.loading = false;\n }\n }\n }\n};\nconst _hoisted_1 = {\n key: 0,\n class: \"related-resources\"\n};\nconst _hoisted_2 = { class: \"related-resources__header\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcTeamResources = resolveComponent(\"NcTeamResources\");\n const _component_NcResource = resolveComponent(\"NcResource\");\n return openBlock(), createElementBlock(\"div\", null, [\n createVNode(_component_NcTeamResources, {\n providerId: $props.providerId,\n itemId: $props.itemId\n }, null, 8, [\"providerId\", \"itemId\"]),\n $data.appEnabled && $options.isVisible ? (openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createElementVNode(\"div\", _hoisted_2, [\n createElementVNode(\"h5\", null, toDisplayString($props.header), 1),\n createElementVNode(\"p\", null, toDisplayString($options.subline), 1)\n ]),\n (openBlock(true), createElementBlock(Fragment, null, renderList($data.resources, (resource) => {\n return openBlock(), createBlock(_component_NcResource, {\n key: resource.itemId,\n class: \"related-resources__entry\",\n icon: resource.icon,\n name: resource.title,\n url: resource.url\n }, null, 8, [\"icon\", \"name\", \"url\"]);\n }), 128))\n ])) : createCommentVNode(\"\", true)\n ]);\n}\nconst NcRelatedResourcesPanel = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-78029c82\"]]);\nexport {\n NcRelatedResourcesPanel as N\n};\n//# sourceMappingURL=NcRelatedResourcesPanel-C0j0Fs4r.mjs.map\n","import '../assets/NcSelectUsers-YF5729PJ.css';\nimport { defineComponent, useModel, ref, watch, openBlock, createBlock, unref, mergeProps, withCtx, createVNode, mergeModels } from \"vue\";\nimport { N as NcListItemIcon } from \"./NcListItemIcon-D_f5AGrh.mjs\";\nimport { N as NcSelect } from \"./NcSelect-BOFzoCwK.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcSelectUsers\",\n props: /* @__PURE__ */ mergeModels({\n ariaLabelClearSelected: {},\n ariaLabelListbox: {},\n ariaLabelDeselectOption: { type: Function },\n disabled: { type: Boolean },\n inputId: {},\n inputLabel: {},\n labelOutside: { type: Boolean },\n keepOpen: { type: Boolean },\n loading: { type: Boolean },\n multiple: { type: Boolean },\n noWrap: { type: Boolean },\n options: {},\n placeholder: {},\n required: { type: Boolean }\n }, {\n \"modelValue\": {},\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"search\"], [\"update:modelValue\"]),\n setup(__props, { emit: __emit }) {\n const modelValue = useModel(__props, \"modelValue\");\n const emit = __emit;\n const search = ref(\"\");\n watch(search, () => emit(\"search\", search.value));\n const clickableArea = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-clickable-area\"));\n const gridBaseLine = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-grid-baseline\"));\n const avatarSize = clickableArea - 2 * gridBaseLine;\n function filterBy(option, label, search2) {\n const EMAIL_NOTATION = /[^<]*<([^>]+)/;\n const match = search2.match(EMAIL_NOTATION);\n const subname = option.subname?.toLocaleLowerCase() ?? \"\";\n return match && subname.indexOf(match[1].toLocaleLowerCase()) > -1 || `${label} ${option.subname}`.toLocaleLowerCase().indexOf(search2.toLocaleLowerCase()) > -1;\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcSelect), mergeProps({\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),\n class: \"nc-select-users\"\n }, _ctx.$props, {\n filterBy,\n label: \"displayName\",\n onSearch: _cache[1] || (_cache[1] = ($event) => search.value = $event)\n }), {\n option: withCtx((option) => [\n createVNode(unref(NcListItemIcon), mergeProps(option, {\n avatarSize: 32,\n name: option.displayName,\n search: search.value\n }), null, 16, [\"name\", \"search\"])\n ]),\n \"selected-option\": withCtx((selectedOption) => [\n createVNode(unref(NcListItemIcon), mergeProps(selectedOption, {\n avatarSize,\n name: selectedOption.displayName,\n noMargin: \"\",\n search: search.value\n }), null, 16, [\"name\", \"search\"])\n ]),\n _: 1\n }, 16, [\"modelValue\"]);\n };\n }\n});\nconst NcSelectUsers = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-e8e18fd3\"]]);\nexport {\n NcSelectUsers as N\n};\n//# sourceMappingURL=NcSelectUsers-CI8twLn9.mjs.map\n","import '../assets/NcSettingsSelectGroup-D_fSrafm.css';\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport debounce from \"debounce\";\nimport { N as NcSelect } from \"./NcSelect-BOFzoCwK.mjs\";\nimport { r as register, i as t50, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { resolveComponent, openBlock, createElementBlock, toDisplayString, createCommentVNode, createVNode, withDirectives, createElementVNode, vShow } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t50);\nconst _sfc_main = {\n name: \"NcSettingsSelectGroup\",\n components: {\n NcSelect\n },\n props: {\n /**\n * The text of the label element of the select group input\n */\n label: {\n type: String,\n required: true\n },\n /**\n * Placeholder for the input element\n * For backwards compatibility it falls back to the `label` value\n */\n placeholder: {\n type: String,\n default: \"\"\n },\n /**\n * id attribute of the select group element\n */\n id: {\n type: String,\n default: () => \"action-\" + createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * value of the select group input\n * A list of group IDs can be provided\n */\n modelValue: {\n type: Array,\n default: () => []\n },\n /**\n * disabled state of the settings select group input\n */\n disabled: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"error\",\n \"input\",\n \"update:modelValue\"\n ],\n data() {\n return {\n /** Temporary store to cache groups */\n groups: {},\n randId: createElementId(),\n errorMessage: \"\"\n };\n },\n computed: {\n /**\n * If the error message should be shown\n */\n hasError() {\n return this.errorMessage !== \"\";\n },\n /**\n * Validate input value and only return valid strings (group IDs)\n *\n * @return {string[]}\n */\n filteredValue() {\n return this.modelValue.filter((group) => group !== \"\" && typeof group === \"string\");\n },\n /**\n * value property converted to an array of group objects used as input for the NcSelect\n */\n inputValue() {\n return this.filteredValue.map((id) => {\n if (typeof this.groups[id] === \"undefined\") {\n return {\n id,\n displayname: id\n };\n }\n return this.groups[id];\n });\n },\n /**\n * Convert groups object to array of groups required for NcSelect.options\n * Filter out currently selected values\n *\n * @return {object[]}\n */\n groupsArray() {\n return Object.values(this.groups).filter((g) => !this.modelValue.includes(g.id));\n }\n },\n watch: {\n /**\n * If the value is changed, check that all groups are loaded so we show the correct display name\n */\n modelValue: {\n handler() {\n const loadedGroupIds = Object.keys(this.groups);\n const missing = this.filteredValue.filter((group) => !loadedGroupIds.includes(group));\n missing.forEach((groupId) => {\n this.loadGroup(groupId);\n });\n },\n // Run the watch handler also when the component is initially mounted\n immediate: true\n }\n },\n /**\n * Load groups matching the empty query to reduce API calls\n */\n async mounted() {\n const storageName = `${appName}:${appVersion}/initialGroups`;\n let savedGroups = window.sessionStorage.getItem(storageName);\n if (savedGroups) {\n savedGroups = Object.fromEntries(JSON.parse(savedGroups).map((group) => [group.id, group]));\n this.groups = { ...this.groups, ...savedGroups };\n } else {\n await this.loadGroup(\"\");\n window.sessionStorage.setItem(storageName, JSON.stringify(Object.values(this.groups)));\n }\n },\n methods: {\n t,\n /**\n * Called when a new group is selected or previous group is deselected to emit the update event\n *\n * @param {object[]} updatedValue Array of selected groups\n */\n update(updatedValue) {\n const value = updatedValue.map((element) => element.id);\n this.$emit(\"update:modelValue\", value);\n },\n /**\n * Use provisioning API to search for given group and save it in the groups object\n *\n * @param {string} query The query like parts of the id oder display name\n * @return {boolean}\n */\n async loadGroup(query) {\n try {\n query = typeof query === \"string\" ? encodeURI(query) : \"\";\n const response = await axios.get(generateOcsUrl(`cloud/groups/details?search=${query}&limit=10`, 2));\n if (this.errorMessage !== \"\") {\n window.setTimeout(() => {\n this.errorMessage = \"\";\n }, 5e3);\n }\n if (Object.keys(response.data.ocs.data.groups).length > 0) {\n const newGroups = Object.fromEntries(response.data.ocs.data.groups.map((element) => [element.id, element]));\n this.groups = { ...this.groups, ...newGroups };\n return true;\n }\n } catch (error) {\n this.$emit(\"error\", error);\n this.errorMessage = t(\"Unable to search the group\");\n }\n return false;\n },\n /**\n * Custom filter function for `NcSelect` to filter by ID *and* display name\n *\n * @param {object} option One of the groups\n * @param {string} label The label property of the group\n * @param {string} search The current search string\n */\n filterGroups(option, label, search) {\n return `${label || \"\"} ${option.id}`.toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) > -1;\n },\n /**\n * Debounce the group search (reduce API calls)\n */\n onSearch: debounce(function(query) {\n this.loadGroup(query);\n }, 200)\n }\n};\nconst _hoisted_1 = [\"for\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n return openBlock(), createElementBlock(\"div\", null, [\n $props.label ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n for: $props.id,\n class: \"hidden-visually\"\n }, toDisplayString($props.label), 9, _hoisted_1)) : createCommentVNode(\"\", true),\n createVNode(_component_NcSelect, {\n modelValue: $options.inputValue,\n options: $options.groupsArray,\n placeholder: $props.placeholder || $props.label,\n filterBy: $options.filterGroups,\n inputId: $props.id,\n limit: 5,\n label: \"displayname\",\n multiple: true,\n closeOnSelect: false,\n disabled: $props.disabled,\n \"onUpdate:modelValue\": $options.update,\n onSearch: $options.onSearch\n }, null, 8, [\"modelValue\", \"options\", \"placeholder\", \"filterBy\", \"inputId\", \"disabled\", \"onUpdate:modelValue\", \"onSearch\"]),\n withDirectives(createElementVNode(\"div\", { class: \"select-group-error\" }, toDisplayString($data.errorMessage), 513), [\n [vShow, $options.hasError]\n ])\n ]);\n}\nconst NcSettingsSelectGroup = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-f2b71592\"]]);\nexport {\n NcSettingsSelectGroup as N\n};\n//# sourceMappingURL=NcSettingsSelectGroup-TN64yH4k.mjs.map\n","import '../assets/NcTextArea-BxGe3Lqn.css';\nimport { defineComponent, useModel, useAttrs, useTemplateRef, computed, watch, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, mergeProps, toDisplayString, createCommentVNode, createBlock, createTextVNode, mergeModels } from \"vue\";\nimport { d as mdiCheck, j as mdiAlertCircleOutline } from \"./mdi-CpchYUUV.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { a as isLegacy } from \"./legacy-BoqDmOCa.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = { class: \"textarea__main-wrapper\" };\nconst _hoisted_2 = [\"id\", \"aria-describedby\", \"disabled\", \"placeholder\", \"value\"];\nconst _hoisted_3 = [\"for\"];\nconst _hoisted_4 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"NcTextArea\",\n props: /* @__PURE__ */ mergeModels({\n disabled: { type: Boolean },\n error: { type: Boolean },\n helperText: { default: void 0 },\n id: { default: () => createElementId() },\n inputClass: { default: \"\" },\n label: { default: void 0 },\n labelOutside: { type: Boolean },\n placeholder: { default: void 0 },\n resize: { default: \"both\" },\n success: { type: Boolean }\n }, {\n \"modelValue\": { required: true },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n __expose({\n focus,\n select\n });\n const attrs = useAttrs();\n const textAreaElement = useTemplateRef(\"input\");\n const internalPlaceholder = computed(() => props.placeholder || (isLegacy ? props.label : void 0));\n watch(() => props.labelOutside, () => {\n if (!props.labelOutside && !props.label) {\n logger.warn(\"[NcTextArea] You need to add a label to the NcInputField component. Either use the prop label or use an external one, as per the example in the documentation.\");\n }\n });\n const ariaDescribedby = computed(() => {\n const ariaDescribedby2 = [];\n if (props.helperText) {\n ariaDescribedby2.push(`${props.id}-helper-text`);\n }\n if (typeof attrs[\"aria-describedby\"] === \"string\") {\n ariaDescribedby2.push(attrs[\"aria-describedby\"]);\n }\n return ariaDescribedby2.join(\" \") || void 0;\n });\n function handleInput(event) {\n const { value } = event.target;\n modelValue.value = value;\n }\n function focus(options) {\n textAreaElement.value.focus(options);\n }\n function select() {\n textAreaElement.value.select();\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"textarea\", [\n _ctx.$attrs.class,\n {\n \"textarea--disabled\": __props.disabled,\n \"textarea--legacy\": unref(isLegacy)\n }\n ]])\n }, [\n createElementVNode(\"div\", _hoisted_1, [\n createElementVNode(\"textarea\", mergeProps({ ..._ctx.$attrs, class: void 0 }, {\n id: __props.id,\n ref: \"input\",\n \"aria-describedby\": ariaDescribedby.value,\n \"aria-live\": \"polite\",\n class: [\"textarea__input\", [\n __props.inputClass,\n {\n \"textarea__input--label-outside\": __props.labelOutside,\n \"textarea__input--legacy\": unref(isLegacy),\n \"textarea__input--success\": __props.success,\n \"textarea__input--error\": __props.error\n }\n ]],\n disabled: __props.disabled,\n placeholder: internalPlaceholder.value,\n style: { resize: __props.resize },\n value: modelValue.value,\n onInput: handleInput\n }), null, 16, _hoisted_2),\n !__props.labelOutside ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: \"textarea__label\",\n for: __props.id\n }, toDisplayString(__props.label), 9, _hoisted_3)) : createCommentVNode(\"\", true)\n ]),\n __props.helperText ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n id: `${__props.id}-helper-text`,\n class: normalizeClass([\"textarea__helper-text-message\", {\n \"textarea__helper-text-message--error\": __props.error,\n \"textarea__helper-text-message--success\": __props.success\n }])\n }, [\n __props.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n class: \"textarea__helper-text-message__icon\",\n path: unref(mdiCheck),\n inline: \"\"\n }, null, 8, [\"path\"])) : __props.error ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n class: \"textarea__helper-text-message__icon\",\n path: unref(mdiAlertCircleOutline),\n inline: \"\"\n }, null, 8, [\"path\"])) : createCommentVNode(\"\", true),\n createTextVNode(\" \" + toDisplayString(__props.helperText), 1)\n ], 10, _hoisted_4)) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcTextArea = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-d327fb49\"]]);\nexport {\n NcTextArea as N\n};\n//# sourceMappingURL=NcTextArea-Dxzj4zdb.mjs.map\n"],"names":["register","_sfc_main","defineComponent","NC_ACTIONS_IS_SEMANTIC_MENU","createElementId","t","_hoisted_1","_hoisted_2","_hoisted_3","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","toDisplayString","createCommentVNode","createElementVNode","renderSlot","NcActionButtonGroup","_export_sfc","NcAppNavigationList","t20","_hoisted_1$1","_sfc_main$1","__props","open","useModel","title","computed","createVNode","unref","NcButton","$event","withCtx","NcIconSvgWrapper","mdiMenuOpen","mdiMenu","NcAppNavigationToggle","props","focusTrap","setHasAppNavigation","inject","HAS_APP_NAVIGATION_KEY","warn","appNavigationContainerElement","useTemplateRef","isMobile","useIsMobile","ref","watchEffect","watch","toggleFocusTrap","onMounted","subscribe","toggleNavigationByEventBus","emit","createFocusTrap","toggleNavigation","getTrapStack","onUnmounted","unsubscribe","state","bodyStyles","animationLength","open2","handleEsc","normalizeClass","isLegacy34","withKeys","createBlock","NcAppNavigation","NcActions","_hoisted_4","mergeProps","ChevronUp","IconArrowRight","t14","IconClose","newValue","_component_IconArrowRight","resolveComponent","_component_NcButton","_component_IconClose","withModifiers","args","withDirectives","vModelText","NcInputConfirmCancel","_sfc_main$3","_hoisted_1$2","_hoisted_2$2","_hoisted_3$2","_hoisted_4$2","_sfc_render$3","Pencil","_sfc_main$2","_hoisted_2$1","_hoisted_3$1","_hoisted_4$1","_sfc_render$2","Undo","t21","ChevronDown","_sfc_render$1","_component_ChevronUp","_component_ChevronDown","NcAppNavigationIconCollapsible","t23","t51","NcActionButton","NcLoadingIcon","_sfc_main$4","id","newVal","event","navigate","routerLinkHref","href","_hoisted_5","_hoisted_6","_hoisted_7","_component_NcLoadingIcon","_component_NcInputConfirmCancel","_component_Pencil","_component_NcActionButton","_component_Undo","_component_NcActions","_component_NcAppNavigationIconCollapsible","resolveDynamicComponent","normalizeProps","guardReactiveProps","isActive","createTextVNode","NcAppNavigationItem","t16","t44","mergeModels","model","slots","useSlots","inputElement","inputHasFocus","useFocusWithin","transitionTimeout","actionsContainerElement","hasActions","showActions","timeoutId","hideActions","onCloseSearch","nextTick","NcInputField","NcAppNavigationSearch","t47","t48","t31","directive","el","encodedTlds","encodedUtlds","numeric","ascii","alpha","asciinumeric","alphanumeric","domain","emoji","scheme","slashscheme","whitespace","registerGroup","name","groups","addToGroups","flags","k","group","flagsForToken","result","c","State","token","input","nextState","i","regex","exactOnly","inputs","next","regexp","len","templateState","allFlags","ta","tr","ts","tt","WORD","UWORD","ASCIINUMERICAL","ALPHANUMERICAL","LOCALHOST","TLD","UTLD","SCHEME","SLASH_SCHEME","NUM","WS","NL","OPENBRACE","CLOSEBRACE","OPENBRACKET","CLOSEBRACKET","OPENPAREN","CLOSEPAREN","OPENANGLEBRACKET","CLOSEANGLEBRACKET","FULLWIDTHLEFTPAREN","FULLWIDTHRIGHTPAREN","LEFTCORNERBRACKET","RIGHTCORNERBRACKET","LEFTWHITECORNERBRACKET","RIGHTWHITECORNERBRACKET","FULLWIDTHLESSTHAN","FULLWIDTHGREATERTHAN","AMPERSAND","APOSTROPHE","ASTERISK","AT","BACKSLASH","BACKTICK","CARET","COLON","COMMA","DOLLAR","DOT","EQUALS","EXCLAMATION","HYPHEN","PERCENT","PIPE","PLUS","POUND","QUERY","QUOTE","FULLWIDTHMIDDLEDOT","SEMI","SLASH","TILDE","UNDERSCORE","EMOJI$1","SYM","tk","ASCII_LETTER","LETTER","EMOJI","DIGIT","SPACE","CR","LF","EMOJI_VARIATION","EMOJI_JOINER","OBJECT_REPLACEMENT","tlds","utlds","init$2","customSchemes","Start","decodeTlds","Num","Asciinumeric","Alphanumeric","Word","UWord","Nl","Cr","Ws","Emoji","EmojiJoiner","wordjr","uwordjr","fastts","a","b","sch","run$1","start","str","iterable","stringToArray","charCount","tokens","cursor","charCursor","tokenLength","latestAccepting","sinceAccepts","charsSinceAccepts","index","first","second","char","defaultt","jr","encoded","words","stack","digits","popDigitCount","popCount","defaults","noop","Options","opts","defaultRender","o","ignoredTags","uppercaseIgnoredTags","ir","key","operator","isCallable","option","obj","val","MultiToken","value","options","truncate","formatted","protocol","formattedHref","tagName","content","attributes","className","target","rel","attrs","eventListeners","createTokenClass","type","Token","p","Email","Text","Url","makeState","arg","init$1","qsAccepting","qsNonAccepting","localpartAccepting","Localpart","Domain","Scheme","SlashScheme","LocalpartAt","LocalpartDot","EmailDomain","EmailDomainDot","Email$1","EmailDomainHyphen","DomainHyphen","DomainDot","DomainDotTld","DomainDotTldColon","DomainDotTldColonPort","Url$1","UrlNonaccept","SchemeColon","SlashSchemeColon","SlashSchemeColonSlash","UriPrefix","bracketPairs","OPEN","CLOSE","UrlOpen","UrlOpenQ","UrlOpenSyms","run","multis","textTokens","secondState","multiLength","initMultiToken","Multi","subtokens","startIdx","endIdx","INIT","init","tokenize","linkifyString","escapeHTML","escapeAttr","attributesToString","attr","headerRef","_sfc_main$5","_hoisted_1$5","_hoisted_2$3","_hoisted_3$3","_hoisted_4$3","_sfc_render$4","IconDockRight","_hoisted_1$4","IconStar","_hoisted_1$3","IconStarOutline","selected","_sfc_main$6","sidebarTabsButton","sidebarTabsButton_legacy","sidebarTabsButton_selected","sidebarTabsButton__name","sidebarTabsButton__icon","sidebarTabsButton__legacyIcon","style0","cssModules","NcAppSidebarTabsButton","tab","active","getCanonicalLocale","tabIndex","_component_NcAppSidebarTabsButton","Fragment","renderList","NcAppSidebarTabs","t15","_sfc_main$7","NcEmptyContent","vOnClickOutside","CONTENT_SELECTOR_KEY","provide","useIsSmallMobile","isSlotPopulated","menu","menuTrigger","element","logger","activeTab","_hoisted_8","_component_IconDockRight","_component_IconStar","_component_IconStarOutline","_component_NcAppSidebarHeader","_component_NcAppSidebarTabs","_component_NcEmptyContent","_directive_focus","resolveDirective","_directive_click_outside","Transition","Teleport","normalizeStyle","vShow","NcAppSidebar","PQueue","t28","t6","t35","gtBuilder","getGettextBuilder","gt","t7","margin","defaultSize","NcAvatar","userStatus","margin2","EMAIL_NOTATION","match","_component_NcAvatar","_component_NcHighlight","_component_NcIconSvgWrapper","NcListItemIcon","t38","t42","getCapabilities","t9","__emit","modelValue","search","clickableArea","gridBaseLine","avatarSize","filterBy","label","search2","subname","NcSelect","selectedOption","NcSelectUsers","t50","debounce","query","__expose","focus","select","useAttrs","textAreaElement","internalPlaceholder","isLegacy","ariaDescribedby","ariaDescribedby2","handleInput","mdiCheck","mdiAlertCircleOutline","NcTextArea"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28]} \ No newline at end of file +{"version":3,"file":"NcTextArea-Dxzj4zdb-BPZd41PF.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcActionButtonGroup-B9LfyE-G.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationList-CGSWabRB.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigation-Bb9-C2eO.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationCaption-E9iJtiQt.mjs","../node_modules/@nextcloud/vue/dist/chunks/ChevronUp-ChH8oB7p.mjs","../node_modules/@nextcloud/vue/dist/chunks/ArrowRight-B1ncAhus.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcInputConfirmCancel-B6qC3s63.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationItem-BFAIHyTL.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationSearch-CiOKjV3M.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationSettings-fbuQmy-q.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSettingsDialog-DByPnndK.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSettingsShortcutsSection-DgqVuZGx.mjs","../node_modules/@nextcloud/vue/dist/directives/Focus/index.mjs","../node_modules/linkifyjs/dist/linkify.mjs","../node_modules/@nextcloud/vue/dist/directives/Linkify/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-C-QhdyiN.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSidebar-Ch7Vp7q5.mjs","../node_modules/@nextcloud/vue/dist/functions/preloadImage/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcCollectionList-CO-iHqi6.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDashboardWidget-ftOfMTzx.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFilePicker-nPCwHMqj.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcKbd-Iyp0KDp4.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcHotkeyList-CmMgGhMr.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcListItemIcon-D_f5AGrh.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcProgressBar-C-ane-Ni.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcRelatedResourcesPanel-C0j0Fs4r.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSelectUsers-CI8twLn9.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSettingsSelectGroup-TN64yH4k.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcTextArea-Dxzj4zdb.mjs"],"sourcesContent":["import '../assets/NcActionButtonGroup-Bt8kRk79.css';\nimport { defineComponent, openBlock, createElementBlock, toDisplayString, createCommentVNode, createElementVNode, renderSlot } from \"vue\";\nimport { r as register, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-BzPO2c4h.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister();\nconst _sfc_main = defineComponent({\n name: \"NcActionButtonGroup\",\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\n /**\n * Optional text shown below the button group\n */\n name: {\n required: false,\n default: void 0,\n type: String\n }\n },\n setup() {\n return {\n labelId: createElementId()\n };\n },\n methods: {\n t\n }\n});\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = [\"id\"];\nconst _hoisted_3 = [\"aria-labelledby\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"li\", {\n class: \"nc-button-group-base\",\n role: _ctx.isInSemanticMenu && \"presentation\"\n }, [\n _ctx.name ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n id: _ctx.labelId\n }, toDisplayString(_ctx.name), 9, _hoisted_2)) : createCommentVNode(\"\", true),\n createElementVNode(\"ul\", {\n class: \"nc-button-group-content\",\n role: \"group\",\n \"aria-labelledby\": _ctx.name ? _ctx.labelId : void 0\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 8, _hoisted_3)\n ], 8, _hoisted_1);\n}\nconst NcActionButtonGroup = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-6a2b8de0\"]]);\nexport {\n NcActionButtonGroup as N\n};\n//# sourceMappingURL=NcActionButtonGroup-B9LfyE-G.mjs.map\n","import '../assets/NcAppNavigationList--36j6Acm.css';\nimport { openBlock, createElementBlock, renderSlot } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcAppNavigationList\"\n};\nconst _hoisted_1 = { class: \"app-navigation-list\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"ul\", _hoisted_1, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]);\n}\nconst NcAppNavigationList = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-d72957ed\"]]);\nexport {\n NcAppNavigationList as N\n};\n//# sourceMappingURL=NcAppNavigationList-CGSWabRB.mjs.map\n","import '../assets/NcAppNavigation-2b1jxOXM.css';\nimport { defineComponent, useModel, computed, openBlock, createElementBlock, createVNode, unref, withCtx, inject, warn, useTemplateRef, ref, watchEffect, watch, onMounted, onUnmounted, normalizeClass, createElementVNode, withKeys, renderSlot, createBlock, createCommentVNode } from \"vue\";\nimport { subscribe, emit, unsubscribe } from \"@nextcloud/event-bus\";\nimport { createFocusTrap } from \"focus-trap\";\nimport { N as NcAppNavigationList } from \"./NcAppNavigationList-CGSWabRB.mjs\";\nimport { G as mdiMenuOpen, H as mdiMenu } from \"./mdi-CpchYUUV.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { r as register, P as t20, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { g as getTrapStack } from \"./focusTrap-HJQ4pqHV.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { H as HAS_APP_NAVIGATION_KEY } from \"./constants-Ciwvl5xb.mjs\";\nregister(t20);\nconst _hoisted_1$1 = { class: \"app-navigation-toggle-wrapper\" };\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"NcAppNavigationToggle\",\n props: {\n \"open\": { type: Boolean, ...{ required: true } },\n \"openModifiers\": {}\n },\n emits: [\"update:open\"],\n setup(__props) {\n const open = useModel(__props, \"open\");\n const title = computed(() => open.value ? t(\"Close navigation\") : t(\"Open navigation\"));\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n createVNode(unref(NcButton), {\n class: \"app-navigation-toggle\",\n \"aria-controls\": \"app-navigation-vue\",\n \"aria-expanded\": open.value ? \"true\" : \"false\",\n \"aria-label\": title.value,\n title: title.value,\n variant: \"tertiary\",\n onClick: _cache[0] || (_cache[0] = ($event) => open.value = !open.value)\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: open.value ? unref(mdiMenuOpen) : unref(mdiMenu)\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-expanded\", \"aria-label\", \"title\"])\n ]);\n };\n }\n});\nconst NcAppNavigationToggle = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"__scopeId\", \"data-v-5a15295d\"]]);\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\", \"aria-labelledby\", \"inert\"];\nconst _hoisted_2 = { class: \"app-navigation__search\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppNavigation\",\n props: {\n ariaLabel: {},\n ariaLabelledby: {}\n },\n setup(__props) {\n const props = __props;\n let focusTrap;\n const setHasAppNavigation = inject(\n HAS_APP_NAVIGATION_KEY,\n () => warn(\"NcAppNavigation is not mounted inside NcContent, this is probably an error.\"),\n false\n );\n const appNavigationContainerElement = useTemplateRef(\"appNavigationContainer\");\n const isMobile = useIsMobile();\n const open = ref(!isMobile.value);\n watchEffect(() => {\n if (!props.ariaLabel && !props.ariaLabelledby) {\n warn(\"NcAppNavigation requires either `ariaLabel` or `ariaLabelledby` to be set for accessibility.\");\n }\n });\n watch(isMobile, () => {\n open.value = !isMobile.value;\n });\n watch(open, () => {\n toggleFocusTrap();\n });\n onMounted(() => {\n setHasAppNavigation(true);\n subscribe(\"toggle-navigation\", toggleNavigationByEventBus);\n emit(\"navigation-toggled\", {\n open: open.value\n });\n focusTrap = createFocusTrap(appNavigationContainerElement.value, {\n allowOutsideClick: true,\n clickOutsideDeactivates: () => {\n if (isMobile.value) {\n focusTrap.deactivate({ returnFocus: false });\n toggleNavigation(false);\n }\n return false;\n },\n fallbackFocus: appNavigationContainerElement.value,\n trapStack: getTrapStack(),\n escapeDeactivates: false\n });\n toggleFocusTrap();\n });\n onUnmounted(() => {\n setHasAppNavigation(false);\n unsubscribe(\"toggle-navigation\", toggleNavigationByEventBus);\n focusTrap.deactivate();\n });\n function toggleNavigation(state) {\n if (open.value === state) {\n emit(\"navigation-toggled\", {\n open: open.value\n });\n return;\n }\n open.value = state === void 0 ? !open.value : state;\n const bodyStyles = getComputedStyle(document.body);\n const animationLength = parseInt(bodyStyles.getPropertyValue(\"--animation-quick\")) || 100;\n setTimeout(() => {\n emit(\"navigation-toggled\", {\n open: open.value\n });\n }, 1.5 * animationLength);\n }\n function toggleNavigationByEventBus({ open: open2 }) {\n return toggleNavigation(open2);\n }\n function toggleFocusTrap() {\n if (isMobile.value && open.value) {\n focusTrap.activate();\n } else {\n focusTrap.deactivate();\n }\n }\n function handleEsc() {\n if (isMobile.value) {\n toggleNavigation(false);\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref: \"appNavigationContainer\",\n class: normalizeClass([\"app-navigation\", {\n \"app-navigation--closed\": !open.value,\n \"app-navigation--legacy\": unref(isLegacy34)\n }])\n }, [\n createElementVNode(\"nav\", {\n id: \"app-navigation-vue\",\n \"aria-hidden\": open.value ? \"false\" : \"true\",\n \"aria-label\": __props.ariaLabel || void 0,\n \"aria-labelledby\": __props.ariaLabelledby || void 0,\n class: \"app-navigation__content\",\n inert: !open.value || void 0,\n onKeydown: withKeys(handleEsc, [\"esc\"])\n }, [\n createElementVNode(\"div\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"search\", {}, void 0, true)\n ]),\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-navigation__body\", { \"app-navigation__body--no-list\": !_ctx.$slots.list }])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 2),\n _ctx.$slots.list ? (openBlock(), createBlock(NcAppNavigationList, {\n key: 0,\n class: \"app-navigation__list\"\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"list\", {}, void 0, true)\n ]),\n _: 3\n })) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"footer\", {}, void 0, true)\n ], 40, _hoisted_1),\n createVNode(NcAppNavigationToggle, {\n open: open.value,\n \"onUpdate:open\": toggleNavigation\n }, null, 8, [\"open\"])\n ], 2);\n };\n }\n});\nconst NcAppNavigation = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-104ef656\"]]);\nexport {\n NcAppNavigation as N\n};\n//# sourceMappingURL=NcAppNavigation-Bb9-C2eO.mjs.map\n","import '../assets/NcAppNavigationCaption-ggcWspH2.css';\nimport { N as NcActions } from \"./NcActions-CUmcZ3C3.mjs\";\nimport { resolveComponent, openBlock, createBlock, resolveDynamicComponent, normalizeClass, withCtx, createTextVNode, toDisplayString, createElementBlock, createVNode, normalizeProps, guardReactiveProps, renderSlot, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcAppNavigationCaption\",\n components: {\n NcActions\n },\n props: {\n /**\n * The text of the caption\n */\n name: {\n type: String,\n required: true\n },\n /**\n * `id` to set on the inner caption\n * Can be used for connecting the `NcActionCaption` with `NcActionList` using `aria-labelledby`.\n */\n headingId: {\n type: String,\n default: null\n },\n /**\n * Enable when used as a heading\n * e.g. Before NcAppNavigationList\n */\n isHeading: {\n type: Boolean,\n default: false\n },\n /**\n * If `isHeading` is set, this defines the heading level that should be used\n */\n headingLevel: {\n type: Number,\n default: 2\n },\n /**\n * Any [NcActions](#/Components/NcActions?id=ncactions-1) prop\n */\n // Not an actual prop but needed to show in vue-styleguidist docs\n ...NcActions.props\n },\n computed: {\n actionsProps() {\n const actionProps = Object.keys(NcActions.props);\n const props = Object.entries(this.$props).filter(([key, _value]) => actionProps.includes(key));\n return Object.fromEntries(props);\n },\n wrapperTag() {\n return this.isHeading ? \"div\" : \"li\";\n },\n captionTag() {\n const headingLevel = Math.max(2, this.headingLevel);\n return this.isHeading ? `h${headingLevel}` : \"span\";\n }\n }\n};\nconst _hoisted_1 = {\n key: 0,\n class: \"app-navigation-caption__actions\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcActions = resolveComponent(\"NcActions\");\n return openBlock(), createBlock(resolveDynamicComponent($options.wrapperTag), {\n class: normalizeClass([\"app-navigation-caption\", { \"app-navigation-caption--heading\": $props.isHeading }])\n }, {\n default: withCtx(() => [\n (openBlock(), createBlock(resolveDynamicComponent($options.captionTag), {\n id: $props.headingId,\n class: \"app-navigation-caption__name\"\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString($props.name), 1)\n ]),\n _: 1\n }, 8, [\"id\"])),\n !!_ctx.$slots.actions ? (openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createVNode(_component_NcActions, normalizeProps(guardReactiveProps($options.actionsProps)), {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"actionsTriggerIcon\", {}, void 0, true)\n ]),\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 3\n }, 16)\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 8, [\"class\"]);\n}\nconst NcAppNavigationCaption = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-f0e411c2\"]]);\nexport {\n NcAppNavigationCaption as N\n};\n//# sourceMappingURL=NcAppNavigationCaption-E9iJtiQt.mjs.map\n","import { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"ChevronUpIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon chevron-up-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst ChevronUp = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n ChevronUp as C\n};\n//# sourceMappingURL=ChevronUp-ChH8oB7p.mjs.map\n","import { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"ArrowRightIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon arrow-right-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst IconArrowRight = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n IconArrowRight as I\n};\n//# sourceMappingURL=ArrowRight-B1ncAhus.mjs.map\n","import '../assets/NcInputConfirmCancel-BEmwC87z.css';\nimport { I as IconArrowRight } from \"./ArrowRight-B1ncAhus.mjs\";\nimport { I as IconClose } from \"./Close-CuhcJnX2.mjs\";\nimport { r as register, k as t14, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, withModifiers, withKeys, withDirectives, vModelText, createVNode, withCtx } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t14);\nconst _sfc_main = {\n name: \"NcInputConfirmCancel\",\n components: {\n IconArrowRight,\n IconClose,\n NcButton\n },\n setup() {\n return { isLegacy34 };\n },\n props: {\n /**\n * If this element is used on a primary element set to true for primary styling.\n */\n primary: {\n default: false,\n type: Boolean\n },\n /**\n * Placeholder of the edit field\n */\n placeholder: {\n default: \"\",\n type: String\n },\n /**\n * The current name (model value)\n */\n modelValue: {\n default: \"\",\n type: String\n }\n },\n emits: [\n \"cancel\",\n \"confirm\",\n \"update:modelValue\"\n ],\n data() {\n return {\n labelConfirm: t(\"Confirm changes\"),\n labelCancel: t(\"Cancel changes\")\n };\n },\n computed: {\n valueModel: {\n get() {\n return this.modelValue;\n },\n set(newValue) {\n this.$emit(\"update:modelValue\", newValue);\n }\n }\n },\n methods: {\n confirm() {\n this.$emit(\"confirm\");\n },\n cancel() {\n this.$emit(\"cancel\");\n },\n focusInput() {\n this.$refs.input.focus();\n }\n }\n};\nconst _hoisted_1 = [\"placeholder\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_IconArrowRight = resolveComponent(\"IconArrowRight\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_IconClose = resolveComponent(\"IconClose\");\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"app-navigation-input-confirm\", { \"app-navigation-input-confirm--legacy\": $setup.isLegacy34 }])\n }, [\n createElementVNode(\"form\", {\n onSubmit: _cache[1] || (_cache[1] = withModifiers((...args) => $options.confirm && $options.confirm(...args), [\"prevent\"])),\n onKeydown: _cache[2] || (_cache[2] = withKeys(withModifiers((...args) => $options.cancel && $options.cancel(...args), [\"exact\", \"stop\", \"prevent\"]), [\"esc\"])),\n onClick: _cache[3] || (_cache[3] = withModifiers(() => {\n }, [\"stop\", \"prevent\"]))\n }, [\n withDirectives(createElementVNode(\"input\", {\n ref: \"input\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => $options.valueModel = $event),\n type: \"text\",\n class: \"app-navigation-input-confirm__input\",\n placeholder: $props.placeholder\n }, null, 8, _hoisted_1), [\n [vModelText, $options.valueModel]\n ]),\n createVNode(_component_NcButton, {\n \"aria-label\": $data.labelConfirm,\n type: \"submit\",\n variant: \"primary\",\n onClick: withModifiers($options.confirm, [\"stop\", \"prevent\"])\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconArrowRight, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"]),\n createVNode(_component_NcButton, {\n \"aria-label\": $data.labelCancel,\n type: \"reset\",\n variant: $props.primary ? \"primary\" : \"tertiary\",\n onClick: withModifiers($options.cancel, [\"stop\", \"prevent\"])\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconClose, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"variant\", \"onClick\"])\n ], 32)\n ], 2);\n}\nconst NcInputConfirmCancel = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-a8724c7f\"]]);\nexport {\n NcInputConfirmCancel as N\n};\n//# sourceMappingURL=NcInputConfirmCancel-B6qC3s63.mjs.map\n","import '../assets/NcAppNavigationItem-BsuZoJAq.css';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, resolveComponent, createBlock, normalizeClass, withCtx, resolveDynamicComponent, normalizeProps, guardReactiveProps, withKeys, withModifiers, renderSlot, createVNode, createTextVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { C as ChevronDown } from \"./ChevronDown-C6gc637b.mjs\";\nimport { C as ChevronUp } from \"./ChevronUp-ChH8oB7p.mjs\";\nimport { r as register, N as t21, a as t, b as t51, O as t23 } from \"./_l10n-CG4CuN3H.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { N as NcInputConfirmCancel } from \"./NcInputConfirmCancel-B6qC3s63.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-BO5T5ePT.mjs\";\nimport { N as NcActions } from \"./NcActions-CUmcZ3C3.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-BOVpFVQz.mjs\";\nimport { _ as _sfc_main$4 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nconst _sfc_main$3 = {\n name: \"PencilIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$2 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { d: \"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z\" };\nconst _hoisted_4$2 = { key: 0 };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon pencil-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$2, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$2, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$2))\n ], 16, _hoisted_1$2);\n}\nconst Pencil = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$2 = {\n name: \"UndoIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon undo-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$1);\n}\nconst Undo = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2]]);\nregister(t21);\nconst _sfc_main$1 = {\n name: \"NcAppNavigationIconCollapsible\",\n components: {\n NcButton,\n ChevronDown,\n ChevronUp\n },\n setup() {\n return { isLegacy34 };\n },\n props: {\n /**\n * Is the list currently open (or collapsed)\n */\n open: {\n type: Boolean,\n required: true\n },\n /**\n * Is the navigation item currently active.\n */\n active: {\n type: Boolean,\n required: true\n }\n },\n emits: [\"click\"],\n computed: {\n labelButton() {\n return this.open ? t(\"Collapse menu\") : t(\"Open menu\");\n }\n },\n methods: {\n onClick(e) {\n this.$emit(\"click\", e);\n }\n }\n};\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ChevronUp = resolveComponent(\"ChevronUp\");\n const _component_ChevronDown = resolveComponent(\"ChevronDown\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n return openBlock(), createBlock(_component_NcButton, {\n class: normalizeClass([\"icon-collapse\", {\n \"icon-collapse--active\": $props.active,\n \"icon-collapse--open\": $props.open\n }]),\n \"aria-label\": $options.labelButton,\n variant: $props.active && $setup.isLegacy34 ? \"tertiary-on-primary\" : \"tertiary\",\n onClick: $options.onClick\n }, {\n icon: withCtx(() => [\n $props.open ? (openBlock(), createBlock(_component_ChevronUp, {\n key: 0,\n size: 20\n })) : (openBlock(), createBlock(_component_ChevronDown, {\n key: 1,\n size: 20\n }))\n ]),\n _: 1\n }, 8, [\"class\", \"aria-label\", \"variant\", \"onClick\"]);\n}\nconst NcAppNavigationIconCollapsible = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-acf5ed2f\"]]);\nregister(t23, t51);\nconst _sfc_main = {\n name: \"NcAppNavigationItem\",\n components: {\n NcActions,\n NcActionButton,\n NcAppNavigationIconCollapsible,\n NcInputConfirmCancel,\n NcLoadingIcon,\n NcVNodes: _sfc_main$4,\n Pencil,\n Undo\n },\n props: {\n /**\n * If you are not using vue-router you can use the property to set this item as the active navigation entry.\n * When using vue-router and the `to` property this is set automatically.\n */\n active: {\n type: Boolean,\n default: false\n },\n /**\n * The main text content of the entry.\n */\n name: {\n type: String,\n required: true\n },\n /**\n * The title attribute of the element.\n */\n title: {\n type: String,\n default: null\n },\n /**\n * id attribute of the list item element\n */\n id: {\n type: String,\n default: () => createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * Refers to the icon on the left, this prop accepts a class\n * like 'icon-category-enabled'.\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * Displays a loading animated icon on the left of the element\n * instead of the icon.\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Passing in a route will make the root element of this\n * component a `` that points to that route.\n * By leaving this blank, the root element will be a `
  • `.\n */\n to: {\n type: [String, Object],\n default: null\n },\n /**\n * A direct link. This will be used as the `href` attribute.\n * This will ignore any `to` prop being defined.\n */\n href: {\n type: String,\n default: null\n },\n /**\n * Gives the possibility to collapse the children elements into the\n * parent element (true) or expands the children elements (false).\n */\n allowCollapse: {\n type: Boolean,\n default: false\n },\n /**\n * Makes the name of the item editable by providing an `ActionButton`\n * component that toggles a form\n */\n editable: {\n type: Boolean,\n default: false\n },\n /**\n * Only for 'editable' items, sets label for the edit action button.\n */\n editLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Only for items in 'editable' mode, sets the placeholder text for the editing form.\n */\n editPlaceholder: {\n type: String,\n default: \"\"\n },\n /**\n * Pins the item to the bottom left area, above the settings. Do not\n * place 'non-pinned' `AppnavigationItem` components below `pinned`\n * ones.\n */\n pinned: {\n type: Boolean,\n default: false\n },\n /**\n * Puts the item in the 'undo' state.\n */\n undo: {\n type: Boolean,\n default: false\n },\n /**\n * The navigation collapsible state (synced)\n */\n open: {\n type: Boolean,\n default: false\n },\n /**\n * The actions menu open state (synced)\n */\n menuOpen: {\n type: Boolean,\n default: false\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * The action's menu default icon\n */\n menuIcon: {\n type: String,\n default: void 0\n },\n /**\n * The action's menu direction\n */\n menuPlacement: {\n type: String,\n default: \"bottom\"\n },\n /**\n * Entry aria details\n */\n ariaDescription: {\n type: String,\n default: null\n },\n /**\n * To be used only when the elements in the actions menu are very important\n */\n forceDisplayActions: {\n type: Boolean,\n default: false\n },\n /**\n * Number of action items outside the menu\n */\n inlineActions: {\n type: Number,\n default: 0\n }\n },\n emits: [\n \"update:menuOpen\",\n \"update:open\",\n \"update:name\",\n \"click\",\n \"undo\"\n ],\n setup() {\n return {\n isMobile: useIsMobile(),\n isLegacy34\n };\n },\n data() {\n return {\n actionsBoundariesElement: void 0,\n editingValue: \"\",\n opened: this.open,\n // Collapsible state\n editingActive: false,\n /**\n * Tracks the open state of the actions menu\n */\n menuOpenLocalValue: false,\n focused: false\n };\n },\n computed: {\n isRouterLink() {\n return this.to && !this.href;\n },\n // Checks if the component is already a children of another\n // instance of AppNavigationItem\n canHaveChildren() {\n if (this.$parent.$options._componentTag === \"AppNavigationItem\") {\n return false;\n } else {\n return true;\n }\n },\n editButtonAriaLabel() {\n return this.editLabel ? this.editLabel : t(\"Edit item\");\n },\n undoButtonAriaLabel() {\n return t(\"Undo changes\");\n }\n },\n watch: {\n open(newVal) {\n this.opened = newVal;\n }\n },\n mounted() {\n this.actionsBoundariesElement = document.querySelector(\"#content-vue\") || void 0;\n },\n methods: {\n // sync opened menu state with prop\n onMenuToggle(state) {\n this.$emit(\"update:menuOpen\", state);\n this.menuOpenLocalValue = state;\n },\n // toggle the collapsible state\n toggleCollapse() {\n this.opened = !this.opened;\n this.$emit(\"update:open\", this.opened);\n },\n /**\n * Handle link click\n *\n * @param {PointerEvent} event - Native click event\n * @param {Function} [navigate] - VueRouter link's navigate if any\n * @param {string} [routerLinkHref] - VueRouter link's href\n */\n onClick(event, navigate, routerLinkHref) {\n this.$emit(\"click\", event);\n if (event.metaKey || event.altKey || event.ctrlKey || event.shiftKey) {\n return;\n }\n if (routerLinkHref) {\n navigate?.(event);\n event.preventDefault();\n }\n },\n // Edition methods\n handleEdit() {\n this.editingValue = this.name;\n this.editingActive = true;\n this.onMenuToggle(false);\n this.$nextTick(() => {\n this.$refs.editingInput.focusInput();\n });\n },\n cancelEditing() {\n this.editingActive = false;\n },\n handleEditingDone() {\n this.$emit(\"update:name\", this.editingValue);\n this.editingValue = \"\";\n this.editingActive = false;\n },\n // Undo methods\n handleUndo() {\n this.$emit(\"undo\");\n },\n /**\n * Show actions upon focus\n */\n handleFocus() {\n this.focused = true;\n },\n handleBlur() {\n this.focused = false;\n },\n /**\n * This method checks if the root element of the component is focused and\n * if that's the case it focuses the actions button if available\n *\n * @param {Event} e the keydown event\n */\n handleTab(e) {\n if (!this.$refs.actions) {\n return;\n }\n if (this.focused) {\n e.preventDefault();\n this.$refs.actions.$refs.triggerButton.$el.focus();\n this.focused = false;\n } else {\n this.$refs.actions.$refs.triggerButton.$el.blur();\n }\n },\n /**\n * Is this an external link\n *\n * @param {string} href The link to check\n * @return {boolean} Whether it is external or not\n */\n isExternal(href) {\n return href && href.match(/[a-z]+:\\/\\//i);\n }\n }\n};\nconst _hoisted_1 = [\"id\"];\nconst _hoisted_2 = [\"aria-current\", \"aria-description\", \"aria-expanded\", \"href\", \"target\", \"title\", \"onClick\"];\nconst _hoisted_3 = {\n key: 0,\n class: \"editingContainer\"\n};\nconst _hoisted_4 = {\n key: 1,\n class: \"app-navigation-entry__deleted\"\n};\nconst _hoisted_5 = { class: \"app-navigation-entry__deleted-description\" };\nconst _hoisted_6 = {\n key: 0,\n class: \"app-navigation-entry__counter-wrapper\"\n};\nconst _hoisted_7 = {\n key: 0,\n class: \"app-navigation-entry__children\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_NcInputConfirmCancel = resolveComponent(\"NcInputConfirmCancel\");\n const _component_Pencil = resolveComponent(\"Pencil\");\n const _component_NcActionButton = resolveComponent(\"NcActionButton\");\n const _component_Undo = resolveComponent(\"Undo\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n const _component_NcAppNavigationIconCollapsible = resolveComponent(\"NcAppNavigationIconCollapsible\");\n return openBlock(), createElementBlock(\"li\", {\n id: $props.id,\n class: normalizeClass([{\n \"app-navigation-entry--opened\": $data.opened,\n \"app-navigation-entry--pinned\": $props.pinned,\n \"app-navigation-entry--collapsible\": $props.allowCollapse && !!_ctx.$slots.default\n }, \"app-navigation-entry-wrapper\"])\n }, [\n (openBlock(), createBlock(resolveDynamicComponent($options.isRouterLink ? \"router-link\" : \"NcVNodes\"), normalizeProps(guardReactiveProps({ ...$options.isRouterLink && { custom: true, to: $props.to } })), {\n default: withCtx(({ href: routerLinkHref, navigate, isActive }) => [\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-navigation-entry\", {\n \"app-navigation-entry--editing\": $data.editingActive,\n \"app-navigation-entry--deleted\": $props.undo,\n \"app-navigation-entry--legacy\": $setup.isLegacy34,\n active: $props.to && isActive || $props.active\n }])\n }, [\n !$props.undo ? (openBlock(), createElementBlock(\"a\", {\n key: 0,\n class: \"app-navigation-entry-link\",\n \"aria-current\": $props.active || $props.to && isActive ? \"page\" : void 0,\n \"aria-description\": $props.ariaDescription,\n \"aria-expanded\": !!_ctx.$slots.default ? $data.opened.toString() : void 0,\n href: $props.href || routerLinkHref || \"#\",\n target: $options.isExternal($props.href) ? \"_blank\" : void 0,\n title: $props.title || $props.name,\n onBlur: _cache[1] || (_cache[1] = (...args) => $options.handleBlur && $options.handleBlur(...args)),\n onClick: ($event) => $options.onClick($event, navigate, routerLinkHref),\n onFocus: _cache[2] || (_cache[2] = (...args) => $options.handleFocus && $options.handleFocus(...args)),\n onKeydown: _cache[3] || (_cache[3] = withKeys(withModifiers((...args) => $options.handleTab && $options.handleTab(...args), [\"exact\"]), [\"tab\"]))\n }, [\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-navigation-entry-icon\", { [$props.icon]: $props.icon }])\n }, [\n $props.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : renderSlot(_ctx.$slots, \"icon\", {\n key: 1,\n active: $props.active || $props.to && isActive\n }, void 0, true)\n ], 2),\n createElementVNode(\"span\", {\n class: normalizeClass([\"app-navigation-entry__name\", { \"hidden-visually\": $data.editingActive }])\n }, toDisplayString($props.name), 3),\n $data.editingActive ? (openBlock(), createElementBlock(\"div\", _hoisted_3, [\n createVNode(_component_NcInputConfirmCancel, {\n ref: \"editingInput\",\n modelValue: $data.editingValue,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => $data.editingValue = $event),\n placeholder: $props.editPlaceholder !== \"\" ? $props.editPlaceholder : $props.name,\n primary: $props.to && isActive || $props.active,\n onCancel: $options.cancelEditing,\n onConfirm: $options.handleEditingDone\n }, null, 8, [\"modelValue\", \"placeholder\", \"primary\", \"onCancel\", \"onConfirm\"])\n ])) : createCommentVNode(\"\", true)\n ], 40, _hoisted_2)) : createCommentVNode(\"\", true),\n $props.undo ? (openBlock(), createElementBlock(\"div\", _hoisted_4, [\n createElementVNode(\"div\", _hoisted_5, toDisplayString($props.name), 1)\n ])) : createCommentVNode(\"\", true),\n (!!_ctx.$slots.actions || !!_ctx.$slots.counter || $props.editable || $props.undo) && !$data.editingActive ? (openBlock(), createElementBlock(\"div\", {\n key: 2,\n class: normalizeClass([\"app-navigation-entry__utils\", { \"app-navigation-entry__utils--display-actions\": $props.forceDisplayActions || $data.menuOpenLocalValue || $props.menuOpen }])\n }, [\n !!_ctx.$slots.counter ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n renderSlot(_ctx.$slots, \"counter\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true),\n !!_ctx.$slots.actions || $props.editable && !$data.editingActive || $props.undo ? (openBlock(), createBlock(_component_NcActions, {\n key: 1,\n ref: \"actions\",\n class: \"app-navigation-entry__actions\",\n container: \"#app-navigation-vue\",\n boundariesElement: $data.actionsBoundariesElement,\n inline: $props.inlineActions,\n placement: $props.menuPlacement,\n open: $props.menuOpen,\n forceMenu: $props.forceMenu,\n defaultIcon: $props.menuIcon,\n variant: \"tertiary\",\n \"onUpdate:open\": $options.onMenuToggle\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"menu-icon\", {}, void 0, true)\n ]),\n default: withCtx(() => [\n $props.editable && !$data.editingActive ? (openBlock(), createBlock(_component_NcActionButton, {\n key: 0,\n \"aria-label\": $options.editButtonAriaLabel,\n onClick: $options.handleEdit\n }, {\n icon: withCtx(() => [\n createVNode(_component_Pencil, { size: 20 })\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString($props.editLabel), 1)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"])) : createCommentVNode(\"\", true),\n $props.undo ? (openBlock(), createBlock(_component_NcActionButton, {\n key: 1,\n \"aria-label\": $options.undoButtonAriaLabel,\n onClick: $options.handleUndo\n }, {\n icon: withCtx(() => [\n createVNode(_component_Undo, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"])) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"boundariesElement\", \"inline\", \"placement\", \"open\", \"forceMenu\", \"defaultIcon\", \"onUpdate:open\"])) : createCommentVNode(\"\", true)\n ], 2)) : createCommentVNode(\"\", true),\n $props.allowCollapse && !!_ctx.$slots.default ? (openBlock(), createBlock(_component_NcAppNavigationIconCollapsible, {\n key: 3,\n active: $props.to && isActive || $props.active,\n open: $data.opened,\n onClick: withModifiers($options.toggleCollapse, [\"prevent\", \"stop\"])\n }, null, 8, [\"active\", \"open\", \"onClick\"])) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"extra\", {}, void 0, true)\n ], 2)\n ]),\n _: 3\n }, 16)),\n $options.canHaveChildren && !!_ctx.$slots.default ? (openBlock(), createElementBlock(\"ul\", _hoisted_7, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 10, _hoisted_1);\n}\nconst NcAppNavigationItem = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-e4d562ae\"]]);\nexport {\n NcAppNavigationItem as N\n};\n//# sourceMappingURL=NcAppNavigationItem-BFAIHyTL.mjs.map\n","import '../assets/NcAppNavigationSearch-DD7mo6OW.css';\nimport { defineComponent, useModel, useSlots, ref, useTemplateRef, watch, openBlock, createElementBlock, normalizeClass, createVNode, unref, withCtx, renderSlot, createCommentVNode, mergeModels, nextTick } from \"vue\";\nimport { useFocusWithin } from \"@vueuse/core\";\nimport { I as IconClose } from \"./Close-CuhcJnX2.mjs\";\nimport { N as NcInputField } from \"./NcInputField-B1bGxYHt.mjs\";\nimport { r as register, C as t44, u as t16, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t16, t44);\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppNavigationSearch\",\n props: /* @__PURE__ */ mergeModels({\n /**\n * Text used to label the search input\n */\n label: {\n type: String,\n default: t(\"Search …\")\n },\n /**\n * Placeholder of the search input\n * By default the value of `label` is used.\n */\n placeholder: {\n type: String,\n default: null\n }\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const model = useModel(__props, \"modelValue\");\n const slots = useSlots();\n const inputElement = ref();\n const { focused: inputHasFocus } = useFocusWithin(inputElement);\n const transitionTimeout = Number.parseInt(window.getComputedStyle(window.document.body).getPropertyValue(\"--animation-quick\")) || 100;\n const actionsContainerElement = useTemplateRef(\"actionsContainer\");\n const hasActions = () => !!slots.actions?.({});\n const showActions = ref(true);\n const timeoutId = ref();\n const hideActions = ref(false);\n watch(inputHasFocus, () => {\n showActions.value = !inputHasFocus.value;\n window.clearTimeout(timeoutId.value);\n if (showActions.value) {\n hideActions.value = false;\n } else {\n window.setTimeout(() => {\n hideActions.value = !showActions.value;\n }, transitionTimeout);\n }\n });\n function onCloseSearch() {\n model.value = \"\";\n if (hasActions()) {\n showActions.value = true;\n nextTick(() => actionsContainerElement.value?.querySelector(\"button\")?.focus());\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"app-navigation-search\", {\n \"app-navigation-search--has-actions\": hasActions()\n }])\n }, [\n createVNode(NcInputField, {\n ref_key: \"inputElement\",\n ref: inputElement,\n modelValue: model.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => model.value = $event),\n \"aria-label\": __props.label,\n class: \"app-navigation-search__input\",\n labelOutside: \"\",\n placeholder: __props.placeholder ?? __props.label,\n showTrailingButton: model.value.length > 0,\n trailingButtonLabel: unref(t)(\"Clear search\"),\n type: \"search\",\n onTrailingButtonClick: onCloseSearch\n }, {\n \"trailing-button-icon\": withCtx(() => [\n createVNode(IconClose, { size: 20 })\n ]),\n _: 1\n }, 8, [\"modelValue\", \"aria-label\", \"placeholder\", \"showTrailingButton\", \"trailingButtonLabel\"]),\n hasActions() ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n ref: \"actionsContainer\",\n class: normalizeClass([\"app-navigation-search__actions\", {\n \"app-navigation-search__actions--hidden\": !showActions.value,\n \"hidden-visually\": hideActions.value\n }])\n }, [\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ], 2)) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcAppNavigationSearch = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-191b6717\"]]);\nexport {\n NcAppNavigationSearch as N\n};\n//# sourceMappingURL=NcAppNavigationSearch-CiOKjV3M.mjs.map\n","import '../assets/NcAppNavigationSettings-HQEDobBQ.css';\nimport { defineComponent, ref, useTemplateRef, computed, openBlock, createElementBlock, normalizeClass, createElementVNode, createVNode, unref, withCtx, createTextVNode, toDisplayString, Transition, withDirectives, renderSlot, vShow } from \"vue\";\nimport { C as mdiCog, D as mdiCogOutline } from \"./mdi-CpchYUUV.mjs\";\nimport { onClickOutside } from \"@vueuse/core\";\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { r as register, B as t47, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { a as isLegacy } from \"./legacy-BoqDmOCa.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t47);\nconst _hoisted_1 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppNavigationSettings\",\n props: {\n excludeClickOutsideSelectors: { default: () => [] },\n name: { default: () => t(\"Settings\") }\n },\n setup(__props) {\n const contentId = createElementId();\n const open = ref(false);\n const container2 = useTemplateRef(\"wrapperElement\");\n const ignore = computed(() => Array.isArray(__props.excludeClickOutsideSelectors) ? __props.excludeClickOutsideSelectors : __props.excludeClickOutsideSelectors.split(\" \"));\n onClickOutside(container2, () => {\n open.value = false;\n }, { ignore });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref: \"wrapperElement\",\n class: normalizeClass(_ctx.$style.container)\n }, [\n createElementVNode(\"div\", {\n class: normalizeClass(_ctx.$style.header)\n }, [\n createVNode(NcButton, {\n \"aria-controls\": unref(contentId),\n \"aria-expanded\": open.value ? \"true\" : \"false\",\n class: normalizeClass(_ctx.$style.button),\n alignment: \"start\",\n variant: \"tertiary\",\n wide: \"\",\n onClick: _cache[0] || (_cache[0] = ($event) => open.value = !open.value)\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: unref(isLegacy) ? unref(mdiCog) : unref(mdiCogOutline)\n }, null, 8, [\"path\"])\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(__props.name), 1)\n ]),\n _: 1\n }, 8, [\"aria-controls\", \"aria-expanded\", \"class\"])\n ], 2),\n createVNode(Transition, {\n enterActiveClass: _ctx.$style.animationActive,\n leaveActiveClass: _ctx.$style.animationActive,\n enterFromClass: _ctx.$style.animationStop,\n leaveToClass: _ctx.$style.animationStop\n }, {\n default: withCtx(() => [\n withDirectives(createElementVNode(\"div\", {\n id: unref(contentId),\n class: normalizeClass(_ctx.$style.content)\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 10, _hoisted_1), [\n [vShow, open.value]\n ])\n ]),\n _: 3\n }, 8, [\"enterActiveClass\", \"leaveActiveClass\", \"enterFromClass\", \"leaveToClass\"])\n ], 2);\n };\n }\n});\nconst container = \"_container_RFk6U\";\nconst header = \"_header_2CtDS\";\nconst button = \"_button_tAyis\";\nconst content = \"_content_--KYD\";\nconst animationActive = \"_animationActive_DAG1p\";\nconst animationStop = \"_animationStop_fWYQj\";\nconst style0 = {\n container,\n header,\n button,\n content,\n animationActive,\n animationStop\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcAppNavigationSettings = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcAppNavigationSettings as N\n};\n//# sourceMappingURL=NcAppNavigationSettings-fbuQmy-q.mjs.map\n","import '../assets/NcAppSettingsDialog-HsZoLuDy.css';\nimport { defineComponent, inject, openBlock, createElementBlock, normalizeClass, unref, toDisplayString, useModel, provide, toRef, useTemplateRef, ref, computed, onBeforeUnmount, warn, createBlock, createSlots, withCtx, createElementVNode, renderSlot, createCommentVNode, Fragment, renderList, withKeys, withModifiers, mergeModels } from \"vue\";\nimport debounce from \"debounce\";\nimport { N as NcDialog } from \"./NcDialog-kwzJ3A4X.mjs\";\nimport { _ as _sfc_main$2 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nimport { u as useLocalizedAppName, A as APP_VERSION } from \"./appName-DyNMVZpX.mjs\";\nimport { A as APP_SETTINGS_LEGACY_DESIGN_KEY, a as APP_SETTINGS_REGISTRATION_KEY } from \"./useAppSettingsDialog-C73Wx6iQ.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { r as register, I as t48, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"NcAppSettingsDialogVersion\",\n setup(__props) {\n const legacy = inject(APP_SETTINGS_LEGACY_DESIGN_KEY);\n const localizedAppName = useLocalizedAppName();\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([_ctx.$style.appSettingsDialogVersion, { [_ctx.$style.appSettingsDialogVersion__legacy]: unref(legacy) }])\n }, toDisplayString(unref(localizedAppName)) + \" \" + toDisplayString(unref(APP_VERSION)), 3);\n };\n }\n});\nconst appSettingsDialogVersion = \"_appSettingsDialogVersion_8Xr7R\";\nconst appSettingsDialogVersion__legacy = \"_appSettingsDialogVersion__legacy_7MO71\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_qDIHA\",\n appSettingsDialogVersion,\n appSettingsDialogVersion__legacy\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcAppSettingsDialogVersion = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"__cssModules\", cssModules]]);\nregister(t48);\nconst _hoisted_1 = {\n key: 0,\n class: \"app-settings__title\"\n};\nconst _hoisted_2 = {\n key: 1,\n class: \"navigation-list\"\n};\nconst _hoisted_3 = [\"aria-current\", \"href\", \"onClick\", \"onKeydown\"];\nconst _hoisted_4 = {\n key: 0,\n class: \"navigation-list__link-icon\"\n};\nconst _hoisted_5 = { class: \"navigation-list__link-text\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppSettingsDialog\",\n props: /* @__PURE__ */ mergeModels({\n showNavigation: { type: Boolean },\n container: { default: \"body\" },\n name: { default: \"\" },\n additionalTrapElements: { default: () => [] },\n legacy: { type: Boolean, default: false },\n noVersion: { type: Boolean, default: false }\n }, {\n \"open\": { type: Boolean, ...{ required: true } },\n \"openModifiers\": {}\n }),\n emits: [\"update:open\"],\n setup(__props) {\n const open = useModel(__props, \"open\");\n const props = __props;\n provide(APP_SETTINGS_REGISTRATION_KEY, {\n registerSection,\n unregisterSection\n });\n provide(APP_SETTINGS_LEGACY_DESIGN_KEY, toRef(() => props.legacy));\n const settingsScrollerElement = useTemplateRef(\"settingsScroller\");\n const isMobile = useIsMobile();\n const selectedSection = ref(\"\");\n const linkClicked = ref(false);\n const registeredSections = ref([]);\n const hasNavigation = computed(() => !isMobile.value && props.showNavigation);\n const hasNavigationIcons = computed(() => registeredSections.value.some(({ icon }) => !!icon));\n const unfocusNavigationItem = debounce(() => {\n selectedSection.value = \"\";\n if (document.activeElement?.className.includes(\"navigation-list__link\")) {\n document.activeElement.blur();\n }\n }, 300);\n const sectionsOrderMap = /* @__PURE__ */ new Map();\n onBeforeUnmount(() => {\n sectionsOrderMap.clear();\n });\n function handleSettingsNavigationClick(item) {\n linkClicked.value = true;\n document.getElementById(\"settings-section_\" + item).scrollIntoView({\n behavior: \"smooth\",\n inline: \"nearest\"\n });\n selectedSection.value = item;\n setTimeout(() => {\n linkClicked.value = false;\n }, 1e3);\n }\n function handleCloseModal(isOpen) {\n if (isOpen) {\n return;\n }\n open.value = false;\n settingsScrollerElement.value.scrollTop = 0;\n }\n function handleScroll() {\n if (open.value && !linkClicked.value) {\n unfocusNavigationItem();\n }\n }\n function registerSection(id, name, order, icon) {\n if (registeredSections.value.some(({ id: otherId }) => id === otherId)) {\n throw new Error(`Duplicate section id found: ${id}. Settings navigation sections must have unique section ids.`);\n }\n if (registeredSections.value.some(({ name: otherName }) => name === otherName)) {\n warn(`Duplicate section name found: ${name}. Settings navigation sections must have unique section names.`);\n }\n if (order !== void 0) {\n sectionsOrderMap.set(id, order);\n } else if (sectionsOrderMap.has(id)) {\n order = sectionsOrderMap.get(id);\n } else {\n order = Math.max(0, ...sectionsOrderMap.values()) + 1;\n sectionsOrderMap.set(id, order);\n }\n registeredSections.value = [...registeredSections.value, { id, name, order, icon }].sort(({ order: orderA }, { order: orderB }) => {\n return orderA - orderB;\n });\n if (registeredSections.value.length === 1) {\n selectedSection.value = id;\n }\n }\n function unregisterSection(id) {\n registeredSections.value = registeredSections.value.filter(({ id: otherId }) => id !== otherId);\n if (selectedSection.value === id) {\n selectedSection.value = registeredSections.value[0]?.id ?? \"\";\n }\n }\n return (_ctx, _cache) => {\n return open.value ? (openBlock(), createBlock(NcDialog, {\n key: 0,\n class: normalizeClass([\"app-settings\", { \"app-settings--legacy\": unref(isLegacy34) }]),\n contentClasses: \"app-settings__content\",\n navigationClasses: \"app-settings__navigation\",\n additionalTrapElements: __props.additionalTrapElements,\n container: __props.container,\n closeOnClickOutside: \"\",\n \"navigation-aria-label\": unref(t)(\"Settings navigation\"),\n size: \"large\",\n name: __props.name,\n \"onUpdate:open\": handleCloseModal\n }, createSlots({\n default: withCtx(() => [\n createElementVNode(\"div\", {\n ref: \"settingsScroller\",\n onScroll: handleScroll\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true),\n !__props.noVersion ? (openBlock(), createBlock(NcAppSettingsDialogVersion, { key: 0 })) : createCommentVNode(\"\", true)\n ], 544)\n ]),\n _: 2\n }, [\n hasNavigation.value ? {\n name: \"navigation\",\n fn: withCtx(({ isCollapsed }) => [\n !unref(isLegacy34) ? (openBlock(), createElementBlock(\"div\", _hoisted_1, toDisplayString(__props.name), 1)) : createCommentVNode(\"\", true),\n !isCollapsed ? (openBlock(), createElementBlock(\"ul\", _hoisted_2, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(registeredSections.value, (section) => {\n return openBlock(), createElementBlock(\"li\", {\n key: section.id\n }, [\n createElementVNode(\"a\", {\n \"aria-current\": `${section.id === selectedSection.value}`,\n class: normalizeClass([\"navigation-list__link\", {\n \"navigation-list__link--active\": section.id === selectedSection.value,\n \"navigation-list__link--icon\": hasNavigationIcons.value\n }]),\n href: `#settings-section_${section.id}`,\n tabindex: \"0\",\n onClick: withModifiers(($event) => handleSettingsNavigationClick(section.id), [\"prevent\"]),\n onKeydown: withKeys(($event) => handleSettingsNavigationClick(section.id), [\"enter\"])\n }, [\n hasNavigationIcons.value ? (openBlock(), createElementBlock(\"div\", _hoisted_4, [\n section.icon ? (openBlock(), createBlock(_sfc_main$2, {\n key: 0,\n vnodes: section.icon\n }, null, 8, [\"vnodes\"])) : createCommentVNode(\"\", true)\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_5, toDisplayString(section.name), 1)\n ], 42, _hoisted_3)\n ]);\n }), 128))\n ])) : createCommentVNode(\"\", true)\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"class\", \"additionalTrapElements\", \"container\", \"navigation-aria-label\", \"name\"])) : createCommentVNode(\"\", true);\n };\n }\n});\nconst NcAppSettingsDialog = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-e669a5ef\"]]);\nexport {\n NcAppSettingsDialog as N\n};\n//# sourceMappingURL=NcAppSettingsDialog-DByPnndK.mjs.map\n","import '../assets/NcAppSettingsShortcutsSection-BonG0SgH.css';\nimport { defineComponent, openBlock, createBlock, unref, withCtx, createElementVNode, normalizeClass, renderSlot } from \"vue\";\nimport { N as NcAppSettingsSection } from \"./NcAppSettingsSection-BosSmisT.mjs\";\nimport { r as register, p as t31, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t31);\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppSettingsShortcutsSection\",\n setup(__props) {\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcAppSettingsSection, {\n id: \"keyboard-shortcuts\",\n name: unref(t)(\"Keyboard shortcuts\")\n }, {\n default: withCtx(() => [\n createElementVNode(\"div\", {\n class: normalizeClass(_ctx.$style.appSettingsSectionShortcuts)\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 2)\n ]),\n _: 3\n }, 8, [\"name\"]);\n };\n }\n});\nconst appSettingsSectionShortcuts = \"_appSettingsSectionShortcuts_RqpkA\";\nconst style0 = {\n appSettingsSectionShortcuts\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcAppSettingsShortcutsSection = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcAppSettingsShortcutsSection as N\n};\n//# sourceMappingURL=NcAppSettingsShortcutsSection-DgqVuZGx.mjs.map\n","const directive = {\n mounted(el) {\n el.focus();\n }\n};\nexport {\n directive as default\n};\n//# sourceMappingURL=index.mjs.map\n","// THIS FILE IS AUTOMATICALLY GENERATED DO NOT EDIT DIRECTLY\n// See update-tlds.js for encoding/decoding format\n// https://data.iana.org/TLD/tlds-alpha-by-domain.txt\nconst encodedTlds = 'aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2odyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rck0msd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2oodside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2';\n// Internationalized domain names containing non-ASCII\nconst encodedUtlds = 'ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2';\n\n/**\n * Finite State Machine generation utilities\n */\n\n/**\n * @template T\n * @typedef {{ [group: string]: T[] }} Collections\n */\n\n/**\n * @typedef {{ [group: string]: true }} Flags\n */\n\n// Keys in scanner Collections instances\nconst numeric = 'numeric';\nconst ascii = 'ascii';\nconst alpha = 'alpha';\nconst asciinumeric = 'asciinumeric';\nconst alphanumeric = 'alphanumeric';\nconst domain = 'domain';\nconst emoji = 'emoji';\nconst scheme = 'scheme';\nconst slashscheme = 'slashscheme';\nconst whitespace = 'whitespace';\n\n/**\n * @template T\n * @param {string} name\n * @param {Collections} groups to register in\n * @returns {T[]} Current list of tokens in the given collection\n */\nfunction registerGroup(name, groups) {\n if (!(name in groups)) {\n groups[name] = [];\n }\n return groups[name];\n}\n\n/**\n * @template T\n * @param {T} t token to add\n * @param {Collections} groups\n * @param {Flags} flags\n */\nfunction addToGroups(t, flags, groups) {\n if (flags[numeric]) {\n flags[asciinumeric] = true;\n flags[alphanumeric] = true;\n }\n if (flags[ascii]) {\n flags[asciinumeric] = true;\n flags[alpha] = true;\n }\n if (flags[asciinumeric]) {\n flags[alphanumeric] = true;\n }\n if (flags[alpha]) {\n flags[alphanumeric] = true;\n }\n if (flags[alphanumeric]) {\n flags[domain] = true;\n }\n if (flags[emoji]) {\n flags[domain] = true;\n }\n for (const k in flags) {\n const group = registerGroup(k, groups);\n if (group.indexOf(t) < 0) {\n group.push(t);\n }\n }\n}\n\n/**\n * @template T\n * @param {T} t token to check\n * @param {Collections} groups\n * @returns {Flags} group flags that contain this token\n */\nfunction flagsForToken(t, groups) {\n const result = {};\n for (const c in groups) {\n if (groups[c].indexOf(t) >= 0) {\n result[c] = true;\n }\n }\n return result;\n}\n\n/**\n * @template T\n * @typedef {null | T } Transition\n */\n\n/**\n * Define a basic state machine state. j is the list of character transitions,\n * jr is the list of regex-match transitions, jd is the default state to\n * transition to t is the accepting token type, if any. If this is the terminal\n * state, then it does not emit a token.\n *\n * The template type T represents the type of the token this state accepts. This\n * should be a string (such as of the token exports in `text.js`) or a\n * MultiToken subclass (from `multi.js`)\n *\n * @template T\n * @param {T} [token] Token that this state emits\n */\nfunction State(token = null) {\n // this.n = null; // DEBUG: State name\n /** @type {{ [input: string]: State }} j */\n this.j = {}; // IMPLEMENTATION 1\n // this.j = []; // IMPLEMENTATION 2\n /** @type {[RegExp, State][]} jr */\n this.jr = [];\n /** @type {?State} jd */\n this.jd = null;\n /** @type {?T} t */\n this.t = token;\n}\n\n/**\n * Scanner token groups\n * @type Collections\n */\nState.groups = {};\nState.prototype = {\n accepts() {\n return !!this.t;\n },\n /**\n * Follow an existing transition from the given input to the next state.\n * Does not mutate.\n * @param {string} input character or token type to transition on\n * @returns {?State} the next state, if any\n */\n go(input) {\n const state = this;\n const nextState = state.j[input];\n if (nextState) {\n return nextState;\n }\n for (let i = 0; i < state.jr.length; i++) {\n const regex = state.jr[i][0];\n const nextState = state.jr[i][1]; // note: might be empty to prevent default jump\n if (nextState && regex.test(input)) {\n return nextState;\n }\n }\n // Nowhere left to jump! Return default, if any\n return state.jd;\n },\n /**\n * Whether the state has a transition for the given input. Set the second\n * argument to true to only look for an exact match (and not a default or\n * regular-expression-based transition)\n * @param {string} input\n * @param {boolean} exactOnly\n */\n has(input, exactOnly = false) {\n return exactOnly ? input in this.j : !!this.go(input);\n },\n /**\n * Short for \"transition all\"; create a transition from the array of items\n * in the given list to the same final resulting state.\n * @param {string | string[]} inputs Group of inputs to transition on\n * @param {Transition | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n */\n ta(inputs, next, flags, groups) {\n for (let i = 0; i < inputs.length; i++) {\n this.tt(inputs[i], next, flags, groups);\n }\n },\n /**\n * Short for \"take regexp transition\"; defines a transition for this state\n * when it encounters a token which matches the given regular expression\n * @param {RegExp} regexp Regular expression transition (populate first)\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n * @returns {State} taken after the given input\n */\n tr(regexp, next, flags, groups) {\n groups = groups || State.groups;\n let nextState;\n if (next && next.j) {\n nextState = next;\n } else {\n // Token with maybe token groups\n nextState = new State(next);\n if (flags && groups) {\n addToGroups(next, flags, groups);\n }\n }\n this.jr.push([regexp, nextState]);\n return nextState;\n },\n /**\n * Short for \"take transitions\", will take as many sequential transitions as\n * the length of the given input and returns the\n * resulting final state.\n * @param {string | string[]} input\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n * @returns {State} taken after the given input\n */\n ts(input, next, flags, groups) {\n let state = this;\n const len = input.length;\n if (!len) {\n return state;\n }\n for (let i = 0; i < len - 1; i++) {\n state = state.tt(input[i]);\n }\n return state.tt(input[len - 1], next, flags, groups);\n },\n /**\n * Short for \"take transition\", this is a method for building/working with\n * state machines.\n *\n * If a state already exists for the given input, returns it.\n *\n * If a token is specified, that state will emit that token when reached by\n * the linkify engine.\n *\n * If no state exists, it will be initialized with some default transitions\n * that resemble existing default transitions.\n *\n * If a state is given for the second argument, that state will be\n * transitioned to on the given input regardless of what that input\n * previously did.\n *\n * Specify a token group flags to define groups that this token belongs to.\n * The token will be added to corresponding entires in the given groups\n * object.\n *\n * @param {string} input character, token type to transition on\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of groups\n * @returns {State} taken after the given input\n */\n tt(input, next, flags, groups) {\n groups = groups || State.groups;\n const state = this;\n\n // Check if existing state given, just a basic transition\n if (next && next.j) {\n state.j[input] = next;\n return next;\n }\n const t = next;\n\n // Take the transition with the usual default mechanisms and use that as\n // a template for creating the next state\n let nextState,\n templateState = state.go(input);\n if (templateState) {\n nextState = new State();\n Object.assign(nextState.j, templateState.j);\n nextState.jr.push.apply(nextState.jr, templateState.jr);\n nextState.jd = templateState.jd;\n nextState.t = templateState.t;\n } else {\n nextState = new State();\n }\n if (t) {\n // Ensure newly token is in the same groups as the old token\n if (groups) {\n if (nextState.t && typeof nextState.t === 'string') {\n const allFlags = Object.assign(flagsForToken(nextState.t, groups), flags);\n addToGroups(t, allFlags, groups);\n } else if (flags) {\n addToGroups(t, flags, groups);\n }\n }\n nextState.t = t; // overwrite anything that was previously there\n }\n state.j[input] = nextState;\n return nextState;\n }\n};\n\n// Helper functions to improve minification (not exported outside linkifyjs module)\n\n/**\n * @template T\n * @param {State} state\n * @param {string | string[]} input\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\nconst ta = (state, input, next, flags, groups) => state.ta(input, next, flags, groups);\n\n/**\n * @template T\n * @param {State} state\n * @param {RegExp} regexp\n * @param {T | State} [next]\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\nconst tr = (state, regexp, next, flags, groups) => state.tr(regexp, next, flags, groups);\n\n/**\n * @template T\n * @param {State} state\n * @param {string | string[]} input\n * @param {T | State} [next]\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\nconst ts = (state, input, next, flags, groups) => state.ts(input, next, flags, groups);\n\n/**\n * @template T\n * @param {State} state\n * @param {string} input\n * @param {T | State} [next]\n * @param {Collections} [groups]\n * @param {Flags} [flags]\n */\nconst tt = (state, input, next, flags, groups) => state.tt(input, next, flags, groups);\n\n/******************************************************************************\nText Tokens\nIdentifiers for token outputs from the regexp scanner\n******************************************************************************/\n\n// A valid web domain token\nconst WORD = 'WORD'; // only contains a-z\nconst UWORD = 'UWORD'; // contains letters other than a-z, used for IDN\nconst ASCIINUMERICAL = 'ASCIINUMERICAL'; // contains a-z, 0-9\nconst ALPHANUMERICAL = 'ALPHANUMERICAL'; // contains numbers and letters other than a-z, used for IDN\n\n// Special case of word\nconst LOCALHOST = 'LOCALHOST';\n\n// Valid top-level domain, special case of WORD (see tlds.js)\nconst TLD = 'TLD';\n\n// Valid IDN TLD, special case of UWORD (see tlds.js)\nconst UTLD = 'UTLD';\n\n// The scheme portion of a web URI protocol. Supported types include: `mailto`,\n// `file`, and user-defined custom protocols. Limited to schemes that contain\n// only letters\nconst SCHEME = 'SCHEME';\n\n// Similar to SCHEME, except makes distinction for schemes that must always be\n// followed by `://`, not just `:`. Supported types include `http`, `https`,\n// `ftp`, `ftps`\nconst SLASH_SCHEME = 'SLASH_SCHEME';\n\n// Any sequence of digits 0-9\nconst NUM = 'NUM';\n\n// Any number of consecutive whitespace characters that are not newline\nconst WS = 'WS';\n\n// New line (unix style)\nconst NL = 'NL'; // \\n\n\n// Opening/closing bracket classes\n// TODO: Rename OPEN -> LEFT and CLOSE -> RIGHT in v5 to fit with Unicode names\n// Also rename angle brackes to LESSTHAN and GREATER THAN\nconst OPENBRACE = 'OPENBRACE'; // {\nconst CLOSEBRACE = 'CLOSEBRACE'; // }\nconst OPENBRACKET = 'OPENBRACKET'; // [\nconst CLOSEBRACKET = 'CLOSEBRACKET'; // ]\nconst OPENPAREN = 'OPENPAREN'; // (\nconst CLOSEPAREN = 'CLOSEPAREN'; // )\nconst OPENANGLEBRACKET = 'OPENANGLEBRACKET'; // <\nconst CLOSEANGLEBRACKET = 'CLOSEANGLEBRACKET'; // >\nconst FULLWIDTHLEFTPAREN = 'FULLWIDTHLEFTPAREN'; // (\nconst FULLWIDTHRIGHTPAREN = 'FULLWIDTHRIGHTPAREN'; // )\nconst LEFTCORNERBRACKET = 'LEFTCORNERBRACKET'; // 「\nconst RIGHTCORNERBRACKET = 'RIGHTCORNERBRACKET'; // 」\nconst LEFTWHITECORNERBRACKET = 'LEFTWHITECORNERBRACKET'; // 『\nconst RIGHTWHITECORNERBRACKET = 'RIGHTWHITECORNERBRACKET'; // 』\nconst FULLWIDTHLESSTHAN = 'FULLWIDTHLESSTHAN'; // <\nconst FULLWIDTHGREATERTHAN = 'FULLWIDTHGREATERTHAN'; // >\n\n// Various symbols\nconst AMPERSAND = 'AMPERSAND'; // &\nconst APOSTROPHE = 'APOSTROPHE'; // '\nconst ASTERISK = 'ASTERISK'; // *\nconst AT = 'AT'; // @\nconst BACKSLASH = 'BACKSLASH'; // \\\nconst BACKTICK = 'BACKTICK'; // `\nconst CARET = 'CARET'; // ^\nconst COLON = 'COLON'; // :\nconst COMMA = 'COMMA'; // ,\nconst DOLLAR = 'DOLLAR'; // $\nconst DOT = 'DOT'; // .\nconst EQUALS = 'EQUALS'; // =\nconst EXCLAMATION = 'EXCLAMATION'; // !\nconst HYPHEN = 'HYPHEN'; // -\nconst PERCENT = 'PERCENT'; // %\nconst PIPE = 'PIPE'; // |\nconst PLUS = 'PLUS'; // +\nconst POUND = 'POUND'; // #\nconst QUERY = 'QUERY'; // ?\nconst QUOTE = 'QUOTE'; // \"\nconst FULLWIDTHMIDDLEDOT = 'FULLWIDTHMIDDLEDOT'; // ・\n\nconst SEMI = 'SEMI'; // ;\nconst SLASH = 'SLASH'; // /\nconst TILDE = 'TILDE'; // ~\nconst UNDERSCORE = 'UNDERSCORE'; // _\n\n// Emoji symbol\nconst EMOJI$1 = 'EMOJI';\n\n// Default token - anything that is not one of the above\nconst SYM = 'SYM';\n\nvar tk = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tALPHANUMERICAL: ALPHANUMERICAL,\n\tAMPERSAND: AMPERSAND,\n\tAPOSTROPHE: APOSTROPHE,\n\tASCIINUMERICAL: ASCIINUMERICAL,\n\tASTERISK: ASTERISK,\n\tAT: AT,\n\tBACKSLASH: BACKSLASH,\n\tBACKTICK: BACKTICK,\n\tCARET: CARET,\n\tCLOSEANGLEBRACKET: CLOSEANGLEBRACKET,\n\tCLOSEBRACE: CLOSEBRACE,\n\tCLOSEBRACKET: CLOSEBRACKET,\n\tCLOSEPAREN: CLOSEPAREN,\n\tCOLON: COLON,\n\tCOMMA: COMMA,\n\tDOLLAR: DOLLAR,\n\tDOT: DOT,\n\tEMOJI: EMOJI$1,\n\tEQUALS: EQUALS,\n\tEXCLAMATION: EXCLAMATION,\n\tFULLWIDTHGREATERTHAN: FULLWIDTHGREATERTHAN,\n\tFULLWIDTHLEFTPAREN: FULLWIDTHLEFTPAREN,\n\tFULLWIDTHLESSTHAN: FULLWIDTHLESSTHAN,\n\tFULLWIDTHMIDDLEDOT: FULLWIDTHMIDDLEDOT,\n\tFULLWIDTHRIGHTPAREN: FULLWIDTHRIGHTPAREN,\n\tHYPHEN: HYPHEN,\n\tLEFTCORNERBRACKET: LEFTCORNERBRACKET,\n\tLEFTWHITECORNERBRACKET: LEFTWHITECORNERBRACKET,\n\tLOCALHOST: LOCALHOST,\n\tNL: NL,\n\tNUM: NUM,\n\tOPENANGLEBRACKET: OPENANGLEBRACKET,\n\tOPENBRACE: OPENBRACE,\n\tOPENBRACKET: OPENBRACKET,\n\tOPENPAREN: OPENPAREN,\n\tPERCENT: PERCENT,\n\tPIPE: PIPE,\n\tPLUS: PLUS,\n\tPOUND: POUND,\n\tQUERY: QUERY,\n\tQUOTE: QUOTE,\n\tRIGHTCORNERBRACKET: RIGHTCORNERBRACKET,\n\tRIGHTWHITECORNERBRACKET: RIGHTWHITECORNERBRACKET,\n\tSCHEME: SCHEME,\n\tSEMI: SEMI,\n\tSLASH: SLASH,\n\tSLASH_SCHEME: SLASH_SCHEME,\n\tSYM: SYM,\n\tTILDE: TILDE,\n\tTLD: TLD,\n\tUNDERSCORE: UNDERSCORE,\n\tUTLD: UTLD,\n\tUWORD: UWORD,\n\tWORD: WORD,\n\tWS: WS\n});\n\n// Note that these two Unicode ones expand into a really big one with Babel\nconst ASCII_LETTER = /[a-z]/;\nconst LETTER = /\\p{L}/u; // Any Unicode character with letter data type\nconst EMOJI = /\\p{Emoji}/u; // Any Unicode emoji character\nconst EMOJI_VARIATION$1 = /\\ufe0f/;\nconst DIGIT = /\\d/;\nconst SPACE = /\\s/;\n\nvar regexp = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tASCII_LETTER: ASCII_LETTER,\n\tDIGIT: DIGIT,\n\tEMOJI: EMOJI,\n\tEMOJI_VARIATION: EMOJI_VARIATION$1,\n\tLETTER: LETTER,\n\tSPACE: SPACE\n});\n\n/**\n\tThe scanner provides an interface that takes a string of text as input, and\n\toutputs an array of tokens instances that can be used for easy URL parsing.\n*/\n\nconst CR = '\\r'; // carriage-return character\nconst LF = '\\n'; // line-feed character\nconst EMOJI_VARIATION = '\\ufe0f'; // Variation selector, follows heart and others\nconst EMOJI_JOINER = '\\u200d'; // zero-width joiner\nconst OBJECT_REPLACEMENT = '\\ufffc'; // whitespace placeholder that sometimes appears in rich text editors\n\nlet tlds = null,\n utlds = null; // don't change so only have to be computed once\n\n/**\n * Scanner output token:\n * - `t` is the token name (e.g., 'NUM', 'EMOJI', 'TLD')\n * - `v` is the value of the token (e.g., '123', '❤️', 'com')\n * - `s` is the start index of the token in the original string\n * - `e` is the end index of the token in the original string\n * @typedef {{t: string, v: string, s: number, e: number}} Token\n */\n\n/**\n * @template T\n * @typedef {{ [collection: string]: T[] }} Collections\n */\n\n/**\n * Initialize the scanner character-based state machine for the given start\n * state\n * @param {[string, boolean][]} customSchemes List of custom schemes, where each\n * item is a length-2 tuple with the first element set to the string scheme, and\n * the second element set to `true` if the `://` after the scheme is optional\n */\nfunction init$2(customSchemes = []) {\n // Frequently used states (name argument removed during minification)\n /** @type Collections */\n const groups = {}; // of tokens\n State.groups = groups;\n /** @type State */\n const Start = new State();\n if (tlds == null) {\n tlds = decodeTlds(encodedTlds);\n }\n if (utlds == null) {\n utlds = decodeTlds(encodedUtlds);\n }\n\n // States for special URL symbols that accept immediately after start\n tt(Start, \"'\", APOSTROPHE);\n tt(Start, '{', OPENBRACE);\n tt(Start, '}', CLOSEBRACE);\n tt(Start, '[', OPENBRACKET);\n tt(Start, ']', CLOSEBRACKET);\n tt(Start, '(', OPENPAREN);\n tt(Start, ')', CLOSEPAREN);\n tt(Start, '<', OPENANGLEBRACKET);\n tt(Start, '>', CLOSEANGLEBRACKET);\n tt(Start, '(', FULLWIDTHLEFTPAREN);\n tt(Start, ')', FULLWIDTHRIGHTPAREN);\n tt(Start, '「', LEFTCORNERBRACKET);\n tt(Start, '」', RIGHTCORNERBRACKET);\n tt(Start, '『', LEFTWHITECORNERBRACKET);\n tt(Start, '』', RIGHTWHITECORNERBRACKET);\n tt(Start, '<', FULLWIDTHLESSTHAN);\n tt(Start, '>', FULLWIDTHGREATERTHAN);\n tt(Start, '&', AMPERSAND);\n tt(Start, '*', ASTERISK);\n tt(Start, '@', AT);\n tt(Start, '`', BACKTICK);\n tt(Start, '^', CARET);\n tt(Start, ':', COLON);\n tt(Start, ',', COMMA);\n tt(Start, '$', DOLLAR);\n tt(Start, '.', DOT);\n tt(Start, '=', EQUALS);\n tt(Start, '!', EXCLAMATION);\n tt(Start, '-', HYPHEN);\n tt(Start, '%', PERCENT);\n tt(Start, '|', PIPE);\n tt(Start, '+', PLUS);\n tt(Start, '#', POUND);\n tt(Start, '?', QUERY);\n tt(Start, '\"', QUOTE);\n tt(Start, '/', SLASH);\n tt(Start, ';', SEMI);\n tt(Start, '~', TILDE);\n tt(Start, '_', UNDERSCORE);\n tt(Start, '\\\\', BACKSLASH);\n tt(Start, '・', FULLWIDTHMIDDLEDOT);\n const Num = tr(Start, DIGIT, NUM, {\n [numeric]: true\n });\n tr(Num, DIGIT, Num);\n const Asciinumeric = tr(Num, ASCII_LETTER, ASCIINUMERICAL, {\n [asciinumeric]: true\n });\n const Alphanumeric = tr(Num, LETTER, ALPHANUMERICAL, {\n [alphanumeric]: true\n });\n\n // State which emits a word token\n const Word = tr(Start, ASCII_LETTER, WORD, {\n [ascii]: true\n });\n tr(Word, DIGIT, Asciinumeric);\n tr(Word, ASCII_LETTER, Word);\n tr(Asciinumeric, DIGIT, Asciinumeric);\n tr(Asciinumeric, ASCII_LETTER, Asciinumeric);\n\n // Same as previous, but specific to non-fsm.ascii alphabet words\n const UWord = tr(Start, LETTER, UWORD, {\n [alpha]: true\n });\n tr(UWord, ASCII_LETTER); // Non-accepting\n tr(UWord, DIGIT, Alphanumeric);\n tr(UWord, LETTER, UWord);\n tr(Alphanumeric, DIGIT, Alphanumeric);\n tr(Alphanumeric, ASCII_LETTER); // Non-accepting\n tr(Alphanumeric, LETTER, Alphanumeric); // Non-accepting\n\n // Whitespace jumps\n // Tokens of only non-newline whitespace are arbitrarily long\n // If any whitespace except newline, more whitespace!\n const Nl = tt(Start, LF, NL, {\n [whitespace]: true\n });\n const Cr = tt(Start, CR, WS, {\n [whitespace]: true\n });\n const Ws = tr(Start, SPACE, WS, {\n [whitespace]: true\n });\n tt(Start, OBJECT_REPLACEMENT, Ws);\n tt(Cr, LF, Nl); // \\r\\n\n tt(Cr, OBJECT_REPLACEMENT, Ws);\n tr(Cr, SPACE, Ws);\n tt(Ws, CR); // non-accepting state to avoid mixing whitespaces\n tt(Ws, LF); // non-accepting state to avoid mixing whitespaces\n tr(Ws, SPACE, Ws);\n tt(Ws, OBJECT_REPLACEMENT, Ws);\n\n // Emoji tokens. They are not grouped by the scanner except in cases where a\n // zero-width joiner is present\n const Emoji = tr(Start, EMOJI, EMOJI$1, {\n [emoji]: true\n });\n tt(Emoji, '#'); // no transition, emoji regex seems to match #\n tr(Emoji, EMOJI, Emoji);\n tt(Emoji, EMOJI_VARIATION, Emoji);\n // tt(Start, EMOJI_VARIATION, Emoji); // This one is sketchy\n\n const EmojiJoiner = tt(Emoji, EMOJI_JOINER);\n tt(EmojiJoiner, '#');\n tr(EmojiJoiner, EMOJI, Emoji);\n // tt(EmojiJoiner, EMOJI_VARIATION, Emoji); // also sketchy\n\n // Generates states for top-level domains\n // Note that this is most accurate when tlds are in alphabetical order\n const wordjr = [[ASCII_LETTER, Word], [DIGIT, Asciinumeric]];\n const uwordjr = [[ASCII_LETTER, null], [LETTER, UWord], [DIGIT, Alphanumeric]];\n for (let i = 0; i < tlds.length; i++) {\n fastts(Start, tlds[i], TLD, WORD, wordjr);\n }\n for (let i = 0; i < utlds.length; i++) {\n fastts(Start, utlds[i], UTLD, UWORD, uwordjr);\n }\n addToGroups(TLD, {\n tld: true,\n ascii: true\n }, groups);\n addToGroups(UTLD, {\n utld: true,\n alpha: true\n }, groups);\n\n // Collect the states generated by different protocols. NOTE: If any new TLDs\n // get added that are also protocols, set the token to be the same as the\n // protocol to ensure parsing works as expected.\n fastts(Start, 'file', SCHEME, WORD, wordjr);\n fastts(Start, 'mailto', SCHEME, WORD, wordjr);\n fastts(Start, 'http', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'https', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftp', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftps', SLASH_SCHEME, WORD, wordjr);\n addToGroups(SCHEME, {\n scheme: true,\n ascii: true\n }, groups);\n addToGroups(SLASH_SCHEME, {\n slashscheme: true,\n ascii: true\n }, groups);\n\n // Register custom schemes. Assumes each scheme is asciinumeric with hyphens\n customSchemes = customSchemes.sort((a, b) => a[0] > b[0] ? 1 : -1);\n for (let i = 0; i < customSchemes.length; i++) {\n const sch = customSchemes[i][0];\n const optionalSlashSlash = customSchemes[i][1];\n const flags = optionalSlashSlash ? {\n [scheme]: true\n } : {\n [slashscheme]: true\n };\n if (sch.indexOf('-') >= 0) {\n flags[domain] = true;\n } else if (!ASCII_LETTER.test(sch)) {\n flags[numeric] = true; // numbers only\n } else if (DIGIT.test(sch)) {\n flags[asciinumeric] = true;\n } else {\n flags[ascii] = true;\n }\n ts(Start, sch, sch, flags);\n }\n\n // Localhost token\n ts(Start, 'localhost', LOCALHOST, {\n ascii: true\n });\n\n // Set default transition for start state (some symbol)\n Start.jd = new State(SYM);\n return {\n start: Start,\n tokens: Object.assign({\n groups\n }, tk)\n };\n}\n\n/**\n\tGiven a string, returns an array of TOKEN instances representing the\n\tcomposition of that string.\n\n\t@method run\n\t@param {State} start scanner starting state\n\t@param {string} str input string to scan\n\t@return {Token[]} list of tokens, each with a type and value\n*/\nfunction run$1(start, str) {\n // State machine is not case sensitive, so input is tokenized in lowercased\n // form (still returns regular case). Uses selective `toLowerCase` because\n // lowercasing the entire string causes the length and character position to\n // vary in some non-English strings with V8-based runtimes.\n const iterable = stringToArray(str.replace(/[A-Z]/g, c => c.toLowerCase()));\n const charCount = iterable.length; // <= len if there are emojis, etc\n const tokens = []; // return value\n\n // cursor through the string itself, accounting for characters that have\n // width with length 2 such as emojis\n let cursor = 0;\n\n // Cursor through the array-representation of the string\n let charCursor = 0;\n\n // Tokenize the string\n while (charCursor < charCount) {\n let state = start;\n let nextState = null;\n let tokenLength = 0;\n let latestAccepting = null;\n let sinceAccepts = -1;\n let charsSinceAccepts = -1;\n while (charCursor < charCount && (nextState = state.go(iterable[charCursor]))) {\n state = nextState;\n\n // Keep track of the latest accepting state\n if (state.accepts()) {\n sinceAccepts = 0;\n charsSinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts += iterable[charCursor].length;\n charsSinceAccepts++;\n }\n tokenLength += iterable[charCursor].length;\n cursor += iterable[charCursor].length;\n charCursor++;\n }\n\n // Roll back to the latest accepting state\n cursor -= sinceAccepts;\n charCursor -= charsSinceAccepts;\n tokenLength -= sinceAccepts;\n\n // No more jumps, just make a new token from the last accepting one\n tokens.push({\n t: latestAccepting.t,\n // token type/name\n v: str.slice(cursor - tokenLength, cursor),\n // string value\n s: cursor - tokenLength,\n // start index\n e: cursor // end index (excluding)\n });\n }\n return tokens;\n}\n\n/**\n * Convert a String to an Array of characters, taking into account that some\n * characters like emojis take up two string indexes.\n *\n * Adapted from core-js (MIT license)\n * https://github.com/zloirock/core-js/blob/2d69cf5f99ab3ea3463c395df81e5a15b68f49d9/packages/core-js/internals/string-multibyte.js\n *\n * @function stringToArray\n * @param {string} str\n * @returns {string[]}\n */\nfunction stringToArray(str) {\n const result = [];\n const len = str.length;\n let index = 0;\n while (index < len) {\n let first = str.charCodeAt(index);\n let second;\n let char = first < 0xd800 || first > 0xdbff || index + 1 === len || (second = str.charCodeAt(index + 1)) < 0xdc00 || second > 0xdfff ? str[index] // single character\n : str.slice(index, index + 2); // two-index characters\n result.push(char);\n index += char.length;\n }\n return result;\n}\n\n/**\n * Fast version of ts function for when transition defaults are well known\n * @param {State} state\n * @param {string} input\n * @param {string} t\n * @param {string} defaultt\n * @param {[RegExp, State][]} jr\n * @returns {State}\n */\nfunction fastts(state, input, t, defaultt, jr) {\n let next;\n const len = input.length;\n for (let i = 0; i < len - 1; i++) {\n const char = input[i];\n if (state.j[char]) {\n next = state.j[char];\n } else {\n next = new State(defaultt);\n next.jr = jr.slice();\n state.j[char] = next;\n }\n state = next;\n }\n next = new State(t);\n next.jr = jr.slice();\n state.j[input[len - 1]] = next;\n return next;\n}\n\n/**\n * Converts a string of Top-Level Domain names encoded in update-tlds.js back\n * into a list of strings.\n * @param {str} encoded encoded TLDs string\n * @returns {str[]} original TLDs list\n */\nfunction decodeTlds(encoded) {\n const words = [];\n const stack = [];\n let i = 0;\n let digits = '0123456789';\n while (i < encoded.length) {\n let popDigitCount = 0;\n while (digits.indexOf(encoded[i + popDigitCount]) >= 0) {\n popDigitCount++; // encountered some digits, have to pop to go one level up trie\n }\n if (popDigitCount > 0) {\n words.push(stack.join('')); // whatever preceded the pop digits must be a word\n for (let popCount = parseInt(encoded.substring(i, i + popDigitCount), 10); popCount > 0; popCount--) {\n stack.pop();\n }\n i += popDigitCount;\n } else {\n stack.push(encoded[i]); // drop down a level into the trie\n i++;\n }\n }\n return words;\n}\n\n/**\n * An object where each key is a valid DOM Event Name such as `click` or `focus`\n * and each value is an event handler function.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/Element#events\n * @typedef {?{ [event: string]: Function }} EventListeners\n */\n\n/**\n * All formatted properties required to render a link, including `tagName`,\n * `attributes`, `content` and `eventListeners`.\n * @typedef {{ tagName: any, attributes: {[attr: string]: any}, content: string,\n * eventListeners: EventListeners }} IntermediateRepresentation\n */\n\n/**\n * Specify either an object described by the template type `O` or a function.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `O`\n * @template O\n * @typedef {O | ((value: string, type: string, token: MultiToken) => O)} OptObj\n */\n\n/**\n * Specify either a function described by template type `F` or an object.\n *\n * Each key in the object should be a link type (`'url'`, `'hashtag`', etc.). Each\n * value should be a function with template type `F` that is called when the\n * corresponding link type is encountered.\n * @template F\n * @typedef {F | { [type: string]: F}} OptFn\n */\n\n/**\n * Specify either a value with template type `V`, a function that returns `V` or\n * an object where each value resolves to `V`.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `V`\n *\n * For the object, each key should be a link type (`'url'`, `'hashtag`', etc.).\n * Each value should either have type `V` or a function that returns V. This\n * function similarly takes a string value and a token.\n *\n * Example valid types for `Opt`:\n *\n * ```js\n * 'hello'\n * (value, type, token) => 'world'\n * { url: 'hello', email: (value, token) => 'world'}\n * ```\n * @template V\n * @typedef {V | ((value: string, type: string, token: MultiToken) => V) | { [type: string]: V | ((value: string, token: MultiToken) => V) }} Opt\n */\n\n/**\n * See available options: https://linkify.js.org/docs/options.html\n * @typedef {{\n * \tdefaultProtocol?: string,\n * events?: OptObj,\n * \tformat?: Opt,\n * \tformatHref?: Opt,\n * \tnl2br?: boolean,\n * \ttagName?: Opt,\n * \ttarget?: Opt,\n * \trel?: Opt,\n * \tvalidate?: Opt,\n * \ttruncate?: Opt,\n * \tclassName?: Opt,\n * \tattributes?: OptObj<({ [attr: string]: any })>,\n * ignoreTags?: string[],\n * \trender?: OptFn<((ir: IntermediateRepresentation) => any)>\n * }} Opts\n */\n\n/**\n * @type Required\n */\nconst defaults = {\n defaultProtocol: 'http',\n events: null,\n format: noop,\n formatHref: noop,\n nl2br: false,\n tagName: 'a',\n target: null,\n rel: null,\n validate: true,\n truncate: Infinity,\n className: null,\n attributes: null,\n ignoreTags: [],\n render: null\n};\n\n/**\n * Utility class for linkify interfaces to apply specified\n * {@link Opts formatting and rendering options}.\n *\n * @param {Opts | Options} [opts] Option value overrides.\n * @param {(ir: IntermediateRepresentation) => any} [defaultRender] (For\n * internal use) default render function that determines how to generate an\n * HTML element based on a link token's derived tagName, attributes and HTML.\n * Similar to render option\n */\nfunction Options(opts, defaultRender = null) {\n let o = Object.assign({}, defaults);\n if (opts) {\n o = Object.assign(o, opts instanceof Options ? opts.o : opts);\n }\n\n // Ensure all ignored tags are uppercase\n const ignoredTags = o.ignoreTags;\n const uppercaseIgnoredTags = [];\n for (let i = 0; i < ignoredTags.length; i++) {\n uppercaseIgnoredTags.push(ignoredTags[i].toUpperCase());\n }\n /** @protected */\n this.o = o;\n if (defaultRender) {\n this.defaultRender = defaultRender;\n }\n this.ignoreTags = uppercaseIgnoredTags;\n}\nOptions.prototype = {\n o: defaults,\n /**\n * @type string[]\n */\n ignoreTags: [],\n /**\n * @param {IntermediateRepresentation} ir\n * @returns {any}\n */\n defaultRender(ir) {\n return ir;\n },\n /**\n * Returns true or false based on whether a token should be displayed as a\n * link based on the user options.\n * @param {MultiToken} token\n * @returns {boolean}\n */\n check(token) {\n return this.get('validate', token.toString(), token);\n },\n // Private methods\n\n /**\n * Resolve an option's value based on the value of the option and the given\n * params. If operator and token are specified and the target option is\n * callable, automatically calls the function with the given argument.\n * @template {keyof Opts} K\n * @param {K} key Name of option to use\n * @param {string} [operator] will be passed to the target option if it's a\n * function. If not specified, RAW function value gets returned\n * @param {MultiToken} [token] The token from linkify.tokenize\n * @returns {Opts[K] | any}\n */\n get(key, operator, token) {\n const isCallable = operator != null;\n let option = this.o[key];\n if (!option) {\n return option;\n }\n if (typeof option === 'object') {\n option = token.t in option ? option[token.t] : defaults[key];\n if (typeof option === 'function' && isCallable) {\n option = option(operator, token);\n }\n } else if (typeof option === 'function' && isCallable) {\n option = option(operator, token.t, token);\n }\n return option;\n },\n /**\n * @template {keyof Opts} L\n * @param {L} key Name of options object to use\n * @param {string} [operator]\n * @param {MultiToken} [token]\n * @returns {Opts[L] | any}\n */\n getObj(key, operator, token) {\n let obj = this.o[key];\n if (typeof obj === 'function' && operator != null) {\n obj = obj(operator, token.t, token);\n }\n return obj;\n },\n /**\n * Convert the given token to a rendered element that may be added to the\n * calling-interface's DOM\n * @param {MultiToken} token Token to render to an HTML element\n * @returns {any} Render result; e.g., HTML string, DOM element, React\n * Component, etc.\n */\n render(token) {\n const ir = token.render(this); // intermediate representation\n const renderFn = this.get('render', null, token) || this.defaultRender;\n return renderFn(ir, token.t, token);\n }\n};\nfunction noop(val) {\n return val;\n}\n\nvar options = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tOptions: Options,\n\tdefaults: defaults\n});\n\n/******************************************************************************\n\tMulti-Tokens\n\tTokens composed of arrays of TextTokens\n******************************************************************************/\n\n/**\n * @param {string} value\n * @param {Token[]} tokens\n */\nfunction MultiToken(value, tokens) {\n this.t = 'token';\n this.v = value;\n this.tk = tokens;\n}\n\n/**\n * Abstract class used for manufacturing tokens of text tokens. That is rather\n * than the value for a token being a small string of text, it's value an array\n * of text tokens.\n *\n * Used for grouping together URLs, emails, hashtags, and other potential\n * creations.\n * @class MultiToken\n * @property {string} t\n * @property {string} v\n * @property {Token[]} tk\n * @abstract\n */\nMultiToken.prototype = {\n isLink: false,\n /**\n * Return the string this token represents.\n * @return {string}\n */\n toString() {\n return this.v;\n },\n /**\n * What should the value for this token be in the `href` HTML attribute?\n * Returns the `.toString` value by default.\n * @param {string} [scheme]\n * @return {string}\n */\n toHref(scheme) {\n return this.toString();\n },\n /**\n * @param {Options} options Formatting options\n * @returns {string}\n */\n toFormattedString(options) {\n const val = this.toString();\n const truncate = options.get('truncate', val, this);\n const formatted = options.get('format', val, this);\n return truncate && formatted.length > truncate ? formatted.substring(0, truncate) + '…' : formatted;\n },\n /**\n *\n * @param {Options} options\n * @returns {string}\n */\n toFormattedHref(options) {\n return options.get('formatHref', this.toHref(options.get('defaultProtocol')), this);\n },\n /**\n * The start index of this token in the original input string\n * @returns {number}\n */\n startIndex() {\n return this.tk[0].s;\n },\n /**\n * The end index of this token in the original input string (up to this\n * index but not including it)\n * @returns {number}\n */\n endIndex() {\n return this.tk[this.tk.length - 1].e;\n },\n /**\n \tReturns an object of relevant values for this token, which includes keys\n \t* type - Kind of token ('url', 'email', etc.)\n \t* value - Original text\n \t* href - The value that should be added to the anchor tag's href\n \t\tattribute\n \t\t@method toObject\n \t@param {string} [protocol] `'http'` by default\n */\n toObject(protocol = defaults.defaultProtocol) {\n return {\n type: this.t,\n value: this.toString(),\n isLink: this.isLink,\n href: this.toHref(protocol),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n /**\n *\n * @param {Options} options Formatting option\n */\n toFormattedObject(options) {\n return {\n type: this.t,\n value: this.toFormattedString(options),\n isLink: this.isLink,\n href: this.toFormattedHref(options),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n /**\n * Whether this token should be rendered as a link according to the given options\n * @param {Options} options\n * @returns {boolean}\n */\n validate(options) {\n return options.get('validate', this.toString(), this);\n },\n /**\n * Return an object that represents how this link should be rendered.\n * @param {Options} options Formattinng options\n */\n render(options) {\n const token = this;\n const href = this.toHref(options.get('defaultProtocol'));\n const formattedHref = options.get('formatHref', href, this);\n const tagName = options.get('tagName', href, token);\n const content = this.toFormattedString(options);\n const attributes = {};\n const className = options.get('className', href, token);\n const target = options.get('target', href, token);\n const rel = options.get('rel', href, token);\n const attrs = options.getObj('attributes', href, token);\n const eventListeners = options.getObj('events', href, token);\n attributes.href = formattedHref;\n if (className) {\n attributes.class = className;\n }\n if (target) {\n attributes.target = target;\n }\n if (rel) {\n attributes.rel = rel;\n }\n if (attrs) {\n Object.assign(attributes, attrs);\n }\n return {\n tagName,\n attributes,\n content,\n eventListeners\n };\n }\n};\n\n/**\n * Create a new token that can be emitted by the parser state machine\n * @param {string} type readable type of the token\n * @param {object} props properties to assign or override, including isLink = true or false\n * @returns {new (value: string, tokens: Token[]) => MultiToken} new token class\n */\nfunction createTokenClass(type, props) {\n class Token extends MultiToken {\n constructor(value, tokens) {\n super(value, tokens);\n this.t = type;\n }\n }\n for (const p in props) {\n Token.prototype[p] = props[p];\n }\n Token.t = type;\n return Token;\n}\n\n/**\n\tRepresents a list of tokens making up a valid email address\n*/\nconst Email = createTokenClass('email', {\n isLink: true,\n toHref() {\n return 'mailto:' + this.toString();\n }\n});\n\n/**\n\tRepresents some plain text\n*/\nconst Text = createTokenClass('text');\n\n/**\n\tMulti-linebreak token - represents a line break\n\t@class Nl\n*/\nconst Nl = createTokenClass('nl');\n\n/**\n\tRepresents a list of text tokens making up a valid URL\n\t@class Url\n*/\nconst Url = createTokenClass('url', {\n isLink: true,\n /**\n \tLowercases relevant parts of the domain and adds the protocol if\n \trequired. Note that this will not escape unsafe HTML characters in the\n \tURL.\n \t\t@param {string} [scheme] default scheme (e.g., 'https')\n \t@return {string} the full href\n */\n toHref(scheme = defaults.defaultProtocol) {\n // Check if already has a prefix scheme\n return this.hasProtocol() ? this.v : `${scheme}://${this.v}`;\n },\n /**\n * Check whether this URL token has a protocol\n * @return {boolean}\n */\n hasProtocol() {\n const tokens = this.tk;\n return tokens.length >= 2 && tokens[0].t !== LOCALHOST && tokens[1].t === COLON;\n }\n});\n\nvar multi = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tBase: MultiToken,\n\tEmail: Email,\n\tMultiToken: MultiToken,\n\tNl: Nl,\n\tText: Text,\n\tUrl: Url,\n\tcreateTokenClass: createTokenClass\n});\n\n/**\n\tNot exactly parser, more like the second-stage scanner (although we can\n\ttheoretically hotswap the code here with a real parser in the future... but\n\tfor a little URL-finding utility abstract syntax trees may be a little\n\toverkill).\n\n\tURL format: http://en.wikipedia.org/wiki/URI_scheme\n\tEmail format: http://en.wikipedia.org/wiki/EmailAddress (links to RFC in\n\treference)\n\n\t@module linkify\n\t@submodule parser\n\t@main run\n*/\n\nconst makeState = arg => new State(arg);\n\n/**\n * Generate the parser multi token-based state machine\n * @param {{ groups: Collections }} tokens\n */\nfunction init$1({\n groups\n}) {\n // Types of characters the URL can definitely end in\n const qsAccepting = groups.domain.concat([AMPERSAND, ASTERISK, AT, BACKSLASH, BACKTICK, CARET, DOLLAR, EQUALS, HYPHEN, NUM, PERCENT, PIPE, PLUS, POUND, SLASH, SYM, TILDE, UNDERSCORE]);\n\n // Types of tokens that can follow a URL and be part of the query string\n // but cannot be the very last characters\n // Characters that cannot appear in the URL at all should be excluded\n const qsNonAccepting = [APOSTROPHE, COLON, COMMA, DOT, EXCLAMATION, PERCENT, QUERY, QUOTE, SEMI, OPENANGLEBRACKET, CLOSEANGLEBRACKET, OPENBRACE, CLOSEBRACE, CLOSEBRACKET, OPENBRACKET, OPENPAREN, CLOSEPAREN, FULLWIDTHLEFTPAREN, FULLWIDTHRIGHTPAREN, LEFTCORNERBRACKET, RIGHTCORNERBRACKET, LEFTWHITECORNERBRACKET, RIGHTWHITECORNERBRACKET, FULLWIDTHLESSTHAN, FULLWIDTHGREATERTHAN];\n\n // For addresses without the mailto prefix\n // Tokens allowed in the localpart of the email\n const localpartAccepting = [AMPERSAND, APOSTROPHE, ASTERISK, BACKSLASH, BACKTICK, CARET, DOLLAR, EQUALS, HYPHEN, OPENBRACE, CLOSEBRACE, PERCENT, PIPE, PLUS, POUND, QUERY, SLASH, SYM, TILDE, UNDERSCORE];\n\n // The universal starting state.\n /**\n * @type State\n */\n const Start = makeState();\n const Localpart = tt(Start, TILDE); // Local part of the email address\n ta(Localpart, localpartAccepting, Localpart);\n ta(Localpart, groups.domain, Localpart);\n const Domain = makeState(),\n Scheme = makeState(),\n SlashScheme = makeState();\n ta(Start, groups.domain, Domain); // parsed string ends with a potential domain name (A)\n ta(Start, groups.scheme, Scheme); // e.g., 'mailto'\n ta(Start, groups.slashscheme, SlashScheme); // e.g., 'http'\n\n ta(Domain, localpartAccepting, Localpart);\n ta(Domain, groups.domain, Domain);\n const LocalpartAt = tt(Domain, AT); // Local part of the email address plus @\n\n tt(Localpart, AT, LocalpartAt); // close to an email address now\n\n // Local part of an email address can be e.g. 'http' or 'mailto'\n tt(Scheme, AT, LocalpartAt);\n tt(SlashScheme, AT, LocalpartAt);\n const LocalpartDot = tt(Localpart, DOT); // Local part of the email address plus '.' (localpart cannot end in .)\n ta(LocalpartDot, localpartAccepting, Localpart);\n ta(LocalpartDot, groups.domain, Localpart);\n const EmailDomain = makeState();\n ta(LocalpartAt, groups.domain, EmailDomain); // parsed string starts with local email info + @ with a potential domain name\n ta(EmailDomain, groups.domain, EmailDomain);\n const EmailDomainDot = tt(EmailDomain, DOT); // domain followed by DOT\n ta(EmailDomainDot, groups.domain, EmailDomain);\n const Email$1 = makeState(Email); // Possible email address (could have more tlds)\n ta(EmailDomainDot, groups.tld, Email$1);\n ta(EmailDomainDot, groups.utld, Email$1);\n tt(LocalpartAt, LOCALHOST, Email$1);\n\n // Hyphen can jump back to a domain name\n const EmailDomainHyphen = tt(EmailDomain, HYPHEN); // parsed string starts with local email info + @ with a potential domain name\n tt(EmailDomainHyphen, HYPHEN, EmailDomainHyphen);\n ta(EmailDomainHyphen, groups.domain, EmailDomain);\n ta(Email$1, groups.domain, EmailDomain);\n tt(Email$1, DOT, EmailDomainDot);\n tt(Email$1, HYPHEN, EmailDomainHyphen);\n\n // Account for dots and hyphens. Hyphens are usually parts of domain names\n // (but not TLDs)\n const DomainHyphen = tt(Domain, HYPHEN); // domain followed by hyphen\n const DomainDot = tt(Domain, DOT); // domain followed by DOT\n tt(DomainHyphen, HYPHEN, DomainHyphen);\n ta(DomainHyphen, groups.domain, Domain);\n ta(DomainDot, localpartAccepting, Localpart);\n ta(DomainDot, groups.domain, Domain);\n const DomainDotTld = makeState(Url); // Simplest possible URL with no query string\n ta(DomainDot, groups.tld, DomainDotTld);\n ta(DomainDot, groups.utld, DomainDotTld);\n ta(DomainDotTld, groups.domain, Domain);\n ta(DomainDotTld, localpartAccepting, Localpart);\n tt(DomainDotTld, DOT, DomainDot);\n tt(DomainDotTld, HYPHEN, DomainHyphen);\n tt(DomainDotTld, AT, LocalpartAt);\n const DomainDotTldColon = tt(DomainDotTld, COLON); // URL followed by colon (potential port number here)\n const DomainDotTldColonPort = makeState(Url); // TLD followed by a port number\n ta(DomainDotTldColon, groups.numeric, DomainDotTldColonPort);\n\n // Long URL with optional port and maybe query string\n const Url$1 = makeState(Url);\n\n // URL with extra symbols at the end, followed by an opening bracket\n const UrlNonaccept = makeState(); // URL followed by some symbols (will not be part of the final URL)\n\n // Query strings\n ta(Url$1, qsAccepting, Url$1);\n ta(Url$1, qsNonAccepting, UrlNonaccept);\n ta(UrlNonaccept, qsAccepting, Url$1);\n ta(UrlNonaccept, qsNonAccepting, UrlNonaccept);\n\n // Become real URLs after `SLASH` or `COLON NUM SLASH`\n // Here works with or without scheme:// prefix\n tt(DomainDotTld, SLASH, Url$1);\n tt(DomainDotTldColonPort, SLASH, Url$1);\n\n // Note that domains that begin with schemes are treated slighly differently\n const SchemeColon = tt(Scheme, COLON); // e.g., 'mailto:'\n const SlashSchemeColon = tt(SlashScheme, COLON); // e.g., 'http:'\n const SlashSchemeColonSlash = tt(SlashSchemeColon, SLASH); // e.g., 'http:/'\n\n const UriPrefix = tt(SlashSchemeColonSlash, SLASH); // e.g., 'http://'\n\n // Scheme states can transition to domain states\n ta(Scheme, groups.domain, Domain);\n tt(Scheme, DOT, DomainDot);\n tt(Scheme, HYPHEN, DomainHyphen);\n ta(SlashScheme, groups.domain, Domain);\n tt(SlashScheme, DOT, DomainDot);\n tt(SlashScheme, HYPHEN, DomainHyphen);\n\n // Force URL with scheme prefix followed by anything sane\n ta(SchemeColon, groups.domain, Url$1);\n tt(SchemeColon, SLASH, Url$1);\n tt(SchemeColon, QUERY, Url$1);\n ta(UriPrefix, groups.domain, Url$1);\n ta(UriPrefix, qsAccepting, Url$1);\n tt(UriPrefix, SLASH, Url$1);\n const bracketPairs = [[OPENBRACE, CLOSEBRACE],\n // {}\n [OPENBRACKET, CLOSEBRACKET],\n // []\n [OPENPAREN, CLOSEPAREN],\n // ()\n [OPENANGLEBRACKET, CLOSEANGLEBRACKET],\n // <>\n [FULLWIDTHLEFTPAREN, FULLWIDTHRIGHTPAREN],\n // ()\n [LEFTCORNERBRACKET, RIGHTCORNERBRACKET],\n // 「」\n [LEFTWHITECORNERBRACKET, RIGHTWHITECORNERBRACKET],\n // 『』\n [FULLWIDTHLESSTHAN, FULLWIDTHGREATERTHAN] // <>\n ];\n for (let i = 0; i < bracketPairs.length; i++) {\n const [OPEN, CLOSE] = bracketPairs[i];\n const UrlOpen = tt(Url$1, OPEN); // URL followed by open bracket\n\n // Continue not accepting for open brackets\n tt(UrlNonaccept, OPEN, UrlOpen);\n\n // URL that begins with an opening bracket, followed by a symbols.\n // Note that the final state can still be `UrlOpen` (if the URL has a\n // single opening bracket for some reason).\n const UrlOpenQ = makeState(Url);\n ta(UrlOpen, qsAccepting, UrlOpenQ);\n const UrlOpenSyms = makeState(); // UrlOpen followed by some symbols it cannot end it\n ta(UrlOpen, qsNonAccepting, UrlOpenSyms);\n\n // Closing bracket component. This character WILL be included in the URL.\n // Must come after qsNonAccepting (which includes all close-bracket tokens)\n // so that CLOSE -> Url wins over CLOSE -> UrlOpenSyms.\n tt(UrlOpen, CLOSE, Url$1);\n\n // URL that begins with an opening bracket, followed by some symbols\n ta(UrlOpenQ, qsAccepting, UrlOpenQ);\n ta(UrlOpenQ, qsNonAccepting, UrlOpenSyms);\n ta(UrlOpenSyms, qsAccepting, UrlOpenQ);\n ta(UrlOpenSyms, qsNonAccepting, UrlOpenSyms);\n\n // Close brace/bracket to become regular URL\n tt(UrlOpenQ, CLOSE, Url$1);\n tt(UrlOpenSyms, CLOSE, Url$1);\n }\n tt(Start, LOCALHOST, DomainDotTld); // localhost is a valid URL state\n tt(Start, NL, Nl); // single new line\n\n return {\n start: Start,\n tokens: tk\n };\n}\n\n/**\n * Run the parser state machine on a list of scanned string-based tokens to\n * create a list of multi tokens, each of which represents a URL, email address,\n * plain text, etc.\n *\n * @param {State} start parser start state\n * @param {string} input the original input used to generate the given tokens\n * @param {Token[]} tokens list of scanned tokens\n * @returns {MultiToken[]}\n */\nfunction run(start, input, tokens) {\n let len = tokens.length;\n let cursor = 0;\n let multis = [];\n let textTokens = [];\n while (cursor < len) {\n let state = start;\n let secondState = null;\n let nextState = null;\n let multiLength = 0;\n let latestAccepting = null;\n let sinceAccepts = -1;\n while (cursor < len && !(secondState = state.go(tokens[cursor].t))) {\n // Starting tokens with nowhere to jump to.\n // Consider these to be just plain text\n textTokens.push(tokens[cursor++]);\n }\n while (cursor < len && (nextState = secondState || state.go(tokens[cursor].t))) {\n // Get the next state\n secondState = null;\n state = nextState;\n\n // Keep track of the latest accepting state\n if (state.accepts()) {\n sinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts++;\n }\n cursor++;\n multiLength++;\n }\n if (sinceAccepts < 0) {\n // No accepting state was found, part of a regular text token add\n // the first text token to the text tokens array and try again from\n // the next\n cursor -= multiLength;\n if (cursor < len) {\n textTokens.push(tokens[cursor]);\n cursor++;\n }\n } else {\n // Accepting state!\n // First close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n textTokens = [];\n }\n\n // Roll back to the latest accepting state\n cursor -= sinceAccepts;\n multiLength -= sinceAccepts;\n\n // Create a new multitoken\n const Multi = latestAccepting.t;\n const subtokens = tokens.slice(cursor - multiLength, cursor);\n multis.push(initMultiToken(Multi, input, subtokens));\n }\n }\n\n // Finally close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n }\n return multis;\n}\n\n/**\n * Utility function for instantiating a new multitoken with all the relevant\n * fields during parsing.\n * @param {new (value: string, tokens: Token[]) => MultiToken} Multi class to instantiate\n * @param {string} input original input string\n * @param {Token[]} tokens consecutive tokens scanned from input string\n * @returns {MultiToken}\n */\nfunction initMultiToken(Multi, input, tokens) {\n const startIdx = tokens[0].s;\n const endIdx = tokens[tokens.length - 1].e;\n const value = input.slice(startIdx, endIdx);\n return new Multi(value, tokens);\n}\n\nconst warn = typeof console !== 'undefined' && console && console.warn || (() => {});\nconst warnAdvice = 'until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.';\n\n// Side-effect initialization state\nconst INIT = {\n scanner: null,\n parser: null,\n tokenQueue: [],\n pluginQueue: [],\n customSchemes: [],\n initialized: false\n};\n\n/**\n * @typedef {{\n * \tstart: State,\n * \ttokens: { groups: Collections } & typeof tk\n * }} ScannerInit\n */\n\n/**\n * @typedef {{\n * \tstart: State,\n * \ttokens: typeof multi\n * }} ParserInit\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit }) => void} TokenPlugin\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit, parser: ParserInit }) => void} Plugin\n */\n\n/**\n * De-register all plugins and reset the internal state-machine. Used for\n * testing; not required in practice.\n * @private\n */\nfunction reset() {\n State.groups = {};\n INIT.scanner = null;\n INIT.parser = null;\n INIT.tokenQueue = [];\n INIT.pluginQueue = [];\n INIT.customSchemes = [];\n INIT.initialized = false;\n return INIT;\n}\n\n/**\n * Register a token plugin to allow the scanner to recognize additional token\n * types before the parser state machine is constructed from the results.\n * @param {string} name of plugin to register\n * @param {TokenPlugin} plugin function that accepts the scanner state machine\n * and available scanner tokens and collections and extends the state machine to\n * recognize additional tokens or groups.\n */\nfunction registerTokenPlugin(name, plugin) {\n if (typeof plugin !== 'function') {\n throw new Error(`linkifyjs: Invalid token plugin ${plugin} (expects function)`);\n }\n for (let i = 0; i < INIT.tokenQueue.length; i++) {\n if (name === INIT.tokenQueue[i][0]) {\n warn(`linkifyjs: token plugin \"${name}\" already registered - will be overwritten`);\n INIT.tokenQueue[i] = [name, plugin];\n return;\n }\n }\n INIT.tokenQueue.push([name, plugin]);\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register token plugin \"${name}\" ${warnAdvice}`);\n }\n}\n\n/**\n * Register a linkify plugin\n * @param {string} name of plugin to register\n * @param {Plugin} plugin function that accepts the parser state machine and\n * extends the parser to recognize additional link types\n */\nfunction registerPlugin(name, plugin) {\n if (typeof plugin !== 'function') {\n throw new Error(`linkifyjs: Invalid plugin ${plugin} (expects function)`);\n }\n for (let i = 0; i < INIT.pluginQueue.length; i++) {\n if (name === INIT.pluginQueue[i][0]) {\n warn(`linkifyjs: plugin \"${name}\" already registered - will be overwritten`);\n INIT.pluginQueue[i] = [name, plugin];\n return;\n }\n }\n INIT.pluginQueue.push([name, plugin]);\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register plugin \"${name}\" ${warnAdvice}`);\n }\n}\n\n/**\n * Detect URLs with the following additional protocol. Anything with format\n * \"protocol://...\" will be considered a link. If `optionalSlashSlash` is set to\n * `true`, anything with format \"protocol:...\" will be considered a link.\n * @param {string} scheme\n * @param {boolean} [optionalSlashSlash]\n */\nfunction registerCustomProtocol(scheme, optionalSlashSlash = false) {\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register custom scheme \"${scheme}\" ${warnAdvice}`);\n }\n if (!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(scheme)) {\n throw new Error(`linkifyjs: incorrect scheme format.\n1. Must only contain digits, lowercase ASCII letters or \"-\"\n2. Cannot start or end with \"-\"\n3. \"-\" cannot repeat`);\n }\n INIT.customSchemes.push([scheme, optionalSlashSlash]);\n}\n\n/**\n * Initialize the linkify state machine. Called automatically the first time\n * linkify is called on a string, but may be called manually as well.\n */\nfunction init() {\n // Initialize scanner state machine and plugins\n INIT.scanner = init$2(INIT.customSchemes);\n for (let i = 0; i < INIT.tokenQueue.length; i++) {\n INIT.tokenQueue[i][1]({\n scanner: INIT.scanner\n });\n }\n\n // Initialize parser state machine and plugins\n INIT.parser = init$1(INIT.scanner.tokens);\n for (let i = 0; i < INIT.pluginQueue.length; i++) {\n INIT.pluginQueue[i][1]({\n scanner: INIT.scanner,\n parser: INIT.parser\n });\n }\n INIT.initialized = true;\n return INIT;\n}\n\n/**\n * Parse a string into tokens that represent linkable and non-linkable sub-components\n * @param {string} str\n * @return {MultiToken[]} tokens\n */\nfunction tokenize(str) {\n if (!INIT.initialized) {\n init();\n }\n return run(INIT.parser.start, str, run$1(INIT.scanner.start, str));\n}\ntokenize.scan = run$1; // for testing\n\n/**\n * Find a list of linkable items in the given string.\n * @param {string} str string to find links in\n * @param {string | Opts} [type] either formatting options or specific type of\n * links to find, e.g., 'url' or 'email'\n * @param {Opts} [opts] formatting options for final output. Cannot be specified\n * if opts already provided in `type` argument\n */\nfunction find(str, type = null, opts = null) {\n if (type && typeof type === 'object') {\n if (opts) {\n throw Error(`linkifyjs: Invalid link type ${type}; must be a string`);\n }\n opts = type;\n type = null;\n }\n const options = new Options(opts);\n const tokens = tokenize(str);\n const filtered = [];\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n if (token.isLink && (!type || token.t === type) && options.check(token)) {\n filtered.push(token.toFormattedObject(options));\n }\n }\n return filtered;\n}\n\n/**\n * Is the given string valid linkable text of some sort. Note that this does not\n * trim the text for you.\n *\n * Optionally pass in a second `type` param, which is the type of link to test\n * for.\n *\n * For example,\n *\n * linkify.test(str, 'email');\n *\n * Returns `true` if str is a valid email.\n * @param {string} str string to test for links\n * @param {string} [type] optional specific link type to look for\n * @returns boolean true/false\n */\nfunction test(str, type = null) {\n const tokens = tokenize(str);\n return tokens.length === 1 && tokens[0].isLink && (!type || tokens[0].t === type);\n}\n\nexport { MultiToken, Options, State, createTokenClass, find, init, multi, options, regexp, registerCustomProtocol, registerPlugin, registerTokenPlugin, reset, stringToArray, test, multi as text, tokenize };\n","import escapeHTML from \"escape-html\";\nimport { Options, tokenize } from \"linkifyjs\";\nfunction linkifyString(str) {\n const options = new Options({\n defaultProtocol: \"https\",\n target: \"_blank\",\n className: \"external linkified\",\n attributes: {\n rel: \"nofollow noopener noreferrer\"\n }\n }, defaultRender);\n const tokens = tokenize(str);\n const result = [];\n for (const token of tokens) {\n if (token.t === \"nl\" && options.get(\"nl2br\")) {\n result.push(\"
    \\n\");\n } else if (!token.isLink || !options.check(token)) {\n result.push(escapeHTML(token.toString()));\n } else {\n result.push(options.render(token));\n }\n }\n return result.join(\"\");\n}\nfunction escapeAttr(href) {\n return href.replace(/\"/g, \""\");\n}\nfunction attributesToString(attributes) {\n const result = [];\n for (const attr in attributes) {\n const val = attributes[attr] + \"\";\n result.push(`${attr}=\"${escapeAttr(val)}\"`);\n }\n return result.join(\" \");\n}\nfunction defaultRender({ tagName, attributes, content }) {\n return `<${tagName} ${attributesToString(attributes)}>${escapeHTML(content)}`;\n}\nconst directive = function(el, { value }) {\n if (value?.linkify === true) {\n el.innerHTML = linkifyString(value.text);\n }\n};\nexport {\n directive as default\n};\n//# sourceMappingURL=index.mjs.map\n","import { defineComponent, inject, withDirectives, openBlock, createElementBlock, createTextVNode, toDisplayString, unref } from \"vue\";\nimport directive from \"../directives/Linkify/index.mjs\";\nconst _hoisted_1 = [\"title\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppSidebarHeader\",\n props: {\n name: {},\n title: {},\n linkify: { type: Boolean }\n },\n setup(__props) {\n const headerRef = inject(\"NcAppSidebar:header:ref\");\n return (_ctx, _cache) => {\n return withDirectives((openBlock(), createElementBlock(\"h2\", {\n ref_key: \"headerRef\",\n ref: headerRef,\n tabindex: \"-1\",\n title: __props.title\n }, [\n createTextVNode(toDisplayString(__props.name), 1)\n ], 8, _hoisted_1)), [\n [unref(directive), { text: __props.name, linkify: __props.linkify }]\n ]);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-C-QhdyiN.mjs.map\n","import '../assets/NcAppSidebar-dHtSShIl.css';\nimport { vOnClickOutside } from \"@vueuse/components\";\nimport { createFocusTrap } from \"focus-trap\";\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, defineComponent, useModel, normalizeClass, unref, createVNode, withCtx, mergeModels, resolveComponent, withKeys, withModifiers, Fragment, renderList, createBlock, renderSlot, resolveDirective, Transition, withDirectives, Teleport, normalizeStyle, vShow, createTextVNode, warn, ref, provide } from \"vue\";\nimport { I as IconArrowRight } from \"./ArrowRight-B1ncAhus.mjs\";\nimport { I as IconClose } from \"./Close-CuhcJnX2.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { getCanonicalLocale } from \"@nextcloud/l10n\";\nimport { _ as _sfc_main$6 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { useIsSmallMobile } from \"../composables/useIsMobile/index.mjs\";\nimport directive from \"../directives/Focus/index.mjs\";\nimport { r as register, V as t15, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { g as getTrapStack } from \"./focusTrap-HJQ4pqHV.mjs\";\nimport { i as isSlotPopulated, N as NcActions } from \"./NcActions-CUmcZ3C3.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { _ as _sfc_main$7 } from \"./NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-C-QhdyiN.mjs\";\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { C as CONTENT_SELECTOR_KEY } from \"./constants-Ciwvl5xb.mjs\";\nimport { N as NcEmptyContent } from \"./NcEmptyContent-CGAPqk4S.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-BOVpFVQz.mjs\";\nconst _sfc_main$5 = {\n name: \"DockRightIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$5 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$3 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$3 = { d: \"M20 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V6A2 2 0 0 0 20 4M15 18H4V6H15Z\" };\nconst _hoisted_4$3 = { key: 0 };\nfunction _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon dock-right-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$3, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$3))\n ], 16, _hoisted_1$5);\n}\nconst IconDockRight = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"render\", _sfc_render$4]]);\nconst _sfc_main$4 = {\n name: \"StarIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$4 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { d: \"M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z\" };\nconst _hoisted_4$2 = { key: 0 };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon star-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$2, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$2, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$2))\n ], 16, _hoisted_1$4);\n}\nconst IconStar = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$3 = {\n name: \"StarOutlineIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$3 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon star-outline-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$3);\n}\nconst IconStarOutline = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$2]]);\nconst _hoisted_1$2 = [\"aria-selected\", \"tabindex\"];\nconst _sfc_main$2 = /* @__PURE__ */ defineComponent({\n __name: \"NcAppSidebarTabsButton\",\n props: /* @__PURE__ */ mergeModels({\n tab: {}\n }, {\n \"selected\": { type: Boolean, ...{ required: true } },\n \"selectedModifiers\": {}\n }),\n emits: [\"update:selected\"],\n setup(__props) {\n const selected = useModel(__props, \"selected\");\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"button\", {\n class: normalizeClass([\"button-vue\", [_ctx.$style.sidebarTabsButton, {\n [_ctx.$style.sidebarTabsButton_selected]: selected.value,\n [_ctx.$style.sidebarTabsButton_legacy]: unref(isLegacy34)\n }]]),\n role: \"tab\",\n \"aria-selected\": selected.value,\n tabindex: selected.value ? 0 : -1,\n onClick: _cache[0] || (_cache[0] = ($event) => selected.value = true)\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.$style.sidebarTabsButton__icon)\n }, [\n createVNode(_sfc_main$6, {\n vnodes: __props.tab.renderIcon()\n }, {\n default: withCtx(() => [\n createElementVNode(\"span\", {\n class: normalizeClass([_ctx.$style.sidebarTabsButton__legacyIcon, __props.tab.icon])\n }, null, 2)\n ]),\n _: 1\n }, 8, [\"vnodes\"])\n ], 2),\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.$style.sidebarTabsButton__name)\n }, toDisplayString(__props.tab.name), 3)\n ], 10, _hoisted_1$2);\n };\n }\n});\nconst sidebarTabsButton = \"_sidebarTabsButton_6hxfz\";\nconst sidebarTabsButton_legacy = \"_sidebarTabsButton_legacy_Qp20k\";\nconst sidebarTabsButton_selected = \"_sidebarTabsButton_selected_eBHM-\";\nconst sidebarTabsButton__name = \"_sidebarTabsButton__name_YlW5S\";\nconst sidebarTabsButton__icon = \"_sidebarTabsButton__icon_MPS-D\";\nconst sidebarTabsButton__legacyIcon = \"_sidebarTabsButton__legacyIcon_rzPOu\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_m4vbX\",\n sidebarTabsButton,\n sidebarTabsButton_legacy,\n sidebarTabsButton_selected,\n sidebarTabsButton__name,\n sidebarTabsButton__icon,\n sidebarTabsButton__legacyIcon\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcAppSidebarTabsButton = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"__cssModules\", cssModules]]);\nconst _sfc_main$1 = {\n name: \"NcAppSidebarTabs\",\n components: {\n NcAppSidebarTabsButton\n },\n provide() {\n return {\n registerTab: this.registerTab,\n unregisterTab: this.unregisterTab,\n // Getter as an alternative to Vue 2.7 computed(() => this.activeTab)\n getActiveTab: () => this.activeTab,\n // Used to check whether the tab header is shown so the tabs can reference the tab header for `aria-labelledby` or not\n isTablistShown: () => this.hasMultipleTabs\n };\n },\n props: {\n /**\n * Id of the tab to activate\n */\n active: {\n type: String,\n default: \"\"\n },\n /**\n * Force the tab navigation to display even if there is only one tab\n */\n forceTabs: {\n type: Boolean,\n default: false\n }\n },\n emits: [\"update:active\"],\n data(props) {\n return {\n /**\n * Tab descriptions from the passed NcSidebarTab components' props to build the tab navbar from.\n */\n tabs: [],\n /**\n * Local active (open) tab's ID. It allows to use component without v-model:active\n */\n activeTab: props.active,\n isLegacy34\n };\n },\n computed: {\n /**\n * Has multiple tabs. If only one tab - its content is shown without navigation\n *\n * @return {boolean}\n */\n hasMultipleTabs() {\n return this.tabs.length > 1;\n },\n showForSingleTab() {\n return this.forceTabs && this.tabs.length === 1;\n },\n currentTabIndex() {\n return this.tabs.findIndex((tab) => tab.id === this.activeTab);\n }\n },\n watch: {\n tabs() {\n if (this.active) {\n this.updateActive();\n }\n },\n active(active) {\n if (active !== this.activeTab) {\n this.updateActive();\n }\n }\n },\n methods: {\n /**\n * Set the current active tab\n *\n * @param {string} id the id of the tab\n */\n setActive(id) {\n this.activeTab = id;\n this.$emit(\"update:active\", this.activeTab);\n },\n /**\n * Focus the previous tab\n * and emit to the parent component\n */\n focusPreviousTab() {\n if (this.currentTabIndex > 0) {\n this.setActive(this.tabs[this.currentTabIndex - 1].id);\n }\n this.focusActiveTab();\n },\n /**\n * Focus the next tab\n * and emit to the parent component\n */\n focusNextTab() {\n if (this.currentTabIndex < this.tabs.length - 1) {\n this.setActive(this.tabs[this.currentTabIndex + 1].id);\n }\n this.focusActiveTab();\n },\n /**\n * Focus the first tab\n * and emit to the parent component\n */\n focusFirstTab() {\n this.setActive(this.tabs[0].id);\n this.focusActiveTab();\n },\n /**\n * Focus the last tab\n * and emit to the parent component\n */\n focusLastTab() {\n this.setActive(this.tabs[this.tabs.length - 1].id);\n this.focusActiveTab();\n },\n /**\n * Focus the current active tab\n */\n focusActiveTab() {\n this.$el.querySelector(`#tab-button-${this.activeTab}`).focus();\n },\n /**\n * Focus the content on tab\n * see aria accessibility guidelines\n */\n focusActiveTabContent() {\n this.$el.querySelector(\"#tab-\" + this.activeTab).focus();\n },\n /**\n * Update the current active tab\n */\n updateActive() {\n this.activeTab = this.active && this.tabs.some(({ id }) => id === this.active) ? this.active : this.tabs[0]?.id ?? \"\";\n },\n /**\n * Register child tab in the tabs\n *\n * @param {object} tab child tab passed to slot\n */\n registerTab(tab) {\n this.tabs.push(tab);\n this.tabs.sort((a, b) => {\n if (a.order === b.order) {\n return a.name.localeCompare(b.name, [getCanonicalLocale()]);\n }\n return a.order - b.order;\n });\n this.updateActive();\n },\n /**\n * Unregister child tab from the tabs\n *\n * @param {string} id tab's id\n */\n unregisterTab(id) {\n const tabIndex = this.tabs.findIndex((tab) => tab.id === id);\n if (tabIndex !== -1) {\n this.tabs.splice(tabIndex, 1);\n }\n if (this.activeTab === id) {\n this.updateActive();\n }\n }\n }\n};\nconst _hoisted_1$1 = { class: \"app-sidebar-tabs\" };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAppSidebarTabsButton = resolveComponent(\"NcAppSidebarTabsButton\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n $options.hasMultipleTabs || $options.showForSingleTab ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n role: \"tablist\",\n class: normalizeClass([\"app-sidebar-tabs__nav\", { \"app-sidebar-tabs__nav--legacy\": $data.isLegacy34 }]),\n onKeydown: [\n _cache[0] || (_cache[0] = withKeys(withModifiers((...args) => $options.focusPreviousTab && $options.focusPreviousTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"left\"])),\n _cache[1] || (_cache[1] = withKeys(withModifiers((...args) => $options.focusNextTab && $options.focusNextTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"right\"])),\n _cache[2] || (_cache[2] = withKeys(withModifiers((...args) => $options.focusActiveTabContent && $options.focusActiveTabContent(...args), [\"exact\", \"prevent\", \"stop\"]), [\"tab\"])),\n _cache[3] || (_cache[3] = withKeys(withModifiers((...args) => $options.focusFirstTab && $options.focusFirstTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"home\"])),\n _cache[4] || (_cache[4] = withKeys(withModifiers((...args) => $options.focusLastTab && $options.focusLastTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"end\"])),\n _cache[5] || (_cache[5] = withKeys(withModifiers((...args) => $options.focusFirstTab && $options.focusFirstTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"page-up\"])),\n _cache[6] || (_cache[6] = withKeys(withModifiers((...args) => $options.focusLastTab && $options.focusLastTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"page-down\"]))\n ]\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($data.tabs, (tab) => {\n return openBlock(), createBlock(_component_NcAppSidebarTabsButton, {\n id: `tab-button-${tab.id}`,\n key: tab.id,\n class: \"app-sidebar-tabs__tab\",\n \"aria-controls\": `tab-${tab.id}`,\n selected: $data.activeTab === tab.id,\n tab,\n \"onUpdate:selected\": ($event) => $options.setActive(tab.id)\n }, null, 8, [\"id\", \"aria-controls\", \"selected\", \"tab\", \"onUpdate:selected\"]);\n }), 128))\n ], 34)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-sidebar-tabs__content\", { \"app-sidebar-tabs__content--multiple\": $options.hasMultipleTabs }])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 2)\n ]);\n}\nconst NcAppSidebarTabs = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-e74d1502\"]]);\nregister(t15);\nconst _sfc_main = {\n name: \"NcAppSidebar\",\n components: {\n NcActions,\n NcAppSidebarHeader: _sfc_main$7,\n NcAppSidebarTabs,\n NcButton,\n NcLoadingIcon,\n NcEmptyContent,\n IconArrowRight,\n IconClose,\n IconDockRight,\n IconStar,\n IconStarOutline\n },\n directives: {\n Focus: directive,\n /** @type {import('vue').ObjectDirective} */\n ClickOutside: vOnClickOutside\n },\n inject: {\n ncContentSelector: {\n from: CONTENT_SELECTOR_KEY,\n default: void 0\n }\n },\n props: {\n /**\n * The active tab\n */\n active: {\n type: String,\n default: \"\"\n },\n /**\n * Main text of the sidebar\n */\n name: {\n type: String,\n required: true\n },\n /**\n * Allow to edit the sidebar name.\n */\n nameEditable: {\n type: Boolean,\n default: false\n },\n /**\n * Placeholder in the edit field if the name is editable.\n */\n namePlaceholder: {\n type: String,\n default: \"\"\n },\n /**\n * Secondary name of the sidebar (subline)\n */\n subname: {\n type: String,\n default: \"\"\n },\n /**\n * Title to display for the subname.\n */\n subtitle: {\n type: String,\n default: \"\"\n },\n /**\n * Url to the top header background image\n * Applied with css\n */\n background: {\n type: String,\n default: \"\"\n },\n /**\n * Enable the favourite icon if not null\n * See fired events\n */\n starred: {\n type: Boolean,\n default: null\n },\n /**\n * Show loading spinner instead of the star icon\n */\n starLoading: {\n type: Boolean,\n default: false\n },\n /**\n * Show loading spinner instead of tabs\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Display the sidebar in compact mode\n */\n compact: {\n type: Boolean,\n default: false\n },\n /**\n * Only display close button and default slot content.\n * Don't display other header content and primary and secondary actions.\n * Useful when showing the EmptyContent component as content.\n */\n empty: {\n type: Boolean,\n default: false\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Force the tab navigation to display even if there is only one tab\n */\n forceTabs: {\n type: Boolean,\n default: false\n },\n /**\n * Linkify the name\n */\n linkifyName: {\n type: Boolean,\n default: false\n },\n /**\n * Title to display for the name.\n * Can be set to the same text in case it's too long.\n */\n title: {\n type: String,\n default: \"\"\n },\n /**\n * Allow to conditionally show the sidebar\n * You can also use `v-if` on the sidebar, but using the open prop allow to keep\n * the sidebar inside the DOM for performance if it is opened and closed multiple times.\n *\n * When using the `open` property to close the sidebar a built-in toggle button will be shown to reopen it,\n * similar to the app navigation. You can remove this button with the `no-toggle` prop.\n */\n open: {\n type: Boolean,\n default: true\n },\n /**\n * Custom classes to assign to the sidebar toggle button.\n * If needed this can be used to assign styles to the button using `:deep()` selector.\n */\n toggleClasses: {\n type: [String, Array, Object],\n default: \"\"\n },\n /**\n * Custom attrs to assign to the sidebar toggle button.\n */\n toggleAttrs: {\n type: Object,\n default: void 0\n },\n /**\n * Do not add the built-in toggle button with `open` prop.\n */\n noToggle: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"close\",\n \"closed\",\n \"opened\",\n // 'figureClick', not emitted on purpose to make \"hasFigureClickListener\" work\n \"update:active\",\n \"update:name\",\n \"update:nameEditable\",\n \"update:open\",\n \"update:starred\",\n \"submitName\",\n \"dismissEditing\"\n ],\n setup() {\n const headerRef = ref(null);\n provide(\"NcAppSidebar:header:ref\", headerRef);\n return {\n uid: createElementId(),\n isMobile: useIsSmallMobile(),\n headerRef\n };\n },\n data() {\n return {\n changeNameTranslated: t(\"Change name\"),\n closeTranslated: t(\"Close sidebar\"),\n favoriteTranslated: t(\"Favorite\"),\n isStarred: this.starred,\n focusTrap: null,\n elementToReturnFocus: null\n };\n },\n computed: {\n canStar() {\n return this.isStarred !== null;\n },\n hasFigureClickListener() {\n return !!this.$attrs.onFigureClick;\n }\n },\n watch: {\n starred() {\n this.isStarred = this.starred;\n },\n isMobile() {\n this.toggleFocusTrap();\n },\n open() {\n this.checkToggleButtonContainerAvailability();\n }\n },\n created() {\n this.preserveElementToReturnFocus();\n this.checkToggleButtonContainerAvailability();\n },\n beforeUnmount() {\n this.$emit(\"closed\");\n this.focusTrap?.deactivate();\n },\n methods: {\n isSlotPopulated,\n t,\n preserveElementToReturnFocus() {\n if (document.activeElement && document.activeElement !== document.body) {\n this.elementToReturnFocus = document.activeElement;\n if (this.elementToReturnFocus.getAttribute(\"role\") === \"menuitem\") {\n const menu = this.elementToReturnFocus.closest('[role=\"menu\"]');\n if (menu) {\n const menuTrigger = document.querySelector(`[aria-controls=\"${menu.id}\"]`);\n this.elementToReturnFocus = menuTrigger;\n }\n }\n }\n },\n initFocusTrap() {\n if (this.focusTrap) {\n return;\n }\n this.focusTrap = createFocusTrap([\n // The sidebar itself\n this.$refs.sidebar,\n // Nextcloud Server header navigation\n document.querySelector(\"#header\")\n ], {\n allowOutsideClick: true,\n fallbackFocus: this.$refs.closeButton.$el,\n trapStack: getTrapStack(),\n escapeDeactivates: false\n });\n },\n /**\n * Activate focus trap if it is currently needed, otherwise deactivate\n */\n toggleFocusTrap() {\n if (this.open && this.isMobile) {\n this.initFocusTrap();\n this.focusTrap.activate();\n } else {\n this.focusTrap?.deactivate();\n }\n },\n /**\n * Close the sidebar on pressing the escape key on mobile\n *\n * @param {KeyboardEvent} event key down event\n */\n onKeydownEsc(event) {\n if (this.isMobile) {\n event.stopPropagation();\n this.closeSidebar();\n }\n },\n onAfterEnter(element) {\n if (this.elementToReturnFocus) {\n this.focus();\n }\n this.toggleFocusTrap();\n this.$emit(\"opened\", element);\n },\n onAfterLeave(element) {\n this.$emit(\"closed\", element);\n this.toggleFocusTrap();\n this.elementToReturnFocus?.focus({ focusVisible: true });\n this.elementToReturnFocus = null;\n },\n /**\n * Used to tell parent component the user asked to close the sidebar\n *\n * @param {Event} e close icon click event\n */\n closeSidebar(e) {\n this.$emit(\"close\", e);\n this.$emit(\"update:open\", false);\n },\n /**\n * Emit figure click event to parent component\n *\n * @param {Event} e click event\n */\n onFigureClick(e) {\n this.$emit(\"figureClick\", e);\n },\n /**\n * Toggle the favourite state\n * and emit to the parent component\n */\n toggleStarred() {\n this.isStarred = !this.isStarred;\n this.$emit(\"update:starred\", this.isStarred);\n },\n async editName() {\n this.$emit(\"update:nameEditable\", true);\n if (this.nameEditable) {\n await this.$nextTick();\n this.$refs.nameInput.focus();\n }\n },\n /**\n * Focus the sidebar\n *\n * @public\n */\n focus() {\n if (!this.open && !this.noToggle) {\n this.$refs.toggle.$el.focus();\n return;\n }\n try {\n this.headerRef.focus();\n } catch {\n warn(\"NcAppSidebar should have focusable header for accessibility reasons. Use NcAppSidebarHeader component.\");\n }\n },\n /**\n * Focus the active tab\n *\n * @public\n */\n focusActiveTabContent() {\n this.preserveElementToReturnFocus();\n this.$refs.tabs.focusActiveTabContent();\n },\n /**\n * Check if the toggle button container is available\n */\n checkToggleButtonContainerAvailability() {\n if (this.open === false && !this.noToggle && !this.ncContentSelector) {\n logger.warn(\"[NcAppSidebar] It looks like you want to use NcAppSidebar with the built-in toggle button. This feature is only available when NcAppSidebar is used in NcContent.\");\n }\n },\n /**\n * Emit name change event to parent component\n *\n * @param {Event} event input event\n */\n onNameInput(event) {\n this.$emit(\"update:name\", event.target.value);\n },\n /**\n * Emit when the name form edit confirm button is pressed in order\n * to change the name.\n *\n * @param {Event} event submit event\n */\n onSubmitName(event) {\n this.$emit(\"update:nameEditable\", false);\n this.$emit(\"submitName\", event);\n },\n onDismissEditing() {\n this.$emit(\"update:nameEditable\", false);\n this.$emit(\"dismissEditing\");\n },\n onUpdateActive(activeTab) {\n this.$emit(\"update:active\", activeTab);\n }\n }\n};\nconst _hoisted_1 = [\"aria-labelledby\"];\nconst _hoisted_2 = { class: \"app-sidebar-header__info\" };\nconst _hoisted_3 = {\n key: 0,\n class: \"app-sidebar-header__tertiary-actions\"\n};\nconst _hoisted_4 = { class: \"app-sidebar-header__name-container\" };\nconst _hoisted_5 = { class: \"app-sidebar-header__mainname-container\" };\nconst _hoisted_6 = [\"placeholder\", \"value\"];\nconst _hoisted_7 = [\"title\"];\nconst _hoisted_8 = {\n key: 2,\n class: \"app-sidebar-header__description\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_IconDockRight = resolveComponent(\"IconDockRight\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_IconStar = resolveComponent(\"IconStar\");\n const _component_IconStarOutline = resolveComponent(\"IconStarOutline\");\n const _component_NcAppSidebarHeader = resolveComponent(\"NcAppSidebarHeader\");\n const _component_IconArrowRight = resolveComponent(\"IconArrowRight\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n const _component_IconClose = resolveComponent(\"IconClose\");\n const _component_NcAppSidebarTabs = resolveComponent(\"NcAppSidebarTabs\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n const _directive_focus = resolveDirective(\"focus\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return openBlock(), createBlock(Transition, {\n appear: \"\",\n name: \"slide-right\",\n onAfterEnter: $options.onAfterEnter,\n onAfterLeave: $options.onAfterLeave\n }, {\n default: withCtx(() => [\n withDirectives(createElementVNode(\"aside\", {\n id: \"app-sidebar-vue\",\n ref: \"sidebar\",\n class: \"app-sidebar\",\n \"aria-labelledby\": `app-sidebar-vue-${$setup.uid}__header`,\n onKeydown: _cache[6] || (_cache[6] = withKeys((...args) => $options.onKeydownEsc && $options.onKeydownEsc(...args), [\"esc\"]))\n }, [\n $options.ncContentSelector && !$props.open && !$props.noToggle ? (openBlock(), createBlock(Teleport, {\n key: 0,\n to: $options.ncContentSelector\n }, [\n createVNode(_component_NcButton, mergeProps({\n ref: \"toggle\",\n \"aria-label\": $options.t(\"Open sidebar\"),\n class: [\"app-sidebar__toggle\", $props.toggleClasses],\n variant: \"tertiary\"\n }, $props.toggleAttrs, {\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"update:open\", true))\n }), {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"toggle-icon\", {}, () => [\n createVNode(_component_IconDockRight, { size: 20 })\n ], true)\n ]),\n _: 3\n }, 16, [\"aria-label\", \"class\"])\n ], 8, [\"to\"])) : createCommentVNode(\"\", true),\n createElementVNode(\"header\", {\n class: normalizeClass([\"app-sidebar-header\", {\n \"app-sidebar-header--with-figure\": $options.isSlotPopulated(_ctx.$slots.header?.()) || $props.background,\n \"app-sidebar-header--compact\": $props.compact\n }])\n }, [\n !$props.empty ? renderSlot(_ctx.$slots, \"info\", { key: 0 }, () => [\n createElementVNode(\"div\", _hoisted_2, [\n $options.isSlotPopulated(_ctx.$slots.header?.()) || $props.background ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"app-sidebar-header__figure\", {\n \"app-sidebar-header__figure--with-action\": $options.hasFigureClickListener\n }]),\n style: normalizeStyle({\n backgroundImage: `url(${$props.background})`\n }),\n tabindex: \"0\",\n onClick: _cache[1] || (_cache[1] = (...args) => $options.onFigureClick && $options.onFigureClick(...args)),\n onKeydown: _cache[2] || (_cache[2] = withKeys((...args) => $options.onFigureClick && $options.onFigureClick(...args), [\"enter\"]))\n }, [\n renderSlot(_ctx.$slots, \"header\", { class: \"app-sidebar-header__background\" }, void 0, true)\n ], 38)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-sidebar-header__desc\", {\n \"app-sidebar-header__desc--with-tertiary-action\": $options.canStar || $options.isSlotPopulated(_ctx.$slots[\"tertiary-actions\"]?.()),\n \"app-sidebar-header__desc--editable\": $props.nameEditable && !$props.subname,\n \"app-sidebar-header__desc--with-subname--editable\": $props.nameEditable && $props.subname,\n \"app-sidebar-header__desc--without-actions\": !$options.isSlotPopulated(_ctx.$slots[\"secondary-actions\"]?.())\n }])\n }, [\n $options.canStar || $options.isSlotPopulated(_ctx.$slots[\"tertiary-actions\"]?.()) ? (openBlock(), createElementBlock(\"div\", _hoisted_3, [\n renderSlot(_ctx.$slots, \"tertiary-actions\", {}, () => [\n $options.canStar ? (openBlock(), createBlock(_component_NcButton, {\n key: 0,\n \"aria-label\": $data.favoriteTranslated,\n pressed: $data.isStarred,\n class: \"app-sidebar-header__star\",\n variant: \"secondary\",\n onClick: withModifiers($options.toggleStarred, [\"prevent\"])\n }, {\n icon: withCtx(() => [\n $props.starLoading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : $data.isStarred ? (openBlock(), createBlock(_component_IconStar, {\n key: 1,\n size: 20\n })) : (openBlock(), createBlock(_component_IconStarOutline, {\n key: 2,\n size: 20\n }))\n ]),\n _: 1\n }, 8, [\"aria-label\", \"pressed\", \"onClick\"])) : createCommentVNode(\"\", true)\n ], true)\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_4, [\n createElementVNode(\"div\", _hoisted_5, [\n withDirectives(createVNode(_component_NcAppSidebarHeader, {\n class: \"app-sidebar-header__mainname\",\n name: $props.name,\n linkify: $props.linkifyName,\n title: $props.title,\n tabindex: $props.nameEditable ? 0 : -1,\n onClick: withModifiers($options.editName, [\"self\"])\n }, null, 8, [\"name\", \"linkify\", \"title\", \"tabindex\", \"onClick\"]), [\n [vShow, !$props.nameEditable]\n ]),\n $props.nameEditable ? withDirectives((openBlock(), createElementBlock(\"form\", {\n key: 0,\n class: \"app-sidebar-header__mainname-form\",\n onSubmit: _cache[5] || (_cache[5] = withModifiers((...args) => $options.onSubmitName && $options.onSubmitName(...args), [\"prevent\"]))\n }, [\n withDirectives(createElementVNode(\"input\", {\n ref: \"nameInput\",\n class: \"app-sidebar-header__mainname-input\",\n type: \"text\",\n placeholder: $props.namePlaceholder,\n value: $props.name,\n onKeydown: _cache[3] || (_cache[3] = withKeys(withModifiers((...args) => $options.onDismissEditing && $options.onDismissEditing(...args), [\"stop\"]), [\"esc\"])),\n onInput: _cache[4] || (_cache[4] = (...args) => $options.onNameInput && $options.onNameInput(...args))\n }, null, 40, _hoisted_6), [\n [_directive_focus]\n ]),\n createVNode(_component_NcButton, {\n \"aria-label\": $data.changeNameTranslated,\n type: \"submit\",\n variant: \"tertiary-no-background\"\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconArrowRight, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\"])\n ], 32)), [\n [_directive_click_outside, () => $options.onSubmitName()]\n ]) : createCommentVNode(\"\", true),\n $options.isSlotPopulated(_ctx.$slots[\"secondary-actions\"]?.()) ? (openBlock(), createBlock(_component_NcActions, {\n key: 1,\n class: \"app-sidebar-header__menu\",\n forceMenu: $props.forceMenu\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"secondary-actions\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"forceMenu\"])) : createCommentVNode(\"\", true)\n ]),\n $props.subname.trim() !== \"\" || _ctx.$slots[\"subname\"] ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n title: $props.subtitle || void 0,\n class: \"app-sidebar-header__subname\"\n }, [\n renderSlot(_ctx.$slots, \"subname\", {}, () => [\n createTextVNode(toDisplayString($props.subname), 1)\n ], true)\n ], 8, _hoisted_7)) : createCommentVNode(\"\", true)\n ])\n ], 2)\n ])\n ], true) : (openBlock(), createBlock(_component_NcAppSidebarHeader, {\n key: 1,\n class: \"app-sidebar-header__mainname--hidden\",\n name: $props.name,\n tabindex: \"-1\"\n }, null, 8, [\"name\"])),\n createVNode(_component_NcButton, {\n ref: \"closeButton\",\n \"aria-label\": $data.closeTranslated,\n title: $data.closeTranslated,\n class: \"app-sidebar__close\",\n variant: \"tertiary\",\n onClick: withModifiers($options.closeSidebar, [\"prevent\"])\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconClose, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"]),\n $options.isSlotPopulated(_ctx.$slots.description?.()) && !$props.empty ? (openBlock(), createElementBlock(\"div\", _hoisted_8, [\n renderSlot(_ctx.$slots, \"description\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 2),\n withDirectives(createVNode(_component_NcAppSidebarTabs, {\n ref: \"tabs\",\n active: $props.active,\n forceTabs: $props.forceTabs,\n \"onUpdate:active\": $options.onUpdateActive\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"active\", \"forceTabs\", \"onUpdate:active\"]), [\n [vShow, !$props.loading]\n ]),\n $props.loading ? (openBlock(), createBlock(_component_NcEmptyContent, { key: 1 }, {\n icon: withCtx(() => [\n createVNode(_component_NcLoadingIcon, { size: 64 })\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ], 40, _hoisted_1), [\n [vShow, $props.open]\n ])\n ]),\n _: 3\n }, 8, [\"onAfterEnter\", \"onAfterLeave\"]);\n}\nconst NcAppSidebar = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-e8979b7f\"]]);\nexport {\n NcAppSidebar as N\n};\n//# sourceMappingURL=NcAppSidebar-Ch7Vp7q5.mjs.map\n","import PQueue from \"p-queue\";\nconst queue = new PQueue({ concurrency: 5 });\nfunction preloadImage(url) {\n const { resolve, promise } = Promise.withResolvers();\n queue.add(() => {\n const image = new Image();\n image.onerror = () => resolve(false);\n image.onload = () => resolve(true);\n image.src = url;\n return promise;\n });\n return promise;\n}\nexport {\n preloadImage\n};\n//# sourceMappingURL=index.mjs.map\n","import '../assets/NcCollectionList-e5JFvzqX.css';\nimport debounce from \"debounce\";\nimport { resolveComponent, openBlock, createElementBlock, createVNode, toDisplayString, withModifiers, normalizeClass, withDirectives, createElementVNode, vModelText, Fragment, renderList, createBlock, resolveDynamicComponent, withCtx, createCommentVNode, createTextVNode, Transition, ref } from \"vue\";\nimport { r as register, L as t28, a as t, M as t6 } from \"./_l10n-CG4CuN3H.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-BO5T5ePT.mjs\";\nimport { N as NcActions } from \"./NcActions-CUmcZ3C3.mjs\";\nimport { N as NcAvatar } from \"./NcAvatar-M3-CbKbq.mjs\";\nimport { g as getRoute } from \"./autolink-BT8u-IL-.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { N as NcSelect } from \"./NcSelect-BOFzoCwK.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nregister(t28);\nconst _sfc_main$1 = {\n name: \"NcCollectionListItem\",\n components: {\n NcAvatar,\n NcActions,\n NcActionButton\n },\n props: {\n /**\n * The collection\n */\n collection: {\n type: Object,\n default: null\n },\n /**\n * Current error if any\n */\n error: {\n type: String,\n default: void 0\n }\n },\n emits: [\n \"removeResource\",\n \"renameCollection\"\n ],\n data() {\n return {\n detailsOpen: false,\n newName: null\n };\n },\n computed: {\n getIcon() {\n return (resource) => [resource.iconClass];\n },\n typeClass() {\n return (resource) => \"resource-type-\" + resource.type;\n },\n resources() {\n return this.collection.resources?.filter((resource) => !Array.isArray(resource)) ?? [];\n },\n getComponent() {\n return (resource) => {\n const route = getRoute(this.$router, resource.link);\n return route ? { component: \"router-link\", to: route, href: void 0 } : { component: \"a\", to: void 0, href: resource.link };\n };\n },\n iconUrl() {\n return (resource) => {\n if (resource.mimetype) {\n return OC.MimeType.getIconUrl(resource.mimetype);\n }\n if (resource.iconUrl) {\n return resource.iconUrl;\n }\n return \"\";\n };\n }\n },\n methods: {\n t,\n toggleDetails() {\n this.detailsOpen = !this.detailsOpen;\n },\n showDetails() {\n this.detailsOpen = true;\n },\n removeResource(collection, resource) {\n this.$emit(\"removeResource\", {\n collectionId: collection.id,\n resourceType: resource.type,\n resourceId: resource.id\n });\n },\n openRename() {\n this.newName = this.collection.name;\n },\n renameCollection() {\n if (this.newName) {\n this.$emit(\"renameCollection\", {\n collectionId: this.collection.id,\n name: this.newName\n });\n }\n this.newName = null;\n }\n }\n};\nconst _hoisted_1$1 = { class: \"collection-list-item\" };\nconst _hoisted_2$1 = {\n key: 2,\n class: \"linked-icons\"\n};\nconst _hoisted_3$1 = [\"src\", \"alt\"];\nconst _hoisted_4$1 = {\n key: 3,\n class: \"sharingOptionsGroup\"\n};\nconst _hoisted_5$1 = {\n key: 0,\n class: \"error\"\n};\nconst _hoisted_6$1 = {\n key: 0,\n class: \"resource-list-details\"\n};\nconst _hoisted_7$1 = [\"src\", \"alt\"];\nconst _hoisted_8$1 = { class: \"resource-name\" };\nconst _hoisted_9 = [\"onClick\"];\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAvatar = resolveComponent(\"NcAvatar\");\n const _component_NcActionButton = resolveComponent(\"NcActionButton\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n return openBlock(), createElementBlock(\"li\", _hoisted_1$1, [\n createVNode(_component_NcAvatar, {\n displayName: $props.collection.name,\n allowPlaceholder: \"\",\n class: \"collection-avatar\"\n }, null, 8, [\"displayName\"]),\n $data.newName === null ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n class: \"collection-item-name\",\n title: \"\",\n onClick: _cache[0] || (_cache[0] = (...args) => $options.showDetails && $options.showDetails(...args))\n }, toDisplayString($props.collection.name), 1)) : (openBlock(), createElementBlock(\"form\", {\n key: 1,\n class: normalizeClass({ \"should-shake\": $props.error }),\n onSubmit: _cache[2] || (_cache[2] = withModifiers((...args) => $options.renameCollection && $options.renameCollection(...args), [\"prevent\"]))\n }, [\n withDirectives(createElementVNode(\"input\", {\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => $data.newName = $event),\n type: \"text\",\n autocomplete: \"off\",\n autocapitalize: \"off\"\n }, null, 512), [\n [vModelText, $data.newName]\n ]),\n _cache[3] || (_cache[3] = createElementVNode(\"input\", {\n type: \"submit\",\n value: \"\",\n class: \"icon-confirm\"\n }, null, -1))\n ], 34)),\n !$data.detailsOpen && $data.newName === null ? (openBlock(), createElementBlock(\"div\", _hoisted_2$1, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.resources.slice(0, 2), (resource) => {\n return openBlock(), createBlock(resolveDynamicComponent($options.getComponent(resource).component), {\n key: resource.type + \"|\" + resource.id,\n title: resource.name,\n to: $options.getComponent(resource).to,\n href: $options.getComponent(resource).href,\n class: normalizeClass($options.typeClass(resource))\n }, {\n default: withCtx(() => [\n createElementVNode(\"img\", {\n src: $options.iconUrl(resource),\n alt: resource.name\n }, null, 8, _hoisted_3$1)\n ]),\n _: 2\n }, 1032, [\"title\", \"to\", \"href\", \"class\"]);\n }), 128))\n ])) : createCommentVNode(\"\", true),\n $data.newName === null ? (openBlock(), createElementBlock(\"span\", _hoisted_4$1, [\n createVNode(_component_NcActions, null, {\n default: withCtx(() => [\n createVNode(_component_NcActionButton, {\n icon: \"icon-info\",\n onClick: withModifiers($options.toggleDetails, [\"prevent\"])\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString($data.detailsOpen ? $options.t(\"Hide details\") : $options.t(\"Show details\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n createVNode(_component_NcActionButton, {\n icon: \"icon-rename\",\n onClick: withModifiers($options.openRename, [\"prevent\"])\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString($options.t(\"Rename project\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n _: 1\n })\n ])) : createCommentVNode(\"\", true),\n createVNode(Transition, { name: \"fade\" }, {\n default: withCtx(() => [\n $props.error ? (openBlock(), createElementBlock(\"div\", _hoisted_5$1, toDisplayString($props.error), 1)) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n createVNode(Transition, { name: \"fade\" }, {\n default: withCtx(() => [\n $data.detailsOpen ? (openBlock(), createElementBlock(\"ul\", _hoisted_6$1, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.resources, (resource) => {\n return openBlock(), createElementBlock(\"li\", {\n key: resource.type + \"|\" + resource.id,\n class: normalizeClass($options.typeClass(resource))\n }, [\n (openBlock(), createBlock(resolveDynamicComponent($options.getComponent(resource).component), {\n to: $options.getComponent(resource).to,\n href: $options.getComponent(resource).href\n }, {\n default: withCtx(() => [\n createElementVNode(\"img\", {\n src: $options.iconUrl(resource),\n alt: resource.name\n }, null, 8, _hoisted_7$1),\n createElementVNode(\"span\", _hoisted_8$1, toDisplayString(resource.name || \"\"), 1)\n ]),\n _: 2\n }, 1032, [\"to\", \"href\"])),\n createElementVNode(\"span\", {\n class: \"icon-close\",\n onClick: ($event) => $options.removeResource($props.collection, resource)\n }, null, 8, _hoisted_9)\n ], 2);\n }), 128))\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n })\n ]);\n}\nconst NcCollectionListItem = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-8ebb9fc1\"]]);\nregister(t6);\nfunction extractOcsData(response) {\n return response.data.ocs.data;\n}\nfunction renameCollectionService(collectionId, collectionName) {\n return axios.put(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), { collectionName }).then(extractOcsData);\n}\nfunction getCollectionsByResourceService(resourceType, resourceId) {\n return axios.get(generateOcsUrl(\"collaboration/resources/{resourceType}/{resourceId}\", { resourceType, resourceId })).then(extractOcsData);\n}\nfunction createCollectionService(resourceType, resourceId, name) {\n return axios.post(generateOcsUrl(\"collaboration/resources/{resourceType}/{resourceId}\", { resourceType, resourceId }), { name }).then(extractOcsData);\n}\nfunction addResourceService(collectionId, resourceType, resourceId) {\n return axios.post(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), { resourceType, resourceId }).then(extractOcsData);\n}\nfunction removeResourceService(collectionId, resourceType, resourceId) {\n return axios.delete(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), { params: { resourceType, resourceId } }).then(extractOcsData);\n}\nfunction searchService(query) {\n return axios.get(generateOcsUrl(\"collaboration/resources/collections/search/{query}\", { query })).then(extractOcsData);\n}\nfunction useCollections() {\n const storedCollections = ref([]);\n const addCollections = (collections) => {\n storedCollections.value = collections;\n };\n const addCollection = (collection) => {\n storedCollections.value.push(collection);\n };\n const removeCollection = (collectionId) => {\n storedCollections.value = storedCollections.value.filter((item) => item.id !== collectionId);\n };\n const updateCollection = (collection) => {\n const index = storedCollections.value.findIndex((item) => item.id === collection.id);\n if (index !== -1) {\n storedCollections.value[index] = collection;\n } else {\n addCollection(collection);\n }\n };\n const fetchCollectionsByResource = async ({ resourceType, resourceId }) => {\n const collections = await getCollectionsByResourceService(resourceType, resourceId);\n addCollections(collections);\n };\n const createCollection = async ({ baseResourceType, baseResourceId, resourceType, resourceId, name }) => {\n const collection = await createCollectionService(baseResourceType, baseResourceId, name);\n addCollection(collection);\n await addResourceToCollection({\n collectionId: collection.id,\n resourceType,\n resourceId\n });\n };\n const renameCollection = async ({ collectionId, name }) => {\n const collection = await renameCollectionService(collectionId, name);\n updateCollection(collection);\n };\n async function addResourceToCollection({ collectionId, resourceType, resourceId }) {\n const collection = await addResourceService(collectionId, resourceType, String(resourceId));\n updateCollection(collection);\n }\n const removeResourceFromCollection = async ({ collectionId, resourceType, resourceId }) => {\n const collection = await removeResourceService(collectionId, resourceType, String(resourceId));\n if (collection.resources.length > 0) {\n updateCollection(collection);\n } else {\n removeCollection(collectionId);\n }\n };\n return {\n storedCollections,\n fetchCollectionsByResource,\n createCollection,\n renameCollection,\n addResourceToCollection,\n removeResourceFromCollection\n };\n}\nconst METHOD_CREATE_COLLECTION = 0;\nconst METHOD_ADD_TO_COLLECTION = 1;\nconst _sfc_main = {\n name: \"NcCollectionList\",\n components: {\n NcCollectionListItem,\n NcAvatar,\n NcSelect\n },\n props: {\n /**\n * Resource type identifier\n */\n type: {\n type: String,\n default: null\n },\n /**\n * Unique id of the resource\n */\n id: {\n type: String,\n default: null\n },\n /**\n * Name of the resource\n */\n name: {\n type: String,\n default: \"\"\n },\n /**\n * Whether the component is active (to start fetch resources)\n */\n isActive: {\n type: Boolean,\n default: true\n }\n },\n setup() {\n const {\n storedCollections,\n fetchCollectionsByResource,\n createCollection,\n addResourceToCollection,\n removeResourceFromCollection,\n renameCollection\n } = useCollections();\n const searchCollections = ref([]);\n const search = debounce(function(query, loading) {\n if (query !== \"\") {\n loading(true);\n searchService(query).then((collections) => {\n searchCollections.value = collections;\n }).catch((error) => {\n logger.error(\"Failed to search for collections\", { error });\n }).finally(() => {\n loading(false);\n });\n }\n }, 500);\n return {\n storedCollections,\n fetchCollectionsByResource,\n createCollection,\n addResourceToCollection,\n removeResourceFromCollection,\n renameCollection,\n searchCollections,\n search\n };\n },\n data() {\n return {\n selectIsOpen: false,\n generatingCodes: false,\n codes: void 0,\n value: null,\n model: {},\n collectionsError: {},\n error: null,\n isSelectOpen: false\n };\n },\n computed: {\n collections() {\n return this.storedCollections.filter((collection) => collection.resources.some((resource) => resource && resource.id === String(this.id) && resource.type === this.type));\n },\n placeholder() {\n return this.isSelectOpen ? t(\"Type to search for existing projects\") : t(\"Add to a project\");\n },\n options() {\n const options = [];\n window.OCP.Collaboration.getTypes().sort().forEach((type) => {\n options.push({\n method: METHOD_CREATE_COLLECTION,\n type,\n title: window.OCP.Collaboration.getLabel(type),\n class: window.OCP.Collaboration.getIcon(type),\n action: () => window.OCP.Collaboration.trigger(type)\n });\n });\n for (const index in this.searchCollections) {\n if (!this.collections.find((collection) => collection.id === this.searchCollections[index].id)) {\n options.push({\n method: METHOD_ADD_TO_COLLECTION,\n title: this.searchCollections[index].name,\n collectionId: this.searchCollections[index].id\n });\n }\n }\n return options;\n },\n resourceIdentifier() {\n return {\n resourceType: this.type,\n resourceId: this.id,\n isActive: this.isActive\n };\n }\n },\n watch: {\n resourceIdentifier: {\n deep: true,\n immediate: true,\n handler(resourceIdentifier) {\n if (!resourceIdentifier.isActive || !resourceIdentifier.resourceId || !resourceIdentifier.resourceType) {\n return;\n }\n this.fetchCollectionsByResource(resourceIdentifier);\n }\n }\n },\n methods: {\n t,\n select(selectedOption) {\n if (selectedOption.method === METHOD_CREATE_COLLECTION) {\n selectedOption.action().then((resourceId) => {\n this.createCollection({\n baseResourceType: this.type,\n baseResourceId: this.id,\n resourceType: selectedOption.type,\n resourceId,\n name: this.name\n }).catch((e) => {\n this.setError(t(\"Failed to create a project\"), e);\n });\n }).catch((e) => {\n logger.error(\"[NcCollectionList] No resource selected\", e);\n });\n }\n if (selectedOption.method === METHOD_ADD_TO_COLLECTION) {\n this.addResourceToCollection({\n collectionId: selectedOption.collectionId,\n resourceType: this.type,\n resourceId: this.id\n }).catch((e) => {\n this.setError(t(\"Failed to add the item to the project\"), e);\n });\n }\n this.value = null;\n },\n showSelect() {\n this.selectIsOpen = true;\n this.$refs.select.$el.focus();\n },\n setError(error, e) {\n logger.error(error, { error: e });\n this.error = error;\n setTimeout(() => {\n this.error = null;\n }, 5e3);\n },\n renameCollectionFromItem({ collectionId, name }) {\n this.renameCollection({ collectionId, name }).catch((e) => {\n logger.error(t(\"Failed to rename the project\"), { error: e });\n this.collectionsError[collectionId] = t(\"Failed to rename the project\");\n setTimeout(() => {\n this.collectionsError[collectionId] = null;\n }, 5e3);\n });\n }\n }\n};\nconst _hoisted_1 = {\n key: 0,\n id: \"collection-list\",\n class: \"collection-list\"\n};\nconst _hoisted_2 = { id: \"collection-select-container\" };\nconst _hoisted_3 = { class: \"option__desc\" };\nconst _hoisted_4 = { class: \"option__title\" };\nconst _hoisted_5 = { class: \"option__wrapper\" };\nconst _hoisted_6 = { class: \"option__title\" };\nconst _hoisted_7 = { class: \"hint\" };\nconst _hoisted_8 = {\n key: 0,\n class: \"error\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAvatar = resolveComponent(\"NcAvatar\");\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n const _component_NcCollectionListItem = resolveComponent(\"NcCollectionListItem\");\n return $options.collections && $props.type && $props.id ? (openBlock(), createElementBlock(\"ul\", _hoisted_1, [\n createElementVNode(\"li\", {\n onClick: _cache[3] || (_cache[3] = (...args) => $options.showSelect && $options.showSelect(...args))\n }, [\n _cache[4] || (_cache[4] = createElementVNode(\"div\", { class: \"avatar\" }, [\n createElementVNode(\"span\", { class: \"icon-projects\" })\n ], -1)),\n createElementVNode(\"div\", _hoisted_2, [\n createVNode(_component_NcSelect, {\n ref: \"select\",\n modelValue: $data.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => $data.value = $event),\n \"aria-label-combobox\": $options.t(\"Add to a project\"),\n options: $options.options,\n placeholder: $options.placeholder,\n label: \"title\",\n limit: 5,\n onClose: _cache[1] || (_cache[1] = ($event) => $data.isSelectOpen = false),\n onOpen: _cache[2] || (_cache[2] = ($event) => $data.isSelectOpen = true),\n \"onOption:selected\": $options.select,\n onSearch: $setup.search\n }, {\n \"selected-option\": withCtx((option) => [\n createElementVNode(\"span\", _hoisted_3, [\n createElementVNode(\"span\", _hoisted_4, toDisplayString(option.title), 1)\n ])\n ]),\n option: withCtx((option) => [\n createElementVNode(\"span\", _hoisted_5, [\n option.class ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n class: normalizeClass([option.class, \"avatar\"])\n }, null, 2)) : option.method !== 2 ? (openBlock(), createBlock(_component_NcAvatar, {\n key: 1,\n allowPlaceholder: \"\",\n displayName: option.title\n }, null, 8, [\"displayName\"])) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_6, toDisplayString(option.title), 1)\n ])\n ]),\n default: withCtx(() => [\n createElementVNode(\"p\", _hoisted_7, toDisplayString($options.t(\"Connect items to a project to make them easier to find\")), 1)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"aria-label-combobox\", \"options\", \"placeholder\", \"onOption:selected\", \"onSearch\"])\n ])\n ]),\n createVNode(Transition, { name: \"fade\" }, {\n default: withCtx(() => [\n $data.error ? (openBlock(), createElementBlock(\"li\", _hoisted_8, toDisplayString($data.error), 1)) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.collections, (collection) => {\n return openBlock(), createBlock(_component_NcCollectionListItem, {\n key: collection.id,\n collection,\n error: $data.collectionsError[collection.id],\n onRenameCollection: $options.renameCollectionFromItem,\n onRemoveResource: $setup.removeResourceFromCollection\n }, null, 8, [\"collection\", \"error\", \"onRenameCollection\", \"onRemoveResource\"]);\n }), 128))\n ])) : createCommentVNode(\"\", true);\n}\nconst NcCollectionList = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-0e169eff\"]]);\nexport {\n NcCollectionList as N\n};\n//# sourceMappingURL=NcCollectionList-CO-iHqi6.mjs.map\n","import '../assets/NcDashboardWidget-nZuIL1UN.css';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, resolveComponent, createBlock, withCtx, renderSlot, createVNode, Fragment, renderList, toHandlers } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { r as register, z as t35, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { N as NcAvatar } from \"./NcAvatar-M3-CbKbq.mjs\";\nimport { N as NcDashboardWidgetItem } from \"./NcDashboardWidgetItem-BwwFiNOL.mjs\";\nimport { N as NcEmptyContent } from \"./NcEmptyContent-CGAPqk4S.mjs\";\nconst _sfc_main$1 = {\n name: \"CheckIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon check-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$1);\n}\nconst Check = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1]]);\nregister(t35);\nconst _sfc_main = {\n name: \"NcDashboardWidget\",\n components: {\n NcAvatar,\n NcDashboardWidgetItem,\n NcEmptyContent,\n Check\n },\n props: {\n /**\n * An array containing the items to show (specific structure must be respected,\n * except if you override item rendering in the default slot).\n */\n items: {\n type: Array,\n default: () => {\n return [];\n }\n },\n /**\n * If this is set, a \"show more\" text is displayed on the widget's bottom.\n * It's a link pointing to this URL.\n */\n showMoreUrl: {\n type: String,\n default: \"\"\n },\n /**\n * The text of show more button.\n *\n * Expected to be in the form \"More {itemName} …\"\n */\n showMoreLabel: {\n type: String,\n default: t(\"More items …\")\n },\n /**\n * A boolean to put the widget in a loading state.\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * An object containing context menu entries that will be displayed for each item.\n */\n itemMenu: {\n type: Object,\n default: () => {\n return {};\n }\n },\n /**\n * Whether both the items and the empty content message are shown.\n * Usefull for e.g. showing \"No mentions\" and a list of elements.\n */\n showItemsAndEmptyContent: {\n type: Boolean,\n default: false\n },\n /**\n * The text to show in the empty content area.\n */\n emptyContentMessage: {\n type: String,\n default: \"\"\n },\n /**\n * The text to show in the half empty content area.\n */\n halfEmptyContentMessage: {\n type: String,\n default: \"\"\n }\n },\n computed: {\n // forward menu events to my parent\n handlers() {\n const h = {};\n for (const evName in this.itemMenu) {\n h[evName] = (it) => {\n this.$emit(evName, it);\n };\n }\n return h;\n },\n displayedItems() {\n const nbItems = this.showMoreUrl && this.items.length >= this.maxItemNumber ? this.maxItemNumber - 1 : this.maxItemNumber;\n return this.items.slice(0, nbItems);\n },\n showHalfEmptyContentArea() {\n return this.showItemsAndEmptyContent && this.halfEmptyContentString && this.items.length !== 0;\n },\n halfEmptyContentString() {\n return this.halfEmptyContentMessage || this.emptyContentMessage;\n },\n maxItemNumber() {\n return this.showItemsAndEmptyContent ? 5 : 7;\n },\n showMore() {\n return this.showMoreUrl && this.items.length >= this.maxItemNumber;\n }\n }\n};\nconst _hoisted_1 = { class: \"dashboard-widget\" };\nconst _hoisted_2 = { key: 1 };\nconst _hoisted_3 = [\"href\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_Check = resolveComponent(\"Check\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n const _component_NcDashboardWidgetItem = resolveComponent(\"NcDashboardWidgetItem\");\n const _component_NcAvatar = resolveComponent(\"NcAvatar\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1, [\n $options.showHalfEmptyContentArea ? (openBlock(), createBlock(_component_NcEmptyContent, {\n key: 0,\n description: $options.halfEmptyContentString,\n class: \"half-screen\"\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"halfEmptyContentIcon\", {}, () => [\n createVNode(_component_Check)\n ], true)\n ]),\n _: 3\n }, 8, [\"description\"])) : createCommentVNode(\"\", true),\n createElementVNode(\"ul\", null, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.displayedItems, (item) => {\n return openBlock(), createElementBlock(\"li\", {\n key: item.id\n }, [\n renderSlot(_ctx.$slots, \"default\", { item }, () => [\n createVNode(_component_NcDashboardWidgetItem, mergeProps({ ref_for: true }, item, { itemMenu: $props.itemMenu }, toHandlers($options.handlers)), null, 16, [\"itemMenu\"])\n ], true)\n ]);\n }), 128))\n ]),\n $props.loading ? (openBlock(), createElementBlock(\"div\", _hoisted_2, [\n (openBlock(), createElementBlock(Fragment, null, renderList(7, (i) => {\n return createElementVNode(\"div\", {\n key: i,\n class: \"item-list__entry\"\n }, [\n createVNode(_component_NcAvatar, {\n class: \"item-avatar\",\n size: 44\n }),\n _cache[0] || (_cache[0] = createElementVNode(\"div\", { class: \"item__details\" }, [\n createElementVNode(\"h3\", null, \" \"),\n createElementVNode(\"p\", { class: \"message\" }, \"   \")\n ], -1))\n ]);\n }), 64))\n ])) : $props.items.length === 0 ? renderSlot(_ctx.$slots, \"empty-content\", { key: 2 }, () => [\n $props.emptyContentMessage ? (openBlock(), createBlock(_component_NcEmptyContent, {\n key: 0,\n description: $props.emptyContentMessage\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"emptyContentIcon\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"description\"])) : createCommentVNode(\"\", true)\n ], true) : $options.showMore ? (openBlock(), createElementBlock(\"a\", {\n key: 3,\n href: $props.showMoreUrl,\n target: \"_blank\",\n class: \"more\",\n tabindex: \"0\"\n }, toDisplayString($props.showMoreLabel), 9, _hoisted_3)) : createCommentVNode(\"\", true)\n ]);\n}\nconst NcDashboardWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-8dabc003\"]]);\nexport {\n NcDashboardWidget as N\n};\n//# sourceMappingURL=NcDashboardWidget-ftOfMTzx.mjs.map\n","import '../assets/NcFilePicker-CimiKIH1.css';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, defineComponent, useTemplateRef, computed, normalizeClass, createVNode, withCtx, createBlock, createTextVNode, unref, Fragment, renderList, renderSlot, nextTick } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-BO5T5ePT.mjs\";\nimport { N as NcActionCaption } from \"./NcActionCaption-f7L9gBlT.mjs\";\nimport { N as NcActions } from \"./NcActions-CUmcZ3C3.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-BOVpFVQz.mjs\";\nimport { getGettextBuilder } from \"@nextcloud/l10n/gettext\";\nconst _sfc_main$3 = {\n name: \"FolderUploadIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$3 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { d: \"M20,6A2,2 0 0,1 22,8V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H10L12,6H20M10.75,13H14V17H16V13H19.25L15,8.75\" };\nconst _hoisted_4$2 = { key: 0 };\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon folder-upload-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$2, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$2, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$2))\n ], 16, _hoisted_1$3);\n}\nconst IconFolderUpload = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$2]]);\nconst _sfc_main$2 = {\n name: \"PlusIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$2 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon plus-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$2);\n}\nconst IconPlus = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$1]]);\nconst _sfc_main$1 = {\n name: \"UploadIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M9,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon upload-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1$1);\n}\nconst IconUpload = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render]]);\n/*!\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst gtBuilder = getGettextBuilder().detectLanguage();\nconst gt = gtBuilder.build();\ngt.ngettext.bind(gt);\nconst t = gt.gettext.bind(gt);\nconst _hoisted_1 = [\"accept\", \"multiple\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcFilePicker\",\n props: {\n accept: { default: void 0 },\n actionCaption: { default: \"\" },\n actions: { default: () => [] },\n directory: { type: Boolean },\n directoryOnly: { type: Boolean },\n disabled: { type: Boolean },\n iconOnly: { type: Boolean },\n label: { default: void 0 },\n loading: { type: Boolean },\n multiple: { type: Boolean },\n variant: { default: \"primary\" }\n },\n emits: [\"pick\"],\n setup(__props, { expose: __expose, emit: __emit }) {\n const props = __props;\n const emit = __emit;\n __expose({\n reset\n });\n const formElement = useTemplateRef(\"form\");\n const inputElement = useTemplateRef(\"input\");\n const currentLabel = computed(() => {\n if (props.loading) {\n return t(\"Uploading …\");\n } else if (props.label) {\n return props.label;\n } else if (props.directoryOnly) {\n return t(\"Pick folder\");\n }\n return props.multiple ? t(\"Pick files\") : t(\"Pick file\");\n });\n const canUploadFolders = computed(() => {\n return (props.directory || props.directoryOnly) && \"webkitdirectory\" in HTMLInputElement.prototype;\n });\n function triggerPickFiles(uploadFolders) {\n reset();\n if (canUploadFolders.value) {\n inputElement.value.webkitdirectory = uploadFolders;\n }\n nextTick(() => inputElement.value.click());\n }\n function onPick() {\n const files = inputElement.value?.files ? Array.from(inputElement.value.files) : [];\n emit(\"pick\", files);\n }\n function reset() {\n formElement.value.reset();\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"form\", {\n ref: \"form\",\n class: normalizeClass(_ctx.$style.filePicker)\n }, [\n createVNode(NcActions, {\n \"aria-label\": currentLabel.value,\n disabled: __props.disabled || __props.loading,\n menuName: __props.iconOnly ? void 0 : currentLabel.value,\n forceName: !__props.iconOnly,\n variant: __props.variant\n }, {\n icon: withCtx(() => [\n !__props.loading ? renderSlot(_ctx.$slots, \"icon\", { key: 0 }, () => [\n createVNode(IconPlus, { size: 20 })\n ]) : (openBlock(), createBlock(NcLoadingIcon, { key: 1 }))\n ]),\n default: withCtx(() => [\n __props.actionCaption ? (openBlock(), createBlock(NcActionCaption, {\n key: 0,\n name: __props.actionCaption\n }, null, 8, [\"name\"])) : createCommentVNode(\"\", true),\n !__props.directoryOnly ? (openBlock(), createBlock(NcActionButton, {\n key: 1,\n closeAfterClick: \"\",\n onClick: _cache[0] || (_cache[0] = ($event) => triggerPickFiles(false))\n }, {\n icon: withCtx(() => [\n createVNode(IconUpload, { size: 20 })\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(canUploadFolders.value || _ctx.$slots.actions ? __props.multiple ? unref(t)(\"Upload files\") : unref(t)(\"Upload file\") : currentLabel.value), 1)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true),\n canUploadFolders.value ? (openBlock(), createBlock(NcActionButton, {\n key: 2,\n closeAfterClick: \"\",\n onClick: _cache[1] || (_cache[1] = ($event) => triggerPickFiles(true))\n }, {\n icon: withCtx(() => [\n createVNode(IconFolderUpload, {\n style: { \"color\": \"var(--color-primary-element)\" },\n size: 20\n })\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(!__props.directoryOnly || _ctx.$slots.actions ? unref(t)(\"Upload folder\") : currentLabel.value), 1)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true),\n (openBlock(true), createElementBlock(Fragment, null, renderList(__props.actions, (group) => {\n return openBlock(), createElementBlock(Fragment, null, [\n group.caption ? (openBlock(), createBlock(NcActionCaption, {\n key: group.caption,\n name: group.caption\n }, null, 8, [\"name\"])) : createCommentVNode(\"\", true),\n (openBlock(true), createElementBlock(Fragment, null, renderList(group.actions ?? [group], (action) => {\n return openBlock(), createBlock(NcActionButton, {\n key: action.label,\n closeAfterClick: \"\",\n onClick: action.onClick\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n svg: action.iconSvg\n }, null, 8, [\"svg\"])\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(action.label), 1)\n ]),\n _: 2\n }, 1032, [\"onClick\"]);\n }), 128))\n ], 64);\n }), 256))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"menuName\", \"forceName\", \"variant\"]),\n createElementVNode(\"input\", {\n ref: \"input\",\n accept: __props.accept?.join(\", \"),\n \"aria-hidden\": \"true\",\n class: \"hidden-visually\",\n multiple: __props.multiple,\n type: \"file\",\n onChange: onPick\n }, null, 40, _hoisted_1),\n renderSlot(_ctx.$slots, \"default\")\n ], 2);\n };\n }\n});\nconst filePicker = \"_filePicker_UHtO-\";\nconst style0 = {\n filePicker\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcFilePicker = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcFilePicker as N\n};\n//# sourceMappingURL=NcFilePicker-nPCwHMqj.mjs.map\n","import '../assets/NcKbd-BeQpGp0b.css';\nimport { defineComponent, computed, openBlock, createElementBlock, normalizeClass, renderSlot, createTextVNode, toDisplayString } from \"vue\";\nimport { r as register, o as t7, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { i as isMac } from \"./platform-CC2ecGvV.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t7);\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcKbd\",\n props: {\n symbol: { default: () => void 0 },\n mac: { type: Boolean, default: () => isMac }\n },\n setup(__props) {\n const labels = computed(() => ({\n ArrowUp: \"↑\",\n ArrowDown: \"↓\",\n ArrowLeft: \"←\",\n ArrowRight: \"→\",\n Control: !__props.mac ? t(\"Ctrl\") : \"⌘\",\n Alt: !__props.mac ? t(\"Alt\") : \"⌥\",\n Shift: !__props.mac ? t(\"Shift\") : \"⇧\",\n Enter: !__props.mac ? t(\"Enter\") : \"⏎\",\n Tab: !__props.mac ? t(\"Tab\") : \"⇥\",\n Delete: !__props.mac ? t(\"Delete\") : \"⌫\",\n Escape: !__props.mac ? t(\"Escape\") : \"⎋\",\n Space: t(\"Space\")\n // TRANSLATORS: Space key on keyboard\n }));\n const label = computed(() => __props.symbol && labels.value[__props.symbol] || __props.symbol);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"kbd\", {\n class: normalizeClass(_ctx.$style.kbd)\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(label.value), 1)\n ])\n ], 2);\n };\n }\n});\nconst kbd = \"_kbd_3V7rw\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_FHHYV\",\n kbd\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcKbd = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcKbd as N\n};\n//# sourceMappingURL=NcKbd-Iyp0KDp4.mjs.map\n","import '../assets/NcHotkeyList-BfrEkKmK.css';\nimport { defineComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, toDisplayString, unref, renderSlot } from \"vue\";\nimport { r as register, p as t31, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t31);\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcHotkeyList\",\n props: {\n label: { default: () => void 0 }\n },\n setup(__props) {\n const labelId = `NcHotkeyList_${createElementId()}`;\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass(_ctx.$style.hotkeyList)\n }, [\n createElementVNode(\"div\", {\n id: labelId,\n class: normalizeClass([_ctx.$style.hotkeyList__heading, { \"hidden-visually\": !__props.label }])\n }, toDisplayString(__props.label || unref(t)(\"Keyboard shortcuts\")), 3),\n createElementVNode(\"ul\", { \"aria-labelledby\": labelId }, [\n renderSlot(_ctx.$slots, \"default\")\n ])\n ], 2);\n };\n }\n});\nconst hotkeyList = \"_hotkeyList_xNXCh\";\nconst hotkeyList__heading = \"_hotkeyList__heading_j6G86\";\nconst style0 = {\n hotkeyList,\n hotkeyList__heading\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcHotkeyList = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcHotkeyList as N\n};\n//# sourceMappingURL=NcHotkeyList-CmMgGhMr.mjs.map\n","import '../assets/NcListItemIcon-DJRcmlo1.css';\nimport \"escape-html\";\nimport \"striptags\";\nimport { resolveComponent, openBlock, createElementBlock, normalizeStyle, normalizeClass, createVNode, mergeProps, createElementVNode, createBlock, toDisplayString, createCommentVNode, renderSlot } from \"vue\";\nimport \"../composables/useIsDarkTheme/index.mjs\";\nimport \"@nextcloud/router\";\nimport \"../functions/isDarkTheme/index.mjs\";\nimport \"./NcMentionBubble.vue_vue_type_style_index_0_scoped_45238efd_lang-BX_KxRP-.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { u as userStatus, N as NcAvatar } from \"./NcAvatar-M3-CbKbq.mjs\";\nimport { _ as _sfc_main$1 } from \"./NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nconst margin = 8;\nconst defaultSize = 32;\nconst _sfc_main = {\n name: \"NcListItemIcon\",\n components: {\n NcAvatar,\n NcHighlight: _sfc_main$1,\n NcIconSvgWrapper\n },\n mixins: [\n userStatus\n ],\n props: {\n /**\n * Default first line text\n */\n name: {\n type: String,\n required: true\n },\n /**\n * Secondary optional line\n * Only visible on size of 32 and above\n */\n subname: {\n type: String,\n default: \"\"\n },\n /**\n * Icon class to be displayed at the end of the component\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * SVG icon to be displayed at the end of the component\n */\n iconSvg: {\n type: String,\n default: \"\"\n },\n /**\n * Descriptive name for the icon\n */\n iconName: {\n type: String,\n default: \"\"\n },\n /**\n * Search within the highlight of name/subname\n */\n search: {\n type: String,\n default: \"\"\n },\n /**\n * Set a size in px that will define the avatar height/width\n * and therefore, the height of the component\n */\n avatarSize: {\n type: Number,\n default: defaultSize\n },\n /**\n * Disable the margins of this component.\n * Useful for integration in `NcSelect` for example\n */\n noMargin: {\n type: Boolean,\n default: false\n },\n /**\n * See the [Avatar](#Avatar) displayName prop\n * Fallback to name\n */\n displayName: {\n type: String,\n default: null\n },\n /**\n * See the [Avatar](#Avatar) isNoUser prop\n * Enable/disable the UserStatus fetching\n */\n isNoUser: {\n type: Boolean,\n default: false\n },\n /**\n * Unique list item ID\n */\n id: {\n type: String,\n default: null\n }\n },\n setup() {\n return {\n margin,\n defaultSize\n };\n },\n computed: {\n hasIcon() {\n return this.icon !== \"\";\n },\n hasIconSvg() {\n return this.iconSvg !== \"\";\n },\n isValidSubname() {\n return this.subname?.trim?.() !== \"\";\n },\n isSizeBigEnough() {\n return this.avatarSize >= 26;\n },\n cssVars() {\n const margin2 = this.noMargin ? 0 : this.margin;\n return {\n \"--height\": this.avatarSize + 2 * margin2 + \"px\",\n \"--margin\": this.margin + \"px\"\n };\n },\n /**\n * Separates the search property into two parts, the first one is the search part on the name, the second on the subname.\n *\n * @return {[string, string]}\n */\n searchParts() {\n const EMAIL_NOTATION = /^([^<]*)<([^>]+)>?$/;\n const match = this.search.match(EMAIL_NOTATION);\n if (this.isNoUser || !match) {\n return [this.search, this.search];\n }\n return [match[1].trim(), match[2]];\n }\n },\n beforeMount() {\n if (!this.isNoUser && !this.subname) {\n this.fetchUserStatus(this.user);\n }\n }\n};\nconst _hoisted_1 = [\"id\"];\nconst _hoisted_2 = { class: \"option__details\" };\nconst _hoisted_3 = { key: 1 };\nconst _hoisted_4 = [\"aria-label\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAvatar = resolveComponent(\"NcAvatar\");\n const _component_NcHighlight = resolveComponent(\"NcHighlight\");\n const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n return openBlock(), createElementBlock(\"span\", {\n id: $props.id,\n class: normalizeClass([\"option\", { \"option--compact\": $props.avatarSize < $setup.defaultSize }]),\n style: normalizeStyle($options.cssVars)\n }, [\n createVNode(_component_NcAvatar, mergeProps(_ctx.$attrs, {\n disableMenu: \"\",\n disableTooltip: \"\",\n displayName: $props.displayName || $props.name,\n isNoUser: $props.isNoUser,\n size: $props.avatarSize,\n class: \"option__avatar\"\n }), null, 16, [\"displayName\", \"isNoUser\", \"size\"]),\n createElementVNode(\"div\", _hoisted_2, [\n createVNode(_component_NcHighlight, {\n class: \"option__lineone\",\n text: $props.name,\n search: $options.searchParts[0]\n }, null, 8, [\"text\", \"search\"]),\n $options.isValidSubname && $options.isSizeBigEnough ? (openBlock(), createBlock(_component_NcHighlight, {\n key: 0,\n class: \"option__linetwo\",\n text: $props.subname,\n search: $options.searchParts[1]\n }, null, 8, [\"text\", \"search\"])) : _ctx.hasStatus ? (openBlock(), createElementBlock(\"span\", _hoisted_3, [\n createElementVNode(\"span\", null, toDisplayString(_ctx.userStatus.icon), 1),\n createElementVNode(\"span\", null, toDisplayString(_ctx.userStatus.message), 1)\n ])) : createCommentVNode(\"\", true)\n ]),\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n $options.hasIconSvg ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {\n key: 0,\n class: \"option__icon\",\n svg: $props.iconSvg,\n name: $props.iconName\n }, null, 8, [\"svg\", \"name\"])) : $options.hasIcon ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: normalizeClass([\"icon option__icon\", $props.icon]),\n \"aria-label\": $props.iconName\n }, null, 10, _hoisted_4)) : createCommentVNode(\"\", true)\n ], true)\n ], 14, _hoisted_1);\n}\nconst NcListItemIcon = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-0ee94269\"]]);\nexport {\n NcListItemIcon as N\n};\n//# sourceMappingURL=NcListItemIcon-D_f5AGrh.mjs.map\n","import '../assets/NcProgressBar-B6wveIA1.css';\nimport { defineComponent, useCssVars, computed, openBlock, createElementBlock, normalizeClass, createElementVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"aria-valuenow\"];\nconst _hoisted_2 = [\"height\", \"width\"];\nconst _hoisted_3 = [\"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-width\", \"r\", \"cx\", \"cy\"];\nconst _hoisted_4 = [\"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-width\", \"r\", \"cx\", \"cy\"];\nconst _hoisted_5 = {\n key: 1,\n class: \"progress-bar-container\"\n};\nconst _hoisted_6 = [\"value\"];\nconst _hoisted_7 = {\n key: 0,\n class: \"progress-bar__value\"\n};\nconst gridBaseline = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-grid-baseline\"));\nconst clickableArea = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-clickable-area\"));\nconst clickableAreaSmall = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--clickable-area-small\"));\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcProgressBar\",\n props: {\n value: { default: 0 },\n size: { default: \"small\" },\n error: { type: Boolean },\n type: { default: \"linear\" },\n color: { default: \"var(--color-primary-element)\" },\n showValue: { type: Boolean, default: false }\n },\n setup(__props) {\n useCssVars((_ctx) => ({\n \"v3a86fec2\": _ctx.color,\n \"v57442460\": heightPx.value\n }));\n const props = __props;\n const normalizedProgress = computed(() => Math.max(0, Math.min(100, props.value)) / 100);\n const height = computed(() => {\n if (typeof props.size === \"number\") {\n return Math.round(props.size);\n }\n if (props.type === \"circular\") {\n if (props.size === \"medium\") {\n return clickableArea;\n } else {\n return clickableAreaSmall;\n }\n }\n if (props.size === \"medium\") {\n return 1.5 * gridBaseline;\n }\n return gridBaseline;\n });\n const heightPx = computed(() => `${height.value}px`);\n const strokeWidth = computed(() => Math.max(gridBaseline, height.value / clickableArea * gridBaseline));\n const circleCenterPosition = computed(() => height.value / 2);\n const circleRadius = computed(() => height.value / 2 - strokeWidth.value);\n const circumference = computed(() => circleRadius.value * 2 * Math.PI);\n return (_ctx, _cache) => {\n return __props.type === \"circular\" ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n role: \"progressbar\",\n \"aria-valuenow\": __props.value,\n class: normalizeClass([{ \"progress-bar--error\": __props.error }, \"progress-bar progress-bar--circular\"])\n }, [\n (openBlock(), createElementBlock(\"svg\", {\n height: height.value,\n width: height.value\n }, [\n createElementVNode(\"circle\", {\n stroke: \"currentColor\",\n fill: \"transparent\",\n \"stroke-dasharray\": `${normalizedProgress.value * circumference.value} ${(1 - normalizedProgress.value) * circumference.value}`,\n \"stroke-dashoffset\": 0.25 * circumference.value,\n \"stroke-width\": strokeWidth.value,\n r: circleRadius.value,\n cx: circleCenterPosition.value,\n cy: circleCenterPosition.value\n }, null, 8, _hoisted_3),\n createElementVNode(\"circle\", {\n stroke: \"var(--color-background-darker)\",\n fill: \"transparent\",\n \"stroke-dasharray\": `${(1 - normalizedProgress.value) * circumference.value} ${normalizedProgress.value * circumference.value}`,\n \"stroke-dashoffset\": (0.25 - normalizedProgress.value) * circumference.value,\n \"stroke-width\": strokeWidth.value,\n r: circleRadius.value,\n cx: circleCenterPosition.value,\n cy: circleCenterPosition.value\n }, null, 8, _hoisted_4)\n ], 8, _hoisted_2))\n ], 10, _hoisted_1)) : (openBlock(), createElementBlock(\"div\", _hoisted_5, [\n createElementVNode(\"progress\", {\n class: normalizeClass([\"progress-bar progress-bar--linear vue\", { \"progress-bar--error\": __props.error }]),\n value: __props.value,\n max: \"100\"\n }, null, 10, _hoisted_6),\n __props.showValue ? (openBlock(), createElementBlock(\"span\", _hoisted_7, toDisplayString(__props.value) + \"%\", 1)) : createCommentVNode(\"\", true)\n ]));\n };\n }\n});\nconst NcProgressBar = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-353fa414\"]]);\nexport {\n NcProgressBar as N\n};\n//# sourceMappingURL=NcProgressBar-C-ane-Ni.mjs.map\n","import '../assets/NcRelatedResourcesPanel-CiG_Ixb6.css';\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport { r as register, S as t38, a as t, T as t42, U as t9 } from \"./_l10n-CG4CuN3H.mjs\";\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { g as getRoute } from \"./autolink-BT8u-IL-.mjs\";\nimport { resolveComponent, openBlock, createElementBlock, createVNode, withCtx, createTextVNode, toDisplayString, createElementVNode, mergeProps, createCommentVNode, Fragment, renderList, createBlock } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { C as ChevronDown } from \"./ChevronDown-C6gc637b.mjs\";\nimport { C as ChevronUp } from \"./ChevronUp-ChH8oB7p.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nregister(t38);\nconst _sfc_main$4 = {\n name: \"NcResource\",\n components: {\n NcButton\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n icon: {\n type: String,\n required: true\n },\n name: {\n type: String,\n required: true\n },\n url: {\n type: String,\n required: true\n }\n },\n data() {\n return {\n labelTranslated: t('Open link to \"{resourceName}\"', { resourceName: this.name })\n };\n },\n computed: {\n route() {\n return getRoute(this.$router, this.url);\n }\n },\n methods: {\n t\n }\n};\nconst _hoisted_1$4 = { class: \"resource\" };\nconst _hoisted_2$4 = { class: \"resource__icon\" };\nconst _hoisted_3$3 = [\"src\"];\nfunction _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcButton = resolveComponent(\"NcButton\");\n return openBlock(), createElementBlock(\"li\", _hoisted_1$4, [\n createVNode(_component_NcButton, {\n class: \"resource__button\",\n \"aria-label\": $data.labelTranslated,\n to: $options.route,\n href: $options.route ? null : $props.url,\n variant: \"tertiary\"\n }, {\n icon: withCtx(() => [\n createElementVNode(\"div\", _hoisted_2$4, [\n createElementVNode(\"img\", { src: $props.icon }, null, 8, _hoisted_3$3)\n ])\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString($props.name), 1)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"to\", \"href\"])\n ]);\n}\nconst NcResource = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$4], [\"__scopeId\", \"data-v-77577e58\"]]);\nconst _sfc_main$3 = {\n name: \"AccountGroupIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$3 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$3 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { d: \"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z\" };\nconst _hoisted_4$2 = { key: 0 };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon account-group-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$2, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$2, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$3))\n ], 16, _hoisted_1$3);\n}\nconst AccountGroup = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$2 = {\n name: \"OpenInNewIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$2 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon open-in-new-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$2))\n ], 16, _hoisted_1$2);\n}\nconst OpenInNew = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2]]);\nregister(t42);\nconst teamResourceProviders = getCapabilities()?.circles?.teamResourceProviders ?? [];\nconst _sfc_main$1 = {\n name: \"NcTeamResources\",\n components: {\n AccountGroup,\n ChevronDown,\n ChevronUp,\n OpenInNew,\n NcButton,\n NcIconSvgWrapper\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n providerId: {\n type: String,\n default: null\n },\n itemId: {\n type: [String, Number],\n default: null\n }\n },\n data() {\n return {\n appEnabled: OC?.appswebroots?.circles !== void 0 && (OC.config.version.split(\".\")[0] ?? 0) >= 29,\n loading: false,\n teamResources: null,\n teamOpen: []\n };\n },\n computed: {\n isVisible() {\n return !this.loading && this.teamResources?.length > 0;\n },\n teamProviders() {\n return (teamId) => {\n const team = this.teamResources.find((t2) => t2.teamId === teamId);\n return team.resources?.reduce((acc, resource) => {\n if (resource.provider.id === this.providerId && resource.id === String(this.itemId)) {\n return acc;\n }\n if (!acc[resource.provider.id]) {\n acc[resource.provider.id] = resource.provider;\n acc[resource.provider.id].resources = [];\n }\n if (resource.provider.id === this.providerId && resource.id === String(this.itemId)) {\n return acc;\n }\n acc[resource.provider.id].resources.push(resource);\n return acc;\n }, {});\n };\n },\n open() {\n return (teamId) => {\n return this.teamOpen.indexOf(teamId) !== -1;\n };\n }\n },\n watch: {\n providerId() {\n this.fetchTeamResources();\n },\n itemId() {\n this.fetchTeamResources();\n }\n },\n created() {\n this.fetchTeamResources();\n },\n methods: {\n t,\n async fetchTeamResources() {\n if (!teamResourceProviders.includes(this.providerId)) {\n return;\n }\n try {\n this.loading = true;\n const response = await axios.get(generateOcsUrl(`/teams/resources/${this.providerId}/${this.itemId}`));\n this.teamResources = response.data.ocs.data.teams;\n this.teamOpen = [this.teamResources[0]?.teamId];\n } catch (error) {\n this.teamResources = null;\n logger.error(\"[NcTeamResources] Failed to fetch resources\", { error });\n } finally {\n this.loading = false;\n }\n },\n toggleOpen(teamId, open) {\n if (open) {\n this.teamOpen.push(teamId);\n } else {\n this.teamOpen.splice(this.teamOpen.indexOf(teamId), 1);\n }\n }\n }\n};\nconst _hoisted_1$1 = {\n key: 0,\n class: \"team-resources\"\n};\nconst _hoisted_2$1 = { class: \"team-resources__header\" };\nconst _hoisted_3 = [\"open\", \"onToggle\"];\nconst _hoisted_4 = { class: \"related-team__header\" };\nconst _hoisted_5 = { class: \"related-team__name\" };\nconst _hoisted_6 = { key: 0 };\nconst _hoisted_7 = [\"href\"];\nconst _hoisted_8 = {\n key: 0,\n class: \"resource__icon\"\n};\nconst _hoisted_9 = {\n key: 2,\n class: \"resource__icon\"\n};\nconst _hoisted_10 = [\"src\"];\nconst _hoisted_11 = { class: \"resource__name\" };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_AccountGroup = resolveComponent(\"AccountGroup\");\n const _component_OpenInNew = resolveComponent(\"OpenInNew\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_ChevronUp = resolveComponent(\"ChevronUp\");\n const _component_ChevronDown = resolveComponent(\"ChevronDown\");\n const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n return $data.appEnabled && $options.isVisible ? (openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n createElementVNode(\"h5\", _hoisted_2$1, toDisplayString($options.t(\"Related team resources\")), 1),\n (openBlock(true), createElementBlock(Fragment, null, renderList($data.teamResources, (team) => {\n return openBlock(), createElementBlock(\"details\", {\n key: team.teamId,\n name: \"Team resources\",\n class: \"related-team\",\n open: $options.open(team.teamId),\n onToggle: (event) => $options.toggleOpen(team.teamId, event.target.open)\n }, [\n createElementVNode(\"summary\", _hoisted_4, [\n createElementVNode(\"h5\", _hoisted_5, [\n createVNode(_component_AccountGroup, { size: 20 }),\n createTextVNode(\" \" + toDisplayString(team.displayName), 1)\n ]),\n createVNode(_component_NcButton, {\n \"aria-label\": $options.t(\"View team\"),\n href: team.link,\n title: $options.t(\"View team\"),\n variant: \"tertiary\"\n }, {\n icon: withCtx(() => [\n createVNode(_component_OpenInNew, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"href\", \"title\"]),\n $options.open(team.teamId) ? (openBlock(), createBlock(_component_ChevronUp, {\n key: 0,\n size: 20\n })) : (openBlock(), createBlock(_component_ChevronDown, {\n key: 1,\n size: 20\n }))\n ]),\n createElementVNode(\"div\", null, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.teamProviders(team.teamId), (provider) => {\n return openBlock(), createElementBlock(\"div\", {\n key: provider.id,\n class: \"related-team-provider\"\n }, [\n provider.resources.length > 0 ? (openBlock(), createElementBlock(\"h6\", _hoisted_6, toDisplayString(provider.name), 1)) : createCommentVNode(\"\", true),\n createElementVNode(\"ul\", null, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(provider.resources, (resource) => {\n return openBlock(), createElementBlock(\"li\", {\n key: resource.url,\n class: \"related-team-resource\"\n }, [\n createElementVNode(\"a\", {\n href: resource.url,\n class: \"related-team-resource__link\"\n }, [\n resource.iconEmoji ? (openBlock(), createElementBlock(\"span\", _hoisted_8, toDisplayString(resource.iconEmoji), 1)) : resource.iconSvg ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {\n key: 1,\n class: \"resource__icon\",\n svg: resource.iconSvg,\n size: 20\n }, null, 8, [\"svg\"])) : resource.iconURL ? (openBlock(), createElementBlock(\"span\", _hoisted_9, [\n createElementVNode(\"img\", {\n src: resource.iconURL,\n alt: \"\"\n }, null, 8, _hoisted_10)\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_11, toDisplayString(resource.label), 1)\n ], 8, _hoisted_7)\n ]);\n }), 128))\n ])\n ]);\n }), 128))\n ])\n ], 40, _hoisted_3);\n }), 128))\n ])) : createCommentVNode(\"\", true);\n}\nconst NcTeamResources = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-10ef45ac\"]]);\nregister(t9);\nconst _sfc_main = {\n name: \"NcRelatedResourcesPanel\",\n components: {\n NcResource,\n NcTeamResources\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n /**\n * The provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n */\n providerId: {\n type: String,\n default: null\n },\n /**\n * The item id which uniquely identities the e.g. Calendar event, Deck board, file, Talk room, etc.\n */\n itemId: {\n type: [String, Number],\n default: null\n },\n /**\n * Limits to specific resource type. i.e. any provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n */\n resourceType: {\n type: String,\n default: \"\"\n },\n /**\n * Set the maximum number of resources to load\n */\n limit: {\n type: Number,\n default: 0\n },\n /**\n * Only used by the files sidebar\n *\n * File info is passed when registered with `OCA.Sharing.ShareTabSections.registerSection()`\n */\n fileInfo: {\n type: Object,\n default: null\n },\n /**\n * Make the header name dynamic\n */\n header: {\n type: String,\n default: t(\"Related resources\")\n },\n description: {\n type: String,\n default: t(\"Anything shared with the same group of people will show up here\")\n },\n /**\n * If this element is used on a primary element set to true for primary styling.\n */\n primary: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"hasError\",\n \"hasResources\"\n ],\n data() {\n return {\n appEnabled: OC?.appswebroots?.related_resources !== void 0,\n loading: false,\n error: null,\n resources: []\n };\n },\n computed: {\n isVisible() {\n if (this.loading) {\n return false;\n }\n return this.error ?? this.resources.length > 0;\n },\n subline() {\n if (this.error) {\n return t(\"Error getting related resources. Please contact your system administrator if you have any questions.\");\n }\n return this.description;\n },\n hasResourceInfo() {\n if (this.providerId !== null && this.itemId !== null) {\n return true;\n }\n if (this.fileInfo !== null) {\n return true;\n }\n return false;\n },\n isFiles() {\n return this.fileInfo?.id !== void 0;\n },\n url() {\n let providerId;\n let itemId;\n if (this.isFiles) {\n providerId = \"files\";\n itemId = this.fileInfo.id;\n } else {\n providerId = this.providerId;\n itemId = this.itemId;\n }\n return generateOcsUrl(\"/apps/related_resources/related/{providerId}?itemId={itemId}&resourceType={resourceType}&limit={limit}&format=json\", {\n providerId,\n itemId,\n resourceType: this.resourceType,\n limit: this.limit\n });\n }\n },\n watch: {\n providerId() {\n this.fetchRelatedResources();\n },\n itemId() {\n this.fetchRelatedResources();\n },\n fileInfo() {\n this.fetchRelatedResources();\n },\n error(error) {\n this.$emit(\"hasError\", Boolean(error));\n },\n resources(resources) {\n this.$emit(\"hasResources\", resources.length > 0);\n }\n },\n created() {\n this.fetchRelatedResources();\n },\n methods: {\n t,\n async fetchRelatedResources() {\n if (!this.appEnabled || !this.hasResourceInfo) {\n return;\n }\n this.loading = true;\n this.error = null;\n this.resources = [];\n try {\n const response = await axios.get(this.url);\n this.resources = response.data.ocs?.data;\n } catch (error) {\n this.error = error;\n logger.error(\"[NcRelatedResourcesPanel] Failed to fetch resources\", { error });\n } finally {\n this.loading = false;\n }\n }\n }\n};\nconst _hoisted_1 = {\n key: 0,\n class: \"related-resources\"\n};\nconst _hoisted_2 = { class: \"related-resources__header\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcTeamResources = resolveComponent(\"NcTeamResources\");\n const _component_NcResource = resolveComponent(\"NcResource\");\n return openBlock(), createElementBlock(\"div\", null, [\n createVNode(_component_NcTeamResources, {\n providerId: $props.providerId,\n itemId: $props.itemId\n }, null, 8, [\"providerId\", \"itemId\"]),\n $data.appEnabled && $options.isVisible ? (openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createElementVNode(\"div\", _hoisted_2, [\n createElementVNode(\"h5\", null, toDisplayString($props.header), 1),\n createElementVNode(\"p\", null, toDisplayString($options.subline), 1)\n ]),\n (openBlock(true), createElementBlock(Fragment, null, renderList($data.resources, (resource) => {\n return openBlock(), createBlock(_component_NcResource, {\n key: resource.itemId,\n class: \"related-resources__entry\",\n icon: resource.icon,\n name: resource.title,\n url: resource.url\n }, null, 8, [\"icon\", \"name\", \"url\"]);\n }), 128))\n ])) : createCommentVNode(\"\", true)\n ]);\n}\nconst NcRelatedResourcesPanel = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-78029c82\"]]);\nexport {\n NcRelatedResourcesPanel as N\n};\n//# sourceMappingURL=NcRelatedResourcesPanel-C0j0Fs4r.mjs.map\n","import '../assets/NcSelectUsers-YF5729PJ.css';\nimport { defineComponent, useModel, ref, watch, openBlock, createBlock, unref, mergeProps, withCtx, createVNode, mergeModels } from \"vue\";\nimport { N as NcListItemIcon } from \"./NcListItemIcon-D_f5AGrh.mjs\";\nimport { N as NcSelect } from \"./NcSelect-BOFzoCwK.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcSelectUsers\",\n props: /* @__PURE__ */ mergeModels({\n ariaLabelClearSelected: {},\n ariaLabelListbox: {},\n ariaLabelDeselectOption: { type: Function },\n disabled: { type: Boolean },\n inputId: {},\n inputLabel: {},\n labelOutside: { type: Boolean },\n keepOpen: { type: Boolean },\n loading: { type: Boolean },\n multiple: { type: Boolean },\n noWrap: { type: Boolean },\n options: {},\n placeholder: {},\n required: { type: Boolean }\n }, {\n \"modelValue\": {},\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"search\"], [\"update:modelValue\"]),\n setup(__props, { emit: __emit }) {\n const modelValue = useModel(__props, \"modelValue\");\n const emit = __emit;\n const search = ref(\"\");\n watch(search, () => emit(\"search\", search.value));\n const clickableArea = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-clickable-area\"));\n const gridBaseLine = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-grid-baseline\"));\n const avatarSize = clickableArea - 2 * gridBaseLine;\n function filterBy(option, label, search2) {\n const EMAIL_NOTATION = /[^<]*<([^>]+)/;\n const match = search2.match(EMAIL_NOTATION);\n const subname = option.subname?.toLocaleLowerCase() ?? \"\";\n return match && subname.indexOf(match[1].toLocaleLowerCase()) > -1 || `${label} ${option.subname}`.toLocaleLowerCase().indexOf(search2.toLocaleLowerCase()) > -1;\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcSelect), mergeProps({\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),\n class: \"nc-select-users\"\n }, _ctx.$props, {\n filterBy,\n label: \"displayName\",\n onSearch: _cache[1] || (_cache[1] = ($event) => search.value = $event)\n }), {\n option: withCtx((option) => [\n createVNode(unref(NcListItemIcon), mergeProps(option, {\n avatarSize: 32,\n name: option.displayName,\n search: search.value\n }), null, 16, [\"name\", \"search\"])\n ]),\n \"selected-option\": withCtx((selectedOption) => [\n createVNode(unref(NcListItemIcon), mergeProps(selectedOption, {\n avatarSize,\n name: selectedOption.displayName,\n noMargin: \"\",\n search: search.value\n }), null, 16, [\"name\", \"search\"])\n ]),\n _: 1\n }, 16, [\"modelValue\"]);\n };\n }\n});\nconst NcSelectUsers = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-e8e18fd3\"]]);\nexport {\n NcSelectUsers as N\n};\n//# sourceMappingURL=NcSelectUsers-CI8twLn9.mjs.map\n","import '../assets/NcSettingsSelectGroup-D_fSrafm.css';\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport debounce from \"debounce\";\nimport { N as NcSelect } from \"./NcSelect-BOFzoCwK.mjs\";\nimport { r as register, i as t50, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { resolveComponent, openBlock, createElementBlock, toDisplayString, createCommentVNode, createVNode, withDirectives, createElementVNode, vShow } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t50);\nconst _sfc_main = {\n name: \"NcSettingsSelectGroup\",\n components: {\n NcSelect\n },\n props: {\n /**\n * The text of the label element of the select group input\n */\n label: {\n type: String,\n required: true\n },\n /**\n * Placeholder for the input element\n * For backwards compatibility it falls back to the `label` value\n */\n placeholder: {\n type: String,\n default: \"\"\n },\n /**\n * id attribute of the select group element\n */\n id: {\n type: String,\n default: () => \"action-\" + createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * value of the select group input\n * A list of group IDs can be provided\n */\n modelValue: {\n type: Array,\n default: () => []\n },\n /**\n * disabled state of the settings select group input\n */\n disabled: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"error\",\n \"input\",\n \"update:modelValue\"\n ],\n data() {\n return {\n /** Temporary store to cache groups */\n groups: {},\n randId: createElementId(),\n errorMessage: \"\"\n };\n },\n computed: {\n /**\n * If the error message should be shown\n */\n hasError() {\n return this.errorMessage !== \"\";\n },\n /**\n * Validate input value and only return valid strings (group IDs)\n *\n * @return {string[]}\n */\n filteredValue() {\n return this.modelValue.filter((group) => group !== \"\" && typeof group === \"string\");\n },\n /**\n * value property converted to an array of group objects used as input for the NcSelect\n */\n inputValue() {\n return this.filteredValue.map((id) => {\n if (typeof this.groups[id] === \"undefined\") {\n return {\n id,\n displayname: id\n };\n }\n return this.groups[id];\n });\n },\n /**\n * Convert groups object to array of groups required for NcSelect.options\n * Filter out currently selected values\n *\n * @return {object[]}\n */\n groupsArray() {\n return Object.values(this.groups).filter((g) => !this.modelValue.includes(g.id));\n }\n },\n watch: {\n /**\n * If the value is changed, check that all groups are loaded so we show the correct display name\n */\n modelValue: {\n handler() {\n const loadedGroupIds = Object.keys(this.groups);\n const missing = this.filteredValue.filter((group) => !loadedGroupIds.includes(group));\n missing.forEach((groupId) => {\n this.loadGroup(groupId);\n });\n },\n // Run the watch handler also when the component is initially mounted\n immediate: true\n }\n },\n /**\n * Load groups matching the empty query to reduce API calls\n */\n async mounted() {\n const storageName = `${appName}:${appVersion}/initialGroups`;\n let savedGroups = window.sessionStorage.getItem(storageName);\n if (savedGroups) {\n savedGroups = Object.fromEntries(JSON.parse(savedGroups).map((group) => [group.id, group]));\n this.groups = { ...this.groups, ...savedGroups };\n } else {\n await this.loadGroup(\"\");\n window.sessionStorage.setItem(storageName, JSON.stringify(Object.values(this.groups)));\n }\n },\n methods: {\n t,\n /**\n * Called when a new group is selected or previous group is deselected to emit the update event\n *\n * @param {object[]} updatedValue Array of selected groups\n */\n update(updatedValue) {\n const value = updatedValue.map((element) => element.id);\n this.$emit(\"update:modelValue\", value);\n },\n /**\n * Use provisioning API to search for given group and save it in the groups object\n *\n * @param {string} query The query like parts of the id oder display name\n * @return {boolean}\n */\n async loadGroup(query) {\n try {\n query = typeof query === \"string\" ? encodeURI(query) : \"\";\n const response = await axios.get(generateOcsUrl(`cloud/groups/details?search=${query}&limit=10`, 2));\n if (this.errorMessage !== \"\") {\n window.setTimeout(() => {\n this.errorMessage = \"\";\n }, 5e3);\n }\n if (Object.keys(response.data.ocs.data.groups).length > 0) {\n const newGroups = Object.fromEntries(response.data.ocs.data.groups.map((element) => [element.id, element]));\n this.groups = { ...this.groups, ...newGroups };\n return true;\n }\n } catch (error) {\n this.$emit(\"error\", error);\n this.errorMessage = t(\"Unable to search the group\");\n }\n return false;\n },\n /**\n * Custom filter function for `NcSelect` to filter by ID *and* display name\n *\n * @param {object} option One of the groups\n * @param {string} label The label property of the group\n * @param {string} search The current search string\n */\n filterGroups(option, label, search) {\n return `${label || \"\"} ${option.id}`.toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) > -1;\n },\n /**\n * Debounce the group search (reduce API calls)\n */\n onSearch: debounce(function(query) {\n this.loadGroup(query);\n }, 200)\n }\n};\nconst _hoisted_1 = [\"for\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n return openBlock(), createElementBlock(\"div\", null, [\n $props.label ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n for: $props.id,\n class: \"hidden-visually\"\n }, toDisplayString($props.label), 9, _hoisted_1)) : createCommentVNode(\"\", true),\n createVNode(_component_NcSelect, {\n modelValue: $options.inputValue,\n options: $options.groupsArray,\n placeholder: $props.placeholder || $props.label,\n filterBy: $options.filterGroups,\n inputId: $props.id,\n limit: 5,\n label: \"displayname\",\n multiple: true,\n closeOnSelect: false,\n disabled: $props.disabled,\n \"onUpdate:modelValue\": $options.update,\n onSearch: $options.onSearch\n }, null, 8, [\"modelValue\", \"options\", \"placeholder\", \"filterBy\", \"inputId\", \"disabled\", \"onUpdate:modelValue\", \"onSearch\"]),\n withDirectives(createElementVNode(\"div\", { class: \"select-group-error\" }, toDisplayString($data.errorMessage), 513), [\n [vShow, $options.hasError]\n ])\n ]);\n}\nconst NcSettingsSelectGroup = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-f2b71592\"]]);\nexport {\n NcSettingsSelectGroup as N\n};\n//# sourceMappingURL=NcSettingsSelectGroup-TN64yH4k.mjs.map\n","import '../assets/NcTextArea-BxGe3Lqn.css';\nimport { defineComponent, useModel, useAttrs, useTemplateRef, computed, watch, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, mergeProps, toDisplayString, createCommentVNode, createBlock, createTextVNode, mergeModels } from \"vue\";\nimport { d as mdiCheck, j as mdiAlertCircleOutline } from \"./mdi-CpchYUUV.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { a as isLegacy } from \"./legacy-BoqDmOCa.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = { class: \"textarea__main-wrapper\" };\nconst _hoisted_2 = [\"id\", \"aria-describedby\", \"disabled\", \"placeholder\", \"value\"];\nconst _hoisted_3 = [\"for\"];\nconst _hoisted_4 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"NcTextArea\",\n props: /* @__PURE__ */ mergeModels({\n disabled: { type: Boolean },\n error: { type: Boolean },\n helperText: { default: void 0 },\n id: { default: () => createElementId() },\n inputClass: { default: \"\" },\n label: { default: void 0 },\n labelOutside: { type: Boolean },\n placeholder: { default: void 0 },\n resize: { default: \"both\" },\n success: { type: Boolean }\n }, {\n \"modelValue\": { required: true },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n __expose({\n focus,\n select\n });\n const attrs = useAttrs();\n const textAreaElement = useTemplateRef(\"input\");\n const internalPlaceholder = computed(() => props.placeholder || (isLegacy ? props.label : void 0));\n watch(() => props.labelOutside, () => {\n if (!props.labelOutside && !props.label) {\n logger.warn(\"[NcTextArea] You need to add a label to the NcInputField component. Either use the prop label or use an external one, as per the example in the documentation.\");\n }\n });\n const ariaDescribedby = computed(() => {\n const ariaDescribedby2 = [];\n if (props.helperText) {\n ariaDescribedby2.push(`${props.id}-helper-text`);\n }\n if (typeof attrs[\"aria-describedby\"] === \"string\") {\n ariaDescribedby2.push(attrs[\"aria-describedby\"]);\n }\n return ariaDescribedby2.join(\" \") || void 0;\n });\n function handleInput(event) {\n const { value } = event.target;\n modelValue.value = value;\n }\n function focus(options) {\n textAreaElement.value.focus(options);\n }\n function select() {\n textAreaElement.value.select();\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"textarea\", [\n _ctx.$attrs.class,\n {\n \"textarea--disabled\": __props.disabled,\n \"textarea--legacy\": unref(isLegacy)\n }\n ]])\n }, [\n createElementVNode(\"div\", _hoisted_1, [\n createElementVNode(\"textarea\", mergeProps({ ..._ctx.$attrs, class: void 0 }, {\n id: __props.id,\n ref: \"input\",\n \"aria-describedby\": ariaDescribedby.value,\n \"aria-live\": \"polite\",\n class: [\"textarea__input\", [\n __props.inputClass,\n {\n \"textarea__input--label-outside\": __props.labelOutside,\n \"textarea__input--legacy\": unref(isLegacy),\n \"textarea__input--success\": __props.success,\n \"textarea__input--error\": __props.error\n }\n ]],\n disabled: __props.disabled,\n placeholder: internalPlaceholder.value,\n style: { resize: __props.resize },\n value: modelValue.value,\n onInput: handleInput\n }), null, 16, _hoisted_2),\n !__props.labelOutside ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: \"textarea__label\",\n for: __props.id\n }, toDisplayString(__props.label), 9, _hoisted_3)) : createCommentVNode(\"\", true)\n ]),\n __props.helperText ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n id: `${__props.id}-helper-text`,\n class: normalizeClass([\"textarea__helper-text-message\", {\n \"textarea__helper-text-message--error\": __props.error,\n \"textarea__helper-text-message--success\": __props.success\n }])\n }, [\n __props.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n class: \"textarea__helper-text-message__icon\",\n path: unref(mdiCheck),\n inline: \"\"\n }, null, 8, [\"path\"])) : __props.error ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n class: \"textarea__helper-text-message__icon\",\n path: unref(mdiAlertCircleOutline),\n inline: \"\"\n }, null, 8, [\"path\"])) : createCommentVNode(\"\", true),\n createTextVNode(\" \" + toDisplayString(__props.helperText), 1)\n ], 10, _hoisted_4)) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcTextArea = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-d327fb49\"]]);\nexport {\n NcTextArea as N\n};\n//# sourceMappingURL=NcTextArea-Dxzj4zdb.mjs.map\n"],"names":["register","_sfc_main","defineComponent","NC_ACTIONS_IS_SEMANTIC_MENU","createElementId","t","_hoisted_1","_hoisted_2","_hoisted_3","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","toDisplayString","createCommentVNode","createElementVNode","renderSlot","NcActionButtonGroup","_export_sfc","NcAppNavigationList","t20","_hoisted_1$1","_sfc_main$1","__props","open","useModel","title","computed","createVNode","unref","NcButton","$event","withCtx","NcIconSvgWrapper","mdiMenuOpen","mdiMenu","NcAppNavigationToggle","props","focusTrap","setHasAppNavigation","inject","HAS_APP_NAVIGATION_KEY","warn","appNavigationContainerElement","useTemplateRef","isMobile","useIsMobile","ref","watchEffect","watch","toggleFocusTrap","onMounted","subscribe","toggleNavigationByEventBus","emit","createFocusTrap","toggleNavigation","getTrapStack","onUnmounted","unsubscribe","state","bodyStyles","animationLength","open2","handleEsc","normalizeClass","isLegacy34","withKeys","createBlock","NcAppNavigation","NcActions","_hoisted_4","mergeProps","ChevronUp","IconArrowRight","t14","IconClose","newValue","_component_IconArrowRight","resolveComponent","_component_NcButton","_component_IconClose","withModifiers","args","withDirectives","vModelText","NcInputConfirmCancel","_sfc_main$3","_hoisted_1$2","_hoisted_2$2","_hoisted_3$2","_hoisted_4$2","_sfc_render$3","Pencil","_sfc_main$2","_hoisted_2$1","_hoisted_3$1","_hoisted_4$1","_sfc_render$2","Undo","t21","ChevronDown","_sfc_render$1","_component_ChevronUp","_component_ChevronDown","NcAppNavigationIconCollapsible","t23","t51","NcActionButton","NcLoadingIcon","_sfc_main$4","id","newVal","event","navigate","routerLinkHref","href","_hoisted_5","_hoisted_6","_hoisted_7","_component_NcLoadingIcon","_component_NcInputConfirmCancel","_component_Pencil","_component_NcActionButton","_component_Undo","_component_NcActions","_component_NcAppNavigationIconCollapsible","resolveDynamicComponent","normalizeProps","guardReactiveProps","isActive","createTextVNode","NcAppNavigationItem","t16","t44","mergeModels","model","slots","useSlots","inputElement","inputHasFocus","useFocusWithin","transitionTimeout","actionsContainerElement","hasActions","showActions","timeoutId","hideActions","onCloseSearch","nextTick","NcInputField","NcAppNavigationSearch","t47","t48","t31","directive","el","encodedTlds","encodedUtlds","numeric","ascii","alpha","asciinumeric","alphanumeric","domain","emoji","scheme","slashscheme","whitespace","registerGroup","name","groups","addToGroups","flags","k","group","flagsForToken","result","c","State","token","input","nextState","i","regex","exactOnly","inputs","next","regexp","len","templateState","allFlags","ta","tr","ts","tt","WORD","UWORD","ASCIINUMERICAL","ALPHANUMERICAL","LOCALHOST","TLD","UTLD","SCHEME","SLASH_SCHEME","NUM","WS","NL","OPENBRACE","CLOSEBRACE","OPENBRACKET","CLOSEBRACKET","OPENPAREN","CLOSEPAREN","OPENANGLEBRACKET","CLOSEANGLEBRACKET","FULLWIDTHLEFTPAREN","FULLWIDTHRIGHTPAREN","LEFTCORNERBRACKET","RIGHTCORNERBRACKET","LEFTWHITECORNERBRACKET","RIGHTWHITECORNERBRACKET","FULLWIDTHLESSTHAN","FULLWIDTHGREATERTHAN","AMPERSAND","APOSTROPHE","ASTERISK","AT","BACKSLASH","BACKTICK","CARET","COLON","COMMA","DOLLAR","DOT","EQUALS","EXCLAMATION","HYPHEN","PERCENT","PIPE","PLUS","POUND","QUERY","QUOTE","FULLWIDTHMIDDLEDOT","SEMI","SLASH","TILDE","UNDERSCORE","EMOJI$1","SYM","tk","ASCII_LETTER","LETTER","EMOJI","DIGIT","SPACE","CR","LF","EMOJI_VARIATION","EMOJI_JOINER","OBJECT_REPLACEMENT","tlds","utlds","init$2","customSchemes","Start","decodeTlds","Num","Asciinumeric","Alphanumeric","Word","UWord","Nl","Cr","Ws","Emoji","EmojiJoiner","wordjr","uwordjr","fastts","a","b","sch","run$1","start","str","iterable","stringToArray","charCount","tokens","cursor","charCursor","tokenLength","latestAccepting","sinceAccepts","charsSinceAccepts","index","first","second","char","defaultt","jr","encoded","words","stack","digits","popDigitCount","popCount","defaults","noop","Options","opts","defaultRender","o","ignoredTags","uppercaseIgnoredTags","ir","key","operator","isCallable","option","obj","val","MultiToken","value","options","truncate","formatted","protocol","formattedHref","tagName","content","attributes","className","target","rel","attrs","eventListeners","createTokenClass","type","Token","p","Email","Text","Url","makeState","arg","init$1","qsAccepting","qsNonAccepting","localpartAccepting","Localpart","Domain","Scheme","SlashScheme","LocalpartAt","LocalpartDot","EmailDomain","EmailDomainDot","Email$1","EmailDomainHyphen","DomainHyphen","DomainDot","DomainDotTld","DomainDotTldColon","DomainDotTldColonPort","Url$1","UrlNonaccept","SchemeColon","SlashSchemeColon","SlashSchemeColonSlash","UriPrefix","bracketPairs","OPEN","CLOSE","UrlOpen","UrlOpenQ","UrlOpenSyms","run","multis","textTokens","secondState","multiLength","initMultiToken","Multi","subtokens","startIdx","endIdx","INIT","init","tokenize","linkifyString","escapeHTML","escapeAttr","attributesToString","attr","headerRef","_sfc_main$5","_hoisted_1$5","_hoisted_2$3","_hoisted_3$3","_hoisted_4$3","_sfc_render$4","IconDockRight","_hoisted_1$4","IconStar","_hoisted_1$3","IconStarOutline","selected","_sfc_main$6","sidebarTabsButton","sidebarTabsButton_legacy","sidebarTabsButton_selected","sidebarTabsButton__name","sidebarTabsButton__icon","sidebarTabsButton__legacyIcon","style0","cssModules","NcAppSidebarTabsButton","tab","active","getCanonicalLocale","tabIndex","_component_NcAppSidebarTabsButton","Fragment","renderList","NcAppSidebarTabs","t15","_sfc_main$7","NcEmptyContent","vOnClickOutside","CONTENT_SELECTOR_KEY","provide","useIsSmallMobile","isSlotPopulated","menu","menuTrigger","element","logger","activeTab","_hoisted_8","_component_IconDockRight","_component_IconStar","_component_IconStarOutline","_component_NcAppSidebarHeader","_component_NcAppSidebarTabs","_component_NcEmptyContent","_directive_focus","resolveDirective","_directive_click_outside","Transition","Teleport","normalizeStyle","vShow","NcAppSidebar","PQueue","t28","t6","t35","gtBuilder","getGettextBuilder","gt","t7","margin","defaultSize","NcAvatar","userStatus","margin2","EMAIL_NOTATION","match","_component_NcAvatar","_component_NcHighlight","_component_NcIconSvgWrapper","NcListItemIcon","t38","t42","getCapabilities","t9","__emit","modelValue","search","clickableArea","gridBaseLine","avatarSize","filterBy","label","search2","subname","NcSelect","selectedOption","NcSelectUsers","t50","debounce","query","__expose","focus","select","useAttrs","textAreaElement","internalPlaceholder","isLegacy","ariaDescribedby","ariaDescribedby2","handleInput","mdiCheck","mdiAlertCircleOutline","NcTextArea"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28]} \ No newline at end of file diff --git a/dist/NcTextArea-Dxzj4zdb-stc727hj.chunk.mjs.map.license b/dist/NcTextArea-Dxzj4zdb-BPZd41PF.chunk.mjs.map.license similarity index 100% rename from dist/NcTextArea-Dxzj4zdb-stc727hj.chunk.mjs.map.license rename to dist/NcTextArea-Dxzj4zdb-BPZd41PF.chunk.mjs.map.license diff --git a/dist/ProfilesCustomPicker-DRkTv5RA.chunk.mjs b/dist/ProfilesCustomPicker-Br9xT8ZL.chunk.mjs similarity index 97% rename from dist/ProfilesCustomPicker-DRkTv5RA.chunk.mjs rename to dist/ProfilesCustomPicker-Br9xT8ZL.chunk.mjs index 6e10c13a5bc..ababb10ad20 100644 --- a/dist/ProfilesCustomPicker-DRkTv5RA.chunk.mjs +++ b/dist/ProfilesCustomPicker-Br9xT8ZL.chunk.mjs @@ -1,2 +1,2 @@ -import{c as d}from"./index-BLNGy7h5.chunk.mjs";import{b as h,c as m,d as C}from"./index-B-dGqfIG.chunk.mjs";import{N as _}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as I}from"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import{N as S}from"./index-BOH7nBEM.chunk.mjs";import{A as U,l as g}from"./logger-D0ZQaoaf.chunk.mjs";import{A as R}from"./ArrowRight-DKsMJImQ.chunk.mjs";import{_ as A}from"./public-C1mLBHT3.chunk.mjs";import{r as s,o as b,f as O,g as a,t as f,k as c,w as u,j as y,c as x,h as T}from"./Web-BwmPK40i.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";const $={name:"ProfilesCustomPicker",components:{NcSelect:S,NcButton:_,NcEmptyContent:I,AccountOutline:U,ArrowRightIcon:R},props:{providerId:{type:String,required:!0},accessible:{type:Boolean,default:!1}},emits:["submit"],data(){return{searchQuery:"",loading:!1,resultUrl:null,reference:null,profiles:[],selectedProfile:null,abortController:null}},computed:{options(){return this.searchQuery!==""?this.profiles:[]},noResultText(){return this.loading?t("profile","Searching …"):t("profile","Not found")}},mounted(){this.focusOnInput()},methods:{focusOnInput(){this.$nextTick(()=>{this.$refs["profiles-search-input"].$el.getElementsByTagName("input")[0]?.focus()})},async searchForProfile(e){e.trim()===""||e.trim().length<3||(this.searchQuery=e.trim(),this.loading=!0,await this.debounceFindProfiles(e))},debounceFindProfiles:C(function(...e){this.findProfiles(...e)},300),async findProfiles(e){const r=m("core/autocomplete/get?search={searchQuery}&itemType=%20&itemId=%20&shareTypes[]=0&limit=20",{searchQuery:e});try{const n=await d.get(r);this.profiles=n.data.ocs.data.map(i=>({user:i.id,displayName:i.label,icon:i.icon,subtitle:i.subline,isNoUser:i.source.startsWith("users")}))}catch(n){g.error("profile_picker: error while searching for users",{error:n})}finally{this.loading=!1}},submit(){this.resultUrl=window.location.origin+h(`/u/${this.selectedProfile.user.trim().toLowerCase()}`,null,{noRewrite:!0}),this.$emit("submit",this.resultUrl),this.$el.dispatchEvent(new CustomEvent("submit",{detail:this.resultUrl,bubbles:!0}))},async resolveResult(e){this.loading=!0,this.abortController=new AbortController,this.selectedProfile=e,this.resultUrl=window.location.origin+h(`/u/${this.selectedProfile.user.trim().toLowerCase()}`,null,{noRewrite:!0});try{const r=await d.get(m("references/resolve",2)+"?reference="+encodeURIComponent(this.resultUrl),{signal:this.abortController.signal});this.reference=r.data.ocs.data.references[this.resultUrl]}catch(r){g.error("profile_picker: error resolving the user profile link",{error:r})}finally{this.loading=!1}},clearSelection(){this.selectedProfile=null,this.resultUrl=null,this.reference=null}}},B={class:"profile-picker"},E={class:"profile-picker__heading"},Q={class:"input-wrapper"},F={class:"profile-picker__footer"};function V(e,r,n,i,o,l){const w=s("NcSelect"),P=s("AccountOutline"),k=s("NcEmptyContent"),N=s("ArrowRightIcon"),v=s("NcButton");return b(),O("div",B,[a("div",E,[a("h2",null,f(e.t("profile","Profile picker")),1),a("div",Q,[c(w,{ref:"profiles-search-input",modelValue:o.selectedProfile,"onUpdate:modelValue":r[0]||(r[0]=p=>o.selectedProfile=p),inputId:"profiles-search",loading:o.loading,filterable:!1,placeholder:e.t("profile","Search for a user profile"),clearSearchOnBlur:()=>!1,multiple:!1,options:l.options,label:"displayName",onSearch:l.searchForProfile,"onOption:selecting":l.resolveResult},{"no-options":u(({search:p})=>[y(f(p?l.noResultText:e.t("profile","Search for a user profile. Start typing")),1)]),_:1},8,["modelValue","loading","placeholder","options","onSearch","onOption:selecting"])]),c(k,{class:"empty-content"},{icon:u(()=>[c(P,{size:20})]),_:1})]),a("div",F,[o.selectedProfile!==null?(b(),x(v,{key:0,variant:"primary","aria-label":e.t("profile","Insert selected user profile link"),disabled:o.loading||o.selectedProfile===null,onClick:l.submit},{icon:u(()=>[c(N)]),default:u(()=>[y(f(e.t("profile","Insert"))+" ",1)]),_:1},8,["aria-label","disabled","onClick"])):T("",!0)])])}const ee=A($,[["render",V],["__scopeId","data-v-5dbe4c82"]]);export{ee as default}; -//# sourceMappingURL=ProfilesCustomPicker-DRkTv5RA.chunk.mjs.map +import{c as d}from"./index-BLNGy7h5.chunk.mjs";import{b as h,c as m,d as C}from"./index-B-dGqfIG.chunk.mjs";import{N as _}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as I}from"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import{N as S}from"./index-dqLzhRZM.chunk.mjs";import{A as U,l as g}from"./logger-D0ZQaoaf.chunk.mjs";import{A as R}from"./ArrowRight-DKsMJImQ.chunk.mjs";import{_ as A}from"./public-C1mLBHT3.chunk.mjs";import{r as s,o as b,f as O,g as a,t as f,k as c,w as u,j as y,c as x,h as T}from"./Web-BwmPK40i.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";const $={name:"ProfilesCustomPicker",components:{NcSelect:S,NcButton:_,NcEmptyContent:I,AccountOutline:U,ArrowRightIcon:R},props:{providerId:{type:String,required:!0},accessible:{type:Boolean,default:!1}},emits:["submit"],data(){return{searchQuery:"",loading:!1,resultUrl:null,reference:null,profiles:[],selectedProfile:null,abortController:null}},computed:{options(){return this.searchQuery!==""?this.profiles:[]},noResultText(){return this.loading?t("profile","Searching …"):t("profile","Not found")}},mounted(){this.focusOnInput()},methods:{focusOnInput(){this.$nextTick(()=>{this.$refs["profiles-search-input"].$el.getElementsByTagName("input")[0]?.focus()})},async searchForProfile(e){e.trim()===""||e.trim().length<3||(this.searchQuery=e.trim(),this.loading=!0,await this.debounceFindProfiles(e))},debounceFindProfiles:C(function(...e){this.findProfiles(...e)},300),async findProfiles(e){const r=m("core/autocomplete/get?search={searchQuery}&itemType=%20&itemId=%20&shareTypes[]=0&limit=20",{searchQuery:e});try{const n=await d.get(r);this.profiles=n.data.ocs.data.map(i=>({user:i.id,displayName:i.label,icon:i.icon,subtitle:i.subline,isNoUser:i.source.startsWith("users")}))}catch(n){g.error("profile_picker: error while searching for users",{error:n})}finally{this.loading=!1}},submit(){this.resultUrl=window.location.origin+h(`/u/${this.selectedProfile.user.trim().toLowerCase()}`,null,{noRewrite:!0}),this.$emit("submit",this.resultUrl),this.$el.dispatchEvent(new CustomEvent("submit",{detail:this.resultUrl,bubbles:!0}))},async resolveResult(e){this.loading=!0,this.abortController=new AbortController,this.selectedProfile=e,this.resultUrl=window.location.origin+h(`/u/${this.selectedProfile.user.trim().toLowerCase()}`,null,{noRewrite:!0});try{const r=await d.get(m("references/resolve",2)+"?reference="+encodeURIComponent(this.resultUrl),{signal:this.abortController.signal});this.reference=r.data.ocs.data.references[this.resultUrl]}catch(r){g.error("profile_picker: error resolving the user profile link",{error:r})}finally{this.loading=!1}},clearSelection(){this.selectedProfile=null,this.resultUrl=null,this.reference=null}}},B={class:"profile-picker"},E={class:"profile-picker__heading"},Q={class:"input-wrapper"},F={class:"profile-picker__footer"};function V(e,r,n,i,o,l){const w=s("NcSelect"),P=s("AccountOutline"),k=s("NcEmptyContent"),N=s("ArrowRightIcon"),v=s("NcButton");return b(),O("div",B,[a("div",E,[a("h2",null,f(e.t("profile","Profile picker")),1),a("div",Q,[c(w,{ref:"profiles-search-input",modelValue:o.selectedProfile,"onUpdate:modelValue":r[0]||(r[0]=p=>o.selectedProfile=p),inputId:"profiles-search",loading:o.loading,filterable:!1,placeholder:e.t("profile","Search for a user profile"),clearSearchOnBlur:()=>!1,multiple:!1,options:l.options,label:"displayName",onSearch:l.searchForProfile,"onOption:selecting":l.resolveResult},{"no-options":u(({search:p})=>[y(f(p?l.noResultText:e.t("profile","Search for a user profile. Start typing")),1)]),_:1},8,["modelValue","loading","placeholder","options","onSearch","onOption:selecting"])]),c(k,{class:"empty-content"},{icon:u(()=>[c(P,{size:20})]),_:1})]),a("div",F,[o.selectedProfile!==null?(b(),x(v,{key:0,variant:"primary","aria-label":e.t("profile","Insert selected user profile link"),disabled:o.loading||o.selectedProfile===null,onClick:l.submit},{icon:u(()=>[c(N)]),default:u(()=>[y(f(e.t("profile","Insert"))+" ",1)]),_:1},8,["aria-label","disabled","onClick"])):T("",!0)])])}const ee=A($,[["render",V],["__scopeId","data-v-5dbe4c82"]]);export{ee as default}; +//# sourceMappingURL=ProfilesCustomPicker-Br9xT8ZL.chunk.mjs.map diff --git a/dist/ProfilesCustomPicker-DRkTv5RA.chunk.mjs.license b/dist/ProfilesCustomPicker-Br9xT8ZL.chunk.mjs.license similarity index 100% rename from dist/ProfilesCustomPicker-DRkTv5RA.chunk.mjs.license rename to dist/ProfilesCustomPicker-Br9xT8ZL.chunk.mjs.license diff --git a/dist/ProfilesCustomPicker-DRkTv5RA.chunk.mjs.map b/dist/ProfilesCustomPicker-Br9xT8ZL.chunk.mjs.map similarity index 98% rename from dist/ProfilesCustomPicker-DRkTv5RA.chunk.mjs.map rename to dist/ProfilesCustomPicker-Br9xT8ZL.chunk.mjs.map index 5f86a106847..6eea2d35f16 100644 --- a/dist/ProfilesCustomPicker-DRkTv5RA.chunk.mjs.map +++ b/dist/ProfilesCustomPicker-Br9xT8ZL.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"ProfilesCustomPicker-DRkTv5RA.chunk.mjs","sources":["../build/frontend/apps/profile/src/components/ProfilesCustomPicker.vue"],"sourcesContent":["\n\n\n\n\n\n\n"],"names":["_sfc_main","NcSelect","NcButton","NcEmptyContent","AccountOutline","ArrowRightIcon","query","debounce","args","url","generateOcsUrl","res","axios","userAutocomplete","error","logger","generateUrl","selectedItem","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_openBlock","_createElementBlock","_createElementVNode","_ctx","_createVNode","_component_NcSelect","$data","$event","$options","_withCtx","search","_component_NcEmptyContent","_component_AccountOutline","_createBlock","_component_NcButton","_component_ArrowRightIcon","_createTextVNode","_toDisplayString"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ProfilesCustomPicker-Br9xT8ZL.chunk.mjs","sources":["../build/frontend/apps/profile/src/components/ProfilesCustomPicker.vue"],"sourcesContent":["\n\n\n\n\n\n\n"],"names":["_sfc_main","NcSelect","NcButton","NcEmptyContent","AccountOutline","ArrowRightIcon","query","debounce","args","url","generateOcsUrl","res","axios","userAutocomplete","error","logger","generateUrl","selectedItem","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_openBlock","_createElementBlock","_createElementVNode","_ctx","_createVNode","_component_NcSelect","$data","$event","$options","_withCtx","search","_component_NcEmptyContent","_component_AccountOutline","_createBlock","_component_NcButton","_component_ArrowRightIcon","_createTextVNode","_toDisplayString"],"mappings":"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"} \ No newline at end of file diff --git a/dist/ProfilesCustomPicker-DRkTv5RA.chunk.mjs.map.license b/dist/ProfilesCustomPicker-Br9xT8ZL.chunk.mjs.map.license similarity index 100% rename from dist/ProfilesCustomPicker-DRkTv5RA.chunk.mjs.map.license rename to dist/ProfilesCustomPicker-Br9xT8ZL.chunk.mjs.map.license diff --git a/dist/SetStatusModal-66fQUG5-.chunk.mjs b/dist/SetStatusModal-Bu_VVMyX.chunk.mjs similarity index 98% rename from dist/SetStatusModal-66fQUG5-.chunk.mjs rename to dist/SetStatusModal-Bu_VVMyX.chunk.mjs index 43c62e282d2..176d09a1bc4 100644 --- a/dist/SetStatusModal-66fQUG5-.chunk.mjs +++ b/dist/SetStatusModal-Bu_VVMyX.chunk.mjs @@ -1,2 +1,2 @@ -import{a as v}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{t as s}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{b as O}from"./index-B-dGqfIG.chunk.mjs";import{N as A}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as q}from"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import{N as x}from"./index-BOH7nBEM.chunk.mjs";import{c as C,m as R,a as T,O as j,l as I}from"./user_status-menu.mjs";import{_ as S}from"./public-C1mLBHT3.chunk.mjs";import{r as c,o as n,f as m,g as a,t as l,k as p,w as g,j as b,F as $,B,c as y,a7 as M,m as U,N as V,h as k}from"./Web-BwmPK40i.chunk.mjs";import{N as L}from"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import{_ as E}from"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import{N as D}from"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";import"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./index-BLNGy7h5.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";function H(){return[{label:s("user_status","Don't clear"),clearAt:null},{label:s("user_status","30 minutes"),clearAt:{type:"period",time:1800}},{label:s("user_status","1 hour"),clearAt:{type:"period",time:3600}},{label:s("user_status","4 hours"),clearAt:{type:"period",time:14400}},{label:s("user_status","Today"),clearAt:{type:"end-of",time:"day"}},{label:s("user_status","This week"),clearAt:{type:"end-of",time:"week"}}]}const W={name:"ClearAtSelect",components:{NcSelect:x},props:{clearAt:{type:Object,default:null}},emits:["selectClearAt"],data(){return{options:H()}},computed:{option(){return{clearAt:this.clearAt,label:C(this.clearAt)}}},methods:{t:s,select(t){t&&this.$emit("selectClearAt",t.clearAt)}}},z={class:"clear-at-select"},K={class:"clear-at-select__label",for:"clearStatus"};function Y(t,i,u,_,o,e){const d=c("NcSelect");return n(),m("div",z,[a("label",K,l(e.t("user_status","Clear status after")),1),p(d,{inputId:"clearStatus",class:"clear-at-select__select",options:o.options,modelValue:e.option,clearable:!1,placement:"top",labelOutside:"","onOption:selected":e.select},null,8,["options","modelValue","onOption:selected"])])}const G=S(W,[["render",Y],["__scopeId","data-v-83a07433"]]),J={name:"CustomMessageInput",components:{NcTextField:E,NcButton:A,NcEmojiPicker:L},props:{icon:{type:String,default:"😀"},message:{type:String,default:""},disabled:{type:Boolean,default:!1}},emits:["change","selectIcon"],computed:{visibleIcon(){return this.icon||"😀"}},methods:{t:s,focus(){this.$refs.input.focus()},onChange(t){this.$emit("change",t)},setIcon(t){this.$emit("selectIcon",t)}}},Q={class:"custom-input",role:"group"},X={class:"custom-input__container"};function Z(t,i,u,_,o,e){const d=c("NcButton"),r=c("NcEmojiPicker"),f=c("NcTextField");return n(),m("div",Q,[p(r,{container:"#user_status-dialog",onSelect:e.setIcon},{default:g(()=>[p(d,{variant:"tertiary","aria-label":e.t("user_status","Emoji for your status message")},{icon:g(()=>[b(l(e.visibleIcon),1)]),_:1},8,["aria-label"])]),_:1},8,["onSelect"]),a("div",X,[p(f,{ref:"input",maxlength:"80",disabled:u.disabled,placeholder:e.t("user_status","What is your status?"),modelValue:u.message,type:"text",label:e.t("user_status","What is your status?"),"onUpdate:modelValue":e.onChange},null,8,["disabled","placeholder","modelValue","label","onUpdate:modelValue"])])])}const ee=S(J,[["render",Z],["__scopeId","data-v-90dc6f12"]]),te={name:"OnlineStatusSelect",components:{NcUserStatusIcon:D},props:{checked:{type:Boolean,default:!1},type:{type:String,required:!0},label:{type:String,required:!0},subline:{type:String,default:null}},emits:["select"],computed:{id(){return`user-status-online-status-${this.type}`}},methods:{onChange(){this.$emit("select",this.type)}}},se={class:"user-status-online-select"},ae=["id","checked"],ie=["for"],re={class:"user-status-online-select__icon-wrapper"},ue={class:"user-status-online-select__subline"};function le(t,i,u,_,o,e){const d=c("NcUserStatusIcon");return n(),m("div",se,[a("input",{id:e.id,checked:u.checked,class:"hidden-visually user-status-online-select__input",type:"radio",name:"user-status-online",onChange:i[0]||(i[0]=(...r)=>e.onChange&&e.onChange(...r))},null,40,ae),a("label",{for:e.id,class:"user-status-online-select__label"},[a("span",re,[p(d,{status:u.type,class:"user-status-online-select__icon","aria-hidden":"true"},null,8,["status"])]),b(" "+l(u.label)+" ",1),a("em",ue,l(u.subline),1)],8,ie)])}const ne=S(te,[["render",le],["__scopeId","data-v-16876893"]]),ce={name:"PredefinedStatus",props:{messageId:{type:String,required:!0},icon:{type:String,required:!0},message:{type:String,required:!0},clearAt:{type:Object,required:!1,default:null},selected:{type:Boolean,required:!1,default:!1}},emits:["select"],computed:{id(){return`user-status-predefined-status-${this.messageId}`},formattedClearAt(){return C(this.clearAt)}},methods:{select(){this.$emit("select")}}},oe={class:"predefined-status"},de=["id","checked"],pe=["for"],me={"aria-hidden":"true",class:"predefined-status__label--icon"},he={class:"predefined-status__label--message"},ge={class:"predefined-status__label--clear-at"};function Se(t,i,u,_,o,e){return n(),m("li",oe,[a("input",{id:e.id,class:"hidden-visually predefined-status__input",type:"radio",name:"predefined-status",checked:u.selected,onChange:i[0]||(i[0]=(...d)=>e.select&&e.select(...d))},null,40,de),a("label",{class:"predefined-status__label",for:e.id},[a("span",me,l(u.icon),1),a("span",he,l(u.message),1),a("span",ge,l(e.formattedClearAt),1)],8,pe)])}const _e=S(ce,[["render",Se],["__scopeId","data-v-200bf95b"]]),fe={name:"PredefinedStatusesList",components:{PredefinedStatus:_e},emits:["selectStatus"],data(){return{lastSelected:null}},computed:{...T({predefinedStatuses:t=>t.predefinedStatuses.predefinedStatuses,messageId:t=>t.userStatus.messageId}),...R(["statusesHaveLoaded"])},watch:{messageId:{immediate:!0,handler(){this.lastSelected=this.messageId}}},created(){this.$store.dispatch("loadAllPredefinedStatuses")},methods:{t:s,selectStatus(t){this.lastSelected=t.id,this.$emit("selectStatus",t)}}},be=["aria-label"],ye={key:1,class:"predefined-statuses-list"};function ve(t,i,u,_,o,e){const d=c("PredefinedStatus");return t.statusesHaveLoaded?(n(),m("ul",{key:0,class:"predefined-statuses-list","aria-label":e.t("user_status","Predefined statuses")},[(n(!0),m($,null,B(t.predefinedStatuses,r=>(n(),y(d,{key:r.id,messageId:r.id,icon:r.icon,message:r.message,clearAt:r.clearAt,selected:o.lastSelected===r.id,onSelect:f=>e.selectStatus(r)},null,8,["messageId","icon","message","clearAt","selected","onSelect"]))),128))],8,be)):(n(),m("div",ye,[...i[0]||(i[0]=[a("div",{class:"icon icon-loading-small"},null,-1)])]))}const Ie=S(fe,[["render",ve],["__scopeId","data-v-b7009355"]]),ke={name:"PreviousStatus",components:{NcButton:A},props:{icon:{type:[String,null],required:!0},message:{type:String,required:!0}},emits:["select"],methods:{t:s,select(){this.$emit("select")}}},Ae={class:"predefined-status__icon"},Me={class:"predefined-status__message"},Ce={class:"predefined-status__clear-at"},$e={class:"backup-status__reset-button"};function Be(t,i,u,_,o,e){const d=c("NcButton");return n(),m("div",{class:"predefined-status backup-status",tabindex:"0",onKeyup:[i[0]||(i[0]=M((...r)=>e.select&&e.select(...r),["enter"])),i[1]||(i[1]=M((...r)=>e.select&&e.select(...r),["space"]))],onClick:i[2]||(i[2]=(...r)=>e.select&&e.select(...r))},[a("span",Ae,l(u.icon),1),a("span",Me,l(u.message),1),a("span",Ce,l(e.t("user_status","Previously set")),1),a("div",$e,[p(d,{onClick:e.select},{default:g(()=>[b(l(e.t("user_status","Reset status")),1)]),_:1},8,["onClick"])])],32)}const Ne=S(ke,[["render",Be],["__scopeId","data-v-5fa747a0"]]);function Pe(){return[{type:"online",label:s("user_status","Online")},{type:"away",label:s("user_status","Away")},{type:"busy",label:s("user_status","Busy")},{type:"dnd",label:s("user_status","Do not disturb"),subline:s("user_status","Mute all notifications")},{type:"invisible",label:s("user_status","Invisible"),subline:s("user_status","Appear offline")}]}const we={name:"SetStatusModal",components:{ClearAtSelect:G,CustomMessageInput:ee,NcModal:q,OnlineStatusSelect:ne,PredefinedStatusesList:Ie,PreviousStatus:Ne,NcButton:A},mixins:[j],props:{inline:{type:Boolean,default:!1}},emits:["close"],data(){return{clearAt:null,editedMessage:"",predefinedMessageId:null,isSavingStatus:!1,statuses:Pe()}},computed:{messageId(){return this.$store.state.userStatus.messageId},icon(){return this.$store.state.userStatus.icon},message(){return this.$store.state.userStatus.message||""},hasBackupStatus(){return this.messageId&&(this.backupIcon||this.backupMessage)},backupIcon(){return this.$store.state.userBackupStatus.icon||""},backupMessage(){return this.$store.state.userBackupStatus.message||""},absencePageUrl(){return O("settings/user/availability#absence")},resetButtonText(){return this.backupIcon&&this.backupMessage?s("user_status",'Reset status to "{icon} {message}"',{icon:this.backupIcon,message:this.backupMessage}):this.backupMessage?s("user_status",'Reset status to "{message}"',{message:this.backupMessage}):this.backupIcon?s("user_status",'Reset status to "{icon}"',{icon:this.backupIcon}):s("user_status","Reset status")},setReturnFocus(){if(!this.inline)return document.querySelector('[aria-controls="header-menu-user-menu"]')??void 0}},watch:{message:{immediate:!0,handler(t){this.editedMessage=t}}},mounted(){this.$store.dispatch("fetchBackupFromServer"),this.predefinedMessageId=this.$store.state.userStatus.messageId,this.$store.state.userStatus.clearAt!==null&&(this.clearAt={type:"_time",time:this.$store.state.userStatus.clearAt})},methods:{t:s,closeModal(){this.$emit("close")},setIcon(t){this.predefinedMessageId=null,this.$store.dispatch("setCustomMessage",{message:this.message,icon:t,clearAt:this.clearAt}),this.$nextTick(()=>{this.$refs.customMessageInput.focus()})},setMessage(t){this.predefinedMessageId=null,this.editedMessage=t},setClearAt(t){this.clearAt=t},selectPredefinedMessage(t){this.predefinedMessageId=t.id,this.clearAt=t.clearAt,this.$store.dispatch("setPredefinedMessage",{messageId:t.id,clearAt:t.clearAt})},async saveStatus(){if(!this.isSavingStatus){try{this.isSavingStatus=!0,this.predefinedMessageId===null?await this.$store.dispatch("setCustomMessage",{message:this.editedMessage,icon:this.icon,clearAt:this.clearAt}):this.$store.dispatch("setPredefinedMessage",{messageId:this.predefinedMessageId,clearAt:this.clearAt})}catch(t){v(s("user_status","There was an error saving the status")),I.debug(t),this.isSavingStatus=!1;return}this.isSavingStatus=!1,this.closeModal()}},async clearStatus(){try{this.isSavingStatus=!0,await this.$store.dispatch("clearMessage")}catch(t){v(s("user_status","There was an error clearing the status")),I.debug(t),this.isSavingStatus=!1;return}this.isSavingStatus=!1,this.predefinedMessageId=null,this.closeModal()},async revertBackupFromServer(){try{this.isSavingStatus=!0,await this.$store.dispatch("revertBackupFromServer",{messageId:this.messageId})}catch(t){v(s("user_status","There was an error reverting the status")),I.debug(t),this.isSavingStatus=!1;return}this.isSavingStatus=!1,this.predefinedMessageId=this.$store.state.userStatus?.messageId}}},Fe={class:"set-status-modal"},Oe={id:"user_status-set-dialog",class:"set-status-modal__header"},qe=["aria-label"],xe={class:"set-status-modal__header"},Re={class:"set-status-modal__custom-input"},Te={key:0,class:"set-status-modal__automation-hint"},je={class:"status-buttons"};function Ue(t,i,u,_,o,e){const d=c("OnlineStatusSelect"),r=c("CustomMessageInput"),f=c("NcButton"),N=c("PreviousStatus"),P=c("PredefinedStatusesList"),w=c("ClearAtSelect"),F=c("NcModal");return n(),y(F,{id:"user_status-dialog",size:"normal",labelId:"user_status-set-dialog",dark:"",setReturnFocus:e.setReturnFocus,onClose:e.closeModal},{default:g(()=>[a("div",Fe,[a("h2",Oe,l(e.t("user_status","Online status")),1),a("div",{class:"set-status-modal__online-status",role:"radiogroup","aria-label":e.t("user_status","Online status")},[(n(!0),m($,null,B(o.statuses,h=>(n(),y(d,U({key:h.type},{ref_for:!0},h,{checked:h.type===t.statusType,onSelect:t.changeStatus}),null,16,["checked","onSelect"]))),128))],8,qe),a("form",{onSubmit:i[0]||(i[0]=V((...h)=>e.saveStatus&&e.saveStatus(...h),["prevent"])),onReset:i[1]||(i[1]=(...h)=>e.clearStatus&&e.clearStatus(...h))},[a("h3",xe,l(e.t("user_status","Status message")),1),a("div",Re,[p(r,{ref:"customMessageInput",icon:e.icon,message:o.editedMessage,onChange:e.setMessage,onSelectIcon:e.setIcon},null,8,["icon","message","onChange","onSelectIcon"]),e.messageId==="vacationing"?(n(),y(f,{key:0,href:e.absencePageUrl,target:"_blank",variant:"secondary","aria-label":e.t("user_status","Set absence period")},{default:g(()=>[b(l(e.t("user_status","Set absence period and replacement")+" ↗"),1)]),_:1},8,["href","aria-label"])):k("",!0)]),e.hasBackupStatus?(n(),m("div",Te,l(e.t("user_status","Your status was set automatically")),1)):k("",!0),e.hasBackupStatus?(n(),y(N,{key:1,icon:e.backupIcon,message:e.backupMessage,onSelect:e.revertBackupFromServer},null,8,["icon","message","onSelect"])):k("",!0),p(P,{onSelectStatus:e.selectPredefinedMessage},null,8,["onSelectStatus"]),p(w,{clearAt:o.clearAt,onSelectClearAt:e.setClearAt},null,8,["clearAt","onSelectClearAt"]),a("div",je,[p(f,{wide:!0,variant:"tertiary",type:"reset","aria-label":e.t("user_status","Clear status message"),disabled:o.isSavingStatus},{default:g(()=>[b(l(e.t("user_status","Clear status message")),1)]),_:1},8,["aria-label","disabled"]),p(f,{wide:!0,variant:"primary",type:"submit","aria-label":e.t("user_status","Set status message"),disabled:o.isSavingStatus},{default:g(()=>[b(l(e.t("user_status","Set status message")),1)]),_:1},8,["aria-label","disabled"])])],32)])]),_:1},8,["setReturnFocus","onClose"])}const ct=S(we,[["render",Ue],["__scopeId","data-v-e87f4d59"]]);export{ct as default}; -//# sourceMappingURL=SetStatusModal-66fQUG5-.chunk.mjs.map +import{a as v}from"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import{t as s}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{b as O}from"./index-B-dGqfIG.chunk.mjs";import{N as A}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as q}from"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import{N as x}from"./index-dqLzhRZM.chunk.mjs";import{c as C,m as R,a as T,O as j,l as I}from"./user_status-menu.mjs";import{_ as S}from"./public-C1mLBHT3.chunk.mjs";import{r as c,o as n,f as m,g as a,t as l,k as p,w as g,j as b,F as $,B,c as y,a7 as M,m as U,N as V,h as k}from"./Web-BwmPK40i.chunk.mjs";import{N as L}from"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import{_ as E}from"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import{N as D}from"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";import"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./index-BLNGy7h5.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";function H(){return[{label:s("user_status","Don't clear"),clearAt:null},{label:s("user_status","30 minutes"),clearAt:{type:"period",time:1800}},{label:s("user_status","1 hour"),clearAt:{type:"period",time:3600}},{label:s("user_status","4 hours"),clearAt:{type:"period",time:14400}},{label:s("user_status","Today"),clearAt:{type:"end-of",time:"day"}},{label:s("user_status","This week"),clearAt:{type:"end-of",time:"week"}}]}const W={name:"ClearAtSelect",components:{NcSelect:x},props:{clearAt:{type:Object,default:null}},emits:["selectClearAt"],data(){return{options:H()}},computed:{option(){return{clearAt:this.clearAt,label:C(this.clearAt)}}},methods:{t:s,select(t){t&&this.$emit("selectClearAt",t.clearAt)}}},z={class:"clear-at-select"},K={class:"clear-at-select__label",for:"clearStatus"};function Y(t,i,u,_,o,e){const d=c("NcSelect");return n(),m("div",z,[a("label",K,l(e.t("user_status","Clear status after")),1),p(d,{inputId:"clearStatus",class:"clear-at-select__select",options:o.options,modelValue:e.option,clearable:!1,placement:"top",labelOutside:"","onOption:selected":e.select},null,8,["options","modelValue","onOption:selected"])])}const G=S(W,[["render",Y],["__scopeId","data-v-83a07433"]]),J={name:"CustomMessageInput",components:{NcTextField:E,NcButton:A,NcEmojiPicker:L},props:{icon:{type:String,default:"😀"},message:{type:String,default:""},disabled:{type:Boolean,default:!1}},emits:["change","selectIcon"],computed:{visibleIcon(){return this.icon||"😀"}},methods:{t:s,focus(){this.$refs.input.focus()},onChange(t){this.$emit("change",t)},setIcon(t){this.$emit("selectIcon",t)}}},Q={class:"custom-input",role:"group"},X={class:"custom-input__container"};function Z(t,i,u,_,o,e){const d=c("NcButton"),r=c("NcEmojiPicker"),f=c("NcTextField");return n(),m("div",Q,[p(r,{container:"#user_status-dialog",onSelect:e.setIcon},{default:g(()=>[p(d,{variant:"tertiary","aria-label":e.t("user_status","Emoji for your status message")},{icon:g(()=>[b(l(e.visibleIcon),1)]),_:1},8,["aria-label"])]),_:1},8,["onSelect"]),a("div",X,[p(f,{ref:"input",maxlength:"80",disabled:u.disabled,placeholder:e.t("user_status","What is your status?"),modelValue:u.message,type:"text",label:e.t("user_status","What is your status?"),"onUpdate:modelValue":e.onChange},null,8,["disabled","placeholder","modelValue","label","onUpdate:modelValue"])])])}const ee=S(J,[["render",Z],["__scopeId","data-v-90dc6f12"]]),te={name:"OnlineStatusSelect",components:{NcUserStatusIcon:D},props:{checked:{type:Boolean,default:!1},type:{type:String,required:!0},label:{type:String,required:!0},subline:{type:String,default:null}},emits:["select"],computed:{id(){return`user-status-online-status-${this.type}`}},methods:{onChange(){this.$emit("select",this.type)}}},se={class:"user-status-online-select"},ae=["id","checked"],ie=["for"],re={class:"user-status-online-select__icon-wrapper"},ue={class:"user-status-online-select__subline"};function le(t,i,u,_,o,e){const d=c("NcUserStatusIcon");return n(),m("div",se,[a("input",{id:e.id,checked:u.checked,class:"hidden-visually user-status-online-select__input",type:"radio",name:"user-status-online",onChange:i[0]||(i[0]=(...r)=>e.onChange&&e.onChange(...r))},null,40,ae),a("label",{for:e.id,class:"user-status-online-select__label"},[a("span",re,[p(d,{status:u.type,class:"user-status-online-select__icon","aria-hidden":"true"},null,8,["status"])]),b(" "+l(u.label)+" ",1),a("em",ue,l(u.subline),1)],8,ie)])}const ne=S(te,[["render",le],["__scopeId","data-v-16876893"]]),ce={name:"PredefinedStatus",props:{messageId:{type:String,required:!0},icon:{type:String,required:!0},message:{type:String,required:!0},clearAt:{type:Object,required:!1,default:null},selected:{type:Boolean,required:!1,default:!1}},emits:["select"],computed:{id(){return`user-status-predefined-status-${this.messageId}`},formattedClearAt(){return C(this.clearAt)}},methods:{select(){this.$emit("select")}}},oe={class:"predefined-status"},de=["id","checked"],pe=["for"],me={"aria-hidden":"true",class:"predefined-status__label--icon"},he={class:"predefined-status__label--message"},ge={class:"predefined-status__label--clear-at"};function Se(t,i,u,_,o,e){return n(),m("li",oe,[a("input",{id:e.id,class:"hidden-visually predefined-status__input",type:"radio",name:"predefined-status",checked:u.selected,onChange:i[0]||(i[0]=(...d)=>e.select&&e.select(...d))},null,40,de),a("label",{class:"predefined-status__label",for:e.id},[a("span",me,l(u.icon),1),a("span",he,l(u.message),1),a("span",ge,l(e.formattedClearAt),1)],8,pe)])}const _e=S(ce,[["render",Se],["__scopeId","data-v-200bf95b"]]),fe={name:"PredefinedStatusesList",components:{PredefinedStatus:_e},emits:["selectStatus"],data(){return{lastSelected:null}},computed:{...T({predefinedStatuses:t=>t.predefinedStatuses.predefinedStatuses,messageId:t=>t.userStatus.messageId}),...R(["statusesHaveLoaded"])},watch:{messageId:{immediate:!0,handler(){this.lastSelected=this.messageId}}},created(){this.$store.dispatch("loadAllPredefinedStatuses")},methods:{t:s,selectStatus(t){this.lastSelected=t.id,this.$emit("selectStatus",t)}}},be=["aria-label"],ye={key:1,class:"predefined-statuses-list"};function ve(t,i,u,_,o,e){const d=c("PredefinedStatus");return t.statusesHaveLoaded?(n(),m("ul",{key:0,class:"predefined-statuses-list","aria-label":e.t("user_status","Predefined statuses")},[(n(!0),m($,null,B(t.predefinedStatuses,r=>(n(),y(d,{key:r.id,messageId:r.id,icon:r.icon,message:r.message,clearAt:r.clearAt,selected:o.lastSelected===r.id,onSelect:f=>e.selectStatus(r)},null,8,["messageId","icon","message","clearAt","selected","onSelect"]))),128))],8,be)):(n(),m("div",ye,[...i[0]||(i[0]=[a("div",{class:"icon icon-loading-small"},null,-1)])]))}const Ie=S(fe,[["render",ve],["__scopeId","data-v-b7009355"]]),ke={name:"PreviousStatus",components:{NcButton:A},props:{icon:{type:[String,null],required:!0},message:{type:String,required:!0}},emits:["select"],methods:{t:s,select(){this.$emit("select")}}},Ae={class:"predefined-status__icon"},Me={class:"predefined-status__message"},Ce={class:"predefined-status__clear-at"},$e={class:"backup-status__reset-button"};function Be(t,i,u,_,o,e){const d=c("NcButton");return n(),m("div",{class:"predefined-status backup-status",tabindex:"0",onKeyup:[i[0]||(i[0]=M((...r)=>e.select&&e.select(...r),["enter"])),i[1]||(i[1]=M((...r)=>e.select&&e.select(...r),["space"]))],onClick:i[2]||(i[2]=(...r)=>e.select&&e.select(...r))},[a("span",Ae,l(u.icon),1),a("span",Me,l(u.message),1),a("span",Ce,l(e.t("user_status","Previously set")),1),a("div",$e,[p(d,{onClick:e.select},{default:g(()=>[b(l(e.t("user_status","Reset status")),1)]),_:1},8,["onClick"])])],32)}const Ne=S(ke,[["render",Be],["__scopeId","data-v-5fa747a0"]]);function Pe(){return[{type:"online",label:s("user_status","Online")},{type:"away",label:s("user_status","Away")},{type:"busy",label:s("user_status","Busy")},{type:"dnd",label:s("user_status","Do not disturb"),subline:s("user_status","Mute all notifications")},{type:"invisible",label:s("user_status","Invisible"),subline:s("user_status","Appear offline")}]}const we={name:"SetStatusModal",components:{ClearAtSelect:G,CustomMessageInput:ee,NcModal:q,OnlineStatusSelect:ne,PredefinedStatusesList:Ie,PreviousStatus:Ne,NcButton:A},mixins:[j],props:{inline:{type:Boolean,default:!1}},emits:["close"],data(){return{clearAt:null,editedMessage:"",predefinedMessageId:null,isSavingStatus:!1,statuses:Pe()}},computed:{messageId(){return this.$store.state.userStatus.messageId},icon(){return this.$store.state.userStatus.icon},message(){return this.$store.state.userStatus.message||""},hasBackupStatus(){return this.messageId&&(this.backupIcon||this.backupMessage)},backupIcon(){return this.$store.state.userBackupStatus.icon||""},backupMessage(){return this.$store.state.userBackupStatus.message||""},absencePageUrl(){return O("settings/user/availability#absence")},resetButtonText(){return this.backupIcon&&this.backupMessage?s("user_status",'Reset status to "{icon} {message}"',{icon:this.backupIcon,message:this.backupMessage}):this.backupMessage?s("user_status",'Reset status to "{message}"',{message:this.backupMessage}):this.backupIcon?s("user_status",'Reset status to "{icon}"',{icon:this.backupIcon}):s("user_status","Reset status")},setReturnFocus(){if(!this.inline)return document.querySelector('[aria-controls="header-menu-user-menu"]')??void 0}},watch:{message:{immediate:!0,handler(t){this.editedMessage=t}}},mounted(){this.$store.dispatch("fetchBackupFromServer"),this.predefinedMessageId=this.$store.state.userStatus.messageId,this.$store.state.userStatus.clearAt!==null&&(this.clearAt={type:"_time",time:this.$store.state.userStatus.clearAt})},methods:{t:s,closeModal(){this.$emit("close")},setIcon(t){this.predefinedMessageId=null,this.$store.dispatch("setCustomMessage",{message:this.message,icon:t,clearAt:this.clearAt}),this.$nextTick(()=>{this.$refs.customMessageInput.focus()})},setMessage(t){this.predefinedMessageId=null,this.editedMessage=t},setClearAt(t){this.clearAt=t},selectPredefinedMessage(t){this.predefinedMessageId=t.id,this.clearAt=t.clearAt,this.$store.dispatch("setPredefinedMessage",{messageId:t.id,clearAt:t.clearAt})},async saveStatus(){if(!this.isSavingStatus){try{this.isSavingStatus=!0,this.predefinedMessageId===null?await this.$store.dispatch("setCustomMessage",{message:this.editedMessage,icon:this.icon,clearAt:this.clearAt}):this.$store.dispatch("setPredefinedMessage",{messageId:this.predefinedMessageId,clearAt:this.clearAt})}catch(t){v(s("user_status","There was an error saving the status")),I.debug(t),this.isSavingStatus=!1;return}this.isSavingStatus=!1,this.closeModal()}},async clearStatus(){try{this.isSavingStatus=!0,await this.$store.dispatch("clearMessage")}catch(t){v(s("user_status","There was an error clearing the status")),I.debug(t),this.isSavingStatus=!1;return}this.isSavingStatus=!1,this.predefinedMessageId=null,this.closeModal()},async revertBackupFromServer(){try{this.isSavingStatus=!0,await this.$store.dispatch("revertBackupFromServer",{messageId:this.messageId})}catch(t){v(s("user_status","There was an error reverting the status")),I.debug(t),this.isSavingStatus=!1;return}this.isSavingStatus=!1,this.predefinedMessageId=this.$store.state.userStatus?.messageId}}},Fe={class:"set-status-modal"},Oe={id:"user_status-set-dialog",class:"set-status-modal__header"},qe=["aria-label"],xe={class:"set-status-modal__header"},Re={class:"set-status-modal__custom-input"},Te={key:0,class:"set-status-modal__automation-hint"},je={class:"status-buttons"};function Ue(t,i,u,_,o,e){const d=c("OnlineStatusSelect"),r=c("CustomMessageInput"),f=c("NcButton"),N=c("PreviousStatus"),P=c("PredefinedStatusesList"),w=c("ClearAtSelect"),F=c("NcModal");return n(),y(F,{id:"user_status-dialog",size:"normal",labelId:"user_status-set-dialog",dark:"",setReturnFocus:e.setReturnFocus,onClose:e.closeModal},{default:g(()=>[a("div",Fe,[a("h2",Oe,l(e.t("user_status","Online status")),1),a("div",{class:"set-status-modal__online-status",role:"radiogroup","aria-label":e.t("user_status","Online status")},[(n(!0),m($,null,B(o.statuses,h=>(n(),y(d,U({key:h.type},{ref_for:!0},h,{checked:h.type===t.statusType,onSelect:t.changeStatus}),null,16,["checked","onSelect"]))),128))],8,qe),a("form",{onSubmit:i[0]||(i[0]=V((...h)=>e.saveStatus&&e.saveStatus(...h),["prevent"])),onReset:i[1]||(i[1]=(...h)=>e.clearStatus&&e.clearStatus(...h))},[a("h3",xe,l(e.t("user_status","Status message")),1),a("div",Re,[p(r,{ref:"customMessageInput",icon:e.icon,message:o.editedMessage,onChange:e.setMessage,onSelectIcon:e.setIcon},null,8,["icon","message","onChange","onSelectIcon"]),e.messageId==="vacationing"?(n(),y(f,{key:0,href:e.absencePageUrl,target:"_blank",variant:"secondary","aria-label":e.t("user_status","Set absence period")},{default:g(()=>[b(l(e.t("user_status","Set absence period and replacement")+" ↗"),1)]),_:1},8,["href","aria-label"])):k("",!0)]),e.hasBackupStatus?(n(),m("div",Te,l(e.t("user_status","Your status was set automatically")),1)):k("",!0),e.hasBackupStatus?(n(),y(N,{key:1,icon:e.backupIcon,message:e.backupMessage,onSelect:e.revertBackupFromServer},null,8,["icon","message","onSelect"])):k("",!0),p(P,{onSelectStatus:e.selectPredefinedMessage},null,8,["onSelectStatus"]),p(w,{clearAt:o.clearAt,onSelectClearAt:e.setClearAt},null,8,["clearAt","onSelectClearAt"]),a("div",je,[p(f,{wide:!0,variant:"tertiary",type:"reset","aria-label":e.t("user_status","Clear status message"),disabled:o.isSavingStatus},{default:g(()=>[b(l(e.t("user_status","Clear status message")),1)]),_:1},8,["aria-label","disabled"]),p(f,{wide:!0,variant:"primary",type:"submit","aria-label":e.t("user_status","Set status message"),disabled:o.isSavingStatus},{default:g(()=>[b(l(e.t("user_status","Set status message")),1)]),_:1},8,["aria-label","disabled"])])],32)])]),_:1},8,["setReturnFocus","onClose"])}const ct=S(we,[["render",Ue],["__scopeId","data-v-e87f4d59"]]);export{ct as default}; +//# sourceMappingURL=SetStatusModal-Bu_VVMyX.chunk.mjs.map diff --git a/dist/SetStatusModal-66fQUG5-.chunk.mjs.license b/dist/SetStatusModal-Bu_VVMyX.chunk.mjs.license similarity index 100% rename from dist/SetStatusModal-66fQUG5-.chunk.mjs.license rename to dist/SetStatusModal-Bu_VVMyX.chunk.mjs.license diff --git a/dist/SetStatusModal-66fQUG5-.chunk.mjs.map b/dist/SetStatusModal-Bu_VVMyX.chunk.mjs.map similarity index 99% rename from dist/SetStatusModal-66fQUG5-.chunk.mjs.map rename to dist/SetStatusModal-Bu_VVMyX.chunk.mjs.map index c570512b43e..4f4187b4193 100644 --- a/dist/SetStatusModal-66fQUG5-.chunk.mjs.map +++ b/dist/SetStatusModal-Bu_VVMyX.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"SetStatusModal-66fQUG5-.chunk.mjs","sources":["../build/frontend/apps/user_status/src/services/clearAtOptionsService.js","../build/frontend/apps/user_status/src/components/ClearAtSelect.vue","../build/frontend/apps/user_status/src/components/CustomMessageInput.vue","../build/frontend/apps/user_status/src/components/OnlineStatusSelect.vue","../build/frontend/apps/user_status/src/components/PredefinedStatus.vue","../build/frontend/apps/user_status/src/components/PredefinedStatusesList.vue","../build/frontend/apps/user_status/src/components/PreviousStatus.vue","../build/frontend/apps/user_status/src/services/statusOptionsService.js","../build/frontend/apps/user_status/src/components/SetStatusModal.vue"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '@nextcloud/l10n'\n\n/**\n * Returns an array\n *\n * @return {object[]}\n */\nfunction getAllClearAtOptions() {\n\treturn [{\n\t\tlabel: t('user_status', 'Don\\'t clear'),\n\t\tclearAt: null,\n\t}, {\n\t\tlabel: t('user_status', '30 minutes'),\n\t\tclearAt: {\n\t\t\ttype: 'period',\n\t\t\ttime: 1800,\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', '1 hour'),\n\t\tclearAt: {\n\t\t\ttype: 'period',\n\t\t\ttime: 3600,\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', '4 hours'),\n\t\tclearAt: {\n\t\t\ttype: 'period',\n\t\t\ttime: 14400,\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', 'Today'),\n\t\tclearAt: {\n\t\t\ttype: 'end-of',\n\t\t\ttime: 'day',\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', 'This week'),\n\t\tclearAt: {\n\t\t\ttype: 'end-of',\n\t\t\ttime: 'week',\n\t\t},\n\t}]\n}\n\nexport {\n\tgetAllClearAtOptions,\n}\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '@nextcloud/l10n'\n\n/**\n * Returns a list of all user-definable statuses\n *\n * @return {object[]}\n */\nfunction getAllStatusOptions() {\n\treturn [{\n\t\ttype: 'online',\n\t\tlabel: t('user_status', 'Online'),\n\t}, {\n\t\ttype: 'away',\n\t\tlabel: t('user_status', 'Away'),\n\t}, {\n\t\ttype: 'busy',\n\t\tlabel: t('user_status', 'Busy'),\n\t}, {\n\t\ttype: 'dnd',\n\t\tlabel: t('user_status', 'Do not disturb'),\n\t\tsubline: t('user_status', 'Mute all notifications'),\n\t}, {\n\t\ttype: 'invisible',\n\t\tlabel: t('user_status', 'Invisible'),\n\t\tsubline: t('user_status', 'Appear offline'),\n\t}]\n}\n\nexport {\n\tgetAllStatusOptions,\n}\n","\n\n\n\n\n\n\n"],"names":["getAllClearAtOptions","t","_sfc_main","NcSelect","clearAtFormat","option","_hoisted_1","_openBlock","_createElementBlock","_createElementVNode","_hoisted_2","_toDisplayString","$options","_createVNode","_component_NcSelect","$data","NcTextField","NcButton","NcEmojiPicker","value","icon","_component_NcEmojiPicker","_component_NcButton","_component_NcTextField","$props","NcUserStatusIcon","_hoisted_4","_hoisted_5","args","_component_NcUserStatusIcon","_hoisted_6","PredefinedStatus","mapState","state","mapGetters","status","_ctx","_Fragment","_renderList","_createBlock","_component_PredefinedStatus","$event","_cache","_hoisted_3","getAllStatusOptions","ClearAtSelect","CustomMessageInput","NcModal","OnlineStatusSelect","PredefinedStatusesList","PreviousStatus","OnlineStatusMixin","generateUrl","newValue","message","clearAt","err","showError","logger","_hoisted_7","_component_NcModal","_component_OnlineStatusSelect","_mergeProps","_component_CustomMessageInput","_component_PreviousStatus","_component_PredefinedStatusesList","_component_ClearAtSelect"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"SetStatusModal-Bu_VVMyX.chunk.mjs","sources":["../build/frontend/apps/user_status/src/services/clearAtOptionsService.js","../build/frontend/apps/user_status/src/components/ClearAtSelect.vue","../build/frontend/apps/user_status/src/components/CustomMessageInput.vue","../build/frontend/apps/user_status/src/components/OnlineStatusSelect.vue","../build/frontend/apps/user_status/src/components/PredefinedStatus.vue","../build/frontend/apps/user_status/src/components/PredefinedStatusesList.vue","../build/frontend/apps/user_status/src/components/PreviousStatus.vue","../build/frontend/apps/user_status/src/services/statusOptionsService.js","../build/frontend/apps/user_status/src/components/SetStatusModal.vue"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '@nextcloud/l10n'\n\n/**\n * Returns an array\n *\n * @return {object[]}\n */\nfunction getAllClearAtOptions() {\n\treturn [{\n\t\tlabel: t('user_status', 'Don\\'t clear'),\n\t\tclearAt: null,\n\t}, {\n\t\tlabel: t('user_status', '30 minutes'),\n\t\tclearAt: {\n\t\t\ttype: 'period',\n\t\t\ttime: 1800,\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', '1 hour'),\n\t\tclearAt: {\n\t\t\ttype: 'period',\n\t\t\ttime: 3600,\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', '4 hours'),\n\t\tclearAt: {\n\t\t\ttype: 'period',\n\t\t\ttime: 14400,\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', 'Today'),\n\t\tclearAt: {\n\t\t\ttype: 'end-of',\n\t\t\ttime: 'day',\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', 'This week'),\n\t\tclearAt: {\n\t\t\ttype: 'end-of',\n\t\t\ttime: 'week',\n\t\t},\n\t}]\n}\n\nexport {\n\tgetAllClearAtOptions,\n}\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '@nextcloud/l10n'\n\n/**\n * Returns a list of all user-definable statuses\n *\n * @return {object[]}\n */\nfunction getAllStatusOptions() {\n\treturn [{\n\t\ttype: 'online',\n\t\tlabel: t('user_status', 'Online'),\n\t}, {\n\t\ttype: 'away',\n\t\tlabel: t('user_status', 'Away'),\n\t}, {\n\t\ttype: 'busy',\n\t\tlabel: t('user_status', 'Busy'),\n\t}, {\n\t\ttype: 'dnd',\n\t\tlabel: t('user_status', 'Do not disturb'),\n\t\tsubline: t('user_status', 'Mute all notifications'),\n\t}, {\n\t\ttype: 'invisible',\n\t\tlabel: t('user_status', 'Invisible'),\n\t\tsubline: t('user_status', 'Appear offline'),\n\t}]\n}\n\nexport {\n\tgetAllStatusOptions,\n}\n","\n\n\n\n\n\n\n"],"names":["getAllClearAtOptions","t","_sfc_main","NcSelect","clearAtFormat","option","_hoisted_1","_openBlock","_createElementBlock","_createElementVNode","_hoisted_2","_toDisplayString","$options","_createVNode","_component_NcSelect","$data","NcTextField","NcButton","NcEmojiPicker","value","icon","_component_NcEmojiPicker","_component_NcButton","_component_NcTextField","$props","NcUserStatusIcon","_hoisted_4","_hoisted_5","args","_component_NcUserStatusIcon","_hoisted_6","PredefinedStatus","mapState","state","mapGetters","status","_ctx","_Fragment","_renderList","_createBlock","_component_PredefinedStatus","$event","_cache","_hoisted_3","getAllStatusOptions","ClearAtSelect","CustomMessageInput","NcModal","OnlineStatusSelect","PredefinedStatusesList","PreviousStatus","OnlineStatusMixin","generateUrl","newValue","message","clearAt","err","showError","logger","_hoisted_7","_component_NcModal","_component_OnlineStatusSelect","_mergeProps","_component_CustomMessageInput","_component_PreviousStatus","_component_PredefinedStatusesList","_component_ClearAtSelect"],"mappings":"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"} \ No newline at end of file diff --git a/dist/SetStatusModal-66fQUG5-.chunk.mjs.map.license b/dist/SetStatusModal-Bu_VVMyX.chunk.mjs.map.license similarity index 100% rename from dist/SetStatusModal-66fQUG5-.chunk.mjs.map.license rename to dist/SetStatusModal-Bu_VVMyX.chunk.mjs.map.license diff --git a/dist/SystemTagPicker-ig025yQH.chunk.mjs b/dist/SystemTagPicker-Bs6TQCBu.chunk.mjs similarity index 99% rename from dist/SystemTagPicker-ig025yQH.chunk.mjs rename to dist/SystemTagPicker-Bs6TQCBu.chunk.mjs index ae23a017df6..4467f43fcf3 100644 --- a/dist/SystemTagPicker-ig025yQH.chunk.mjs +++ b/dist/SystemTagPicker-Bs6TQCBu.chunk.mjs @@ -1,2 +1,2 @@ -import{f as R,a as q,d as Q}from"./index-B-dGqfIG.chunk.mjs";import{a as _}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{_ as A,l as J}from"./public-C1mLBHT3.chunk.mjs";import{t as y,g as L,e as K,p as W,a as k}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{N as X}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as Y}from"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import{P as tt,N as et}from"./Plus-DYmK9QaT.chunk.mjs";import st from"./index-BoBLp2fu.chunk.mjs";import{N as at}from"./index-BW4M2n71.chunk.mjs";import{N as it}from"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import{N as ot}from"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{N as lt}from"./mdi-Lt-19ASw.chunk.mjs";import{_ as nt}from"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import{o as a,f as d,g,t as p,h as C,m as w,b as rt,r as c,c as h,w as m,F as E,k as u,B as ct,Q as dt,j as N,L as mt,M as gt,y as ht}from"./Web-BwmPK40i.chunk.mjs";import{P as pt}from"./PencilOutline-CJ2aSuY5.chunk.mjs";import{l as S,g as O,s as x,e as I,h as z,c as ut,i as ft,f as yt,u as Ct}from"./api-Dwdrdtjg.chunk.mjs";import{e as bt,i as kt,a as Nt}from"./systemtags-init.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import"./index-BLNGy7h5.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./index-BU6wm4Hd.chunk.mjs";import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./dav-CGJ67RGS.chunk.mjs";import"./index-BYnFfAmz.chunk.mjs";import"./folder-29HuacU_-Joa_bkj_.chunk.mjs";import"./index-BDagnpAU.chunk.mjs";const At={name:"CheckCircleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},vt=["aria-hidden","aria-label"],wt=["fill","width","height"],Tt={d:"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M10 17L5 12L6.41 10.59L10 14.17L17.59 6.58L19 8L10 17Z"},_t={key:0};function Lt(t,s,e,o,l,n){return a(),d("span",w(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon check-circle-icon",role:"img",onClick:s[0]||(s[0]=i=>t.$emit("click",i))}),[(a(),d("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[g("path",Tt,[e.title?(a(),d("title",_t,p(e.title),1)):C("",!0)])],8,wt))],16,vt)}const St=A(At,[["render",Lt]]),It={name:"CircleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},$t=["aria-hidden","aria-label"],Rt=["fill","width","height"],Et={d:"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"},Ot={key:0};function xt(t,s,e,o,l,n){return a(),d("span",w(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon circle-icon",role:"img",onClick:s[0]||(s[0]=i=>t.$emit("click",i))}),[(a(),d("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[g("path",Et,[e.title?(a(),d("title",Ot,p(e.title),1)):C("",!0)])],8,Rt))],16,$t)}const zt=A(It,[["render",xt]]),Pt={name:"CircleOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Mt=["aria-hidden","aria-label"],Vt=["fill","width","height"],Bt={d:"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"},Ut={key:0};function Dt(t,s,e,o,l,n){return a(),d("span",w(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon circle-outline-icon",role:"img",onClick:s[0]||(s[0]=i=>t.$emit("click",i))}),[(a(),d("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[g("path",Bt,[e.title?(a(),d("title",Ut,p(e.title),1)):C("",!0)])],8,Vt))],16,Mt)}const Gt=A(Pt,[["render",Dt]]),jt={name:"TagOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ft=["aria-hidden","aria-label"],Ht=["fill","width","height"],Zt={d:"M21.41 11.58L12.41 2.58A2 2 0 0 0 11 2H4A2 2 0 0 0 2 4V11A2 2 0 0 0 2.59 12.42L11.59 21.42A2 2 0 0 0 13 22A2 2 0 0 0 14.41 21.41L21.41 14.41A2 2 0 0 0 22 13A2 2 0 0 0 21.41 11.58M13 20L4 11V4H11L20 13M6.5 5A1.5 1.5 0 1 1 5 6.5A1.5 1.5 0 0 1 6.5 5Z"},qt={key:0};function Qt(t,s,e,o,l,n){return a(),d("span",w(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon tag-outline-icon",role:"img",onClick:s[0]||(s[0]=i=>t.$emit("click",i))}),[(a(),d("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[g("path",Zt,[e.title?(a(),d("title",qt,p(e.title),1)):C("",!0)])],8,Ht))],16,Ft)}const Jt=A(jt,[["render",Qt]]),Kt=Q(Ct,500),Wt=getComputedStyle(document.body).getPropertyValue("--color-main-background").replace("#","")||(Nt()?"000000":"ffffff");var P=(t=>(t.BASE="base",t.LOADING="loading",t.CREATING_TAG="creating-tag",t.DONE="done",t))(P||{});const Xt=J("systemtags","restrictSystemTagsCreationToAdmin",!1),Yt=rt({name:"SystemTagPicker",components:{CheckIcon:St,CircleIcon:zt,CircleOutlineIcon:Gt,NcButton:X,NcCheckboxRadioSwitch:Y,NcChip:et,NcColorPicker:st,NcDialog:at,NcEmptyContent:it,NcLoadingIcon:ot,NcNoteCard:lt,NcTextField:nt,PencilIcon:pt,PlusIcon:tt,TagIcon:Jt},props:{nodes:{type:Array,required:!0}},emits:{close(t){return t===null||typeof t=="boolean"}},setup(){return{emit:R,Status:P,t:y,canEditOrCreateTag:!Xt||q()?.isAdmin}},data(){return{status:"base",opened:!0,openedPicker:!1,input:"",tags:[],tagList:{},toAdd:[],toRemove:[]}},computed:{sortedTags(){return[...this.tags].sort((t,s)=>t.displayName.localeCompare(s.displayName,L(),{ignorePunctuation:!0}))},filteredTags(){return this.input.trim()===""?this.sortedTags:this.sortedTags.filter(t=>t.displayName.normalize().toLowerCase().includes(this.input.normalize().toLowerCase()))},hasChanges(){return this.toAdd.length>0||this.toRemove.length>0},canCreateTag(){return this.input.trim()!==""&&!this.tags.some(t=>t.displayName.trim().toLocaleLowerCase()===this.input.trim().toLocaleLowerCase())},statusMessage(){if(this.toAdd.length===0&&this.toRemove.length===0)return"";if(this.toAdd.length===1&&this.toRemove.length===1)return k("systemtags","{tag1} will be set and {tag2} will be removed from 1 file.","{tag1} will be set and {tag2} will be removed from {count} files.",this.nodes.length,{tag1:this.formatTagChip(this.toAdd[0]),tag2:this.formatTagChip(this.toRemove[0]),count:this.nodes.length},{escape:!1});const t=this.toAdd.map(this.formatTagChip),s=t.pop(),e=this.toRemove.map(this.formatTagChip),o=e.pop(),l=k("systemtags","{tag} will be set to 1 file.","{tag} will be set to {count} files.",this.nodes.length,{tag:s,count:this.nodes.length},{escape:!1}),n=k("systemtags","{tag} will be removed from 1 file.","{tag} will be removed from {count} files.",this.nodes.length,{tag:o,count:this.nodes.length},{escape:!1}),i=k("systemtags","{tags} and {lastTag} will be set to 1 file.","{tags} and {lastTag} will be set to {count} files.",this.nodes.length,{tags:t.join(", "),lastTag:s,count:this.nodes.length},{escape:!1}),f=k("systemtags","{tags} and {lastTag} will be removed from 1 file.","{tags} and {lastTag} will be removed from {count} files.",this.nodes.length,{tags:e.join(", "),lastTag:o,count:this.nodes.length},{escape:!1});return this.toAdd.length===1&&this.toRemove.length===0?l:this.toAdd.length===0&&this.toRemove.length===1?n:this.toAdd.length>1&&this.toRemove.length===0?i:this.toAdd.length===0&&this.toRemove.length>1?f:this.toAdd.length>1&&this.toRemove.length===1?`${i} ${n}`:this.toAdd.length===1&&this.toRemove.length>1?`${l} ${f}`:`${i} ${f}`}},beforeMount(){yt().then(t=>{this.tags=t}),this.tagList=this.nodes.reduce((t,s)=>((I(s)||[]).forEach(e=>{t[e]=(t[e]||0)+1}),t),{}),this.canEditOrCreateTag||S.debug("System tag creation is restricted to admins and the current user is not an admin")},methods:{formatTagChip(t){const s=this.$refs.chip.$el.cloneNode(!0);if(t.color){const e=this.tagListStyle(t);Object.entries(e).forEach(([o,l])=>{s.style.setProperty(o,l)})}return s.outerHTML.replace("%s",K(W.sanitize(t.displayName)))},formatTagName(t){return t.userVisible?t.userAssignable?t.displayName:y("systemtags","{displayName} (restricted)",{displayName:t.displayName}):y("systemtags","{displayName} (hidden)",{displayName:t.displayName})},onColorChange(t,s){t.color=s.replace("#",""),Kt(t)},isChecked(t){return t.displayName in this.tagList&&this.tagList[t.displayName]===this.nodes.length},isIndeterminate(t){return t.displayName in this.tagList&&this.tagList[t.displayName]!==0&&this.tagList[t.displayName]!==this.nodes.length},onCheckUpdate(t,s){s?(this.toAdd.push(t),this.toRemove=this.toRemove.filter(e=>e.id!==t.id),this.tagList[t.displayName]=this.nodes.length):(this.toRemove.push(t),this.toAdd=this.toAdd.filter(e=>e.id!==t.id),this.tagList[t.displayName]=0)},async onNewTag(){if(!this.canEditOrCreateTag){_(y("systemtags","Only admins can create new tags"));return}this.status="creating-tag";try{const t={displayName:this.input.trim(),userAssignable:!0,userVisible:!0,canAssign:!0},s=await ut(t),e=await ft(s);this.tags.push(e),this.input="",this.onCheckUpdate(e,!0),await this.$nextTick(),Array.isArray(this.$refs.tags)&&this.$refs.tags.find(o=>o.dataset.cySystemtagsPickerTag===s.toString())?.scrollIntoView({behavior:"instant",block:"center",inline:"center"})}catch(t){_(t?.message||y("systemtags","Failed to create tag"))}finally{this.status="base"}},async onSubmit(){this.status="loading",S.debug("Applying tags",{toAdd:this.toAdd,toRemove:this.toRemove});try{for(const s of this.toAdd){const{etag:e,objects:o}=await O(s,"files"),l=[...new Set([...o.map(n=>n.id).filter(Boolean),...this.nodes.map(n=>n.fileid).filter(Boolean)])];await x(s,"files",l.map(n=>({id:n,type:"files"})),e)}for(const s of this.toRemove){const{etag:e,objects:o}=await O(s,"files"),l=new Set(this.nodes.map(i=>i.fileid)),n=o.map(i=>i.id).filter((i,f,T)=>!l.has(i)&&T.indexOf(i)===f);await x(s,"files",n.map(i=>({id:i,type:"files"})),e)}}catch(s){S.error("Failed to apply tags",{error:s}),_(y("systemtags","Failed to apply tags changes")),this.status="base";return}const t=[];this.toAdd.forEach(s=>{this.nodes.forEach(e=>{const o=[...I(e)||[],s.displayName].sort((l,n)=>l.localeCompare(n,L(),{ignorePunctuation:!0}));z(e,o),t.push(e)})}),this.toRemove.forEach(s=>{this.nodes.forEach(e=>{const o=[...I(e)||[]].filter(l=>l!==s.displayName).sort((l,n)=>l.localeCompare(n,L(),{ignorePunctuation:!0}));z(e,o),t.push(e)})}),t.forEach(s=>R("systemtags:node:updated",s)),this.status="done",setTimeout(()=>{this.opened=!1,this.$emit("close",!0)},2e3)},onCancel(){this.opened=!1,this.$emit("close",null)},tagListStyle(t){if(!t.color)return{"--color-circle-icon":"var(--color-text-maxcontrast)"};const s=bt(`#${t.color}`,`#${Wt}`),e=kt(s)?"#000000":"#ffffff";return{"--color-circle-icon":"var(--color-primary-element)","--color-primary":s,"--color-primary-text":e,"--color-primary-element":s,"--color-primary-element-text":e}}}}),te={class:"systemtags-picker__input"},ee={class:"systemtags-picker__tags","data-cy-systemtags-picker-tags":""},se=["data-cy-systemtags-picker-tag"],ae={class:"systemtags-picker__tag-create-subline"},ie={class:"systemtags-picker__note"},oe=["innerHTML"];function le(t,s,e,o,l,n){const i=c("NcLoadingIcon"),f=c("CheckIcon"),T=c("NcEmptyContent"),M=c("TagIcon"),V=c("NcTextField"),B=c("NcCheckboxRadioSwitch"),U=c("CircleIcon"),D=c("CircleOutlineIcon"),G=c("PencilIcon"),v=c("NcButton"),j=c("NcColorPicker"),F=c("PlusIcon"),$=c("NcNoteCard"),H=c("NcChip"),Z=c("NcDialog");return a(),h(Z,{"data-cy-systemtags-picker":"",noClose:t.status===t.Status.LOADING,name:t.t("systemtags","Manage tags"),open:t.opened,class:ht(["systemtags-picker--"+t.status,"systemtags-picker"]),closeOnClickOutside:"",outTransition:"","onUpdate:open":t.onCancel},{actions:m(()=>[u(v,{disabled:t.status!==t.Status.BASE,variant:"tertiary","data-cy-systemtags-picker-button-cancel":"",onClick:t.onCancel},{default:m(()=>[N(p(t.t("systemtags","Cancel")),1)]),_:1},8,["disabled","onClick"]),u(v,{disabled:!t.hasChanges||t.status!==t.Status.BASE,"data-cy-systemtags-picker-button-submit":"",onClick:t.onSubmit},{default:m(()=>[N(p(t.t("systemtags","Apply")),1)]),_:1},8,["disabled","onClick"])]),default:m(()=>[t.status===t.Status.LOADING||t.status===t.Status.DONE?(a(),h(T,{key:0,name:t.t("systemtags","Applying tags changes…")},{icon:m(()=>[t.status===t.Status.LOADING?(a(),h(i,{key:0})):(a(),h(f,{key:1,fillColor:"var(--color-border-success)"}))]),_:1},8,["name"])):(a(),d(E,{key:1},[g("div",te,[u(V,{modelValue:t.input,"onUpdate:modelValue":s[0]||(s[0]=r=>t.input=r),label:t.canEditOrCreateTag?t.t("systemtags","Search or create tag"):t.t("systemtags","Search tag"),"data-cy-systemtags-picker-input":""},{default:m(()=>[u(M,{size:20})]),_:1},8,["modelValue","label"])]),g("ul",ee,[(a(!0),d(E,null,ct(t.filteredTags,r=>(a(),d("li",{key:r.id,ref_for:!0,ref:"tags","data-cy-systemtags-picker-tag":r.id,style:dt(t.tagListStyle(r)),class:"systemtags-picker__tag"},[u(B,{modelValue:t.isChecked(r),disabled:!r.canAssign,indeterminate:t.isIndeterminate(r),label:r.displayName,class:"systemtags-picker__tag-checkbox","onUpdate:modelValue":b=>t.onCheckUpdate(r,b)},{default:m(()=>[N(p(t.formatTagName(r)),1)]),_:2},1032,["modelValue","disabled","indeterminate","label","onUpdate:modelValue"]),t.canEditOrCreateTag?(a(),h(j,{key:0,"data-cy-systemtags-picker-tag-color":r.id,modelValue:`#${r.color||"000000"}`,shown:t.openedPicker===r.id,class:"systemtags-picker__tag-color","onUpdate:shown":b=>t.openedPicker=b?r.id:!1,onSubmit:b=>t.onColorChange(r,b)},{default:m(()=>[u(v,{"aria-label":t.t("systemtags","Change tag color"),variant:"tertiary"},{icon:m(()=>[r.color?(a(),h(U,{key:0,size:24,fillColor:"var(--color-circle-icon)",class:"button-color-circle"})):(a(),h(D,{key:1,size:24,fillColor:"var(--color-circle-icon)",class:"button-color-empty"})),u(G,{class:"button-color-pencil"})]),_:2},1032,["aria-label"])]),_:2},1032,["data-cy-systemtags-picker-tag-color","modelValue","shown","onUpdate:shown","onSubmit"])):C("",!0)],12,se))),128)),g("li",null,[t.canEditOrCreateTag&&t.canCreateTag?(a(),h(v,{key:0,disabled:t.status===t.Status.CREATING_TAG,alignment:"start",class:"systemtags-picker__tag-create",type:"submit",variant:"tertiary","data-cy-systemtags-picker-button-create":"",onClick:t.onNewTag},{icon:m(()=>[u(F)]),default:m(()=>[N(p(t.input.trim()),1),s[1]||(s[1]=g("br",null,null,-1)),g("span",ae,p(t.t("systemtags","Create new tag")),1)]),_:1},8,["disabled","onClick"])):C("",!0)])]),g("div",ie,[t.hasChanges?(a(),h($,{key:1,type:"info"},{default:m(()=>[g("span",{innerHTML:t.statusMessage},null,8,oe)]),_:1})):(a(),h($,{key:0,type:"info"},{default:m(()=>[N(p(t.t("systemtags","Choose tags for the selected files")),1)]),_:1}))])],64)),mt(g("div",null,[u(H,{ref:"chip",text:"%s",noClose:"",variant:"primary"},null,512)],512),[[gt,!1]])]),_:1},8,["noClose","name","open","class","onUpdate:open"])}const Pe=A(Yt,[["render",le],["__scopeId","data-v-fbaf4147"]]);export{Pe as default}; -//# sourceMappingURL=SystemTagPicker-ig025yQH.chunk.mjs.map +import{f as R,a as q,d as Q}from"./index-B-dGqfIG.chunk.mjs";import{a as _}from"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import{_ as A,l as J}from"./public-C1mLBHT3.chunk.mjs";import{t as y,g as L,e as K,p as W,a as k}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{N as X}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as Y}from"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import{P as tt,N as et}from"./Plus-DYmK9QaT.chunk.mjs";import st from"./index-BoBLp2fu.chunk.mjs";import{N as at}from"./index-BW4M2n71.chunk.mjs";import{N as it}from"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import{N as ot}from"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{N as lt}from"./mdi-Lt-19ASw.chunk.mjs";import{_ as nt}from"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import{o as a,f as d,g,t as p,h as C,m as w,b as rt,r as c,c as h,w as m,F as E,k as u,B as ct,Q as dt,j as N,L as mt,M as gt,y as ht}from"./Web-BwmPK40i.chunk.mjs";import{P as pt}from"./PencilOutline-CJ2aSuY5.chunk.mjs";import{l as S,g as O,s as x,e as I,h as z,c as ut,i as ft,f as yt,u as Ct}from"./api-Dwdrdtjg.chunk.mjs";import{e as bt,i as kt,a as Nt}from"./systemtags-init.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import"./index-BLNGy7h5.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./index-BU6wm4Hd.chunk.mjs";import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./dav-CGJ67RGS.chunk.mjs";import"./index-BYnFfAmz.chunk.mjs";import"./folder-29HuacU_-Joa_bkj_.chunk.mjs";import"./index-BDagnpAU.chunk.mjs";const At={name:"CheckCircleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},vt=["aria-hidden","aria-label"],wt=["fill","width","height"],Tt={d:"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M10 17L5 12L6.41 10.59L10 14.17L17.59 6.58L19 8L10 17Z"},_t={key:0};function Lt(t,s,e,o,l,n){return a(),d("span",w(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon check-circle-icon",role:"img",onClick:s[0]||(s[0]=i=>t.$emit("click",i))}),[(a(),d("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[g("path",Tt,[e.title?(a(),d("title",_t,p(e.title),1)):C("",!0)])],8,wt))],16,vt)}const St=A(At,[["render",Lt]]),It={name:"CircleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},$t=["aria-hidden","aria-label"],Rt=["fill","width","height"],Et={d:"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"},Ot={key:0};function xt(t,s,e,o,l,n){return a(),d("span",w(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon circle-icon",role:"img",onClick:s[0]||(s[0]=i=>t.$emit("click",i))}),[(a(),d("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[g("path",Et,[e.title?(a(),d("title",Ot,p(e.title),1)):C("",!0)])],8,Rt))],16,$t)}const zt=A(It,[["render",xt]]),Pt={name:"CircleOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Mt=["aria-hidden","aria-label"],Vt=["fill","width","height"],Bt={d:"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"},Ut={key:0};function Dt(t,s,e,o,l,n){return a(),d("span",w(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon circle-outline-icon",role:"img",onClick:s[0]||(s[0]=i=>t.$emit("click",i))}),[(a(),d("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[g("path",Bt,[e.title?(a(),d("title",Ut,p(e.title),1)):C("",!0)])],8,Vt))],16,Mt)}const Gt=A(Pt,[["render",Dt]]),jt={name:"TagOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ft=["aria-hidden","aria-label"],Ht=["fill","width","height"],Zt={d:"M21.41 11.58L12.41 2.58A2 2 0 0 0 11 2H4A2 2 0 0 0 2 4V11A2 2 0 0 0 2.59 12.42L11.59 21.42A2 2 0 0 0 13 22A2 2 0 0 0 14.41 21.41L21.41 14.41A2 2 0 0 0 22 13A2 2 0 0 0 21.41 11.58M13 20L4 11V4H11L20 13M6.5 5A1.5 1.5 0 1 1 5 6.5A1.5 1.5 0 0 1 6.5 5Z"},qt={key:0};function Qt(t,s,e,o,l,n){return a(),d("span",w(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon tag-outline-icon",role:"img",onClick:s[0]||(s[0]=i=>t.$emit("click",i))}),[(a(),d("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[g("path",Zt,[e.title?(a(),d("title",qt,p(e.title),1)):C("",!0)])],8,Ht))],16,Ft)}const Jt=A(jt,[["render",Qt]]),Kt=Q(Ct,500),Wt=getComputedStyle(document.body).getPropertyValue("--color-main-background").replace("#","")||(Nt()?"000000":"ffffff");var P=(t=>(t.BASE="base",t.LOADING="loading",t.CREATING_TAG="creating-tag",t.DONE="done",t))(P||{});const Xt=J("systemtags","restrictSystemTagsCreationToAdmin",!1),Yt=rt({name:"SystemTagPicker",components:{CheckIcon:St,CircleIcon:zt,CircleOutlineIcon:Gt,NcButton:X,NcCheckboxRadioSwitch:Y,NcChip:et,NcColorPicker:st,NcDialog:at,NcEmptyContent:it,NcLoadingIcon:ot,NcNoteCard:lt,NcTextField:nt,PencilIcon:pt,PlusIcon:tt,TagIcon:Jt},props:{nodes:{type:Array,required:!0}},emits:{close(t){return t===null||typeof t=="boolean"}},setup(){return{emit:R,Status:P,t:y,canEditOrCreateTag:!Xt||q()?.isAdmin}},data(){return{status:"base",opened:!0,openedPicker:!1,input:"",tags:[],tagList:{},toAdd:[],toRemove:[]}},computed:{sortedTags(){return[...this.tags].sort((t,s)=>t.displayName.localeCompare(s.displayName,L(),{ignorePunctuation:!0}))},filteredTags(){return this.input.trim()===""?this.sortedTags:this.sortedTags.filter(t=>t.displayName.normalize().toLowerCase().includes(this.input.normalize().toLowerCase()))},hasChanges(){return this.toAdd.length>0||this.toRemove.length>0},canCreateTag(){return this.input.trim()!==""&&!this.tags.some(t=>t.displayName.trim().toLocaleLowerCase()===this.input.trim().toLocaleLowerCase())},statusMessage(){if(this.toAdd.length===0&&this.toRemove.length===0)return"";if(this.toAdd.length===1&&this.toRemove.length===1)return k("systemtags","{tag1} will be set and {tag2} will be removed from 1 file.","{tag1} will be set and {tag2} will be removed from {count} files.",this.nodes.length,{tag1:this.formatTagChip(this.toAdd[0]),tag2:this.formatTagChip(this.toRemove[0]),count:this.nodes.length},{escape:!1});const t=this.toAdd.map(this.formatTagChip),s=t.pop(),e=this.toRemove.map(this.formatTagChip),o=e.pop(),l=k("systemtags","{tag} will be set to 1 file.","{tag} will be set to {count} files.",this.nodes.length,{tag:s,count:this.nodes.length},{escape:!1}),n=k("systemtags","{tag} will be removed from 1 file.","{tag} will be removed from {count} files.",this.nodes.length,{tag:o,count:this.nodes.length},{escape:!1}),i=k("systemtags","{tags} and {lastTag} will be set to 1 file.","{tags} and {lastTag} will be set to {count} files.",this.nodes.length,{tags:t.join(", "),lastTag:s,count:this.nodes.length},{escape:!1}),f=k("systemtags","{tags} and {lastTag} will be removed from 1 file.","{tags} and {lastTag} will be removed from {count} files.",this.nodes.length,{tags:e.join(", "),lastTag:o,count:this.nodes.length},{escape:!1});return this.toAdd.length===1&&this.toRemove.length===0?l:this.toAdd.length===0&&this.toRemove.length===1?n:this.toAdd.length>1&&this.toRemove.length===0?i:this.toAdd.length===0&&this.toRemove.length>1?f:this.toAdd.length>1&&this.toRemove.length===1?`${i} ${n}`:this.toAdd.length===1&&this.toRemove.length>1?`${l} ${f}`:`${i} ${f}`}},beforeMount(){yt().then(t=>{this.tags=t}),this.tagList=this.nodes.reduce((t,s)=>((I(s)||[]).forEach(e=>{t[e]=(t[e]||0)+1}),t),{}),this.canEditOrCreateTag||S.debug("System tag creation is restricted to admins and the current user is not an admin")},methods:{formatTagChip(t){const s=this.$refs.chip.$el.cloneNode(!0);if(t.color){const e=this.tagListStyle(t);Object.entries(e).forEach(([o,l])=>{s.style.setProperty(o,l)})}return s.outerHTML.replace("%s",K(W.sanitize(t.displayName)))},formatTagName(t){return t.userVisible?t.userAssignable?t.displayName:y("systemtags","{displayName} (restricted)",{displayName:t.displayName}):y("systemtags","{displayName} (hidden)",{displayName:t.displayName})},onColorChange(t,s){t.color=s.replace("#",""),Kt(t)},isChecked(t){return t.displayName in this.tagList&&this.tagList[t.displayName]===this.nodes.length},isIndeterminate(t){return t.displayName in this.tagList&&this.tagList[t.displayName]!==0&&this.tagList[t.displayName]!==this.nodes.length},onCheckUpdate(t,s){s?(this.toAdd.push(t),this.toRemove=this.toRemove.filter(e=>e.id!==t.id),this.tagList[t.displayName]=this.nodes.length):(this.toRemove.push(t),this.toAdd=this.toAdd.filter(e=>e.id!==t.id),this.tagList[t.displayName]=0)},async onNewTag(){if(!this.canEditOrCreateTag){_(y("systemtags","Only admins can create new tags"));return}this.status="creating-tag";try{const t={displayName:this.input.trim(),userAssignable:!0,userVisible:!0,canAssign:!0},s=await ut(t),e=await ft(s);this.tags.push(e),this.input="",this.onCheckUpdate(e,!0),await this.$nextTick(),Array.isArray(this.$refs.tags)&&this.$refs.tags.find(o=>o.dataset.cySystemtagsPickerTag===s.toString())?.scrollIntoView({behavior:"instant",block:"center",inline:"center"})}catch(t){_(t?.message||y("systemtags","Failed to create tag"))}finally{this.status="base"}},async onSubmit(){this.status="loading",S.debug("Applying tags",{toAdd:this.toAdd,toRemove:this.toRemove});try{for(const s of this.toAdd){const{etag:e,objects:o}=await O(s,"files"),l=[...new Set([...o.map(n=>n.id).filter(Boolean),...this.nodes.map(n=>n.fileid).filter(Boolean)])];await x(s,"files",l.map(n=>({id:n,type:"files"})),e)}for(const s of this.toRemove){const{etag:e,objects:o}=await O(s,"files"),l=new Set(this.nodes.map(i=>i.fileid)),n=o.map(i=>i.id).filter((i,f,T)=>!l.has(i)&&T.indexOf(i)===f);await x(s,"files",n.map(i=>({id:i,type:"files"})),e)}}catch(s){S.error("Failed to apply tags",{error:s}),_(y("systemtags","Failed to apply tags changes")),this.status="base";return}const t=[];this.toAdd.forEach(s=>{this.nodes.forEach(e=>{const o=[...I(e)||[],s.displayName].sort((l,n)=>l.localeCompare(n,L(),{ignorePunctuation:!0}));z(e,o),t.push(e)})}),this.toRemove.forEach(s=>{this.nodes.forEach(e=>{const o=[...I(e)||[]].filter(l=>l!==s.displayName).sort((l,n)=>l.localeCompare(n,L(),{ignorePunctuation:!0}));z(e,o),t.push(e)})}),t.forEach(s=>R("systemtags:node:updated",s)),this.status="done",setTimeout(()=>{this.opened=!1,this.$emit("close",!0)},2e3)},onCancel(){this.opened=!1,this.$emit("close",null)},tagListStyle(t){if(!t.color)return{"--color-circle-icon":"var(--color-text-maxcontrast)"};const s=bt(`#${t.color}`,`#${Wt}`),e=kt(s)?"#000000":"#ffffff";return{"--color-circle-icon":"var(--color-primary-element)","--color-primary":s,"--color-primary-text":e,"--color-primary-element":s,"--color-primary-element-text":e}}}}),te={class:"systemtags-picker__input"},ee={class:"systemtags-picker__tags","data-cy-systemtags-picker-tags":""},se=["data-cy-systemtags-picker-tag"],ae={class:"systemtags-picker__tag-create-subline"},ie={class:"systemtags-picker__note"},oe=["innerHTML"];function le(t,s,e,o,l,n){const i=c("NcLoadingIcon"),f=c("CheckIcon"),T=c("NcEmptyContent"),M=c("TagIcon"),V=c("NcTextField"),B=c("NcCheckboxRadioSwitch"),U=c("CircleIcon"),D=c("CircleOutlineIcon"),G=c("PencilIcon"),v=c("NcButton"),j=c("NcColorPicker"),F=c("PlusIcon"),$=c("NcNoteCard"),H=c("NcChip"),Z=c("NcDialog");return a(),h(Z,{"data-cy-systemtags-picker":"",noClose:t.status===t.Status.LOADING,name:t.t("systemtags","Manage tags"),open:t.opened,class:ht(["systemtags-picker--"+t.status,"systemtags-picker"]),closeOnClickOutside:"",outTransition:"","onUpdate:open":t.onCancel},{actions:m(()=>[u(v,{disabled:t.status!==t.Status.BASE,variant:"tertiary","data-cy-systemtags-picker-button-cancel":"",onClick:t.onCancel},{default:m(()=>[N(p(t.t("systemtags","Cancel")),1)]),_:1},8,["disabled","onClick"]),u(v,{disabled:!t.hasChanges||t.status!==t.Status.BASE,"data-cy-systemtags-picker-button-submit":"",onClick:t.onSubmit},{default:m(()=>[N(p(t.t("systemtags","Apply")),1)]),_:1},8,["disabled","onClick"])]),default:m(()=>[t.status===t.Status.LOADING||t.status===t.Status.DONE?(a(),h(T,{key:0,name:t.t("systemtags","Applying tags changes…")},{icon:m(()=>[t.status===t.Status.LOADING?(a(),h(i,{key:0})):(a(),h(f,{key:1,fillColor:"var(--color-border-success)"}))]),_:1},8,["name"])):(a(),d(E,{key:1},[g("div",te,[u(V,{modelValue:t.input,"onUpdate:modelValue":s[0]||(s[0]=r=>t.input=r),label:t.canEditOrCreateTag?t.t("systemtags","Search or create tag"):t.t("systemtags","Search tag"),"data-cy-systemtags-picker-input":""},{default:m(()=>[u(M,{size:20})]),_:1},8,["modelValue","label"])]),g("ul",ee,[(a(!0),d(E,null,ct(t.filteredTags,r=>(a(),d("li",{key:r.id,ref_for:!0,ref:"tags","data-cy-systemtags-picker-tag":r.id,style:dt(t.tagListStyle(r)),class:"systemtags-picker__tag"},[u(B,{modelValue:t.isChecked(r),disabled:!r.canAssign,indeterminate:t.isIndeterminate(r),label:r.displayName,class:"systemtags-picker__tag-checkbox","onUpdate:modelValue":b=>t.onCheckUpdate(r,b)},{default:m(()=>[N(p(t.formatTagName(r)),1)]),_:2},1032,["modelValue","disabled","indeterminate","label","onUpdate:modelValue"]),t.canEditOrCreateTag?(a(),h(j,{key:0,"data-cy-systemtags-picker-tag-color":r.id,modelValue:`#${r.color||"000000"}`,shown:t.openedPicker===r.id,class:"systemtags-picker__tag-color","onUpdate:shown":b=>t.openedPicker=b?r.id:!1,onSubmit:b=>t.onColorChange(r,b)},{default:m(()=>[u(v,{"aria-label":t.t("systemtags","Change tag color"),variant:"tertiary"},{icon:m(()=>[r.color?(a(),h(U,{key:0,size:24,fillColor:"var(--color-circle-icon)",class:"button-color-circle"})):(a(),h(D,{key:1,size:24,fillColor:"var(--color-circle-icon)",class:"button-color-empty"})),u(G,{class:"button-color-pencil"})]),_:2},1032,["aria-label"])]),_:2},1032,["data-cy-systemtags-picker-tag-color","modelValue","shown","onUpdate:shown","onSubmit"])):C("",!0)],12,se))),128)),g("li",null,[t.canEditOrCreateTag&&t.canCreateTag?(a(),h(v,{key:0,disabled:t.status===t.Status.CREATING_TAG,alignment:"start",class:"systemtags-picker__tag-create",type:"submit",variant:"tertiary","data-cy-systemtags-picker-button-create":"",onClick:t.onNewTag},{icon:m(()=>[u(F)]),default:m(()=>[N(p(t.input.trim()),1),s[1]||(s[1]=g("br",null,null,-1)),g("span",ae,p(t.t("systemtags","Create new tag")),1)]),_:1},8,["disabled","onClick"])):C("",!0)])]),g("div",ie,[t.hasChanges?(a(),h($,{key:1,type:"info"},{default:m(()=>[g("span",{innerHTML:t.statusMessage},null,8,oe)]),_:1})):(a(),h($,{key:0,type:"info"},{default:m(()=>[N(p(t.t("systemtags","Choose tags for the selected files")),1)]),_:1}))])],64)),mt(g("div",null,[u(H,{ref:"chip",text:"%s",noClose:"",variant:"primary"},null,512)],512),[[gt,!1]])]),_:1},8,["noClose","name","open","class","onUpdate:open"])}const Pe=A(Yt,[["render",le],["__scopeId","data-v-fbaf4147"]]);export{Pe as default}; +//# sourceMappingURL=SystemTagPicker-Bs6TQCBu.chunk.mjs.map diff --git a/dist/SystemTagPicker-ig025yQH.chunk.mjs.license b/dist/SystemTagPicker-Bs6TQCBu.chunk.mjs.license similarity index 100% rename from dist/SystemTagPicker-ig025yQH.chunk.mjs.license rename to dist/SystemTagPicker-Bs6TQCBu.chunk.mjs.license diff --git a/dist/SystemTagPicker-ig025yQH.chunk.mjs.map b/dist/SystemTagPicker-Bs6TQCBu.chunk.mjs.map similarity index 99% rename from dist/SystemTagPicker-ig025yQH.chunk.mjs.map rename to dist/SystemTagPicker-Bs6TQCBu.chunk.mjs.map index 54fc38e2299..92de77e9017 100644 --- a/dist/SystemTagPicker-ig025yQH.chunk.mjs.map +++ b/dist/SystemTagPicker-Bs6TQCBu.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"SystemTagPicker-ig025yQH.chunk.mjs","sources":["../node_modules/vue-material-design-icons/CheckCircle.vue","../node_modules/vue-material-design-icons/Circle.vue","../node_modules/vue-material-design-icons/CircleOutline.vue","../node_modules/vue-material-design-icons/TagOutline.vue","../build/frontend/apps/systemtags/src/components/SystemTagPicker.vue"],"sourcesContent":["\n\n","\n\n","\n\n","\n\n","\n\n\n\n\n\n\n"],"names":["_sfc_main","_hoisted_3","_createElementBlock","_mergeProps","_ctx","$props","_cache","$event","_createElementVNode","_openBlock","debounceUpdateTag","debounce","updateTag","mainBackgroundColor","isDarkModeEnabled","Status","restrictSystemTagsCreationToAdmin","loadState","defineComponent","CheckIcon","CircleIcon","CircleOutlineIcon","NcButton","NcCheckboxRadioSwitch","NcChip","NcColorPicker","NcDialog","NcEmptyContent","NcLoadingIcon","NcNoteCard","NcTextField","PencilIcon","PlusIcon","TagIcon","status","emit","t","getCurrentUser","a","b","getLanguage","tag","n","tagsAdd","lastTagAdd","tagsRemove","lastTagRemove","addStringSingular","removeStringSingular","addStringPlural","removeStringPlural","fetchTags","tags","acc","node","getNodeSystemTags","logger","chipCloneEl","style","key","value","escapeHTML","domPurify","color","checked","search","showError","payload","id","createTag","fetchTag","el","error","etag","objects","getTagObjects","ids","obj","setTagObjects","nodeFileIds","index","self","nodes","setNodeSystemTags","primaryElement","elementColor","textColor","invertTextColor","_hoisted_1","_hoisted_4","_hoisted_5","_createBlock","_component_NcDialog","_normalizeClass","_withCtx","_createVNode","_component_NcButton","_createTextVNode","_toDisplayString","_component_NcEmptyContent","_component_NcLoadingIcon","_component_CheckIcon","_Fragment","_component_NcTextField","_component_TagIcon","_hoisted_2","_renderList","_normalizeStyle","_component_NcCheckboxRadioSwitch","_component_NcColorPicker","_component_CircleIcon","_component_CircleOutlineIcon","_component_PencilIcon","_component_PlusIcon","_component_NcNoteCard","_hoisted_6","_component_NcChip"],"mappings":"6pDAoBA,MAAKA,GAAU,CACb,KAAM,kBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYC,GAAA,CAAA,EAAE,qHAAqH,iDAXjIC,EAeO,OAfPC,EAAcC,EAAA,OAAM,CACb,cAAaC,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,yCACN,KAAK,MACJ,QAAKC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAEH,EAAA,MAAK,QAAUG,CAAM,WACjCL,EAQM,MAAA,CARA,KAAMG,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACXG,EAEO,OAFPP,GAEO,CADQI,EAAA,OAAbI,EAAA,EAAAP,EAAuC,aAAhBG,EAAA,KAAK,EAAA,CAAA,6DCO/BL,GAAU,CACb,KAAM,aACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYC,GAAA,CAAA,EAAE,8EAA8E,iDAX1FC,EAeO,OAfPC,EAAcC,EAAA,OAAM,CACb,cAAaC,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,mCACN,KAAK,MACJ,QAAKC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAEH,EAAA,MAAK,QAAUG,CAAM,WACjCL,EAQM,MAAA,CARA,KAAMG,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACXG,EAEO,OAFPP,GAEO,CADQI,EAAA,OAAbI,EAAA,EAAAP,EAAuC,aAAhBG,EAAA,KAAK,EAAA,CAAA,6DCO/BL,GAAU,CACb,KAAM,oBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYC,GAAA,CAAA,EAAE,kJAAkJ,iDAX9JC,EAeO,OAfPC,EAAcC,EAAA,OAAM,CACb,cAAaC,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,2CACN,KAAK,MACJ,QAAKC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAEH,EAAA,MAAK,QAAUG,CAAM,WACjCL,EAQM,MAAA,CARA,KAAMG,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACXG,EAEO,OAFPP,GAEO,CADQI,EAAA,OAAbI,EAAA,EAAAP,EAAuC,aAAhBG,EAAA,KAAK,EAAA,CAAA,6DCO/BL,GAAU,CACb,KAAM,iBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYC,GAAA,CAAA,EAAE,yPAAyP,iDAXrQC,EAeO,OAfPC,EAAcC,EAAA,OAAM,CACb,cAAaC,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,wCACN,KAAK,MACJ,QAAKC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAEH,EAAA,MAAK,QAAUG,CAAM,WACjCL,EAQM,MAAA,CARA,KAAMG,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACXG,EAEO,OAFPP,GAEO,CADQI,EAAA,OAAbI,EAAA,EAAAP,EAAuC,aAAhBG,EAAA,KAAK,EAAA,CAAA,6DCoK9BK,GAAoBC,EAASC,GAAW,GAAG,EAC3CC,GAAsB,iBAAiB,SAAS,IAAI,EACxD,iBAAiB,yBAAyB,EAC1C,QAAQ,IAAK,EAAE,IAAMC,GAAA,EAAsB,SAAW,UAMxD,IAAKC,GAAAA,IACJA,EAAA,KAAO,OACPA,EAAA,QAAU,UACVA,EAAA,aAAe,eACfA,EAAA,KAAO,OAJHA,IAAAA,GAAA,CAAA,CAAA,EAOL,MAAMC,GAAoCC,EAAU,aAAc,oCAAqC,EAAK,EAE5GjB,GAAekB,GAAgB,CAC9B,KAAM,kBAEN,WAAY,CACX,UAAAC,GACA,WAAAC,GACA,kBAAAC,GACA,SAAAC,EACA,sBAAAC,EAEA,OAAAC,GACA,cAAAC,GACA,SAAAC,GACA,eAAAC,GACA,cAAAC,GACA,WAAAC,GAAA,YACAC,GACA,WAAAC,GACA,SAAAC,GACA,QAAAC,EAAA,EAGD,MAAO,CACN,MAAO,CACN,KAAM,MACN,SAAU,EAAA,CACX,EAGD,MAAO,CACN,MAAMC,EAAwB,CAC7B,OAAOA,IAAW,MAAQ,OAAOA,GAAW,SAC7C,CAAA,EAGD,OAAQ,CACP,MAAO,CACN,KAAAC,EACA,OAAApB,EAAA,EACAqB,EAEA,mBAAoB,CAACpB,IAAqCqB,KAAkB,OAAA,CAE9E,EAEA,MAAO,CACN,MAAO,CACN,OAAQ,OACR,OAAQ,GACR,aAAc,GAEd,MAAO,GACP,KAAM,CAAA,EACN,QAAS,CAAA,EAET,MAAO,CAAA,EACP,SAAU,CAAA,CAAC,CAEb,EAEA,SAAU,CACT,YAA0B,CACzB,MAAO,CAAC,GAAG,KAAK,IAAI,EAClB,KAAK,CAACC,EAAGC,IAAMD,EAAE,YAAY,cAAcC,EAAE,YAAaC,EAAA,EAAe,CAAE,kBAAmB,EAAA,CAAM,CAAC,CACxG,EAEA,cAA4B,CAC3B,OAAI,KAAK,MAAM,KAAA,IAAW,GAClB,KAAK,WAGN,KAAK,WACV,OAAQC,GAAQA,EAAI,YAAY,UAAA,EAAY,YAAA,EAAc,SAAS,KAAK,MAAM,YAAY,YAAA,CAAa,CAAC,CAC3G,EAEA,YAAsB,CACrB,OAAO,KAAK,MAAM,OAAS,GAAK,KAAK,SAAS,OAAS,CACxD,EAEA,cAAwB,CACvB,OAAO,KAAK,MAAM,KAAA,IAAW,IACzB,CAAC,KAAK,KAAK,KAAMA,GAAQA,EAAI,YAAY,KAAA,EAAO,kBAAA,IAAwB,KAAK,MAAM,OAAO,mBAAmB,CAClH,EAEA,eAAwB,CACvB,GAAI,KAAK,MAAM,SAAW,GAAK,KAAK,SAAS,SAAW,EAEvD,MAAO,GAGR,GAAI,KAAK,MAAM,SAAW,GAAK,KAAK,SAAS,SAAW,EACvD,OAAOC,EACN,aACA,6DACA,oEACA,KAAK,MAAM,OACX,CACC,KAAM,KAAK,cAAc,KAAK,MAAM,CAAC,CAAC,EACtC,KAAM,KAAK,cAAc,KAAK,SAAS,CAAC,CAAC,EACzC,MAAO,KAAK,MAAM,MAAA,EAEnB,CAAE,OAAQ,EAAA,CAAM,EAIlB,MAAMC,EAAU,KAAK,MAAM,IAAI,KAAK,aAAa,EAC3CC,EAAaD,EAAQ,IAAA,EACrBE,EAAa,KAAK,SAAS,IAAI,KAAK,aAAa,EACjDC,EAAgBD,EAAW,IAAA,EAE3BE,EAAoBL,EACzB,aACA,+BACA,sCACA,KAAK,MAAM,OACX,CACC,IAAKE,EACL,MAAO,KAAK,MAAM,MAAA,EAEnB,CAAE,OAAQ,EAAA,CAAM,EAGXI,EAAuBN,EAC5B,aACA,qCACA,4CACA,KAAK,MAAM,OACX,CACC,IAAKI,EACL,MAAO,KAAK,MAAM,MAAA,EAEnB,CAAE,OAAQ,EAAA,CAAM,EAGXG,EAAkBP,EACvB,aACA,8CACA,qDACA,KAAK,MAAM,OACX,CACC,KAAMC,EAAQ,KAAK,IAAI,EACvB,QAASC,EACT,MAAO,KAAK,MAAM,MAAA,EAEnB,CAAE,OAAQ,EAAA,CAAM,EAGXM,EAAqBR,EAC1B,aACA,oDACA,2DACA,KAAK,MAAM,OACX,CACC,KAAMG,EAAW,KAAK,IAAI,EAC1B,QAASC,EACT,MAAO,KAAK,MAAM,MAAA,EAEnB,CAAE,OAAQ,EAAA,CAAM,EAIjB,OAAI,KAAK,MAAM,SAAW,GAAK,KAAK,SAAS,SAAW,EAChDC,EAEJ,KAAK,MAAM,SAAW,GAAK,KAAK,SAAS,SAAW,EAChDC,EAIJ,KAAK,MAAM,OAAS,GAAK,KAAK,SAAS,SAAW,EAC9CC,EAEJ,KAAK,MAAM,SAAW,GAAK,KAAK,SAAS,OAAS,EAC9CC,EAIJ,KAAK,MAAM,OAAS,GAAK,KAAK,SAAS,SAAW,EAC9C,GAAGD,CAAe,IAAID,CAAoB,GAE9C,KAAK,MAAM,SAAW,GAAK,KAAK,SAAS,OAAS,EAC9C,GAAGD,CAAiB,IAAIG,CAAkB,GAI3C,GAAGD,CAAe,IAAIC,CAAkB,EAChD,CAAA,EAGD,aAAc,CACbC,GAAA,EAAY,KAAMC,GAAS,CAC1B,KAAK,KAAOA,CACb,CAAC,EAGD,KAAK,QAAU,KAAK,MAAM,OAAO,CAACC,EAAmBC,MACvCC,EAAkBD,CAAI,GAAK,CAAA,GACnC,QAASb,GAAQ,CACrBY,EAAIZ,CAAG,GAAKY,EAAIZ,CAAG,GAAK,GAAK,CAC9B,CAAC,EACMY,GACL,CAAA,CAAkB,EAEhB,KAAK,oBACTG,EAAO,MAAM,kFAAkF,CAEjG,EAEA,QAAS,CAER,cAAcf,EAAwB,CAErC,MAAMgB,EADO,KAAK,MAAM,KACC,IAAI,UAAU,EAAI,EAC3C,GAAIhB,EAAI,MAAO,CACd,MAAMiB,EAAQ,KAAK,aAAajB,CAAG,EACnC,OAAO,QAAQiB,CAAK,EAAE,QAAQ,CAAC,CAACC,EAAKC,CAAK,IAAM,CAC/CH,EAAY,MAAM,YAAYE,EAAKC,CAAK,CACzC,CAAC,CACF,CAEA,OADiBH,EAAY,UACb,QAAQ,KAAMI,EAAWC,EAAU,SAASrB,EAAI,WAAW,CAAC,CAAC,CAC9E,EAEA,cAAcA,EAAwB,CACrC,OAAKA,EAAI,YAIJA,EAAI,eAIFA,EAAI,YAHHL,EAAE,aAAc,6BAA8B,CAAE,YAAaK,EAAI,YAAa,EAJ9EL,EAAE,aAAc,yBAA0B,CAAE,YAAaK,EAAI,YAAa,CAQnF,EAEA,cAAcA,EAAgBsB,EAAqB,CAClDtB,EAAI,MAAQsB,EAAM,QAAQ,IAAK,EAAE,EACjCrD,GAAkB+B,CAAG,CACtB,EAEA,UAAUA,EAAyB,CAClC,OAAOA,EAAI,eAAe,KAAK,SAC3B,KAAK,QAAQA,EAAI,WAAW,IAAM,KAAK,MAAM,MAClD,EAEA,gBAAgBA,EAAyB,CACxC,OAAOA,EAAI,eAAe,KAAK,SAC3B,KAAK,QAAQA,EAAI,WAAW,IAAM,GAClC,KAAK,QAAQA,EAAI,WAAW,IAAM,KAAK,MAAM,MAClD,EAEA,cAAcA,EAAgBuB,EAAkB,CAC3CA,GACH,KAAK,MAAM,KAAKvB,CAAG,EACnB,KAAK,SAAW,KAAK,SAAS,OAAQwB,GAAWA,EAAO,KAAOxB,EAAI,EAAE,EACrE,KAAK,QAAQA,EAAI,WAAW,EAAI,KAAK,MAAM,SAE3C,KAAK,SAAS,KAAKA,CAAG,EACtB,KAAK,MAAQ,KAAK,MAAM,OAAQwB,GAAWA,EAAO,KAAOxB,EAAI,EAAE,EAC/D,KAAK,QAAQA,EAAI,WAAW,EAAI,EAElC,EAEA,MAAM,UAAW,CAChB,GAAI,CAAC,KAAK,mBAAoB,CAE7ByB,EAAU9B,EAAE,aAAc,iCAAiC,CAAC,EAC5D,MACD,CAEA,KAAK,OAAS,eACd,GAAI,CACH,MAAM+B,EAAe,CACpB,YAAa,KAAK,MAAM,KAAA,EACxB,eAAgB,GAChB,YAAa,GACb,UAAW,EAAA,EAENC,EAAK,MAAMC,GAAUF,CAAO,EAC5B1B,EAAM,MAAM6B,GAASF,CAAE,EAC7B,KAAK,KAAK,KAAK3B,CAAG,EAClB,KAAK,MAAQ,GAGb,KAAK,cAAcA,EAAK,EAAI,EAG5B,MAAM,KAAK,UAAA,EACP,MAAM,QAAQ,KAAK,MAAM,IAAI,GACf,KAAK,MAAM,KAC1B,KAAM8B,GAAoBA,EAAG,QAAQ,wBAA0BH,EAAG,SAAA,CAAU,GACpE,eAAe,CACxB,SAAU,UACV,MAAO,SACP,OAAQ,QAAA,CACR,CAEH,OAASI,EAAO,CACfN,EAAWM,GAAiB,SAAWpC,EAAE,aAAc,sBAAsB,CAAC,CAC/E,SACC,KAAK,OAAS,MACf,CACD,EAEA,MAAM,UAAW,CAChB,KAAK,OAAS,UACdoB,EAAO,MAAM,gBAAiB,CAC7B,MAAO,KAAK,MACZ,SAAU,KAAK,QAAA,CACf,EAED,GAAI,CAEH,UAAWf,KAAO,KAAK,MAAO,CAC7B,KAAM,CAAE,KAAAgC,EAAM,QAAAC,CAAA,EAAY,MAAMC,EAAclC,EAAK,OAAO,EAGpDmC,EAAM,CAAC,GAAG,IAAI,IAAI,CACvB,GAAGF,EAAQ,IAAKG,GAAQA,EAAI,EAAE,EAAE,OAAO,OAAO,EAC9C,GAAG,KAAK,MAAM,IAAKvB,GAASA,EAAK,MAAM,EAAE,OAAO,OAAO,CAAA,CACvD,CAAC,EAGF,MAAMwB,EAAcrC,EAAK,QAASmC,EAAI,IAAKR,IAAQ,CAAE,GAAAA,EAAI,KAAM,OAAA,EAAU,EAAGK,CAAI,CACjF,CAGA,UAAWhC,KAAO,KAAK,SAAU,CAChC,KAAM,CAAE,KAAAgC,EAAM,QAAAC,CAAA,EAAY,MAAMC,EAAclC,EAAK,OAAO,EAGpDsC,EAAc,IAAI,IAAI,KAAK,MAAM,IAAKzB,GAASA,EAAK,MAAM,CAAC,EAG3DsB,EAAMF,EACV,IAAKG,GAAQA,EAAI,EAAE,EACnB,OAAO,CAACT,EAAIY,EAAOC,IAAS,CAACF,EAAY,IAAIX,CAAE,GAAKa,EAAK,QAAQb,CAAE,IAAMY,CAAK,EAGhF,MAAMF,EAAcrC,EAAK,QAASmC,EAAI,IAAKR,IAAQ,CAAE,GAAAA,EAAI,KAAM,OAAA,EAAU,EAAGK,CAAI,CACjF,CACD,OAASD,EAAO,CACfhB,EAAO,MAAM,uBAAwB,CAAE,MAAAgB,CAAA,CAAO,EAC9CN,EAAU9B,EAAE,aAAc,8BAA8B,CAAC,EACzD,KAAK,OAAS,OACd,MACD,CAEA,MAAM8C,EAAQ,CAAA,EAGd,KAAK,MAAM,QAASzC,GAAQ,CAC3B,KAAK,MAAM,QAASa,GAAS,CAC5B,MAAMF,EAAO,CAAC,GAAIG,EAAkBD,CAAI,GAAK,GAAKb,EAAI,WAAW,EAC/D,KAAK,CAACH,EAAGC,IAAMD,EAAE,cAAcC,EAAGC,EAAA,EAAe,CAAE,kBAAmB,EAAA,CAAM,CAAC,EAC/E2C,EAAkB7B,EAAMF,CAAI,EAC5B8B,EAAM,KAAK5B,CAAI,CAChB,CAAC,CACF,CAAC,EAED,KAAK,SAAS,QAASb,GAAQ,CAC9B,KAAK,MAAM,QAASa,GAAS,CAC5B,MAAMF,EAAO,CAAC,GAAIG,EAAkBD,CAAI,GAAK,EAAG,EAAE,OAAQlB,GAAMA,IAAMK,EAAI,WAAW,EACnF,KAAK,CAACH,EAAGC,IAAMD,EAAE,cAAcC,EAAGC,IAAe,CAAE,kBAAmB,EAAA,CAAM,CAAC,EAC/E2C,EAAkB7B,EAAMF,CAAI,EAC5B8B,EAAM,KAAK5B,CAAI,CAChB,CAAC,CACF,CAAC,EAGD4B,EAAM,QAAS5B,GAASnB,EAAK,0BAA2BmB,CAAI,CAAC,EAE7D,KAAK,OAAS,OACd,WAAW,IAAM,CAChB,KAAK,OAAS,GACd,KAAK,MAAM,QAAS,EAAI,CACzB,EAAG,GAAI,CACR,EAEA,UAAW,CACV,KAAK,OAAS,GACd,KAAK,MAAM,QAAS,IAAI,CACzB,EAEA,aAAab,EAAwC,CAEpD,GAAI,CAACA,EAAI,MACR,MAAO,CAEN,sBAAuB,+BAAA,EAMzB,MAAM2C,EAAiBC,GAAa,IAAI5C,EAAI,KAAK,GAAI,IAAI5B,EAAmB,EAAE,EACxEyE,EAAYC,GAAgBH,CAAc,EAAI,UAAY,UAChE,MAAO,CACN,sBAAuB,+BACvB,kBAAmBA,EACnB,uBAAwBE,EACxB,0BAA2BF,EAC3B,+BAAgCE,CAAA,CAElC,CAAA,CAEF,CAAC,EA9jBOE,GAAA,CAAA,MAAM,0BAAA,MAWV,MAAM,0BACN,iCAAA,yCAyDQC,GAAA,CAAA,MAAM,uCAAA,EASVC,GAAA,CAAA,MAAM,yBAAA,0VAnGbC,EAsIWC,EAAA,CArIV,4BAAA,GACC,QAASxF,WAAWA,EAAA,OAAO,QAC3B,KAAMA,EAAA,EAAC,aAAA,aAAA,EACP,KAAMA,EAAA,OACN,MAAKyF,GAAA,CAAA,sBAA0BzF,EAAA,OAC1B,mBAAmB,CAAA,EACzB,oBAAA,GACA,cAAA,GACC,gBAAaA,EAAA,QAAA,EAAA,CAqGH,QAAO0F,EACjB,IAMW,CANXC,EAMWC,EAAA,CALT,SAAU5F,WAAWA,EAAA,OAAO,KAC7B,QAAQ,WACR,0CAAA,GACC,QAAOA,EAAA,QAAA,EAAA,WACR,IAA+B,CAAA6F,EAAAC,EAA5B9F,EAAA,EAAC,aAAA,QAAA,CAAA,EAAA,CAAA,CAAA,CAAA,iCAEL2F,EAKWC,EAAA,CAJT,SAAQ,CAAG5F,EAAA,YAAcA,EAAA,SAAWA,EAAA,OAAO,KAC5C,0CAAA,GACC,QAAOA,EAAA,QAAA,EAAA,WACR,IAA8B,CAAA6F,EAAAC,EAA3B9F,EAAA,EAAC,aAAA,OAAA,CAAA,EAAA,CAAA,CAAA,CAAA,6CAhHN,IAOiB,CANVA,WAAWA,EAAA,OAAO,SAAWA,EAAA,SAAWA,EAAA,OAAO,UADtDuF,EAOiBQ,EAAA,CAAA,IAAA,EALf,KAAM/F,EAAA,EAAC,aAAA,wBAAA,CAAA,EAAA,CACG,KAAI0F,EACd,IAAkD,CAA7B1F,EAAA,SAAWA,EAAA,OAAO,SAAAK,EAAA,EAAvCkF,EAAkDS,iBAClDT,EAA4DU,EAAA,CAAA,IAAA,EAA1C,UAAU,6BAAA,CAAA,4BAI9BnG,EAyFWoG,EAAA,CAAA,IAAA,GAAA,CAvFV9F,EAOM,MAPNgF,GAOM,CANLO,EAKcQ,EAAA,CAAA,WAJJnG,EAAA,MAAA,sBAAAE,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAH,EAAA,MAAKG,GACb,MAAOH,EAAA,mBAAqBA,EAAA,EAAC,aAAA,sBAAA,EAAyCA,EAAA,EAAC,aAAA,YAAA,EACxE,kCAAA,EAAA,EAAA,WACA,IAAsB,CAAtB2F,EAAsBS,EAAA,CAAZ,KAAM,EAAA,CAAE,CAAA,CAAA,mCAKpBhG,EAiEK,KAjELiG,GAiEK,EAAAhG,EAAA,EAAA,EA9DJP,EA0CKoG,EAAA,KAAAI,GAzCUtG,EAAA,aAAPqC,QADRvC,EA0CK,KAAA,CAxCH,IAAKuC,EAAI,GAAA,QAAA,GACV,IAAI,OACH,gCAA+BA,EAAI,GACnC,MAAKkE,GAAEvG,EAAA,aAAaqC,CAAG,CAAA,EACxB,MAAM,wBAAA,EAAA,CACNsD,EAQwBa,EAAA,CAPtB,WAAYxG,YAAUqC,CAAG,EACzB,SAAQ,CAAGA,EAAI,UACf,cAAerC,kBAAgBqC,CAAG,EAClC,MAAOA,EAAI,YACZ,MAAM,kCACL,sBAAiBlC,GAAEH,EAAA,cAAcqC,EAAKlC,CAAM,CAAA,EAAA,WAC7C,IAAwB,CAAA0F,EAAAC,EAArB9F,gBAAcqC,CAAG,CAAA,EAAA,CAAA,CAAA,CAAA,qFAKdrC,EAAA,oBAAAK,IADPkF,EAuBgBkB,EAAA,CAAA,IAAA,EArBd,sCAAqCpE,EAAI,GACzC,WAAU,IAAMA,EAAI,OAAK,QAAA,GACzB,MAAOrC,iBAAiBqC,EAAI,GAC7B,MAAM,+BACL,iBAAYlC,GAAEH,EAAA,aAAeG,EAASkC,EAAI,GAAE,GAC5C,SAAMlC,GAAEH,EAAA,cAAcqC,EAAKlC,CAAM,CAAA,EAAA,WAClC,IAcW,CAdXwF,EAcWC,EAAA,CAdA,aAAY5F,EAAA,EAAC,aAAA,kBAAA,EAAoC,QAAQ,UAAA,EAAA,CACxD,KAAI0F,EACd,IAI+B,CAHxBrD,EAAI,WADXkD,EAI+BmB,EAAA,CAAA,IAAA,EAF7B,KAAM,GACP,UAAU,2BACV,MAAM,qBAAA,CAAA,IAAArG,EAAA,EACPkF,EAI8BoB,EAAA,CAAA,IAAA,EAF5B,KAAM,GACP,UAAU,2BACV,MAAM,oBAAA,CAAA,GACPhB,EAA0CiB,EAAA,CAA9B,MAAM,qBAAA,CAAqB,CAAA,CAAA,4JAO3CxG,EAgBK,KAAA,KAAA,CAdGJ,EAAA,oBAAsBA,oBAD7BuF,EAcWK,EAAA,CAAA,IAAA,EAZT,SAAU5F,WAAWA,EAAA,OAAO,aAC7B,UAAU,QACV,MAAM,gCACN,KAAK,SACL,QAAQ,WACR,0CAAA,GACC,QAAOA,EAAA,QAAA,EAAA,CAGG,KAAI0F,EACd,IAAY,CAAZC,EAAYkB,CAAA,CAAA,CAAA,YAHb,IAAkB,CAAAhB,EAAAC,EAAf9F,QAAM,KAAA,CAAI,EAAA,CAAA,EAAAE,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAKE,EAAI,KAAA,KAAA,KAAA,EAAA,GACtBA,EAAkG,OAAlGiF,GAAkGS,EAA3C9F,EAAA,EAAC,aAAA,gBAAA,CAAA,EAAA,CAAA,CAAA,CAAA,+CAS3DI,EAQM,MARNkF,GAQM,CAPctF,kBAGnBuF,EAGauB,EAAA,CAAA,IAAA,EAHM,KAAK,MAAA,EAAA,WAEvB,IAA+B,CAA/B1G,EAA+B,OAAA,CAAzB,UAAQJ,EAAA,eAAa,KAAA,EAAA+G,EAAA,CAAA,CAAA,cAL5BxB,EAEauB,EAAA,CAAA,IAAA,EAFkB,KAAK,MAAA,EAAA,WACnC,IAA2D,CAAAjB,EAAAC,EAAxD9F,EAAA,EAAC,aAAA,oCAAA,CAAA,EAAA,CAAA,CAAA,CAAA,oBA0BPI,EAMM,MAAA,KAAA,CALLuF,EAIqBqB,EAAA,CAHpB,IAAI,OACJ,KAAK,KACL,QAAA,GACA,QAAQ,SAAA,EAAA,KAAA,GAAA,aALG,EAAK,CAAA,CAAA","x_google_ignoreList":[0,1,2,3]} \ No newline at end of file +{"version":3,"file":"SystemTagPicker-Bs6TQCBu.chunk.mjs","sources":["../node_modules/vue-material-design-icons/CheckCircle.vue","../node_modules/vue-material-design-icons/Circle.vue","../node_modules/vue-material-design-icons/CircleOutline.vue","../node_modules/vue-material-design-icons/TagOutline.vue","../build/frontend/apps/systemtags/src/components/SystemTagPicker.vue"],"sourcesContent":["\n\n","\n\n","\n\n","\n\n","\n\n\n\n\n\n\n"],"names":["_sfc_main","_hoisted_3","_createElementBlock","_mergeProps","_ctx","$props","_cache","$event","_createElementVNode","_openBlock","debounceUpdateTag","debounce","updateTag","mainBackgroundColor","isDarkModeEnabled","Status","restrictSystemTagsCreationToAdmin","loadState","defineComponent","CheckIcon","CircleIcon","CircleOutlineIcon","NcButton","NcCheckboxRadioSwitch","NcChip","NcColorPicker","NcDialog","NcEmptyContent","NcLoadingIcon","NcNoteCard","NcTextField","PencilIcon","PlusIcon","TagIcon","status","emit","t","getCurrentUser","a","b","getLanguage","tag","n","tagsAdd","lastTagAdd","tagsRemove","lastTagRemove","addStringSingular","removeStringSingular","addStringPlural","removeStringPlural","fetchTags","tags","acc","node","getNodeSystemTags","logger","chipCloneEl","style","key","value","escapeHTML","domPurify","color","checked","search","showError","payload","id","createTag","fetchTag","el","error","etag","objects","getTagObjects","ids","obj","setTagObjects","nodeFileIds","index","self","nodes","setNodeSystemTags","primaryElement","elementColor","textColor","invertTextColor","_hoisted_1","_hoisted_4","_hoisted_5","_createBlock","_component_NcDialog","_normalizeClass","_withCtx","_createVNode","_component_NcButton","_createTextVNode","_toDisplayString","_component_NcEmptyContent","_component_NcLoadingIcon","_component_CheckIcon","_Fragment","_component_NcTextField","_component_TagIcon","_hoisted_2","_renderList","_normalizeStyle","_component_NcCheckboxRadioSwitch","_component_NcColorPicker","_component_CircleIcon","_component_CircleOutlineIcon","_component_PencilIcon","_component_PlusIcon","_component_NcNoteCard","_hoisted_6","_component_NcChip"],"mappings":"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","x_google_ignoreList":[0,1,2,3]} \ No newline at end of file diff --git a/dist/SystemTagPicker-ig025yQH.chunk.mjs.map.license b/dist/SystemTagPicker-Bs6TQCBu.chunk.mjs.map.license similarity index 100% rename from dist/SystemTagPicker-ig025yQH.chunk.mjs.map.license rename to dist/SystemTagPicker-Bs6TQCBu.chunk.mjs.map.license diff --git a/dist/appstore-AppstoreBrowse-BmXPxQ1G.chunk.css b/dist/appstore-AppstoreBrowse-BmXPxQ1G.chunk.css new file mode 100644 index 00000000000..2aca6d0f61a --- /dev/null +++ b/dist/appstore-AppstoreBrowse-BmXPxQ1G.chunk.css @@ -0,0 +1 @@ +._officeSuiteSwitcherItem_1x2g7_2{flex:1;background-color:var(--color-main-background);border:2px solid var(--color-border);border-radius:var(--border-radius-large);padding:24px;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;*{cursor:pointer}&:hover{border-color:var(--color-primary-element);box-shadow:0 4px 12px #0000001a}}._officeSuiteSwitcherItem_selected_1x2g7_23{background:linear-gradient(135deg,var(--color-primary-element-light) 0%,var(--color-main-background) 100%);color:var(--color-main-text);border-color:var(--color-primary-element)}._officeSuiteSwitcherItem__header_1x2g7_29{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}._officeSuiteSwitcherItem__title_1x2g7_36{font-size:24px;font-weight:600;margin:0}._officeSuiteSwitcherItem__features_1x2g7_42{list-style:disc;padding:0;margin:0 0 1em;flex-grow:1;li{padding-block:var(--default-grid-baseline) 0;padding-inline-start:1em;line-height:1.5}}._officeSuiteSwitcherItem__link_1x2g7_55{display:inline-flex;align-items:center;gap:6px;color:var(--color-main-text);text-decoration:none;font-weight:500;margin-top:auto;&:hover{text-decoration:underline}}._officeSuiteSwitcherItem_selected_1x2g7_23 ._officeSuiteSwitcherItem__link_1x2g7_55{color:var(--color-main-text)}._officeSuiteSwitcher_1ajfj_2{padding:20px;margin-bottom:30px;h3{margin:0}p{margin:8px 0;&:first-child{font-weight:600}}}._officeSuiteSwitcher__cards_1ajfj_19{display:flex;gap:20px;max-width:1200px}._officeSuiteSwitcher__cardsItem_1ajfj_25{flex:1}._officeSuiteSwitcher__actions_1ajfj_29{margin-top:16px}._officeSuiteSwitcher__disableButton_1ajfj_33{background:transparent;border:1px solid var(--color-border);border-radius:var(--border-radius-small);padding:8px 12px;font-weight:600;color:var(--color-main-text);cursor:pointer;transition:background .15s ease,border-color .15s ease}._officeSuiteSwitcher__disableButton_1ajfj_33:disabled{opacity:.5;cursor:default}._officeSuiteSwitcher__disableButton_1ajfj_33:hover:not(:disabled){border-color:var(--color-primary-element);background:var(--color-background-dark)}@media(max-width:768px){._officeSuiteSwitcher__cards_1ajfj_19{flex-direction:column}}._appstoreBrowse_1w3np_2{margin-bottom:var(--body-container-margin)} diff --git a/dist/appstore-AppstoreBrowse-D_DYi-hc.chunk.css b/dist/appstore-AppstoreBrowse-D_DYi-hc.chunk.css deleted file mode 100644 index a90825c960c..00000000000 --- a/dist/appstore-AppstoreBrowse-D_DYi-hc.chunk.css +++ /dev/null @@ -1 +0,0 @@ -._officeSuiteSwitcherItem_1x2g7_2{flex:1;background-color:var(--color-main-background);border:2px solid var(--color-border);border-radius:var(--border-radius-large);padding:24px;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column}._officeSuiteSwitcherItem_1x2g7_2 *{cursor:pointer}._officeSuiteSwitcherItem_1x2g7_2:hover{border-color:var(--color-primary-element);box-shadow:0 4px 12px #0000001a}._officeSuiteSwitcherItem_selected_1x2g7_23{background:linear-gradient(135deg,var(--color-primary-element-light) 0%,var(--color-main-background) 100%);color:var(--color-main-text);border-color:var(--color-primary-element)}._officeSuiteSwitcherItem__header_1x2g7_29{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}._officeSuiteSwitcherItem__title_1x2g7_36{font-size:24px;font-weight:600;margin:0}._officeSuiteSwitcherItem__features_1x2g7_42{list-style:disc;padding:0;margin:0 0 1em;flex-grow:1}._officeSuiteSwitcherItem__features_1x2g7_42 li{padding-block:var(--default-grid-baseline) 0;padding-inline-start:1em;line-height:1.5}._officeSuiteSwitcherItem__link_1x2g7_55{display:inline-flex;align-items:center;gap:6px;color:var(--color-main-text);text-decoration:none;font-weight:500;margin-top:auto}._officeSuiteSwitcherItem__link_1x2g7_55:hover{text-decoration:underline}._officeSuiteSwitcherItem_selected_1x2g7_23 ._officeSuiteSwitcherItem__link_1x2g7_55{color:var(--color-main-text)}._officeSuiteSwitcher_1ajfj_2{padding:20px;margin-bottom:30px}._officeSuiteSwitcher_1ajfj_2 h3{margin:0}._officeSuiteSwitcher_1ajfj_2 p{margin:8px 0}._officeSuiteSwitcher_1ajfj_2 p:first-child{font-weight:600}._officeSuiteSwitcher__cards_1ajfj_19{display:flex;gap:20px;max-width:1200px}._officeSuiteSwitcher__cardsItem_1ajfj_25{flex:1}._officeSuiteSwitcher__actions_1ajfj_29{margin-top:16px}._officeSuiteSwitcher__disableButton_1ajfj_33{background:transparent;border:1px solid var(--color-border);border-radius:var(--border-radius-small);padding:8px 12px;font-weight:600;color:var(--color-main-text);cursor:pointer;transition:background .15s ease,border-color .15s ease}._officeSuiteSwitcher__disableButton_1ajfj_33:disabled{opacity:.5;cursor:default}._officeSuiteSwitcher__disableButton_1ajfj_33:hover:not(:disabled){border-color:var(--color-primary-element);background:var(--color-background-dark)}@media(max-width:768px){._officeSuiteSwitcher__cards_1ajfj_19{flex-direction:column}}._appstoreBrowse_1w3np_2{margin-bottom:var(--body-container-margin)} diff --git a/dist/appstore-appstore-main-C0vSpMnG.chunk.css b/dist/appstore-appstore-main-C0vSpMnG.chunk.css new file mode 100644 index 00000000000..c2c22c12b64 --- /dev/null +++ b/dist/appstore-appstore-main-C0vSpMnG.chunk.css @@ -0,0 +1 @@ +@charset "UTF-8";._DaemonSelectionDialogList_x38pt_2{max-height:350px;overflow-y:scroll;padding:2rem}._appstoreNavigation__categories_loading_1fsn2_2{flex:1;display:flex;align-items:center;justify-content:center}._appActions_lrf6h_2{display:flex;flex-direction:row;gap:calc(2 * var(--default-grid-baseline))}._appDeployDaemonTab_1xkhp_2{padding:20px;h4{font-weight:700;margin:10px auto}}.settings-markdown[data-v-cf1f9874] a{text-decoration:underline}.settings-markdown[data-v-cf1f9874] a:after{content:"↗";padding-inline:calc(var(--default-grid-baseline) / 2)}.settings-markdown[data-v-cf1f9874] pre{white-space:pre;overflow-x:auto;background-color:var(--color-background-dark);border-radius:var(--border-radius);padding:1em 1.3em;margin-bottom:1em}.settings-markdown[data-v-cf1f9874] p code{background-color:var(--color-background-dark);border-radius:var(--border-radius);padding:.1em .3em}.settings-markdown[data-v-cf1f9874] li{position:relative}.settings-markdown[data-v-cf1f9874] ul,.settings-markdown[data-v-cf1f9874] ol{padding-inline-start:10px;margin-inline-start:10px}.settings-markdown[data-v-cf1f9874] ul li{list-style-type:disc}.settings-markdown[data-v-cf1f9874] ul>li>ul>li{list-style-type:circle}.settings-markdown[data-v-cf1f9874] ul>li>ul>li ul li{list-style-type:square}.settings-markdown[data-v-cf1f9874] blockquote{padding-inline-start:1em;border-inline-start:4px solid var(--color-primary-element);color:var(--color-text-maxcontrast);margin-inline:0}._appDescriptionTab_118mz_2{padding:12px}._appDaemonBadge_1n34s_2{color:var(--color-text-maxcontrast);background-color:transparent;border:1px solid var(--color-text-maxcontrast);border-radius:var(--border-radius);display:flex;flex-direction:row;gap:6px;padding:3px 6px;width:fit-content}._appLevelBadge_q2et3_2{color:var(--color-text-maxcontrast);background-color:transparent;border:1px solid var(--color-text-maxcontrast);border-radius:var(--border-radius);display:flex;flex-direction:row;gap:var(--default-grid-baseline);padding:3px 6px;width:fit-content}._appLevelBadge__supported_q2et3_15{background-color:var(--color-success);border-color:var(--color-border-success);color:var(--color-success-text)}._badgeAppScore_1t97c_2{display:inline-flex;color:var(--color-favorite, #a08b00);>*{vertical-align:text-bottom}}._appstoreDetailsTab__badges_4x76r_2{display:flex;flex-direction:row;gap:12px}._appstoreDetailsTab__section_4x76r_8{margin-top:15px;h4{font-size:16px;font-weight:700;margin-block-end:5px}}._appstoreDetailsTab__sectionDetails_4x76r_18{color:var(--color-text-maxcontrast)}._appstoreDetailsTab__missingDependencies_4x76r_22{list-style:disc;padding-block:.5lh 0;padding-inline:1em 0}._appstoreDetailsTab__resourcesLink_4x76r_28{text-decoration:underline}._appstoreDetailsTab__resourcesItem_4x76r_32{padding-inline-start:20px;&:before{width:5px;height:5px;border-radius:100%;background-color:var(--color-main-text);content:"";float:inline-start;margin-inline-start:-13px;position:relative;top:10px}}._appReleasesTab__heading_9xawz_2{border-bottom:1px solid var(--color-border);font-size:20px}._appReleasesTab__text_9xawz_7{h4{font-size:19px}h5{font-size:17px}}._appstoreSidebar_withScreenshot_1224s_3{.app-sidebar-header__figure{background-size:cover}}._appstoreSidebar__fallbackIcon_1224s_9{width:100%;height:100%}._appstoreApp__content_1pi7x_2{padding-inline-end:var(--body-container-margin);position:relative}._appstoreApp__heading_1pi7x_7{margin-block-start:var(--app-navigation-padding);margin-inline-start:calc(var(--default-clickable-area) + var(--app-navigation-padding) * 2);min-height:var(--default-clickable-area);line-height:var(--default-clickable-area);vertical-align:center}._limitToGroupDialog__input_sofp5_2{width:100%;padding-block:1lh calc(2 * var(--default-clickable-area) + var(--default-grid-baseline))}._appIcon_mcsmb_2{display:inline-flex;justify-content:center}._appIcon__image_mcsmb_7{filter:var(--invert-if-dark);object-fit:cover;height:100%;width:100%}._appTableRow_yekky_2{height:calc(var(--default-clickable-area) + var(--default-grid-baseline))}._appTableRow_yekky_2 td{padding-block:var(--default-grid-baseline);vertical-align:middle}._appTableRow__nameCell_yekky_11{padding-inline:var(--default-grid-baseline)}._appTableRow__levelCell_yekky_16{display:flex;align-items:center;gap:var(--default-grid-baseline)}._appTableRow__versionCell_yekky_22{color:var(--color-text-maxcontrast)}._appTableRow__groupsCell_yekky_26{display:flex;gap:var(--default-grid-baseline)}._appTableRow__actionsCell_yekky_31{display:flex;gap:var(--default-grid-baseline);justify-content:end}._appTableRow__actionsCellActions_yekky_37{width:100%;justify-content:end}._appTable_ss46x_2{table-layout:fixed;width:100%}._appTable__colName_ss46x_7{width:45%}._appTable_narrow_ss46x_11 ._appTable__colName_ss46x_7{width:60%}._appTable_wide_ss46x_15 ._appTable__colName_ss46x_7{width:37%}._appTable__colSupport_ss46x_19{width:15%}._appTable_wide_ss46x_15 ._appTable__colSupport_ss46x_19{width:12%}._appTable__colActions_ss46x_27{width:25%}._appTable_wide_ss46x_15 ._appTable__colActions_ss46x_27{width:20%}._appTable_narrow_ss46x_11 ._appTable__colActions_ss46x_27{width:calc(3 * var(--default-grid-baseline) + 2 * var(--default-clickable-area))}._appstoreBundles__header_oplvy_2{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--default-clickable-area);padding-inline:var(--default-grid-baseline)}._appstoreBundles__appTable_oplvy_11:last-of-type{margin-bottom:var(--body-container-margin)} diff --git a/dist/appstore-appstore-main-fIugqNvM.chunk.css b/dist/appstore-appstore-main-fIugqNvM.chunk.css deleted file mode 100644 index 2ce1dba77e2..00000000000 --- a/dist/appstore-appstore-main-fIugqNvM.chunk.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";._DaemonSelectionDialogList_x38pt_2{max-height:350px;overflow-y:scroll;padding:2rem}._appstoreNavigation__categories_loading_1fsn2_2{flex:1;display:flex;align-items:center;justify-content:center}._appActions_lrf6h_2{display:flex;flex-direction:row;gap:calc(2 * var(--default-grid-baseline))}._appDeployDaemonTab_1xkhp_2{padding:20px}._appDeployDaemonTab_1xkhp_2 h4{font-weight:700;margin:10px auto}.settings-markdown[data-v-cf1f9874] a{text-decoration:underline}.settings-markdown[data-v-cf1f9874] a:after{content:"↗";padding-inline:calc(var(--default-grid-baseline) / 2)}.settings-markdown[data-v-cf1f9874] pre{white-space:pre;overflow-x:auto;background-color:var(--color-background-dark);border-radius:var(--border-radius);padding:1em 1.3em;margin-bottom:1em}.settings-markdown[data-v-cf1f9874] p code{background-color:var(--color-background-dark);border-radius:var(--border-radius);padding:.1em .3em}.settings-markdown[data-v-cf1f9874] li{position:relative}.settings-markdown[data-v-cf1f9874] ul,.settings-markdown[data-v-cf1f9874] ol{padding-inline-start:10px;margin-inline-start:10px}.settings-markdown[data-v-cf1f9874] ul li{list-style-type:disc}.settings-markdown[data-v-cf1f9874] ul>li>ul>li{list-style-type:circle}.settings-markdown[data-v-cf1f9874] ul>li>ul>li ul li{list-style-type:square}.settings-markdown[data-v-cf1f9874] blockquote{padding-inline-start:1em;border-inline-start:4px solid var(--color-primary-element);color:var(--color-text-maxcontrast);margin-inline:0}._appDescriptionTab_118mz_2{padding:12px}._appDaemonBadge_1n34s_2{color:var(--color-text-maxcontrast);background-color:transparent;border:1px solid var(--color-text-maxcontrast);border-radius:var(--border-radius);display:flex;flex-direction:row;gap:6px;padding:3px 6px;width:fit-content}._appLevelBadge_q2et3_2{color:var(--color-text-maxcontrast);background-color:transparent;border:1px solid var(--color-text-maxcontrast);border-radius:var(--border-radius);display:flex;flex-direction:row;gap:var(--default-grid-baseline);padding:3px 6px;width:fit-content}._appLevelBadge__supported_q2et3_15{background-color:var(--color-success);border-color:var(--color-border-success);color:var(--color-success-text)}._badgeAppScore_1t97c_2{display:inline-flex;color:var(--color-favorite, #a08b00)}._badgeAppScore_1t97c_2>*{vertical-align:text-bottom}._appstoreDetailsTab__badges_4x76r_2{display:flex;flex-direction:row;gap:12px}._appstoreDetailsTab__section_4x76r_8{margin-top:15px}._appstoreDetailsTab__section_4x76r_8 h4{font-size:16px;font-weight:700;margin-block-end:5px}._appstoreDetailsTab__sectionDetails_4x76r_18{color:var(--color-text-maxcontrast)}._appstoreDetailsTab__missingDependencies_4x76r_22{list-style:disc;padding-block:.5lh 0;padding-inline:1em 0}._appstoreDetailsTab__resourcesLink_4x76r_28{text-decoration:underline}._appstoreDetailsTab__resourcesItem_4x76r_32{padding-inline-start:20px}._appstoreDetailsTab__resourcesItem_4x76r_32:before{width:5px;height:5px;border-radius:100%;background-color:var(--color-main-text);content:"";float:inline-start;margin-inline-start:-13px;position:relative;top:10px}._appReleasesTab__heading_9xawz_2{border-bottom:1px solid var(--color-border);font-size:20px}._appReleasesTab__text_9xawz_7 h4{font-size:19px}._appReleasesTab__text_9xawz_7 h5{font-size:17px}._appstoreSidebar_withScreenshot_1224s_3 .app-sidebar-header__figure{background-size:cover}._appstoreSidebar__fallbackIcon_1224s_9{width:100%;height:100%}._appstoreApp__content_1pi7x_2{padding-inline-end:var(--body-container-margin);position:relative}._appstoreApp__heading_1pi7x_7{margin-block-start:var(--app-navigation-padding);margin-inline-start:calc(var(--default-clickable-area) + var(--app-navigation-padding) * 2);min-height:var(--default-clickable-area);line-height:var(--default-clickable-area);vertical-align:center}._limitToGroupDialog__input_sofp5_2{width:100%;padding-block:1lh calc(2 * var(--default-clickable-area) + var(--default-grid-baseline))}._appIcon_mcsmb_2{display:inline-flex;justify-content:center}._appIcon__image_mcsmb_7{filter:var(--invert-if-dark);object-fit:cover;height:100%;width:100%}._appTableRow_yekky_2{height:calc(var(--default-clickable-area) + var(--default-grid-baseline))}._appTableRow_yekky_2 td{padding-block:var(--default-grid-baseline);vertical-align:middle}._appTableRow__nameCell_yekky_11{padding-inline:var(--default-grid-baseline)}._appTableRow__levelCell_yekky_16{display:flex;align-items:center;gap:var(--default-grid-baseline)}._appTableRow__versionCell_yekky_22{color:var(--color-text-maxcontrast)}._appTableRow__groupsCell_yekky_26{display:flex;gap:var(--default-grid-baseline)}._appTableRow__actionsCell_yekky_31{display:flex;gap:var(--default-grid-baseline);justify-content:end}._appTableRow__actionsCellActions_yekky_37{width:100%;justify-content:end}._appTable_ss46x_2{table-layout:fixed;width:100%}._appTable__colName_ss46x_7{width:45%}._appTable_narrow_ss46x_11 ._appTable__colName_ss46x_7{width:60%}._appTable_wide_ss46x_15 ._appTable__colName_ss46x_7{width:37%}._appTable__colSupport_ss46x_19{width:15%}._appTable_wide_ss46x_15 ._appTable__colSupport_ss46x_19{width:12%}._appTable__colActions_ss46x_27{width:25%}._appTable_wide_ss46x_15 ._appTable__colActions_ss46x_27{width:20%}._appTable_narrow_ss46x_11 ._appTable__colActions_ss46x_27{width:calc(3 * var(--default-grid-baseline) + 2 * var(--default-clickable-area))}._appstoreBundles__header_oplvy_2{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--default-clickable-area);padding-inline:var(--default-grid-baseline)}._appstoreBundles__appTable_oplvy_11:last-of-type{margin-bottom:var(--body-container-margin)} diff --git a/dist/appstore-main.css b/dist/appstore-main.css index 1eacd239b5c..17413c56a71 100644 --- a/dist/appstore-main.css +++ b/dist/appstore-main.css @@ -1,12 +1,12 @@ /* extracted by css-entry-points-plugin */ -@import './appstore-appstore-main-fIugqNvM.chunk.css'; +@import './appstore-appstore-main-C0vSpMnG.chunk.css'; @import './common-createElementId-DhjFt1I9-C_oBIsvc.chunk.css'; @import './common-logger-D3RVzcfQ-BE3lcFW4.chunk.css'; @import './common-NcModal-DUWLRm_F-BsKc2RT9.chunk.css'; @import './common-NcContent-BhMoPROW-CuEPejA5.chunk.css'; @import './common-PencilOutline-B3DMd8SU.chunk.css'; @import './common-TrashCanOutline-BYHcrfvW.chunk.css'; -@import './common-index-980JFXIN.chunk.css'; +@import './common-index-BWhNCeJl.chunk.css'; @import './common-TrayArrowDown-CaC9_ffV.chunk.css'; @import './common-NcInputField-B1bGxYHt-BYHxARP-.chunk.css'; @import './common-index-DYA_tnKg.chunk.css'; @@ -17,7 +17,7 @@ @import './common-NcEmptyContent-CGAPqk4S-Don1d5Bd.chunk.css'; @import './common-NcPasswordField-Be5_qcfm-Crp_EMfV.chunk.css'; @import './common-NcBreadcrumbs-5gl8Syfa-CfbvucBX.chunk.css'; -@import './common-NcTextArea-Dxzj4zdb-B-B2llha.chunk.css'; +@import './common-NcTextArea-Dxzj4zdb-CzDMVgRO.chunk.css'; @import './common-NcActionSeparator-Ct2RnclR-pXJ_-D_I.chunk.css'; @import './common-NcCheckboxRadioSwitch-D8Dfv4iw-CPGkDj-p.chunk.css'; @import './common-Plus-Som-mR4B.chunk.css'; diff --git a/dist/appstore-main.mjs b/dist/appstore-main.mjs index 0b0941b7b3e..0c74bfb3cec 100644 --- a/dist/appstore-main.mjs +++ b/dist/appstore-main.mjs @@ -1,5 +1,5 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/AppstoreDiscover-WjjPyuuv.chunk.mjs'),window.OC.filePath('', '', 'dist/Web-BwmPK40i.chunk.mjs'),window.OC.filePath('', '', 'dist/public-C1mLBHT3.chunk.mjs'),window.OC.filePath('', '', 'dist/mdi-Lt-19ASw.chunk.mjs'),window.OC.filePath('', '', 'dist/logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs'),window.OC.filePath('', '', 'dist/translation-DoG5ZELJ-CFYnqluG.chunk.mjs'),window.OC.filePath('', '', 'dist/index-B-dGqfIG.chunk.mjs'),window.OC.filePath('', '', 'dist/common-createElementId-DhjFt1I9-C_oBIsvc.chunk.css'),window.OC.filePath('', '', 'dist/common-logger-D3RVzcfQ-BE3lcFW4.chunk.css'),window.OC.filePath('', '', 'dist/common-mdi-BWNFKLbC.chunk.css'),window.OC.filePath('', '', 'dist/index-DL1yHC1K-DnBG6QLJ.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BW4M2n71.chunk.mjs'),window.OC.filePath('', '', 'dist/NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcModal-DUWLRm_F-BsKc2RT9.chunk.css'),window.OC.filePath('', '', 'dist/TrashCanOutline-Cv7t-yKN.chunk.mjs'),window.OC.filePath('', '', 'dist/common-TrashCanOutline-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/common-index-DYA_tnKg.chunk.css'),window.OC.filePath('', '', 'dist/NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcEmptyContent-CGAPqk4S-Don1d5Bd.chunk.css'),window.OC.filePath('', '', 'dist/index-BLNGy7h5.chunk.mjs'),window.OC.filePath('', '', 'dist/util-Alk1iwuj.chunk.mjs'),window.OC.filePath('', '', 'dist/pinia-CLibr4cC.chunk.mjs'),window.OC.filePath('', '', 'dist/NcContent-BhMoPROW-DisoN_bw.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcContent-BhMoPROW-CuEPejA5.chunk.css'),window.OC.filePath('', '', 'dist/PencilOutline-CJ2aSuY5.chunk.mjs'),window.OC.filePath('', '', 'dist/common-PencilOutline-B3DMd8SU.chunk.css'),window.OC.filePath('', '', 'dist/NcTextArea-Dxzj4zdb-stc727hj.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BOH7nBEM.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index-980JFXIN.chunk.css'),window.OC.filePath('', '', 'dist/TrayArrowDown-BI3qCRD6.chunk.mjs'),window.OC.filePath('', '', 'dist/common-TrayArrowDown-CaC9_ffV.chunk.css'),window.OC.filePath('', '', 'dist/NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcInputField-B1bGxYHt-BYHxARP-.chunk.css'),window.OC.filePath('', '', 'dist/NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs'),window.OC.filePath('', '', 'dist/ArrowRight-DKsMJImQ.chunk.mjs'),window.OC.filePath('', '', 'dist/common-ArrowRight-vZpQWIqF.chunk.css'),window.OC.filePath('', '', 'dist/colors-BDeMBgfq-BQ_6MaUU.chunk.mjs'),window.OC.filePath('', '', 'dist/NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcUserStatusIcon-DsviB2Cr-Bq_6hmXG.chunk.css'),window.OC.filePath('', '', 'dist/NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcDateTime-b9UhLDij.chunk.css'),window.OC.filePath('', '', 'dist/common-NcAvatar-M3-CbKbq-DTVmI7NO.chunk.css'),window.OC.filePath('', '', 'dist/NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs'),window.OC.filePath('', '', 'dist/NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcPasswordField-Be5_qcfm-Crp_EMfV.chunk.css'),window.OC.filePath('', '', 'dist/NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcBreadcrumbs-5gl8Syfa-CfbvucBX.chunk.css'),window.OC.filePath('', '', 'dist/common-NcTextArea-Dxzj4zdb-B-B2llha.chunk.css'),window.OC.filePath('', '', 'dist/NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcCheckboxRadioSwitch-D8Dfv4iw-CPGkDj-p.chunk.css'),window.OC.filePath('', '', 'dist/Plus-DYmK9QaT.chunk.mjs'),window.OC.filePath('', '', 'dist/common-Plus-Som-mR4B.chunk.css'),window.OC.filePath('', '', 'dist/index-BoBLp2fu.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index-bfXBK-tQ.chunk.css'),window.OC.filePath('', '', 'dist/index-CMXcwXc6.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index--xyrXnuf.chunk.css'),window.OC.filePath('', '', 'dist/NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs'),window.OC.filePath('', '', 'dist/emoji-C8k9NUlo-rFKNlNNR.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcEmojiPicker-Bpw-68QP-ChsL0oK6.chunk.css'),window.OC.filePath('', '', 'dist/index-C_wPY1fR.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index-CpSoVYoo.chunk.css'),window.OC.filePath('', '', 'dist/index-xEyWukTf.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index-MZEZ7XGj.chunk.css'),window.OC.filePath('', '', 'dist/NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs'),window.OC.filePath('', '', 'dist/ContentCopy-BF1gBM5z.chunk.mjs'),window.OC.filePath('', '', 'dist/common-ContentCopy-D7mIRwIy.chunk.css'),window.OC.filePath('', '', 'dist/NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcUserBubble-CDQa0hGy-f2DD9EAL.chunk.css'),window.OC.filePath('', '', 'dist/index-DlyLvrtV.chunk.mjs'),window.OC.filePath('', '', 'dist/modulepreload-polyfill-BxzAKjcf.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BU6wm4Hd.chunk.mjs'),window.OC.filePath('', '', 'dist/appstore-AppstoreDiscover-D5SWaP1O.chunk.css'),window.OC.filePath('', '', 'dist/common-NcActionSeparator-Ct2RnclR-pXJ_-D_I.chunk.css'),window.OC.filePath('', '', 'dist/common-NcGuestContent-j8ai4O1K-D0718NyY.chunk.css'),window.OC.filePath('', '', 'dist/AppstoreSearch-CPzSIsIZ.chunk.mjs'),window.OC.filePath('', '', 'dist/common-AppstoreSearch-CAiP7JM1.chunk.css'),window.OC.filePath('', '', 'dist/AppstoreBrowse-DO4WaaxR.chunk.mjs'),window.OC.filePath('', '', 'dist/appstore-AppstoreBrowse-D_DYi-hc.chunk.css')])))=>i.map(i=>d[i]); -import{d as ke,c as Vt}from"./pinia-CLibr4cC.chunk.mjs";import{b as B,o as u,f as x,g as _,t as v,i as Wt,y as w,c as D,u as o,N as Xt,w as y,j as N,v as $,F as M,B as Z,k,l as E,aa as dt,p as ht,z as re,h as I,q as Me,a9 as fe,U as Yt,a as Jt,_ as oe,H as Kt,D as ea,r as ta,e as aa}from"./Web-BwmPK40i.chunk.mjs";import{t as c,p as na,g as sa}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{N as ie,v as Oe,u as _e,H as la,I as ra}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as ia,a as oa}from"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import{c as Ge,f as gt,g as pa,b as K}from"./index-B-dGqfIG.chunk.mjs";import{_ as q,l as ee}from"./public-C1mLBHT3.chunk.mjs";import{N as ca}from"./PencilOutline-CJ2aSuY5.chunk.mjs";import{_ as mt,N as L}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{c as ua,d as J,e as da,f as ha,N as ga}from"./NcTextArea-Dxzj4zdb-stc727hj.chunk.mjs";import{P as ft}from"./NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs";import{N as ma,a as fa,_ as ba}from"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import{M as ka,a as _a}from"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";/* empty css */import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import{N as Ie}from"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import{N as ya}from"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import{N as wa,a as va}from"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./index-CMXcwXc6.chunk.mjs";import{N as bt,s as kt}from"./index-BW4M2n71.chunk.mjs";import"./index-BOH7nBEM.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import{N as He}from"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import"./index-C_wPY1fR.chunk.mjs";/* empty css */import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import{J as xa,K as $a,L as Ta,M as Aa,O as Sa,P as Ra,Q as Da,R as za,S as Ia,T as Ca,U as La,w as Ea,V as Ba,D as Se,W as Pa,X as Na,Y as Ze,y as je,Z as _t,_ as qa,$ as yt,q as wt,a0 as Ma,a1 as Oa,a2 as Ga,a3 as vt,a4 as Ha,a5 as Za,a6 as xt,N as at,a7 as ja,a8 as Ua,a9 as Fa,aa as Qa,ab as Va,ac as Wa,ad as Xa,l as Ya,ae as Ja,af as Ka,v as en,ag as tn}from"./mdi-Lt-19ASw.chunk.mjs";import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./index-xEyWukTf.chunk.mjs";import{c as O}from"./index-BLNGy7h5.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import"./NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs";import"./ContentCopy-BF1gBM5z.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import{w as an,b as nn,u as sn}from"./index-DlyLvrtV.chunk.mjs";import"./modulepreload-polyfill-BxzAKjcf.chunk.mjs";import{a as be}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{a as ln,P as ye,c as Ue}from"./index-BU6wm4Hd.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";const rn={class:"app-navigation-spacer"},on=B({__name:"NcAppNavigationSpacer",setup(e){return(t,n)=>(u(),x("li",rn))}}),pn=mt(on,[["__scopeId","data-v-277fa710"]]),cn={name:"NcAppSidebarTab",inject:["registerTab","unregisterTab","getActiveTab","isTablistShown"],props:{id:{type:String,required:!0},name:{type:String,required:!0},icon:{type:String,default:""},order:{type:Number,default:0}},emits:["bottomReached","scroll"],expose:["id","name","icon","order","renderIcon"],computed:{isActive(){return this.getActiveTab()===this.id}},created(){this.registerTab(this)},beforeUnmount(){this.unregisterTab(this.id)},methods:{onScroll(e){this.$el.scrollHeight-this.$el.scrollTop===this.$el.clientHeight&&this.$emit("bottomReached",e),this.$emit("scroll",e)},renderIcon(){return this.$slots.icon?.()}}},un=["id","aria-hidden","aria-label","aria-labelledby","role","tabindex"],dn={class:"hidden-visually"};function hn(e,t,n,s,a,r){return u(),x("section",{id:`tab-${n.id}`,"aria-hidden":!r.isActive,"aria-label":r.isTablistShown()?void 0:n.name,"aria-labelledby":r.isTablistShown()?`tab-button-${n.id}`:void 0,class:w(["app-sidebar__tab",{"app-sidebar__tab--active":r.isActive}]),role:r.isTablistShown()?"tabpanel":void 0,tabindex:r.isTablistShown()?0:-1,onScroll:t[0]||(t[0]=(...l)=>r.onScroll&&r.onScroll(...l))},[_("h3",dn,v(n.name),1),Wt(e.$slots,"default",{},void 0,!0)],42,un)}const Ce=mt(cn,[["render",hn],["__scopeId","data-v-dba10798"]]),W=Object.freeze({discover:c("appstore","Discover"),installed:c("appstore","Your apps"),enabled:c("appstore","Active apps"),disabled:c("appstore","Disabled apps"),updates:c("appstore","Updates"),bundles:c("appstore","App bundles"),featured:c("appstore","Featured apps"),supported:c("appstore","Supported apps"),search:c("appstore","Search results")}),X=Object.freeze({discover:Oa,installed:Ma,enabled:wt,disabled:yt,bundles:qa,supported:_t,featured:je,updates:Ze,ai:Na,auth:Pa,customization:Se,dashboard:Ba,files:Ea,games:La,integration:Ca,monitoring:Ia,multimedia:za,office:Da,organization:Ra,search:Sa,security:Aa,social:Ta,tools:$a,workflow:xa}),Ki=["post","showcase","carousel"];ln(O);const te=Ge("apps/appstore/api/v1"),se=Object.freeze({apps:`${te}/apps`,categories:`${te}/apps/categories`,enable:`${te}/apps/enable`,disable:`${te}/apps/disable`,uninstall:`${te}/apps/uninstall`,update:`${te}/apps/update`,bundleEnable:`${te}/bundles/enable`}),we=new ft({concurrency:1});async function nt(e,t=!1,n){return we.add(async()=>{await O.post(se.enable,{appId:e,groups:n,force:t||void 0},{confirmPassword:ye.Strict})})}async function gn(e){return we.add(async()=>{await O.post(se.disable,{appId:e},{confirmPassword:ye.Lax})})}async function mn(e){return we.add(async()=>{await O.post(se.update,{appId:e},{confirmPassword:ye.Strict})})}async function fn(e){return we.add(async()=>{await O.post(se.uninstall,{appId:e},{confirmPassword:ye.Strict})})}async function bn(){const{data:e}=await O.get(se.apps);return e.ocs.data}async function kn(){const{data:e}=await O.get(se.categories);for(const t of e.ocs.data)t.icon=X[t.id]??"";return e.ocs.data}async function _n(e){return we.add(async()=>{await O.post(se.bundleEnable,{bundleId:e},{confirmPassword:ye.Strict})})}async function ge(){const{data:e}=await O.get(Ge("core/navigation/apps?format=json"));e.ocs.meta.statuscode===200&&(gt("nextcloud:app-menu.refresh",{apps:e.ocs.data}),window.dispatchEvent(new Event("resize")))}function pe(e){return e.installed||e.internal?!1:e.missingDependencies===void 0||e.missingDependencies.length===0||!e.isCompatible&&e.missingDependencies.length===1}function $t(e){return e.installed&&e.removable&&!e.active}function Tt(e){return!Rt(e)&&!Dt(e)&&At(e)&&e.isCompatible}function At(e){return!e.active&&(e.installed||pe(e))}function ve(e){return!e.active&&!e.isCompatible}function St(e){return!Rt(e)&&!Dt(e)&&e.active&&!e.internal}function yn(e){return e.update!==void 0}const wn=["filesystem","prelogin","authentication","logging","prevent_group_restriction"];function Fe(e){return!e.active&&!e.installed||!e.active&&ve(e)?!1:e.types?e.types.every(t=>!wn.includes(t)):!0}function Rt(e){return e.app_api&&(e.status.action==="init"||e.status.action==="healthcheck")}function Dt(e){return e.app_api&&e.status.action==="deploy"}const U=pa().setApp("appstore").detectUser().build(),vn=B({__name:"DaemonSelectionDialogListEntry",props:{daemon:{},isDefault:{type:Boolean}},emits:["selected"],setup(e,{emit:t}){const n=e,s=t,a=$(()=>`${n.daemon.name} - ${n.daemon.display_name}`);return(r,l)=>(u(),D(o(wa),{active:e.isDefault,counterNumber:e.daemon.exAppsCount,counterType:"highlighted",details:e.isDefault?o(c)("appstore","Default"):"",forceDisplayActions:"",name:a.value,onClick:l[0]||(l[0]=Xt(p=>s("selected"),["stop"]))},{subname:y(()=>[N(v(e.daemon.accepts_deploy_id),1)]),_:1},8,["active","counterNumber","details","name"]))}}),xn=["aria-label"],$n=B({__name:"DaemonSelectionDialogList",emits:["selected"],setup(e){const t=xe();return(n,s)=>(u(),x("ul",{class:w(n.$style.DaemonSelectionDialogList),"aria-label":o(c)("appstore","Registered Deploy daemons list")},[(u(!0),x(M,null,Z(o(t).dockerDaemons,a=>(u(),D(vn,{key:a.id,daemon:a,isDefault:o(t).defaultDaemon?.name===a.name,onSelected:r=>n.$emit("selected",a)},null,8,["daemon","isDefault","onSelected"]))),128))],10,xn))}}),Tn="_DaemonSelectionDialogList_x38pt_2",An={DaemonSelectionDialogList:Tn},Sn={$style:An},Rn=q($n,[["__cssModules",Sn]]),Dn=B({__name:"DaemonSelectionDialog",props:{app:{}},emits:["close"],setup(e){const t=xe(),n=K("/settings/admin/app_api");return(s,a)=>(u(),D(o(bt),{name:o(c)("appstore","Choose Deploy Daemon for {appName}",{appName:e.app.name}),size:"normal","onUpdate:open":a[1]||(a[1]=r=>r||s.$emit("close"))},{default:y(()=>[o(t).dockerDaemons.length===0?(u(),D(o(He),{key:0,class:"daemon-selection-list__empty-content",name:o(c)("appstore","No Deploy daemons configured"),description:o(c)("appstore","Register a custom one or setup from available templates")},{icon:y(()=>[k(o(L),{path:o(Ga)},null,8,["path"])]),action:y(()=>[k(o(ie),{href:o(n)},{default:y(()=>[N(v(o(c)("appstore","Manage Deploy daemons")),1)]),_:1},8,["href"])]),_:1},8,["name","description"])):(u(),D(Rn,{key:1,app:e.app,onSelected:a[0]||(a[0]=r=>s.$emit("close",r))},null,8,["app"]))]),_:1},8,["name"]))}});async function zn(){const{data:e}=await O.get(K("/apps/app_api/apps/list"));return e.apps}async function In(e){const{data:t}=await O.get(K(`/apps/app_api/apps/status/${e}`));return t}async function Be(e,t,n){await Ue(),await O.post(K(`/apps/app_api/apps/enable/${e.id}/${t.name}`),{deployOptions:n})}async function Cn(e){await Ue(),await O.post(K("/apps/app_api/apps/force"),{appId:e})}async function st(e){await Ue(),await O.get(K(`apps/app_api/apps/disable/${e}`))}const xe=ke("external-apps",()=>{const e=ee("appstore","appApiEnabled",!1),t=E([]),n=E(ee("appstore","appstoreExAppUpdateCount",0));let s=null;const a=E(ee("appstore","defaultDaemonConfigAccessible",!1)),r=E(ee("appstore","defaultDaemonConfig",null)),l=E([]),p=$(()=>t.value.filter(m=>m?.status?.action&&m.status.type!==""&&(m?.status?.action==="deploy"||m.status.action==="init"||m.status.action==="healthcheck")));function i(m){return t.value.find(({id:f})=>f===m)??null}async function g(m){const f=i(m);if(!f)throw new Error(`App with id ${m} not found`);f.loading=!0;try{if(l.value.length===1&&f.needsDownload)Be(f,l[0]),f.daemon=l[0];else if(f.needsDownload){const H=await kt(Dn,{app:f});if(!H)throw new Error("No daemon selected");await Be(f,H),f.daemon=H}else await Be(f,f.daemon);f.installed||(f.needsDownload=!1,f.status={type:"install",action:"deploy",init:0,deploy:0}),f.removable=!0,delete f.error,await T(m)}finally{f.loading=!1}}async function h(m){const f=i(m);if(!f)throw new Error(`App with id ${m} not found`);f.loading=!0;try{await Cn(m),await R(!0),f.active=!1}finally{f.loading=!1}}async function d(m){const f=i(m);if(!f)throw new Error(`App with id ${m} not found`);f.loading=!0;try{await st(m),f.active=!1}finally{f.loading=!1}}async function b(m){const f=i(m);if(!f)throw new Error(`App with id ${m} not found`);f.loading=!0;try{await st(m),f.active=!1,f.needsDownload=!0,f.installed=!1,f.daemon=null,f.status={},f.update!==null&&n.value--,delete f.update,delete f.error}finally{f.loading=!1}}async function S(m){const f=i(m);if(!f)throw new Error(`App with id ${m} not found`);f.loading=!0;try{await O.get(K(`/apps/app_api/apps/update/${m}`)),f.version=f.update||f.version,f.status={type:"update",action:"deploy",init:0,deploy:0},delete f.update,delete f.error,n.value--,await T(m)}catch(H){U.error("Failed to update ex app",{appId:m,error:H}),be(c("appstore","Could not update the app. Please try again later."))}finally{f.loading=!1}}async function R(m=!1){(m||!r.value||!l.value.length)&&await P(),(m||t.value.length===0)&&await Y()}return{isEnabled:e,apps:t,updateCount:n,defaultDaemon:r,dockerDaemons:l,daemonAccessible:a,getById:i,disableApp:d,enableApp:g,forceEnableApp:h,updateApp:S,uninstallApp:b,initialize:R};async function P(){try{const{data:m}=await O.get(K("/apps/app_api/daemons"));r.value=m.daemons.find(f=>f.name===m.default_daemon_config),l.value=m.daemons.filter(f=>f.accepts_deploy_id==="docker-install")}catch(m){return U.error("[app-api-store] Failed to fetch Docker daemons",{error:m}),!1}return!0}async function Y(){try{t.value=await zn()}catch(m){U.error("An error occurred while fetching apps",{error:m}),be(c("appstore","An error occurred during the request. Unable to proceed."))}}async function T(m){const f=i(m);if(!f){U.error("[app-api-store] app not found while fetching status",{appId:m});return}f.loading=!0;try{const H=await In(m);f.status=H,U.debug("[app-api-store] initializingOrDeployingApps after setAppStatus",{initializingOrDeployingApps:p}),p.value.length===0&&(U.debug("[app-api-store] Clearing interval"),clearInterval(s),s=null),f.status.error&&p.value.length===1&&(clearInterval(s),s=null)}catch(H){throw A(),H}finally{f.loading=!1}}function A(){clearInterval(s),p.value.length!==0&&(s=window.setInterval(()=>{U.debug("[app-api-store] initializingOrDeployingApps",{initializingOrDeployingApps:p});for(const m of p.value)T(m.id)},2e3))}}),j=ke("apps",()=>{const e=xe(),t=E([]),n=E([]),s=dt(ee("appstore","appstoreBundles")),a=E(!1),r=E(!1),l=$(()=>[...t.value,...e.isEnabled?e.apps:[]]);function p(T){return n.value.find(({id:A})=>A===T)??null}function i(T){return l.value.find(({id:A})=>A===T)??null}function g(T){return l.value.filter(A=>[A.category].flat().includes(T))}async function h(T,A=!1){const m=i(T);if(!m)throw new Error(`App with id ${T} not found`);if(m.active||!m.installed&&!pe(m))throw new Error(`App with id ${T} cannot be enabled`);if(!A&&ve(m))throw new Error(`App with id ${T} requires force enable`);m.loading=!0;try{m.app_api?await e.enableApp(T):await nt(T,A),A&&(m.isCompatible=!0),m.active=!0,m.installed=!0,m.removable=!0,await ge()}finally{m.loading=!1}}async function d(T){const A=i(T);if(!A)throw new Error(`App with id ${T} not found`);if(!St(A))throw new Error(`App with id ${T} cannot be disabled`);A.loading=!0;try{A.app_api?await e.disableApp(T):await gn(T),A.active=!1,A.isCompatible=A.missingDependencies===void 0||A.missingDependencies.length===0,await ge()}finally{A.loading=!1}}async function b(T){const A=i(T);if(!A)throw new Error(`App with id ${T} not found`);if(!$t(A))throw new Error(`App with id ${T} cannot be uninstalled`);A.loading=!0;try{A.app_api?await e.uninstallApp(T):await fn(T),A.active=!1,A.installed=!1,await ge()}finally{A.loading=!1}}async function S(T,A){const m=i(T);if(!m)throw new Error(`App with id ${T} not found`);if(!Fe(m))throw new Error(`App with id ${T} cannot be limited to groups`);if(!m.app_api)try{m.loading=!0,await nt(T,!1,A),m.groups=A}finally{m.loading=!1}}async function R(T){const A=s.find(m=>m.id===T);if(!A)throw new Error(`Bundle with id ${T} not found`);try{for(const m of A.appIdentifiers){const f=i(m);f.loading=!0}await _n(A.id);for(const m of A.appIdentifiers){const f=i(m);f.active=!0,f.installed=!0,f.removable=!0,await ge()}}finally{for(const m of A.appIdentifiers){const f=i(m);f.loading=!1}}}async function P(){try{r.value=!0,n.value=await kn()}catch(T){U.error("Failed to load app categories",{error:T}),be(c("appstore","Could not load app categories. Please try again later."))}finally{r.value=!1}}async function Y(){try{a.value=!0,t.value=await bn()}catch(T){U.error("Failed to load apps list",{error:T}),be(c("appstore","Could not load apps list. Please try again later."))}finally{a.value=!1}}return Y(),P(),{apps:l,bundles:s,categories:n,isLoadingApps:a,isLoadingCategories:r,disableApp:d,enableApp:h,uninstallApp:b,enableBundle:R,getAppById:i,getAppsByCategory:g,getCategoryById:p,limitAppToGroups:S}}),zt=ke("updates",()=>{const e=xe(),t=E(ee("appstore","appstoreUpdateCount",0)),n=$(()=>t.value+e.updateCount);async function s(a){const r=j().getAppById(a);if(!r)throw new Error(`App with id ${a} not found`);try{"app_api"in r&&r.app_api?await e.updateApp(a):(await mn(a),t.value=Math.max(t.value-1,0)),ge()}catch(l){U.error("Failed to update app",{appId:a,error:l}),be(c("appstore","Could not update the app. Please try again later."))}}return{updateCount:n,updateApp:s}}),It=ke("userSettings",()=>{const e=E(""),t=E(!1),n=E(!0),s=$(()=>e.value==="m"?"468px":e.value==="l"?"512px":"320px");function a(l){return{...(_e()??{}).query,grid:l??t.value?e.value||null:void 0,compatible:n.value?void 0:null}}return Oe().afterEach(l=>{r(l.query)}),{defaultGridSize:e,gridSizePx:s,isGridView:t,showIncompatible:n,getQuery:a};function r(l){t.value="grid"in l,e.value=[l.grid??""].flat()[0].toLowerCase(),n.value=!("compatible"in l)}}),Ln=B({__name:"AppstoreNavigation",setup(e){const t=ee("settings","appstoreEnabled",!0),n=j(),s=zt(),a=It(),r=$(()=>n.categories),l=$(()=>n.isLoadingCategories),p=_e(),i=Oe(),g=ht("search");ka("f",()=>{g.value?.$refs.inputElement||(gt("toggle-navigation",{open:!0}),window.setTimeout(()=>g.value?.$refs.inputElement?.focus(),400)),g.value?.$refs.inputElement?.focus()},{ctrl:!0,stop:!0,prevent:!0});const h=E("");re(()=>p.query.q,b=>{h.value=[b||""].flat()[0]},{immediate:!0}),an(h,(b,S)=>{if(b.trim()!==S.trim()){if(i.currentRoute.value.name==="apps-discover"||i.currentRoute.value.name==="apps-manage"&&p.params.category==="bundles"){i.push({name:"apps-search",query:{...p.query,q:b.trim()||void 0}});return}i.replace({...p,query:{...p.query,q:b.trim()||void 0}})}},{debounce:500});const d=$(()=>n.apps.find(({level:b})=>b===300)!==void 0);return(b,S)=>(u(),D(o(ua),{"aria-label":o(c)("appstore","Appstore categories")},{search:y(()=>[k(o(da),{ref_key:"search",ref:h,modelValue:h.value,"onUpdate:modelValue":S[0]||(S[0]=R=>h.value=R),label:o(c)("appstore","Search apps…")},null,8,["modelValue","label"])]),list:y(()=>[o(t)?(u(),D(o(J),{key:0,to:{name:"apps-discover"},name:o(W).discover},{icon:y(()=>[k(o(L),{path:o(X).discover},null,8,["path"])]),_:1},8,["name"])):I("",!0),k(o(J),{to:{name:"apps-manage",params:{category:"installed"}},name:o(W).installed},{icon:y(()=>[k(o(L),{path:o(X).installed},null,8,["path"])]),_:1},8,["name"]),k(o(J),{to:{name:"apps-manage",params:{category:"enabled"}},name:o(W).enabled},{icon:y(()=>[k(o(L),{path:o(X).enabled},null,8,["path"])]),_:1},8,["name"]),k(o(J),{to:{name:"apps-manage",params:{category:"disabled"}},name:o(W).disabled},{icon:y(()=>[k(o(L),{path:o(X).disabled},null,8,["path"])]),_:1},8,["name"]),o(s).updateCount>0?(u(),D(o(J),{key:1,to:{name:"apps-manage",params:{category:"updates"}},name:o(W).updates},{counter:y(()=>[k(o(va),{count:o(s).updateCount},null,8,["count"])]),icon:y(()=>[k(o(L),{path:o(X).updates},null,8,["path"])]),_:1},8,["name"])):I("",!0),k(o(J),{to:{name:"apps-bundles"},name:o(W).bundles},{icon:y(()=>[k(o(L),{path:o(X).bundles},null,8,["path"])]),_:1},8,["name"]),k(o(pn)),o(t)&&l.value?(u(),x("li",{key:2,class:w(b.$style.appstoreNavigation__categories_loading)},[k(o(Ie),{size:20,name:o(c)("appstore","Loading categories")},null,8,["name"])],2)):o(t)&&!l.value?(u(),x(M,{key:3},[d.value?(u(),D(o(J),{key:0,id:"app-category-supported",to:{name:"apps-category",params:{category:"supported"},query:o(a).getQuery(!0)},name:o(W).supported},{icon:y(()=>[k(o(L),{path:o(X).supported},null,8,["path"])]),_:1},8,["to","name"])):I("",!0),k(o(J),{id:"app-category-featured",to:{name:"apps-category",params:{category:"featured"},query:o(a).getQuery(!0)},name:o(W).featured},{icon:y(()=>[k(o(L),{path:o(X).featured},null,8,["path"])]),_:1},8,["to","name"]),(u(!0),x(M,null,Z(r.value,R=>(u(),D(o(J),{id:`app-category-${R.id}`,key:R.id,name:R.displayName,to:{name:"apps-category",params:{category:R.id},query:o(a).getQuery(!0)}},{icon:y(()=>[k(o(L),{path:R.icon},null,8,["path"])]),_:2},1032,["id","name","to"]))),128))],64)):I("",!0)]),_:1},8,["aria-label"]))}}),En="_appstoreNavigation__categories_loading_1fsn2_2",Bn={appstoreNavigation__categories_loading:En},Pn={$style:Bn},Nn=q(Ln,[["__cssModules",Pn]]),qn=B({__name:"AppActions",props:{app:{},actions:{},maxInlineActions:{default:1},iconOnly:{type:Boolean}},setup(e){const t=$(()=>e.actions.length<=e.maxInlineActions?e.actions:e.actions.filter(s=>s.inline!==!1).slice(0,e.maxInlineActions)),n=$(()=>e.actions.filter(s=>!t.value.includes(s)));return(s,a)=>(u(),x("div",{class:w(s.$style.appActions)},[(u(!0),x(M,null,Z(t.value,r=>(u(),D(o(ie),{key:r.id,ariaLabel:e.iconOnly?r.label(e.app):void 0,title:e.iconOnly?r.label(e.app):void 0,variant:r.variant,href:"href"in r?r.href(e.app):void 0,to:"to"in r?r.to(e.app):void 0,target:"href"in r?"_blank":void 0,onClick:l=>"callback"in r&&r.callback(e.app)},Me({icon:y(()=>[k(o(L),{path:r.icon},null,8,["path"])]),_:2},[e.iconOnly?void 0:{name:"default",fn:y(()=>[N(v(r.label(e.app)),1)]),key:"0"}]),1032,["ariaLabel","title","variant","href","to","target","onClick"]))),128)),k(o(_a),{forceMenu:""},{default:y(()=>[(u(!0),x(M,null,Z(n.value,r=>(u(),x(M,null,["callback"in r?(u(),D(o(ca),{key:"callback-"+r.id,closeAfterClick:"",variant:r.variant,onClick:l=>r.callback(e.app)},{icon:y(()=>[k(o(L),{path:r.icon},null,8,["path"])]),default:y(()=>[N(" "+v(r.label(e.app)),1)]),_:2},1032,["variant","onClick"])):"href"in r?(u(),D(o(ma),{key:"link-"+r.id,closeAfterClick:"",variant:r.variant,href:r.href(e.app)},{icon:y(()=>[k(o(L),{path:r.icon},null,8,["path"])]),default:y(()=>[N(" "+v(r.label(e.app)),1)]),_:2},1032,["variant","href"])):(u(),D(o(fa),{key:"route-"+r.id,closeAfterClick:"",variant:r.variant,to:r.to(e.app)},{icon:y(()=>[k(o(L),{path:r.icon},null,8,["path"])]),default:y(()=>[N(" "+v(r.label(e.app)),1)]),_:2},1032,["variant","to"]))],64))),256))]),_:1})],2))}}),Mn="_appActions_lrf6h_2",On={appActions:Mn},Gn={$style:On},Ct=q(qn,[["__cssModules",Gn]]),Hn=B({__name:"AppDeployDaemonTab",props:{app:{}},setup(e){const t=E(e.app?.daemon?.deploy_config?.computeDevice?.id!=="cpu"||!1);return(n,s)=>e.app?.daemon?(u(),D(o(Ce),{key:0,id:"daemon",name:o(c)("appstore","Daemon"),order:5},{icon:y(()=>[k(o(L),{path:o(vt),size:24},null,8,["path"])]),default:y(()=>[_("div",{class:w(n.$style.appDeployDaemonTab)},[_("h4",null,v(o(c)("appstore","Deploy Daemon")),1),_("p",null,[_("b",null,v(o(c)("appstore","Type")),1),N(": "+v(e.app?.daemon.accepts_deploy_id),1)]),_("p",null,[_("b",null,v(o(c)("appstore","Name")),1),N(": "+v(e.app?.daemon.name),1)]),_("p",null,[_("b",null,v(o(c)("appstore","Display Name")),1),N(": "+v(e.app?.daemon.display_name),1)]),_("p",null,[_("b",null,v(o(c)("appstore","GPUs support")),1),N(": "+v(t.value),1)]),_("p",null,[_("b",null,v(o(c)("appstore","Compute device")),1),N(": "+v(e.app?.daemon?.deploy_config?.computeDevice?.label),1)])],2)]),_:1},8,["name"])):I("",!0)}}),Zn="_appDeployDaemonTab_1xkhp_2",jn={appDeployDaemonTab:Zn},Un={$style:jn},Fn=q(Hn,[["__cssModules",Un]]);function Qe(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var le=Qe();function lt(e){le=e}var ne={exec:()=>null};function z(e,t=""){let n=typeof e=="string"?e:e.source,s={replace:(a,r)=>{let l=typeof r=="string"?r:r.source;return l=l.replace(G.caret,"$1"),n=n.replace(a,l),s},getRegex:()=>new RegExp(n,t)};return s}var Qn=(()=>{try{return!!new RegExp("(?<=1)(?/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}>`)},Vn=/^(?:[ \t]*(?:\n|$))+/,Wn=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Xn=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,$e=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Yn=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Ve=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Lt=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Et=z(Lt).replace(/bull/g,Ve).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),Jn=z(Lt).replace(/bull/g,Ve).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),We=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Kn=/^[^\n]+/,Xe=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,es=z(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Xe).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),ts=z(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Ve).getRegex(),Le="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Ye=/|$))/,as=z("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Ye).replace("tag",Le).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Bt=z(We).replace("hr",$e).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Le).getRegex(),ns=z(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Bt).getRegex(),Je={blockquote:ns,code:Wn,def:es,fences:Xn,heading:Yn,hr:$e,html:as,lheading:Et,list:ts,newline:Vn,paragraph:Bt,table:ne,text:Kn},rt=z("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",$e).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Le).getRegex(),ss={...Je,lheading:Jn,table:rt,paragraph:z(We).replace("hr",$e).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",rt).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Le).getRegex()},ls={...Je,html:z(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Ye).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:ne,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:z(We).replace("hr",$e).replace("heading",` *#{1,6} *[^ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/AppstoreDiscover-_AsCdJWP.chunk.mjs'),window.OC.filePath('', '', 'dist/Web-BwmPK40i.chunk.mjs'),window.OC.filePath('', '', 'dist/public-C1mLBHT3.chunk.mjs'),window.OC.filePath('', '', 'dist/mdi-Lt-19ASw.chunk.mjs'),window.OC.filePath('', '', 'dist/logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs'),window.OC.filePath('', '', 'dist/translation-DoG5ZELJ-CFYnqluG.chunk.mjs'),window.OC.filePath('', '', 'dist/index-B-dGqfIG.chunk.mjs'),window.OC.filePath('', '', 'dist/common-createElementId-DhjFt1I9-C_oBIsvc.chunk.css'),window.OC.filePath('', '', 'dist/common-logger-D3RVzcfQ-BE3lcFW4.chunk.css'),window.OC.filePath('', '', 'dist/common-mdi-BWNFKLbC.chunk.css'),window.OC.filePath('', '', 'dist/index-DL1yHC1K-BJ_TsAjb.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BW4M2n71.chunk.mjs'),window.OC.filePath('', '', 'dist/NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcModal-DUWLRm_F-BsKc2RT9.chunk.css'),window.OC.filePath('', '', 'dist/TrashCanOutline-Cv7t-yKN.chunk.mjs'),window.OC.filePath('', '', 'dist/common-TrashCanOutline-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/common-index-DYA_tnKg.chunk.css'),window.OC.filePath('', '', 'dist/NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcEmptyContent-CGAPqk4S-Don1d5Bd.chunk.css'),window.OC.filePath('', '', 'dist/index-BLNGy7h5.chunk.mjs'),window.OC.filePath('', '', 'dist/util-Alk1iwuj.chunk.mjs'),window.OC.filePath('', '', 'dist/pinia-CLibr4cC.chunk.mjs'),window.OC.filePath('', '', 'dist/NcContent-BhMoPROW-DisoN_bw.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcContent-BhMoPROW-CuEPejA5.chunk.css'),window.OC.filePath('', '', 'dist/PencilOutline-CJ2aSuY5.chunk.mjs'),window.OC.filePath('', '', 'dist/common-PencilOutline-B3DMd8SU.chunk.css'),window.OC.filePath('', '', 'dist/NcTextArea-Dxzj4zdb-BPZd41PF.chunk.mjs'),window.OC.filePath('', '', 'dist/index-dqLzhRZM.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index-BWhNCeJl.chunk.css'),window.OC.filePath('', '', 'dist/TrayArrowDown-BI3qCRD6.chunk.mjs'),window.OC.filePath('', '', 'dist/common-TrayArrowDown-CaC9_ffV.chunk.css'),window.OC.filePath('', '', 'dist/NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcInputField-B1bGxYHt-BYHxARP-.chunk.css'),window.OC.filePath('', '', 'dist/NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs'),window.OC.filePath('', '', 'dist/ArrowRight-DKsMJImQ.chunk.mjs'),window.OC.filePath('', '', 'dist/common-ArrowRight-vZpQWIqF.chunk.css'),window.OC.filePath('', '', 'dist/colors-BDeMBgfq-BQ_6MaUU.chunk.mjs'),window.OC.filePath('', '', 'dist/NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcUserStatusIcon-DsviB2Cr-Bq_6hmXG.chunk.css'),window.OC.filePath('', '', 'dist/NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcDateTime-b9UhLDij.chunk.css'),window.OC.filePath('', '', 'dist/common-NcAvatar-M3-CbKbq-DTVmI7NO.chunk.css'),window.OC.filePath('', '', 'dist/NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs'),window.OC.filePath('', '', 'dist/NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcPasswordField-Be5_qcfm-Crp_EMfV.chunk.css'),window.OC.filePath('', '', 'dist/NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcBreadcrumbs-5gl8Syfa-CfbvucBX.chunk.css'),window.OC.filePath('', '', 'dist/common-NcTextArea-Dxzj4zdb-CzDMVgRO.chunk.css'),window.OC.filePath('', '', 'dist/NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcCheckboxRadioSwitch-D8Dfv4iw-CPGkDj-p.chunk.css'),window.OC.filePath('', '', 'dist/Plus-DYmK9QaT.chunk.mjs'),window.OC.filePath('', '', 'dist/common-Plus-Som-mR4B.chunk.css'),window.OC.filePath('', '', 'dist/index-BoBLp2fu.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index-bfXBK-tQ.chunk.css'),window.OC.filePath('', '', 'dist/index-CQct0mOs.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index--xyrXnuf.chunk.css'),window.OC.filePath('', '', 'dist/NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs'),window.OC.filePath('', '', 'dist/emoji-C8k9NUlo-rFKNlNNR.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcEmojiPicker-Bpw-68QP-ChsL0oK6.chunk.css'),window.OC.filePath('', '', 'dist/index-BrjNu3x_.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index-CpSoVYoo.chunk.css'),window.OC.filePath('', '', 'dist/index-CcOuN-F7.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index-MZEZ7XGj.chunk.css'),window.OC.filePath('', '', 'dist/NcSelectTags-D7qWNjXa-gqJ9LLZU.chunk.mjs'),window.OC.filePath('', '', 'dist/ContentCopy-BF1gBM5z.chunk.mjs'),window.OC.filePath('', '', 'dist/common-ContentCopy-D7mIRwIy.chunk.css'),window.OC.filePath('', '', 'dist/NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcUserBubble-CDQa0hGy-f2DD9EAL.chunk.css'),window.OC.filePath('', '', 'dist/index-DlyLvrtV.chunk.mjs'),window.OC.filePath('', '', 'dist/modulepreload-polyfill-BxzAKjcf.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BU6wm4Hd.chunk.mjs'),window.OC.filePath('', '', 'dist/appstore-AppstoreDiscover-D5SWaP1O.chunk.css'),window.OC.filePath('', '', 'dist/common-NcActionSeparator-Ct2RnclR-pXJ_-D_I.chunk.css'),window.OC.filePath('', '', 'dist/common-NcGuestContent-j8ai4O1K-D0718NyY.chunk.css'),window.OC.filePath('', '', 'dist/AppstoreSearch-CZQ7JcU9.chunk.mjs'),window.OC.filePath('', '', 'dist/common-AppstoreSearch-B0Bi-bRK.chunk.css'),window.OC.filePath('', '', 'dist/AppstoreBrowse-BPyqEF5v.chunk.mjs'),window.OC.filePath('', '', 'dist/appstore-AppstoreBrowse-BmXPxQ1G.chunk.css')])))=>i.map(i=>d[i]); +import{d as ke,c as Vt}from"./pinia-CLibr4cC.chunk.mjs";import{b as B,o as u,f as x,g as _,t as v,i as Wt,y as w,c as D,u as o,N as Xt,w as y,j as N,v as $,F as M,B as Z,k,l as E,aa as dt,p as ht,z as re,h as I,q as Me,a9 as fe,U as Yt,a as Jt,_ as oe,H as Kt,D as ea,r as ta,e as aa}from"./Web-BwmPK40i.chunk.mjs";import{t as c,p as na,g as sa}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{N as ie,v as Oe,u as _e,H as la,I as ra}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as ia,a as oa}from"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import{c as Ge,f as gt,g as pa,b as K}from"./index-B-dGqfIG.chunk.mjs";import{_ as q,l as ee}from"./public-C1mLBHT3.chunk.mjs";import{N as ca}from"./PencilOutline-CJ2aSuY5.chunk.mjs";import{_ as mt,N as L}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{c as ua,d as J,e as da,f as ha,N as ga}from"./NcTextArea-Dxzj4zdb-BPZd41PF.chunk.mjs";import{P as ft}from"./NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs";import{N as ma,a as fa,_ as ba}from"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import{M as ka,a as _a}from"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";/* empty css */import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import{N as Ie}from"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import{N as ya}from"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import{N as wa,a as va}from"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./index-CQct0mOs.chunk.mjs";import{N as bt,s as kt}from"./index-BW4M2n71.chunk.mjs";import"./index-dqLzhRZM.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import{N as He}from"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import"./index-BrjNu3x_.chunk.mjs";/* empty css */import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import{J as xa,K as $a,L as Ta,M as Aa,O as Sa,P as Ra,Q as Da,R as za,S as Ia,T as Ca,U as La,w as Ea,V as Ba,D as Se,W as Pa,X as Na,Y as Ze,y as je,Z as _t,_ as qa,$ as yt,q as wt,a0 as Ma,a1 as Oa,a2 as Ga,a3 as vt,a4 as Ha,a5 as Za,a6 as xt,N as at,a7 as ja,a8 as Ua,a9 as Fa,aa as Qa,ab as Va,ac as Wa,ad as Xa,l as Ya,ae as Ja,af as Ka,v as en,ag as tn}from"./mdi-Lt-19ASw.chunk.mjs";import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./index-CcOuN-F7.chunk.mjs";import{c as O}from"./index-BLNGy7h5.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import"./NcSelectTags-D7qWNjXa-gqJ9LLZU.chunk.mjs";import"./ContentCopy-BF1gBM5z.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import{w as an,b as nn,u as sn}from"./index-DlyLvrtV.chunk.mjs";import"./modulepreload-polyfill-BxzAKjcf.chunk.mjs";import{a as be}from"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import{a as ln,P as ye,c as Ue}from"./index-BU6wm4Hd.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";const rn={class:"app-navigation-spacer"},on=B({__name:"NcAppNavigationSpacer",setup(e){return(t,n)=>(u(),x("li",rn))}}),pn=mt(on,[["__scopeId","data-v-277fa710"]]),cn={name:"NcAppSidebarTab",inject:["registerTab","unregisterTab","getActiveTab","isTablistShown"],props:{id:{type:String,required:!0},name:{type:String,required:!0},icon:{type:String,default:""},order:{type:Number,default:0}},emits:["bottomReached","scroll"],expose:["id","name","icon","order","renderIcon"],computed:{isActive(){return this.getActiveTab()===this.id}},created(){this.registerTab(this)},beforeUnmount(){this.unregisterTab(this.id)},methods:{onScroll(e){this.$el.scrollHeight-this.$el.scrollTop===this.$el.clientHeight&&this.$emit("bottomReached",e),this.$emit("scroll",e)},renderIcon(){return this.$slots.icon?.()}}},un=["id","aria-hidden","aria-label","aria-labelledby","role","tabindex"],dn={class:"hidden-visually"};function hn(e,t,n,s,a,r){return u(),x("section",{id:`tab-${n.id}`,"aria-hidden":!r.isActive,"aria-label":r.isTablistShown()?void 0:n.name,"aria-labelledby":r.isTablistShown()?`tab-button-${n.id}`:void 0,class:w(["app-sidebar__tab",{"app-sidebar__tab--active":r.isActive}]),role:r.isTablistShown()?"tabpanel":void 0,tabindex:r.isTablistShown()?0:-1,onScroll:t[0]||(t[0]=(...l)=>r.onScroll&&r.onScroll(...l))},[_("h3",dn,v(n.name),1),Wt(e.$slots,"default",{},void 0,!0)],42,un)}const Ce=mt(cn,[["render",hn],["__scopeId","data-v-dba10798"]]),W=Object.freeze({discover:c("appstore","Discover"),installed:c("appstore","Your apps"),enabled:c("appstore","Active apps"),disabled:c("appstore","Disabled apps"),updates:c("appstore","Updates"),bundles:c("appstore","App bundles"),featured:c("appstore","Featured apps"),supported:c("appstore","Supported apps"),search:c("appstore","Search results")}),X=Object.freeze({discover:Oa,installed:Ma,enabled:wt,disabled:yt,bundles:qa,supported:_t,featured:je,updates:Ze,ai:Na,auth:Pa,customization:Se,dashboard:Ba,files:Ea,games:La,integration:Ca,monitoring:Ia,multimedia:za,office:Da,organization:Ra,search:Sa,security:Aa,social:Ta,tools:$a,workflow:xa}),Ki=["post","showcase","carousel"];ln(O);const te=Ge("apps/appstore/api/v1"),se=Object.freeze({apps:`${te}/apps`,categories:`${te}/apps/categories`,enable:`${te}/apps/enable`,disable:`${te}/apps/disable`,uninstall:`${te}/apps/uninstall`,update:`${te}/apps/update`,bundleEnable:`${te}/bundles/enable`}),we=new ft({concurrency:1});async function nt(e,t=!1,n){return we.add(async()=>{await O.post(se.enable,{appId:e,groups:n,force:t||void 0},{confirmPassword:ye.Strict})})}async function gn(e){return we.add(async()=>{await O.post(se.disable,{appId:e},{confirmPassword:ye.Lax})})}async function mn(e){return we.add(async()=>{await O.post(se.update,{appId:e},{confirmPassword:ye.Strict})})}async function fn(e){return we.add(async()=>{await O.post(se.uninstall,{appId:e},{confirmPassword:ye.Strict})})}async function bn(){const{data:e}=await O.get(se.apps);return e.ocs.data}async function kn(){const{data:e}=await O.get(se.categories);for(const t of e.ocs.data)t.icon=X[t.id]??"";return e.ocs.data}async function _n(e){return we.add(async()=>{await O.post(se.bundleEnable,{bundleId:e},{confirmPassword:ye.Strict})})}async function ge(){const{data:e}=await O.get(Ge("core/navigation/apps?format=json"));e.ocs.meta.statuscode===200&&(gt("nextcloud:app-menu.refresh",{apps:e.ocs.data}),window.dispatchEvent(new Event("resize")))}function pe(e){return e.installed||e.internal?!1:e.missingDependencies===void 0||e.missingDependencies.length===0||!e.isCompatible&&e.missingDependencies.length===1}function $t(e){return e.installed&&e.removable&&!e.active}function Tt(e){return!Rt(e)&&!Dt(e)&&At(e)&&e.isCompatible}function At(e){return!e.active&&(e.installed||pe(e))}function ve(e){return!e.active&&!e.isCompatible}function St(e){return!Rt(e)&&!Dt(e)&&e.active&&!e.internal}function yn(e){return e.update!==void 0}const wn=["filesystem","prelogin","authentication","logging","prevent_group_restriction"];function Fe(e){return!e.active&&!e.installed||!e.active&&ve(e)?!1:e.types?e.types.every(t=>!wn.includes(t)):!0}function Rt(e){return e.app_api&&(e.status.action==="init"||e.status.action==="healthcheck")}function Dt(e){return e.app_api&&e.status.action==="deploy"}const U=pa().setApp("appstore").detectUser().build(),vn=B({__name:"DaemonSelectionDialogListEntry",props:{daemon:{},isDefault:{type:Boolean}},emits:["selected"],setup(e,{emit:t}){const n=e,s=t,a=$(()=>`${n.daemon.name} - ${n.daemon.display_name}`);return(r,l)=>(u(),D(o(wa),{active:e.isDefault,counterNumber:e.daemon.exAppsCount,counterType:"highlighted",details:e.isDefault?o(c)("appstore","Default"):"",forceDisplayActions:"",name:a.value,onClick:l[0]||(l[0]=Xt(p=>s("selected"),["stop"]))},{subname:y(()=>[N(v(e.daemon.accepts_deploy_id),1)]),_:1},8,["active","counterNumber","details","name"]))}}),xn=["aria-label"],$n=B({__name:"DaemonSelectionDialogList",emits:["selected"],setup(e){const t=xe();return(n,s)=>(u(),x("ul",{class:w(n.$style.DaemonSelectionDialogList),"aria-label":o(c)("appstore","Registered Deploy daemons list")},[(u(!0),x(M,null,Z(o(t).dockerDaemons,a=>(u(),D(vn,{key:a.id,daemon:a,isDefault:o(t).defaultDaemon?.name===a.name,onSelected:r=>n.$emit("selected",a)},null,8,["daemon","isDefault","onSelected"]))),128))],10,xn))}}),Tn="_DaemonSelectionDialogList_x38pt_2",An={DaemonSelectionDialogList:Tn},Sn={$style:An},Rn=q($n,[["__cssModules",Sn]]),Dn=B({__name:"DaemonSelectionDialog",props:{app:{}},emits:["close"],setup(e){const t=xe(),n=K("/settings/admin/app_api");return(s,a)=>(u(),D(o(bt),{name:o(c)("appstore","Choose Deploy Daemon for {appName}",{appName:e.app.name}),size:"normal","onUpdate:open":a[1]||(a[1]=r=>r||s.$emit("close"))},{default:y(()=>[o(t).dockerDaemons.length===0?(u(),D(o(He),{key:0,class:"daemon-selection-list__empty-content",name:o(c)("appstore","No Deploy daemons configured"),description:o(c)("appstore","Register a custom one or setup from available templates")},{icon:y(()=>[k(o(L),{path:o(Ga)},null,8,["path"])]),action:y(()=>[k(o(ie),{href:o(n)},{default:y(()=>[N(v(o(c)("appstore","Manage Deploy daemons")),1)]),_:1},8,["href"])]),_:1},8,["name","description"])):(u(),D(Rn,{key:1,app:e.app,onSelected:a[0]||(a[0]=r=>s.$emit("close",r))},null,8,["app"]))]),_:1},8,["name"]))}});async function zn(){const{data:e}=await O.get(K("/apps/app_api/apps/list"));return e.apps}async function In(e){const{data:t}=await O.get(K(`/apps/app_api/apps/status/${e}`));return t}async function Be(e,t,n){await Ue(),await O.post(K(`/apps/app_api/apps/enable/${e.id}/${t.name}`),{deployOptions:n})}async function Cn(e){await Ue(),await O.post(K("/apps/app_api/apps/force"),{appId:e})}async function st(e){await Ue(),await O.get(K(`apps/app_api/apps/disable/${e}`))}const xe=ke("external-apps",()=>{const e=ee("appstore","appApiEnabled",!1),t=E([]),n=E(ee("appstore","appstoreExAppUpdateCount",0));let s=null;const a=E(ee("appstore","defaultDaemonConfigAccessible",!1)),r=E(ee("appstore","defaultDaemonConfig",null)),l=E([]),p=$(()=>t.value.filter(m=>m?.status?.action&&m.status.type!==""&&(m?.status?.action==="deploy"||m.status.action==="init"||m.status.action==="healthcheck")));function i(m){return t.value.find(({id:f})=>f===m)??null}async function g(m){const f=i(m);if(!f)throw new Error(`App with id ${m} not found`);f.loading=!0;try{if(l.value.length===1&&f.needsDownload)Be(f,l[0]),f.daemon=l[0];else if(f.needsDownload){const H=await kt(Dn,{app:f});if(!H)throw new Error("No daemon selected");await Be(f,H),f.daemon=H}else await Be(f,f.daemon);f.installed||(f.needsDownload=!1,f.status={type:"install",action:"deploy",init:0,deploy:0}),f.removable=!0,delete f.error,await T(m)}finally{f.loading=!1}}async function h(m){const f=i(m);if(!f)throw new Error(`App with id ${m} not found`);f.loading=!0;try{await Cn(m),await R(!0),f.active=!1}finally{f.loading=!1}}async function d(m){const f=i(m);if(!f)throw new Error(`App with id ${m} not found`);f.loading=!0;try{await st(m),f.active=!1}finally{f.loading=!1}}async function b(m){const f=i(m);if(!f)throw new Error(`App with id ${m} not found`);f.loading=!0;try{await st(m),f.active=!1,f.needsDownload=!0,f.installed=!1,f.daemon=null,f.status={},f.update!==null&&n.value--,delete f.update,delete f.error}finally{f.loading=!1}}async function S(m){const f=i(m);if(!f)throw new Error(`App with id ${m} not found`);f.loading=!0;try{await O.get(K(`/apps/app_api/apps/update/${m}`)),f.version=f.update||f.version,f.status={type:"update",action:"deploy",init:0,deploy:0},delete f.update,delete f.error,n.value--,await T(m)}catch(H){U.error("Failed to update ex app",{appId:m,error:H}),be(c("appstore","Could not update the app. Please try again later."))}finally{f.loading=!1}}async function R(m=!1){(m||!r.value||!l.value.length)&&await P(),(m||t.value.length===0)&&await Y()}return{isEnabled:e,apps:t,updateCount:n,defaultDaemon:r,dockerDaemons:l,daemonAccessible:a,getById:i,disableApp:d,enableApp:g,forceEnableApp:h,updateApp:S,uninstallApp:b,initialize:R};async function P(){try{const{data:m}=await O.get(K("/apps/app_api/daemons"));r.value=m.daemons.find(f=>f.name===m.default_daemon_config),l.value=m.daemons.filter(f=>f.accepts_deploy_id==="docker-install")}catch(m){return U.error("[app-api-store] Failed to fetch Docker daemons",{error:m}),!1}return!0}async function Y(){try{t.value=await zn()}catch(m){U.error("An error occurred while fetching apps",{error:m}),be(c("appstore","An error occurred during the request. Unable to proceed."))}}async function T(m){const f=i(m);if(!f){U.error("[app-api-store] app not found while fetching status",{appId:m});return}f.loading=!0;try{const H=await In(m);f.status=H,U.debug("[app-api-store] initializingOrDeployingApps after setAppStatus",{initializingOrDeployingApps:p}),p.value.length===0&&(U.debug("[app-api-store] Clearing interval"),clearInterval(s),s=null),f.status.error&&p.value.length===1&&(clearInterval(s),s=null)}catch(H){throw A(),H}finally{f.loading=!1}}function A(){clearInterval(s),p.value.length!==0&&(s=window.setInterval(()=>{U.debug("[app-api-store] initializingOrDeployingApps",{initializingOrDeployingApps:p});for(const m of p.value)T(m.id)},2e3))}}),j=ke("apps",()=>{const e=xe(),t=E([]),n=E([]),s=dt(ee("appstore","appstoreBundles")),a=E(!1),r=E(!1),l=$(()=>[...t.value,...e.isEnabled?e.apps:[]]);function p(T){return n.value.find(({id:A})=>A===T)??null}function i(T){return l.value.find(({id:A})=>A===T)??null}function g(T){return l.value.filter(A=>[A.category].flat().includes(T))}async function h(T,A=!1){const m=i(T);if(!m)throw new Error(`App with id ${T} not found`);if(m.active||!m.installed&&!pe(m))throw new Error(`App with id ${T} cannot be enabled`);if(!A&&ve(m))throw new Error(`App with id ${T} requires force enable`);m.loading=!0;try{m.app_api?await e.enableApp(T):await nt(T,A),A&&(m.isCompatible=!0),m.active=!0,m.installed=!0,m.removable=!0,await ge()}finally{m.loading=!1}}async function d(T){const A=i(T);if(!A)throw new Error(`App with id ${T} not found`);if(!St(A))throw new Error(`App with id ${T} cannot be disabled`);A.loading=!0;try{A.app_api?await e.disableApp(T):await gn(T),A.active=!1,A.isCompatible=A.missingDependencies===void 0||A.missingDependencies.length===0,await ge()}finally{A.loading=!1}}async function b(T){const A=i(T);if(!A)throw new Error(`App with id ${T} not found`);if(!$t(A))throw new Error(`App with id ${T} cannot be uninstalled`);A.loading=!0;try{A.app_api?await e.uninstallApp(T):await fn(T),A.active=!1,A.installed=!1,await ge()}finally{A.loading=!1}}async function S(T,A){const m=i(T);if(!m)throw new Error(`App with id ${T} not found`);if(!Fe(m))throw new Error(`App with id ${T} cannot be limited to groups`);if(!m.app_api)try{m.loading=!0,await nt(T,!1,A),m.groups=A}finally{m.loading=!1}}async function R(T){const A=s.find(m=>m.id===T);if(!A)throw new Error(`Bundle with id ${T} not found`);try{for(const m of A.appIdentifiers){const f=i(m);f.loading=!0}await _n(A.id);for(const m of A.appIdentifiers){const f=i(m);f.active=!0,f.installed=!0,f.removable=!0,await ge()}}finally{for(const m of A.appIdentifiers){const f=i(m);f.loading=!1}}}async function P(){try{r.value=!0,n.value=await kn()}catch(T){U.error("Failed to load app categories",{error:T}),be(c("appstore","Could not load app categories. Please try again later."))}finally{r.value=!1}}async function Y(){try{a.value=!0,t.value=await bn()}catch(T){U.error("Failed to load apps list",{error:T}),be(c("appstore","Could not load apps list. Please try again later."))}finally{a.value=!1}}return Y(),P(),{apps:l,bundles:s,categories:n,isLoadingApps:a,isLoadingCategories:r,disableApp:d,enableApp:h,uninstallApp:b,enableBundle:R,getAppById:i,getAppsByCategory:g,getCategoryById:p,limitAppToGroups:S}}),zt=ke("updates",()=>{const e=xe(),t=E(ee("appstore","appstoreUpdateCount",0)),n=$(()=>t.value+e.updateCount);async function s(a){const r=j().getAppById(a);if(!r)throw new Error(`App with id ${a} not found`);try{"app_api"in r&&r.app_api?await e.updateApp(a):(await mn(a),t.value=Math.max(t.value-1,0)),ge()}catch(l){U.error("Failed to update app",{appId:a,error:l}),be(c("appstore","Could not update the app. Please try again later."))}}return{updateCount:n,updateApp:s}}),It=ke("userSettings",()=>{const e=E(""),t=E(!1),n=E(!0),s=$(()=>e.value==="m"?"468px":e.value==="l"?"512px":"320px");function a(l){return{...(_e()??{}).query,grid:l??t.value?e.value||null:void 0,compatible:n.value?void 0:null}}return Oe().afterEach(l=>{r(l.query)}),{defaultGridSize:e,gridSizePx:s,isGridView:t,showIncompatible:n,getQuery:a};function r(l){t.value="grid"in l,e.value=[l.grid??""].flat()[0].toLowerCase(),n.value=!("compatible"in l)}}),Ln=B({__name:"AppstoreNavigation",setup(e){const t=ee("settings","appstoreEnabled",!0),n=j(),s=zt(),a=It(),r=$(()=>n.categories),l=$(()=>n.isLoadingCategories),p=_e(),i=Oe(),g=ht("search");ka("f",()=>{g.value?.$refs.inputElement||(gt("toggle-navigation",{open:!0}),window.setTimeout(()=>g.value?.$refs.inputElement?.focus(),400)),g.value?.$refs.inputElement?.focus()},{ctrl:!0,stop:!0,prevent:!0});const h=E("");re(()=>p.query.q,b=>{h.value=[b||""].flat()[0]},{immediate:!0}),an(h,(b,S)=>{if(b.trim()!==S.trim()){if(i.currentRoute.value.name==="apps-discover"||i.currentRoute.value.name==="apps-manage"&&p.params.category==="bundles"){i.push({name:"apps-search",query:{...p.query,q:b.trim()||void 0}});return}i.replace({...p,query:{...p.query,q:b.trim()||void 0}})}},{debounce:500});const d=$(()=>n.apps.find(({level:b})=>b===300)!==void 0);return(b,S)=>(u(),D(o(ua),{"aria-label":o(c)("appstore","Appstore categories")},{search:y(()=>[k(o(da),{ref_key:"search",ref:h,modelValue:h.value,"onUpdate:modelValue":S[0]||(S[0]=R=>h.value=R),label:o(c)("appstore","Search apps…")},null,8,["modelValue","label"])]),list:y(()=>[o(t)?(u(),D(o(J),{key:0,to:{name:"apps-discover"},name:o(W).discover},{icon:y(()=>[k(o(L),{path:o(X).discover},null,8,["path"])]),_:1},8,["name"])):I("",!0),k(o(J),{to:{name:"apps-manage",params:{category:"installed"}},name:o(W).installed},{icon:y(()=>[k(o(L),{path:o(X).installed},null,8,["path"])]),_:1},8,["name"]),k(o(J),{to:{name:"apps-manage",params:{category:"enabled"}},name:o(W).enabled},{icon:y(()=>[k(o(L),{path:o(X).enabled},null,8,["path"])]),_:1},8,["name"]),k(o(J),{to:{name:"apps-manage",params:{category:"disabled"}},name:o(W).disabled},{icon:y(()=>[k(o(L),{path:o(X).disabled},null,8,["path"])]),_:1},8,["name"]),o(s).updateCount>0?(u(),D(o(J),{key:1,to:{name:"apps-manage",params:{category:"updates"}},name:o(W).updates},{counter:y(()=>[k(o(va),{count:o(s).updateCount},null,8,["count"])]),icon:y(()=>[k(o(L),{path:o(X).updates},null,8,["path"])]),_:1},8,["name"])):I("",!0),k(o(J),{to:{name:"apps-bundles"},name:o(W).bundles},{icon:y(()=>[k(o(L),{path:o(X).bundles},null,8,["path"])]),_:1},8,["name"]),k(o(pn)),o(t)&&l.value?(u(),x("li",{key:2,class:w(b.$style.appstoreNavigation__categories_loading)},[k(o(Ie),{size:20,name:o(c)("appstore","Loading categories")},null,8,["name"])],2)):o(t)&&!l.value?(u(),x(M,{key:3},[d.value?(u(),D(o(J),{key:0,id:"app-category-supported",to:{name:"apps-category",params:{category:"supported"},query:o(a).getQuery(!0)},name:o(W).supported},{icon:y(()=>[k(o(L),{path:o(X).supported},null,8,["path"])]),_:1},8,["to","name"])):I("",!0),k(o(J),{id:"app-category-featured",to:{name:"apps-category",params:{category:"featured"},query:o(a).getQuery(!0)},name:o(W).featured},{icon:y(()=>[k(o(L),{path:o(X).featured},null,8,["path"])]),_:1},8,["to","name"]),(u(!0),x(M,null,Z(r.value,R=>(u(),D(o(J),{id:`app-category-${R.id}`,key:R.id,name:R.displayName,to:{name:"apps-category",params:{category:R.id},query:o(a).getQuery(!0)}},{icon:y(()=>[k(o(L),{path:R.icon},null,8,["path"])]),_:2},1032,["id","name","to"]))),128))],64)):I("",!0)]),_:1},8,["aria-label"]))}}),En="_appstoreNavigation__categories_loading_1fsn2_2",Bn={appstoreNavigation__categories_loading:En},Pn={$style:Bn},Nn=q(Ln,[["__cssModules",Pn]]),qn=B({__name:"AppActions",props:{app:{},actions:{},maxInlineActions:{default:1},iconOnly:{type:Boolean}},setup(e){const t=$(()=>e.actions.length<=e.maxInlineActions?e.actions:e.actions.filter(s=>s.inline!==!1).slice(0,e.maxInlineActions)),n=$(()=>e.actions.filter(s=>!t.value.includes(s)));return(s,a)=>(u(),x("div",{class:w(s.$style.appActions)},[(u(!0),x(M,null,Z(t.value,r=>(u(),D(o(ie),{key:r.id,ariaLabel:e.iconOnly?r.label(e.app):void 0,title:e.iconOnly?r.label(e.app):void 0,variant:r.variant,href:"href"in r?r.href(e.app):void 0,to:"to"in r?r.to(e.app):void 0,target:"href"in r?"_blank":void 0,onClick:l=>"callback"in r&&r.callback(e.app)},Me({icon:y(()=>[k(o(L),{path:r.icon},null,8,["path"])]),_:2},[e.iconOnly?void 0:{name:"default",fn:y(()=>[N(v(r.label(e.app)),1)]),key:"0"}]),1032,["ariaLabel","title","variant","href","to","target","onClick"]))),128)),k(o(_a),{forceMenu:""},{default:y(()=>[(u(!0),x(M,null,Z(n.value,r=>(u(),x(M,null,["callback"in r?(u(),D(o(ca),{key:"callback-"+r.id,closeAfterClick:"",variant:r.variant,onClick:l=>r.callback(e.app)},{icon:y(()=>[k(o(L),{path:r.icon},null,8,["path"])]),default:y(()=>[N(" "+v(r.label(e.app)),1)]),_:2},1032,["variant","onClick"])):"href"in r?(u(),D(o(ma),{key:"link-"+r.id,closeAfterClick:"",variant:r.variant,href:r.href(e.app)},{icon:y(()=>[k(o(L),{path:r.icon},null,8,["path"])]),default:y(()=>[N(" "+v(r.label(e.app)),1)]),_:2},1032,["variant","href"])):(u(),D(o(fa),{key:"route-"+r.id,closeAfterClick:"",variant:r.variant,to:r.to(e.app)},{icon:y(()=>[k(o(L),{path:r.icon},null,8,["path"])]),default:y(()=>[N(" "+v(r.label(e.app)),1)]),_:2},1032,["variant","to"]))],64))),256))]),_:1})],2))}}),Mn="_appActions_lrf6h_2",On={appActions:Mn},Gn={$style:On},Ct=q(qn,[["__cssModules",Gn]]),Hn=B({__name:"AppDeployDaemonTab",props:{app:{}},setup(e){const t=E(e.app?.daemon?.deploy_config?.computeDevice?.id!=="cpu"||!1);return(n,s)=>e.app?.daemon?(u(),D(o(Ce),{key:0,id:"daemon",name:o(c)("appstore","Daemon"),order:5},{icon:y(()=>[k(o(L),{path:o(vt),size:24},null,8,["path"])]),default:y(()=>[_("div",{class:w(n.$style.appDeployDaemonTab)},[_("h4",null,v(o(c)("appstore","Deploy Daemon")),1),_("p",null,[_("b",null,v(o(c)("appstore","Type")),1),N(": "+v(e.app?.daemon.accepts_deploy_id),1)]),_("p",null,[_("b",null,v(o(c)("appstore","Name")),1),N(": "+v(e.app?.daemon.name),1)]),_("p",null,[_("b",null,v(o(c)("appstore","Display Name")),1),N(": "+v(e.app?.daemon.display_name),1)]),_("p",null,[_("b",null,v(o(c)("appstore","GPUs support")),1),N(": "+v(t.value),1)]),_("p",null,[_("b",null,v(o(c)("appstore","Compute device")),1),N(": "+v(e.app?.daemon?.deploy_config?.computeDevice?.label),1)])],2)]),_:1},8,["name"])):I("",!0)}}),Zn="_appDeployDaemonTab_1xkhp_2",jn={appDeployDaemonTab:Zn},Un={$style:jn},Fn=q(Hn,[["__cssModules",Un]]);function Qe(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var le=Qe();function lt(e){le=e}var ne={exec:()=>null};function z(e,t=""){let n=typeof e=="string"?e:e.source,s={replace:(a,r)=>{let l=typeof r=="string"?r:r.source;return l=l.replace(G.caret,"$1"),n=n.replace(a,l),s},getRegex:()=>new RegExp(n,t)};return s}var Qn=(()=>{try{return!!new RegExp("(?<=1)(?/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}>`)},Vn=/^(?:[ \t]*(?:\n|$))+/,Wn=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Xn=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,$e=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Yn=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Ve=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Lt=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Et=z(Lt).replace(/bull/g,Ve).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),Jn=z(Lt).replace(/bull/g,Ve).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),We=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Kn=/^[^\n]+/,Xe=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,es=z(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Xe).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),ts=z(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Ve).getRegex(),Le="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Ye=/|$))/,as=z("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Ye).replace("tag",Le).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Bt=z(We).replace("hr",$e).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Le).getRegex(),ns=z(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Bt).getRegex(),Je={blockquote:ns,code:Wn,def:es,fences:Xn,heading:Yn,hr:$e,html:as,lheading:Et,list:ts,newline:Vn,paragraph:Bt,table:ne,text:Kn},rt=z("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",$e).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Le).getRegex(),ss={...Je,lheading:Jn,table:rt,paragraph:z(We).replace("hr",$e).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",rt).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Le).getRegex()},ls={...Je,html:z(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Ye).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:ne,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:z(We).replace("hr",$e).replace("heading",` *#{1,6} *[^ ]`).replace("lheading",Et).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},rs=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,is=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Pt=/^( {2,}|\\)\n(?!\s*$)/,os=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\`+)[^`]+\k(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",Qn?"(?`+)[^`]+\k(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),qt=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,hs=z(qt,"u").replace(/punct/g,ce).getRegex(),gs=z(qt,"u").replace(/punct/g,Nt).getRegex(),Mt="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",ms=z(Mt,"gu").replace(/notPunctSpace/g,Ke).replace(/punctSpace/g,Ee).replace(/punct/g,ce).getRegex(),fs=z(Mt,"gu").replace(/notPunctSpace/g,us).replace(/punctSpace/g,cs).replace(/punct/g,Nt).getRegex(),bs=z("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,Ke).replace(/punctSpace/g,Ee).replace(/punct/g,ce).getRegex(),ks=z(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,ce).getRegex(),_s="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",ys=z(_s,"gu").replace(/notPunctSpace/g,Ke).replace(/punctSpace/g,Ee).replace(/punct/g,ce).getRegex(),ws=z(/\\(punct)/,"gu").replace(/punct/g,ce).getRegex(),vs=z(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),xs=z(Ye).replace("(?:-->|$)","-->").getRegex(),$s=z("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",xs).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Re=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,Ts=z(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",Re).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Ot=z(/^!?\[(label)\]\[(ref)\]/).replace("label",Re).replace("ref",Xe).getRegex(),Gt=z(/^!?\[(ref)\](?:\[\])?/).replace("ref",Xe).getRegex(),As=z("reflink|nolink(?!\\()","g").replace("reflink",Ot).replace("nolink",Gt).getRegex(),it=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,et={_backpedal:ne,anyPunctuation:ws,autolink:vs,blockSkip:ds,br:Pt,code:is,del:ne,delLDelim:ne,delRDelim:ne,emStrongLDelim:hs,emStrongRDelimAst:ms,emStrongRDelimUnd:bs,escape:rs,link:Ts,nolink:Gt,punctuation:ps,reflink:Ot,reflinkSearch:As,tag:$s,text:os,url:ne},Ss={...et,link:z(/^!?\[(label)\]\((.*?)\)/).replace("label",Re).getRegex(),reflink:z(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Re).getRegex()},Pe={...et,emStrongRDelimAst:fs,emStrongLDelim:gs,delLDelim:ks,delRDelim:ys,url:z(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",it).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:z(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},ot=e=>Ds[e];function V(e,t){if(t){if(G.escapeTest.test(e))return e.replace(G.escapeReplace,ot)}else if(G.escapeTestNoEncode.test(e))return e.replace(G.escapeReplaceNoEncode,ot);return e}function pt(e){try{e=encodeURI(e).replace(G.percentDecode,"%")}catch{return null}return e}function ct(e,t){let n=e.replace(G.findPipe,(r,l,p)=>{let i=!1,g=l;for(;--g>=0&&p[g]==="\\";)i=!i;return i?"|":" |"}),s=n.split(G.splitPipe),a=0;if(s[0].trim()||s.shift(),s.length>0&&!s.at(-1)?.trim()&&s.pop(),t)if(s.length>t)s.splice(t);else for(;s.length0?-2:-1}function Is(e,t=0){let n=t,s="";for(let a of e)if(a===" "){let r=4-n%4;s+=" ".repeat(r),n+=r}else s+=a,n++;return s}function ut(e,t,n,s,a){let r=t.href,l=t.title||null,p=e[1].replace(a.other.outputLinkReplace,"$1");s.state.inLink=!0;let i={type:e[0].charAt(0)==="!"?"image":"link",raw:n,href:r,title:l,text:p,tokens:s.inlineTokens(p)};return s.state.inLink=!1,i}function Cs(e,t,n){let s=e.match(n.other.indentCodeCompensation);if(s===null)return t;let a=s[1];return t.split(` `).map(r=>{let l=r.match(n.other.beginningSpace);if(l===null)return r;let[p]=l;return p.length>=a.length?r.slice(a.length):r}).join(` `)}var De=class{options;rules;lexer;constructor(e){this.options=e||le}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?n:he(n,` @@ -57,5 +57,5 @@ ${this.parser.parse(e)} ${e} `}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+` `}strong({tokens:e}){return`${this.parser.parseInline(e)}`}em({tokens:e}){return`${this.parser.parseInline(e)}`}codespan({text:e}){return`${V(e,!0)}`}br(e){return"
    "}del({tokens:e}){return`${this.parser.parseInline(e)}`}link({href:e,title:t,tokens:n}){let s=this.parser.parseInline(n),a=pt(e);if(a===null)return s;e=a;let r='
    ",r}image({href:e,title:t,text:n,tokens:s}){s&&(n=this.parser.parseInline(s,this.parser.textRenderer));let a=pt(e);if(a===null)return V(n);e=a;let r=`${V(n)}{let l=a[r].flat(1/0);n=n.concat(this.walkTokens(l,t))}):a.tokens&&(n=n.concat(this.walkTokens(a.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let s={...n};if(s.async=this.defaults.async||s.async||!1,n.extensions&&(n.extensions.forEach(a=>{if(!a.name)throw new Error("extension name required");if("renderer"in a){let r=t.renderers[a.name];r?t.renderers[a.name]=function(...l){let p=a.renderer.apply(this,l);return p===!1&&(p=r.apply(this,l)),p}:t.renderers[a.name]=a.renderer}if("tokenizer"in a){if(!a.level||a.level!=="block"&&a.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let r=t[a.level];r?r.unshift(a.tokenizer):t[a.level]=[a.tokenizer],a.start&&(a.level==="block"?t.startBlock?t.startBlock.push(a.start):t.startBlock=[a.start]:a.level==="inline"&&(t.startInline?t.startInline.push(a.start):t.startInline=[a.start]))}"childTokens"in a&&a.childTokens&&(t.childTokens[a.name]=a.childTokens)}),s.extensions=t),n.renderer){let a=this.defaults.renderer||new ze(this.defaults);for(let r in n.renderer){if(!(r in a))throw new Error(`renderer '${r}' does not exist`);if(["options","parser"].includes(r))continue;let l=r,p=n.renderer[l],i=a[l];a[l]=(...g)=>{let h=p.apply(a,g);return h===!1&&(h=i.apply(a,g)),h||""}}s.renderer=a}if(n.tokenizer){let a=this.defaults.tokenizer||new De(this.defaults);for(let r in n.tokenizer){if(!(r in a))throw new Error(`tokenizer '${r}' does not exist`);if(["options","rules","lexer"].includes(r))continue;let l=r,p=n.tokenizer[l],i=a[l];a[l]=(...g)=>{let h=p.apply(a,g);return h===!1&&(h=i.apply(a,g)),h}}s.tokenizer=a}if(n.hooks){let a=this.defaults.hooks||new me;for(let r in n.hooks){if(!(r in a))throw new Error(`hook '${r}' does not exist`);if(["options","block"].includes(r))continue;let l=r,p=n.hooks[l],i=a[l];me.passThroughHooks.has(r)?a[l]=g=>{if(this.defaults.async&&me.passThroughHooksRespectAsync.has(r))return(async()=>{let d=await p.call(a,g);return i.call(a,d)})();let h=p.call(a,g);return i.call(a,h)}:a[l]=(...g)=>{if(this.defaults.async)return(async()=>{let d=await p.apply(a,g);return d===!1&&(d=await i.apply(a,g)),d})();let h=p.apply(a,g);return h===!1&&(h=i.apply(a,g)),h}}s.hooks=a}if(n.walkTokens){let a=this.defaults.walkTokens,r=n.walkTokens;s.walkTokens=function(l){let p=[];return p.push(r.call(this,l)),a&&(p=p.concat(a.call(this,l))),p}}this.defaults={...this.defaults,...s}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return F.lex(e,t??this.defaults)}parser(e,t){return Q.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let s={...n},a={...this.defaults,...s},r=this.onError(!!a.silent,!!a.async);if(this.defaults.async===!0&&s.async===!1)return r(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return r(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return r(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(a.hooks&&(a.hooks.options=a,a.hooks.block=e),a.async)return(async()=>{let l=a.hooks?await a.hooks.preprocess(t):t,p=await(a.hooks?await a.hooks.provideLexer(e):e?F.lex:F.lexInline)(l,a),i=a.hooks?await a.hooks.processAllTokens(p):p;a.walkTokens&&await Promise.all(this.walkTokens(i,a.walkTokens));let g=await(a.hooks?await a.hooks.provideParser(e):e?Q.parse:Q.parseInline)(i,a);return a.hooks?await a.hooks.postprocess(g):g})().catch(r);try{a.hooks&&(t=a.hooks.preprocess(t));let l=(a.hooks?a.hooks.provideLexer(e):e?F.lex:F.lexInline)(t,a);a.hooks&&(l=a.hooks.processAllTokens(l)),a.walkTokens&&this.walkTokens(l,a.walkTokens);let p=(a.hooks?a.hooks.provideParser(e):e?Q.parse:Q.parseInline)(l,a);return a.hooks&&(p=a.hooks.postprocess(p)),p}catch(l){return r(l)}}}onError(e,t){return n=>{if(n.message+=` -Please report this to https://github.com/markedjs/marked.`,e){let s="

    An error occurred:

    "+V(n.message+"",!0)+"
    ";return t?Promise.resolve(s):s}if(t)return Promise.reject(n);throw n}}},ae=new Ls;function C(e,t){return ae.parse(e,t)}C.options=C.setOptions=function(e){return ae.setOptions(e),C.defaults=ae.defaults,lt(C.defaults),C},C.getDefaults=Qe,C.defaults=le,C.use=function(...e){return ae.use(...e),C.defaults=ae.defaults,lt(C.defaults),C},C.walkTokens=function(e,t){return ae.walkTokens(e,t)},C.parseInline=ae.parseInline,C.Parser=Q,C.parser=Q.parse,C.Renderer=ze,C.TextRenderer=tt,C.Lexer=F,C.lexer=F.lex,C.Tokenizer=De,C.Hooks=me,C.parse=C,C.options,C.setOptions,C.use,C.walkTokens,C.parseInline,Q.parse,F.lex;function Es(e,t){const n=new C.Renderer;return n.blockquote=Ns,n.link=Bs,n.image=Ps,$(()=>{const s=t?.minHeadingLevel??1;n.heading=qs(s);const a=fe(e).trim();return na.sanitize(C(a,{async:!1,renderer:n,gfm:!1,breaks:!1,pedantic:!1}),{ALLOWED_TAGS:["h1","h2","h3","h4","h5","h6","strong","p","a","ul","ol","li","em","del","blockquote"]})})}function Bs({href:e,title:t,text:n}){let s;try{s=new URL(e)}catch{return""}if(s.protocol!=="http:"&&s.protocol!=="https:")return"";let a='
    ",a}function Ps({title:e,text:t}){return t||(e??"")}function Ns({text:e}){return`
    ${e}
    `}function qs(e){return({text:t,depth:n})=>(n=Math.min(6,n+(e-1)),`${t}`)}const Ms=["innerHTML"],Os=B({__name:"MarkdownPreview",props:{text:{},minHeadingLevel:{default:1}},setup(e){const t=Es(()=>e.text,{minHeadingLevel:e.minHeadingLevel});return(n,s)=>(u(),x("div",{class:"settings-markdown",innerHTML:o(t)},null,8,Ms))}}),Ht=q(Os,[["__scopeId","data-v-cf1f9874"]]),Gs=B({__name:"AppDescriptionTab",props:{app:{}},setup(e){return(t,n)=>(u(),D(o(Ce),{id:"desc",name:o(c)("appstore","Description"),order:0},{icon:y(()=>[k(o(L),{path:o(Ha)},null,8,["path"])]),default:y(()=>[_("div",{class:w(t.$style.appDescriptionTab)},[k(Ht,{text:e.app.description,minHeadingLevel:3},null,8,["text"])],2)]),_:1},8,["name"]))}}),Hs="_appDescriptionTab_118mz_2",Zs={appDescriptionTab:Hs},js={$style:Zs},Us=q(Gs,[["__cssModules",js]]),Fs=["title"],Qs=B({__name:"BadgeAppDaemon",props:{daemon:{}},setup(e){return(t,n)=>e.daemon?(u(),x("span",{key:0,class:w(t.$style.appDaemonBadge),title:e.daemon.name},[k(o(L),{path:o(vt),size:20,inline:""},null,8,["path"]),N(" "+v(e.daemon.display_name),1)],10,Fs)):I("",!0)}}),Vs="_appDaemonBadge_1n34s_2",Ws={appDaemonBadge:Vs},Xs={$style:Ws},Zt=q(Qs,[["__cssModules",Xs]]),Ys=["title"],Js=B({__name:"BadgeAppLevel",props:{level:{}},setup(e){const t=e,n=$(()=>t.level===300),s=$(()=>t.level===200),a=$(()=>n.value?_t:je),r=$(()=>n.value?c("appstore","Supported"):c("appstore","Featured")),l=$(()=>n.value?c("appstore","This app is supported via your current Nextcloud subscription."):c("appstore","Featured apps are developed by and within the community. They offer central functionality and are ready for production use."));return(p,i)=>n.value||s.value?(u(),x("span",{key:0,class:w([p.$style.appLevelBadge,{[p.$style.appLevelBadge__supported]:n.value}]),title:l.value},[k(o(L),{path:a.value,size:20,inline:""},null,8,["path"]),N(" "+v(r.value),1)],10,Ys)):I("",!0)}}),Ks="_appLevelBadge_q2et3_2",el="_appLevelBadge__supported_q2et3_15",tl={appLevelBadge:Ks,appLevelBadge__supported:el},al={$style:tl},jt=q(Js,[["__cssModules",al]]),nl=["aria-label","title"],sl=B({__name:"BadgeAppScore",props:{app:{}},setup(e){const t=$(()=>!e.app.shipped&&e.app.ratingNumOverall&&e.app.ratingNumOverall>5),n=$(()=>e.app.ratingOverall??4),s=$(()=>{const p=(n.value*5).toFixed(1);return c("appstore","Community rating: {score}/5",{score:p})}),a=$(()=>Math.floor(n.value*5+.25)),r=$(()=>Math.min(Math.floor((1-n.value)*5+.25),5-a.value)),l=$(()=>a.value+r.value<5);return(p,i)=>t.value?(u(),x("span",{key:0,role:"img","aria-label":s.value,title:s.value,class:w(p.$style.badgeAppScore)},[(u(!0),x(M,null,Z(a.value,g=>(u(),D(o(L),{key:`full-star-${g}`,path:o(je),inline:""},null,8,["path"]))),128)),l.value?(u(),D(o(L),{key:0,path:o(Za),inline:""},null,8,["path"])):I("",!0),(u(!0),x(M,null,Z(r.value,g=>(u(),D(o(L),{key:`empty-star-${g}`,path:o(xt),inline:""},null,8,["path"]))),128))],10,nl)):I("",!0)}}),ll="_badgeAppScore_1t97c_2",rl={badgeAppScore:ll},il={$style:rl},ol=q(sl,[["__cssModules",il]]),pl=new ft({concurrency:3}),Ut=ke("groups",()=>{const e=E(new Map);async function t(r){return await pl.add(()=>a(r))}async function n(r){const l=Ge("/cloud/groups/details");try{const{data:p}=await O.get(l,{params:{search:r.trim(),limit:10}});for(const i of p.ocs.data.groups)e.value.has(i.id)||e.value.set(i.id,{id:i.id,displayName:i.displayname,isNoUser:!0})}catch(p){U.error("Failed to search groups",{error:p})}}function s(r){return e.value.get(r)}return{groups:$(()=>Array.from(e.value.values())),searchGroups:n,getGroupById:s,fetchGroupById:t};async function a(r){return e.value.has(r)||await n(r),e.value.get(r)}});function Ft(e){const t=Ut(),n=E([]);return re(()=>fe(e).groups,async()=>{const s=fe(e).groups;if(s===void 0){n.value=[];return}const a=s.map(l=>t.fetchGroupById(l)),r=await Promise.all(a);n.value=r.filter(Boolean)},{immediate:!0}),dt(n)}const cl={class:"app-details"},ul=["aria-label"],dl=["id"],hl=["aria-labelledby"],gl=["title"],ml=["aria-label"],fl=["href"],bl=B({__name:"AppDetailsTab",props:{app:{}},setup(e){const t=j(),n=Yt(),s=$(()=>e.app.releases?.map(d=>d.lastModified).map(d=>Date.parse(d)).sort().at(-1)),a=$(()=>e.app?[e.app.author].flat().map(h).sort((d,b)=>d.split(" ").at(-1).localeCompare(b.split(" ").at(-1))).join(", "):""),r=$(()=>`https://apps.nextcloud.com/apps/${e.app.id}`),l=Ft(()=>e.app),p=$(()=>{const d=[];return e.app.internal||d.push({id:"appstore",href:r.value,label:c("appstore","View in store")}),e.app.website&&d.push({id:"website",href:e.app.website,label:c("appstore","Visit website")}),e.app.documentation&&(e.app.documentation.user&&d.push({id:"doc-user",href:e.app.documentation.user,label:c("appstore","Usage documentation")}),e.app.documentation.admin&&d.push({id:"doc-admin",href:e.app.documentation.admin,label:c("appstore","Admin documentation")}),e.app.documentation.developer&&d.push({id:"doc-developer",href:e.app.documentation.developer,label:c("appstore","Developer documentation")})),d}),i=$(()=>[e.app.category].flat().map(d=>t.getCategoryById(d)?.displayName??d).join(", ")),g=$(()=>e.app.active&&!Fe(e.app));function h(d){return d["@value"]?d["@value"]:d}return(d,b)=>(u(),D(o(Ce),{id:"details",name:o(c)("appstore","Details"),order:1},{icon:y(()=>[k(o(L),{path:o(ja)},null,8,["path"])]),default:y(()=>[_("div",cl,[_("div",{class:w(d.$style.appstoreDetailsTab__badges)},[k(jt,{level:e.app.level},null,8,["level"]),e.app.app_api&&e.app.daemon?(u(),D(Zt,{key:0,daemon:e.app.daemon},null,8,["daemon"])):I("",!0),k(ol,{app:e.app},null,8,["app"])],2),!e.app.isCompatible&&e.app.missingDependencies&&e.app.missingDependencies.length?(u(),D(o(at),{key:0,type:"error"},{default:y(()=>[N(v(o(c)("appstore","This app cannot be installed because the following dependencies are not fulfilled:"))+" ",1),_("ul",{"aria-label":o(c)("appstore","Missing dependencies"),class:w(d.$style.appstoreDetailsTab__missingDependencies)},[(u(!0),x(M,null,Z(e.app.missingDependencies,(S,R)=>(u(),x("li",{key:R},v(S),1))),128))],10,ul)]),_:1})):I("",!0),g.value?(u(),D(o(at),{key:1,type:"info"},{default:y(()=>[N(v(o(c)("appstore","This app cannot be limited to groups because it provides functionality that is executed before group membership is determined.")),1)]),_:1})):I("",!0),o(l).length?(u(),x("div",{key:2,class:w(d.$style.appstoreDetailsTab__section)},[_("h4",{id:o(n)},v(o(c)("appstore","Limited to groups")),9,dl),_("ul",{"aria-labelledby":o(n),class:w(d.$style.appstoreDetailsTab__sectionDetails)},[(u(!0),x(M,null,Z(o(l),S=>(u(),x("li",{key:S.id,title:S.id},v(S.displayName),9,gl))),128))],10,hl)],2)):I("",!0),s.value&&!e.app.shipped?(u(),x("div",{key:3,class:w(d.$style.appstoreDetailsTab__section)},[_("h4",null,v(o(c)("appstore","Latest updated")),1),k(o(ba),{class:w(d.$style.appstoreDetailsTab__sectionDetails),timestamp:s.value},null,8,["class","timestamp"])],2)):I("",!0),_("div",{class:w(d.$style.appstoreDetailsTab__section)},[_("h4",null,v(o(c)("appstore","Author")),1),_("p",{class:w(d.$style.appstoreDetailsTab__sectionDetails)},v(a.value),3)],2),_("div",{class:w(d.$style.appstoreDetailsTab__section)},[_("h4",null,v(o(c)("appstore","Categories")),1),_("p",{class:w(d.$style.appstoreDetailsTab__sectionDetails)},v(i.value),3)],2),p.value.length>0?(u(),x("div",{key:4,class:w(d.$style.appstoreDetailsTab__section)},[_("h4",null,v(o(c)("appstore","Resources")),1),_("ul",{class:w(d.$style.appstoreDetailsTab__resources),"aria-label":o(c)("appstore","Documentation resources")},[(u(!0),x(M,null,Z(p.value,S=>(u(),x("li",{key:S.id,class:w(d.$style.appstoreDetailsTab__resourcesItem)},[_("a",{class:w(d.$style.appstoreDetailsTab__resourcesLink),href:S.href,target:"_blank",rel:"noreferrer noopener"},v(S.label)+" ↗ ",11,fl)],2))),128))],10,ml)],2)):I("",!0)])]),_:1},8,["name"]))}}),kl="_appstoreDetailsTab__badges_4x76r_2",_l="_appstoreDetailsTab__section_4x76r_8",yl="_appstoreDetailsTab__sectionDetails_4x76r_18",wl="_appstoreDetailsTab__missingDependencies_4x76r_22",vl="_appstoreDetailsTab__resourcesLink_4x76r_28",xl="_appstoreDetailsTab__resourcesItem_4x76r_32",$l={appstoreDetailsTab__badges:kl,appstoreDetailsTab__section:_l,appstoreDetailsTab__sectionDetails:yl,appstoreDetailsTab__missingDependencies:wl,appstoreDetailsTab__resourcesLink:vl,appstoreDetailsTab__resourcesItem:xl},Tl={$style:$l},Al=q(bl,[["__cssModules",Tl]]),Sl=B({__name:"AppReleasesTab",props:{app:{}},setup(e){const t=e,n=$(()=>(t.app.releases??[]).filter(a=>{const r=Object.values(a.translations??{});return r.length>0&&r.some(({changelog:l})=>!!l)}));function s(a){return a.translations[sa()]?.changelog??a.translations.en?.changelog??""}return(a,r)=>n.value.length>0?(u(),D(o(Ce),{key:0,id:"changelog",name:o(c)("appstore","Changelog"),order:2},{icon:y(()=>[k(o(L),{path:o(Ua),size:24},null,8,["path"])]),default:y(()=>[(u(!0),x(M,null,Z(n.value,l=>(u(),x("div",{key:l.version,class:w(a.$style.appReleasesTab)},[_("h3",{class:w(a.$style.appReleasesTab__heading)},v(l.version),3),k(Ht,{class:w(a.$style.appReleasesTab__text),minHeadingLevel:3,text:s(l)},null,8,["class","text"])],2))),128))]),_:1},8,["name"])):I("",!0)}}),Rl="_appReleasesTab__heading_9xawz_2",Dl="_appReleasesTab__text_9xawz_7",zl={appReleasesTab__heading:Rl,appReleasesTab__text:Dl},Il={$style:zl},Cl=q(Sl,[["__cssModules",Il]]),Ll={id:"disable",icon:yt,order:10,enabled:St,label:()=>c("appstore","Disable"),async callback(e){await j().disableApp(e.id)}},El={id:"enable",icon:wt,order:1,variant:"primary",enabled(e){return!pe(e)&&Tt(e)},label:()=>c("appstore","Enable"),async callback(e){await j().enableApp(e.id)}},Bl={id:"force-enable",icon:Fa,order:3,inline:!1,variant:"warning",label:()=>c("appstore","Force enable"),enabled(e){return!pe(e)&&At(e)&&ve(e)},async callback(e){await j().enableApp(e.id,!0)}},Pl={id:"install",icon:Ze,order:5,enabled(e){return pe(e)&&!ve(e)},label:e=>e.app_api?c("appstore","Deploy and enable"):e.needsDownload?c("appstore","Download and enable"):c("appstore","Install and enable"),async callback(e){await j().enableApp(e.id)}},Nl={id:"install-forced",icon:Ze,order:5,inline:!1,enabled(e){return pe(e)&&ve(e)},label:e=>e.app_api?c("appstore","Deploy and force enable"):e.needsDownload?c("appstore","Download and force enable"):c("appstore","Install and force enable"),async callback(e){await j().enableApp(e.id,!0)}},ql=[{id:"rate",icon:xt,order:30,inline:!1,label:()=>c("appstore","Rate the app"),enabled(e){return!e.shipped},href(e){return`https://apps.nextcloud.com/apps/${encodeURIComponent(e.id)}#comments`}},{id:"report-bug",icon:Qa,order:32,inline:!1,label:()=>c("appstore","Report a bug"),enabled(e){return!!e.bugs},href(e){return e.bugs}},{id:"discussion",icon:Va,order:35,inline:!1,label:()=>c("appstore","Ask questions or discuss the app"),enabled(e){return!!e.discussion},href(e){return e.discussion}},{id:"website",icon:Wa,order:38,inline:!1,label:()=>c("appstore","Visit the website"),enabled(e){return!!e.website},href(e){return e.website}}],Ml=Jt(()=>oe(()=>Promise.resolve().then(()=>br),void 0,import.meta.url)),Ol={id:"limit-to-group",icon:Xa,order:16,inline:!1,label:()=>c("appstore","Limit to groups"),enabled:Fe,async callback(e){await kt(Ml,{app:e})}},Gl={id:"remove",order:20,icon:Ya,variant:"error",inline:!1,enabled:$t,label:()=>c("appstore","Remove"),async callback(e){await j().uninstallApp(e.id)}},Hl={id:"update",icon:Ja,variant:"primary",order:0,enabled(e){return yn(e)?e.app_api?e.daemon&&e.daemon?.accepts_deploy_id==="manual-install"?!0:xe().daemonAccessible:!0:!1},label:e=>c("appstore","Update to {version}",{version:e.update}),async callback(e){await zt().updateApp(e.id)}},Zl=[Hl,El,Ll,Bl,Pl,Nl,Gl,Ol,...ql].sort((e,t)=>e.order-t.order);function Qt(e){return $(()=>fe(e)?Zl.filter(t=>t.enabled(fe(e))):[])}function jl(e){const t=E(null),n=$(()=>{let s;return e.value?.app_api?s=Se:s=[e.value?.category??[]].flat().map(a=>X[a]).filter(a=>!!a).at(0)??(e.value?.app_api?Se:Ka),s?``:null});return Kt(async()=>{if(!e.value?.icon)t.value=n.value;else{t.value=null;try{const s=await(await(await window.fetch(e.value.icon)).blob()).text();t.value=s.replaceAll(/fill="#(fff|ffffff)([a-z0-9]{1,2})?"/ig,'fill="currentColor"')}catch(s){t.value=n.value,U.error("Could not load app icon",{error:s})}}}),{appIcon:t}}const Ul=B({__name:"AppstoreSidebar",setup(e){const t=_e(),n=Oe(),s=j(),a=It(),r=$(()=>[t.params.id].flat()[0]),l=$(()=>s.getAppById(r.value)??null),{appIcon:p}=jl(l),i=$(()=>l.value?l.value.license?c("appstore","Version {version}, {license}-licensed",{version:l.value.version,license:String(l.value.license).toUpperCase()}):c("appstore","Version {version}",{version:l.value.version}):""),g=E("details");re([l],()=>{g.value="details"});function h(){n.replace({name:t.name,params:{...t.params,id:void 0},query:a.getQuery()})}const d=E(!1),b=$(()=>l.value?.screenshot&&d.value);function S(){if(l.value?.releases&&l.value?.screenshot){const P=new Image;P.onload=()=>{d.value=!0},P.src=l.value.screenshot}}re([l],S),ea(S);const R=Qt(()=>l.value);return(P,Y)=>(u(),D(o(ha),{active:g.value,"onUpdate:active":Y[0]||(Y[0]=T=>g.value=T),class:w([P.$style.appstoreSidebar,{[P.$style.appstoreSidebar_withScreenshot]:b.value}]),background:b.value?l.value.screenshot:void 0,compact:!b.value,name:l.value?.name??r.value,title:l.value?.name??r.value,subname:i.value,subtitle:i.value,onClose:h},Me({default:y(()=>[l.value?(u(),x(M,{key:1},[k(Us,{app:l.value},null,8,["app"]),k(Cl,{app:l.value},null,8,["app"]),k(Al,{app:l.value},null,8,["app"]),l.value.app_api?(u(),D(Fn,{key:0,app:l.value},null,8,["app"])):I("",!0)],64)):(u(),D(o(He),{key:0,name:"No such app"}))]),_:2},[b.value?void 0:{name:"header",fn:y(()=>[k(o(L),{class:w(P.$style.appstoreSidebar__fallbackIcon),svg:o(p)??"",size:64},null,8,["class","svg"])]),key:"0"},l.value?{name:"description",fn:y(()=>[k(Ct,{app:l.value,actions:o(R),iconOnly:"",maxInlineActions:6},null,8,["app","actions"])]),key:"1"}:void 0]),1032,["active","class","background","compact","name","title","subname","subtitle"]))}}),Fl="_appstoreSidebar_withScreenshot_1224s_3",Ql="_appstoreSidebar__fallbackIcon_1224s_9",Vl={appstoreSidebar_withScreenshot:Fl,appstoreSidebar__fallbackIcon:Ql},Wl={$style:Vl},Xl=q(Ul,[["__cssModules",Wl]]),Yl=B({__name:"AppstoreApp",setup(e){const t=_e(),n=j(),s=$(()=>t.params.category?[t.params.category].flat()[0]:t.name==="apps-bundles"?"bundles":t.name==="apps-search"?"search":"discover"),a=$(()=>s.value in W?W[s.value]:n.getCategoryById(s.value)?.displayName??s.value),r=$(()=>`${a.value} - ${c("appstore","App store")}`),l=$(()=>!!t.params.id);return(p,i)=>{const g=ta("router-view");return u(),D(o(oa),{appName:"appstore"},{default:y(()=>[k(Nn),k(o(ia),{class:w(p.$style.appstoreApp__content),pageHeading:o(c)("appstore","App store"),pageTitle:r.value},{default:y(()=>[a.value?(u(),x("h2",{key:0,class:w(p.$style.appstoreApp__heading)},v(a.value),3)):I("",!0),k(g)]),_:1},8,["class","pageHeading","pageTitle"]),l.value?(u(),D(Xl,{key:0})):I("",!0)]),_:1})}}}),Jl="_appstoreApp__content_1pi7x_2",Kl="_appstoreApp__heading_1pi7x_7",er={appstoreApp__content:Jl,appstoreApp__heading:Kl},tr={$style:er},ar=q(Yl,[["__cssModules",tr]]),nr=ee("appstore","appstoreEnabled",!0),sr=()=>oe(()=>import("./AppstoreDiscover-WjjPyuuv.chunk.mjs"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74]),import.meta.url),lr=()=>oe(()=>import("./AppstoreSearch-CPzSIsIZ.chunk.mjs").then(e=>e.c),__vite__mapDeps([75,6,7,4,1,2,5,8,9,18,19,15,16,32,33,3,10,25,13,14,26,27,23,24,28,29,30,31,12,17,34,20,21,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,76,73,74]),import.meta.url),rr=()=>oe(()=>Promise.resolve().then(()=>ii),void 0,import.meta.url),ir=()=>oe(()=>import("./AppstoreBrowse-DO4WaaxR.chunk.mjs"),__vite__mapDeps([77,6,7,4,1,2,5,8,9,18,19,15,16,75,32,33,3,10,25,13,14,26,27,23,24,28,29,30,31,12,17,34,20,21,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,76,73,74,11,22,70,71,78]),import.meta.url),or=()=>oe(()=>import("./AppstoreSearch-CPzSIsIZ.chunk.mjs").then(e=>e.d),__vite__mapDeps([75,6,7,4,1,2,5,8,9,18,19,15,16,32,33,3,10,25,13,14,26,27,23,24,28,29,30,31,12,17,34,20,21,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,76,73,74]),import.meta.url),pr=[{path:"/:index(index.php/)?settings/apps",name:"apps",redirect:nr?{name:"apps-discover"}:{name:"apps-manage",params:{category:"installed"}},children:[{path:"discover/:id?",name:"apps-discover",component:sr},{path:"bundles/:id?",name:"apps-bundles",component:rr},{path:":category(installed|enabled|disabled|updates)/:id?",name:"apps-manage",component:lr},{path:":category/:id?",name:"apps-category",component:ir},{path:"search/:id?",name:"apps-search",component:or}]}],cr=la({history:ra(K("")),linkActiveClass:"active",routes:pr}),ur=Vt(),Ae=aa(ar);Ae.config.idPrefix="appstore",Ae.use(ur),Ae.use(cr),Ae.mount("#content");const dr=B({__name:"LimitToGroupDialog",props:{app:{}},emits:["close"],setup(e,{emit:t}){const n=t,s=j(),a=Ut(),r=E(!1),l=E([]);re(()=>e.app,()=>{l.value=(e.app.groups??[]).map(d=>{const b=a.getGroupById(d);return b||a.searchGroups(d),b??{id:d,displayName:d,isNoUser:!0}})},{immediate:!0});const p=$(()=>a.groups.filter(d=>!l.value.includes(d))),i=nn(a.searchGroups,400);async function g(){try{r.value=!0,await s.limitAppToGroups(e.app.id,l.value.map(d=>d.id)),n("close")}finally{r.value=!1}}async function h(){try{r.value=!0,await s.limitAppToGroups(e.app.id,[]),n("close")}finally{r.value=!1}}return(d,b)=>(u(),D(o(bt),{isForm:"",name:o(c)("appstore","Limit to groups"),onSubmit:g,onReset:h},{actions:y(()=>[k(o(ie),{disabled:r.value,type:"reset"},{default:y(()=>[N(v(o(c)("appstore","Reset limitation")),1)]),_:1},8,["disabled"]),k(o(ie),{disabled:r.value,type:"submit",variant:"primary"},Me({default:y(()=>[N(" "+v(o(c)("appstore","Save")),1)]),_:2},[r.value?{name:"icon",fn:y(()=>[k(o(Ie))]),key:"0"}:void 0]),1032,["disabled"])]),default:y(()=>[_("p",null,v(o(c)("appstore","Restrict the usage of {app} to members of the following groups.",{app:e.app.name})),1),k(o(ga),{modelValue:l.value,"onUpdate:modelValue":b[0]||(b[0]=S=>l.value=S),class:w(d.$style.limitToGroupDialog__input),keepOpen:"",labelOutside:"",multiple:"",options:p.value,onSearch:o(i)},null,8,["modelValue","class","options","onSearch"])]),_:1},8,["name"]))}}),hr="_limitToGroupDialog__input_sofp5_2",gr={limitToGroupDialog__input:hr},mr={$style:gr},fr=q(dr,[["__cssModules",mr]]),br=Object.freeze(Object.defineProperty({__proto__:null,default:fr},Symbol.toStringTag,{value:"Module"})),kr=["src","height","width"],_r=B({__name:"AppIcon",props:{app:{},noFallback:{type:Boolean},size:{default:20}},setup(e){const t=$(()=>e.app.icon?.endsWith(".svg")),n=E("");return re(()=>e.app.icon,async()=>{if(n.value="",e.app.icon?.endsWith(".svg")){const s=await fetch(e.app.icon);s.ok&&(n.value=await s.text())}},{immediate:!0}),(s,a)=>(u(),x("span",{class:w(s.$style.appIcon)},[n.value?(u(),D(o(L),{key:0,size:e.size,svg:n.value},null,8,["size","svg"])):e.app.icon&&!t.value?(u(),x("img",{key:1,class:w(s.$style.appIcon__image),alt:"",src:e.app.icon,height:e.size,width:e.size},null,10,kr)):e.noFallback?I("",!0):(u(),D(o(L),{key:2,path:o(Se),size:e.size},null,8,["path","size"]))],2))}}),yr="_appIcon_mcsmb_2",wr="_appIcon__image_mcsmb_7",vr={appIcon:yr,appIcon__image:wr},xr={$style:vr},$r=q(_r,[["__cssModules",xr]]),Tr={key:0,class:"hidden-visually"},Ar={class:"hidden-visually"},Sr={key:0},Rr={key:1},Dr=["title"],zr={key:0,"aria-hidden":"true"},Ir=B({__name:"AppTableRow",props:{app:{},isNarrow:{type:Boolean},isWide:{type:Boolean}},setup(e){const t=_e(),n=$(()=>({...t,params:{...t.params,id:e.app.id},query:{...t.query}})),s=$(()=>({id:"details",order:99,enabled:()=>!0,label:()=>c("appstore","Show details"),icon:en,to:()=>n.value,inline:!1})),a=Ft(()=>e.app),r=Qt(()=>e.app),l=$(()=>[...r.value,s.value]);return(p,i)=>(u(),x("tr",{class:w(p.$style.appTableRow)},[_("td",{class:w(p.$style.appTableRow__nameCell)},[k(o(ie),{alignment:"start",title:o(c)("appstore","Show details"),to:n.value,variant:"tertiary-no-background",wide:""},{icon:y(()=>[e.app.loading?(u(),D(o(Ie),{key:0,size:24})):(u(),D($r,{key:1,app:e.app,size:24},null,8,["app"]))]),default:y(()=>[N(" "+v(e.app.name)+" ",1),e.app.loading?(u(),x("span",Tr,"("+v(o(c)("appstore","is loading…"))+")",1)):I("",!0),_("span",Ar,"("+v(o(c)("appstore","Show details"))+")",1)]),_:1},8,["title","to"])],2),_("td",null,[_("span",{class:w(p.$style.appTableRow__versionCell)},v(e.app.version),3)]),e.isNarrow?I("",!0):(u(),x("td",Sr,[_("div",{class:w(p.$style.appTableRow__levelCell)},[e.app.level?(u(),D(jt,{key:0,level:e.app.level},null,8,["level"])):I("",!0),"daemon"in e.app&&e.app.daemon?(u(),D(Zt,{key:1,daemon:e.app.daemon},null,8,["daemon"])):I("",!0)],2)])),e.isWide?(u(),x("td",Rr,[o(a).length>0?(u(),x("ul",{key:0,class:w(p.$style.appTableRow__groupsCell),title:o(a).map(g=>g.displayName).join(", ")},[(u(!0),x(M,null,Z(o(a),(g,h)=>(u(),x(M,{key:g.id},[h===3?(u(),x("li",zr," … ")):I("",!0),_("li",{class:w({"hidden-visually":h>2})},[k(o(ya),{text:g.displayName,noClose:""},null,8,["text"])],2)],64))),128))],10,Dr)):I("",!0)])):I("",!0),_("td",null,[_("div",{class:w(p.$style.appTableRow__actionsCell)},[k(Ct,{class:w(p.$style.appTableRow__actionsCellActions),app:e.app,actions:l.value,iconOnly:e.isNarrow},null,8,["class","app","actions","iconOnly"])],2)])],2))}}),Cr="_appTableRow_yekky_2",Lr="_appTableRow__nameCell_yekky_11",Er="_appTableRow__levelCell_yekky_16",Br="_appTableRow__versionCell_yekky_22",Pr="_appTableRow__groupsCell_yekky_26",Nr="_appTableRow__actionsCell_yekky_31",qr="_appTableRow__actionsCellActions_yekky_37",Mr={appTableRow:Cr,appTableRow__nameCell:Lr,appTableRow__levelCell:Er,appTableRow__versionCell:Br,appTableRow__groupsCell:Pr,appTableRow__actionsCell:Nr,appTableRow__actionsCellActions:qr},Or={$style:Mr},Gr=q(Ir,[["__cssModules",Or]]),Hr={hidden:""},Zr={key:0},jr={key:1},Ur=B({__name:"AppTable",props:{apps:{}},setup(e){const t=ht("table"),{width:n}=sn(t),s=$(()=>n.value<768),a=$(()=>n.value>=1280);return(r,l)=>(u(),x("table",{ref:"table",class:w([r.$style.appTable,{[r.$style.appTable_narrow]:s.value,[r.$style.appTable_wide]:a.value}])},[_("colgroup",null,[_("col",{class:w(r.$style.appTable__colName)},null,2),_("col",{class:w(r.$style.appTable__colVersion)},null,2),s.value?I("",!0):(u(),x("col",{key:0,class:w(r.$style.appTable__colSupport)},null,2)),a.value?(u(),x("col",{key:1,class:w(r.$style.appTable__colGroups)},null,2)):I("",!0),_("col",{class:w(r.$style.appTable__colActions)},null,2)]),_("thead",Hr,[_("tr",null,[_("th",null,v(o(c)("appstore","App name")),1),_("th",null,v(o(c)("appstore","Version")),1),s.value?I("",!0):(u(),x("th",Zr,v(o(c)("appstore","Support level")),1)),a.value?(u(),x("th",jr,v(o(c)("appstore","Groups")),1)):I("",!0),_("th",null,v(o(c)("appstore","Actions")),1)])]),_("tbody",null,[(u(!0),x(M,null,Z(e.apps,p=>(u(),D(Gr,{key:p.id,app:p,isNarrow:s.value,isWide:a.value},null,8,["app","isNarrow","isWide"]))),128))])],2))}}),Fr="_appTable_ss46x_2",Qr="_appTable__colName_ss46x_7",Vr="_appTable_narrow_ss46x_11",Wr="_appTable_wide_ss46x_15",Xr="_appTable__colSupport_ss46x_19",Yr="_appTable__colActions_ss46x_27",Jr={appTable:Fr,appTable__colName:Qr,appTable_narrow:Vr,appTable_wide:Wr,appTable__colSupport:Xr,appTable__colActions:Yr},Kr={$style:Jr},ei=q(Ur,[["__cssModules",Kr]]),ti=B({__name:"AppstoreBundles",setup(e){const t=j(),n=$(()=>t.bundles.map(l=>({...l,apps:l.appIdentifiers.map(p=>t.apps.find(i=>i.id===p)).filter(Boolean),isEnabling:!1})));function s(l){return l.appIdentifiers.every(p=>{const i=t.apps.find(g=>g.id===p);return i&&(i.active||Tt(i))})}function a(l){return l.appIdentifiers.every(p=>{const i=t.apps.find(g=>g.id===p);return i&&i.active})}async function r(l){l.isEnabling=!0,await t.enableBundle(l.id),l.isEnabling=!1}return(l,p)=>o(t).isLoadingApps?(u(),D(o(He),{key:0,name:o(c)("appstore","Loading app list")},{icon:y(()=>[k(o(Ie),{size:64})]),_:1},8,["name"])):(u(!0),x(M,{key:1},Z(n.value,i=>(u(),x("section",{key:i.id},[_("div",{class:w(l.$style.appstoreBundles__header)},[_("h3",null,v(i.name),1),a(i)?I("",!0):(u(),D(o(ie),{key:0,disabled:!s(i),variant:"primary",onClick:g=>r(i)},{icon:y(()=>[k(o(L),{path:o(tn)},null,8,["path"])]),default:y(()=>[N(" "+v(o(c)("appstore","Download and enable all")),1)]),_:1},8,["disabled","onClick"]))],2),k(ei,{class:w(l.$style.appstoreBundles__appTable),apps:i.apps},null,8,["class","apps"])]))),128))}}),ai="_appstoreBundles__header_oplvy_2",ni="_appstoreBundles__appTable_oplvy_11",si={appstoreBundles__header:ai,appstoreBundles__appTable:ni},li={$style:si},ri=q(ti,[["__cssModules",li]]),ii=Object.freeze(Object.defineProperty({__proto__:null,default:ri},Symbol.toStringTag,{value:"Module"}));export{Ki as A,ol as B,St as a,It as b,pe as c,ei as d,jt as e,Zt as f,U as l,ve as n,j as u}; +Please report this to https://github.com/markedjs/marked.`,e){let s="

    An error occurred:

    "+V(n.message+"",!0)+"
    ";return t?Promise.resolve(s):s}if(t)return Promise.reject(n);throw n}}},ae=new Ls;function C(e,t){return ae.parse(e,t)}C.options=C.setOptions=function(e){return ae.setOptions(e),C.defaults=ae.defaults,lt(C.defaults),C},C.getDefaults=Qe,C.defaults=le,C.use=function(...e){return ae.use(...e),C.defaults=ae.defaults,lt(C.defaults),C},C.walkTokens=function(e,t){return ae.walkTokens(e,t)},C.parseInline=ae.parseInline,C.Parser=Q,C.parser=Q.parse,C.Renderer=ze,C.TextRenderer=tt,C.Lexer=F,C.lexer=F.lex,C.Tokenizer=De,C.Hooks=me,C.parse=C,C.options,C.setOptions,C.use,C.walkTokens,C.parseInline,Q.parse,F.lex;function Es(e,t){const n=new C.Renderer;return n.blockquote=Ns,n.link=Bs,n.image=Ps,$(()=>{const s=t?.minHeadingLevel??1;n.heading=qs(s);const a=fe(e).trim();return na.sanitize(C(a,{async:!1,renderer:n,gfm:!1,breaks:!1,pedantic:!1}),{ALLOWED_TAGS:["h1","h2","h3","h4","h5","h6","strong","p","a","ul","ol","li","em","del","blockquote"]})})}function Bs({href:e,title:t,text:n}){let s;try{s=new URL(e)}catch{return""}if(s.protocol!=="http:"&&s.protocol!=="https:")return"";let a='
    ",a}function Ps({title:e,text:t}){return t||(e??"")}function Ns({text:e}){return`
    ${e}
    `}function qs(e){return({text:t,depth:n})=>(n=Math.min(6,n+(e-1)),`${t}`)}const Ms=["innerHTML"],Os=B({__name:"MarkdownPreview",props:{text:{},minHeadingLevel:{default:1}},setup(e){const t=Es(()=>e.text,{minHeadingLevel:e.minHeadingLevel});return(n,s)=>(u(),x("div",{class:"settings-markdown",innerHTML:o(t)},null,8,Ms))}}),Ht=q(Os,[["__scopeId","data-v-cf1f9874"]]),Gs=B({__name:"AppDescriptionTab",props:{app:{}},setup(e){return(t,n)=>(u(),D(o(Ce),{id:"desc",name:o(c)("appstore","Description"),order:0},{icon:y(()=>[k(o(L),{path:o(Ha)},null,8,["path"])]),default:y(()=>[_("div",{class:w(t.$style.appDescriptionTab)},[k(Ht,{text:e.app.description,minHeadingLevel:3},null,8,["text"])],2)]),_:1},8,["name"]))}}),Hs="_appDescriptionTab_118mz_2",Zs={appDescriptionTab:Hs},js={$style:Zs},Us=q(Gs,[["__cssModules",js]]),Fs=["title"],Qs=B({__name:"BadgeAppDaemon",props:{daemon:{}},setup(e){return(t,n)=>e.daemon?(u(),x("span",{key:0,class:w(t.$style.appDaemonBadge),title:e.daemon.name},[k(o(L),{path:o(vt),size:20,inline:""},null,8,["path"]),N(" "+v(e.daemon.display_name),1)],10,Fs)):I("",!0)}}),Vs="_appDaemonBadge_1n34s_2",Ws={appDaemonBadge:Vs},Xs={$style:Ws},Zt=q(Qs,[["__cssModules",Xs]]),Ys=["title"],Js=B({__name:"BadgeAppLevel",props:{level:{}},setup(e){const t=e,n=$(()=>t.level===300),s=$(()=>t.level===200),a=$(()=>n.value?_t:je),r=$(()=>n.value?c("appstore","Supported"):c("appstore","Featured")),l=$(()=>n.value?c("appstore","This app is supported via your current Nextcloud subscription."):c("appstore","Featured apps are developed by and within the community. They offer central functionality and are ready for production use."));return(p,i)=>n.value||s.value?(u(),x("span",{key:0,class:w([p.$style.appLevelBadge,{[p.$style.appLevelBadge__supported]:n.value}]),title:l.value},[k(o(L),{path:a.value,size:20,inline:""},null,8,["path"]),N(" "+v(r.value),1)],10,Ys)):I("",!0)}}),Ks="_appLevelBadge_q2et3_2",el="_appLevelBadge__supported_q2et3_15",tl={appLevelBadge:Ks,appLevelBadge__supported:el},al={$style:tl},jt=q(Js,[["__cssModules",al]]),nl=["aria-label","title"],sl=B({__name:"BadgeAppScore",props:{app:{}},setup(e){const t=$(()=>!e.app.shipped&&e.app.ratingNumOverall&&e.app.ratingNumOverall>5),n=$(()=>e.app.ratingOverall??4),s=$(()=>{const p=(n.value*5).toFixed(1);return c("appstore","Community rating: {score}/5",{score:p})}),a=$(()=>Math.floor(n.value*5+.25)),r=$(()=>Math.min(Math.floor((1-n.value)*5+.25),5-a.value)),l=$(()=>a.value+r.value<5);return(p,i)=>t.value?(u(),x("span",{key:0,role:"img","aria-label":s.value,title:s.value,class:w(p.$style.badgeAppScore)},[(u(!0),x(M,null,Z(a.value,g=>(u(),D(o(L),{key:`full-star-${g}`,path:o(je),inline:""},null,8,["path"]))),128)),l.value?(u(),D(o(L),{key:0,path:o(Za),inline:""},null,8,["path"])):I("",!0),(u(!0),x(M,null,Z(r.value,g=>(u(),D(o(L),{key:`empty-star-${g}`,path:o(xt),inline:""},null,8,["path"]))),128))],10,nl)):I("",!0)}}),ll="_badgeAppScore_1t97c_2",rl={badgeAppScore:ll},il={$style:rl},ol=q(sl,[["__cssModules",il]]),pl=new ft({concurrency:3}),Ut=ke("groups",()=>{const e=E(new Map);async function t(r){return await pl.add(()=>a(r))}async function n(r){const l=Ge("/cloud/groups/details");try{const{data:p}=await O.get(l,{params:{search:r.trim(),limit:10}});for(const i of p.ocs.data.groups)e.value.has(i.id)||e.value.set(i.id,{id:i.id,displayName:i.displayname,isNoUser:!0})}catch(p){U.error("Failed to search groups",{error:p})}}function s(r){return e.value.get(r)}return{groups:$(()=>Array.from(e.value.values())),searchGroups:n,getGroupById:s,fetchGroupById:t};async function a(r){return e.value.has(r)||await n(r),e.value.get(r)}});function Ft(e){const t=Ut(),n=E([]);return re(()=>fe(e).groups,async()=>{const s=fe(e).groups;if(s===void 0){n.value=[];return}const a=s.map(l=>t.fetchGroupById(l)),r=await Promise.all(a);n.value=r.filter(Boolean)},{immediate:!0}),dt(n)}const cl={class:"app-details"},ul=["aria-label"],dl=["id"],hl=["aria-labelledby"],gl=["title"],ml=["aria-label"],fl=["href"],bl=B({__name:"AppDetailsTab",props:{app:{}},setup(e){const t=j(),n=Yt(),s=$(()=>e.app.releases?.map(d=>d.lastModified).map(d=>Date.parse(d)).sort().at(-1)),a=$(()=>e.app?[e.app.author].flat().map(h).sort((d,b)=>d.split(" ").at(-1).localeCompare(b.split(" ").at(-1))).join(", "):""),r=$(()=>`https://apps.nextcloud.com/apps/${e.app.id}`),l=Ft(()=>e.app),p=$(()=>{const d=[];return e.app.internal||d.push({id:"appstore",href:r.value,label:c("appstore","View in store")}),e.app.website&&d.push({id:"website",href:e.app.website,label:c("appstore","Visit website")}),e.app.documentation&&(e.app.documentation.user&&d.push({id:"doc-user",href:e.app.documentation.user,label:c("appstore","Usage documentation")}),e.app.documentation.admin&&d.push({id:"doc-admin",href:e.app.documentation.admin,label:c("appstore","Admin documentation")}),e.app.documentation.developer&&d.push({id:"doc-developer",href:e.app.documentation.developer,label:c("appstore","Developer documentation")})),d}),i=$(()=>[e.app.category].flat().map(d=>t.getCategoryById(d)?.displayName??d).join(", ")),g=$(()=>e.app.active&&!Fe(e.app));function h(d){return d["@value"]?d["@value"]:d}return(d,b)=>(u(),D(o(Ce),{id:"details",name:o(c)("appstore","Details"),order:1},{icon:y(()=>[k(o(L),{path:o(ja)},null,8,["path"])]),default:y(()=>[_("div",cl,[_("div",{class:w(d.$style.appstoreDetailsTab__badges)},[k(jt,{level:e.app.level},null,8,["level"]),e.app.app_api&&e.app.daemon?(u(),D(Zt,{key:0,daemon:e.app.daemon},null,8,["daemon"])):I("",!0),k(ol,{app:e.app},null,8,["app"])],2),!e.app.isCompatible&&e.app.missingDependencies&&e.app.missingDependencies.length?(u(),D(o(at),{key:0,type:"error"},{default:y(()=>[N(v(o(c)("appstore","This app cannot be installed because the following dependencies are not fulfilled:"))+" ",1),_("ul",{"aria-label":o(c)("appstore","Missing dependencies"),class:w(d.$style.appstoreDetailsTab__missingDependencies)},[(u(!0),x(M,null,Z(e.app.missingDependencies,(S,R)=>(u(),x("li",{key:R},v(S),1))),128))],10,ul)]),_:1})):I("",!0),g.value?(u(),D(o(at),{key:1,type:"info"},{default:y(()=>[N(v(o(c)("appstore","This app cannot be limited to groups because it provides functionality that is executed before group membership is determined.")),1)]),_:1})):I("",!0),o(l).length?(u(),x("div",{key:2,class:w(d.$style.appstoreDetailsTab__section)},[_("h4",{id:o(n)},v(o(c)("appstore","Limited to groups")),9,dl),_("ul",{"aria-labelledby":o(n),class:w(d.$style.appstoreDetailsTab__sectionDetails)},[(u(!0),x(M,null,Z(o(l),S=>(u(),x("li",{key:S.id,title:S.id},v(S.displayName),9,gl))),128))],10,hl)],2)):I("",!0),s.value&&!e.app.shipped?(u(),x("div",{key:3,class:w(d.$style.appstoreDetailsTab__section)},[_("h4",null,v(o(c)("appstore","Latest updated")),1),k(o(ba),{class:w(d.$style.appstoreDetailsTab__sectionDetails),timestamp:s.value},null,8,["class","timestamp"])],2)):I("",!0),_("div",{class:w(d.$style.appstoreDetailsTab__section)},[_("h4",null,v(o(c)("appstore","Author")),1),_("p",{class:w(d.$style.appstoreDetailsTab__sectionDetails)},v(a.value),3)],2),_("div",{class:w(d.$style.appstoreDetailsTab__section)},[_("h4",null,v(o(c)("appstore","Categories")),1),_("p",{class:w(d.$style.appstoreDetailsTab__sectionDetails)},v(i.value),3)],2),p.value.length>0?(u(),x("div",{key:4,class:w(d.$style.appstoreDetailsTab__section)},[_("h4",null,v(o(c)("appstore","Resources")),1),_("ul",{class:w(d.$style.appstoreDetailsTab__resources),"aria-label":o(c)("appstore","Documentation resources")},[(u(!0),x(M,null,Z(p.value,S=>(u(),x("li",{key:S.id,class:w(d.$style.appstoreDetailsTab__resourcesItem)},[_("a",{class:w(d.$style.appstoreDetailsTab__resourcesLink),href:S.href,target:"_blank",rel:"noreferrer noopener"},v(S.label)+" ↗ ",11,fl)],2))),128))],10,ml)],2)):I("",!0)])]),_:1},8,["name"]))}}),kl="_appstoreDetailsTab__badges_4x76r_2",_l="_appstoreDetailsTab__section_4x76r_8",yl="_appstoreDetailsTab__sectionDetails_4x76r_18",wl="_appstoreDetailsTab__missingDependencies_4x76r_22",vl="_appstoreDetailsTab__resourcesLink_4x76r_28",xl="_appstoreDetailsTab__resourcesItem_4x76r_32",$l={appstoreDetailsTab__badges:kl,appstoreDetailsTab__section:_l,appstoreDetailsTab__sectionDetails:yl,appstoreDetailsTab__missingDependencies:wl,appstoreDetailsTab__resourcesLink:vl,appstoreDetailsTab__resourcesItem:xl},Tl={$style:$l},Al=q(bl,[["__cssModules",Tl]]),Sl=B({__name:"AppReleasesTab",props:{app:{}},setup(e){const t=e,n=$(()=>(t.app.releases??[]).filter(a=>{const r=Object.values(a.translations??{});return r.length>0&&r.some(({changelog:l})=>!!l)}));function s(a){return a.translations[sa()]?.changelog??a.translations.en?.changelog??""}return(a,r)=>n.value.length>0?(u(),D(o(Ce),{key:0,id:"changelog",name:o(c)("appstore","Changelog"),order:2},{icon:y(()=>[k(o(L),{path:o(Ua),size:24},null,8,["path"])]),default:y(()=>[(u(!0),x(M,null,Z(n.value,l=>(u(),x("div",{key:l.version,class:w(a.$style.appReleasesTab)},[_("h3",{class:w(a.$style.appReleasesTab__heading)},v(l.version),3),k(Ht,{class:w(a.$style.appReleasesTab__text),minHeadingLevel:3,text:s(l)},null,8,["class","text"])],2))),128))]),_:1},8,["name"])):I("",!0)}}),Rl="_appReleasesTab__heading_9xawz_2",Dl="_appReleasesTab__text_9xawz_7",zl={appReleasesTab__heading:Rl,appReleasesTab__text:Dl},Il={$style:zl},Cl=q(Sl,[["__cssModules",Il]]),Ll={id:"disable",icon:yt,order:10,enabled:St,label:()=>c("appstore","Disable"),async callback(e){await j().disableApp(e.id)}},El={id:"enable",icon:wt,order:1,variant:"primary",enabled(e){return!pe(e)&&Tt(e)},label:()=>c("appstore","Enable"),async callback(e){await j().enableApp(e.id)}},Bl={id:"force-enable",icon:Fa,order:3,inline:!1,variant:"warning",label:()=>c("appstore","Force enable"),enabled(e){return!pe(e)&&At(e)&&ve(e)},async callback(e){await j().enableApp(e.id,!0)}},Pl={id:"install",icon:Ze,order:5,enabled(e){return pe(e)&&!ve(e)},label:e=>e.app_api?c("appstore","Deploy and enable"):e.needsDownload?c("appstore","Download and enable"):c("appstore","Install and enable"),async callback(e){await j().enableApp(e.id)}},Nl={id:"install-forced",icon:Ze,order:5,inline:!1,enabled(e){return pe(e)&&ve(e)},label:e=>e.app_api?c("appstore","Deploy and force enable"):e.needsDownload?c("appstore","Download and force enable"):c("appstore","Install and force enable"),async callback(e){await j().enableApp(e.id,!0)}},ql=[{id:"rate",icon:xt,order:30,inline:!1,label:()=>c("appstore","Rate the app"),enabled(e){return!e.shipped},href(e){return`https://apps.nextcloud.com/apps/${encodeURIComponent(e.id)}#comments`}},{id:"report-bug",icon:Qa,order:32,inline:!1,label:()=>c("appstore","Report a bug"),enabled(e){return!!e.bugs},href(e){return e.bugs}},{id:"discussion",icon:Va,order:35,inline:!1,label:()=>c("appstore","Ask questions or discuss the app"),enabled(e){return!!e.discussion},href(e){return e.discussion}},{id:"website",icon:Wa,order:38,inline:!1,label:()=>c("appstore","Visit the website"),enabled(e){return!!e.website},href(e){return e.website}}],Ml=Jt(()=>oe(()=>Promise.resolve().then(()=>br),void 0,import.meta.url)),Ol={id:"limit-to-group",icon:Xa,order:16,inline:!1,label:()=>c("appstore","Limit to groups"),enabled:Fe,async callback(e){await kt(Ml,{app:e})}},Gl={id:"remove",order:20,icon:Ya,variant:"error",inline:!1,enabled:$t,label:()=>c("appstore","Remove"),async callback(e){await j().uninstallApp(e.id)}},Hl={id:"update",icon:Ja,variant:"primary",order:0,enabled(e){return yn(e)?e.app_api?e.daemon&&e.daemon?.accepts_deploy_id==="manual-install"?!0:xe().daemonAccessible:!0:!1},label:e=>c("appstore","Update to {version}",{version:e.update}),async callback(e){await zt().updateApp(e.id)}},Zl=[Hl,El,Ll,Bl,Pl,Nl,Gl,Ol,...ql].sort((e,t)=>e.order-t.order);function Qt(e){return $(()=>fe(e)?Zl.filter(t=>t.enabled(fe(e))):[])}function jl(e){const t=E(null),n=$(()=>{let s;return e.value?.app_api?s=Se:s=[e.value?.category??[]].flat().map(a=>X[a]).filter(a=>!!a).at(0)??(e.value?.app_api?Se:Ka),s?``:null});return Kt(async()=>{if(!e.value?.icon)t.value=n.value;else{t.value=null;try{const s=await(await(await window.fetch(e.value.icon)).blob()).text();t.value=s.replaceAll(/fill="#(fff|ffffff)([a-z0-9]{1,2})?"/ig,'fill="currentColor"')}catch(s){t.value=n.value,U.error("Could not load app icon",{error:s})}}}),{appIcon:t}}const Ul=B({__name:"AppstoreSidebar",setup(e){const t=_e(),n=Oe(),s=j(),a=It(),r=$(()=>[t.params.id].flat()[0]),l=$(()=>s.getAppById(r.value)??null),{appIcon:p}=jl(l),i=$(()=>l.value?l.value.license?c("appstore","Version {version}, {license}-licensed",{version:l.value.version,license:String(l.value.license).toUpperCase()}):c("appstore","Version {version}",{version:l.value.version}):""),g=E("details");re([l],()=>{g.value="details"});function h(){n.replace({name:t.name,params:{...t.params,id:void 0},query:a.getQuery()})}const d=E(!1),b=$(()=>l.value?.screenshot&&d.value);function S(){if(l.value?.releases&&l.value?.screenshot){const P=new Image;P.onload=()=>{d.value=!0},P.src=l.value.screenshot}}re([l],S),ea(S);const R=Qt(()=>l.value);return(P,Y)=>(u(),D(o(ha),{active:g.value,"onUpdate:active":Y[0]||(Y[0]=T=>g.value=T),class:w([P.$style.appstoreSidebar,{[P.$style.appstoreSidebar_withScreenshot]:b.value}]),background:b.value?l.value.screenshot:void 0,compact:!b.value,name:l.value?.name??r.value,title:l.value?.name??r.value,subname:i.value,subtitle:i.value,onClose:h},Me({default:y(()=>[l.value?(u(),x(M,{key:1},[k(Us,{app:l.value},null,8,["app"]),k(Cl,{app:l.value},null,8,["app"]),k(Al,{app:l.value},null,8,["app"]),l.value.app_api?(u(),D(Fn,{key:0,app:l.value},null,8,["app"])):I("",!0)],64)):(u(),D(o(He),{key:0,name:"No such app"}))]),_:2},[b.value?void 0:{name:"header",fn:y(()=>[k(o(L),{class:w(P.$style.appstoreSidebar__fallbackIcon),svg:o(p)??"",size:64},null,8,["class","svg"])]),key:"0"},l.value?{name:"description",fn:y(()=>[k(Ct,{app:l.value,actions:o(R),iconOnly:"",maxInlineActions:6},null,8,["app","actions"])]),key:"1"}:void 0]),1032,["active","class","background","compact","name","title","subname","subtitle"]))}}),Fl="_appstoreSidebar_withScreenshot_1224s_3",Ql="_appstoreSidebar__fallbackIcon_1224s_9",Vl={appstoreSidebar_withScreenshot:Fl,appstoreSidebar__fallbackIcon:Ql},Wl={$style:Vl},Xl=q(Ul,[["__cssModules",Wl]]),Yl=B({__name:"AppstoreApp",setup(e){const t=_e(),n=j(),s=$(()=>t.params.category?[t.params.category].flat()[0]:t.name==="apps-bundles"?"bundles":t.name==="apps-search"?"search":"discover"),a=$(()=>s.value in W?W[s.value]:n.getCategoryById(s.value)?.displayName??s.value),r=$(()=>`${a.value} - ${c("appstore","App store")}`),l=$(()=>!!t.params.id);return(p,i)=>{const g=ta("router-view");return u(),D(o(oa),{appName:"appstore"},{default:y(()=>[k(Nn),k(o(ia),{class:w(p.$style.appstoreApp__content),pageHeading:o(c)("appstore","App store"),pageTitle:r.value},{default:y(()=>[a.value?(u(),x("h2",{key:0,class:w(p.$style.appstoreApp__heading)},v(a.value),3)):I("",!0),k(g)]),_:1},8,["class","pageHeading","pageTitle"]),l.value?(u(),D(Xl,{key:0})):I("",!0)]),_:1})}}}),Jl="_appstoreApp__content_1pi7x_2",Kl="_appstoreApp__heading_1pi7x_7",er={appstoreApp__content:Jl,appstoreApp__heading:Kl},tr={$style:er},ar=q(Yl,[["__cssModules",tr]]),nr=ee("appstore","appstoreEnabled",!0),sr=()=>oe(()=>import("./AppstoreDiscover-_AsCdJWP.chunk.mjs"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74]),import.meta.url),lr=()=>oe(()=>import("./AppstoreSearch-CZQ7JcU9.chunk.mjs").then(e=>e.c),__vite__mapDeps([75,6,7,4,1,2,5,8,9,18,19,15,16,32,33,3,10,25,13,14,26,27,23,24,28,29,30,31,12,17,34,20,21,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,76,73,74]),import.meta.url),rr=()=>oe(()=>Promise.resolve().then(()=>ii),void 0,import.meta.url),ir=()=>oe(()=>import("./AppstoreBrowse-BPyqEF5v.chunk.mjs"),__vite__mapDeps([77,6,7,4,1,2,5,8,9,18,19,15,16,75,32,33,3,10,25,13,14,26,27,23,24,28,29,30,31,12,17,34,20,21,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,76,73,74,11,22,70,71,78]),import.meta.url),or=()=>oe(()=>import("./AppstoreSearch-CZQ7JcU9.chunk.mjs").then(e=>e.d),__vite__mapDeps([75,6,7,4,1,2,5,8,9,18,19,15,16,32,33,3,10,25,13,14,26,27,23,24,28,29,30,31,12,17,34,20,21,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,76,73,74]),import.meta.url),pr=[{path:"/:index(index.php/)?settings/apps",name:"apps",redirect:nr?{name:"apps-discover"}:{name:"apps-manage",params:{category:"installed"}},children:[{path:"discover/:id?",name:"apps-discover",component:sr},{path:"bundles/:id?",name:"apps-bundles",component:rr},{path:":category(installed|enabled|disabled|updates)/:id?",name:"apps-manage",component:lr},{path:":category/:id?",name:"apps-category",component:ir},{path:"search/:id?",name:"apps-search",component:or}]}],cr=la({history:ra(K("")),linkActiveClass:"active",routes:pr}),ur=Vt(),Ae=aa(ar);Ae.config.idPrefix="appstore",Ae.use(ur),Ae.use(cr),Ae.mount("#content");const dr=B({__name:"LimitToGroupDialog",props:{app:{}},emits:["close"],setup(e,{emit:t}){const n=t,s=j(),a=Ut(),r=E(!1),l=E([]);re(()=>e.app,()=>{l.value=(e.app.groups??[]).map(d=>{const b=a.getGroupById(d);return b||a.searchGroups(d),b??{id:d,displayName:d,isNoUser:!0}})},{immediate:!0});const p=$(()=>a.groups.filter(d=>!l.value.includes(d))),i=nn(a.searchGroups,400);async function g(){try{r.value=!0,await s.limitAppToGroups(e.app.id,l.value.map(d=>d.id)),n("close")}finally{r.value=!1}}async function h(){try{r.value=!0,await s.limitAppToGroups(e.app.id,[]),n("close")}finally{r.value=!1}}return(d,b)=>(u(),D(o(bt),{isForm:"",name:o(c)("appstore","Limit to groups"),onSubmit:g,onReset:h},{actions:y(()=>[k(o(ie),{disabled:r.value,type:"reset"},{default:y(()=>[N(v(o(c)("appstore","Reset limitation")),1)]),_:1},8,["disabled"]),k(o(ie),{disabled:r.value,type:"submit",variant:"primary"},Me({default:y(()=>[N(" "+v(o(c)("appstore","Save")),1)]),_:2},[r.value?{name:"icon",fn:y(()=>[k(o(Ie))]),key:"0"}:void 0]),1032,["disabled"])]),default:y(()=>[_("p",null,v(o(c)("appstore","Restrict the usage of {app} to members of the following groups.",{app:e.app.name})),1),k(o(ga),{modelValue:l.value,"onUpdate:modelValue":b[0]||(b[0]=S=>l.value=S),class:w(d.$style.limitToGroupDialog__input),keepOpen:"",labelOutside:"",multiple:"",options:p.value,onSearch:o(i)},null,8,["modelValue","class","options","onSearch"])]),_:1},8,["name"]))}}),hr="_limitToGroupDialog__input_sofp5_2",gr={limitToGroupDialog__input:hr},mr={$style:gr},fr=q(dr,[["__cssModules",mr]]),br=Object.freeze(Object.defineProperty({__proto__:null,default:fr},Symbol.toStringTag,{value:"Module"})),kr=["src","height","width"],_r=B({__name:"AppIcon",props:{app:{},noFallback:{type:Boolean},size:{default:20}},setup(e){const t=$(()=>e.app.icon?.endsWith(".svg")),n=E("");return re(()=>e.app.icon,async()=>{if(n.value="",e.app.icon?.endsWith(".svg")){const s=await fetch(e.app.icon);s.ok&&(n.value=await s.text())}},{immediate:!0}),(s,a)=>(u(),x("span",{class:w(s.$style.appIcon)},[n.value?(u(),D(o(L),{key:0,size:e.size,svg:n.value},null,8,["size","svg"])):e.app.icon&&!t.value?(u(),x("img",{key:1,class:w(s.$style.appIcon__image),alt:"",src:e.app.icon,height:e.size,width:e.size},null,10,kr)):e.noFallback?I("",!0):(u(),D(o(L),{key:2,path:o(Se),size:e.size},null,8,["path","size"]))],2))}}),yr="_appIcon_mcsmb_2",wr="_appIcon__image_mcsmb_7",vr={appIcon:yr,appIcon__image:wr},xr={$style:vr},$r=q(_r,[["__cssModules",xr]]),Tr={key:0,class:"hidden-visually"},Ar={class:"hidden-visually"},Sr={key:0},Rr={key:1},Dr=["title"],zr={key:0,"aria-hidden":"true"},Ir=B({__name:"AppTableRow",props:{app:{},isNarrow:{type:Boolean},isWide:{type:Boolean}},setup(e){const t=_e(),n=$(()=>({...t,params:{...t.params,id:e.app.id},query:{...t.query}})),s=$(()=>({id:"details",order:99,enabled:()=>!0,label:()=>c("appstore","Show details"),icon:en,to:()=>n.value,inline:!1})),a=Ft(()=>e.app),r=Qt(()=>e.app),l=$(()=>[...r.value,s.value]);return(p,i)=>(u(),x("tr",{class:w(p.$style.appTableRow)},[_("td",{class:w(p.$style.appTableRow__nameCell)},[k(o(ie),{alignment:"start",title:o(c)("appstore","Show details"),to:n.value,variant:"tertiary-no-background",wide:""},{icon:y(()=>[e.app.loading?(u(),D(o(Ie),{key:0,size:24})):(u(),D($r,{key:1,app:e.app,size:24},null,8,["app"]))]),default:y(()=>[N(" "+v(e.app.name)+" ",1),e.app.loading?(u(),x("span",Tr,"("+v(o(c)("appstore","is loading…"))+")",1)):I("",!0),_("span",Ar,"("+v(o(c)("appstore","Show details"))+")",1)]),_:1},8,["title","to"])],2),_("td",null,[_("span",{class:w(p.$style.appTableRow__versionCell)},v(e.app.version),3)]),e.isNarrow?I("",!0):(u(),x("td",Sr,[_("div",{class:w(p.$style.appTableRow__levelCell)},[e.app.level?(u(),D(jt,{key:0,level:e.app.level},null,8,["level"])):I("",!0),"daemon"in e.app&&e.app.daemon?(u(),D(Zt,{key:1,daemon:e.app.daemon},null,8,["daemon"])):I("",!0)],2)])),e.isWide?(u(),x("td",Rr,[o(a).length>0?(u(),x("ul",{key:0,class:w(p.$style.appTableRow__groupsCell),title:o(a).map(g=>g.displayName).join(", ")},[(u(!0),x(M,null,Z(o(a),(g,h)=>(u(),x(M,{key:g.id},[h===3?(u(),x("li",zr," … ")):I("",!0),_("li",{class:w({"hidden-visually":h>2})},[k(o(ya),{text:g.displayName,noClose:""},null,8,["text"])],2)],64))),128))],10,Dr)):I("",!0)])):I("",!0),_("td",null,[_("div",{class:w(p.$style.appTableRow__actionsCell)},[k(Ct,{class:w(p.$style.appTableRow__actionsCellActions),app:e.app,actions:l.value,iconOnly:e.isNarrow},null,8,["class","app","actions","iconOnly"])],2)])],2))}}),Cr="_appTableRow_yekky_2",Lr="_appTableRow__nameCell_yekky_11",Er="_appTableRow__levelCell_yekky_16",Br="_appTableRow__versionCell_yekky_22",Pr="_appTableRow__groupsCell_yekky_26",Nr="_appTableRow__actionsCell_yekky_31",qr="_appTableRow__actionsCellActions_yekky_37",Mr={appTableRow:Cr,appTableRow__nameCell:Lr,appTableRow__levelCell:Er,appTableRow__versionCell:Br,appTableRow__groupsCell:Pr,appTableRow__actionsCell:Nr,appTableRow__actionsCellActions:qr},Or={$style:Mr},Gr=q(Ir,[["__cssModules",Or]]),Hr={hidden:""},Zr={key:0},jr={key:1},Ur=B({__name:"AppTable",props:{apps:{}},setup(e){const t=ht("table"),{width:n}=sn(t),s=$(()=>n.value<768),a=$(()=>n.value>=1280);return(r,l)=>(u(),x("table",{ref:"table",class:w([r.$style.appTable,{[r.$style.appTable_narrow]:s.value,[r.$style.appTable_wide]:a.value}])},[_("colgroup",null,[_("col",{class:w(r.$style.appTable__colName)},null,2),_("col",{class:w(r.$style.appTable__colVersion)},null,2),s.value?I("",!0):(u(),x("col",{key:0,class:w(r.$style.appTable__colSupport)},null,2)),a.value?(u(),x("col",{key:1,class:w(r.$style.appTable__colGroups)},null,2)):I("",!0),_("col",{class:w(r.$style.appTable__colActions)},null,2)]),_("thead",Hr,[_("tr",null,[_("th",null,v(o(c)("appstore","App name")),1),_("th",null,v(o(c)("appstore","Version")),1),s.value?I("",!0):(u(),x("th",Zr,v(o(c)("appstore","Support level")),1)),a.value?(u(),x("th",jr,v(o(c)("appstore","Groups")),1)):I("",!0),_("th",null,v(o(c)("appstore","Actions")),1)])]),_("tbody",null,[(u(!0),x(M,null,Z(e.apps,p=>(u(),D(Gr,{key:p.id,app:p,isNarrow:s.value,isWide:a.value},null,8,["app","isNarrow","isWide"]))),128))])],2))}}),Fr="_appTable_ss46x_2",Qr="_appTable__colName_ss46x_7",Vr="_appTable_narrow_ss46x_11",Wr="_appTable_wide_ss46x_15",Xr="_appTable__colSupport_ss46x_19",Yr="_appTable__colActions_ss46x_27",Jr={appTable:Fr,appTable__colName:Qr,appTable_narrow:Vr,appTable_wide:Wr,appTable__colSupport:Xr,appTable__colActions:Yr},Kr={$style:Jr},ei=q(Ur,[["__cssModules",Kr]]),ti=B({__name:"AppstoreBundles",setup(e){const t=j(),n=$(()=>t.bundles.map(l=>({...l,apps:l.appIdentifiers.map(p=>t.apps.find(i=>i.id===p)).filter(Boolean),isEnabling:!1})));function s(l){return l.appIdentifiers.every(p=>{const i=t.apps.find(g=>g.id===p);return i&&(i.active||Tt(i))})}function a(l){return l.appIdentifiers.every(p=>{const i=t.apps.find(g=>g.id===p);return i&&i.active})}async function r(l){l.isEnabling=!0,await t.enableBundle(l.id),l.isEnabling=!1}return(l,p)=>o(t).isLoadingApps?(u(),D(o(He),{key:0,name:o(c)("appstore","Loading app list")},{icon:y(()=>[k(o(Ie),{size:64})]),_:1},8,["name"])):(u(!0),x(M,{key:1},Z(n.value,i=>(u(),x("section",{key:i.id},[_("div",{class:w(l.$style.appstoreBundles__header)},[_("h3",null,v(i.name),1),a(i)?I("",!0):(u(),D(o(ie),{key:0,disabled:!s(i),variant:"primary",onClick:g=>r(i)},{icon:y(()=>[k(o(L),{path:o(tn)},null,8,["path"])]),default:y(()=>[N(" "+v(o(c)("appstore","Download and enable all")),1)]),_:1},8,["disabled","onClick"]))],2),k(ei,{class:w(l.$style.appstoreBundles__appTable),apps:i.apps},null,8,["class","apps"])]))),128))}}),ai="_appstoreBundles__header_oplvy_2",ni="_appstoreBundles__appTable_oplvy_11",si={appstoreBundles__header:ai,appstoreBundles__appTable:ni},li={$style:si},ri=q(ti,[["__cssModules",li]]),ii=Object.freeze(Object.defineProperty({__proto__:null,default:ri},Symbol.toStringTag,{value:"Module"}));export{Ki as A,ol as B,St as a,It as b,pe as c,ei as d,jt as e,Zt as f,U as l,ve as n,j as u}; //# sourceMappingURL=appstore-main.mjs.map diff --git a/dist/comments-comments-app.mjs b/dist/comments-comments-app.mjs index 07ecd0f9a88..5b9f99658e2 100644 --- a/dist/comments-comments-app.mjs +++ b/dist/comments-comments-app.mjs @@ -1,2 +1,2 @@ -import{l as o}from"./activity-CgsVnLJG.chunk.mjs";import{a as m,t as s}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{c as r}from"./pinia-CLibr4cC.chunk.mjs";import{e as n}from"./Web-BwmPK40i.chunk.mjs";import{C as a}from"./FilesSidebarTab-C3YsEUK4.chunk.mjs";import"./index-B-dGqfIG.chunk.mjs";import"./public-C1mLBHT3.chunk.mjs";import"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./index-BLNGy7h5.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import"./CommentView-sS3KT9Kn.chunk.mjs";/* empty css */import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./GetComments-BEnDgTs6.chunk.mjs";import"./index-BYnFfAmz.chunk.mjs";class e{app;instance;constructor(t="files",i={}){const p=r();this.app=n(a,{...i.propsData??{},...i.props??{},resourceType:t}),this.app.mixin({data(){return{logger:o}},methods:{t:s,n:m}}),this.app.use(p),i.el&&(this.instance=this.app.mount(i.el))}$mount(t){this.instance&&this.app.unmount(),this.instance=this.app.mount(t)}$unmount(){this.app.unmount(),this.instance=void 0}update(t){this.instance&&this.instance.update(t)}}window.OCA&&!window.OCA.Comments&&Object.assign(window.OCA,{Comments:{}}),Object.assign(window.OCA.Comments,{View:e}),o.debug("OCA.Comments.View initialized"); +import{l as o}from"./activity-CgsVnLJG.chunk.mjs";import{a as m,t as s}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{c as r}from"./pinia-CLibr4cC.chunk.mjs";import{e as n}from"./Web-BwmPK40i.chunk.mjs";import{C as a}from"./FilesSidebarTab-uL8sB-Hg.chunk.mjs";import"./index-B-dGqfIG.chunk.mjs";import"./public-C1mLBHT3.chunk.mjs";import"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./index-BLNGy7h5.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import"./CommentView-DhkE9b-A.chunk.mjs";/* empty css */import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./GetComments-BEnDgTs6.chunk.mjs";import"./index-BYnFfAmz.chunk.mjs";class e{app;instance;constructor(t="files",i={}){const p=r();this.app=n(a,{...i.propsData??{},...i.props??{},resourceType:t}),this.app.mixin({data(){return{logger:o}},methods:{t:s,n:m}}),this.app.use(p),i.el&&(this.instance=this.app.mount(i.el))}$mount(t){this.instance&&this.app.unmount(),this.instance=this.app.mount(t)}$unmount(){this.app.unmount(),this.instance=void 0}update(t){this.instance&&this.instance.update(t)}}window.OCA&&!window.OCA.Comments&&Object.assign(window.OCA,{Comments:{}}),Object.assign(window.OCA.Comments,{View:e}),o.debug("OCA.Comments.View initialized"); //# sourceMappingURL=comments-comments-app.mjs.map diff --git a/dist/comments-comments-tab.mjs b/dist/comments-comments-tab.mjs index 4667e739a87..bb6bd0bb49a 100644 --- a/dist/comments-comments-tab.mjs +++ b/dist/comments-comments-tab.mjs @@ -1,3 +1,3 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/ActivityCommentAction-CHAIR39m.chunk.mjs'),window.OC.filePath('', '', 'dist/index-DL1yHC1K-DnBG6QLJ.chunk.mjs'),window.OC.filePath('', '', 'dist/Web-BwmPK40i.chunk.mjs'),window.OC.filePath('', '', 'dist/public-C1mLBHT3.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BW4M2n71.chunk.mjs'),window.OC.filePath('', '', 'dist/NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs'),window.OC.filePath('', '', 'dist/logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs'),window.OC.filePath('', '', 'dist/translation-DoG5ZELJ-CFYnqluG.chunk.mjs'),window.OC.filePath('', '', 'dist/index-B-dGqfIG.chunk.mjs'),window.OC.filePath('', '', 'dist/common-createElementId-DhjFt1I9-C_oBIsvc.chunk.css'),window.OC.filePath('', '', 'dist/common-logger-D3RVzcfQ-BE3lcFW4.chunk.css'),window.OC.filePath('', '', 'dist/common-NcModal-DUWLRm_F-BsKc2RT9.chunk.css'),window.OC.filePath('', '', 'dist/TrashCanOutline-Cv7t-yKN.chunk.mjs'),window.OC.filePath('', '', 'dist/common-TrashCanOutline-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/common-index-DYA_tnKg.chunk.css'),window.OC.filePath('', '', 'dist/mdi-Lt-19ASw.chunk.mjs'),window.OC.filePath('', '', 'dist/common-mdi-BWNFKLbC.chunk.css'),window.OC.filePath('', '', 'dist/CommentView-sS3KT9Kn.chunk.mjs'),window.OC.filePath('', '', 'dist/pinia-CLibr4cC.chunk.mjs'),window.OC.filePath('', '', 'dist/PencilOutline-CJ2aSuY5.chunk.mjs'),window.OC.filePath('', '', 'dist/common-PencilOutline-B3DMd8SU.chunk.css'),window.OC.filePath('', '', 'dist/NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BLNGy7h5.chunk.mjs'),window.OC.filePath('', '', 'dist/util-Alk1iwuj.chunk.mjs'),window.OC.filePath('', '', 'dist/ArrowRight-DKsMJImQ.chunk.mjs'),window.OC.filePath('', '', 'dist/common-ArrowRight-vZpQWIqF.chunk.css'),window.OC.filePath('', '', 'dist/colors-BDeMBgfq-BQ_6MaUU.chunk.mjs'),window.OC.filePath('', '', 'dist/NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcUserStatusIcon-DsviB2Cr-Bq_6hmXG.chunk.css'),window.OC.filePath('', '', 'dist/NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcDateTime-b9UhLDij.chunk.css'),window.OC.filePath('', '', 'dist/common-NcAvatar-M3-CbKbq-DTVmI7NO.chunk.css'),window.OC.filePath('', '', 'dist/NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcUserBubble-CDQa0hGy-f2DD9EAL.chunk.css'),window.OC.filePath('', '', 'dist/activity-CgsVnLJG.chunk.mjs'),window.OC.filePath('', '', 'dist/GetComments-BEnDgTs6.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BYnFfAmz.chunk.mjs'),window.OC.filePath('', '', 'dist/common-CommentView-D9eoYnuL.chunk.css'),window.OC.filePath('', '', 'dist/common-NcActionSeparator-Ct2RnclR-pXJ_-D_I.chunk.css'),window.OC.filePath('', '', 'dist/comments-ActivityCommentAction-D5Q48MrJ.chunk.css'),window.OC.filePath('', '', 'dist/ActivityCommentEntry-BbbT2NBb.chunk.mjs'),window.OC.filePath('', '', 'dist/comments-ActivityCommentEntry-CVfnMLz5.chunk.css'),window.OC.filePath('', '', 'dist/FilesSidebarTab-C3YsEUK4.chunk.mjs'),window.OC.filePath('', '', 'dist/NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcEmptyContent-CGAPqk4S-Don1d5Bd.chunk.css'),window.OC.filePath('', '', 'dist/common-FilesSidebarTab-D1FhhmK6.chunk.css')])))=>i.map(i=>d[i]); -import{_ as m,e as c,d as w}from"./Web-BwmPK40i.chunk.mjs";import{r as _}from"./index-BDagnpAU.chunk.mjs";import{t as g}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{c as l}from"./pinia-CLibr4cC.chunk.mjs";import{l as r,i as A}from"./activity-CgsVnLJG.chunk.mjs";import{g as v}from"./GetComments-BEnDgTs6.chunk.mjs";import"./public-C1mLBHT3.chunk.mjs";import"./folder-29HuacU_-Joa_bkj_.chunk.mjs";import"./index-B-dGqfIG.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./index-BYnFfAmz.chunk.mjs";const y='';function V(){let o;window.OCA.Activity.registerSidebarAction({mount:async(t,{node:e,reload:i})=>{const a=l();if(!o){const{default:s}=await m(async()=>{const{default:n}=await import("./ActivityCommentAction-CHAIR39m.chunk.mjs");return{default:n}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]),import.meta.url);o=c(s,{reloadCallback:i,resourceId:e.fileid})}o.use(a),o.mount(t),r.info("Comments plugin mounted in Activity sidebar action",{node:e})},unmount:()=>{o?.unmount()}}),window.OCA.Activity.registerSidebarEntries(async({node:t,limit:e,offset:i})=>{const{data:a}=await v({resourceType:"files",resourceId:t.fileid},{limit:e,offset:i??0});r.debug("Loaded comments",{node:t,comments:a});const{default:s}=await m(async()=>{const{default:n}=await import("./ActivityCommentEntry-BbbT2NBb.chunk.mjs");return{default:n}},__vite__mapDeps([41,8,9,18,2,3,19,20,6,7,10,11,5,12,21,22,23,24,25,26,27,28,29,30,31,13,14,32,33,34,1,4,15,16,17,35,36,37,38,39,42]),import.meta.url);return a.map(n=>({_CommentsViewInstance:void 0,timestamp:Date.parse(n.props?.creationDateTime??""),mount(f,{reload:p}){const d=c(s,{comment:n,resourceId:t.fileid,reloadCallback:p});d.mount(f),this._CommentsViewInstance=d},unmount(){this._CommentsViewInstance?.unmount()}}))}),window.OCA.Activity.registerSidebarFilter(t=>t.type!=="comments"),r.info("Comments plugin registered for Activity sidebar action")}const u="comments_files-sidebar-tab";A()?window.addEventListener("DOMContentLoaded",function(){V()}):_({id:"comments",displayName:g("comments","Comments"),iconSvgInline:y,order:50,tagName:u,async onInit(){const{default:o}=await m(async()=>{const{default:e}=await import("./FilesSidebarTab-C3YsEUK4.chunk.mjs").then(i=>i.F);return{default:e}},__vite__mapDeps([43,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,22,23,24,25,26,27,28,29,20,21,30,31,32,44,45,18,19,33,34,35,36,37,38,39,46]),import.meta.url),t=w(o,{configureApp(e){const i=l();e.use(i)},shadowRoot:!1});window.customElements.define(u,t)}}); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/ActivityCommentAction-DcqrOWtA.chunk.mjs'),window.OC.filePath('', '', 'dist/index-DL1yHC1K-BJ_TsAjb.chunk.mjs'),window.OC.filePath('', '', 'dist/Web-BwmPK40i.chunk.mjs'),window.OC.filePath('', '', 'dist/public-C1mLBHT3.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BW4M2n71.chunk.mjs'),window.OC.filePath('', '', 'dist/NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs'),window.OC.filePath('', '', 'dist/logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs'),window.OC.filePath('', '', 'dist/translation-DoG5ZELJ-CFYnqluG.chunk.mjs'),window.OC.filePath('', '', 'dist/index-B-dGqfIG.chunk.mjs'),window.OC.filePath('', '', 'dist/common-createElementId-DhjFt1I9-C_oBIsvc.chunk.css'),window.OC.filePath('', '', 'dist/common-logger-D3RVzcfQ-BE3lcFW4.chunk.css'),window.OC.filePath('', '', 'dist/common-NcModal-DUWLRm_F-BsKc2RT9.chunk.css'),window.OC.filePath('', '', 'dist/TrashCanOutline-Cv7t-yKN.chunk.mjs'),window.OC.filePath('', '', 'dist/common-TrashCanOutline-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/common-index-DYA_tnKg.chunk.css'),window.OC.filePath('', '', 'dist/mdi-Lt-19ASw.chunk.mjs'),window.OC.filePath('', '', 'dist/common-mdi-BWNFKLbC.chunk.css'),window.OC.filePath('', '', 'dist/CommentView-DhkE9b-A.chunk.mjs'),window.OC.filePath('', '', 'dist/pinia-CLibr4cC.chunk.mjs'),window.OC.filePath('', '', 'dist/PencilOutline-CJ2aSuY5.chunk.mjs'),window.OC.filePath('', '', 'dist/common-PencilOutline-B3DMd8SU.chunk.css'),window.OC.filePath('', '', 'dist/NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BLNGy7h5.chunk.mjs'),window.OC.filePath('', '', 'dist/util-Alk1iwuj.chunk.mjs'),window.OC.filePath('', '', 'dist/ArrowRight-DKsMJImQ.chunk.mjs'),window.OC.filePath('', '', 'dist/common-ArrowRight-vZpQWIqF.chunk.css'),window.OC.filePath('', '', 'dist/colors-BDeMBgfq-BQ_6MaUU.chunk.mjs'),window.OC.filePath('', '', 'dist/NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcUserStatusIcon-DsviB2Cr-Bq_6hmXG.chunk.css'),window.OC.filePath('', '', 'dist/NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcDateTime-b9UhLDij.chunk.css'),window.OC.filePath('', '', 'dist/common-NcAvatar-M3-CbKbq-DTVmI7NO.chunk.css'),window.OC.filePath('', '', 'dist/NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcUserBubble-CDQa0hGy-f2DD9EAL.chunk.css'),window.OC.filePath('', '', 'dist/activity-CgsVnLJG.chunk.mjs'),window.OC.filePath('', '', 'dist/GetComments-BEnDgTs6.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BYnFfAmz.chunk.mjs'),window.OC.filePath('', '', 'dist/common-CommentView-D9eoYnuL.chunk.css'),window.OC.filePath('', '', 'dist/common-NcActionSeparator-Ct2RnclR-pXJ_-D_I.chunk.css'),window.OC.filePath('', '', 'dist/comments-ActivityCommentAction-D5Q48MrJ.chunk.css'),window.OC.filePath('', '', 'dist/ActivityCommentEntry-BCZMrASQ.chunk.mjs'),window.OC.filePath('', '', 'dist/comments-ActivityCommentEntry-CVfnMLz5.chunk.css'),window.OC.filePath('', '', 'dist/FilesSidebarTab-uL8sB-Hg.chunk.mjs'),window.OC.filePath('', '', 'dist/NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcEmptyContent-CGAPqk4S-Don1d5Bd.chunk.css'),window.OC.filePath('', '', 'dist/common-FilesSidebarTab-D1FhhmK6.chunk.css')])))=>i.map(i=>d[i]); +import{_ as m,e as c,d as w}from"./Web-BwmPK40i.chunk.mjs";import{r as _}from"./index-BDagnpAU.chunk.mjs";import{t as g}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{c as l}from"./pinia-CLibr4cC.chunk.mjs";import{l as r,i as A}from"./activity-CgsVnLJG.chunk.mjs";import{g as v}from"./GetComments-BEnDgTs6.chunk.mjs";import"./public-C1mLBHT3.chunk.mjs";import"./folder-29HuacU_-Joa_bkj_.chunk.mjs";import"./index-B-dGqfIG.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./index-BYnFfAmz.chunk.mjs";const y='';function V(){let o;window.OCA.Activity.registerSidebarAction({mount:async(t,{node:e,reload:i})=>{const a=l();if(!o){const{default:s}=await m(async()=>{const{default:n}=await import("./ActivityCommentAction-DcqrOWtA.chunk.mjs");return{default:n}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]),import.meta.url);o=c(s,{reloadCallback:i,resourceId:e.fileid})}o.use(a),o.mount(t),r.info("Comments plugin mounted in Activity sidebar action",{node:e})},unmount:()=>{o?.unmount()}}),window.OCA.Activity.registerSidebarEntries(async({node:t,limit:e,offset:i})=>{const{data:a}=await v({resourceType:"files",resourceId:t.fileid},{limit:e,offset:i??0});r.debug("Loaded comments",{node:t,comments:a});const{default:s}=await m(async()=>{const{default:n}=await import("./ActivityCommentEntry-BCZMrASQ.chunk.mjs");return{default:n}},__vite__mapDeps([41,8,9,18,2,3,19,20,6,7,10,11,5,12,21,22,23,24,25,26,27,28,29,30,31,13,14,32,33,34,1,4,15,16,17,35,36,37,38,39,42]),import.meta.url);return a.map(n=>({_CommentsViewInstance:void 0,timestamp:Date.parse(n.props?.creationDateTime??""),mount(f,{reload:p}){const d=c(s,{comment:n,resourceId:t.fileid,reloadCallback:p});d.mount(f),this._CommentsViewInstance=d},unmount(){this._CommentsViewInstance?.unmount()}}))}),window.OCA.Activity.registerSidebarFilter(t=>t.type!=="comments"),r.info("Comments plugin registered for Activity sidebar action")}const u="comments_files-sidebar-tab";A()?window.addEventListener("DOMContentLoaded",function(){V()}):_({id:"comments",displayName:g("comments","Comments"),iconSvgInline:y,order:50,tagName:u,async onInit(){const{default:o}=await m(async()=>{const{default:e}=await import("./FilesSidebarTab-uL8sB-Hg.chunk.mjs").then(i=>i.F);return{default:e}},__vite__mapDeps([43,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,22,23,24,25,26,27,28,29,20,21,30,31,32,44,45,18,19,33,34,35,36,37,38,39,46]),import.meta.url),t=w(o,{configureApp(e){const i=l();e.use(i)},shadowRoot:!1});window.customElements.define(u,t)}}); //# sourceMappingURL=comments-comments-tab.mjs.map diff --git a/dist/common-AppstoreSearch-B0Bi-bRK.chunk.css b/dist/common-AppstoreSearch-B0Bi-bRK.chunk.css new file mode 100644 index 00000000000..1d2e0affa37 --- /dev/null +++ b/dist/common-AppstoreSearch-B0Bi-bRK.chunk.css @@ -0,0 +1 @@ +._appImage_1ky4h_2{display:flex;justify-content:center;width:100%;height:100%}._appImage__image_1ky4h_9{object-fit:cover;height:100%;width:100%}._appGridItem_6wxsl_2{background-color:var(--color-primary-element-light);color:var(--color-primary-element-light-text);border-radius:var(--border-radius-element);padding-block-end:var(--border-radius-element);display:flex;flex-direction:column;justify-content:space-between;gap:var(--default-grid-baseline);&:hover{background-color:var(--color-primary-element-light-hover)}}._appGridItem__content_6wxsl_17{padding-inline:var(--border-radius-element)}._appGridItem__image_6wxsl_21{aspect-ratio:16 / 9;height:min-content;border-start-start-radius:var(--border-radius-element);border-start-end-radius:var(--border-radius-element);overflow:hidden}._appGridItem__name_6wxsl_29{font-size:1.2em;font-weight:var(--font-weight-heading, bold);margin-block:var(--default-grid-baseline) calc(2 * var(--default-grid-baseline))}._appGridItem__badges_6wxsl_35{display:flex;flex-direction:row;gap:var(--default-grid-baseline);padding-inline:var(--border-radius-element);width:100%}._appGrid_xjc6e_2{width:100%;display:grid;gap:calc(4 * var(--default-grid-baseline));grid-template-columns:repeat(auto-fit,minmax(var(--dc9c258c),1fr));padding-inline-start:var(--app-navigation-padding)}._appToolbar_1v7y4_2{display:flex;flex-direction:row;gap:calc(2 * var(--default-grid-baseline));position:absolute;inset-block-start:var(--app-navigation-padding);inset-inline-end:var(--app-sidebar-padding);z-index:999;button:not([aria-pressed=true]):not(:hover){background-color:var(--color-main-background)!important}}._appstoreManage_msk54_2,._appstoreSearch_e0puj_2{margin-bottom:var(--body-container-margin)} diff --git a/dist/common-AppstoreSearch-CAiP7JM1.chunk.css b/dist/common-AppstoreSearch-CAiP7JM1.chunk.css deleted file mode 100644 index 7ddd540dd9c..00000000000 --- a/dist/common-AppstoreSearch-CAiP7JM1.chunk.css +++ /dev/null @@ -1 +0,0 @@ -._appImage_1ky4h_2{display:flex;justify-content:center;width:100%;height:100%}._appImage__image_1ky4h_9{object-fit:cover;height:100%;width:100%}._appGridItem_6wxsl_2{background-color:var(--color-primary-element-light);color:var(--color-primary-element-light-text);border-radius:var(--border-radius-element);padding-block-end:var(--border-radius-element);display:flex;flex-direction:column;justify-content:space-between;gap:var(--default-grid-baseline)}._appGridItem_6wxsl_2:hover{background-color:var(--color-primary-element-light-hover)}._appGridItem__content_6wxsl_17{padding-inline:var(--border-radius-element)}._appGridItem__image_6wxsl_21{aspect-ratio:16 / 9;height:min-content;border-start-start-radius:var(--border-radius-element);border-start-end-radius:var(--border-radius-element);overflow:hidden}._appGridItem__name_6wxsl_29{font-size:1.2em;font-weight:var(--font-weight-heading, bold);margin-block:var(--default-grid-baseline) calc(2 * var(--default-grid-baseline))}._appGridItem__badges_6wxsl_35{display:flex;flex-direction:row;gap:var(--default-grid-baseline);padding-inline:var(--border-radius-element);width:100%}._appGrid_xjc6e_2{width:100%;display:grid;gap:calc(4 * var(--default-grid-baseline));grid-template-columns:repeat(auto-fit,minmax(var(--dc9c258c),1fr));padding-inline-start:var(--app-navigation-padding)}._appToolbar_1v7y4_2{display:flex;flex-direction:row;gap:calc(2 * var(--default-grid-baseline));position:absolute;inset-block-start:var(--app-navigation-padding);inset-inline-end:var(--app-sidebar-padding);z-index:999}._appToolbar_1v7y4_2 button:not([aria-pressed=true]):not(:hover){background-color:var(--color-main-background)!important}._appstoreManage_msk54_2,._appstoreSearch_e0puj_2{margin-bottom:var(--body-container-margin)} diff --git a/dist/common-NcTextArea-Dxzj4zdb-B-B2llha.chunk.css b/dist/common-NcTextArea-Dxzj4zdb-CzDMVgRO.chunk.css similarity index 61% rename from dist/common-NcTextArea-Dxzj4zdb-B-B2llha.chunk.css rename to dist/common-NcTextArea-Dxzj4zdb-CzDMVgRO.chunk.css index f3be09ecbe8..5973140ff74 100644 --- a/dist/common-NcTextArea-Dxzj4zdb-B-B2llha.chunk.css +++ b/dist/common-NcTextArea-Dxzj4zdb-CzDMVgRO.chunk.css @@ -1,4 +1,4 @@ -.material-design-icon[data-v-6a2b8de0]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.nc-button-group-base>div[data-v-6a2b8de0]{text-align:center;color:var(--color-text-maxcontrast)}.nc-button-group-base ul.nc-button-group-content[data-v-6a2b8de0]{display:flex;gap:4px;justify-content:space-between}.nc-button-group-base ul.nc-button-group-content li[data-v-6a2b8de0-s]{flex:1 1}.nc-button-group-base ul.nc-button-group-content[data-v-6a2b8de0] .action-button{padding:0!important;width:100%;display:flex;justify-content:center}.nc-button-group-base ul.nc-button-group-content[data-v-6a2b8de0] .action-button.action-button--active{background-color:var(--color-primary-element);border-radius:var(--border-radius-element);color:var(--color-primary-element-text)}.nc-button-group-base ul.nc-button-group-content[data-v-6a2b8de0] .action-button.action-button--active:hover,.nc-button-group-base ul.nc-button-group-content[data-v-6a2b8de0] .action-button.action-button--active:focus,.nc-button-group-base ul.nc-button-group-content[data-v-6a2b8de0] .action-button.action-button--active:focus-within{background-color:var(--color-primary-element-hover)}.nc-button-group-base ul.nc-button-group-content[data-v-6a2b8de0] .action-button .action-button__pressed-icon{display:none}.material-design-icon[data-v-1009e96c]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-caption[data-v-1009e96c]{color:var(--color-text-maxcontrast);line-height:var(--default-clickable-area);white-space:nowrap;text-overflow:ellipsis;box-shadow:none!important;-webkit-user-select:none;user-select:none;pointer-events:none;margin-inline-start:12px;padding-inline-end:14px;height:var(--default-clickable-area);display:flex;align-items:center}.material-design-icon[data-v-2947bc3b]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.action[data-v-2947bc3b]:hover,li.action.active[data-v-2947bc3b]{border-radius:6px;padding:0}li.action[data-v-2947bc3b]:hover{background-color:var(--color-background-hover)}.action--disabled[data-v-2947bc3b]{pointer-events:none;opacity:.5}.action--disabled[data-v-2947bc3b]:hover,.action--disabled[data-v-2947bc3b]:focus{cursor:default;opacity:.5}.action--disabled[data-v-2947bc3b] *{opacity:1!important}.action-checkbox[data-v-2947bc3b]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2);box-sizing:border-box;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:var(--font-weight-element, normal);font-size:var(--default-font-size);line-height:var(--default-clickable-area)}.action-checkbox>span[data-v-2947bc3b]{cursor:pointer;white-space:nowrap}.action-checkbox__icon[data-v-2947bc3b]{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px;background-repeat:no-repeat}.action-checkbox[data-v-2947bc3b] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-checkbox[data-v-2947bc3b] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-checkbox__longtext-wrapper[data-v-2947bc3b],.action-checkbox__longtext[data-v-2947bc3b]{max-width:220px;line-height:1.6em;padding:calc((var(--default-clickable-area) - 1.6em) / 2) 0;cursor:pointer;text-align:start;overflow:hidden;text-overflow:ellipsis}.action-checkbox__longtext[data-v-2947bc3b]{cursor:pointer;white-space:pre-wrap!important}.action-checkbox__name[data-v-2947bc3b]{font-weight:var(--font-weight-heading, bold);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:block}.action-checkbox__description[data-v-2947bc3b]{display:block;white-space:pre-wrap;font-size:var(--font-size-small);font-weight:var(--font-weight-default, normal);line-height:var(--default-line-height);color:var(--color-text-maxcontrast);cursor:pointer}.action-checkbox__menu-icon[data-v-2947bc3b]{margin-inline:auto calc((var(--default-clickable-area) - 16px) / 2 * -1)}.action[data-v-2947bc3b]:has(:focus-visible){outline:2px solid currentColor}.action-checkbox__icon[data-v-2947bc3b]{color:var(--color-primary-element)}.action-checkbox__input[data-v-2947bc3b]{width:20px;height:20px;margin:auto;position:absolute;z-index:-1;opacity:0!important}.material-design-icon[data-v-6c208ddd]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.action[data-v-6c208ddd]:hover,li.action.active[data-v-6c208ddd]{border-radius:6px;padding:0}li.action[data-v-6c208ddd]:hover{background-color:var(--color-background-hover)}.action--disabled[data-v-6c208ddd]{pointer-events:none;opacity:.5}.action--disabled[data-v-6c208ddd]:hover,.action--disabled[data-v-6c208ddd]:focus{cursor:default;opacity:.5}.action--disabled[data-v-6c208ddd] *{opacity:1!important}.action-radio[data-v-6c208ddd]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2);box-sizing:border-box;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:var(--font-weight-element, normal);font-size:var(--default-font-size);line-height:var(--default-clickable-area)}.action-radio>span[data-v-6c208ddd]{cursor:pointer;white-space:nowrap}.action-radio__icon[data-v-6c208ddd]{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px;background-repeat:no-repeat}.action-radio[data-v-6c208ddd] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-radio[data-v-6c208ddd] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-radio__longtext-wrapper[data-v-6c208ddd],.action-radio__longtext[data-v-6c208ddd]{max-width:220px;line-height:1.6em;padding:calc((var(--default-clickable-area) - 1.6em) / 2) 0;cursor:pointer;text-align:start;overflow:hidden;text-overflow:ellipsis}.action-radio__longtext[data-v-6c208ddd]{cursor:pointer;white-space:pre-wrap!important}.action-radio__name[data-v-6c208ddd]{font-weight:var(--font-weight-heading, bold);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:block}.action-radio__description[data-v-6c208ddd]{display:block;white-space:pre-wrap;font-size:var(--font-size-small);font-weight:var(--font-weight-default, normal);line-height:var(--default-line-height);color:var(--color-text-maxcontrast);cursor:pointer}.action-radio__menu-icon[data-v-6c208ddd]{margin-inline:auto calc((var(--default-clickable-area) - 16px) / 2 * -1)}.action[data-v-6c208ddd]:has(:focus-visible){outline:2px solid currentColor}.action-radio__icon[data-v-6c208ddd]{color:var(--color-primary-element)}.action-radio__input[data-v-6c208ddd]{width:20px;height:20px;margin:auto;position:absolute;z-index:-1;opacity:0!important}.material-design-icon[data-v-30af16d1]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}button[data-v-30af16d1]:not(.button-vue),input[data-v-30af16d1]:not([type=range]),textarea[data-v-30af16d1]{margin:0;padding:7px 6px;cursor:text;color:var(--color-main-text);border:1px solid var(--color-border-dark);border-radius:var(--border-radius-element);outline:none;background-color:var(--color-main-background);font-size:13px}button[data-v-30af16d1]:not(.button-vue):not(:disabled):not(.primary):hover,button[data-v-30af16d1]:not(.button-vue):not(:disabled):not(.primary):focus,button:not(.button-vue):not(:disabled):not(.primary).active[data-v-30af16d1],input[data-v-30af16d1]:not([type=range]):not(:disabled):not(.primary):hover,input[data-v-30af16d1]:not([type=range]):not(:disabled):not(.primary):focus,input:not([type=range]):not(:disabled):not(.primary).active[data-v-30af16d1],textarea[data-v-30af16d1]:not(:disabled):not(.primary):hover,textarea[data-v-30af16d1]:not(:disabled):not(.primary):focus,textarea:not(:disabled):not(.primary).active[data-v-30af16d1]{border-color:var(--color-primary-element);outline:none}button[data-v-30af16d1]:not(.button-vue):not(:disabled):not(.primary):active,input[data-v-30af16d1]:not([type=range]):not(:disabled):not(.primary):active,textarea[data-v-30af16d1]:not(:disabled):not(.primary):active{color:var(--color-main-text);outline:none;background-color:var(--color-main-background)}button[data-v-30af16d1]:not(.button-vue):disabled,input[data-v-30af16d1]:not([type=range]):disabled,textarea[data-v-30af16d1]:disabled{cursor:default;opacity:.5;color:var(--color-text-maxcontrast);background-color:var(--color-background-dark)}button[data-v-30af16d1]:not(.button-vue):required,input[data-v-30af16d1]:not([type=range]):required,textarea[data-v-30af16d1]:required{box-shadow:none}button[data-v-30af16d1]:not(.button-vue):invalid,input[data-v-30af16d1]:not([type=range]):invalid,textarea[data-v-30af16d1]:invalid{border-color:var(--color-border-error, var(--color-error));box-shadow:none!important}button:not(.button-vue).primary[data-v-30af16d1],input:not([type=range]).primary[data-v-30af16d1],textarea.primary[data-v-30af16d1]{cursor:pointer;color:var(--color-primary-element-text);border-color:var(--color-primary-element);background-color:var(--color-primary-element)}button:not(.button-vue).primary[data-v-30af16d1]:not(:disabled):hover,button:not(.button-vue).primary[data-v-30af16d1]:not(:disabled):focus,button:not(.button-vue).primary[data-v-30af16d1]:not(:disabled):active,input:not([type=range]).primary[data-v-30af16d1]:not(:disabled):hover,input:not([type=range]).primary[data-v-30af16d1]:not(:disabled):focus,input:not([type=range]).primary[data-v-30af16d1]:not(:disabled):active,textarea.primary[data-v-30af16d1]:not(:disabled):hover,textarea.primary[data-v-30af16d1]:not(:disabled):focus,textarea.primary[data-v-30af16d1]:not(:disabled):active{border-color:var(--color-primary-element-light);background-color:var(--color-primary-element-light)}button:not(.button-vue).primary[data-v-30af16d1]:not(:disabled):active,input:not([type=range]).primary[data-v-30af16d1]:not(:disabled):active,textarea.primary[data-v-30af16d1]:not(:disabled):active{color:var(--color-primary-element-text-dark)}button:not(.button-vue).primary[data-v-30af16d1]:disabled,input:not([type=range]).primary[data-v-30af16d1]:disabled,textarea.primary[data-v-30af16d1]:disabled{cursor:default;color:var(--color-primary-element-text-dark);background-color:var(--color-primary-element)}li.action[data-v-30af16d1]:hover,li.action.active[data-v-30af16d1]{border-radius:6px;padding:0}li.action[data-v-30af16d1]:hover{background-color:var(--color-background-hover)}.action--disabled[data-v-30af16d1]{pointer-events:none;opacity:.5}.action--disabled[data-v-30af16d1]:hover,.action--disabled[data-v-30af16d1]:focus{cursor:default;opacity:.5}.action--disabled[data-v-30af16d1] *{opacity:1!important}.action-text-editable[data-v-30af16d1]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:var(--font-weight-default, normal);line-height:var(--default-clickable-area)}.action-text-editable>span[data-v-30af16d1]{cursor:pointer;white-space:nowrap}.action-text-editable__icon[data-v-30af16d1]{min-width:0;min-height:0;padding:calc(var(--default-clickable-area) / 2) 0 calc(var(--default-clickable-area) / 2) var(--default-clickable-area);background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px}.action-text-editable[data-v-30af16d1] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-text-editable[data-v-30af16d1] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-text-editable__form[data-v-30af16d1]{display:flex;flex:1 1 auto;flex-direction:column;position:relative;margin:4px 0;padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2)}.action-text-editable__submit[data-v-30af16d1]{position:absolute;inset-inline-start:0;top:auto;width:1px;height:1px;overflow:hidden;z-index:-1;opacity:0}.action-text-editable__label[data-v-30af16d1]{display:flex;align-items:center;justify-content:center;position:absolute;inset-inline-end:calc((var(--default-clickable-area) - 16px) / 2 + 1px);bottom:1px;width:calc(var(--default-clickable-area) - 8px);height:calc(var(--default-clickable-area) - 8px);box-sizing:border-box;margin:0;padding:7px 6px;border:0;border-radius:50%;background-color:var(--color-main-background);background-clip:padding-box}.action-text-editable__label[data-v-30af16d1],.action-text-editable__label[data-v-30af16d1] *{cursor:pointer}.action-text-editable__textarea[data-v-30af16d1]{flex:1 1 auto;color:inherit;border-color:var(--color-border-maxcontrast);min-height:calc(var(--default-clickable-area) * 2 - 8px);max-height:calc(var(--default-clickable-area) * 3 - 8px);min-width:calc(var(--default-clickable-area) * 4);width:100%!important;margin:0}.action-text-editable__textarea[data-v-30af16d1]:disabled{cursor:default}.action-text-editable__textarea:not(:active):not(:hover):not(:focus):invalid+.action-text-editable__label[data-v-30af16d1]{background-color:var(--color-error)}.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled)+.action-text-editable__label[data-v-30af16d1]:active,.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled)+.action-text-editable__label[data-v-30af16d1]:hover,.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled)+.action-text-editable__label[data-v-30af16d1]:focus{background-color:var(--color-primary-element);color:var(--color-primary-element-text)}.action-text-editable__textarea:active:not(:disabled)+.action-text-editable__label[data-v-30af16d1],.action-text-editable__textarea:hover:not(:disabled)+.action-text-editable__label[data-v-30af16d1],.action-text-editable__textarea:focus:not(:disabled)+.action-text-editable__label[data-v-30af16d1]{z-index:2;border-color:var(--color-primary-element);border-inline-start-color:transparent}li:last-child>.action-text-editable[data-v-30af16d1]{margin-bottom:calc((var(--default-clickable-area) - 16px) / 2 - 4px)}li:first-child>.action-text-editable[data-v-30af16d1]{margin-top:calc((var(--default-clickable-area) - 16px) / 2 - 4px)}.material-design-icon[data-v-5a15295d]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-toggle-wrapper[data-v-5a15295d]{position:absolute;top:var(--app-navigation-padding);inset-inline-end:calc(0px - var(--app-navigation-padding));margin-inline-end:calc(-1 * var(--default-clickable-area))}button.app-navigation-toggle[data-v-5a15295d]{background-color:var(--color-main-background)}.app-navigation,.app-content{--app-navigation-padding: calc(var(--default-grid-baseline, 4px) * 2)}.material-design-icon[data-v-104ef656]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation[data-v-104ef656]{--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-text-maxcontrast-default));transition:transform var(--animation-quick),margin var(--animation-quick);width:300px;--app-navigation-max-width: calc(100vw - (var(--app-navigation-padding) + var(--default-clickable-area) + var(--default-grid-baseline)));max-width:var(--app-navigation-max-width);position:relative;top:0;inset-inline-start:0;padding:0;z-index:1800;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;flex-grow:0;flex-shrink:0;background-color:transparent}.app-navigation--legacy[data-v-104ef656]{background-color:var(--color-main-background-blur, var(--color-main-background));-webkit-backdrop-filter:var(--filter-background-blur, none);backdrop-filter:var(--filter-background-blur, none)}.app-navigation--closed[data-v-104ef656]{margin-inline-start:calc(-1*min(300px,var(--app-navigation-max-width)))}.app-navigation__search[data-v-104ef656]{width:100%}.app-navigation__body[data-v-104ef656]{overflow-y:scroll}.app-navigation__content>ul[data-v-104ef656]{position:relative;width:100%;overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;gap:var(--default-grid-baseline, 4px);padding:var(--app-navigation-padding)}.app-navigation .app-navigation__list[data-v-104ef656]{height:100%}.app-navigation__body--no-list[data-v-104ef656]{flex:1 1 auto;overflow:auto;height:100%}.app-navigation__content[data-v-104ef656]{height:100%;display:flex;flex-direction:column}[data-themes*=highcontrast] .app-navigation[data-v-104ef656]{border-inline-end:1px solid var(--color-border)}@media only screen and (width<1024px){.app-navigation[data-v-104ef656]{position:absolute;border-inline-end:1px solid var(--color-border);background-color:var(--color-main-background-blur, var(--color-main-background));-webkit-backdrop-filter:var(--filter-background-blur, none);backdrop-filter:var(--filter-background-blur, none)}}@media only screen and (max-width:512px){.app-navigation[data-v-104ef656]{z-index:1400}}.material-design-icon[data-v-d72957ed]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-list[data-v-d72957ed]{position:relative;width:100%;overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;gap:var(--default-grid-baseline, 4px);padding:var(--app-navigation-padding)}.material-design-icon[data-v-f0e411c2]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-caption[data-v-f0e411c2]{display:flex;justify-content:space-between}.app-navigation-caption--heading[data-v-f0e411c2]{padding:var(--app-navigation-padding)}.app-navigation-caption--heading[data-v-f0e411c2]:not(:first-child):not(:last-child){padding:0 var(--app-navigation-padding)}.app-navigation-caption__name[data-v-f0e411c2]{font-weight:var(--font-weight-heading, bold);color:var(--color-main-text);font-size:var(--default-font-size);line-height:var(--default-clickable-area);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:none!important;flex-shrink:0;padding-block:0;padding-inline:calc(var(--default-grid-baseline, 4px) * 2) 0;margin-top:0;margin-bottom:var(--default-grid-baseline)}.app-navigation-caption__actions[data-v-f0e411c2]{flex:0 0 var(--default-clickable-area)}.app-navigation-caption[data-v-f0e411c2]:not(:first-child){margin-top:calc(var(--default-clickable-area) / 2)}.material-design-icon[data-v-04a313f4]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-entry__icon-bullet[data-v-04a313f4]{display:block;padding:calc((var(--default-clickable-area) - 16px) / 2 + 1px)}.app-navigation-entry__icon-bullet div[data-v-04a313f4]{width:14px;height:14px;cursor:pointer;transition:background .1s ease-in-out;border:none;border-radius:50%}.material-design-icon[data-v-acf5ed2f]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.icon-collapse[data-v-acf5ed2f]{position:relative;inset-inline-end:0}.icon-collapse[data-v-acf5ed2f]:hover{background-color:var(--color-background-dark)!important}.icon-collapse--active[data-v-acf5ed2f]:hover{background-color:var(--color-primary-element)!important}.material-design-icon[data-v-e4d562ae]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-entry[data-v-e4d562ae]{position:relative;display:flex;flex-shrink:0;flex-wrap:wrap;width:100%;min-height:var(--default-clickable-area);transition:background-color var(--animation-quick) ease-in-out;transition:background-color .2s ease-in-out;border-radius:var(--border-radius-element)}.app-navigation-entry-wrapper[data-v-e4d562ae]{position:relative;display:flex;flex-shrink:0;flex-wrap:wrap;width:100%}.app-navigation-entry-wrapper.app-navigation-entry--collapsible:not(.app-navigation-entry--opened)>ul[data-v-e4d562ae]{display:none}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-e4d562ae]{background-color:color-mix(in srgb,var(--color-primary-element) 16%,transparent)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-e4d562ae]:hover{background-color:color-mix(in srgb,var(--color-primary-element) 22%,transparent)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-e4d562ae],.app-navigation-entry:not(.app-navigation-entry--legacy).active:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-e4d562ae]{color:var(--color-main-text)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-e4d562ae]:not(.app-navigation-entry--editing):before{content:"";position:absolute;inset-block:calc(var(--default-grid-baseline, 4px) * 2);inset-inline-start:0;width:3px;background-color:var(--color-primary-element);border-radius:999px;animation:nc-nav-stripe-in-e4d562ae var(--animation-quick, .2s) ease-out}.app-navigation-entry.app-navigation-entry--legacy.active[data-v-e4d562ae]{background-color:var(--color-primary-element)!important}.app-navigation-entry.app-navigation-entry--legacy.active[data-v-e4d562ae]:hover{background-color:var(--color-primary-element-hover)!important}.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry-link[data-v-e4d562ae],.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry-button[data-v-e4d562ae]{color:var(--color-primary-element-text)!important}.app-navigation-entry[data-v-e4d562ae]:focus-within,.app-navigation-entry[data-v-e4d562ae]:hover{background-color:var(--color-background-hover)}.app-navigation-entry[data-v-e4d562ae]:not(.app-navigation-entry--legacy):focus-within,.app-navigation-entry[data-v-e4d562ae]:not(.app-navigation-entry--legacy):hover{background-color:color-mix(in srgb,var(--color-primary-element) 8%,transparent)}.app-navigation-entry.active .app-navigation-entry__children[data-v-e4d562ae],.app-navigation-entry:focus-within .app-navigation-entry__children[data-v-e4d562ae],.app-navigation-entry:hover .app-navigation-entry__children[data-v-e4d562ae]{background-color:var(--color-main-background)}.app-navigation-entry.active .app-navigation-entry__utils .app-navigation-entry__actions[data-v-e4d562ae],.app-navigation-entry.app-navigation-entry--deleted .app-navigation-entry__utils .app-navigation-entry__actions[data-v-e4d562ae],.app-navigation-entry:focus .app-navigation-entry__utils .app-navigation-entry__actions[data-v-e4d562ae],.app-navigation-entry:focus-within .app-navigation-entry__utils .app-navigation-entry__actions[data-v-e4d562ae],.app-navigation-entry:hover .app-navigation-entry__utils .app-navigation-entry__actions[data-v-e4d562ae]{display:inline-block}.app-navigation-entry .app-navigation-entry__actions[data-v-e4d562ae]:hover .button-vue{background-color:var(--color-background-dark)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active .app-navigation-entry__actions[data-v-e4d562ae]:hover .button-vue{background-color:var(--color-background-dark)!important}.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry__actions[data-v-e4d562ae]:hover .button-vue{background-color:var(--color-primary-element)!important}.app-navigation-entry.app-navigation-entry--deleted>ul[data-v-e4d562ae]{display:none}.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-e4d562ae],.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-e4d562ae]{padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2)}.app-navigation-entry .app-navigation-entry-link[data-v-e4d562ae],.app-navigation-entry .app-navigation-entry-button[data-v-e4d562ae]{z-index:100;display:flex;overflow:hidden;flex:1 1 0;min-height:var(--default-clickable-area);padding:0;white-space:nowrap;color:var(--color-main-text);font-weight:500;background-repeat:no-repeat;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px 16px;line-height:var(--default-clickable-area)}.app-navigation-entry .app-navigation-entry-link .app-navigation-entry-icon[data-v-e4d562ae],.app-navigation-entry .app-navigation-entry-button .app-navigation-entry-icon[data-v-e4d562ae]{display:flex;align-items:center;flex:0 0 var(--default-clickable-area);justify-content:center;width:var(--default-clickable-area);height:var(--default-clickable-area);background-size:16px 16px;background-repeat:no-repeat;background-position:calc((var(--default-clickable-area) - 16px) / 2) center}.app-navigation-entry .app-navigation-entry-link .app-navigation-entry__name[data-v-e4d562ae],.app-navigation-entry .app-navigation-entry-button .app-navigation-entry__name[data-v-e4d562ae]{overflow:hidden;max-width:100%;white-space:nowrap;text-overflow:ellipsis;font-weight:var(--font-weight-element, normal)}.app-navigation-entry .app-navigation-entry-link .editingContainer[data-v-e4d562ae],.app-navigation-entry .app-navigation-entry-button .editingContainer[data-v-e4d562ae]{width:calc(100% - var(--default-clickable-area));margin:auto}.app-navigation-entry .app-navigation-entry-link[data-v-e4d562ae]:focus-visible,.app-navigation-entry .app-navigation-entry-button[data-v-e4d562ae]:focus-visible{box-shadow:0 0 0 4px var(--color-main-background);outline:2px solid var(--color-main-text);border-radius:var(--border-radius-element)}.app-navigation-entry__children[data-v-e4d562ae]{--app-navigation-item-child-offset: 10px;position:relative;display:flex;flex:0 1 auto;flex-direction:column;width:100%;gap:var(--default-grid-baseline, 4px);padding-inline-start:var(--app-navigation-item-child-offset)}.app-navigation-entry__children .app-navigation-entry[data-v-e4d562ae]{display:inline-flex;flex-wrap:wrap}.app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children[data-v-e4d562ae]{--app-navigation-item-child-offset: 0}.app-navigation-entry__deleted[data-v-e4d562ae]{display:inline-flex;flex:1 1 0;padding-inline-start:calc(var(--default-clickable-area) - (var(--default-clickable-area) - 16px) / 2)!important}.app-navigation-entry__deleted .app-navigation-entry__deleted-description[data-v-e4d562ae]{position:relative;overflow:hidden;flex:1 1 0;white-space:nowrap;text-overflow:ellipsis;line-height:var(--default-clickable-area)}.app-navigation-entry__utils[data-v-e4d562ae]{display:flex;min-width:var(--default-clickable-area);align-items:center;flex:0 1 auto;justify-content:flex-end}.app-navigation-entry__utils.app-navigation-entry__utils--display-actions .action-item.app-navigation-entry__actions[data-v-e4d562ae]{display:inline-block}.app-navigation-entry__utils .app-navigation-entry__counter-wrapper[data-v-e4d562ae]{margin-inline-end:calc(var(--default-grid-baseline) * 2);display:flex;align-items:center;flex:0 1 auto}.app-navigation-entry__utils .action-item.app-navigation-entry__actions[data-v-e4d562ae]{display:none}.app-navigation-entry--editing .app-navigation-entry-edit[data-v-e4d562ae]{z-index:250;opacity:1}.app-navigation-entry--deleted .app-navigation-entry-deleted[data-v-e4d562ae]{z-index:250;transform:translate(0)}.app-navigation-entry--pinned[data-v-e4d562ae]{order:2;margin-top:auto}.app-navigation-entry--pinned~.app-navigation-entry--pinned[data-v-e4d562ae]{margin-top:0}[data-themes*=highcontrast] .app-navigation-entry[data-v-e4d562ae]:active{background-color:var(--color-primary-element-light-hover)!important}@keyframes nc-nav-stripe-in-e4d562ae{0%{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}.material-design-icon[data-v-a8724c7f]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-input-confirm[data-v-a8724c7f]{flex:1 0 100%;width:100%}.app-navigation-input-confirm form[data-v-a8724c7f]{display:flex}.app-navigation-input-confirm__input[data-v-a8724c7f]{height:34px;flex:1 1 100%;font-size:100%!important;margin:5px!important;margin-inline-start:-8px!important;padding:7px!important}.app-navigation-input-confirm__input[data-v-a8724c7f]:active,.app-navigation-input-confirm__input[data-v-a8724c7f]:focus,.app-navigation-input-confirm__input[data-v-a8724c7f]:hover{outline:none;background-color:var(--color-main-background);color:var(--color-main-text);border-color:var(--color-primary-element)}.app-navigation-input-confirm:not(.app-navigation-input-confirm--legacy) form[data-v-a8724c7f]{align-items:center;gap:5px;padding-inline-end:5px}.app-navigation-input-confirm:not(.app-navigation-input-confirm--legacy) .app-navigation-input-confirm__input[data-v-a8724c7f]{margin-inline-end:0!important}.app-navigation-input-confirm[data-v-a8724c7f]:not(.app-navigation-input-confirm--legacy) .button-vue{width:34px!important;min-width:34px!important;height:34px!important;flex:0 0 34px}.material-design-icon[data-v-0ba6c9df]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-new[data-v-0ba6c9df]{display:block;padding:calc(var(--default-grid-baseline, 4px) * 2)}.app-navigation-new button[data-v-0ba6c9df]{width:100%}.material-design-icon[data-v-ee07f8f8]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-entry[data-v-ee07f8f8]{position:relative;display:flex;flex-shrink:0;flex-wrap:wrap;width:100%;min-height:var(--default-clickable-area);transition:background-color var(--animation-quick) ease-in-out;transition:background-color .2s ease-in-out;border-radius:var(--border-radius-element)}.app-navigation-entry-wrapper[data-v-ee07f8f8]{position:relative;display:flex;flex-shrink:0;flex-wrap:wrap;width:100%}.app-navigation-entry-wrapper.app-navigation-entry--collapsible:not(.app-navigation-entry--opened)>ul[data-v-ee07f8f8]{display:none}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-ee07f8f8]{background-color:color-mix(in srgb,var(--color-primary-element) 16%,transparent)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-ee07f8f8]:hover{background-color:color-mix(in srgb,var(--color-primary-element) 22%,transparent)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-ee07f8f8],.app-navigation-entry:not(.app-navigation-entry--legacy).active:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-ee07f8f8]{color:var(--color-main-text)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-ee07f8f8]:not(.app-navigation-entry--editing):before{content:"";position:absolute;inset-block:calc(var(--default-grid-baseline, 4px) * 2);inset-inline-start:0;width:3px;background-color:var(--color-primary-element);border-radius:999px;animation:nc-nav-stripe-in-ee07f8f8 var(--animation-quick, .2s) ease-out}.app-navigation-entry.app-navigation-entry--legacy.active[data-v-ee07f8f8]{background-color:var(--color-primary-element)!important}.app-navigation-entry.app-navigation-entry--legacy.active[data-v-ee07f8f8]:hover{background-color:var(--color-primary-element-hover)!important}.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry-link[data-v-ee07f8f8],.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry-button[data-v-ee07f8f8]{color:var(--color-primary-element-text)!important}.app-navigation-entry[data-v-ee07f8f8]:focus-within,.app-navigation-entry[data-v-ee07f8f8]:hover{background-color:var(--color-background-hover)}.app-navigation-entry[data-v-ee07f8f8]:not(.app-navigation-entry--legacy):focus-within,.app-navigation-entry[data-v-ee07f8f8]:not(.app-navigation-entry--legacy):hover{background-color:color-mix(in srgb,var(--color-primary-element) 8%,transparent)}.app-navigation-entry.active .app-navigation-entry__children[data-v-ee07f8f8],.app-navigation-entry:focus-within .app-navigation-entry__children[data-v-ee07f8f8],.app-navigation-entry:hover .app-navigation-entry__children[data-v-ee07f8f8]{background-color:var(--color-main-background)}.app-navigation-entry.active .app-navigation-entry__utils .app-navigation-entry__actions[data-v-ee07f8f8],.app-navigation-entry.app-navigation-entry--deleted .app-navigation-entry__utils .app-navigation-entry__actions[data-v-ee07f8f8],.app-navigation-entry:focus .app-navigation-entry__utils .app-navigation-entry__actions[data-v-ee07f8f8],.app-navigation-entry:focus-within .app-navigation-entry__utils .app-navigation-entry__actions[data-v-ee07f8f8],.app-navigation-entry:hover .app-navigation-entry__utils .app-navigation-entry__actions[data-v-ee07f8f8]{display:inline-block}.app-navigation-entry .app-navigation-entry__actions[data-v-ee07f8f8]:hover .button-vue{background-color:var(--color-background-dark)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active .app-navigation-entry__actions[data-v-ee07f8f8]:hover .button-vue{background-color:var(--color-background-dark)!important}.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry__actions[data-v-ee07f8f8]:hover .button-vue{background-color:var(--color-primary-element)!important}.app-navigation-entry.app-navigation-entry--deleted>ul[data-v-ee07f8f8]{display:none}.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-ee07f8f8],.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-ee07f8f8]{padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2)}.app-navigation-entry .app-navigation-entry-link[data-v-ee07f8f8],.app-navigation-entry .app-navigation-entry-button[data-v-ee07f8f8]{z-index:100;display:flex;overflow:hidden;flex:1 1 0;min-height:var(--default-clickable-area);padding:0;white-space:nowrap;color:var(--color-main-text);font-weight:500;background-repeat:no-repeat;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px 16px;line-height:var(--default-clickable-area)}.app-navigation-entry .app-navigation-entry-link .app-navigation-entry-icon[data-v-ee07f8f8],.app-navigation-entry .app-navigation-entry-button .app-navigation-entry-icon[data-v-ee07f8f8]{display:flex;align-items:center;flex:0 0 var(--default-clickable-area);justify-content:center;width:var(--default-clickable-area);height:var(--default-clickable-area);background-size:16px 16px;background-repeat:no-repeat;background-position:calc((var(--default-clickable-area) - 16px) / 2) center}.app-navigation-entry .app-navigation-entry-link .app-navigation-entry__name[data-v-ee07f8f8],.app-navigation-entry .app-navigation-entry-button .app-navigation-entry__name[data-v-ee07f8f8]{overflow:hidden;max-width:100%;white-space:nowrap;text-overflow:ellipsis;font-weight:var(--font-weight-element, normal)}.app-navigation-entry .app-navigation-entry-link .editingContainer[data-v-ee07f8f8],.app-navigation-entry .app-navigation-entry-button .editingContainer[data-v-ee07f8f8]{width:calc(100% - var(--default-clickable-area));margin:auto}.app-navigation-entry .app-navigation-entry-link[data-v-ee07f8f8]:focus-visible,.app-navigation-entry .app-navigation-entry-button[data-v-ee07f8f8]:focus-visible{box-shadow:0 0 0 4px var(--color-main-background);outline:2px solid var(--color-main-text);border-radius:var(--border-radius-element)}.app-navigation-entry__children[data-v-ee07f8f8]{--app-navigation-item-child-offset: 10px;position:relative;display:flex;flex:0 1 auto;flex-direction:column;width:100%;gap:var(--default-grid-baseline, 4px);padding-inline-start:var(--app-navigation-item-child-offset)}.app-navigation-entry__children .app-navigation-entry[data-v-ee07f8f8]{display:inline-flex;flex-wrap:wrap}.app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children[data-v-ee07f8f8]{--app-navigation-item-child-offset: 0}.app-navigation-entry__deleted[data-v-ee07f8f8]{display:inline-flex;flex:1 1 0;padding-inline-start:calc(var(--default-clickable-area) - (var(--default-clickable-area) - 16px) / 2)!important}.app-navigation-entry__deleted .app-navigation-entry__deleted-description[data-v-ee07f8f8]{position:relative;overflow:hidden;flex:1 1 0;white-space:nowrap;text-overflow:ellipsis;line-height:var(--default-clickable-area)}.app-navigation-entry__utils[data-v-ee07f8f8]{display:flex;min-width:var(--default-clickable-area);align-items:center;flex:0 1 auto;justify-content:flex-end}.app-navigation-entry__utils.app-navigation-entry__utils--display-actions .action-item.app-navigation-entry__actions[data-v-ee07f8f8]{display:inline-block}.app-navigation-entry__utils .app-navigation-entry__counter-wrapper[data-v-ee07f8f8]{margin-inline-end:calc(var(--default-grid-baseline) * 2);display:flex;align-items:center;flex:0 1 auto}.app-navigation-entry__utils .action-item.app-navigation-entry__actions[data-v-ee07f8f8]{display:none}.app-navigation-entry--editing .app-navigation-entry-edit[data-v-ee07f8f8]{z-index:250;opacity:1}.app-navigation-entry--deleted .app-navigation-entry-deleted[data-v-ee07f8f8]{z-index:250;transform:translate(0)}.app-navigation-entry--pinned[data-v-ee07f8f8]{order:2;margin-top:auto}.app-navigation-entry--pinned~.app-navigation-entry--pinned[data-v-ee07f8f8]{margin-top:0}[data-themes*=highcontrast] .app-navigation-entry[data-v-ee07f8f8]:active{background-color:var(--color-primary-element-light-hover)!important}@keyframes nc-nav-stripe-in-ee07f8f8{0%{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}.app-navigation-new-item__name[data-v-ee07f8f8]{overflow:hidden;max-width:100%;white-space:nowrap;text-overflow:ellipsis;padding-inline-start:7px;font-size:14px}.newItemContainer[data-v-ee07f8f8]{width:calc(100% - var(--default-clickable-area));margin:auto}.material-design-icon[data-v-191b6717]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-search[data-v-191b6717]{display:flex;gap:var(--app-navigation-padding);padding:var(--app-navigation-padding)}.app-navigation-search__input[data-v-191b6717]{--input-padding-end: calc(var(--default-clickable-area) - var(--default-grid-baseline))}.app-navigation-search--has-actions .app-navigation-search__input[data-v-191b6717]{flex-grow:1;z-index:3}.app-navigation-search__actions[data-v-191b6717]{display:flex;gap:var(--default-grid-baseline);margin-inline-start:0;max-width:calc(2 * var(--default-clickable-area) + var(--default-grid-baseline));max-height:var(--default-clickable-area);transition:margin-inline-start var(--animation-quick)}.app-navigation-search__actions--hidden[data-v-191b6717]{margin-inline-start:calc(-1 * var(--default-clickable-area))}._container_RFk6U{margin-top:auto;padding:var(--default-grid-baseline)}._header_2CtDS{margin-block:0 var(--default-grid-baseline);margin-inline:var(--default-grid-baseline)}._button_tAyis{padding-inline:0 calc((var(--default-clickable-area) - 16px) / 2)!important}._button_tAyis .button-vue__text{font-weight:var(--font-weight-default, normal)}._content_--KYD{display:block;padding:10px;margin-bottom:calc(-1 * var(--default-grid-baseline));max-height:300px;overflow-y:auto}._animationActive_DAG1p{transition-duration:var(--animation-slow);transition-property:max-height,padding;overflow-y:hidden!important}._animationStop_fWYQj{max-height:0!important;padding:0 10px!important}.app-navigation-spacer[data-v-277fa710]{flex-shrink:0;height:22px}._material-design-icon_qDIHA{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._appSettingsDialogVersion_8Xr7R{--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));color:var(--color-text-maxcontrast);margin-block-end:calc(8 * var(--default-grid-baseline));margin-inline:var(--form-element-label-offset)}._appSettingsDialogVersion__legacy_7MO71{margin-inline:0}.material-design-icon[data-v-e669a5ef]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-settings[data-v-e669a5ef]:not(.app-settings--legacy){--nav-tint: hsl(from var(--color-primary-element-light) h s calc(l*1.045) );--nav-tint-strong: var(--color-primary-element-light)}.app-settings[data-v-e669a5ef]:not(.app-settings--legacy) .modal-wrapper .modal-container{padding-inline-start:0!important;padding-block-start:0!important;background-color:var(--nav-tint);overflow:hidden;max-width:900px}.app-settings[data-v-e669a5ef]:not(.app-settings--legacy) .dialog__name{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(100%);white-space:nowrap;border:0}.app-settings[data-v-e669a5ef]:not(.app-settings--legacy) .app-settings__navigation{min-width:200px;max-width:200px;flex:0 0 200px;margin-inline-end:0!important;overflow-x:hidden;overflow-y:auto;position:relative}.app-settings[data-v-e669a5ef]:not(.app-settings--legacy) .app-settings__content{padding:calc(3 * var(--default-grid-baseline));background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border-dark);border-start-start-radius:var(--border-radius-element);border-end-start-radius:var(--border-radius-element)}.app-settings:not(.app-settings--legacy) .app-settings__title[data-v-e669a5ef]{box-sizing:border-box;padding:calc(3 * var(--default-grid-baseline));margin:0;font-size:20px;font-weight:700}.app-settings:not(.app-settings--legacy) .navigation-list[data-v-e669a5ef]{height:100%;overflow-y:auto;padding:var(--default-grid-baseline)}.app-settings:not(.app-settings--legacy) .navigation-list__link[data-v-e669a5ef]{position:relative;display:flex;align-items:center;font-size:var(--default-font-size);font-weight:500;height:var(--default-clickable-area);margin:2px 0;line-height:var(--default-clickable-area);border-radius:var(--border-radius-element);padding-inline:calc(2 * var(--default-grid-baseline));cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;background-color:transparent;border:none;color:var(--color-main-text)}.app-settings:not(.app-settings--legacy) .navigation-list__link[data-v-e669a5ef]:hover,.app-settings:not(.app-settings--legacy) .navigation-list__link[data-v-e669a5ef]:focus-visible{background-color:color-mix(in srgb,var(--color-primary-element) 8%,transparent)}.app-settings:not(.app-settings--legacy) .navigation-list__link[data-v-e669a5ef]:focus-visible{outline:2px solid var(--color-main-text);outline-offset:-2px}.app-settings:not(.app-settings--legacy) .navigation-list__link--active[data-v-e669a5ef]{background-color:var(--nav-tint-strong)}.app-settings:not(.app-settings--legacy) .navigation-list__link--active[data-v-e669a5ef]:hover,.app-settings:not(.app-settings--legacy) .navigation-list__link--active[data-v-e669a5ef]:focus-visible{background-color:var(--color-primary-element-light-hover)}.app-settings:not(.app-settings--legacy) .navigation-list__link--active[data-v-e669a5ef]:before{content:"";position:absolute;inset-block:var(--default-grid-baseline);inset-inline-start:0;width:3px;background-color:var(--color-primary-element);border-radius:999px}.app-settings:not(.app-settings--legacy) .navigation-list__link--icon[data-v-e669a5ef]{gap:var(--default-grid-baseline)}.app-settings:not(.app-settings--legacy) .navigation-list__link-icon[data-v-e669a5ef]{display:flex;justify-content:center;align-content:center;width:calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline));max-width:calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline))}@media only screen and (width<1024px){.app-settings[data-v-e669a5ef]:not(.app-settings--legacy) .modal-wrapper .modal-container{padding-inline-start:12px!important;padding-block-start:4px!important;background-color:var(--color-main-background)}.app-settings[data-v-e669a5ef]:not(.app-settings--legacy) .dialog__name{position:static;width:auto;height:auto;margin:0 0 12px;padding-inline-end:var(--default-clickable-area);overflow:visible;clip-path:none;white-space:normal;border:0}.app-settings[data-v-e669a5ef]:not(.app-settings--legacy) .app-settings__content{border:none;border-radius:0}}.app-settings.app-settings--legacy[data-v-e669a5ef] .app-settings__navigation{min-width:200px;margin-inline-end:calc(4 * var(--default-grid-baseline));overflow-x:hidden;overflow-y:auto;position:relative}.app-settings.app-settings--legacy[data-v-e669a5ef] .app-settings__content{padding-inline:calc(4 * var(--default-grid-baseline))}.app-settings.app-settings--legacy .navigation-list[data-v-e669a5ef]{height:100%;overflow-y:auto;padding:calc(3 * var(--default-grid-baseline))}.app-settings.app-settings--legacy .navigation-list__link[data-v-e669a5ef]{display:flex;align-content:center;font-size:16px;height:var(--default-clickable-area);margin:4px 0;line-height:var(--default-clickable-area);border-radius:var(--border-radius-element);font-weight:var(--font-weight-element, bold);padding:0 calc(4 * var(--default-grid-baseline));cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;background-color:transparent;border:none}.app-settings.app-settings--legacy .navigation-list__link[data-v-e669a5ef]:hover,.app-settings.app-settings--legacy .navigation-list__link[data-v-e669a5ef]:focus{background-color:var(--color-background-hover)}.app-settings.app-settings--legacy .navigation-list__link--active[data-v-e669a5ef]{background-color:var(--color-primary-element-light)!important}.app-settings.app-settings--legacy .navigation-list__link--icon[data-v-e669a5ef]{padding-inline-start:calc(2 * var(--default-grid-baseline));gap:var(--default-grid-baseline)}.app-settings.app-settings--legacy .navigation-list__link-icon[data-v-e669a5ef]{display:flex;justify-content:center;align-content:center;width:calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline));max-width:calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline))}@media only screen and (max-width:512px){.app-settings.app-settings--legacy[data-v-e669a5ef] .dialog__name{padding-inline-start:16px}}.material-design-icon[data-v-9f146f2d]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-settings-section[data-v-9f146f2d]{--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));--app-settings-section-text-offset: var(--form-element-label-offset);--app-settings-section-content-gap: calc(6 * var(--default-grid-baseline));margin-block-end:calc(8 * var(--default-grid-baseline))}.app-settings-section__name[data-v-9f146f2d]{margin:0;padding-inline:var(--app-settings-section-text-offset);padding-block:0;font-size:20px;font-weight:var(--font-weight-heading, bold)}.app-settings-section__description[data-v-9f146f2d]{padding-inline:var(--app-settings-section-text-offset);color:var(--color-text-maxcontrast)}.app-settings-section__content[data-v-9f146f2d]{margin-block-start:calc(2 * var(--default-grid-baseline));display:flex;flex-direction:column;justify-content:stretch;gap:var(--app-settings-section-content-gap)}.app-settings-section__legacy[data-v-9f146f2d]{--app-settings-section-text-offset: 0;--app-settings-section-content-gap: 0}._appSettingsSectionShortcuts_RqpkA{display:flex;flex-direction:column;gap:calc(4 * var(--default-grid-baseline))}._material-design-icon_m4vbX{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._sidebarTabsButton_6hxfz{border:none;color:var(--color-main-text);font-size:var(--default-font-size);cursor:pointer;display:flex;flex-direction:column;gap:var(--default-grid-baseline);min-width:var(--default-clickable-area)}._sidebarTabsButton_6hxfz *{cursor:pointer}._sidebarTabsButton_6hxfz:not(._sidebarTabsButton_legacy_Qp20k){position:relative;border-radius:var(--border-radius-element);background-color:var(--color-main-background);padding:var(--default-grid-baseline);padding-block-end:calc(var(--default-grid-baseline) * 2);transition:background-color var(--animation-quick)}._sidebarTabsButton_6hxfz:not(._sidebarTabsButton_legacy_Qp20k):after{content:"";position:absolute;bottom:0;left:50%;width:0;height:4px;border-radius:999px;background-color:var(--color-primary-element);opacity:0;transform:translate(-50%);transition:width var(--animation-quick),opacity var(--animation-quick)}._sidebarTabsButton_6hxfz:not(._sidebarTabsButton_legacy_Qp20k):hover{background-color:var(--color-background-hover)}._sidebarTabsButton_6hxfz:not(._sidebarTabsButton_legacy_Qp20k):focus-visible{outline:2px solid var(--color-main-text);outline-offset:2px}._sidebarTabsButton_legacy_Qp20k{border-bottom:var(--default-grid-baseline) solid transparent!important;border-radius:var(--border-radius-small);background-color:var(--color-main-background);padding:var(--border-radius-small);transition:background-color var(--animation-quick),border-bottom-color var(--animation-quick)}._sidebarTabsButton_legacy_Qp20k:hover{background-color:var(--color-background-hover)!important}._sidebarTabsButton_legacy_Qp20k:active,._sidebarTabsButton_legacy_Qp20k:focus{background-color:var(--color-main-background)!important}._sidebarTabsButton_selected_eBHM-,._sidebarTabsButton_selected_eBHM- *{cursor:default}._sidebarTabsButton_6hxfz:not(._sidebarTabsButton_legacy_Qp20k)._sidebarTabsButton_selected_eBHM-{background-color:var(--color-background-hover)}._sidebarTabsButton_6hxfz:not(._sidebarTabsButton_legacy_Qp20k)._sidebarTabsButton_selected_eBHM-:after{width:80%;opacity:1}._sidebarTabsButton_6hxfz:not(._sidebarTabsButton_legacy_Qp20k)._sidebarTabsButton_selected_eBHM-:hover{background-color:var(--color-background-dark)}._sidebarTabsButton_legacy_Qp20k._sidebarTabsButton_selected_eBHM-{border-bottom-color:var(--color-primary-element)!important;border-bottom-left-radius:0;border-bottom-right-radius:0}._sidebarTabsButton_legacy_Qp20k._sidebarTabsButton_selected_eBHM-:hover{background-color:var(--color-primary-element-light-hover)!important;color:var(--color-primary-element-light-text)!important}._sidebarTabsButton__name_YlW5S{font-weight:var(--font-weight-element, normal);overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}._sidebarTabsButton_legacy_Qp20k._sidebarTabsButton_selected_eBHM- ._sidebarTabsButton__name_YlW5S{font-weight:var(--font-weight-element, bold)}._sidebarTabsButton__icon_MPS-D{display:inline-flex;align-items:center;justify-content:center}._sidebarTabsButton__legacyIcon_rzPOu{background-size:20px;display:flex;align-items:center;justify-content:center}.material-design-icon[data-v-e74d1502]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar-tabs[data-v-e74d1502]{display:flex;flex-direction:column;min-height:0;flex:1 1 100%}.app-sidebar-tabs__nav[data-v-e74d1502]{display:flex;justify-content:stretch;margin:10px 8px 0;border-bottom:1px solid var(--color-border)}.app-sidebar-tabs__nav[data-v-e74d1502]:not(.app-sidebar-tabs__nav--legacy){gap:var(--default-grid-baseline);padding-block-end:var(--default-grid-baseline)}.app-sidebar-tabs__tab[data-v-e74d1502]{flex:1 1 1px}.app-sidebar-tabs__content[data-v-e74d1502]{position:relative;min-height:256px;height:100%}.app-sidebar-tabs__content--multiple[data-v-e74d1502]>:not(section){display:none}.material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}@property --app-sidebar-offset{syntax: ""; initial-value: 0; inherits: true;}body{--app-sidebar-padding: calc(var(--default-grid-baseline, 4px) * 2);--app-sidebar-offset: 0;transition:--app-sidebar-offset 0ms!important}body:has(.app-sidebar.slide-right-enter-active),body:has(.app-sidebar.slide-right-leave-active){transition:--app-sidebar-offset var(--animation-quick)}body:has(.app-sidebar__toggle){--app-sidebar-offset: calc(var(--app-sidebar-padding) + var(--default-clickable-area))}.material-design-icon[data-v-e8979b7f]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar[data-v-e8979b7f]{--app-sidebar-width: clamp(300px, 27vw, 500px);--app-sidebar-padding: calc(var(--default-grid-baseline, 4px) * 2);width:var(--app-sidebar-width);z-index:1500;top:0;inset-inline-end:0;display:flex;overflow-x:hidden;overflow-y:auto;flex-direction:column;flex-shrink:0;height:100%;border-inline-start:1px solid var(--color-border);background:var(--color-main-background);position:relative}.app-sidebar__toggle[data-v-e8979b7f]{position:absolute!important;inset-block-start:var(--app-sidebar-padding);inset-inline-end:var(--app-sidebar-padding);z-index:1001}.app-sidebar .app-sidebar-header[data-v-e8979b7f]{--app-sidebar-close-button-offset: calc(var(--default-clickable-area) + var(--app-sidebar-padding))}.app-sidebar .app-sidebar-header>.app-sidebar__close[data-v-e8979b7f]{position:absolute;z-index:100;top:var(--app-sidebar-padding);inset-inline-end:var(--app-sidebar-padding);width:var(--default-clickable-area);height:var(--default-clickable-area)}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info[data-v-e8979b7f]{flex-direction:row}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__figure[data-v-e8979b7f]{--figure-size: calc(52px + var(--app-sidebar-padding));z-index:2;width:var(--figure-size);height:var(--figure-size);margin:calc(var(--app-sidebar-padding) / 2);border-radius:3px;flex:0 0 auto}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc[data-v-e8979b7f]{padding-inline-start:0;flex:1 1 auto;min-width:0;padding-inline-end:calc(var(--default-clickable-area) + var(--app-sidebar-close-button-offset));padding-top:var(--app-sidebar-padding)}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc.app-sidebar-header__desc--without-actions[data-v-e8979b7f]{padding-inline-end:var(--app-sidebar-close-button-offset)}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc .app-sidebar-header__tertiary-actions[data-v-e8979b7f]{z-index:3;position:absolute;top:calc(var(--app-sidebar-padding) / 2);inset-inline-start:calc(-1 * var(--default-clickable-area));gap:0}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc .app-sidebar-header__menu[data-v-e8979b7f]{top:var(--app-sidebar-padding);inset-inline-end:var(--app-sidebar-close-button-offset);position:absolute}.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__menu[data-v-e8979b7f]{position:absolute;top:var(--app-sidebar-padding);inset-inline-end:var(--app-sidebar-close-button-offset)}.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__desc[data-v-e8979b7f]{padding-inline-end:calc(var(--default-clickable-area) + var(--app-sidebar-close-button-offset))}.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__desc.app-sidebar-header__desc--without-actions[data-v-e8979b7f]{padding-inline-end:var(--app-sidebar-close-button-offset)}.app-sidebar .app-sidebar-header .app-sidebar-header__info[data-v-e8979b7f]{display:flex;flex-direction:column}.app-sidebar .app-sidebar-header__figure[data-v-e8979b7f]{width:100%;height:250px;max-height:250px;background-repeat:no-repeat;background-position:center;background-size:contain}.app-sidebar .app-sidebar-header__figure--with-action[data-v-e8979b7f]{cursor:pointer}.app-sidebar .app-sidebar-header__desc[data-v-e8979b7f]{position:relative;display:flex;flex-direction:row;justify-content:center;align-items:center;padding-inline:var(--app-sidebar-padding);padding-block:var(--app-sidebar-padding) calc(var(--app-sidebar-padding) / 2);gap:0 4px}.app-sidebar .app-sidebar-header__desc--with-tertiary-action[data-v-e8979b7f]{padding-inline-start:6px}.app-sidebar .app-sidebar-header__desc--editable .app-sidebar-header__mainname-form[data-v-e8979b7f],.app-sidebar .app-sidebar-header__desc--with-subname--editable .app-sidebar-header__mainname-form[data-v-e8979b7f]{margin-top:-2px;margin-bottom:-2px}.app-sidebar .app-sidebar-header__desc--with-subname--editable .app-sidebar-header__subname[data-v-e8979b7f]{margin-top:-2px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions[data-v-e8979b7f]{display:flex;height:var(--default-clickable-area);width:var(--default-clickable-area);justify-content:center;flex:0 0 auto}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions .app-sidebar-header__star[data-v-e8979b7f]{box-shadow:none}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions .app-sidebar-header__star[data-v-e8979b7f]:not([aria-pressed=true]):hover{box-shadow:none;background-color:var(--color-background-hover)}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container[data-v-e8979b7f]{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;min-width:0}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container[data-v-e8979b7f]{display:flex;align-items:center;min-height:var(--default-clickable-area)}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname[data-v-e8979b7f]{padding:0;min-height:30px;font-size:20px;line-height:30px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname[data-v-e8979b7f] .linkified{cursor:pointer;text-decoration:underline;margin:0}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname-form[data-v-e8979b7f]{display:flex;flex:1 1 auto;align-items:center}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname-form input.app-sidebar-header__mainname-input[data-v-e8979b7f]{flex:1 1 auto;margin:0;padding:7px;font-size:20px;font-weight:var(--font-weight-heading, bold)}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__menu[data-v-e8979b7f]{margin-inline-start:5px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname[data-v-e8979b7f],.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__subname[data-v-e8979b7f]{overflow:hidden;width:100%;margin:0;white-space:nowrap;text-overflow:ellipsis}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__subname[data-v-e8979b7f]{color:var(--color-text-maxcontrast);font-size:var(--default-font-size);padding:0}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__subname[data-v-e8979b7f] *{vertical-align:text-bottom}.app-sidebar .app-sidebar-header .app-sidebar-header__mainname--hidden[data-v-e8979b7f]{position:absolute;top:0;inset-inline-start:0;margin:0;width:1px;height:1px;overflow:hidden}.app-sidebar .app-sidebar-header__description[data-v-e8979b7f]{display:flex;align-items:center;margin:0 10px}@media only screen and (max-width:512px){.app-sidebar[data-v-e8979b7f]{position:absolute;--app-sidebar-width: 100vw}}.slide-right-leave-active[data-v-e8979b7f],.slide-right-enter-active[data-v-e8979b7f]{transition-duration:var(--animation-quick);transition-property:margin-inline-end}.slide-right-enter-to[data-v-e8979b7f],.slide-right-leave[data-v-e8979b7f]{margin-inline-end:0}.slide-right-enter-from[data-v-e8979b7f],.slide-right-leave-to[data-v-e8979b7f]{margin-inline-end:calc(-1 * var(--app-sidebar-width))}.material-design-icon[data-v-dba10798]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar__tab[data-v-dba10798]{display:none;padding:10px;min-height:100%;max-height:100%;height:100%;overflow:auto}.app-sidebar__tab[data-v-dba10798]:focus{border-color:var(--color-primary-element);box-shadow:0 0 .2em var(--color-primary-element);outline:0}.app-sidebar__tab--active[data-v-dba10798]{display:block}._material-design-icon_M4rJ-{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._assistantButton_BP0M8{--assistant-button-color: var(--color-element-assistant, linear-gradient(238deg, #A569D3 12%, #00679E 39%, #422083 86%));--assistant-button-background-color: var(--color-background-assistant, #F6F5FF);background-image:var(--color-border-assistant, linear-gradient(125deg, #7398FE 50%, #6104A4 125%));border-radius:var(--border-radius-element);height:var(--default-clickable-area);width:fit-content;padding-inline:1px;padding-block:1px 2px}._assistantButton_disabled_UipGr{filter:saturate(.5);opacity:.5}._assistantButton_primary_-LVsB{--assistant-button-color: white;--assistant-button-background-color: var(--color-element-assistant,linear-gradient(238deg, #A569D3 12%, #00679E 39%, #422083 86%))}._assistantButton_primary_-LVsB ._assistantButton__icon_fQ0PP,._assistantButton_primary_-LVsB ._assistantButton__text_3VzI1{color:#fff!important}._assistantButton__button_FAn7N{--button-size: calc(var(--default-clickable-area) - 3px) !important;background-color:var(--assistant-button-background-color)!important;background-image:var(--assistant-button-background-color)!important;border:none!important}._assistantButton__button_FAn7N:hover{filter:brightness(120%)}._assistantButton__text_3VzI1{background-image:var(--assistant-button-color);color:transparent!important;background-clip:text}._material-design-icon_mH0R6{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._assistantIcon_2koBz{display:inline-flex;align-items:center;justify-content:center}._assistantIcon_2koBz:not(._assistantIcon_inline_kJSUg){display:flex;min-height:var(--default-clickable-area);min-width:var(--default-clickable-area)}._assistantIcon__svg_V8CXC{display:inline-block;width:var(--v6629513e);height:var(--v6629513e);max-width:var(--v6629513e);max-height:var(--v6629513e)}._material-design-icon_nSUHm{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._assistantContent_xKBtA{background-image:var(--color-border-assistant, linear-gradient(125deg, #7398FE 50%, #6104A4 125%));border-radius:var(--border-radius-container);padding:2px}._assistantContent__inner_DqkVC{background-color:var(--color-background-assistant, #F6F5FF);border-radius:calc(var(--border-radius-container) - 1px);color:var(--color-main-text);padding:calc(var(--border-radius-container) - 1px);height:100%;width:100%}._fadeTransition_hVFAH{transition:all var(--animation-quick) ease}._fadeTransitionActive_XmkdB{opacity:0;position:absolute}.material-design-icon[data-v-8ebb9fc1]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.fade-enter-active[data-v-8ebb9fc1],.fade-leave-active[data-v-8ebb9fc1]{transition:opacity .3s ease}.fade-enter[data-v-8ebb9fc1],.fade-leave-to[data-v-8ebb9fc1]{opacity:0}.linked-icons[data-v-8ebb9fc1]{display:flex}.linked-icons img[data-v-8ebb9fc1]{padding:12px;height:var(--default-clickable-area);display:block;background-repeat:no-repeat;background-position:center;opacity:.7}.linked-icons img[data-v-8ebb9fc1]:hover{opacity:1}.popovermenu[data-v-8ebb9fc1]{display:none}.popovermenu.open[data-v-8ebb9fc1]{display:block}li.collection-list-item[data-v-8ebb9fc1]{flex-wrap:wrap;height:auto;cursor:pointer;margin-bottom:0!important}li.collection-list-item .collection-avatar[data-v-8ebb9fc1]{margin-top:0}li.collection-list-item form[data-v-8ebb9fc1],li.collection-list-item .collection-item-name[data-v-8ebb9fc1]{flex-basis:10%;flex-grow:1;display:flex}li.collection-list-item .collection-item-name[data-v-8ebb9fc1]{padding:12px 9px}li.collection-list-item input[data-v-8ebb9fc1]{margin-top:4px;border-color:var(--color-border-maxcontrast)}li.collection-list-item input[type=text][data-v-8ebb9fc1]{flex-grow:1}li.collection-list-item .error[data-v-8ebb9fc1],li.collection-list-item .resource-list-details[data-v-8ebb9fc1]{flex-basis:100%;width:100%}li.collection-list-item .resource-list-details li[data-v-8ebb9fc1]{display:flex;margin-inline-start:var(--default-clickable-area);border-radius:3px;cursor:pointer}li.collection-list-item .resource-list-details li[data-v-8ebb9fc1]:hover{background-color:var(--color-background-dark)}li.collection-list-item .resource-list-details li a[data-v-8ebb9fc1]{flex-grow:1;padding:3px;max-width:calc(100% - 30px);display:flex}li.collection-list-item .resource-list-details span[data-v-8ebb9fc1]{display:inline-block;vertical-align:top;margin-inline-end:10px}li.collection-list-item .resource-list-details span.resource-name[data-v-8ebb9fc1]{text-overflow:ellipsis;overflow:hidden;position:relative;vertical-align:top;white-space:nowrap;flex-grow:1;padding:4px}li.collection-list-item .resource-list-details img[data-v-8ebb9fc1]{width:24px;height:24px}li.collection-list-item .resource-list-details .icon-close[data-v-8ebb9fc1]{opacity:.7}li.collection-list-item .resource-list-details .icon-close[data-v-8ebb9fc1]:hover,li.collection-list-item .resource-list-details .icon-close[data-v-8ebb9fc1]:focus{opacity:1}.should-shake[data-v-8ebb9fc1]{animation:shake-8ebb9fc1 .6s 1 linear}@keyframes shake-8ebb9fc1{0%{transform:translate(15px)}20%{transform:translate(-15px)}40%{transform:translate(7px)}60%{transform:translate(-7px)}80%{transform:translate(3px)}to{transform:translate(0)}}.material-design-icon[data-v-0e169eff]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.collection-list[data-v-0e169eff] *{box-sizing:border-box}.collection-list>li[data-v-0e169eff]{display:flex;align-items:center;gap:12px}.collection-list>li>.avatar[data-v-0e169eff]{margin-top:0}#collection-select-container[data-v-0e169eff]{display:flex;flex-direction:column}.v-select span.avatar[data-v-0e169eff]{display:block;padding:16px;opacity:.7;background-repeat:no-repeat;background-position:center}.v-select span.avatar[data-v-0e169eff]:hover{opacity:1}p.hint[data-v-0e169eff]{z-index:1;margin-top:-16px;padding:8px;color:var(--color-text-maxcontrast);line-height:normal}div.avatar[data-v-0e169eff]{width:32px;height:32px;margin:30px 0 0;padding:8px;background-color:var(--color-background-dark)}.icon-projects[data-v-0e169eff]{display:block;padding:8px;background-repeat:no-repeat;background-position:center}.option__wrapper[data-v-0e169eff]{display:flex}.option__wrapper .avatar[data-v-0e169eff]{display:block;width:32px;height:32px;background-color:var(--color-background-darker)!important}.option__wrapper .option__title[data-v-0e169eff]{padding:4px}.fade-enter-active[data-v-0e169eff],.fade-leave-active[data-v-0e169eff]{transition:opacity .5s}.fade-enter[data-v-0e169eff],.fade-leave-to[data-v-0e169eff]{opacity:0}.material-design-icon[data-v-8dabc003]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.dashboard-widget[data-v-8dabc003] .empty-content{text-align:center;padding-top:5vh}.dashboard-widget[data-v-8dabc003] .empty-content.half-screen{padding-top:0;margin-bottom:1vh}.more[data-v-8dabc003]{display:block;text-align:center;color:var(--color-text-maxcontrast);line-height:60px;cursor:pointer}.more[data-v-8dabc003]:hover,.more[data-v-8dabc003]:focus{background-color:var(--color-background-hover);border-radius:var(--border-radius-element);color:var(--color-main-text)}.item-list__entry[data-v-8dabc003]{display:flex;align-items:flex-start;padding:8px}.item-list__entry .item-avatar[data-v-8dabc003]{position:relative;margin-block:auto;background-color:var(--color-background-dark)!important}.item-list__entry .item__details[data-v-8dabc003]{padding-inline-start:8px;max-height:var(--default-clickable-area);flex-grow:1;overflow:hidden;display:flex;flex-direction:column}.item-list__entry .item__details h3[data-v-8dabc003],.item-list__entry .item__details .message[data-v-8dabc003]{white-space:nowrap;background-color:var(--color-background-dark)}.item-list__entry .item__details h3[data-v-8dabc003]{font-size:100%;margin:0}.item-list__entry .item__details .message[data-v-8dabc003]{width:80%;height:15px;margin-top:5px}.material-design-icon[data-v-2c8b617b]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.item-list__entry[data-v-2c8b617b]{display:flex;align-items:center;position:relative;padding:8px}.item-list__entry[data-v-2c8b617b]:hover,.item-list__entry[data-v-2c8b617b]:focus{background-color:var(--color-background-hover);border-radius:var(--border-radius-element)}.item-list__entry .item-avatar[data-v-2c8b617b]{position:relative;margin-top:auto;margin-bottom:auto}.item-list__entry .item__details[data-v-2c8b617b]{padding-inline-start:8px;max-height:fit-content;flex-grow:1;overflow:hidden;display:flex;flex-direction:column;justify-content:center;min-height:var(--default-clickable-area)}.item-list__entry .item__details h3[data-v-2c8b617b],.item-list__entry .item__details .message[data-v-2c8b617b]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-list__entry .item__details .message span[data-v-2c8b617b]{width:10px;display:inline-block;margin-bottom:-3px}.item-list__entry .item__details h3[data-v-2c8b617b]{font-size:100%;margin:0}.item-list__entry .item__details .message[data-v-2c8b617b]{width:100%;color:var(--color-text-maxcontrast)}.item-list__entry .item-icon[data-v-2c8b617b]{position:relative;width:14px;height:14px;margin-top:25px;margin-inline:-10px -2px}.item-list__entry button.primary[data-v-2c8b617b]{padding:21px;margin:0}._filePicker_UHtO-{display:inline-flex;align-items:center;height:var(--default-clickable-area)}._material-design-icon_mubdv{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._ncFormBox_TawZT{display:flex;flex-direction:column;gap:calc(1 * var(--default-grid-baseline))}._ncFormBox_TawZT._ncFormBox_row_ZnhfS{flex-direction:row}._ncFormBox__item_7zc34{border-radius:var(--border-radius-small)!important}._ncFormBox_col_wHCZx{flex-direction:column}._ncFormBox_col_wHCZx ._ncFormBox__item_7zc34:first-child{border-start-start-radius:var(--border-radius-element)!important;border-start-end-radius:var(--border-radius-element)!important}._ncFormBox_col_wHCZx ._ncFormBox__item_7zc34:last-child{border-end-start-radius:var(--border-radius-element)!important;border-end-end-radius:var(--border-radius-element)!important}._ncFormBox_row_ZnhfS{flex-direction:row}._ncFormBox_row_ZnhfS ._ncFormBox__item_7zc34{flex:1 1}._ncFormBox_row_ZnhfS ._ncFormBox__item_7zc34:first-child{border-start-start-radius:var(--border-radius-element)!important;border-end-start-radius:var(--border-radius-element)!important}._ncFormBox_row_ZnhfS ._ncFormBox__item_7zc34:last-child{border-end-end-radius:var(--border-radius-element)!important;border-start-end-radius:var(--border-radius-element)!important}._material-design-icon_RoXMm{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formBoxButton_qQIni{background:unset;border:none;color:inherit;font-size:inherit;font-weight:inherit;text-decoration:none;text-align:inherit;line-height:inherit;padding:0;margin:0;outline:none}._material-design-icon_D2F-K{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formBoxItem_74l6r{--nc-form-box-item-border-width: 1px;--nc-form-box-item-min-height: 40px;--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));--form-element-label-padding: calc(var(--form-element-label-offset) - var(--nc-form-box-item-border-width));--color-primary-element-extra-light: hsl(from var(--color-primary-element-light) h s calc(l*1.045) );--color-primary-element-extra-light-hover: hsl(from var(--color-primary-element-light-hover) h s calc(l*1.045) );position:relative;display:flex;align-items:center;gap:calc(2 * var(--default-grid-baseline));min-height:var(--nc-form-box-item-min-height);padding-inline:var(--form-element-label-padding);border:1px solid var(--color-primary-element-extra-light-hover);border-bottom-width:2px;border-radius:var(--border-radius-element);background-color:var(--color-primary-element-extra-light);color:var(--color-main-text);font-weight:var(--font-weight-element, normal);transition-property:color,border-color,background-color;transition-duration:var(--animation-quick);transition-timing-function:linear;-webkit-user-select:none;user-select:none;cursor:pointer}._formBoxItem_74l6r *{cursor:inherit}._formBoxItem_74l6r:has(:disabled){cursor:default;opacity:.5}._formBoxItem_74l6r:hover:not(:has(:disabled)){color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-extra-light-hover)}._formBoxItem_74l6r:has(:focus-visible){outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background)}._formBoxItem__description_1GjPD{font-weight:var(--font-weight-default, normal)}._formBoxItem_74l6r._formBoxItem_legacy_IgNr3{--nc-form-box-item-border-width: 0px;border:none}._formBoxItem_74l6r._formBoxItem_inverted_9GGkh ._formBoxItem__element_YEZDA{color:var(--color-text-maxcontrast)}._formBoxItem_74l6r._formBoxItem_inverted_9GGkh ._formBoxItem__description_1GjPD{color:inherit}._formBoxItem__content_CcZbG{flex:1;display:flex;flex-direction:column;padding-block:calc(2 * var(--default-grid-baseline));overflow-wrap:anywhere}._formBoxItem__element_YEZDA:after{content:"";position:absolute;inset:0}._formBoxItem__description_1GjPD{color:var(--color-text-maxcontrast)}._formBoxItem__icon_eZXNE{display:flex;align-items:center;justify-content:flex-end}._material-design-icon_YAxyJ{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}input._formBoxSwitch__input_e7y7s{margin:0;width:var(--default-clickable-area);position:absolute;inset-block:0;inset-inline-end:var(--form-element-label-offset);z-index:-1;opacity:0!important;height:auto;cursor:inherit}._material-design-icon_QhThW{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formGroup_sNzER{--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));--form-group-content-gap: calc(2 * var(--default-grid-baseline))}._formGroup_sNzER._formGroup_noGap_ChojB{--form-group-content-gap: 0}._formGroup__label_Z81k5{padding-inline:var(--form-element-label-offset);font-size:var(--font-size);font-weight:var(--font-weight-heading, bold)}._formGroup__description_xWRa-{padding-inline:var(--form-element-label-offset);color:var(--color-text-maxcontrast)}._formGroup__content_wHRjf{display:flex;flex-direction:column;gap:var(--form-group-content-gap);margin-block-start:calc(2.5 * var(--default-grid-baseline))}._formGroup__content_wHRjf._formGroup__content_only_VejcN{margin-block-start:0}.material-design-icon[data-v-92fb182d]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.header-menu[data-v-92fb182d]{position:relative;width:var(--header-height);height:var(--header-height)}.header-menu .header-menu__trigger[data-v-92fb182d]{--button-size: var(--header-height) !important;height:var(--header-height);opacity:.85;filter:none!important;color:var(--color-background-plain-text, var(--color-primary-text))!important}.header-menu .header-menu__trigger[data-v-92fb182d]:focus-visible{outline:none!important;box-shadow:none!important}.header-menu .header-menu__trigger[data-v-92fb182d] .button-vue__icon svg,.header-menu .header-menu__trigger[data-v-92fb182d] .button-vue__icon:not(:has(svg)){mask:var(--header-menu-icon-mask, none)}.header-menu--opened .header-menu__trigger[data-v-92fb182d],.header-menu__trigger[data-v-92fb182d]:hover,.header-menu__trigger[data-v-92fb182d]:focus,.header-menu__trigger[data-v-92fb182d]:active{opacity:1}@media only screen and (max-width:512px){.header-menu[data-v-92fb182d]{width:var(--default-clickable-area)}.header-menu .header-menu__trigger[data-v-92fb182d]{--button-size: var(--default-clickable-area) !important}}.material-design-icon[data-v-d45c5788]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}/*! +.material-design-icon[data-v-6a2b8de0]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.nc-button-group-base>div[data-v-6a2b8de0]{text-align:center;color:var(--color-text-maxcontrast)}.nc-button-group-base ul.nc-button-group-content[data-v-6a2b8de0]{display:flex;gap:4px;justify-content:space-between}.nc-button-group-base ul.nc-button-group-content li[data-v-6a2b8de0-s]{flex:1 1}.nc-button-group-base ul.nc-button-group-content[data-v-6a2b8de0] .action-button{padding:0!important;width:100%;display:flex;justify-content:center}.nc-button-group-base ul.nc-button-group-content[data-v-6a2b8de0] .action-button.action-button--active{background-color:var(--color-primary-element);border-radius:var(--border-radius-element);color:var(--color-primary-element-text)}.nc-button-group-base ul.nc-button-group-content[data-v-6a2b8de0] .action-button.action-button--active:hover,.nc-button-group-base ul.nc-button-group-content[data-v-6a2b8de0] .action-button.action-button--active:focus,.nc-button-group-base ul.nc-button-group-content[data-v-6a2b8de0] .action-button.action-button--active:focus-within{background-color:var(--color-primary-element-hover)}.nc-button-group-base ul.nc-button-group-content[data-v-6a2b8de0] .action-button .action-button__pressed-icon{display:none}.material-design-icon[data-v-1009e96c]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-caption[data-v-1009e96c]{color:var(--color-text-maxcontrast);line-height:var(--default-clickable-area);white-space:nowrap;text-overflow:ellipsis;box-shadow:none!important;-webkit-user-select:none;user-select:none;pointer-events:none;margin-inline-start:12px;padding-inline-end:14px;height:var(--default-clickable-area);display:flex;align-items:center}.material-design-icon[data-v-2947bc3b]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.action[data-v-2947bc3b]:hover,li.action.active[data-v-2947bc3b]{border-radius:6px;padding:0}li.action[data-v-2947bc3b]:hover{background-color:var(--color-background-hover)}.action--disabled[data-v-2947bc3b]{pointer-events:none;opacity:.5}.action--disabled[data-v-2947bc3b]:hover,.action--disabled[data-v-2947bc3b]:focus{cursor:default;opacity:.5}.action--disabled[data-v-2947bc3b] *{opacity:1!important}.action-checkbox[data-v-2947bc3b]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2);box-sizing:border-box;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:var(--font-weight-element, normal);font-size:var(--default-font-size);line-height:var(--default-clickable-area)}.action-checkbox>span[data-v-2947bc3b]{cursor:pointer;white-space:nowrap}.action-checkbox__icon[data-v-2947bc3b]{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px;background-repeat:no-repeat}.action-checkbox[data-v-2947bc3b] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-checkbox[data-v-2947bc3b] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-checkbox__longtext-wrapper[data-v-2947bc3b],.action-checkbox__longtext[data-v-2947bc3b]{max-width:220px;line-height:1.6em;padding:calc((var(--default-clickable-area) - 1.6em) / 2) 0;cursor:pointer;text-align:start;overflow:hidden;text-overflow:ellipsis}.action-checkbox__longtext[data-v-2947bc3b]{cursor:pointer;white-space:pre-wrap!important}.action-checkbox__name[data-v-2947bc3b]{font-weight:var(--font-weight-heading, bold);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:block}.action-checkbox__description[data-v-2947bc3b]{display:block;white-space:pre-wrap;font-size:var(--font-size-small);font-weight:var(--font-weight-default, normal);line-height:var(--default-line-height);color:var(--color-text-maxcontrast);cursor:pointer}.action-checkbox__menu-icon[data-v-2947bc3b]{margin-inline:auto calc((var(--default-clickable-area) - 16px) / 2 * -1)}.action[data-v-2947bc3b]:has(:focus-visible){outline:2px solid currentColor}.action-checkbox__icon[data-v-2947bc3b]{color:var(--color-primary-element)}.action-checkbox__input[data-v-2947bc3b]{width:20px;height:20px;margin:auto;position:absolute;z-index:-1;opacity:0!important}.material-design-icon[data-v-6c208ddd]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.action[data-v-6c208ddd]:hover,li.action.active[data-v-6c208ddd]{border-radius:6px;padding:0}li.action[data-v-6c208ddd]:hover{background-color:var(--color-background-hover)}.action--disabled[data-v-6c208ddd]{pointer-events:none;opacity:.5}.action--disabled[data-v-6c208ddd]:hover,.action--disabled[data-v-6c208ddd]:focus{cursor:default;opacity:.5}.action--disabled[data-v-6c208ddd] *{opacity:1!important}.action-radio[data-v-6c208ddd]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2);box-sizing:border-box;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:var(--font-weight-element, normal);font-size:var(--default-font-size);line-height:var(--default-clickable-area)}.action-radio>span[data-v-6c208ddd]{cursor:pointer;white-space:nowrap}.action-radio__icon[data-v-6c208ddd]{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px;background-repeat:no-repeat}.action-radio[data-v-6c208ddd] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-radio[data-v-6c208ddd] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-radio__longtext-wrapper[data-v-6c208ddd],.action-radio__longtext[data-v-6c208ddd]{max-width:220px;line-height:1.6em;padding:calc((var(--default-clickable-area) - 1.6em) / 2) 0;cursor:pointer;text-align:start;overflow:hidden;text-overflow:ellipsis}.action-radio__longtext[data-v-6c208ddd]{cursor:pointer;white-space:pre-wrap!important}.action-radio__name[data-v-6c208ddd]{font-weight:var(--font-weight-heading, bold);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:block}.action-radio__description[data-v-6c208ddd]{display:block;white-space:pre-wrap;font-size:var(--font-size-small);font-weight:var(--font-weight-default, normal);line-height:var(--default-line-height);color:var(--color-text-maxcontrast);cursor:pointer}.action-radio__menu-icon[data-v-6c208ddd]{margin-inline:auto calc((var(--default-clickable-area) - 16px) / 2 * -1)}.action[data-v-6c208ddd]:has(:focus-visible){outline:2px solid currentColor}.action-radio__icon[data-v-6c208ddd]{color:var(--color-primary-element)}.action-radio__input[data-v-6c208ddd]{width:20px;height:20px;margin:auto;position:absolute;z-index:-1;opacity:0!important}.material-design-icon[data-v-30af16d1]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}button[data-v-30af16d1]:not(.button-vue),input[data-v-30af16d1]:not([type=range]),textarea[data-v-30af16d1]{margin:0;padding:7px 6px;cursor:text;color:var(--color-main-text);border:1px solid var(--color-border-dark);border-radius:var(--border-radius-element);outline:none;background-color:var(--color-main-background);font-size:13px}button[data-v-30af16d1]:not(.button-vue):not(:disabled):not(.primary):hover,button[data-v-30af16d1]:not(.button-vue):not(:disabled):not(.primary):focus,button:not(.button-vue):not(:disabled):not(.primary).active[data-v-30af16d1],input[data-v-30af16d1]:not([type=range]):not(:disabled):not(.primary):hover,input[data-v-30af16d1]:not([type=range]):not(:disabled):not(.primary):focus,input:not([type=range]):not(:disabled):not(.primary).active[data-v-30af16d1],textarea[data-v-30af16d1]:not(:disabled):not(.primary):hover,textarea[data-v-30af16d1]:not(:disabled):not(.primary):focus,textarea:not(:disabled):not(.primary).active[data-v-30af16d1]{border-color:var(--color-primary-element);outline:none}button[data-v-30af16d1]:not(.button-vue):not(:disabled):not(.primary):active,input[data-v-30af16d1]:not([type=range]):not(:disabled):not(.primary):active,textarea[data-v-30af16d1]:not(:disabled):not(.primary):active{color:var(--color-main-text);outline:none;background-color:var(--color-main-background)}button[data-v-30af16d1]:not(.button-vue):disabled,input[data-v-30af16d1]:not([type=range]):disabled,textarea[data-v-30af16d1]:disabled{cursor:default;opacity:.5;color:var(--color-text-maxcontrast);background-color:var(--color-background-dark)}button[data-v-30af16d1]:not(.button-vue):required,input[data-v-30af16d1]:not([type=range]):required,textarea[data-v-30af16d1]:required{box-shadow:none}button[data-v-30af16d1]:not(.button-vue):invalid,input[data-v-30af16d1]:not([type=range]):invalid,textarea[data-v-30af16d1]:invalid{border-color:var(--color-border-error, var(--color-error));box-shadow:none!important}button:not(.button-vue).primary[data-v-30af16d1],input:not([type=range]).primary[data-v-30af16d1],textarea.primary[data-v-30af16d1]{cursor:pointer;color:var(--color-primary-element-text);border-color:var(--color-primary-element);background-color:var(--color-primary-element)}button:not(.button-vue).primary[data-v-30af16d1]:not(:disabled):hover,button:not(.button-vue).primary[data-v-30af16d1]:not(:disabled):focus,button:not(.button-vue).primary[data-v-30af16d1]:not(:disabled):active,input:not([type=range]).primary[data-v-30af16d1]:not(:disabled):hover,input:not([type=range]).primary[data-v-30af16d1]:not(:disabled):focus,input:not([type=range]).primary[data-v-30af16d1]:not(:disabled):active,textarea.primary[data-v-30af16d1]:not(:disabled):hover,textarea.primary[data-v-30af16d1]:not(:disabled):focus,textarea.primary[data-v-30af16d1]:not(:disabled):active{border-color:var(--color-primary-element-light);background-color:var(--color-primary-element-light)}button:not(.button-vue).primary[data-v-30af16d1]:not(:disabled):active,input:not([type=range]).primary[data-v-30af16d1]:not(:disabled):active,textarea.primary[data-v-30af16d1]:not(:disabled):active{color:var(--color-primary-element-text-dark)}button:not(.button-vue).primary[data-v-30af16d1]:disabled,input:not([type=range]).primary[data-v-30af16d1]:disabled,textarea.primary[data-v-30af16d1]:disabled{cursor:default;color:var(--color-primary-element-text-dark);background-color:var(--color-primary-element)}li.action[data-v-30af16d1]:hover,li.action.active[data-v-30af16d1]{border-radius:6px;padding:0}li.action[data-v-30af16d1]:hover{background-color:var(--color-background-hover)}.action--disabled[data-v-30af16d1]{pointer-events:none;opacity:.5}.action--disabled[data-v-30af16d1]:hover,.action--disabled[data-v-30af16d1]:focus{cursor:default;opacity:.5}.action--disabled[data-v-30af16d1] *{opacity:1!important}.action-text-editable[data-v-30af16d1]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:var(--font-weight-default, normal);line-height:var(--default-clickable-area)}.action-text-editable>span[data-v-30af16d1]{cursor:pointer;white-space:nowrap}.action-text-editable__icon[data-v-30af16d1]{min-width:0;min-height:0;padding:calc(var(--default-clickable-area) / 2) 0 calc(var(--default-clickable-area) / 2) var(--default-clickable-area);background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px}.action-text-editable[data-v-30af16d1] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-text-editable[data-v-30af16d1] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-text-editable__form[data-v-30af16d1]{display:flex;flex:1 1 auto;flex-direction:column;position:relative;margin:4px 0;padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2)}.action-text-editable__submit[data-v-30af16d1]{position:absolute;inset-inline-start:0;top:auto;width:1px;height:1px;overflow:hidden;z-index:-1;opacity:0}.action-text-editable__label[data-v-30af16d1]{display:flex;align-items:center;justify-content:center;position:absolute;inset-inline-end:calc((var(--default-clickable-area) - 16px) / 2 + 1px);bottom:1px;width:calc(var(--default-clickable-area) - 8px);height:calc(var(--default-clickable-area) - 8px);box-sizing:border-box;margin:0;padding:7px 6px;border:0;border-radius:50%;background-color:var(--color-main-background);background-clip:padding-box}.action-text-editable__label[data-v-30af16d1],.action-text-editable__label[data-v-30af16d1] *{cursor:pointer}.action-text-editable__textarea[data-v-30af16d1]{flex:1 1 auto;color:inherit;border-color:var(--color-border-maxcontrast);min-height:calc(var(--default-clickable-area) * 2 - 8px);max-height:calc(var(--default-clickable-area) * 3 - 8px);min-width:calc(var(--default-clickable-area) * 4);width:100%!important;margin:0}.action-text-editable__textarea[data-v-30af16d1]:disabled{cursor:default}.action-text-editable__textarea:not(:active):not(:hover):not(:focus):invalid+.action-text-editable__label[data-v-30af16d1]{background-color:var(--color-error)}.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled)+.action-text-editable__label[data-v-30af16d1]:active,.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled)+.action-text-editable__label[data-v-30af16d1]:hover,.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled)+.action-text-editable__label[data-v-30af16d1]:focus{background-color:var(--color-primary-element);color:var(--color-primary-element-text)}.action-text-editable__textarea:active:not(:disabled)+.action-text-editable__label[data-v-30af16d1],.action-text-editable__textarea:hover:not(:disabled)+.action-text-editable__label[data-v-30af16d1],.action-text-editable__textarea:focus:not(:disabled)+.action-text-editable__label[data-v-30af16d1]{z-index:2;border-color:var(--color-primary-element);border-inline-start-color:transparent}li:last-child>.action-text-editable[data-v-30af16d1]{margin-bottom:calc((var(--default-clickable-area) - 16px) / 2 - 4px)}li:first-child>.action-text-editable[data-v-30af16d1]{margin-top:calc((var(--default-clickable-area) - 16px) / 2 - 4px)}.material-design-icon[data-v-5a15295d]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-toggle-wrapper[data-v-5a15295d]{position:absolute;top:var(--app-navigation-padding);inset-inline-end:calc(0px - var(--app-navigation-padding));margin-inline-end:calc(-1 * var(--default-clickable-area))}button.app-navigation-toggle[data-v-5a15295d]{background-color:var(--color-main-background)}.app-navigation,.app-content{--app-navigation-padding: calc(var(--default-grid-baseline, 4px) * 2)}.material-design-icon[data-v-104ef656]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation[data-v-104ef656]{--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-text-maxcontrast-default));transition:transform var(--animation-quick),margin var(--animation-quick);width:300px;--app-navigation-max-width: calc(100vw - (var(--app-navigation-padding) + var(--default-clickable-area) + var(--default-grid-baseline)));max-width:var(--app-navigation-max-width);position:relative;top:0;inset-inline-start:0;padding:0;z-index:1800;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;flex-grow:0;flex-shrink:0;background-color:transparent}.app-navigation--legacy[data-v-104ef656]{background-color:var(--color-main-background-blur, var(--color-main-background));-webkit-backdrop-filter:var(--filter-background-blur, none);backdrop-filter:var(--filter-background-blur, none)}.app-navigation--closed[data-v-104ef656]{margin-inline-start:calc(-1*min(300px,var(--app-navigation-max-width)))}.app-navigation__search[data-v-104ef656]{width:100%}.app-navigation__body[data-v-104ef656]{overflow-y:scroll}.app-navigation__content>ul[data-v-104ef656]{position:relative;width:100%;overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;gap:var(--default-grid-baseline, 4px);padding:var(--app-navigation-padding)}.app-navigation .app-navigation__list[data-v-104ef656]{height:100%}.app-navigation__body--no-list[data-v-104ef656]{flex:1 1 auto;overflow:auto;height:100%}.app-navigation__content[data-v-104ef656]{height:100%;display:flex;flex-direction:column}[data-themes*=highcontrast] .app-navigation[data-v-104ef656]{border-inline-end:1px solid var(--color-border)}@media only screen and (width<1024px){.app-navigation[data-v-104ef656]{position:absolute;border-inline-end:1px solid var(--color-border);background-color:var(--color-main-background-blur, var(--color-main-background));-webkit-backdrop-filter:var(--filter-background-blur, none);backdrop-filter:var(--filter-background-blur, none)}}@media only screen and (max-width:512px){.app-navigation[data-v-104ef656]{z-index:1400}}.material-design-icon[data-v-d72957ed]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-list[data-v-d72957ed]{position:relative;width:100%;overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;gap:var(--default-grid-baseline, 4px);padding:var(--app-navigation-padding)}.material-design-icon[data-v-f0e411c2]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-caption[data-v-f0e411c2]{display:flex;justify-content:space-between}.app-navigation-caption--heading[data-v-f0e411c2]{padding:var(--app-navigation-padding)}.app-navigation-caption--heading[data-v-f0e411c2]:not(:first-child):not(:last-child){padding:0 var(--app-navigation-padding)}.app-navigation-caption__name[data-v-f0e411c2]{font-weight:var(--font-weight-heading, bold);color:var(--color-main-text);font-size:var(--default-font-size);line-height:var(--default-clickable-area);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:none!important;flex-shrink:0;padding-block:0;padding-inline:calc(var(--default-grid-baseline, 4px) * 2) 0;margin-top:0;margin-bottom:var(--default-grid-baseline)}.app-navigation-caption__actions[data-v-f0e411c2]{flex:0 0 var(--default-clickable-area)}.app-navigation-caption[data-v-f0e411c2]:not(:first-child){margin-top:calc(var(--default-clickable-area) / 2)}.material-design-icon[data-v-04a313f4]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-entry__icon-bullet[data-v-04a313f4]{display:block;padding:calc((var(--default-clickable-area) - 16px) / 2 + 1px)}.app-navigation-entry__icon-bullet div[data-v-04a313f4]{width:14px;height:14px;cursor:pointer;transition:background .1s ease-in-out;border:none;border-radius:50%}.material-design-icon[data-v-acf5ed2f]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.icon-collapse[data-v-acf5ed2f]{position:relative;inset-inline-end:0}.icon-collapse[data-v-acf5ed2f]:hover{background-color:var(--color-background-dark)!important}.icon-collapse--active[data-v-acf5ed2f]:hover{background-color:var(--color-primary-element)!important}.material-design-icon[data-v-e4d562ae]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-entry[data-v-e4d562ae]{position:relative;display:flex;flex-shrink:0;flex-wrap:wrap;width:100%;min-height:var(--default-clickable-area);transition:background-color var(--animation-quick) ease-in-out;transition:background-color .2s ease-in-out;border-radius:var(--border-radius-element)}.app-navigation-entry-wrapper[data-v-e4d562ae]{position:relative;display:flex;flex-shrink:0;flex-wrap:wrap;width:100%}.app-navigation-entry-wrapper.app-navigation-entry--collapsible:not(.app-navigation-entry--opened)>ul[data-v-e4d562ae]{display:none}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-e4d562ae]{background-color:color-mix(in srgb,var(--color-primary-element) 16%,transparent)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-e4d562ae]:hover{background-color:color-mix(in srgb,var(--color-primary-element) 22%,transparent)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-e4d562ae],.app-navigation-entry:not(.app-navigation-entry--legacy).active:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-e4d562ae]{color:var(--color-main-text)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-e4d562ae]:not(.app-navigation-entry--editing):before{content:"";position:absolute;inset-block:calc(var(--default-grid-baseline, 4px) * 2);inset-inline-start:0;width:3px;background-color:var(--color-primary-element);border-radius:999px;animation:nc-nav-stripe-in-e4d562ae var(--animation-quick, .2s) ease-out}.app-navigation-entry.app-navigation-entry--legacy.active[data-v-e4d562ae]{background-color:var(--color-primary-element)!important}.app-navigation-entry.app-navigation-entry--legacy.active[data-v-e4d562ae]:hover{background-color:var(--color-primary-element-hover)!important}.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry-link[data-v-e4d562ae],.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry-button[data-v-e4d562ae]{color:var(--color-primary-element-text)!important}.app-navigation-entry[data-v-e4d562ae]:focus-within,.app-navigation-entry[data-v-e4d562ae]:hover{background-color:var(--color-background-hover)}.app-navigation-entry[data-v-e4d562ae]:not(.app-navigation-entry--legacy):focus-within,.app-navigation-entry[data-v-e4d562ae]:not(.app-navigation-entry--legacy):hover{background-color:color-mix(in srgb,var(--color-primary-element) 8%,transparent)}.app-navigation-entry.active .app-navigation-entry__children[data-v-e4d562ae],.app-navigation-entry:focus-within .app-navigation-entry__children[data-v-e4d562ae],.app-navigation-entry:hover .app-navigation-entry__children[data-v-e4d562ae]{background-color:var(--color-main-background)}.app-navigation-entry.active .app-navigation-entry__utils .app-navigation-entry__actions[data-v-e4d562ae],.app-navigation-entry.app-navigation-entry--deleted .app-navigation-entry__utils .app-navigation-entry__actions[data-v-e4d562ae],.app-navigation-entry:focus .app-navigation-entry__utils .app-navigation-entry__actions[data-v-e4d562ae],.app-navigation-entry:focus-within .app-navigation-entry__utils .app-navigation-entry__actions[data-v-e4d562ae],.app-navigation-entry:hover .app-navigation-entry__utils .app-navigation-entry__actions[data-v-e4d562ae]{display:inline-block}.app-navigation-entry .app-navigation-entry__actions[data-v-e4d562ae]:hover .button-vue{background-color:var(--color-background-dark)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active .app-navigation-entry__actions[data-v-e4d562ae]:hover .button-vue{background-color:var(--color-background-dark)!important}.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry__actions[data-v-e4d562ae]:hover .button-vue{background-color:var(--color-primary-element)!important}.app-navigation-entry.app-navigation-entry--deleted>ul[data-v-e4d562ae]{display:none}.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-e4d562ae],.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-e4d562ae]{padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2)}.app-navigation-entry .app-navigation-entry-link[data-v-e4d562ae],.app-navigation-entry .app-navigation-entry-button[data-v-e4d562ae]{z-index:100;display:flex;overflow:hidden;flex:1 1 0;min-height:var(--default-clickable-area);padding:0;white-space:nowrap;color:var(--color-main-text);font-weight:500;background-repeat:no-repeat;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px 16px;line-height:var(--default-clickable-area)}.app-navigation-entry .app-navigation-entry-link .app-navigation-entry-icon[data-v-e4d562ae],.app-navigation-entry .app-navigation-entry-button .app-navigation-entry-icon[data-v-e4d562ae]{display:flex;align-items:center;flex:0 0 var(--default-clickable-area);justify-content:center;width:var(--default-clickable-area);height:var(--default-clickable-area);background-size:16px 16px;background-repeat:no-repeat;background-position:calc((var(--default-clickable-area) - 16px) / 2) center}.app-navigation-entry .app-navigation-entry-link .app-navigation-entry__name[data-v-e4d562ae],.app-navigation-entry .app-navigation-entry-button .app-navigation-entry__name[data-v-e4d562ae]{overflow:hidden;max-width:100%;white-space:nowrap;text-overflow:ellipsis;font-weight:var(--font-weight-element, normal)}.app-navigation-entry .app-navigation-entry-link .editingContainer[data-v-e4d562ae],.app-navigation-entry .app-navigation-entry-button .editingContainer[data-v-e4d562ae]{width:calc(100% - var(--default-clickable-area));margin:auto}.app-navigation-entry .app-navigation-entry-link[data-v-e4d562ae]:focus-visible,.app-navigation-entry .app-navigation-entry-button[data-v-e4d562ae]:focus-visible{box-shadow:0 0 0 4px var(--color-main-background);outline:2px solid var(--color-main-text);border-radius:var(--border-radius-element)}.app-navigation-entry__children[data-v-e4d562ae]{--app-navigation-item-child-offset: 10px;position:relative;display:flex;flex:0 1 auto;flex-direction:column;width:100%;gap:var(--default-grid-baseline, 4px);padding-inline-start:var(--app-navigation-item-child-offset)}.app-navigation-entry__children .app-navigation-entry[data-v-e4d562ae]{display:inline-flex;flex-wrap:wrap}.app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children[data-v-e4d562ae]{--app-navigation-item-child-offset: 0}.app-navigation-entry__deleted[data-v-e4d562ae]{display:inline-flex;flex:1 1 0;padding-inline-start:calc(var(--default-clickable-area) - (var(--default-clickable-area) - 16px) / 2)!important}.app-navigation-entry__deleted .app-navigation-entry__deleted-description[data-v-e4d562ae]{position:relative;overflow:hidden;flex:1 1 0;white-space:nowrap;text-overflow:ellipsis;line-height:var(--default-clickable-area)}.app-navigation-entry__utils[data-v-e4d562ae]{display:flex;min-width:var(--default-clickable-area);align-items:center;flex:0 1 auto;justify-content:flex-end}.app-navigation-entry__utils.app-navigation-entry__utils--display-actions .action-item.app-navigation-entry__actions[data-v-e4d562ae]{display:inline-block}.app-navigation-entry__utils .app-navigation-entry__counter-wrapper[data-v-e4d562ae]{margin-inline-end:calc(var(--default-grid-baseline) * 2);display:flex;align-items:center;flex:0 1 auto}.app-navigation-entry__utils .action-item.app-navigation-entry__actions[data-v-e4d562ae]{display:none}.app-navigation-entry--editing .app-navigation-entry-edit[data-v-e4d562ae]{z-index:250;opacity:1}.app-navigation-entry--deleted .app-navigation-entry-deleted[data-v-e4d562ae]{z-index:250;transform:translate(0)}.app-navigation-entry--pinned[data-v-e4d562ae]{order:2;margin-top:auto}.app-navigation-entry--pinned~.app-navigation-entry--pinned[data-v-e4d562ae]{margin-top:0}[data-themes*=highcontrast] .app-navigation-entry[data-v-e4d562ae]:active{background-color:var(--color-primary-element-light-hover)!important}@keyframes nc-nav-stripe-in-e4d562ae{0%{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}.material-design-icon[data-v-a8724c7f]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-input-confirm[data-v-a8724c7f]{flex:1 0 100%;width:100%}.app-navigation-input-confirm form[data-v-a8724c7f]{display:flex}.app-navigation-input-confirm__input[data-v-a8724c7f]{height:34px;flex:1 1 100%;font-size:100%!important;margin:5px!important;margin-inline-start:-8px!important;padding:7px!important}.app-navigation-input-confirm__input[data-v-a8724c7f]:active,.app-navigation-input-confirm__input[data-v-a8724c7f]:focus,.app-navigation-input-confirm__input[data-v-a8724c7f]:hover{outline:none;background-color:var(--color-main-background);color:var(--color-main-text);border-color:var(--color-primary-element)}.app-navigation-input-confirm:not(.app-navigation-input-confirm--legacy) form[data-v-a8724c7f]{align-items:center;gap:5px;padding-inline-end:5px}.app-navigation-input-confirm:not(.app-navigation-input-confirm--legacy) .app-navigation-input-confirm__input[data-v-a8724c7f]{margin-inline-end:0!important}.app-navigation-input-confirm[data-v-a8724c7f]:not(.app-navigation-input-confirm--legacy) .button-vue{width:34px!important;min-width:34px!important;height:34px!important;flex:0 0 34px}.material-design-icon[data-v-0ba6c9df]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-new[data-v-0ba6c9df]{display:block;padding:calc(var(--default-grid-baseline, 4px) * 2)}.app-navigation-new button[data-v-0ba6c9df]{width:100%}.material-design-icon[data-v-ee07f8f8]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-entry[data-v-ee07f8f8]{position:relative;display:flex;flex-shrink:0;flex-wrap:wrap;width:100%;min-height:var(--default-clickable-area);transition:background-color var(--animation-quick) ease-in-out;transition:background-color .2s ease-in-out;border-radius:var(--border-radius-element)}.app-navigation-entry-wrapper[data-v-ee07f8f8]{position:relative;display:flex;flex-shrink:0;flex-wrap:wrap;width:100%}.app-navigation-entry-wrapper.app-navigation-entry--collapsible:not(.app-navigation-entry--opened)>ul[data-v-ee07f8f8]{display:none}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-ee07f8f8]{background-color:color-mix(in srgb,var(--color-primary-element) 16%,transparent)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-ee07f8f8]:hover{background-color:color-mix(in srgb,var(--color-primary-element) 22%,transparent)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-ee07f8f8],.app-navigation-entry:not(.app-navigation-entry--legacy).active:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-ee07f8f8]{color:var(--color-main-text)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-ee07f8f8]:not(.app-navigation-entry--editing):before{content:"";position:absolute;inset-block:calc(var(--default-grid-baseline, 4px) * 2);inset-inline-start:0;width:3px;background-color:var(--color-primary-element);border-radius:999px;animation:nc-nav-stripe-in-ee07f8f8 var(--animation-quick, .2s) ease-out}.app-navigation-entry.app-navigation-entry--legacy.active[data-v-ee07f8f8]{background-color:var(--color-primary-element)!important}.app-navigation-entry.app-navigation-entry--legacy.active[data-v-ee07f8f8]:hover{background-color:var(--color-primary-element-hover)!important}.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry-link[data-v-ee07f8f8],.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry-button[data-v-ee07f8f8]{color:var(--color-primary-element-text)!important}.app-navigation-entry[data-v-ee07f8f8]:focus-within,.app-navigation-entry[data-v-ee07f8f8]:hover{background-color:var(--color-background-hover)}.app-navigation-entry[data-v-ee07f8f8]:not(.app-navigation-entry--legacy):focus-within,.app-navigation-entry[data-v-ee07f8f8]:not(.app-navigation-entry--legacy):hover{background-color:color-mix(in srgb,var(--color-primary-element) 8%,transparent)}.app-navigation-entry.active .app-navigation-entry__children[data-v-ee07f8f8],.app-navigation-entry:focus-within .app-navigation-entry__children[data-v-ee07f8f8],.app-navigation-entry:hover .app-navigation-entry__children[data-v-ee07f8f8]{background-color:var(--color-main-background)}.app-navigation-entry.active .app-navigation-entry__utils .app-navigation-entry__actions[data-v-ee07f8f8],.app-navigation-entry.app-navigation-entry--deleted .app-navigation-entry__utils .app-navigation-entry__actions[data-v-ee07f8f8],.app-navigation-entry:focus .app-navigation-entry__utils .app-navigation-entry__actions[data-v-ee07f8f8],.app-navigation-entry:focus-within .app-navigation-entry__utils .app-navigation-entry__actions[data-v-ee07f8f8],.app-navigation-entry:hover .app-navigation-entry__utils .app-navigation-entry__actions[data-v-ee07f8f8]{display:inline-block}.app-navigation-entry .app-navigation-entry__actions[data-v-ee07f8f8]:hover .button-vue{background-color:var(--color-background-dark)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active .app-navigation-entry__actions[data-v-ee07f8f8]:hover .button-vue{background-color:var(--color-background-dark)!important}.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry__actions[data-v-ee07f8f8]:hover .button-vue{background-color:var(--color-primary-element)!important}.app-navigation-entry.app-navigation-entry--deleted>ul[data-v-ee07f8f8]{display:none}.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-ee07f8f8],.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-ee07f8f8]{padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2)}.app-navigation-entry .app-navigation-entry-link[data-v-ee07f8f8],.app-navigation-entry .app-navigation-entry-button[data-v-ee07f8f8]{z-index:100;display:flex;overflow:hidden;flex:1 1 0;min-height:var(--default-clickable-area);padding:0;white-space:nowrap;color:var(--color-main-text);font-weight:500;background-repeat:no-repeat;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px 16px;line-height:var(--default-clickable-area)}.app-navigation-entry .app-navigation-entry-link .app-navigation-entry-icon[data-v-ee07f8f8],.app-navigation-entry .app-navigation-entry-button .app-navigation-entry-icon[data-v-ee07f8f8]{display:flex;align-items:center;flex:0 0 var(--default-clickable-area);justify-content:center;width:var(--default-clickable-area);height:var(--default-clickable-area);background-size:16px 16px;background-repeat:no-repeat;background-position:calc((var(--default-clickable-area) - 16px) / 2) center}.app-navigation-entry .app-navigation-entry-link .app-navigation-entry__name[data-v-ee07f8f8],.app-navigation-entry .app-navigation-entry-button .app-navigation-entry__name[data-v-ee07f8f8]{overflow:hidden;max-width:100%;white-space:nowrap;text-overflow:ellipsis;font-weight:var(--font-weight-element, normal)}.app-navigation-entry .app-navigation-entry-link .editingContainer[data-v-ee07f8f8],.app-navigation-entry .app-navigation-entry-button .editingContainer[data-v-ee07f8f8]{width:calc(100% - var(--default-clickable-area));margin:auto}.app-navigation-entry .app-navigation-entry-link[data-v-ee07f8f8]:focus-visible,.app-navigation-entry .app-navigation-entry-button[data-v-ee07f8f8]:focus-visible{box-shadow:0 0 0 4px var(--color-main-background);outline:2px solid var(--color-main-text);border-radius:var(--border-radius-element)}.app-navigation-entry__children[data-v-ee07f8f8]{--app-navigation-item-child-offset: 10px;position:relative;display:flex;flex:0 1 auto;flex-direction:column;width:100%;gap:var(--default-grid-baseline, 4px);padding-inline-start:var(--app-navigation-item-child-offset)}.app-navigation-entry__children .app-navigation-entry[data-v-ee07f8f8]{display:inline-flex;flex-wrap:wrap}.app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children[data-v-ee07f8f8]{--app-navigation-item-child-offset: 0}.app-navigation-entry__deleted[data-v-ee07f8f8]{display:inline-flex;flex:1 1 0;padding-inline-start:calc(var(--default-clickable-area) - (var(--default-clickable-area) - 16px) / 2)!important}.app-navigation-entry__deleted .app-navigation-entry__deleted-description[data-v-ee07f8f8]{position:relative;overflow:hidden;flex:1 1 0;white-space:nowrap;text-overflow:ellipsis;line-height:var(--default-clickable-area)}.app-navigation-entry__utils[data-v-ee07f8f8]{display:flex;min-width:var(--default-clickable-area);align-items:center;flex:0 1 auto;justify-content:flex-end}.app-navigation-entry__utils.app-navigation-entry__utils--display-actions .action-item.app-navigation-entry__actions[data-v-ee07f8f8]{display:inline-block}.app-navigation-entry__utils .app-navigation-entry__counter-wrapper[data-v-ee07f8f8]{margin-inline-end:calc(var(--default-grid-baseline) * 2);display:flex;align-items:center;flex:0 1 auto}.app-navigation-entry__utils .action-item.app-navigation-entry__actions[data-v-ee07f8f8]{display:none}.app-navigation-entry--editing .app-navigation-entry-edit[data-v-ee07f8f8]{z-index:250;opacity:1}.app-navigation-entry--deleted .app-navigation-entry-deleted[data-v-ee07f8f8]{z-index:250;transform:translate(0)}.app-navigation-entry--pinned[data-v-ee07f8f8]{order:2;margin-top:auto}.app-navigation-entry--pinned~.app-navigation-entry--pinned[data-v-ee07f8f8]{margin-top:0}[data-themes*=highcontrast] .app-navigation-entry[data-v-ee07f8f8]:active{background-color:var(--color-primary-element-light-hover)!important}@keyframes nc-nav-stripe-in-ee07f8f8{0%{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}.app-navigation-new-item__name[data-v-ee07f8f8]{overflow:hidden;max-width:100%;white-space:nowrap;text-overflow:ellipsis;padding-inline-start:7px;font-size:14px}.newItemContainer[data-v-ee07f8f8]{width:calc(100% - var(--default-clickable-area));margin:auto}.material-design-icon[data-v-191b6717]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-search[data-v-191b6717]{display:flex;gap:var(--app-navigation-padding);padding:var(--app-navigation-padding)}.app-navigation-search__input[data-v-191b6717]{--input-padding-end: calc(var(--default-clickable-area) - var(--default-grid-baseline))}.app-navigation-search--has-actions .app-navigation-search__input[data-v-191b6717]{flex-grow:1;z-index:3}.app-navigation-search__actions[data-v-191b6717]{display:flex;gap:var(--default-grid-baseline);margin-inline-start:0;max-width:calc(2 * var(--default-clickable-area) + var(--default-grid-baseline));max-height:var(--default-clickable-area);transition:margin-inline-start var(--animation-quick)}.app-navigation-search__actions--hidden[data-v-191b6717]{margin-inline-start:calc(-1 * var(--default-clickable-area))}._container_RFk6U{margin-top:auto;padding:var(--default-grid-baseline)}._header_2CtDS{margin-block:0 var(--default-grid-baseline);margin-inline:var(--default-grid-baseline)}._button_tAyis{padding-inline:0 calc((var(--default-clickable-area) - 16px) / 2)!important;.button-vue__text{font-weight:var(--font-weight-default, normal)}}._content_--KYD{display:block;padding:10px;margin-bottom:calc(-1 * var(--default-grid-baseline));max-height:300px;overflow-y:auto}._animationActive_DAG1p{transition-duration:var(--animation-slow);transition-property:max-height,padding;overflow-y:hidden!important}._animationStop_fWYQj{max-height:0!important;padding:0 10px!important}.app-navigation-spacer[data-v-277fa710]{flex-shrink:0;height:22px}._material-design-icon_qDIHA{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._appSettingsDialogVersion_8Xr7R{--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));color:var(--color-text-maxcontrast);margin-block-end:calc(8 * var(--default-grid-baseline));margin-inline:var(--form-element-label-offset)}._appSettingsDialogVersion__legacy_7MO71{margin-inline:0}.material-design-icon[data-v-e669a5ef]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-settings[data-v-e669a5ef]:not(.app-settings--legacy){--nav-tint: hsl(from var(--color-primary-element-light) h s calc(l*1.045) );--nav-tint-strong: var(--color-primary-element-light)}.app-settings[data-v-e669a5ef]:not(.app-settings--legacy) .modal-wrapper .modal-container{padding-inline-start:0!important;padding-block-start:0!important;background-color:var(--nav-tint);overflow:hidden;max-width:900px}.app-settings[data-v-e669a5ef]:not(.app-settings--legacy) .dialog__name{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(100%);white-space:nowrap;border:0}.app-settings[data-v-e669a5ef]:not(.app-settings--legacy) .app-settings__navigation{min-width:200px;max-width:200px;flex:0 0 200px;margin-inline-end:0!important;overflow-x:hidden;overflow-y:auto;position:relative}.app-settings[data-v-e669a5ef]:not(.app-settings--legacy) .app-settings__content{padding:calc(3 * var(--default-grid-baseline));background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border-dark);border-start-start-radius:var(--border-radius-element);border-end-start-radius:var(--border-radius-element)}.app-settings:not(.app-settings--legacy) .app-settings__title[data-v-e669a5ef]{box-sizing:border-box;padding:calc(3 * var(--default-grid-baseline));margin:0;font-size:20px;font-weight:700}.app-settings:not(.app-settings--legacy) .navigation-list[data-v-e669a5ef]{height:100%;overflow-y:auto;padding:var(--default-grid-baseline)}.app-settings:not(.app-settings--legacy) .navigation-list__link[data-v-e669a5ef]{position:relative;display:flex;align-items:center;font-size:var(--default-font-size);font-weight:500;height:var(--default-clickable-area);margin:2px 0;line-height:var(--default-clickable-area);border-radius:var(--border-radius-element);padding-inline:calc(2 * var(--default-grid-baseline));cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;background-color:transparent;border:none;color:var(--color-main-text)}.app-settings:not(.app-settings--legacy) .navigation-list__link[data-v-e669a5ef]:hover,.app-settings:not(.app-settings--legacy) .navigation-list__link[data-v-e669a5ef]:focus-visible{background-color:color-mix(in srgb,var(--color-primary-element) 8%,transparent)}.app-settings:not(.app-settings--legacy) .navigation-list__link[data-v-e669a5ef]:focus-visible{outline:2px solid var(--color-main-text);outline-offset:-2px}.app-settings:not(.app-settings--legacy) .navigation-list__link--active[data-v-e669a5ef]{background-color:var(--nav-tint-strong)}.app-settings:not(.app-settings--legacy) .navigation-list__link--active[data-v-e669a5ef]:hover,.app-settings:not(.app-settings--legacy) .navigation-list__link--active[data-v-e669a5ef]:focus-visible{background-color:var(--color-primary-element-light-hover)}.app-settings:not(.app-settings--legacy) .navigation-list__link--active[data-v-e669a5ef]:before{content:"";position:absolute;inset-block:var(--default-grid-baseline);inset-inline-start:0;width:3px;background-color:var(--color-primary-element);border-radius:999px}.app-settings:not(.app-settings--legacy) .navigation-list__link--icon[data-v-e669a5ef]{gap:var(--default-grid-baseline)}.app-settings:not(.app-settings--legacy) .navigation-list__link-icon[data-v-e669a5ef]{display:flex;justify-content:center;align-content:center;width:calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline));max-width:calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline))}@media only screen and (width<1024px){.app-settings[data-v-e669a5ef]:not(.app-settings--legacy) .modal-wrapper .modal-container{padding-inline-start:12px!important;padding-block-start:4px!important;background-color:var(--color-main-background)}.app-settings[data-v-e669a5ef]:not(.app-settings--legacy) .dialog__name{position:static;width:auto;height:auto;margin:0 0 12px;padding-inline-end:var(--default-clickable-area);overflow:visible;clip-path:none;white-space:normal;border:0}.app-settings[data-v-e669a5ef]:not(.app-settings--legacy) .app-settings__content{border:none;border-radius:0}}.app-settings.app-settings--legacy[data-v-e669a5ef] .app-settings__navigation{min-width:200px;margin-inline-end:calc(4 * var(--default-grid-baseline));overflow-x:hidden;overflow-y:auto;position:relative}.app-settings.app-settings--legacy[data-v-e669a5ef] .app-settings__content{padding-inline:calc(4 * var(--default-grid-baseline))}.app-settings.app-settings--legacy .navigation-list[data-v-e669a5ef]{height:100%;overflow-y:auto;padding:calc(3 * var(--default-grid-baseline))}.app-settings.app-settings--legacy .navigation-list__link[data-v-e669a5ef]{display:flex;align-content:center;font-size:16px;height:var(--default-clickable-area);margin:4px 0;line-height:var(--default-clickable-area);border-radius:var(--border-radius-element);font-weight:var(--font-weight-element, bold);padding:0 calc(4 * var(--default-grid-baseline));cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;background-color:transparent;border:none}.app-settings.app-settings--legacy .navigation-list__link[data-v-e669a5ef]:hover,.app-settings.app-settings--legacy .navigation-list__link[data-v-e669a5ef]:focus{background-color:var(--color-background-hover)}.app-settings.app-settings--legacy .navigation-list__link--active[data-v-e669a5ef]{background-color:var(--color-primary-element-light)!important}.app-settings.app-settings--legacy .navigation-list__link--icon[data-v-e669a5ef]{padding-inline-start:calc(2 * var(--default-grid-baseline));gap:var(--default-grid-baseline)}.app-settings.app-settings--legacy .navigation-list__link-icon[data-v-e669a5ef]{display:flex;justify-content:center;align-content:center;width:calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline));max-width:calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline))}@media only screen and (max-width:512px){.app-settings.app-settings--legacy[data-v-e669a5ef] .dialog__name{padding-inline-start:16px}}.material-design-icon[data-v-9f146f2d]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-settings-section[data-v-9f146f2d]{--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));--app-settings-section-text-offset: var(--form-element-label-offset);--app-settings-section-content-gap: calc(6 * var(--default-grid-baseline));margin-block-end:calc(8 * var(--default-grid-baseline))}.app-settings-section__name[data-v-9f146f2d]{margin:0;padding-inline:var(--app-settings-section-text-offset);padding-block:0;font-size:20px;font-weight:var(--font-weight-heading, bold)}.app-settings-section__description[data-v-9f146f2d]{padding-inline:var(--app-settings-section-text-offset);color:var(--color-text-maxcontrast)}.app-settings-section__content[data-v-9f146f2d]{margin-block-start:calc(2 * var(--default-grid-baseline));display:flex;flex-direction:column;justify-content:stretch;gap:var(--app-settings-section-content-gap)}.app-settings-section__legacy[data-v-9f146f2d]{--app-settings-section-text-offset: 0;--app-settings-section-content-gap: 0}._appSettingsSectionShortcuts_RqpkA{display:flex;flex-direction:column;gap:calc(4 * var(--default-grid-baseline))}._material-design-icon_m4vbX{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._sidebarTabsButton_6hxfz{border:none;color:var(--color-main-text);font-size:var(--default-font-size);cursor:pointer;display:flex;flex-direction:column;gap:var(--default-grid-baseline);min-width:var(--default-clickable-area)}._sidebarTabsButton_6hxfz *{cursor:pointer}._sidebarTabsButton_6hxfz:not(._sidebarTabsButton_legacy_Qp20k){position:relative;border-radius:var(--border-radius-element);background-color:var(--color-main-background);padding:var(--default-grid-baseline);padding-block-end:calc(var(--default-grid-baseline) * 2);transition:background-color var(--animation-quick)}._sidebarTabsButton_6hxfz:not(._sidebarTabsButton_legacy_Qp20k):after{content:"";position:absolute;bottom:0;left:50%;width:0;height:4px;border-radius:999px;background-color:var(--color-primary-element);opacity:0;transform:translate(-50%);transition:width var(--animation-quick),opacity var(--animation-quick)}._sidebarTabsButton_6hxfz:not(._sidebarTabsButton_legacy_Qp20k):hover{background-color:var(--color-background-hover)}._sidebarTabsButton_6hxfz:not(._sidebarTabsButton_legacy_Qp20k):focus-visible{outline:2px solid var(--color-main-text);outline-offset:2px}._sidebarTabsButton_legacy_Qp20k{border-bottom:var(--default-grid-baseline) solid transparent!important;border-radius:var(--border-radius-small);background-color:var(--color-main-background);padding:var(--border-radius-small);transition:background-color var(--animation-quick),border-bottom-color var(--animation-quick)}._sidebarTabsButton_legacy_Qp20k:hover{background-color:var(--color-background-hover)!important}._sidebarTabsButton_legacy_Qp20k:active,._sidebarTabsButton_legacy_Qp20k:focus{background-color:var(--color-main-background)!important}._sidebarTabsButton_selected_eBHM-,._sidebarTabsButton_selected_eBHM- *{cursor:default}._sidebarTabsButton_6hxfz:not(._sidebarTabsButton_legacy_Qp20k)._sidebarTabsButton_selected_eBHM-{background-color:var(--color-background-hover)}._sidebarTabsButton_6hxfz:not(._sidebarTabsButton_legacy_Qp20k)._sidebarTabsButton_selected_eBHM-:after{width:80%;opacity:1}._sidebarTabsButton_6hxfz:not(._sidebarTabsButton_legacy_Qp20k)._sidebarTabsButton_selected_eBHM-:hover{background-color:var(--color-background-dark)}._sidebarTabsButton_legacy_Qp20k._sidebarTabsButton_selected_eBHM-{border-bottom-color:var(--color-primary-element)!important;border-bottom-left-radius:0;border-bottom-right-radius:0}._sidebarTabsButton_legacy_Qp20k._sidebarTabsButton_selected_eBHM-:hover{background-color:var(--color-primary-element-light-hover)!important;color:var(--color-primary-element-light-text)!important}._sidebarTabsButton__name_YlW5S{font-weight:var(--font-weight-element, normal);overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}._sidebarTabsButton_legacy_Qp20k._sidebarTabsButton_selected_eBHM- ._sidebarTabsButton__name_YlW5S{font-weight:var(--font-weight-element, bold)}._sidebarTabsButton__icon_MPS-D{display:inline-flex;align-items:center;justify-content:center}._sidebarTabsButton__legacyIcon_rzPOu{background-size:20px;display:flex;align-items:center;justify-content:center}.material-design-icon[data-v-e74d1502]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar-tabs[data-v-e74d1502]{display:flex;flex-direction:column;min-height:0;flex:1 1 100%}.app-sidebar-tabs__nav[data-v-e74d1502]{display:flex;justify-content:stretch;margin:10px 8px 0;border-bottom:1px solid var(--color-border)}.app-sidebar-tabs__nav[data-v-e74d1502]:not(.app-sidebar-tabs__nav--legacy){gap:var(--default-grid-baseline);padding-block-end:var(--default-grid-baseline)}.app-sidebar-tabs__tab[data-v-e74d1502]{flex:1 1 1px}.app-sidebar-tabs__content[data-v-e74d1502]{position:relative;min-height:256px;height:100%}.app-sidebar-tabs__content--multiple[data-v-e74d1502]>:not(section){display:none}.material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}@property --app-sidebar-offset{syntax: ""; initial-value: 0; inherits: true;}body{--app-sidebar-padding: calc(var(--default-grid-baseline, 4px) * 2);--app-sidebar-offset: 0;transition:--app-sidebar-offset 0ms!important}body:has(.app-sidebar.slide-right-enter-active),body:has(.app-sidebar.slide-right-leave-active){transition:--app-sidebar-offset var(--animation-quick)}body:has(.app-sidebar__toggle){--app-sidebar-offset: calc(var(--app-sidebar-padding) + var(--default-clickable-area))}.material-design-icon[data-v-e8979b7f]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar[data-v-e8979b7f]{--app-sidebar-width: clamp(300px, 27vw, 500px);--app-sidebar-padding: calc(var(--default-grid-baseline, 4px) * 2);width:var(--app-sidebar-width);z-index:1500;top:0;inset-inline-end:0;display:flex;overflow-x:hidden;overflow-y:auto;flex-direction:column;flex-shrink:0;height:100%;border-inline-start:1px solid var(--color-border);background:var(--color-main-background);position:relative}.app-sidebar__toggle[data-v-e8979b7f]{position:absolute!important;inset-block-start:var(--app-sidebar-padding);inset-inline-end:var(--app-sidebar-padding);z-index:1001}.app-sidebar .app-sidebar-header[data-v-e8979b7f]{--app-sidebar-close-button-offset: calc(var(--default-clickable-area) + var(--app-sidebar-padding))}.app-sidebar .app-sidebar-header>.app-sidebar__close[data-v-e8979b7f]{position:absolute;z-index:100;top:var(--app-sidebar-padding);inset-inline-end:var(--app-sidebar-padding);width:var(--default-clickable-area);height:var(--default-clickable-area)}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info[data-v-e8979b7f]{flex-direction:row}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__figure[data-v-e8979b7f]{--figure-size: calc(52px + var(--app-sidebar-padding));z-index:2;width:var(--figure-size);height:var(--figure-size);margin:calc(var(--app-sidebar-padding) / 2);border-radius:3px;flex:0 0 auto}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc[data-v-e8979b7f]{padding-inline-start:0;flex:1 1 auto;min-width:0;padding-inline-end:calc(var(--default-clickable-area) + var(--app-sidebar-close-button-offset));padding-top:var(--app-sidebar-padding)}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc.app-sidebar-header__desc--without-actions[data-v-e8979b7f]{padding-inline-end:var(--app-sidebar-close-button-offset)}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc .app-sidebar-header__tertiary-actions[data-v-e8979b7f]{z-index:3;position:absolute;top:calc(var(--app-sidebar-padding) / 2);inset-inline-start:calc(-1 * var(--default-clickable-area));gap:0}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc .app-sidebar-header__menu[data-v-e8979b7f]{top:var(--app-sidebar-padding);inset-inline-end:var(--app-sidebar-close-button-offset);position:absolute}.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__menu[data-v-e8979b7f]{position:absolute;top:var(--app-sidebar-padding);inset-inline-end:var(--app-sidebar-close-button-offset)}.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__desc[data-v-e8979b7f]{padding-inline-end:calc(var(--default-clickable-area) + var(--app-sidebar-close-button-offset))}.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__desc.app-sidebar-header__desc--without-actions[data-v-e8979b7f]{padding-inline-end:var(--app-sidebar-close-button-offset)}.app-sidebar .app-sidebar-header .app-sidebar-header__info[data-v-e8979b7f]{display:flex;flex-direction:column}.app-sidebar .app-sidebar-header__figure[data-v-e8979b7f]{width:100%;height:250px;max-height:250px;background-repeat:no-repeat;background-position:center;background-size:contain}.app-sidebar .app-sidebar-header__figure--with-action[data-v-e8979b7f]{cursor:pointer}.app-sidebar .app-sidebar-header__desc[data-v-e8979b7f]{position:relative;display:flex;flex-direction:row;justify-content:center;align-items:center;padding-inline:var(--app-sidebar-padding);padding-block:var(--app-sidebar-padding) calc(var(--app-sidebar-padding) / 2);gap:0 4px}.app-sidebar .app-sidebar-header__desc--with-tertiary-action[data-v-e8979b7f]{padding-inline-start:6px}.app-sidebar .app-sidebar-header__desc--editable .app-sidebar-header__mainname-form[data-v-e8979b7f],.app-sidebar .app-sidebar-header__desc--with-subname--editable .app-sidebar-header__mainname-form[data-v-e8979b7f]{margin-top:-2px;margin-bottom:-2px}.app-sidebar .app-sidebar-header__desc--with-subname--editable .app-sidebar-header__subname[data-v-e8979b7f]{margin-top:-2px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions[data-v-e8979b7f]{display:flex;height:var(--default-clickable-area);width:var(--default-clickable-area);justify-content:center;flex:0 0 auto}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions .app-sidebar-header__star[data-v-e8979b7f]{box-shadow:none}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions .app-sidebar-header__star[data-v-e8979b7f]:not([aria-pressed=true]):hover{box-shadow:none;background-color:var(--color-background-hover)}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container[data-v-e8979b7f]{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;min-width:0}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container[data-v-e8979b7f]{display:flex;align-items:center;min-height:var(--default-clickable-area)}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname[data-v-e8979b7f]{padding:0;min-height:30px;font-size:20px;line-height:30px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname[data-v-e8979b7f] .linkified{cursor:pointer;text-decoration:underline;margin:0}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname-form[data-v-e8979b7f]{display:flex;flex:1 1 auto;align-items:center}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname-form input.app-sidebar-header__mainname-input[data-v-e8979b7f]{flex:1 1 auto;margin:0;padding:7px;font-size:20px;font-weight:var(--font-weight-heading, bold)}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__menu[data-v-e8979b7f]{margin-inline-start:5px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname[data-v-e8979b7f],.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__subname[data-v-e8979b7f]{overflow:hidden;width:100%;margin:0;white-space:nowrap;text-overflow:ellipsis}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__subname[data-v-e8979b7f]{color:var(--color-text-maxcontrast);font-size:var(--default-font-size);padding:0}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__subname[data-v-e8979b7f] *{vertical-align:text-bottom}.app-sidebar .app-sidebar-header .app-sidebar-header__mainname--hidden[data-v-e8979b7f]{position:absolute;top:0;inset-inline-start:0;margin:0;width:1px;height:1px;overflow:hidden}.app-sidebar .app-sidebar-header__description[data-v-e8979b7f]{display:flex;align-items:center;margin:0 10px}@media only screen and (max-width:512px){.app-sidebar[data-v-e8979b7f]{position:absolute;--app-sidebar-width: 100vw}}.slide-right-leave-active[data-v-e8979b7f],.slide-right-enter-active[data-v-e8979b7f]{transition-duration:var(--animation-quick);transition-property:margin-inline-end}.slide-right-enter-to[data-v-e8979b7f],.slide-right-leave[data-v-e8979b7f]{margin-inline-end:0}.slide-right-enter-from[data-v-e8979b7f],.slide-right-leave-to[data-v-e8979b7f]{margin-inline-end:calc(-1 * var(--app-sidebar-width))}.material-design-icon[data-v-dba10798]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar__tab[data-v-dba10798]{display:none;padding:10px;min-height:100%;max-height:100%;height:100%;overflow:auto}.app-sidebar__tab[data-v-dba10798]:focus{border-color:var(--color-primary-element);box-shadow:0 0 .2em var(--color-primary-element);outline:0}.app-sidebar__tab--active[data-v-dba10798]{display:block}._material-design-icon_M4rJ-{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._assistantButton_BP0M8{--assistant-button-color: var(--color-element-assistant, linear-gradient(238deg, #A569D3 12%, #00679E 39%, #422083 86%));--assistant-button-background-color: var(--color-background-assistant, #F6F5FF);background-image:var(--color-border-assistant, linear-gradient(125deg, #7398FE 50%, #6104A4 125%));border-radius:var(--border-radius-element);height:var(--default-clickable-area);width:fit-content;padding-inline:1px;padding-block:1px 2px}._assistantButton_disabled_UipGr{filter:saturate(.5);opacity:.5}._assistantButton_primary_-LVsB{--assistant-button-color: white;--assistant-button-background-color: var(--color-element-assistant,linear-gradient(238deg, #A569D3 12%, #00679E 39%, #422083 86%))}._assistantButton_primary_-LVsB ._assistantButton__icon_fQ0PP,._assistantButton_primary_-LVsB ._assistantButton__text_3VzI1{color:#fff!important}._assistantButton__button_FAn7N{--button-size: calc(var(--default-clickable-area) - 3px) !important;background-color:var(--assistant-button-background-color)!important;background-image:var(--assistant-button-background-color)!important;border:none!important}._assistantButton__button_FAn7N:hover{filter:brightness(120%)}._assistantButton__text_3VzI1{background-image:var(--assistant-button-color);color:transparent!important;background-clip:text}._material-design-icon_mH0R6{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._assistantIcon_2koBz{display:inline-flex;align-items:center;justify-content:center}._assistantIcon_2koBz:not(._assistantIcon_inline_kJSUg){display:flex;min-height:var(--default-clickable-area);min-width:var(--default-clickable-area)}._assistantIcon__svg_V8CXC{display:inline-block;width:var(--v6629513e);height:var(--v6629513e);max-width:var(--v6629513e);max-height:var(--v6629513e)}._material-design-icon_nSUHm{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._assistantContent_xKBtA{background-image:var(--color-border-assistant, linear-gradient(125deg, #7398FE 50%, #6104A4 125%));border-radius:var(--border-radius-container);padding:2px}._assistantContent__inner_DqkVC{background-color:var(--color-background-assistant, #F6F5FF);border-radius:calc(var(--border-radius-container) - 1px);color:var(--color-main-text);padding:calc(var(--border-radius-container) - 1px);height:100%;width:100%}._fadeTransition_hVFAH{transition:all var(--animation-quick) ease}._fadeTransitionActive_XmkdB{opacity:0;position:absolute}.material-design-icon[data-v-8ebb9fc1]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.fade-enter-active[data-v-8ebb9fc1],.fade-leave-active[data-v-8ebb9fc1]{transition:opacity .3s ease}.fade-enter[data-v-8ebb9fc1],.fade-leave-to[data-v-8ebb9fc1]{opacity:0}.linked-icons[data-v-8ebb9fc1]{display:flex}.linked-icons img[data-v-8ebb9fc1]{padding:12px;height:var(--default-clickable-area);display:block;background-repeat:no-repeat;background-position:center;opacity:.7}.linked-icons img[data-v-8ebb9fc1]:hover{opacity:1}.popovermenu[data-v-8ebb9fc1]{display:none}.popovermenu.open[data-v-8ebb9fc1]{display:block}li.collection-list-item[data-v-8ebb9fc1]{flex-wrap:wrap;height:auto;cursor:pointer;margin-bottom:0!important}li.collection-list-item .collection-avatar[data-v-8ebb9fc1]{margin-top:0}li.collection-list-item form[data-v-8ebb9fc1],li.collection-list-item .collection-item-name[data-v-8ebb9fc1]{flex-basis:10%;flex-grow:1;display:flex}li.collection-list-item .collection-item-name[data-v-8ebb9fc1]{padding:12px 9px}li.collection-list-item input[data-v-8ebb9fc1]{margin-top:4px;border-color:var(--color-border-maxcontrast)}li.collection-list-item input[type=text][data-v-8ebb9fc1]{flex-grow:1}li.collection-list-item .error[data-v-8ebb9fc1],li.collection-list-item .resource-list-details[data-v-8ebb9fc1]{flex-basis:100%;width:100%}li.collection-list-item .resource-list-details li[data-v-8ebb9fc1]{display:flex;margin-inline-start:var(--default-clickable-area);border-radius:3px;cursor:pointer}li.collection-list-item .resource-list-details li[data-v-8ebb9fc1]:hover{background-color:var(--color-background-dark)}li.collection-list-item .resource-list-details li a[data-v-8ebb9fc1]{flex-grow:1;padding:3px;max-width:calc(100% - 30px);display:flex}li.collection-list-item .resource-list-details span[data-v-8ebb9fc1]{display:inline-block;vertical-align:top;margin-inline-end:10px}li.collection-list-item .resource-list-details span.resource-name[data-v-8ebb9fc1]{text-overflow:ellipsis;overflow:hidden;position:relative;vertical-align:top;white-space:nowrap;flex-grow:1;padding:4px}li.collection-list-item .resource-list-details img[data-v-8ebb9fc1]{width:24px;height:24px}li.collection-list-item .resource-list-details .icon-close[data-v-8ebb9fc1]{opacity:.7}li.collection-list-item .resource-list-details .icon-close[data-v-8ebb9fc1]:hover,li.collection-list-item .resource-list-details .icon-close[data-v-8ebb9fc1]:focus{opacity:1}.should-shake[data-v-8ebb9fc1]{animation:shake-8ebb9fc1 .6s 1 linear}@keyframes shake-8ebb9fc1{0%{transform:translate(15px)}20%{transform:translate(-15px)}40%{transform:translate(7px)}60%{transform:translate(-7px)}80%{transform:translate(3px)}to{transform:translate(0)}}.material-design-icon[data-v-0e169eff]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.collection-list[data-v-0e169eff] *{box-sizing:border-box}.collection-list>li[data-v-0e169eff]{display:flex;align-items:center;gap:12px}.collection-list>li>.avatar[data-v-0e169eff]{margin-top:0}#collection-select-container[data-v-0e169eff]{display:flex;flex-direction:column}.v-select span.avatar[data-v-0e169eff]{display:block;padding:16px;opacity:.7;background-repeat:no-repeat;background-position:center}.v-select span.avatar[data-v-0e169eff]:hover{opacity:1}p.hint[data-v-0e169eff]{z-index:1;margin-top:-16px;padding:8px;color:var(--color-text-maxcontrast);line-height:normal}div.avatar[data-v-0e169eff]{width:32px;height:32px;margin:30px 0 0;padding:8px;background-color:var(--color-background-dark)}.icon-projects[data-v-0e169eff]{display:block;padding:8px;background-repeat:no-repeat;background-position:center}.option__wrapper[data-v-0e169eff]{display:flex}.option__wrapper .avatar[data-v-0e169eff]{display:block;width:32px;height:32px;background-color:var(--color-background-darker)!important}.option__wrapper .option__title[data-v-0e169eff]{padding:4px}.fade-enter-active[data-v-0e169eff],.fade-leave-active[data-v-0e169eff]{transition:opacity .5s}.fade-enter[data-v-0e169eff],.fade-leave-to[data-v-0e169eff]{opacity:0}.material-design-icon[data-v-8dabc003]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.dashboard-widget[data-v-8dabc003] .empty-content{text-align:center;padding-top:5vh}.dashboard-widget[data-v-8dabc003] .empty-content.half-screen{padding-top:0;margin-bottom:1vh}.more[data-v-8dabc003]{display:block;text-align:center;color:var(--color-text-maxcontrast);line-height:60px;cursor:pointer}.more[data-v-8dabc003]:hover,.more[data-v-8dabc003]:focus{background-color:var(--color-background-hover);border-radius:var(--border-radius-element);color:var(--color-main-text)}.item-list__entry[data-v-8dabc003]{display:flex;align-items:flex-start;padding:8px}.item-list__entry .item-avatar[data-v-8dabc003]{position:relative;margin-block:auto;background-color:var(--color-background-dark)!important}.item-list__entry .item__details[data-v-8dabc003]{padding-inline-start:8px;max-height:var(--default-clickable-area);flex-grow:1;overflow:hidden;display:flex;flex-direction:column}.item-list__entry .item__details h3[data-v-8dabc003],.item-list__entry .item__details .message[data-v-8dabc003]{white-space:nowrap;background-color:var(--color-background-dark)}.item-list__entry .item__details h3[data-v-8dabc003]{font-size:100%;margin:0}.item-list__entry .item__details .message[data-v-8dabc003]{width:80%;height:15px;margin-top:5px}.material-design-icon[data-v-2c8b617b]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.item-list__entry[data-v-2c8b617b]{display:flex;align-items:center;position:relative;padding:8px}.item-list__entry[data-v-2c8b617b]:hover,.item-list__entry[data-v-2c8b617b]:focus{background-color:var(--color-background-hover);border-radius:var(--border-radius-element)}.item-list__entry .item-avatar[data-v-2c8b617b]{position:relative;margin-top:auto;margin-bottom:auto}.item-list__entry .item__details[data-v-2c8b617b]{padding-inline-start:8px;max-height:fit-content;flex-grow:1;overflow:hidden;display:flex;flex-direction:column;justify-content:center;min-height:var(--default-clickable-area)}.item-list__entry .item__details h3[data-v-2c8b617b],.item-list__entry .item__details .message[data-v-2c8b617b]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-list__entry .item__details .message span[data-v-2c8b617b]{width:10px;display:inline-block;margin-bottom:-3px}.item-list__entry .item__details h3[data-v-2c8b617b]{font-size:100%;margin:0}.item-list__entry .item__details .message[data-v-2c8b617b]{width:100%;color:var(--color-text-maxcontrast)}.item-list__entry .item-icon[data-v-2c8b617b]{position:relative;width:14px;height:14px;margin-top:25px;margin-inline:-10px -2px}.item-list__entry button.primary[data-v-2c8b617b]{padding:21px;margin:0}._filePicker_UHtO-{display:inline-flex;align-items:center;height:var(--default-clickable-area)}._material-design-icon_mubdv{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._ncFormBox_TawZT{display:flex;flex-direction:column;gap:calc(1 * var(--default-grid-baseline))}._ncFormBox_TawZT._ncFormBox_row_ZnhfS{flex-direction:row}._ncFormBox__item_7zc34{border-radius:var(--border-radius-small)!important}._ncFormBox_col_wHCZx{flex-direction:column}._ncFormBox_col_wHCZx ._ncFormBox__item_7zc34:first-child{border-start-start-radius:var(--border-radius-element)!important;border-start-end-radius:var(--border-radius-element)!important}._ncFormBox_col_wHCZx ._ncFormBox__item_7zc34:last-child{border-end-start-radius:var(--border-radius-element)!important;border-end-end-radius:var(--border-radius-element)!important}._ncFormBox_row_ZnhfS{flex-direction:row}._ncFormBox_row_ZnhfS ._ncFormBox__item_7zc34{flex:1 1}._ncFormBox_row_ZnhfS ._ncFormBox__item_7zc34:first-child{border-start-start-radius:var(--border-radius-element)!important;border-end-start-radius:var(--border-radius-element)!important}._ncFormBox_row_ZnhfS ._ncFormBox__item_7zc34:last-child{border-end-end-radius:var(--border-radius-element)!important;border-start-end-radius:var(--border-radius-element)!important}._material-design-icon_RoXMm{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formBoxButton_qQIni{background:unset;border:none;color:inherit;font-size:inherit;font-weight:inherit;text-decoration:none;text-align:inherit;line-height:inherit;padding:0;margin:0;outline:none}._material-design-icon_D2F-K{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formBoxItem_74l6r{--nc-form-box-item-border-width: 1px;--nc-form-box-item-min-height: 40px;--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));--form-element-label-padding: calc(var(--form-element-label-offset) - var(--nc-form-box-item-border-width));--color-primary-element-extra-light: hsl(from var(--color-primary-element-light) h s calc(l*1.045) );--color-primary-element-extra-light-hover: hsl(from var(--color-primary-element-light-hover) h s calc(l*1.045) );position:relative;display:flex;align-items:center;gap:calc(2 * var(--default-grid-baseline));min-height:var(--nc-form-box-item-min-height);padding-inline:var(--form-element-label-padding);border:1px solid var(--color-primary-element-extra-light-hover);border-bottom-width:2px;border-radius:var(--border-radius-element);background-color:var(--color-primary-element-extra-light);color:var(--color-main-text);font-weight:var(--font-weight-element, normal);transition-property:color,border-color,background-color;transition-duration:var(--animation-quick);transition-timing-function:linear;-webkit-user-select:none;user-select:none;cursor:pointer}._formBoxItem_74l6r *{cursor:inherit}._formBoxItem_74l6r:has(:disabled){cursor:default;opacity:.5}._formBoxItem_74l6r:hover:not(:has(:disabled)){color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-extra-light-hover)}._formBoxItem_74l6r:has(:focus-visible){outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background)}._formBoxItem__description_1GjPD{font-weight:var(--font-weight-default, normal)}._formBoxItem_74l6r._formBoxItem_legacy_IgNr3{--nc-form-box-item-border-width: 0px;border:none}._formBoxItem_74l6r._formBoxItem_inverted_9GGkh ._formBoxItem__element_YEZDA{color:var(--color-text-maxcontrast)}._formBoxItem_74l6r._formBoxItem_inverted_9GGkh ._formBoxItem__description_1GjPD{color:inherit}._formBoxItem__content_CcZbG{flex:1;display:flex;flex-direction:column;padding-block:calc(2 * var(--default-grid-baseline));overflow-wrap:anywhere}._formBoxItem__element_YEZDA:after{content:"";position:absolute;inset:0}._formBoxItem__description_1GjPD{color:var(--color-text-maxcontrast)}._formBoxItem__icon_eZXNE{display:flex;align-items:center;justify-content:flex-end}._material-design-icon_YAxyJ{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}input._formBoxSwitch__input_e7y7s{margin:0;width:var(--default-clickable-area);position:absolute;inset-block:0;inset-inline-end:var(--form-element-label-offset);z-index:-1;opacity:0!important;height:auto;cursor:inherit}._material-design-icon_QhThW{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formGroup_sNzER{--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));--form-group-content-gap: calc(2 * var(--default-grid-baseline))}._formGroup_sNzER._formGroup_noGap_ChojB{--form-group-content-gap: 0}._formGroup__label_Z81k5{padding-inline:var(--form-element-label-offset);font-size:var(--font-size);font-weight:var(--font-weight-heading, bold)}._formGroup__description_xWRa-{padding-inline:var(--form-element-label-offset);color:var(--color-text-maxcontrast)}._formGroup__content_wHRjf{display:flex;flex-direction:column;gap:var(--form-group-content-gap);margin-block-start:calc(2.5 * var(--default-grid-baseline))}._formGroup__content_wHRjf._formGroup__content_only_VejcN{margin-block-start:0}.material-design-icon[data-v-92fb182d]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.header-menu[data-v-92fb182d]{position:relative;width:var(--header-height);height:var(--header-height)}.header-menu .header-menu__trigger[data-v-92fb182d]{--button-size: var(--header-height) !important;height:var(--header-height);opacity:.85;filter:none!important;color:var(--color-background-plain-text, var(--color-primary-text))!important}.header-menu .header-menu__trigger[data-v-92fb182d]:focus-visible{outline:none!important;box-shadow:none!important}.header-menu .header-menu__trigger[data-v-92fb182d] .button-vue__icon svg,.header-menu .header-menu__trigger[data-v-92fb182d] .button-vue__icon:not(:has(svg)){mask:var(--header-menu-icon-mask, none)}.header-menu--opened .header-menu__trigger[data-v-92fb182d],.header-menu__trigger[data-v-92fb182d]:hover,.header-menu__trigger[data-v-92fb182d]:focus,.header-menu__trigger[data-v-92fb182d]:active{opacity:1}@media only screen and (max-width:512px){.header-menu[data-v-92fb182d]{width:var(--default-clickable-area)}.header-menu .header-menu__trigger[data-v-92fb182d]{--button-size: var(--default-clickable-area) !important}}.material-design-icon[data-v-d45c5788]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}/*! * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */.header-menu[data-v-d45c5788]{position:relative;width:var(--header-height);height:var(--header-height)}.header-menu .header-menu__trigger[data-v-d45c5788]{--button-size: var(--header-height) !important;height:var(--header-height);opacity:.85;filter:none!important;color:var(--color-background-plain-text, var(--color-primary-text))!important}.header-menu .header-menu__trigger[data-v-d45c5788]:focus-visible{outline:none!important;box-shadow:none!important}.header-menu .header-menu__trigger[data-v-d45c5788] .button-vue__icon svg,.header-menu .header-menu__trigger[data-v-d45c5788] .button-vue__icon:not(:has(svg)){mask:var(--header-menu-icon-mask, none)}.header-menu--opened .header-menu__trigger[data-v-d45c5788],.header-menu__trigger[data-v-d45c5788]:hover,.header-menu__trigger[data-v-d45c5788]:focus,.header-menu__trigger[data-v-d45c5788]:active{opacity:1}@media only screen and (max-width:512px){.header-menu[data-v-d45c5788]{width:var(--default-clickable-area)}.header-menu .header-menu__trigger[data-v-d45c5788]{--button-size: var(--default-clickable-area) !important}}.header-menu__wrapper[data-v-d45c5788]{position:fixed;z-index:2000;top:var(--header-height);inset-inline-end:0;box-sizing:border-box;margin:0 8px;border-radius:var(--border-radius-element);background-color:var(--color-main-background);filter:drop-shadow(0 1px 5px var(--color-box-shadow))}.header-menu__caret[data-v-d45c5788]{position:absolute;z-index:2001;bottom:0;inset-inline-start:calc(50% - 10px);width:0;height:0;content:" ";pointer-events:none;border:10px solid transparent;border-bottom-color:var(--color-main-background)}.header-menu__content[data-v-d45c5788]{overflow:auto;width:350px;max-width:calc(100vw - 16px);min-height:calc(var(--default-clickable-area) * 1.5);max-height:calc(100vh - var(--header-height) * 2)}.header-menu__content[data-v-d45c5788] .empty-content{margin:12vh 10px}._material-design-icon_yC3vd{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._hotkey_ohHBi{--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));display:flex;flex-direction:row-reverse;align-items:stretch;padding-inline:var(--form-element-label-offset)}._hotkey_ohHBi:first-child ._hotkey__label_au-to,._hotkey_ohHBi:first-child ._hotkey__keys_4Mi3z{border-block-start:none}._hotkey__label_au-to,._hotkey__keys_4Mi3z{display:flex;align-items:center;padding-block:calc(2 * var(--default-grid-baseline));border-block-start:1px solid var(--color-border)}._hotkey__label_au-to{flex:1 1 200px}._hotkey__keys_4Mi3z{flex:1 1 auto;flex-wrap:wrap;justify-content:end;row-gap:calc(1 * var(--default-grid-baseline))}._material-design-icon_FHHYV{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._kbd_3V7rw{display:inline-flex;align-items:center;justify-content:center;min-width:var(--default-clickable-area);height:var(--default-clickable-area);padding-inline:calc(2 * var(--default-grid-baseline)) calc(2 * var(--default-grid-baseline));border:2px solid var(--color-primary-element-light);border-block-end-width:4px;border-radius:var(--border-radius-element);box-shadow:none;font-family:var(--font-family);line-height:1;white-space:nowrap}._kbd_3V7rw+._kbd_3V7rw{margin-inline-start:calc(1 * var(--default-grid-baseline))}._hotkeyList_xNXCh{--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline))}._hotkeyList__heading_j6G86{font-weight:var(--font-weight-heading, bold);margin-inline:var(--form-element-label-offset)}.material-design-icon[data-v-0ee94269]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.option[data-v-0ee94269]{display:flex;align-items:center;width:100%;height:var(--height);cursor:inherit}.option__avatar[data-v-0ee94269]{margin-inline-end:var(--margin)}.option__details[data-v-0ee94269]{display:flex;flex:1 1;flex-direction:column;justify-content:center;min-width:0}.option__lineone[data-v-0ee94269]{color:var(--color-main-text)}.option__linetwo[data-v-0ee94269]{color:var(--color-text-maxcontrast)}.option__lineone[data-v-0ee94269],.option__linetwo[data-v-0ee94269]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.2}.option__lineone strong[data-v-0ee94269],.option__linetwo strong[data-v-0ee94269]{font-weight:700}.option--compact .option__lineone[data-v-0ee94269]{font-size:14px}.option--compact .option__linetwo[data-v-0ee94269]{font-size:11px;line-height:1.5;margin-top:-4px}.option__icon[data-v-0ee94269]{width:var(--default-clickable-area);height:var(--default-clickable-area);color:var(--color-text-maxcontrast)}.option__icon.icon[data-v-0ee94269]{flex:0 0 var(--default-clickable-area);opacity:.7;background-position:center;background-size:16px}.option__details[data-v-0ee94269],.option__lineone[data-v-0ee94269],.option__linetwo[data-v-0ee94269],.option__icon[data-v-0ee94269]{cursor:inherit}.material-design-icon[data-v-353fa414]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.progress-bar[data-v-353fa414]{display:block;height:var(--progress-bar-height);--progress-bar-color: var(--v3a86fec2);--progress-bar-height: var(--v57442460)}.progress-bar--linear[data-v-353fa414]{width:100%;overflow:hidden;border:0;padding:0;background:var(--color-background-dark);border-radius:calc(var(--progress-bar-height) / 2)}.progress-bar--linear[data-v-353fa414]::-webkit-progress-bar{height:var(--progress-bar-height);background-color:transparent}.progress-bar--linear[data-v-353fa414]::-webkit-progress-value{background:var(--progress-bar-color, var(--gradient-primary-background));border-radius:calc(var(--progress-bar-height) / 2)}.progress-bar--linear[data-v-353fa414]::-moz-progress-bar{background:var(--progress-bar-color, var(--gradient-primary-background));border-radius:calc(var(--progress-bar-height) / 2)}.progress-bar--circular[data-v-353fa414]{width:var(--progress-bar-height);color:var(--progress-bar-color)}.progress-bar--error[data-v-353fa414]{color:var(--color-text-error, var(--color-error))!important}.progress-bar--error[data-v-353fa414]::-moz-progress-bar{background:var(--color-text-error, var(--color-error))!important}.progress-bar--error[data-v-353fa414]::-webkit-progress-value{background:var(--color-text-error, var(--color-error))!important}.progress-bar-container[data-v-353fa414]{display:flex;align-items:center;gap:calc(2 * var(--default-grid-baseline))}.progress-bar__value[data-v-353fa414]{font-size:var(--font-size-small, 13px);font-variant-numeric:tabular-nums;min-width:4ch;text-align:end}._material-design-icon_Sx-eY{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._radioGroup_checkboxRadioContainer_XfI2u .checkbox-content{max-width:unset!important}._material-design-icon_q-qLD{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._radioGroupButton_FB-C-{--radio-group-button--border-radius: var(--border-radius-small);--radio-group-button--border-width: 1px;--radio-group-button--color: var(--color-primary-element-light-text);--radio-group-button--background-color: var(--color-primary-element-light);--radio-group-button--background-color-hover: var(--color-primary-element-light-hover);--radio-group-button--padding: 1px;cursor:pointer;color:var(--radio-group-button--color);background-color:var(--radio-group-button--background-color);transition:var(--animation-quick) background-color;border:var(--radio-group-button--border-width) solid var(--radio-group-button--background-color-hover);border-bottom-width:2px;border-radius:var(--radio-group-button--border-radius);display:flex;flex-direction:row;align-items:center;justify-content:center;text-align:center;min-height:var(--default-clickable-area);padding-block:var(--radio-group-button--padding) 0;padding-inline:var(--radio-group-button--padding)}._radioGroupButton_FB-C- *{cursor:pointer}._radioGroupButton_FB-C-:has(._radioGroupButton__label_gjGCq){padding-inline:calc(var(--radio-group-button--padding) + var(--border-radius-element))}._radioGroupButton_FB-C-:has(._radioGroupButton__icon_lWzM4){padding-inline-start:var(--radio-group-button--padding)}._radioGroupButton_FB-C-:hover:not(._radioGroupButton_disabled_08iwH){background-color:var(--radio-group-button--background-color-hover)}._radioGroupButton_FB-C-:focus-within{--radio-group-button--border-width: 2px;--radio-group-button--padding: 0px;border:var(--radio-group-button--border-width) solid var(--color-main-text)!important;outline:calc(var(--default-grid-baseline) / 2) var(--color-main-background)}._radioGroupButton_active_KS1Ru{--radio-group-button--color: var(--color-primary-element-text);--radio-group-button--background-color: var(--color-primary-element);--radio-group-button--background-color-hover: var(--color-primary-element-hover)}._radioGroupButton__label_gjGCq{font-weight:var(--font-weight-element, bold)}._radioGroupButton_disabled_08iwH{filter:saturate(.7);opacity:.5;cursor:default}._radioGroupButton_disabled_08iwH *{cursor:default}._radioGroupButton__icon_lWzM4{--radio-group-button--icon-size: calc(var(--default-clickable-area) - 4px);display:flex;align-items:center;justify-content:center;height:100%;width:var(--radio-group-button--icon-size)}._radioGroupButton__icon_lWzM4 *{--default-clickable-area: var(--radio-group-button--icon-size)}.material-design-icon[data-v-77577e58]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.resource[data-v-77577e58]{display:flex;align-items:center;height:var(--default-clickable-area)}.resource__button[data-v-77577e58]{width:100%!important;justify-content:flex-start!important;padding:0!important}.resource__button[data-v-77577e58] .button-vue__wrapper{justify-content:flex-start!important}.resource__button[data-v-77577e58] .button-vue__wrapper .button-vue__text{font-weight:var(--font-weight-default, normal)!important;margin-inline-start:2px!important}.resource__icon[data-v-77577e58]{width:32px;height:32px;background-color:var(--color-text-maxcontrast);border-radius:50%;display:flex;align-items:center;justify-content:center}.resource__icon img[data-v-77577e58]{width:16px;height:16px;filter:var(--background-invert-if-dark)}.material-design-icon[data-v-10ef45ac]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.team-resources__header[data-v-10ef45ac]{font-weight:var(--font-weight-heading, bold);margin-bottom:6px}.related-team[data-v-10ef45ac]{border-radius:var(--border-radius-container);border:2px solid var(--color-border-dark);margin-bottom:6px}.related-team__open[data-v-10ef45ac]{border-color:var(--color-primary-element)}.related-team__header[data-v-10ef45ac]{padding:6px;padding-inline-end:24px;display:flex;gap:12px}.related-team__name[data-v-10ef45ac]{display:flex;flex-grow:1;align-items:center;gap:12px;padding:6px 12px;font-weight:var(--font-weight-heading, bold);margin:0}.related-team .related-team-provider[data-v-10ef45ac]{padding:6px 12px}.related-team .related-team-provider__name[data-v-10ef45ac]{font-weight:var(--font-weight-heading, bold);margin-bottom:3px}.related-team .related-team-provider__link[data-v-10ef45ac]{display:flex;gap:12px;padding:6px 12px;font-weight:var(--font-weight-heading, bold)}.related-team .related-team-resource__link[data-v-10ef45ac]{display:flex;gap:12px;height:var(--default-clickable-area);align-items:center;border-radius:var(--border-radius-element)}.related-team .related-team-resource__link[data-v-10ef45ac]:hover{background-color:var(--color-background-hover)}.related-team .related-team-resource__link[data-v-10ef45ac]:focus{background-color:var(--color-background-hover);outline:2px solid var(--color-primary-element)}.related-team .related-team-resource .resource__icon[data-v-10ef45ac]{width:var(--default-clickable-area);height:var(--default-clickable-area);display:flex;align-items:center;justify-content:center;text-align:center}.related-team .related-team-resource .resource__icon>img[data-v-10ef45ac]{border-radius:var(--border-radius-pill);overflow:hidden;width:32px;height:32px}.material-design-icon[data-v-78029c82]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.related-resources__header h5[data-v-78029c82]{font-weight:var(--font-weight-heading, bold);margin-bottom:6px}.related-resources__header p[data-v-78029c82]{color:var(--color-text-maxcontrast)}.nc-select-users[data-v-e8e18fd3] .vs__selected{padding-inline:0 5px!important}.material-design-icon[data-v-f2b71592]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.select-group-error[data-v-f2b71592]{color:var(--color-text-error, var(--color-error));font-size:13px;padding-inline-start:var(--border-radius-element)}.material-design-icon[data-v-d327fb49]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}/*! diff --git a/dist/common-index-980JFXIN.chunk.css b/dist/common-index-BWhNCeJl.chunk.css similarity index 61% rename from dist/common-index-980JFXIN.chunk.css rename to dist/common-index-BWhNCeJl.chunk.css index 20f1cba824f..78d6fca1310 100644 --- a/dist/common-index-980JFXIN.chunk.css +++ b/dist/common-index-BWhNCeJl.chunk.css @@ -1,4 +1,4 @@ .material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}/*! * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later - */body{--vs-search-input-color: var(--color-main-text);--vs-search-input-bg: var(--color-main-background);--vs-search-input-placeholder-color: var(--color-text-maxcontrast);--vs-font-size: var(--default-font-size);--vs-line-height: var(--default-line-height);--vs-state-disabled-bg: var(--color-background-hover);--vs-state-disabled-color: var(--color-text-maxcontrast);--vs-state-disabled-controls-color: var(--color-text-maxcontrast);--vs-state-disabled-cursor: not-allowed;--vs-disabled-bg: var(--color-background-hover);--vs-disabled-color: var(--color-text-maxcontrast);--vs-disabled-cursor: not-allowed;--vs-border-color: var(--color-border-maxcontrast);--vs-border-width: var(--border-width-input, 2px) !important;--vs-border-style: solid;--vs-border-radius: var(--border-radius-element);--vs-controls-color: var(--color-main-text);--vs-selected-bg: var(--color-background-hover);--vs-selected-color: var(--color-main-text);--vs-selected-border-color: var(--vs-border-color);--vs-selected-border-style: var(--vs-border-style);--vs-selected-border-width: var(--vs-border-width);--vs-dropdown-bg: var(--color-main-background);--vs-dropdown-color: var(--color-main-text);--vs-dropdown-z-index: 9999;--vs-dropdown-box-shadow: 0px 2px 2px 0px var(--color-box-shadow);--vs-dropdown-option-padding: 8px 20px;--vs-dropdown-option--active-bg: var(--color-background-hover);--vs-dropdown-option--active-color: var(--color-main-text);--vs-dropdown-option--kb-focus-box-shadow: inset 0px 0px 0px 2px var(--vs-border-color);--vs-dropdown-option--deselect-bg: var(--color-error);--vs-dropdown-option--deselect-color: #fff;--vs-transition-duration: 0ms;--vs-actions-padding: 0 8px 0 4px}.v-select.select{min-height:calc(var(--default-clickable-area) - 2 * var(--border-width-input));min-width:260px;margin:0 0 var(--default-grid-baseline)}.v-select.select.vs--open{--vs-border-width: var(--border-width-input-focused, 2px)}.v-select.select .select__label{display:block;margin-bottom:2px}.v-select.select .vs__selected{height:calc(var(--default-clickable-area) - 2 * var(--vs-border-width) - var(--default-grid-baseline));margin:calc(var(--default-grid-baseline) / 2);padding-block:0;padding-inline:12px 8px;border-radius:16px!important;background:var(--color-primary-element-light);border:none}.v-select.select.vs--open .vs__selected:first-of-type{margin-inline-start:calc(var(--default-grid-baseline) / 2 - (var(--border-width-input-focused, 2px) - var(--border-width-input, 2px)))!important}.v-select.select .vs__search{text-overflow:ellipsis;color:var(--color-main-text);min-height:unset!important;height:calc(var(--default-clickable-area) - 2 * var(--vs-border-width))!important}.v-select.select .vs__search::placeholder{color:var(--color-text-maxcontrast)}.v-select.select .vs__search,.v-select.select .vs__search:focus{margin:0}.v-select.select .vs__dropdown-toggle{position:relative;max-height:100px;padding:var(--border-width-input);overflow-y:auto}.v-select.select .vs__actions{position:sticky;top:0}.v-select.select .vs__clear{margin-inline-end:2px}.v-select.select.vs--open .vs__dropdown-toggle{border-color:var(--color-main-text);border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0;border-style:solid;border-width:var(--border-width-input-focused);outline:2px solid var(--color-main-background);padding:0}.v-select.select:not(.vs--disabled,.vs--open) .vs__dropdown-toggle:active,.v-select.select:not(.vs--disabled,.vs--open) .vs__dropdown-toggle:focus-within{outline:2px solid var(--color-main-background);border-color:var(--color-main-text)}.v-select.select.vs--disabled .vs__search,.v-select.select.vs--disabled .vs__selected{color:var(--color-text-maxcontrast)}.v-select.select.vs--disabled .vs__clear,.v-select.select.vs--disabled .vs__deselect{display:none}.v-select.select--no-wrap .vs__selected-options{flex-wrap:nowrap;overflow:auto;min-width:unset}.v-select.select--no-wrap .vs__selected-options .vs__selected{min-width:unset}.v-select.select--drop-up.vs--open .vs__dropdown-toggle{border-radius:0 0 var(--vs-border-radius) var(--vs-border-radius);border-top-color:transparent;border-bottom-color:var(--color-main-text)}.v-select.select .vs__selected-options{min-height:calc(var(--default-clickable-area) - 2 * var(--vs-border-width))}.v-select.select .vs__selected-options .vs__selected~.vs__search[readonly]{position:absolute}.v-select.select .vs__selected-options{padding:0 5px}.v-select.select.vs--single.vs--loading .vs__selected,.v-select.select.vs--single.vs--open .vs__selected{max-width:100%;opacity:1;color:var(--color-text-maxcontrast)}.v-select.select.vs--single .vs__selected-options{flex-wrap:nowrap}.v-select.select.vs--single .vs__selected{background:unset!important}.vs__dropdown-toggle{--input-border-box-shadow-light: 0 -1px var(--vs-border-color), 0 0 0 1px color-mix(in srgb, var(--vs-border-color), 65% transparent);--input-border-box-shadow-dark: 0 1px var(--vs-border-color), 0 0 0 1px color-mix(in srgb, var(--vs-border-color), 65% transparent);--input-border-box-shadow: var(--input-border-box-shadow-light);border:none;border-radius:var(--border-radius-element);box-shadow:var(--input-border-box-shadow)}.vs__dropdown-toggle:hover:not([disabled]){box-shadow:0 0 0 1px var(--vs-border-color)}@media(prefers-color-scheme:dark){.vs__dropdown-toggle .vs__dropdown-toggle{--input-border-box-shadow: var(--input-border-box-shadow-dark)}}[data-theme-dark] .vs__dropdown-toggle{--input-border-box-shadow: var(--input-border-box-shadow-dark)}[data-theme-light] .vs__dropdown-toggle{--input-border-box-shadow: var(--input-border-box-shadow-light)}.select--legacy .vs__dropdown-toggle{box-shadow:0 0 0 1px var(--vs-border-color)}.select--legacy .vs__dropdown-toggle:hover:not([disabled]){box-shadow:0 0 0 2px var(--vs-border-color)}.vs__dropdown-menu{border-width:var(--border-width-input-focused)!important;border-color:var(--color-main-text)!important;outline:none!important;box-shadow:-2px 0 0 var(--color-main-background),0 2px 0 var(--color-main-background),2px 0 0 var(--color-main-background),!important;padding:4px!important}.vs__dropdown-menu--floating{width:max-content;position:absolute;top:0;inset-inline-start:0}.vs__dropdown-menu--floating-placement-top{border-radius:var(--vs-border-radius) var(--vs-border-radius) 0 0!important;border-top-style:var(--vs-border-style)!important;border-bottom-style:none!important;box-shadow:0 -2px 0 var(--color-main-background),-2px 0 0 var(--color-main-background),2px 0 0 var(--color-main-background),!important}.vs__dropdown-menu .vs__dropdown-option{border-radius:6px!important}.vs__dropdown-menu .vs__no-options{color:var(--color-text-maxcontrast)!important}:root{--vs-colors--lightest:rgba(60,60,60,.26);--vs-colors--light:rgba(60,60,60,.5);--vs-colors--dark:#333;--vs-colors--darkest:rgba(0,0,0,.15);--vs-search-input-color:inherit;--vs-search-input-bg:#fff;--vs-search-input-placeholder-color:inherit;--vs-font-size:1rem;--vs-line-height:1.4;--vs-state-disabled-bg:#f8f8f8;--vs-state-disabled-color:var(--vs-colors--light);--vs-state-disabled-controls-color:var(--vs-colors--light);--vs-state-disabled-cursor:not-allowed;--vs-border-color:var(--vs-colors--lightest);--vs-border-width:1px;--vs-border-style:solid;--vs-border-radius:4px;--vs-actions-padding:4px 6px 0 3px;--vs-controls-color:var(--vs-colors--light);--vs-controls-size:1;--vs-controls--deselect-text-shadow:0 1px 0 #fff;--vs-selected-bg:#f0f0f0;--vs-selected-color:var(--vs-colors--dark);--vs-selected-border-color:var(--vs-border-color);--vs-selected-border-style:var(--vs-border-style);--vs-selected-border-width:var(--vs-border-width);--vs-dropdown-bg:#fff;--vs-dropdown-color:inherit;--vs-dropdown-z-index:1000;--vs-dropdown-min-width:160px;--vs-dropdown-max-height:350px;--vs-dropdown-box-shadow:0px 3px 6px 0px var(--vs-colors--darkest);--vs-dropdown-option-bg:#000;--vs-dropdown-option-color:var(--vs-dropdown-color);--vs-dropdown-option-padding:3px 20px;--vs-dropdown-option--active-bg:#136cfb;--vs-dropdown-option--active-color:#fff;--vs-dropdown-option--kb-focus-box-shadow:inset 0px 0px 0px 2px #949494;--vs-dropdown-option--deselect-bg:#fb5858;--vs-dropdown-option--deselect-color:#fff;--vs-transition-timing-function:cubic-bezier(1,-.115,.975,.855);--vs-transition-duration:.15s}.v-select{font-family:inherit;position:relative}.v-select,.v-select *{box-sizing:border-box}:root{--vs-transition-timing-function:cubic-bezier(1,.5,.8,1);--vs-transition-duration:.15s}@keyframes vSelectSpinner{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.vs__fade-enter-active,.vs__fade-leave-active{pointer-events:none;transition:opacity var(--vs-transition-duration) var(--vs-transition-timing-function)}.vs__fade-enter,.vs__fade-leave-to{opacity:0}:root{--vs-disabled-bg:var(--vs-state-disabled-bg);--vs-disabled-color:var(--vs-state-disabled-color);--vs-disabled-cursor:var(--vs-state-disabled-cursor)}.vs--disabled .vs__clear,.vs--disabled .vs__dropdown-toggle,.vs--disabled .vs__open-indicator,.vs--disabled .vs__open-indicator-button,.vs--disabled .vs__search,.vs--disabled .vs__selected{background-color:var(--vs-disabled-bg);cursor:var(--vs-disabled-cursor)}.v-select[dir=rtl] .vs__actions{padding:0 3px 0 6px}.v-select[dir=rtl] .vs__clear{margin-left:6px;margin-right:0}.v-select[dir=rtl] .vs__deselect{margin-left:0;margin-right:2px}.v-select[dir=rtl] .vs__dropdown-menu{text-align:right}.vs__dropdown-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--vs-search-input-bg);border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-radius:var(--vs-border-radius);display:flex;padding:0 0 4px;white-space:normal}.vs__selected-options{display:flex;flex-basis:100%;flex-grow:1;flex-wrap:wrap;min-width:0;padding:0 2px;position:relative}.vs__actions{align-items:center;display:flex;padding:var(--vs-actions-padding)}.vs--searchable .vs__dropdown-toggle{cursor:text}.vs--unsearchable .vs__dropdown-toggle{cursor:pointer}.vs--open .vs__dropdown-toggle{border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0}.vs__open-indicator-button{background-color:transparent;border:0;cursor:pointer;padding:0}.vs__open-indicator{fill:var(--vs-controls-color);transform:scale(var(--vs-controls-size));transition:transform var(--vs-transition-duration) var(--vs-transition-timing-function);transition-timing-function:var(--vs-transition-timing-function)}.vs--open .vs__open-indicator{transform:rotate(180deg) scale(var(--vs-controls-size))}.vs--loading .vs__open-indicator{opacity:0}.vs__clear{background-color:transparent;border:0;cursor:pointer;fill:var(--vs-controls-color);margin-right:8px;padding:0}.vs__dropdown-menu{background:var(--vs-dropdown-bg);border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-radius:0 0 var(--vs-border-radius) var(--vs-border-radius);border-top-style:none;box-shadow:var(--vs-dropdown-box-shadow);box-sizing:border-box;color:var(--vs-dropdown-color);display:block;left:0;list-style:none;margin:0;max-height:var(--vs-dropdown-max-height);min-width:var(--vs-dropdown-min-width);overflow-y:auto;padding:5px 0;position:absolute;text-align:left;top:calc(100% - var(--vs-border-width));width:100%;z-index:var(--vs-dropdown-z-index)}.vs__no-options{text-align:center}.vs__dropdown-option{clear:both;color:var(--vs-dropdown-option-color);cursor:pointer;display:block;line-height:1.42857143;padding:var(--vs-dropdown-option-padding);white-space:nowrap}.vs__dropdown-option--highlight{background:var(--vs-dropdown-option--active-bg);color:var(--vs-dropdown-option--active-color)}.vs__dropdown-option--kb-focus{box-shadow:var(--vs-dropdown-option--kb-focus-box-shadow)}.vs__dropdown-option--deselect{background:var(--vs-dropdown-option--deselect-bg);color:var(--vs-dropdown-option--deselect-color)}.vs__dropdown-option--disabled{background:var(--vs-state-disabled-bg);color:var(--vs-state-disabled-color);cursor:var(--vs-state-disabled-cursor)}.vs__selected{align-items:center;background-color:var(--vs-selected-bg);border:var(--vs-selected-border-width) var(--vs-selected-border-style) var(--vs-selected-border-color);border-radius:var(--vs-border-radius);color:var(--vs-selected-color);display:flex;line-height:var(--vs-line-height);margin:4px 2px 0;min-width:0;padding:0 .25em;z-index:0}.vs__deselect{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;cursor:pointer;display:inline-flex;fill:var(--vs-controls-color);margin-left:4px;padding:0;text-shadow:var(--vs-controls--deselect-text-shadow)}.vs--single .vs__selected{background-color:transparent;border-color:transparent}.vs--single.vs--loading .vs__selected,.vs--single.vs--open .vs__selected{max-width:100%;opacity:.4;position:absolute}.vs--single.vs--searching .vs__selected{display:none}.vs__search::-webkit-search-cancel-button{display:none}.vs__search::-ms-clear,.vs__search::-webkit-search-decoration,.vs__search::-webkit-search-results-button,.vs__search::-webkit-search-results-decoration{display:none}.vs__search,.vs__search:focus{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:1px solid transparent;border-left:none;box-shadow:none;color:var(--vs-search-input-color);flex-grow:1;font-size:var(--vs-font-size);line-height:var(--vs-line-height);margin:4px 0 0;max-width:100%;outline:none;padding:0 7px;width:0;z-index:1}.vs__search::-moz-placeholder{color:var(--vs-search-input-placeholder-color)}.vs__search::placeholder{color:var(--vs-search-input-placeholder-color)}.vs--unsearchable .vs__search{opacity:1}.vs--unsearchable:not(.vs--disabled) .vs__search{cursor:pointer}.vs--single.vs--searching:not(.vs--open):not(.vs--loading) .vs__search{opacity:.2}.vs__spinner{align-self:center;animation:vSelectSpinner 1.1s linear infinite;border:.9em solid hsla(0,0%,39.2%,.1);border-left-color:#3c3c3c73;font-size:5px;opacity:0;overflow:hidden;text-indent:-9999em;transform:translateZ(0) scale(var(--vs-controls--spinner-size,var(--vs-controls-size)));transition:opacity .1s}.vs__spinner,.vs__spinner:after{border-radius:50%;height:5em;transform:scale(var(--vs-controls--spinner-size,var(--vs-controls-size)));width:5em}.vs--loading .vs__spinner{opacity:1}.material-design-icon[data-v-a612f185]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.name-parts[data-v-a612f185]{display:flex;max-width:100%;cursor:inherit}.name-parts__first[data-v-a612f185]{overflow:hidden;text-overflow:ellipsis}.name-parts__first[data-v-a612f185],.name-parts__last[data-v-a612f185]{white-space:pre;cursor:inherit}.name-parts__first strong[data-v-a612f185],.name-parts__last strong[data-v-a612f185]{font-weight:700} + */body{--vs-search-input-color: var(--color-main-text);--vs-search-input-bg: var(--color-main-background);--vs-search-input-placeholder-color: var(--color-text-maxcontrast);--vs-font-size: var(--default-font-size);--vs-line-height: var(--default-line-height);--vs-state-disabled-bg: var(--color-background-hover);--vs-state-disabled-color: var(--color-text-maxcontrast);--vs-state-disabled-controls-color: var(--color-text-maxcontrast);--vs-state-disabled-cursor: not-allowed;--vs-disabled-bg: var(--color-background-hover);--vs-disabled-color: var(--color-text-maxcontrast);--vs-disabled-cursor: not-allowed;--vs-border-color: var(--color-border-maxcontrast);--vs-border-width: var(--border-width-input, 2px) !important;--vs-border-style: solid;--vs-border-radius: var(--border-radius-element);--vs-controls-color: var(--color-main-text);--vs-selected-bg: var(--color-background-hover);--vs-selected-color: var(--color-main-text);--vs-selected-border-color: var(--vs-border-color);--vs-selected-border-style: var(--vs-border-style);--vs-selected-border-width: var(--vs-border-width);--vs-dropdown-bg: var(--color-main-background);--vs-dropdown-color: var(--color-main-text);--vs-dropdown-z-index: 9999;--vs-dropdown-box-shadow: 0px 2px 2px 0px var(--color-box-shadow);--vs-dropdown-option-padding: 8px 20px;--vs-dropdown-option--active-bg: var(--color-background-hover);--vs-dropdown-option--active-color: var(--color-main-text);--vs-dropdown-option--kb-focus-box-shadow: inset 0px 0px 0px 2px var(--vs-border-color);--vs-dropdown-option--deselect-bg: var(--color-error);--vs-dropdown-option--deselect-color: #fff;--vs-transition-duration: 0ms;--vs-actions-padding: 0 8px 0 4px}.v-select.select{min-height:calc(var(--default-clickable-area) - 2 * var(--border-width-input));min-width:260px;margin:0 0 var(--default-grid-baseline)}.v-select.select.vs--open{--vs-border-width: var(--border-width-input-focused, 2px)}.v-select.select .select__label{display:block;margin-bottom:2px}.v-select.select .vs__selected{height:calc(var(--default-clickable-area) - 2 * var(--vs-border-width) - var(--default-grid-baseline));margin:calc(var(--default-grid-baseline) / 2);padding-block:0;padding-inline:12px 8px;border-radius:16px!important;background:var(--color-primary-element-light);border:none}.v-select.select.vs--open .vs__selected:first-of-type{margin-inline-start:calc(var(--default-grid-baseline) / 2 - (var(--border-width-input-focused, 2px) - var(--border-width-input, 2px)))!important}.v-select.select .vs__search{text-overflow:ellipsis;color:var(--color-main-text);min-height:unset!important;height:calc(var(--default-clickable-area) - 2 * var(--vs-border-width))!important}.v-select.select .vs__search::placeholder{color:var(--color-text-maxcontrast)}.v-select.select .vs__search,.v-select.select .vs__search:focus{margin:0}.v-select.select .vs__dropdown-toggle{position:relative;max-height:100px;padding:var(--border-width-input);overflow-y:auto}.v-select.select .vs__actions{position:sticky;top:0}.v-select.select .vs__clear{margin-inline-end:2px}.v-select.select.vs--open .vs__dropdown-toggle{border-color:var(--color-main-text);border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0;border-style:solid;border-width:var(--border-width-input-focused);outline:2px solid var(--color-main-background);padding:0}.v-select.select:not(.vs--disabled,.vs--open) .vs__dropdown-toggle:active,.v-select.select:not(.vs--disabled,.vs--open) .vs__dropdown-toggle:focus-within{outline:2px solid var(--color-main-background);border-color:var(--color-main-text)}.v-select.select.vs--disabled .vs__search,.v-select.select.vs--disabled .vs__selected{color:var(--color-text-maxcontrast)}.v-select.select.vs--disabled .vs__clear,.v-select.select.vs--disabled .vs__deselect{display:none}.v-select.select--no-wrap .vs__selected-options{flex-wrap:nowrap;overflow:auto;min-width:unset}.v-select.select--no-wrap .vs__selected-options .vs__selected{min-width:unset}.v-select.select--drop-up.vs--open .vs__dropdown-toggle{border-radius:0 0 var(--vs-border-radius) var(--vs-border-radius);border-top-color:transparent;border-bottom-color:var(--color-main-text)}.v-select.select .vs__selected-options{min-height:calc(var(--default-clickable-area) - 2 * var(--vs-border-width))}.v-select.select .vs__selected-options .vs__selected~.vs__search[readonly]{position:absolute}.v-select.select .vs__selected-options{padding:0 5px}.v-select.select.vs--single.vs--loading .vs__selected,.v-select.select.vs--single.vs--open .vs__selected{max-width:100%;opacity:1;color:var(--color-text-maxcontrast)}.v-select.select.vs--single .vs__selected-options{flex-wrap:nowrap}.v-select.select.vs--single .vs__selected{background:unset!important}.vs__dropdown-toggle{--input-border-box-shadow-light: 0 -1px var(--vs-border-color), 0 0 0 1px color-mix(in srgb, var(--vs-border-color), 65% transparent);--input-border-box-shadow-dark: 0 1px var(--vs-border-color), 0 0 0 1px color-mix(in srgb, var(--vs-border-color), 65% transparent);--input-border-box-shadow: var(--input-border-box-shadow-light);border:none;border-radius:var(--border-radius-element);box-shadow:var(--input-border-box-shadow)}.vs__dropdown-toggle:hover:not([disabled]){box-shadow:0 0 0 1px var(--vs-border-color)}@media(prefers-color-scheme:dark){.vs__dropdown-toggle .vs__dropdown-toggle{--input-border-box-shadow: var(--input-border-box-shadow-dark)}}[data-theme-dark] .vs__dropdown-toggle{--input-border-box-shadow: var(--input-border-box-shadow-dark)}[data-theme-light] .vs__dropdown-toggle{--input-border-box-shadow: var(--input-border-box-shadow-light)}.select--legacy .vs__dropdown-toggle{box-shadow:0 0 0 1px var(--vs-border-color)}.select--legacy .vs__dropdown-toggle:hover:not([disabled]){box-shadow:0 0 0 2px var(--vs-border-color)}.vs__dropdown-menu{border-width:var(--border-width-input-focused)!important;border-color:var(--color-main-text)!important;outline:none!important;box-shadow:-2px 0 0 var(--color-main-background),0 2px 0 var(--color-main-background),2px 0 0 var(--color-main-background),!important;padding:4px!important}.vs__dropdown-menu--floating{width:max-content;position:absolute;top:0;inset-inline-start:0}.vs__dropdown-menu--floating-placement-top{border-radius:var(--vs-border-radius) var(--vs-border-radius) 0 0!important;border-top-style:var(--vs-border-style)!important;border-bottom-style:none!important;box-shadow:0 -2px 0 var(--color-main-background),-2px 0 0 var(--color-main-background),2px 0 0 var(--color-main-background),!important}.vs__dropdown-menu .vs__dropdown-option{border-radius:6px!important}.vs__dropdown-menu .vs__no-options{color:var(--color-text-maxcontrast)!important}:root{--vs-colors--lightest:rgba(60,60,60,.26);--vs-colors--light:rgba(60,60,60,.5);--vs-colors--dark:#333;--vs-colors--darkest:rgba(0,0,0,.15);--vs-search-input-color:inherit;--vs-search-input-bg:#fff;--vs-search-input-placeholder-color:inherit;--vs-font-size:1rem;--vs-line-height:1.4;--vs-state-disabled-bg:#f8f8f8;--vs-state-disabled-color:var(--vs-colors--light);--vs-state-disabled-controls-color:var(--vs-colors--light);--vs-state-disabled-cursor:not-allowed;--vs-border-color:var(--vs-colors--lightest);--vs-border-width:1px;--vs-border-style:solid;--vs-border-radius:4px;--vs-actions-padding:4px 6px 0 3px;--vs-controls-color:var(--vs-colors--light);--vs-controls-size:1;--vs-controls--deselect-text-shadow:0 1px 0 #fff;--vs-selected-bg:#f0f0f0;--vs-selected-color:var(--vs-colors--dark);--vs-selected-border-color:var(--vs-border-color);--vs-selected-border-style:var(--vs-border-style);--vs-selected-border-width:var(--vs-border-width);--vs-dropdown-bg:#fff;--vs-dropdown-color:inherit;--vs-dropdown-z-index:1000;--vs-dropdown-min-width:160px;--vs-dropdown-max-height:350px;--vs-dropdown-box-shadow:0px 3px 6px 0px var(--vs-colors--darkest);--vs-dropdown-option-bg:#000;--vs-dropdown-option-color:var(--vs-dropdown-color);--vs-dropdown-option-padding:3px 20px;--vs-dropdown-option--active-bg:#136cfb;--vs-dropdown-option--active-color:#fff;--vs-dropdown-option--kb-focus-box-shadow:inset 0px 0px 0px 2px #949494;--vs-dropdown-option--deselect-bg:#fb5858;--vs-dropdown-option--deselect-color:#fff;--vs-transition-timing-function:cubic-bezier(1,-.115,.975,.855);--vs-transition-duration:.15s}.v-select{font-family:inherit;position:relative}.v-select,.v-select *{box-sizing:border-box}:root{--vs-transition-timing-function:cubic-bezier(1,.5,.8,1);--vs-transition-duration:.15s}@keyframes vSelectSpinner{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.vs__fade-enter-active,.vs__fade-leave-active{pointer-events:none;transition:opacity var(--vs-transition-duration) var(--vs-transition-timing-function)}.vs__fade-enter,.vs__fade-leave-to{opacity:0}:root{--vs-disabled-bg:var(--vs-state-disabled-bg);--vs-disabled-color:var(--vs-state-disabled-color);--vs-disabled-cursor:var(--vs-state-disabled-cursor)}.vs--disabled{.vs__clear,.vs__dropdown-toggle,.vs__open-indicator,.vs__open-indicator-button,.vs__search,.vs__selected{background-color:var(--vs-disabled-bg);cursor:var(--vs-disabled-cursor)}}.v-select[dir=rtl]{.vs__actions{padding:0 3px 0 6px}.vs__clear{margin-left:6px;margin-right:0}.vs__deselect{margin-left:0;margin-right:2px}.vs__dropdown-menu{text-align:right}}.vs__dropdown-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--vs-search-input-bg);border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-radius:var(--vs-border-radius);display:flex;padding:0 0 4px;white-space:normal}.vs__selected-options{display:flex;flex-basis:100%;flex-grow:1;flex-wrap:wrap;min-width:0;padding:0 2px;position:relative}.vs__actions{align-items:center;display:flex;padding:var(--vs-actions-padding)}.vs--searchable .vs__dropdown-toggle{cursor:text}.vs--unsearchable .vs__dropdown-toggle{cursor:pointer}.vs--open .vs__dropdown-toggle{border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0}.vs__open-indicator-button{background-color:transparent;border:0;cursor:pointer;padding:0}.vs__open-indicator{fill:var(--vs-controls-color);transform:scale(var(--vs-controls-size));transition:transform var(--vs-transition-duration) var(--vs-transition-timing-function);transition-timing-function:var(--vs-transition-timing-function)}.vs--open .vs__open-indicator{transform:rotate(180deg) scale(var(--vs-controls-size))}.vs--loading .vs__open-indicator{opacity:0}.vs__clear{background-color:transparent;border:0;cursor:pointer;fill:var(--vs-controls-color);margin-right:8px;padding:0}.vs__dropdown-menu{background:var(--vs-dropdown-bg);border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-radius:0 0 var(--vs-border-radius) var(--vs-border-radius);border-top-style:none;box-shadow:var(--vs-dropdown-box-shadow);box-sizing:border-box;color:var(--vs-dropdown-color);display:block;left:0;list-style:none;margin:0;max-height:var(--vs-dropdown-max-height);min-width:var(--vs-dropdown-min-width);overflow-y:auto;padding:5px 0;position:absolute;text-align:left;top:calc(100% - var(--vs-border-width));width:100%;z-index:var(--vs-dropdown-z-index)}.vs__no-options{text-align:center}.vs__dropdown-option{clear:both;color:var(--vs-dropdown-option-color);cursor:pointer;display:block;line-height:1.42857143;padding:var(--vs-dropdown-option-padding);white-space:nowrap}.vs__dropdown-option--highlight{background:var(--vs-dropdown-option--active-bg);color:var(--vs-dropdown-option--active-color)}.vs__dropdown-option--kb-focus{box-shadow:var(--vs-dropdown-option--kb-focus-box-shadow)}.vs__dropdown-option--deselect{background:var(--vs-dropdown-option--deselect-bg);color:var(--vs-dropdown-option--deselect-color)}.vs__dropdown-option--disabled{background:var(--vs-state-disabled-bg);color:var(--vs-state-disabled-color);cursor:var(--vs-state-disabled-cursor)}.vs__selected{align-items:center;background-color:var(--vs-selected-bg);border:var(--vs-selected-border-width) var(--vs-selected-border-style) var(--vs-selected-border-color);border-radius:var(--vs-border-radius);color:var(--vs-selected-color);display:flex;line-height:var(--vs-line-height);margin:4px 2px 0;min-width:0;padding:0 .25em;z-index:0}.vs__deselect{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;cursor:pointer;display:inline-flex;fill:var(--vs-controls-color);margin-left:4px;padding:0;text-shadow:var(--vs-controls--deselect-text-shadow)}.vs--single{.vs__selected{background-color:transparent;border-color:transparent}&.vs--loading .vs__selected,&.vs--open .vs__selected{max-width:100%;opacity:.4;position:absolute}&.vs--searching .vs__selected{display:none}}.vs__search::-webkit-search-cancel-button{display:none}.vs__search::-ms-clear,.vs__search::-webkit-search-decoration,.vs__search::-webkit-search-results-button,.vs__search::-webkit-search-results-decoration{display:none}.vs__search,.vs__search:focus{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:1px solid transparent;border-left:none;box-shadow:none;color:var(--vs-search-input-color);flex-grow:1;font-size:var(--vs-font-size);line-height:var(--vs-line-height);margin:4px 0 0;max-width:100%;outline:none;padding:0 7px;width:0;z-index:1}.vs__search::-moz-placeholder{color:var(--vs-search-input-placeholder-color)}.vs__search::placeholder{color:var(--vs-search-input-placeholder-color)}.vs--unsearchable{.vs__search{opacity:1}&:not(.vs--disabled) .vs__search{cursor:pointer}}.vs--single.vs--searching:not(.vs--open):not(.vs--loading){.vs__search{opacity:.2}}.vs__spinner{align-self:center;animation:vSelectSpinner 1.1s linear infinite;border:.9em solid hsla(0,0%,39.2%,.1);border-left-color:#3c3c3c73;font-size:5px;opacity:0;overflow:hidden;text-indent:-9999em;transform:translateZ(0) scale(var(--vs-controls--spinner-size,var(--vs-controls-size)));transition:opacity .1s}.vs__spinner,.vs__spinner:after{border-radius:50%;height:5em;transform:scale(var(--vs-controls--spinner-size,var(--vs-controls-size)));width:5em}.vs--loading .vs__spinner{opacity:1}.material-design-icon[data-v-a612f185]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.name-parts[data-v-a612f185]{display:flex;max-width:100%;cursor:inherit}.name-parts__first[data-v-a612f185]{overflow:hidden;text-overflow:ellipsis}.name-parts__first[data-v-a612f185],.name-parts__last[data-v-a612f185]{white-space:pre;cursor:inherit}.name-parts__first strong[data-v-a612f185],.name-parts__last strong[data-v-a612f185]{font-weight:700} diff --git a/dist/core-public-page-menu.js b/dist/core-public-page-menu.js index 7b4886dc890..7fccfadb188 100644 --- a/dist/core-public-page-menu.js +++ b/dist/core-public-page-menu.js @@ -1,2 +1,2 @@ -(()=>{"use strict";var e,t,n,r={76642(e,t,n){var r=n(21777),l=n(85471),o=n(81222),i=n(53334),a=n(53429),c=n(98469),u=n(74095),s=n(2769),p=n(26690);const d=(0,l.pM)({__name:"PublicPageMenuCustomEntry",props:{id:null,html:null},setup(e){const t=(0,l.KR)(),n=(0,l.KR)("presentation");return(0,l.sV)(()=>{const e=t.value?.querySelector('[role="menuitem"]');if(e)return;const r=t.value?.querySelector("button")??t.value?.querySelector("a");r?r.role="menuitem":n.value="menuitem"}),{__sfc:!0,listItem:t,itemRole:n}}});var m=n(14486);const f=(0,m.A)(d,function(){var e=this;return(0,e._self._c)("li",{ref:"listItem",attrs:{role:e._self._setupProxy.itemRole},domProps:{innerHTML:e._s(e.html)}})},[],!1,null,null,null).exports;var b=n(1522);const g=(0,l.pM)({__name:"PublicPageMenuEntry",props:{clickOnly:{type:Boolean},id:null,label:null,icon:null,href:null,details:null},setup(e){const t=e;return(0,l.sV)(()=>{const e=document.getElementById(`${t.id}--link`);e.role="menuitem",t.clickOnly&&(e.onclick=e=>e.preventDefault())}),{__sfc:!0,props:t,NcListItem:b.A}}});var v=n(85072),h=n.n(v),y=n(97825),A=n.n(y),_=n(77659),k=n.n(_),C=n(55056),x=n.n(C),P=n(10540),w=n.n(P),M=n(41113),E=n.n(M),S=n(40306),N={};N.styleTagTransform=E(),N.setAttributes=x(),N.insert=k().bind(null,"head"),N.domAPI=A(),N.insertStyleElement=w(),h()(S.A,N),S.A&&S.A.locals&&S.A.locals;const T=(0,m.A)(g,function(){var e=this,t=e._self._c,n=e._self._setupProxy;return t(n.NcListItem,{attrs:{"anchor-id":`${e.id}--link`,compact:"",details:e.details,href:e.href,name:e.label,role:"presentation"},on:{click:function(t){return e.$emit("click")}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.$scopedSlots.icon?e._t("icon"):t("div",{staticClass:"icon public-page-menu-entry__icon",class:[e.icon],attrs:{role:"presentation"}})]},proxy:!0}],null,!0)})},[],!1,null,"7256a1f8",null).exports;var D=n(44368),I=n(85168),L=n(63814),O=n(32505),$=n(94219),R=n(88289),F=n(82182),B=n(35947);const U=null===(K=(0,r.HW)())?(0,B.YK)().setApp("core").build():(0,B.YK)().setApp("core").setUid(K.uid).build();var K;(0,B.YK)().setApp("unified-search").detectUser().build();const j=(0,l.pM)({__name:"PublicPageMenuExternalDialog",props:{label:null},setup(e){const t=(0,l.KR)(!1),n=(0,l.KR)(""),r=(0,l.KR)(),o=(0,l.KR)(!0);return(0,l.sV)(()=>(0,l.dY)(()=>r.value.focus())),(0,l.wB)(n,()=>{let e="";n.value.includes("@")?n.value.match(/@(.+\..{2,}|(?:http:\/\/)?localhost)(:\d\d+)?$/)||(e=(0,i.t)("core","Invalid remote URL.")):e=(0,i.t)("core","The remote URL must include the user."),r.value.$el.querySelector("input").setCustomValidity(e),r.value.$el.querySelector("input").reportValidity()}),{__sfc:!0,loading:t,remoteUrl:n,input:r,open:o,createFederatedShare:async function(){t.value=!0;try{const e=(0,L.Jv)("/apps/federatedfilesharing/createFederatedShare"),{data:t}=await D.Ay.post(e,{shareWith:n.value,token:(0,O.G)()});t.remoteUrl.includes("://")?window.location.href=t.remoteUrl:window.location.href=`${window.location.protocol}//${t.remoteUrl}`}catch(e){U.error("Failed to create federated share",{error:e}),(0,I.Qg)((0,i.t)("files_sharing","Failed to add the public link to your Nextcloud"))}finally{t.value=!1}},t:i.t,NcButton:u.A,NcDialog:$.A,NcLoadingIcon:R.A,NcTextField:F.A}}}),q=(0,m.A)(j,function(){var e=this,t=e._self._c,n=e._self._setupProxy;return t(n.NcDialog,{attrs:{"is-form":"",name:e.label,open:n.open},on:{"update:open":function(e){n.open=e},submit:n.createFederatedShare},scopedSlots:e._u([{key:"actions",fn:function(){return[t(n.NcButton,{attrs:{disabled:n.loading,variant:"primary",type:"submit"},scopedSlots:e._u([n.loading?{key:"icon",fn:function(){return[t(n.NcLoadingIcon)]},proxy:!0}:null],null,!0)},[e._v("\n\t\t\t"+e._s(n.t("core","Create share"))+"\n\t\t")])]},proxy:!0}])},[t(n.NcTextField,{ref:"input",attrs:{label:n.t("core","Federated user"),placeholder:n.t("core","user@your-nextcloud.org"),required:""},model:{value:n.remoteUrl,callback:function(e){n.remoteUrl=e},expression:"remoteUrl"}})],1)},[],!1,null,null,null).exports;var G=n(54914);const H=(0,l.pM)({__name:"PublicPageMenuExternalEntry",props:{id:null,label:null,icon:null,href:null},emits:["click"],setup(e,{emit:t}){const n=(0,l.KR)(!1);return{__sfc:!0,emit:t,showDialog:n,openDialog:function(){n.value=!0,t("click")},Fragment:G.F,PublicPageMenuEntry:T,PublicPageMenuExternalDialog:q}}}),V=(0,m.A)(H,function(){var e=this,t=e._self._c,n=e._self._setupProxy;return t(n.Fragment,[t(n.PublicPageMenuEntry,{attrs:{id:e.id,icon:e.icon,href:"#",label:e.label},on:{click:n.openDialog}}),e._v(" "),n.showDialog?t(n.PublicPageMenuExternalDialog,{attrs:{label:e.label}}):e._e()],1)},[],!1,null,null,null).exports,z=(0,l.pM)({__name:"PublicPageMenuLinkEntry",props:{id:null,label:null,icon:null,href:null},emits:["click"],setup(e,{emit:t}){const n=e;async function r(){try{await window.navigator.clipboard.writeText(n.href),(0,I.Te)((0,i.t)("core","Direct link copied"))}catch{window.prompt((0,i.t)("core","Please copy the link manually:"),n.href)}}return{__sfc:!0,props:n,emit:t,copyLink:r,onClick:function(){r(),t("click")},PublicPageMenuEntry:T}}}),Y=(0,m.A)(z,function(){var e=this,t=e._self._c,n=e._self._setupProxy;return t(n.PublicPageMenuEntry,{attrs:{id:e.id,"click-only":"",icon:e.icon,href:e.href,label:e.label},on:{click:n.onClick}})},[],!1,null,null,null).exports,W=(0,l.pM)({__name:"PublicPageMenu",setup(e){const t=(0,o.C)("core","public-page-menu"),n=(0,l.KR)(!1),r=(0,a.F)(),d=(0,l.EW)(()=>r.value?void 0:t[0]),m=(0,l.EW)(()=>r.value?t:t.slice(1));return{__sfc:!0,menuEntries:t,showMenu:n,isMobile:r,primaryAction:d,secondaryActions:m,getComponent:function(e){if("html"in e)return f;switch(e.id){case"save":return V;case"directLink":return Y;default:return T}},openDialogIfNeeded:function(){"save"===d.value?.id&&(0,c.S)(q,{label:d.value.label})},t:i.t,NcButton:u.A,NcHeaderMenu:s.A,IconMore:p.A}}});var X=n(45775),J={};J.styleTagTransform=E(),J.setAttributes=x(),J.insert=k().bind(null,"head"),J.domAPI=A(),J.insertStyleElement=w(),h()(X.A,J),X.A&&X.A.locals&&X.A.locals;const Q=(0,m.A)(W,function(){var e=this,t=e._self._c,n=e._self._setupProxy;return t("div",{staticClass:"public-page-menu__wrapper"},[n.primaryAction?t(n.NcButton,{staticClass:"public-page-menu__primary",attrs:{id:"public-page-menu--primary",href:n.primaryAction.href,variant:"primary"},on:{click:n.openDialogIfNeeded},scopedSlots:e._u([n.primaryAction.icon?{key:"icon",fn:function(){return[t("div",{staticClass:"icon public-page-menu__primary-icon",class:[n.primaryAction.icon]})]},proxy:!0}:null],null,!0)},[e._v("\n\t\t"+e._s(n.primaryAction.label)+"\n\t")]):e._e(),e._v(" "),n.secondaryActions.length>0?t(n.NcHeaderMenu,{attrs:{id:"public-page-menu","aria-label":n.t("core","More actions"),open:n.showMenu},on:{"update:open":function(e){n.showMenu=e}},scopedSlots:e._u([{key:"trigger",fn:function(){return[t(n.IconMore,{attrs:{size:20}})]},proxy:!0}],null,!1,262033445)},[e._v(" "),t("ul",{staticClass:"public-page-menu",attrs:{"aria-label":n.t("core","More actions"),role:"menu"}},e._l(n.secondaryActions,function(r,l){return t(n.getComponent(r),e._b({key:l,tag:"component",on:{click:function(e){n.showMenu=!1}}},"component",r,!1))}),1)]):e._e()],1)},[],!1,null,"4899e0ba",null).exports;n.nc=(0,r.aV)(),(new(l.Ay.extend(Q))).$mount("#public-page-menu")},45775(e,t,n){n.d(t,{A:()=>a});var r=n(71354),l=n.n(r),o=n(76314),i=n.n(o)()(l());i.push([e.id,".public-page-menu[data-v-4899e0ba]{box-sizing:border-box}.public-page-menu[data-v-4899e0ba]> *{box-sizing:border-box}.public-page-menu__wrapper[data-v-4899e0ba]{display:flex;flex-direction:row;gap:var(--default-grid-baseline)}.public-page-menu__primary[data-v-4899e0ba]{height:var(--default-clickable-area);margin-block:calc((var(--header-height) - var(--default-clickable-area))/2)}.public-page-menu__primary[data-v-4899e0ba]:focus-visible{border-color:var(--color-background-plain-text) !important}.public-page-menu__primary-icon[data-v-4899e0ba]{filter:var(--primary-invert-if-bright)}","",{version:3,sources:["webpack://./core/src/views/PublicPageMenu.vue"],names:[],mappings:"AACA,mCACC,qBAAA,CAEA,sCACC,qBAAA,CAGD,4CACC,YAAA,CACA,kBAAA,CACA,gCAAA,CAGD,4CACC,oCAAA,CACA,2EAAA,CAGA,0DACC,0DAAA,CAIF,iDACC,sCAAA",sourcesContent:["\n.public-page-menu {\n\tbox-sizing: border-box;\n\n\t> :deep(*) {\n\t\tbox-sizing: border-box;\n\t}\n\n\t&__wrapper {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tgap: var(--default-grid-baseline);\n\t}\n\n\t&__primary {\n\t\theight: var(--default-clickable-area);\n\t\tmargin-block: calc((var(--header-height) - var(--default-clickable-area)) / 2);\n\n\t\t// Ensure the correct focus-visible color is used (as this is rendered directly on the background(-image))\n\t\t&:focus-visible {\n\t\t\tborder-color: var(--color-background-plain-text) !important;\n\t\t}\n\t}\n\n\t&__primary-icon {\n\t\tfilter: var(--primary-invert-if-bright);\n\t}\n}\n"],sourceRoot:""}]);const a=i},40306(e,t,n){n.d(t,{A:()=>a});var r=n(71354),l=n.n(r),o=n(76314),i=n.n(o)()(l());i.push([e.id,"\n.public-page-menu-entry__icon[data-v-7256a1f8] {\n\tpadding-inline-start: var(--default-grid-baseline);\n}\n","",{version:3,sources:["webpack://./core/src/components/PublicPageMenu/PublicPageMenuEntry.vue"],names:[],mappings:";AAmDA;CACA,kDAAA;AACA",sourcesContent:['\x3c!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n --\x3e\n\n\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"853\":\"6833bedf1e8274b7e505\",\"1604\":\"a9b2c11c7ea153e582fe\",\"6505\":\"d9fda59cc4f5faf614df\",\"6597\":\"ed51e93335fe8b279e03\",\"7859\":\"40215e5f906f720b3174\",\"8582\":\"5436a03717a70af24780\",\"9150\":\"6df0bf97719b9e8b8cd0\"}[chunkId] + \"\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 1688;","var scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nvar document = globalThis.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t1688: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] = globalThis[\"webpackChunknextcloud_ui_legacy\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(76642)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","PublicPageMenu_PublicPageMenuCustomEntryvue_type_script_setup_true_lang_ts","_defineComponent","__name","props","id","html","setup","__props","listItem","ref","itemRole","onMounted","menuitem","value","querySelector","button","role","__sfc","PublicPageMenuCustomEntry","componentNormalizer","A","_vm","this","_c","_self","attrs","_setupProxy","domProps","innerHTML","_s","PublicPageMenu_PublicPageMenuEntryvue_type_script_setup_true_lang_ts","clickOnly","type","Boolean","label","icon","href","details","anchor","document","getElementById","onclick","event","preventDefault","NcListItem","options","styleTagTransform","styleTagTransform_default","setAttributes","setAttributesWithoutAttributes_default","insert","insertBySelector_default","bind","domAPI","styleDomAPI_default","insertStyleElement","insertStyleElement_default","injectStylesIntoStyleTag_default","PublicPageMenuEntryvue_type_style_index_0_id_7256a1f8_prod_scoped_true_lang_css","locals","PublicPageMenuEntry","_setup","compact","name","on","click","$event","$emit","scopedSlots","_u","key","fn","$scopedSlots","_t","staticClass","class","proxy","logger","user","getCurrentUser","getLoggerBuilder","setApp","build","setUid","uid","detectUser","PublicPageMenu_PublicPageMenuExternalDialogvue_type_script_setup_true_lang_ts","loading","remoteUrl","input","open","nextTick","focus","watch","validity","includes","match","t","$el","setCustomValidity","reportValidity","createFederatedShare","async","url","generateUrl","data","axios","post","shareWith","token","getSharingToken","window","location","protocol","error","showError","l10n_dist","NcButton","NcDialog","NcLoadingIcon","NcTextField","PublicPageMenuExternalDialog","submit","disabled","variant","_v","placeholder","required","model","callback","$$v","expression","PublicPageMenu_PublicPageMenuExternalEntryvue_type_script_setup_true_lang_ts","emits","emit","showDialog","openDialog","Fragment","frag_esm","F","PublicPageMenuExternalEntry","_e","PublicPageMenu_PublicPageMenuLinkEntryvue_type_script_setup_true_lang_ts","copyLink","navigator","clipboard","writeText","showSuccess","prompt","onClick","PublicPageMenuLinkEntry","views_PublicPageMenuvue_type_script_setup_true_lang_ts","menuEntries","loadState","showMenu","isMobile","useIsSmallMobile","primaryAction","computed","undefined","secondaryActions","slice","getComponent","entry","openDialogIfNeeded","spawnDialog","NcHeaderMenu","IconMore","PublicPageMenuvue_type_style_index_0_id_4899e0ba_prod_scoped_true_lang_scss_options","PublicPageMenuvue_type_style_index_0_id_4899e0ba_prod_scoped_true_lang_scss","PublicPageMenu","length","size","_l","index","_b","tag","__webpack_nonce__","getCSPNonce","Vue","extend","$mount","___CSS_LOADER_EXPORT___","_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default","_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default","push","module","version","sources","names","mappings","sourcesContent","sourceRoot","__WEBPACK_DEFAULT_EXPORT__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","loaded","__webpack_modules__","call","m","O","result","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","Object","keys","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","obj","prop","prototype","hasOwnProperty","l","done","script","needAttach","scripts","getElementsByTagName","s","getAttribute","createElement","charset","nc","setAttribute","src","onScriptComplete","prev","onerror","onload","clearTimeout","timeout","doneFns","parentNode","removeChild","forEach","setTimeout","target","head","appendChild","Symbol","toStringTag","nmd","paths","children","scriptUrl","globalThis","importScripts","currentScript","tagName","toUpperCase","test","Error","replace","p","b","baseURI","self","installedChunks","installedChunkData","promise","resolve","reject","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"core-public-page-menu.js?v=5d4bda7d1be547107a6a","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/core/src/components/PublicPageMenu/PublicPageMenuCustomEntry.vue","webpack:///nextcloud/core/src/components/PublicPageMenu/PublicPageMenuCustomEntry.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./core/src/components/PublicPageMenu/PublicPageMenuCustomEntry.vue?7e8e","webpack:///nextcloud/core/src/components/PublicPageMenu/PublicPageMenuEntry.vue","webpack:///nextcloud/core/src/components/PublicPageMenu/PublicPageMenuEntry.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./core/src/components/PublicPageMenu/PublicPageMenuEntry.vue?5e24","webpack://nextcloud/./core/src/components/PublicPageMenu/PublicPageMenuEntry.vue?3d4d","webpack:///nextcloud/core/src/components/PublicPageMenu/PublicPageMenuExternalDialog.vue","webpack:///nextcloud/core/src/logger.js","webpack:///nextcloud/core/src/components/PublicPageMenu/PublicPageMenuExternalDialog.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./core/src/components/PublicPageMenu/PublicPageMenuExternalDialog.vue?7776","webpack:///nextcloud/core/src/components/PublicPageMenu/PublicPageMenuExternalEntry.vue","webpack:///nextcloud/core/src/components/PublicPageMenu/PublicPageMenuExternalEntry.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./core/src/components/PublicPageMenu/PublicPageMenuExternalEntry.vue?0ecb","webpack:///nextcloud/core/src/components/PublicPageMenu/PublicPageMenuLinkEntry.vue?vue&type=script&setup=true&lang=ts","webpack:///nextcloud/core/src/components/PublicPageMenu/PublicPageMenuLinkEntry.vue","webpack://nextcloud/./core/src/components/PublicPageMenu/PublicPageMenuLinkEntry.vue?bf26","webpack:///nextcloud/core/src/views/PublicPageMenu.vue?vue&type=script&setup=true&lang=ts","webpack:///nextcloud/core/src/views/PublicPageMenu.vue","webpack://nextcloud/./core/src/views/PublicPageMenu.vue?1172","webpack://nextcloud/./core/src/views/PublicPageMenu.vue?c130","webpack:///nextcloud/core/src/public-page-menu.ts","webpack:///nextcloud/core/src/views/PublicPageMenu.vue?vue&type=style&index=0&id=6996ae48&prod&scoped=true&lang=scss","webpack:///nextcloud/core/src/components/PublicPageMenu/PublicPageMenuEntry.vue?vue&type=style&index=0&id=7256a1f8&prod&scoped=true&lang=css","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud-ui-legacy:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('li',{ref:\"listItem\",attrs:{\"role\":_setup.itemRole},domProps:{\"innerHTML\":_vm._s(_vm.html)}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicPageMenuCustomEntry.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicPageMenuCustomEntry.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./PublicPageMenuCustomEntry.vue?vue&type=template&id=7b18fede\"\nimport script from \"./PublicPageMenuCustomEntry.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PublicPageMenuCustomEntry.vue?vue&type=script&setup=true&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcListItem,{attrs:{\"anchor-id\":`${_vm.id}--link`,\"compact\":\"\",\"details\":_vm.details,\"href\":_vm.href,\"name\":_vm.label,\"role\":\"presentation\"},on:{\"click\":function($event){return _vm.$emit('click')}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.$scopedSlots.icon)?_vm._t(\"icon\"):_c('div',{staticClass:\"icon public-page-menu-entry__icon\",class:[_vm.icon],attrs:{\"role\":\"presentation\"}})]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicPageMenuEntry.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicPageMenuEntry.vue?vue&type=script&setup=true&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicPageMenuEntry.vue?vue&type=style&index=0&id=7256a1f8&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicPageMenuEntry.vue?vue&type=style&index=0&id=7256a1f8&prod&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./PublicPageMenuEntry.vue?vue&type=template&id=7256a1f8&scoped=true\"\nimport script from \"./PublicPageMenuEntry.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PublicPageMenuEntry.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./PublicPageMenuEntry.vue?vue&type=style&index=0&id=7256a1f8&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7256a1f8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcDialog,{attrs:{\"is-form\":\"\",\"name\":_vm.label,\"open\":_setup.open},on:{\"update:open\":function($event){_setup.open=$event},\"submit\":_setup.createFederatedShare},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c(_setup.NcButton,{attrs:{\"disabled\":_setup.loading,\"variant\":\"primary\",\"type\":\"submit\"},scopedSlots:_vm._u([(_setup.loading)?{key:\"icon\",fn:function(){return [_c(_setup.NcLoadingIcon)]},proxy:true}:null],null,true)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_setup.t('core', 'Create share'))+\"\\n\\t\\t\")])]},proxy:true}])},[_c(_setup.NcTextField,{ref:\"input\",attrs:{\"label\":_setup.t('core', 'Federated user'),\"placeholder\":_setup.t('core', 'user@your-nextcloud.org'),\"required\":\"\"},model:{value:(_setup.remoteUrl),callback:function ($$v) {_setup.remoteUrl=$$v},expression:\"remoteUrl\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\n/**\n *\n * @param user\n */\nfunction getLogger(user) {\n\tif (user === null) {\n\t\treturn getLoggerBuilder()\n\t\t\t.setApp('core')\n\t\t\t.build()\n\t}\n\treturn getLoggerBuilder()\n\t\t.setApp('core')\n\t\t.setUid(user.uid)\n\t\t.build()\n}\n\nexport default getLogger(getCurrentUser())\n\nexport const unifiedSearchLogger = getLoggerBuilder()\n\t.setApp('unified-search')\n\t.detectUser()\n\t.build()\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicPageMenuExternalDialog.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicPageMenuExternalDialog.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./PublicPageMenuExternalDialog.vue?vue&type=template&id=652cc769\"\nimport script from \"./PublicPageMenuExternalDialog.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PublicPageMenuExternalDialog.vue?vue&type=script&setup=true&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.Fragment,[_c(_setup.PublicPageMenuEntry,{attrs:{\"id\":_vm.id,\"icon\":_vm.icon,\"href\":\"#\",\"label\":_vm.label},on:{\"click\":_setup.openDialog}}),_vm._v(\" \"),(_setup.showDialog)?_c(_setup.PublicPageMenuExternalDialog,{attrs:{\"label\":_vm.label}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicPageMenuExternalEntry.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicPageMenuExternalEntry.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./PublicPageMenuExternalEntry.vue?vue&type=template&id=9c1a7efa\"\nimport script from \"./PublicPageMenuExternalEntry.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PublicPageMenuExternalEntry.vue?vue&type=script&setup=true&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicPageMenuLinkEntry.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicPageMenuLinkEntry.vue?vue&type=script&setup=true&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.PublicPageMenuEntry,{attrs:{\"id\":_vm.id,\"click-only\":\"\",\"icon\":_vm.icon,\"href\":_vm.href,\"label\":_vm.label},on:{\"click\":_setup.onClick}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./PublicPageMenuLinkEntry.vue?vue&type=template&id=0b78225a\"\nimport script from \"./PublicPageMenuLinkEntry.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PublicPageMenuLinkEntry.vue?vue&type=script&setup=true&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicPageMenu.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicPageMenu.vue?vue&type=script&setup=true&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"public-page-menu__wrapper\"},[(_setup.primaryAction)?_c(_setup.NcButton,{staticClass:\"public-page-menu__primary\",attrs:{\"id\":\"public-page-menu--primary\",\"href\":_setup.primaryAction.href,\"variant\":\"primary\"},on:{\"click\":_setup.openDialogIfNeeded},scopedSlots:_vm._u([(_setup.primaryAction.icon)?{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"icon public-page-menu__primary-icon\",class:[_setup.primaryAction.icon]})]},proxy:true}:null],null,true)},[_vm._v(\"\\n\\t\\t\"+_vm._s(_setup.primaryAction.label)+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_setup.secondaryActions.length > 0)?_c(_setup.NcHeaderMenu,{attrs:{\"id\":\"public-page-menu\",\"aria-label\":_setup.t('core', 'More actions'),\"open\":_setup.showMenu},on:{\"update:open\":function($event){_setup.showMenu=$event}},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c(_setup.IconMore,{attrs:{\"size\":20}})]},proxy:true}],null,false,262033445)},[_vm._v(\" \"),_c('ul',{staticClass:\"public-page-menu\",attrs:{\"aria-label\":_setup.t('core', 'More actions'),\"role\":\"menu\"}},_vm._l((_setup.secondaryActions),function(entry,index){return _c(_setup.getComponent(entry),_vm._b({key:index,tag:\"component\",on:{\"click\":function($event){_setup.showMenu = false}}},'component',entry,false))}),1)]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicPageMenu.vue?vue&type=style&index=0&id=6996ae48&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicPageMenu.vue?vue&type=style&index=0&id=6996ae48&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./PublicPageMenu.vue?vue&type=template&id=6996ae48&scoped=true\"\nimport script from \"./PublicPageMenu.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PublicPageMenu.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./PublicPageMenu.vue?vue&type=style&index=0&id=6996ae48&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6996ae48\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCSPNonce } from '@nextcloud/auth';\nimport Vue from 'vue';\nimport PublicPageMenu from './views/PublicPageMenu.vue';\n__webpack_nonce__ = getCSPNonce();\nconst View = Vue.extend(PublicPageMenu);\nconst instance = new View();\ninstance.$mount('#public-page-menu');\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.public-page-menu[data-v-6996ae48]{box-sizing:border-box}.public-page-menu[data-v-6996ae48]> *{box-sizing:border-box}.public-page-menu__wrapper[data-v-6996ae48]{display:flex;flex-direction:row;gap:var(--default-grid-baseline)}.public-page-menu__primary[data-v-6996ae48]{height:var(--default-clickable-area);margin-block:calc((var(--header-height) - var(--default-clickable-area))/2)}.public-page-menu__primary[data-v-6996ae48]:focus-visible{border-color:var(--color-background-plain-text) !important}.public-page-menu__primary-icon[data-v-6996ae48]{filter:var(--primary-invert-if-dark)}@media(prefers-color-scheme: dark){.public-page-menu__primary-icon[data-v-6996ae48]{filter:var(--primary-invert-if-bright)}}[data-themes*=dark]{filter:var(--primary-invert-if-bright)}[data-themes*=light]{filter:var(--primary-invert-if-dark)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/views/PublicPageMenu.vue\"],\"names\":[],\"mappings\":\"AACA,mCACC,qBAAA,CAEA,sCACC,qBAAA,CAGD,4CACC,YAAA,CACA,kBAAA,CACA,gCAAA,CAGD,4CACC,oCAAA,CACA,2EAAA,CAGA,0DACC,0DAAA,CAIF,iDAEC,oCAAA,CAGA,mCALD,iDAME,sCAAA,CAAA,CAMH,oBACC,sCAAA,CAID,qBACC,oCAAA\",\"sourcesContent\":[\"\\n.public-page-menu {\\n\\tbox-sizing: border-box;\\n\\n\\t> :deep(*) {\\n\\t\\tbox-sizing: border-box;\\n\\t}\\n\\n\\t&__wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\tgap: var(--default-grid-baseline);\\n\\t}\\n\\n\\t&__primary {\\n\\t\\theight: var(--default-clickable-area);\\n\\t\\tmargin-block: calc((var(--header-height) - var(--default-clickable-area)) / 2);\\n\\n\\t\\t// Ensure the correct focus-visible color is used (as this is rendered directly on the background(-image))\\n\\t\\t&:focus-visible {\\n\\t\\t\\tborder-color: var(--color-background-plain-text) !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&__primary-icon {\\n\\t\\t// Light mode: icon is black by default, invert to white when primary is dark\\n\\t\\tfilter: var(--primary-invert-if-dark);\\n\\n\\t\\t// Dark mode: icon is white (swapped in icons.css), invert to black when primary is bright\\n\\t\\t@media (prefers-color-scheme: dark) {\\n\\t\\t\\tfilter: var(--primary-invert-if-bright);\\n\\t\\t}\\n\\t}\\n}\\n\\n// Dark theme via Nextcloud setting (data-themes attribute, not media query)\\n:global([data-themes*=dark]) .public-page-menu__primary-icon {\\n\\tfilter: var(--primary-invert-if-bright);\\n}\\n\\n// Light theme explicitly set (overrides dark media query if system is dark but user chose light)\\n:global([data-themes*=light]) .public-page-menu__primary-icon {\\n\\tfilter: var(--primary-invert-if-dark);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.public-page-menu-entry__icon[data-v-7256a1f8] {\n\tpadding-inline-start: var(--default-grid-baseline);\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/PublicPageMenu/PublicPageMenuEntry.vue\"],\"names\":[],\"mappings\":\";AAmDA;CACA,kDAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"853\":\"6833bedf1e8274b7e505\",\"1604\":\"a9b2c11c7ea153e582fe\",\"6505\":\"d9fda59cc4f5faf614df\",\"6597\":\"ed51e93335fe8b279e03\",\"7859\":\"40215e5f906f720b3174\",\"8582\":\"5436a03717a70af24780\",\"9150\":\"6df0bf97719b9e8b8cd0\"}[chunkId] + \"\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 1688;","var scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nvar document = globalThis.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t1688: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] = globalThis[\"webpackChunknextcloud_ui_legacy\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(30529)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","PublicPageMenu_PublicPageMenuCustomEntryvue_type_script_setup_true_lang_ts","_defineComponent","__name","props","id","html","setup","__props","listItem","ref","itemRole","onMounted","menuitem","value","querySelector","button","role","__sfc","PublicPageMenuCustomEntry","componentNormalizer","A","_vm","this","_c","_self","attrs","_setupProxy","domProps","innerHTML","_s","PublicPageMenu_PublicPageMenuEntryvue_type_script_setup_true_lang_ts","clickOnly","type","Boolean","label","icon","href","details","anchor","document","getElementById","onclick","event","preventDefault","NcListItem","options","styleTagTransform","styleTagTransform_default","setAttributes","setAttributesWithoutAttributes_default","insert","insertBySelector_default","bind","domAPI","styleDomAPI_default","insertStyleElement","insertStyleElement_default","injectStylesIntoStyleTag_default","PublicPageMenuEntryvue_type_style_index_0_id_7256a1f8_prod_scoped_true_lang_css","locals","PublicPageMenuEntry","_setup","compact","name","on","click","$event","$emit","scopedSlots","_u","key","fn","$scopedSlots","_t","staticClass","class","proxy","logger","user","getCurrentUser","getLoggerBuilder","setApp","build","setUid","uid","detectUser","PublicPageMenu_PublicPageMenuExternalDialogvue_type_script_setup_true_lang_ts","loading","remoteUrl","input","open","nextTick","focus","watch","validity","includes","match","t","$el","setCustomValidity","reportValidity","createFederatedShare","async","url","generateUrl","data","axios","post","shareWith","token","getSharingToken","window","location","protocol","error","showError","l10n_dist","NcButton","NcDialog","NcLoadingIcon","NcTextField","PublicPageMenuExternalDialog","submit","disabled","variant","_v","placeholder","required","model","callback","$$v","expression","PublicPageMenu_PublicPageMenuExternalEntryvue_type_script_setup_true_lang_ts","emits","emit","showDialog","openDialog","Fragment","frag_esm","F","PublicPageMenuExternalEntry","_e","PublicPageMenu_PublicPageMenuLinkEntryvue_type_script_setup_true_lang_ts","copyLink","navigator","clipboard","writeText","showSuccess","prompt","onClick","PublicPageMenuLinkEntry","views_PublicPageMenuvue_type_script_setup_true_lang_ts","menuEntries","loadState","showMenu","isMobile","useIsSmallMobile","primaryAction","computed","undefined","secondaryActions","slice","getComponent","entry","openDialogIfNeeded","spawnDialog","NcHeaderMenu","IconMore","PublicPageMenuvue_type_style_index_0_id_6996ae48_prod_scoped_true_lang_scss_options","PublicPageMenuvue_type_style_index_0_id_6996ae48_prod_scoped_true_lang_scss","PublicPageMenu","length","size","_l","index","_b","tag","__webpack_nonce__","getCSPNonce","Vue","extend","$mount","___CSS_LOADER_EXPORT___","_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default","_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default","push","module","version","sources","names","mappings","sourcesContent","sourceRoot","__WEBPACK_DEFAULT_EXPORT__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","loaded","__webpack_modules__","call","m","O","result","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","Object","keys","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","obj","prop","prototype","hasOwnProperty","l","done","script","needAttach","scripts","getElementsByTagName","s","getAttribute","createElement","charset","nc","setAttribute","src","onScriptComplete","prev","onerror","onload","clearTimeout","timeout","doneFns","parentNode","removeChild","forEach","setTimeout","target","head","appendChild","Symbol","toStringTag","nmd","paths","children","scriptUrl","globalThis","importScripts","currentScript","tagName","toUpperCase","test","Error","replace","p","b","baseURI","self","installedChunks","installedChunkData","promise","resolve","reject","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/dav-dav-settings-personal-availability-86q6-LKF.chunk.css b/dist/dav-dav-settings-personal-availability-86q6-LKF.chunk.css new file mode 100644 index 00000000000..c179ce2ce86 --- /dev/null +++ b/dist/dav-dav-settings-personal-availability-86q6-LKF.chunk.css @@ -0,0 +1 @@ +._absenceForm_1i2bj_2{display:flex;flex-direction:column;gap:5px}._absenceForm__pickerContainer_1i2bj_8{display:flex;gap:10px;width:100%}._absenceForm__picker_1i2bj_8{flex:1 auto;.native-datetime-picker--input{margin-bottom:0}}._absenceForm__longMessage_1i2bj_22{height:calc(var(--default-line-height) * 6 * var(--font-size-small))}._absenceForm__longMessageContainer_1i2bj_26{height:calc(var(--default-line-height) * 6 * var(--font-size-small) + var(--default-grid-baseline) * 2);display:flex;flex-direction:column;justify-content:start}._absenceForm__actions_1i2bj_33{display:flex;gap:5px}.availability-day[data-v-3ef03e87]{padding:0 10px;position:absolute}.availability-slots[data-v-3ef03e87]{max-width:332px;width:100%;display:flex;justify-content:flex-start;white-space:nowrap}.availability-slot[data-v-3ef03e87]{display:flex;flex-direction:row;align-items:center}.availability-slot-group[data-v-3ef03e87]{display:flex;flex-direction:column}.time-zone[data-v-3ef03e87]{padding:32px 12px 12px 0}.week-day-container[data-v-3ef03e87]{box-sizing:border-box;margin-bottom:32px;max-width:500px;width:100%;display:flex;flex-direction:column;align-items:flex-start}.button[data-v-3ef03e87]{align-self:flex-end}.label-weekday[data-v-3ef03e87]{position:relative;display:flex;align-items:flex-start;min-width:77px;width:77px}.label-weekday>span[data-v-3ef03e87]{height:50px;display:flex;align-items:center}.add-another[data-v-3ef03e87]{background-color:transparent;border:none;opacity:.5;display:inline-flex;padding:0;margin:0 0 3px}.add-another[data-v-3ef03e87]:hover{opacity:1}.to-text[data-v-3ef03e87]{padding-right:12px}.time-zone-text[data-v-3ef03e87]{padding-left:22px}.empty-content[data-v-3ef03e87]{color:var(--color-text-lighter);display:inline-flex;align-items:center}.start-date[data-v-3ef03e87]{padding-right:12px}.day-container[data-v-3ef03e87]{display:flex;max-width:500px;width:100%;gap:24px;border-top:1px solid var(--color-border);padding-top:calc(3 * var(--default-grid-baseline));margin-top:calc(2 * var(--default-grid-baseline));align-items:center}.day-container>button[data-v-3ef03e87]{align-self:center}[data-v-3ad7b763] .availability-day{padding:0 10px;position:absolute}[data-v-3ad7b763] .availability-slots{display:flex;white-space:normal}[data-v-3ad7b763] .availability-slot{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap}[data-v-3ad7b763] .availability-slot-group{display:flex;flex-direction:column}[data-v-3ad7b763] .mx-input-wrapper{width:85px}[data-v-3ad7b763] .mx-datepicker{width:97px}.time-zone[data-v-3ad7b763]{padding-block:32px 12px;padding-inline:0 12px;display:flex;flex-wrap:wrap}.time-zone__heading[data-v-3ad7b763]{margin-inline-end:calc(var(--default-grid-baseline) * 2);line-height:var(--default-clickable-area);font-weight:700}.grid-table[data-v-3ad7b763]{display:grid;margin-bottom:32px;column-gap:24px;row-gap:6px;grid-template-columns:min-content auto min-content;max-width:500px}.button[data-v-3ad7b763]{align-self:flex-end}[data-v-3ad7b763] .label-weekday{position:relative;display:inline-flex;padding-top:4px;align-self:center}[data-v-3ad7b763] .delete-slot{padding-bottom:unset}[data-v-3ad7b763] .add-another{align-self:center}.to-text[data-v-3ad7b763]{padding-inline-end:12px}.empty-content[data-v-3ad7b763]{align-self:center;color:var(--color-text-maxcontrast);margin-block-start:var(--default-grid-baseline)} diff --git a/dist/dav-dav-settings-personal-availability-DSI9XS6G.chunk.css b/dist/dav-dav-settings-personal-availability-DSI9XS6G.chunk.css deleted file mode 100644 index 3098327ef96..00000000000 --- a/dist/dav-dav-settings-personal-availability-DSI9XS6G.chunk.css +++ /dev/null @@ -1 +0,0 @@ -._absenceForm_1i2bj_2{display:flex;flex-direction:column;gap:5px}._absenceForm__pickerContainer_1i2bj_8{display:flex;gap:10px;width:100%}._absenceForm__picker_1i2bj_8{flex:1 auto}._absenceForm__picker_1i2bj_8 .native-datetime-picker--input{margin-bottom:0}._absenceForm__longMessage_1i2bj_22{height:calc(var(--default-line-height) * 6 * var(--font-size-small))}._absenceForm__longMessageContainer_1i2bj_26{height:calc(var(--default-line-height) * 6 * var(--font-size-small) + var(--default-grid-baseline) * 2);display:flex;flex-direction:column;justify-content:start}._absenceForm__actions_1i2bj_33{display:flex;gap:5px}.availability-day[data-v-3ef03e87]{padding:0 10px;position:absolute}.availability-slots[data-v-3ef03e87]{max-width:332px;width:100%;display:flex;justify-content:flex-start;white-space:nowrap}.availability-slot[data-v-3ef03e87]{display:flex;flex-direction:row;align-items:center}.availability-slot-group[data-v-3ef03e87]{display:flex;flex-direction:column}.time-zone[data-v-3ef03e87]{padding:32px 12px 12px 0}.week-day-container[data-v-3ef03e87]{box-sizing:border-box;margin-bottom:32px;max-width:500px;width:100%;display:flex;flex-direction:column;align-items:flex-start}.button[data-v-3ef03e87]{align-self:flex-end}.label-weekday[data-v-3ef03e87]{position:relative;display:flex;align-items:flex-start;min-width:77px;width:77px}.label-weekday>span[data-v-3ef03e87]{height:50px;display:flex;align-items:center}.add-another[data-v-3ef03e87]{background-color:transparent;border:none;opacity:.5;display:inline-flex;padding:0;margin:0 0 3px}.add-another[data-v-3ef03e87]:hover{opacity:1}.to-text[data-v-3ef03e87]{padding-right:12px}.time-zone-text[data-v-3ef03e87]{padding-left:22px}.empty-content[data-v-3ef03e87]{color:var(--color-text-lighter);display:inline-flex;align-items:center}.start-date[data-v-3ef03e87]{padding-right:12px}.day-container[data-v-3ef03e87]{display:flex;max-width:500px;width:100%;gap:24px;border-top:1px solid var(--color-border);padding-top:calc(3 * var(--default-grid-baseline));margin-top:calc(2 * var(--default-grid-baseline));align-items:center}.day-container>button[data-v-3ef03e87]{align-self:center}[data-v-3ad7b763] .availability-day{padding:0 10px;position:absolute}[data-v-3ad7b763] .availability-slots{display:flex;white-space:normal}[data-v-3ad7b763] .availability-slot{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap}[data-v-3ad7b763] .availability-slot-group{display:flex;flex-direction:column}[data-v-3ad7b763] .mx-input-wrapper{width:85px}[data-v-3ad7b763] .mx-datepicker{width:97px}.time-zone[data-v-3ad7b763]{padding-block:32px 12px;padding-inline:0 12px;display:flex;flex-wrap:wrap}.time-zone__heading[data-v-3ad7b763]{margin-inline-end:calc(var(--default-grid-baseline) * 2);line-height:var(--default-clickable-area);font-weight:700}.grid-table[data-v-3ad7b763]{display:grid;margin-bottom:32px;column-gap:24px;row-gap:6px;grid-template-columns:min-content auto min-content;max-width:500px}.button[data-v-3ad7b763]{align-self:flex-end}[data-v-3ad7b763] .label-weekday{position:relative;display:inline-flex;padding-top:4px;align-self:center}[data-v-3ad7b763] .delete-slot{padding-bottom:unset}[data-v-3ad7b763] .add-another{align-self:center}.to-text[data-v-3ad7b763]{padding-inline-end:12px}.empty-content[data-v-3ad7b763]{align-self:center;color:var(--color-text-maxcontrast);margin-block-start:var(--default-grid-baseline)} diff --git a/dist/dav-settings-admin-example-content.css b/dist/dav-settings-admin-example-content.css index 9a72ffcd2e7..f45739f58dd 100644 --- a/dist/dav-settings-admin-example-content.css +++ b/dist/dav-settings-admin-example-content.css @@ -6,7 +6,7 @@ @import './common-PencilOutline-B3DMd8SU.chunk.css'; @import './common-NcContent-BhMoPROW-CuEPejA5.chunk.css'; @import './common-TrashCanOutline-BYHcrfvW.chunk.css'; -@import './common-index-980JFXIN.chunk.css'; +@import './common-index-BWhNCeJl.chunk.css'; @import './common-TrayArrowDown-CaC9_ffV.chunk.css'; @import './common-NcInputField-B1bGxYHt-BYHxARP-.chunk.css'; @import './common-index-DYA_tnKg.chunk.css'; @@ -17,7 +17,7 @@ @import './common-NcEmptyContent-CGAPqk4S-Don1d5Bd.chunk.css'; @import './common-NcPasswordField-Be5_qcfm-Crp_EMfV.chunk.css'; @import './common-NcBreadcrumbs-5gl8Syfa-CfbvucBX.chunk.css'; -@import './common-NcTextArea-Dxzj4zdb-B-B2llha.chunk.css'; +@import './common-NcTextArea-Dxzj4zdb-CzDMVgRO.chunk.css'; @import './common-NcActionSeparator-Ct2RnclR-pXJ_-D_I.chunk.css'; @import './common-NcCheckboxRadioSwitch-D8Dfv4iw-CPGkDj-p.chunk.css'; @import './common-Plus-Som-mR4B.chunk.css'; diff --git a/dist/dav-settings-admin-example-content.mjs b/dist/dav-settings-admin-example-content.mjs index 00cc283056d..51af517bd82 100644 --- a/dist/dav-settings-admin-example-content.mjs +++ b/dist/dav-settings-admin-example-content.mjs @@ -1,2 +1,2 @@ -import{o as l,f as d,g as u,t as m,h,m as V,b as U,c as y,u as x,w as i,i as B,k as r,r as p,j as g,e as Z}from"./Web-BwmPK40i.chunk.mjs";import{_ as w,l as k}from"./public-C1mLBHT3.chunk.mjs";import{t as c}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./NcTextArea-Dxzj4zdb-stc727hj.chunk.mjs";import"./NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";/* empty css */import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import{N as S}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{b as C}from"./index-B-dGqfIG.chunk.mjs";import{N as H}from"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import{D as T,s as j}from"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./index-CMXcwXc6.chunk.mjs";import{N as L}from"./index-BW4M2n71.chunk.mjs";import"./index-BOH7nBEM.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import"./index-C_wPY1fR.chunk.mjs";/* empty css */import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./index-xEyWukTf.chunk.mjs";import{c as _}from"./index-BLNGy7h5.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import"./NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs";import{N as q}from"./ContentCopy-BF1gBM5z.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import{d as M,a as E}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{l as I}from"./logger-z78wFmcz.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";const G='',J={name:"AccountIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},K=["aria-hidden","aria-label"],P=["fill","width","height"],Q={d:"M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z"},W={key:0};function X(a,e,t,n,o,s){return l(),d("span",V(a.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon account-icon",role:"img",onClick:e[0]||(e[0]=v=>a.$emit("click",v))}),[(l(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[u("path",Q,[t.title?(l(),d("title",W,m(t.title),1)):h("",!0)])],8,P))],16,K)}const Y=w(J,[["render",X]]),ee={name:"RestoreIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},te=["aria-hidden","aria-label"],ae=["fill","width","height"],oe={d:"M13,3A9,9 0 0,0 4,12H1L4.89,15.89L4.96,16.03L9,12H6A7,7 0 0,1 13,5A7,7 0 0,1 20,12A7,7 0 0,1 13,19C11.07,19 9.32,18.21 8.06,16.94L6.64,18.36C8.27,20 10.5,21 13,21A9,9 0 0,0 22,12A9,9 0 0,0 13,3Z"},le={key:0};function ie(a,e,t,n,o,s){return l(),d("span",V(a.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon restore-icon",role:"img",onClick:e[0]||(e[0]=v=>a.$emit("click",v))}),[(l(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[u("path",oe,[t.title?(l(),d("title",le,m(t.title),1)):h("",!0)])],8,ae))],16,te)}const R=w(ee,[["render",ie]]),ne={name:"TrayArrowUpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},se=["aria-hidden","aria-label"],re=["fill","width","height"],ce={d:"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 2L6.46 7.46L7.88 8.88L11 5.75V15H13V5.75L16.13 8.88L17.55 7.45L12 2Z"},de={key:0};function pe(a,e,t,n,o,s){return l(),d("span",V(a.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon tray-arrow-up-icon",role:"img",onClick:e[0]||(e[0]=v=>a.$emit("click",v))}),[(l(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[u("path",ce,[t.title?(l(),d("title",de,m(t.title),1)):h("",!0)])],8,re))],16,se)}const $=w(ne,[["render",pe]]),me={class:"download-button"},ue={class:"download-button__label"},ve=U({__name:"ExampleContentDownloadButton",props:{href:{}},setup(a){return(e,t)=>(l(),y(x(S),{variant:"tertiary",href:a.href},{icon:i(()=>[B(e.$slots,"icon",{},void 0,!0)]),default:i(()=>[u("div",me,[u("span",ue,[B(e.$slots,"default",{},void 0,!0)]),r(T,{class:"download-button__icon",size:20})])]),_:3},8,["href"]))}}),O=w(ve,[["__scopeId","data-v-be40807a"]]),he=k("dav","enableDefaultContact",!1),fe=k("dav","hasCustomDefaultContact",!1),ge={name:"ExampleContactSettings",components:{NcDialog:L,NcButton:S,NcCheckboxRadioSwitch:H,IconUpload:$,IconRestore:R,IconAccount:Y,ExampleContentDownloadButton:O},setup(){return{t:c}},data(){return{enableDefaultContact:he,hasCustomDefaultContact:fe,isModalOpen:!1,loading:!1,buttons:[{label:c("dav","Cancel"),icon:G,callback:()=>{this.isModalOpen=!1}},{label:c("dav","Import"),icon:j,variant:"primary",callback:()=>{this.clickImportInput()}}]}},computed:{downloadUrl(){return C("/apps/dav/api/defaultcontact/contact")}},methods:{updateEnableDefaultContact(){_.put(C("apps/dav/api/defaultcontact/config"),{allow:!this.enableDefaultContact}).then(()=>{this.enableDefaultContact=!this.enableDefaultContact}).catch(()=>{E(c("dav","Error while saving settings"))})},toggleModal(){this.isModalOpen=!this.isModalOpen},clickImportInput(){this.$refs.exampleContactImportInput.click()},resetContact(){this.loading=!0,_.put(C("/apps/dav/api/defaultcontact/contact")).then(()=>{this.hasCustomDefaultContact=!1,M(c("dav","Contact reset successfully"))}).catch(a=>{I.error("Error importing contact:",{error:a}),E(c("dav","Error while resetting contact"))}).finally(()=>{this.loading=!1})},processFile(a){this.loading=!0;const e=a.target.files[0],t=new FileReader;t.onload=async()=>{this.isModalOpen=!1;try{await _.put(C("/apps/dav/api/defaultcontact/contact"),{contactData:t.result}),this.hasCustomDefaultContact=!0,M(c("dav","Contact imported successfully"))}catch(n){I.error("Error importing contact:",{error:n}),E(c("dav","Error while importing contact"))}finally{this.loading=!1,a.target.value=""}},t.readAsText(e)}}},Ce={class:"example-contact-settings"},we={key:0,class:"example-contact-settings__buttons"},be=["disabled"];function xe(a,e,t,n,o,s){const v=p("NcCheckboxRadioSwitch"),N=p("IconAccount"),A=p("ExampleContentDownloadButton"),D=p("IconUpload"),b=p("NcButton"),z=p("IconRestore"),F=p("NcDialog");return l(),d("div",Ce,[r(v,{modelValue:o.enableDefaultContact,type:"switch","onUpdate:modelValue":s.updateEnableDefaultContact},{default:i(()=>[g(m(n.t("dav","Add example contact to user's address book when they first log in")),1)]),_:1},8,["modelValue","onUpdate:modelValue"]),o.enableDefaultContact?(l(),d("div",we,[r(A,{href:s.downloadUrl},{icon:i(()=>[r(N,{size:20})]),default:i(()=>[e[2]||(e[2]=g(" example_contact.vcf ",-1))]),_:1},8,["href"]),r(b,{variant:"secondary",onClick:s.toggleModal},{icon:i(()=>[r(D,{size:20})]),default:i(()=>[g(" "+m(n.t("dav","Import contact")),1)]),_:1},8,["onClick"]),o.hasCustomDefaultContact?(l(),y(b,{key:0,variant:"tertiary",onClick:s.resetContact},{icon:i(()=>[r(z,{size:20})]),default:i(()=>[g(" "+m(n.t("dav","Reset to default")),1)]),_:1},8,["onClick"])):h("",!0)])):h("",!0),r(F,{open:o.isModalOpen,"onUpdate:open":e[0]||(e[0]=f=>o.isModalOpen=f),name:n.t("dav","Import contacts"),buttons:o.buttons},{default:i(()=>[u("div",null,[u("p",null,m(n.t("dav","Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?")),1)])]),_:1},8,["open","name","buttons"]),u("input",{id:"example-contact-import",ref:"exampleContactImportInput",disabled:o.loading,type:"file",accept:".vcf",class:"hidden-visually",onChange:e[1]||(e[1]=(...f)=>s.processFile&&s.processFile(...f))},null,40,be)])}const ye=w(ge,[["render",xe],["__scopeId","data-v-db8b0002"]]),_e={name:"CalendarBlankIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ee=["aria-hidden","aria-label"],ke=["fill","width","height"],Ie={d:"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1"},De={key:0};function Me(a,e,t,n,o,s){return l(),d("span",V(a.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon calendar-blank-icon",role:"img",onClick:e[0]||(e[0]=v=>a.$emit("click",v))}),[(l(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[u("path",Ie,[t.title?(l(),d("title",De,m(t.title),1)):h("",!0)])],8,ke))],16,Ee)}const Ve=w(_e,[["render",Me]]);async function Ne(a){const e=C("/apps/dav/api/exampleEvent/enable");await _.post(e,{enable:a})}async function Ae(a){const e=C("/apps/dav/api/exampleEvent/event");await _.post(e,{ics:a})}async function ze(){const a=C("/apps/dav/api/exampleEvent/event");await _.delete(a)}const Fe={name:"ExampleEventSettings",components:{NcButton:S,NcCheckboxRadioSwitch:H,NcDialog:L,IconCalendarBlank:Ve,IconUpload:$,IconRestore:R,ExampleContentDownloadButton:O},setup(){return{t:c}},data(){return{createExampleEvent:k("dav","create_example_event",!1),hasCustomEvent:k("dav","has_custom_example_event",!1),showImportModal:!1,uploading:!1,deleting:!1,savingConfig:!1,selectedFile:void 0}},computed:{downloadUrl(){return C("/apps/dav/api/exampleEvent/event")}},methods:{selectFile(){this.selectedFile=this.$refs["event-file"]?.files[0]},async updateCreateExampleEvent(){this.savingConfig=!0;const a=!this.createExampleEvent;try{await Ne(a)}catch(e){E(c("dav","Failed to save example event creation setting")),I.error("Failed to save example event creation setting",{error:e,enable:a})}finally{this.savingConfig=!1}this.createExampleEvent=a},uploadCustomEvent(){if(!this.selectedFile)return;this.uploading=!0;const a=new FileReader;a.addEventListener("load",async()=>{const e=a.result;try{await Ae(e)}catch(t){E(c("dav","Failed to upload the example event")),I.error("Failed to upload example ICS",{error:t,ics:e});return}finally{this.uploading=!1}M(c("dav","Custom example event was saved successfully")),this.showImportModal=!1,this.hasCustomEvent=!0}),a.readAsText(this.selectedFile)},async deleteCustomEvent(){this.deleting=!0;try{await ze()}catch(a){E(c("dav","Failed to delete the custom example event")),I.error("Failed to delete the custom example event",{error:a});return}finally{this.deleting=!1}M(c("dav","Custom example event was deleted successfully")),this.hasCustomEvent=!1}}},Se={class:"example-event-settings"},Be={key:0,class:"example-event-settings__buttons"},Ue={class:"import-event-modal"},He=["disabled"],Le={class:"import-event-modal__buttons"};function Re(a,e,t,n,o,s){const v=p("NcCheckboxRadioSwitch"),N=p("IconCalendarBlank"),A=p("ExampleContentDownloadButton"),D=p("IconUpload"),b=p("NcButton"),z=p("IconRestore"),F=p("NcDialog");return l(),d("div",Se,[r(v,{modelValue:o.createExampleEvent,disabled:o.savingConfig,type:"switch","onUpdate:modelValue":s.updateCreateExampleEvent},{default:i(()=>[g(m(n.t("dav","Add example event to user's calendar when they first log in")),1)]),_:1},8,["modelValue","disabled","onUpdate:modelValue"]),o.createExampleEvent?(l(),d("div",Be,[r(A,{href:s.downloadUrl},{icon:i(()=>[r(N,{size:20})]),default:i(()=>[e[4]||(e[4]=g(" example_event.ics ",-1))]),_:1},8,["href"]),r(b,{variant:"secondary",onClick:e[0]||(e[0]=f=>o.showImportModal=!0)},{icon:i(()=>[r(D,{size:20})]),default:i(()=>[g(" "+m(n.t("dav","Import calendar event")),1)]),_:1}),o.hasCustomEvent?(l(),y(b,{key:0,variant:"tertiary",disabled:o.deleting,onClick:s.deleteCustomEvent},{icon:i(()=>[r(z,{size:20})]),default:i(()=>[g(" "+m(n.t("dav","Reset to default")),1)]),_:1},8,["disabled","onClick"])):h("",!0)])):h("",!0),r(F,{open:o.showImportModal,"onUpdate:open":e[3]||(e[3]=f=>o.showImportModal=f),name:n.t("dav","Import calendar event")},{default:i(()=>[u("div",Ue,[u("p",null,m(n.t("dav","Uploading a new event will overwrite the existing one.")),1),u("input",{ref:"event-file",disabled:o.uploading,type:"file",accept:".ics,text/calendar",class:"import-event-modal__file-picker",onChange:e[1]||(e[1]=(...f)=>s.selectFile&&s.selectFile(...f))},null,40,He),u("div",Le,[r(b,{disabled:o.uploading||!o.selectedFile,variant:"primary",onClick:e[2]||(e[2]=f=>s.uploadCustomEvent())},{icon:i(()=>[r(D,{size:20})]),default:i(()=>[g(" "+m(n.t("dav","Upload event")),1)]),_:1},8,["disabled"])])])]),_:1},8,["open","name"])])}const $e=w(Fe,[["render",Re],["__scopeId","data-v-88fee128"]]),Oe=U({__name:"ExampleContentSettingsSection",setup(a){const e=k("dav","contactsEnabled"),t=k("dav","calendarEnabled");return(n,o)=>(l(),y(x(q),{id:"example-content",name:x(c)("dav","Example content"),description:x(c)("dav","Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content.")},{default:i(()=>[x(e)?(l(),y(ye,{key:0})):h("",!0),x(t)?(l(),y($e,{key:1})):h("",!0)]),_:1},8,["name","description"]))}}),Ze=Z(Oe);Ze.mount("#settings-example-content"); +import{o as l,f as d,g as u,t as m,h,m as V,b as U,c as y,u as x,w as i,i as B,k as r,r as p,j as g,e as Z}from"./Web-BwmPK40i.chunk.mjs";import{_ as w,l as k}from"./public-C1mLBHT3.chunk.mjs";import{t as c}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./NcTextArea-Dxzj4zdb-BPZd41PF.chunk.mjs";import"./NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";/* empty css */import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import{N as S}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{b as C}from"./index-B-dGqfIG.chunk.mjs";import{N as H}from"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import{D as T,s as j}from"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./index-CQct0mOs.chunk.mjs";import{N as L}from"./index-BW4M2n71.chunk.mjs";import"./index-dqLzhRZM.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import"./index-BrjNu3x_.chunk.mjs";/* empty css */import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./index-CcOuN-F7.chunk.mjs";import{c as _}from"./index-BLNGy7h5.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import"./NcSelectTags-D7qWNjXa-gqJ9LLZU.chunk.mjs";import{N as q}from"./ContentCopy-BF1gBM5z.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import{d as M,a as E}from"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import{l as I}from"./logger-z78wFmcz.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";const G='',J={name:"AccountIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},K=["aria-hidden","aria-label"],P=["fill","width","height"],Q={d:"M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z"},W={key:0};function X(a,e,t,n,o,s){return l(),d("span",V(a.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon account-icon",role:"img",onClick:e[0]||(e[0]=v=>a.$emit("click",v))}),[(l(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[u("path",Q,[t.title?(l(),d("title",W,m(t.title),1)):h("",!0)])],8,P))],16,K)}const Y=w(J,[["render",X]]),ee={name:"RestoreIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},te=["aria-hidden","aria-label"],ae=["fill","width","height"],oe={d:"M13,3A9,9 0 0,0 4,12H1L4.89,15.89L4.96,16.03L9,12H6A7,7 0 0,1 13,5A7,7 0 0,1 20,12A7,7 0 0,1 13,19C11.07,19 9.32,18.21 8.06,16.94L6.64,18.36C8.27,20 10.5,21 13,21A9,9 0 0,0 22,12A9,9 0 0,0 13,3Z"},le={key:0};function ie(a,e,t,n,o,s){return l(),d("span",V(a.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon restore-icon",role:"img",onClick:e[0]||(e[0]=v=>a.$emit("click",v))}),[(l(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[u("path",oe,[t.title?(l(),d("title",le,m(t.title),1)):h("",!0)])],8,ae))],16,te)}const R=w(ee,[["render",ie]]),ne={name:"TrayArrowUpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},se=["aria-hidden","aria-label"],re=["fill","width","height"],ce={d:"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 2L6.46 7.46L7.88 8.88L11 5.75V15H13V5.75L16.13 8.88L17.55 7.45L12 2Z"},de={key:0};function pe(a,e,t,n,o,s){return l(),d("span",V(a.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon tray-arrow-up-icon",role:"img",onClick:e[0]||(e[0]=v=>a.$emit("click",v))}),[(l(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[u("path",ce,[t.title?(l(),d("title",de,m(t.title),1)):h("",!0)])],8,re))],16,se)}const $=w(ne,[["render",pe]]),me={class:"download-button"},ue={class:"download-button__label"},ve=U({__name:"ExampleContentDownloadButton",props:{href:{}},setup(a){return(e,t)=>(l(),y(x(S),{variant:"tertiary",href:a.href},{icon:i(()=>[B(e.$slots,"icon",{},void 0,!0)]),default:i(()=>[u("div",me,[u("span",ue,[B(e.$slots,"default",{},void 0,!0)]),r(T,{class:"download-button__icon",size:20})])]),_:3},8,["href"]))}}),O=w(ve,[["__scopeId","data-v-be40807a"]]),he=k("dav","enableDefaultContact",!1),fe=k("dav","hasCustomDefaultContact",!1),ge={name:"ExampleContactSettings",components:{NcDialog:L,NcButton:S,NcCheckboxRadioSwitch:H,IconUpload:$,IconRestore:R,IconAccount:Y,ExampleContentDownloadButton:O},setup(){return{t:c}},data(){return{enableDefaultContact:he,hasCustomDefaultContact:fe,isModalOpen:!1,loading:!1,buttons:[{label:c("dav","Cancel"),icon:G,callback:()=>{this.isModalOpen=!1}},{label:c("dav","Import"),icon:j,variant:"primary",callback:()=>{this.clickImportInput()}}]}},computed:{downloadUrl(){return C("/apps/dav/api/defaultcontact/contact")}},methods:{updateEnableDefaultContact(){_.put(C("apps/dav/api/defaultcontact/config"),{allow:!this.enableDefaultContact}).then(()=>{this.enableDefaultContact=!this.enableDefaultContact}).catch(()=>{E(c("dav","Error while saving settings"))})},toggleModal(){this.isModalOpen=!this.isModalOpen},clickImportInput(){this.$refs.exampleContactImportInput.click()},resetContact(){this.loading=!0,_.put(C("/apps/dav/api/defaultcontact/contact")).then(()=>{this.hasCustomDefaultContact=!1,M(c("dav","Contact reset successfully"))}).catch(a=>{I.error("Error importing contact:",{error:a}),E(c("dav","Error while resetting contact"))}).finally(()=>{this.loading=!1})},processFile(a){this.loading=!0;const e=a.target.files[0],t=new FileReader;t.onload=async()=>{this.isModalOpen=!1;try{await _.put(C("/apps/dav/api/defaultcontact/contact"),{contactData:t.result}),this.hasCustomDefaultContact=!0,M(c("dav","Contact imported successfully"))}catch(n){I.error("Error importing contact:",{error:n}),E(c("dav","Error while importing contact"))}finally{this.loading=!1,a.target.value=""}},t.readAsText(e)}}},Ce={class:"example-contact-settings"},we={key:0,class:"example-contact-settings__buttons"},be=["disabled"];function xe(a,e,t,n,o,s){const v=p("NcCheckboxRadioSwitch"),N=p("IconAccount"),A=p("ExampleContentDownloadButton"),D=p("IconUpload"),b=p("NcButton"),z=p("IconRestore"),F=p("NcDialog");return l(),d("div",Ce,[r(v,{modelValue:o.enableDefaultContact,type:"switch","onUpdate:modelValue":s.updateEnableDefaultContact},{default:i(()=>[g(m(n.t("dav","Add example contact to user's address book when they first log in")),1)]),_:1},8,["modelValue","onUpdate:modelValue"]),o.enableDefaultContact?(l(),d("div",we,[r(A,{href:s.downloadUrl},{icon:i(()=>[r(N,{size:20})]),default:i(()=>[e[2]||(e[2]=g(" example_contact.vcf ",-1))]),_:1},8,["href"]),r(b,{variant:"secondary",onClick:s.toggleModal},{icon:i(()=>[r(D,{size:20})]),default:i(()=>[g(" "+m(n.t("dav","Import contact")),1)]),_:1},8,["onClick"]),o.hasCustomDefaultContact?(l(),y(b,{key:0,variant:"tertiary",onClick:s.resetContact},{icon:i(()=>[r(z,{size:20})]),default:i(()=>[g(" "+m(n.t("dav","Reset to default")),1)]),_:1},8,["onClick"])):h("",!0)])):h("",!0),r(F,{open:o.isModalOpen,"onUpdate:open":e[0]||(e[0]=f=>o.isModalOpen=f),name:n.t("dav","Import contacts"),buttons:o.buttons},{default:i(()=>[u("div",null,[u("p",null,m(n.t("dav","Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?")),1)])]),_:1},8,["open","name","buttons"]),u("input",{id:"example-contact-import",ref:"exampleContactImportInput",disabled:o.loading,type:"file",accept:".vcf",class:"hidden-visually",onChange:e[1]||(e[1]=(...f)=>s.processFile&&s.processFile(...f))},null,40,be)])}const ye=w(ge,[["render",xe],["__scopeId","data-v-db8b0002"]]),_e={name:"CalendarBlankIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ee=["aria-hidden","aria-label"],ke=["fill","width","height"],Ie={d:"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1"},De={key:0};function Me(a,e,t,n,o,s){return l(),d("span",V(a.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon calendar-blank-icon",role:"img",onClick:e[0]||(e[0]=v=>a.$emit("click",v))}),[(l(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[u("path",Ie,[t.title?(l(),d("title",De,m(t.title),1)):h("",!0)])],8,ke))],16,Ee)}const Ve=w(_e,[["render",Me]]);async function Ne(a){const e=C("/apps/dav/api/exampleEvent/enable");await _.post(e,{enable:a})}async function Ae(a){const e=C("/apps/dav/api/exampleEvent/event");await _.post(e,{ics:a})}async function ze(){const a=C("/apps/dav/api/exampleEvent/event");await _.delete(a)}const Fe={name:"ExampleEventSettings",components:{NcButton:S,NcCheckboxRadioSwitch:H,NcDialog:L,IconCalendarBlank:Ve,IconUpload:$,IconRestore:R,ExampleContentDownloadButton:O},setup(){return{t:c}},data(){return{createExampleEvent:k("dav","create_example_event",!1),hasCustomEvent:k("dav","has_custom_example_event",!1),showImportModal:!1,uploading:!1,deleting:!1,savingConfig:!1,selectedFile:void 0}},computed:{downloadUrl(){return C("/apps/dav/api/exampleEvent/event")}},methods:{selectFile(){this.selectedFile=this.$refs["event-file"]?.files[0]},async updateCreateExampleEvent(){this.savingConfig=!0;const a=!this.createExampleEvent;try{await Ne(a)}catch(e){E(c("dav","Failed to save example event creation setting")),I.error("Failed to save example event creation setting",{error:e,enable:a})}finally{this.savingConfig=!1}this.createExampleEvent=a},uploadCustomEvent(){if(!this.selectedFile)return;this.uploading=!0;const a=new FileReader;a.addEventListener("load",async()=>{const e=a.result;try{await Ae(e)}catch(t){E(c("dav","Failed to upload the example event")),I.error("Failed to upload example ICS",{error:t,ics:e});return}finally{this.uploading=!1}M(c("dav","Custom example event was saved successfully")),this.showImportModal=!1,this.hasCustomEvent=!0}),a.readAsText(this.selectedFile)},async deleteCustomEvent(){this.deleting=!0;try{await ze()}catch(a){E(c("dav","Failed to delete the custom example event")),I.error("Failed to delete the custom example event",{error:a});return}finally{this.deleting=!1}M(c("dav","Custom example event was deleted successfully")),this.hasCustomEvent=!1}}},Se={class:"example-event-settings"},Be={key:0,class:"example-event-settings__buttons"},Ue={class:"import-event-modal"},He=["disabled"],Le={class:"import-event-modal__buttons"};function Re(a,e,t,n,o,s){const v=p("NcCheckboxRadioSwitch"),N=p("IconCalendarBlank"),A=p("ExampleContentDownloadButton"),D=p("IconUpload"),b=p("NcButton"),z=p("IconRestore"),F=p("NcDialog");return l(),d("div",Se,[r(v,{modelValue:o.createExampleEvent,disabled:o.savingConfig,type:"switch","onUpdate:modelValue":s.updateCreateExampleEvent},{default:i(()=>[g(m(n.t("dav","Add example event to user's calendar when they first log in")),1)]),_:1},8,["modelValue","disabled","onUpdate:modelValue"]),o.createExampleEvent?(l(),d("div",Be,[r(A,{href:s.downloadUrl},{icon:i(()=>[r(N,{size:20})]),default:i(()=>[e[4]||(e[4]=g(" example_event.ics ",-1))]),_:1},8,["href"]),r(b,{variant:"secondary",onClick:e[0]||(e[0]=f=>o.showImportModal=!0)},{icon:i(()=>[r(D,{size:20})]),default:i(()=>[g(" "+m(n.t("dav","Import calendar event")),1)]),_:1}),o.hasCustomEvent?(l(),y(b,{key:0,variant:"tertiary",disabled:o.deleting,onClick:s.deleteCustomEvent},{icon:i(()=>[r(z,{size:20})]),default:i(()=>[g(" "+m(n.t("dav","Reset to default")),1)]),_:1},8,["disabled","onClick"])):h("",!0)])):h("",!0),r(F,{open:o.showImportModal,"onUpdate:open":e[3]||(e[3]=f=>o.showImportModal=f),name:n.t("dav","Import calendar event")},{default:i(()=>[u("div",Ue,[u("p",null,m(n.t("dav","Uploading a new event will overwrite the existing one.")),1),u("input",{ref:"event-file",disabled:o.uploading,type:"file",accept:".ics,text/calendar",class:"import-event-modal__file-picker",onChange:e[1]||(e[1]=(...f)=>s.selectFile&&s.selectFile(...f))},null,40,He),u("div",Le,[r(b,{disabled:o.uploading||!o.selectedFile,variant:"primary",onClick:e[2]||(e[2]=f=>s.uploadCustomEvent())},{icon:i(()=>[r(D,{size:20})]),default:i(()=>[g(" "+m(n.t("dav","Upload event")),1)]),_:1},8,["disabled"])])])]),_:1},8,["open","name"])])}const $e=w(Fe,[["render",Re],["__scopeId","data-v-88fee128"]]),Oe=U({__name:"ExampleContentSettingsSection",setup(a){const e=k("dav","contactsEnabled"),t=k("dav","calendarEnabled");return(n,o)=>(l(),y(x(q),{id:"example-content",name:x(c)("dav","Example content"),description:x(c)("dav","Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content.")},{default:i(()=>[x(e)?(l(),y(ye,{key:0})):h("",!0),x(t)?(l(),y($e,{key:1})):h("",!0)]),_:1},8,["name","description"]))}}),Ze=Z(Oe);Ze.mount("#settings-example-content"); //# sourceMappingURL=dav-settings-admin-example-content.mjs.map diff --git a/dist/dav-settings-personal-availability.css b/dist/dav-settings-personal-availability.css index 52b72af4bce..2c4c820ae41 100644 --- a/dist/dav-settings-personal-availability.css +++ b/dist/dav-settings-personal-availability.css @@ -1,5 +1,5 @@ /* extracted by css-entry-points-plugin */ -@import './dav-dav-settings-personal-availability-DSI9XS6G.chunk.css'; +@import './dav-dav-settings-personal-availability-86q6-LKF.chunk.css'; @import './common-createElementId-DhjFt1I9-C_oBIsvc.chunk.css'; @import './common-ContentCopy-D7mIRwIy.chunk.css'; @import './common-logger-D3RVzcfQ-BE3lcFW4.chunk.css'; @@ -12,14 +12,14 @@ @import './common-NcPasswordField-Be5_qcfm-Crp_EMfV.chunk.css'; @import './common-NcBreadcrumbs-5gl8Syfa-CfbvucBX.chunk.css'; @import './common-NcContent-BhMoPROW-CuEPejA5.chunk.css'; -@import './common-index-980JFXIN.chunk.css'; +@import './common-index-BWhNCeJl.chunk.css'; @import './common-TrayArrowDown-CaC9_ffV.chunk.css'; @import './common-ArrowRight-vZpQWIqF.chunk.css'; @import './common-NcUserStatusIcon-DsviB2Cr-Bq_6hmXG.chunk.css'; @import './common-NcDateTime-b9UhLDij.chunk.css'; @import './common-NcAvatar-M3-CbKbq-DTVmI7NO.chunk.css'; @import './common-NcEmptyContent-CGAPqk4S-Don1d5Bd.chunk.css'; -@import './common-NcTextArea-Dxzj4zdb-B-B2llha.chunk.css'; +@import './common-NcTextArea-Dxzj4zdb-CzDMVgRO.chunk.css'; @import './common-NcActionSeparator-Ct2RnclR-pXJ_-D_I.chunk.css'; @import './common-NcCheckboxRadioSwitch-D8Dfv4iw-CPGkDj-p.chunk.css'; @import './common-Plus-Som-mR4B.chunk.css'; diff --git a/dist/dav-settings-personal-availability.mjs b/dist/dav-settings-personal-availability.mjs index 31fc9ac4235..95fbc5c4df1 100644 --- a/dist/dav-settings-personal-availability.mjs +++ b/dist/dav-settings-personal-availability.mjs @@ -1,4 +1,4 @@ -import{r as G,o as B,f as H,g as Q,k as v,y as dt,t as et,w as st,j as vt,N as Se,F as Ft,B as Gt,c as Pt,h as ue,b as de,l as St,D as Ae,u as _,e as ge}from"./Web-BwmPK40i.chunk.mjs";import{_ as ce,l as jt,g as De}from"./public-C1mLBHT3.chunk.mjs";import{t as D}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{N as Kt}from"./ContentCopy-BF1gBM5z.chunk.mjs";import{d as _e,c as mt,a as Lt,g as Ee,h as be,o as Ue,e as Ce}from"./index-B-dGqfIG.chunk.mjs";import{c as ft}from"./index-BLNGy7h5.chunk.mjs";import{d as zt,a as Ot}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{S as Ye}from"./ShareType-suoNfd7y.chunk.mjs";import{N as Ht}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as he}from"./NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs";import{N as ve,a as Oe}from"./NcTextArea-Dxzj4zdb-stc727hj.chunk.mjs";import{_ as we}from"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import{l as W}from"./logger-z78wFmcz.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import{k as Me}from"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";/* empty css */import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import{D as Ne}from"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{N as xe}from"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import{P as Ie}from"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./index-CMXcwXc6.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./index-BOH7nBEM.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import"./index-C_wPY1fR.chunk.mjs";/* empty css */import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./index-xEyWukTf.chunk.mjs";import"./NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import{z as ke,_ as Be}from"./index-BYnFfAmz.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";function qt(r){const t=r.getFullYear(),e=(r.getMonth()+1).toString().padStart(2,"0"),s=r.getDate().toString().padStart(2,"0");return`${t}-${e}-${s}`}const Pe="_absenceForm_1i2bj_2",Le="_absenceForm__pickerContainer_1i2bj_8",ze="_absenceForm__picker_1i2bj_8",Ve="_absenceForm__longMessage_1i2bj_22",je="_absenceForm__longMessageContainer_1i2bj_26",He="_absenceForm__actions_1i2bj_33",Re={absenceForm:Pe,absenceForm__pickerContainer:Le,absenceForm__picker:ze,absenceForm__longMessage:Ve,absenceForm__longMessageContainer:je,absenceForm__actions:He},We={name:"AbsenceForm",components:{NcButton:Ht,NcTextField:we,NcTextArea:Oe,NcDateTimePickerNative:he,NcSelectUsers:ve},setup(){return{t:D}},data(){const{firstDay:r,lastDay:t,status:e,message:s,replacementUserId:a,replacementUserDisplayName:i}=jt("dav","absence",{});return{loading:!1,status:e??"",message:s??"",firstDay:r?new Date(r):new Date,lastDay:t?new Date(t):null,replacementUserId:a,replacementUser:a?{user:a,displayName:i}:null,searchLoading:!1,options:[]}},computed:{valid(){const r=new Date(this.firstDay?.getTime()),t=new Date(this.lastDay?.getTime());return r?.setHours(0,0,0,0),t?.setHours(0,0,0,0),!!this.firstDay&&!!this.lastDay&&!!this.status&&!!this.message&&t>=r}},methods:{resetForm(){this.status="",this.message="",this.firstDay=new Date,this.lastDay=null},formatForMultiselect(r){return{user:r.uuid||r.value.shareWith,displayName:r.name||r.label,subtitle:r.dsc|""}},async asyncFind(r){this.searchLoading=!0,await this.debounceGetSuggestions(r.trim())},async getSuggestions(r){const t=[Ye.User];let e;try{e=await ft.get(mt("apps/files_sharing/api/v1/sharees"),{params:{format:"json",itemType:"file",search:r,shareType:t}})}catch(d){W.error("Error fetching suggestions",{error:d});return}const s=e.data.ocs.data,a=e.data.ocs.data.exact;s.exact=[];const i=a.users,o=s.users;W.info("AbsenceForm raw suggestions",{rawExactSuggestions:i,rawSuggestions:o});const n=i.map(d=>this.formatForMultiselect(d)),l=o.map(d=>this.formatForMultiselect(d)),u=n.concat(l),c=u.reduce((d,m)=>(m.displayName&&(d[m.displayName]||(d[m.displayName]=0),d[m.displayName]++),d),{});this.options=u.map(d=>c[d.displayName]>1&&!d.desc?{...d,desc:d.shareWithDisplayNameUnique}:d),this.searchLoading=!1,W.info("AbsenseForm suggestions",{options:this.options})},debounceGetSuggestions:_e(function(...r){this.getSuggestions(...r)},300),async saveForm(){if(this.valid){this.loading=!0;try{await ft.post(mt("/apps/dav/api/v1/outOfOffice/{userId}",{userId:Lt().uid}),{firstDay:qt(this.firstDay),lastDay:qt(this.lastDay),status:this.status,message:this.message,replacementUserId:this.replacementUser?.user??null}),zt(D("dav","Absence saved"))}catch(r){Ot(D("dav","Failed to save your absence settings")),W.error("Could not save absence",{error:r})}finally{this.loading=!1}}},async clearAbsence(){this.loading=!0;try{await ft.delete(mt("/apps/dav/api/v1/outOfOffice/{userId}",{userId:Lt().uid})),this.resetForm(),zt(D("dav","Absence cleared"))}catch(r){Ot(D("dav","Failed to clear your absence settings")),W.error("Could not clear absence",{error:r})}finally{this.loading=!1}}}},Fe={for:"replacement-search-input"};function Ge(r,t,e,s,a,i){const o=G("NcDateTimePickerNative"),n=G("NcSelectUsers"),l=G("NcTextField"),u=G("NcTextArea"),c=G("NcButton");return B(),H("form",{class:dt(r.$style.absenceForm),onSubmit:t[5]||(t[5]=Se((...d)=>i.saveForm&&i.saveForm(...d),["prevent"]))},[Q("div",{class:dt(r.$style.absenceForm__pickerContainer)},[v(o,{id:"absence-first-day",modelValue:a.firstDay,"onUpdate:modelValue":t[0]||(t[0]=d=>a.firstDay=d),class:dt(r.$style.absenceForm__picker),label:s.t("dav","First day"),required:""},null,8,["modelValue","class","label"]),v(o,{id:"absence-last-day",modelValue:a.lastDay,"onUpdate:modelValue":t[1]||(t[1]=d=>a.lastDay=d),class:dt(r.$style.absenceForm__picker),label:s.t("dav","Last day (inclusive)"),required:""},null,8,["modelValue","class","label"])],2),Q("label",Fe,et(s.t("dav","Out of office replacement (optional)")),1),v(n,{modelValue:a.replacementUser,"onUpdate:modelValue":t[2]||(t[2]=d=>a.replacementUser=d),inputId:"replacement-search-input",loading:a.searchLoading,placeholder:s.t("dav","Name of the replacement"),options:a.options,onSearch:i.asyncFind},null,8,["modelValue","loading","placeholder","options","onSearch"]),v(l,{modelValue:a.status,"onUpdate:modelValue":t[3]||(t[3]=d=>a.status=d),label:s.t("dav","Short absence status"),required:!0},null,8,["modelValue","label"]),Q("div",{class:dt(r.$style.absenceForm__longMessageContainer)},[v(u,{modelValue:a.message,"onUpdate:modelValue":t[4]||(t[4]=d=>a.message=d),inputClass:r.$style.absenceForm__longMessage,label:s.t("dav","Long absence Message"),required:"",resize:"none",rows:"6"},null,8,["modelValue","inputClass","label"])],2),Q("div",{class:dt(r.$style.absenceForm__actions)},[v(c,{disabled:a.loading||!i.valid,variant:"primary",type:"submit"},{default:st(()=>[vt(et(s.t("dav","Save")),1)]),_:1},8,["disabled"]),v(c,{disabled:a.loading||!i.valid,variant:"error",onClick:i.clearAbsence},{default:st(()=>[vt(et(s.t("dav","Disable absence")),1)]),_:1},8,["disabled","onClick"])],2)],34)}const Ke={$style:Re},qe=ce(We,[["render",Ge],["__cssModules",Ke]]);var at={},ct={},Zt;function Ze(){return Zt||(Zt=1,Object.defineProperty(ct,"__esModule",{value:!0}),ct.zonesMap=ct.defaultStart=void 0,ct.defaultStart="19700101T000000",ct.zonesMap=new Map([["Africa/Abidjan",{s:{f:"+0000",n:"GMT"}}],["Africa/Accra",{s:{f:"+0000",n:"GMT"}}],["Africa/Addis_Ababa",{s:{f:"+0300",n:"EAT"}}],["Africa/Algiers",{s:{f:"+0100",n:"CET"}}],["Africa/Asmara",{s:{f:"+0300",n:"EAT"}}],["Africa/Bamako",{s:{f:"+0000",n:"GMT"}}],["Africa/Bangui",{s:{f:"+0100",n:"WAT"}}],["Africa/Banjul",{s:{f:"+0000",n:"GMT"}}],["Africa/Bissau",{s:{f:"+0000",n:"GMT"}}],["Africa/Blantyre",{s:{f:"+0200",n:"CAT"}}],["Africa/Brazzaville",{s:{f:"+0100",n:"WAT"}}],["Africa/Bujumbura",{s:{f:"+0200",n:"CAT"}}],["Africa/Cairo",{s:{f:"+0200",n:"EET"}}],["Africa/Casablanca",{s:{f:"+0100",n:"+01"}}],["Africa/Ceuta",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Africa/Conakry",{s:{f:"+0000",n:"GMT"}}],["Africa/Dakar",{s:{f:"+0000",n:"GMT"}}],["Africa/Dar_es_Salaam",{s:{f:"+0300",n:"EAT"}}],["Africa/Djibouti",{s:{f:"+0300",n:"EAT"}}],["Africa/Douala",{s:{f:"+0100",n:"WAT"}}],["Africa/El_Aaiun",{s:{f:"+0100",n:"+01"}}],["Africa/Freetown",{s:{f:"+0000",n:"GMT"}}],["Africa/Gaborone",{s:{f:"+0200",n:"CAT"}}],["Africa/Harare",{s:{f:"+0200",n:"CAT"}}],["Africa/Johannesburg",{s:{f:"+0200",n:"SAST"}}],["Africa/Juba",{s:{f:"+0300",n:"EAT"}}],["Africa/Kampala",{s:{f:"+0300",n:"EAT"}}],["Africa/Khartoum",{s:{f:"+0200",n:"CAT"}}],["Africa/Kigali",{s:{f:"+0200",n:"CAT"}}],["Africa/Kinshasa",{s:{f:"+0100",n:"WAT"}}],["Africa/Lagos",{s:{f:"+0100",n:"WAT"}}],["Africa/Libreville",{s:{f:"+0100",n:"WAT"}}],["Africa/Lome",{s:{f:"+0000",n:"GMT"}}],["Africa/Luanda",{s:{f:"+0100",n:"WAT"}}],["Africa/Lubumbashi",{s:{f:"+0200",n:"CAT"}}],["Africa/Lusaka",{s:{f:"+0200",n:"CAT"}}],["Africa/Malabo",{s:{f:"+0100",n:"WAT"}}],["Africa/Maputo",{s:{f:"+0200",n:"CAT"}}],["Africa/Maseru",{s:{f:"+0200",n:"SAST"}}],["Africa/Mbabane",{s:{f:"+0200",n:"SAST"}}],["Africa/Mogadishu",{s:{f:"+0300",n:"EAT"}}],["Africa/Monrovia",{s:{f:"+0000",n:"GMT"}}],["Africa/Nairobi",{s:{f:"+0300",n:"EAT"}}],["Africa/Ndjamena",{s:{f:"+0100",n:"WAT"}}],["Africa/Niamey",{s:{f:"+0100",n:"WAT"}}],["Africa/Nouakchott",{s:{f:"+0000",n:"GMT"}}],["Africa/Ouagadougou",{s:{f:"+0000",n:"GMT"}}],["Africa/Porto-Novo",{s:{f:"+0100",n:"WAT"}}],["Africa/Sao_Tome",{s:{f:"+0100",n:"WAT"}}],["Africa/Tripoli",{s:{f:"+0200",n:"EET"}}],["Africa/Tunis",{s:{f:"+0100",n:"CET"}}],["Africa/Windhoek",{s:{f:"+0200",n:"CAT"}}],["America/Adak",{s:{f:"-0900",t:"-1000",n:"HST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-1000",t:"-0900",n:"HDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Anchorage",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Anguilla",{s:{f:"-0400",n:"AST"}}],["America/Antigua",{s:{f:"-0400",n:"AST"}}],["America/Araguaina",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Buenos_Aires",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Catamarca",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Cordoba",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Jujuy",{s:{f:"-0300",n:"-03"}}],["America/Argentina/La_Rioja",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Mendoza",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Rio_Gallegos",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Salta",{s:{f:"-0300",n:"-03"}}],["America/Argentina/San_Juan",{s:{f:"-0300",n:"-03"}}],["America/Argentina/San_Luis",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Tucuman",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Ushuaia",{s:{f:"-0300",n:"-03"}}],["America/Aruba",{s:{f:"-0400",n:"AST"}}],["America/Asuncion",{s:{f:"-0300",t:"-0400",n:"-04",s:"19700322T000000",r:{m:3,d:"4SU"}},d:{f:"-0400",t:"-0300",n:"-03",s:"19701004T000000",r:{m:10,d:"1SU"}}}],["America/Atikokan",{s:{f:"-0500",n:"EST"}}],["America/Bahia_Banderas",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Bahia",{s:{f:"-0300",n:"-03"}}],["America/Barbados",{s:{f:"-0400",n:"AST"}}],["America/Belem",{s:{f:"-0300",n:"-03"}}],["America/Belize",{s:{f:"-0600",n:"CST"}}],["America/Blanc-Sablon",{s:{f:"-0400",n:"AST"}}],["America/Boa_Vista",{s:{f:"-0400",n:"-04"}}],["America/Bogota",{s:{f:"-0500",n:"-05"}}],["America/Boise",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Cambridge_Bay",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Campo_Grande",{s:{f:"-0400",n:"-04",s:"19700215T000000",r:{m:2,d:"3SU"}},d:{f:"-0400",t:"-0300",n:"-03",s:"19701101T000000",r:{m:11,d:"1SU"}}}],["America/Cancun",{s:{f:"-0500",n:"EST"}}],["America/Caracas",{s:{f:"-0400",n:"-04"}}],["America/Cayenne",{s:{f:"-0300",n:"-03"}}],["America/Cayman",{s:{f:"-0500",n:"EST"}}],["America/Chicago",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Chihuahua",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Costa_Rica",{s:{f:"-0600",n:"CST"}}],["America/Creston",{s:{f:"-0700",n:"MST"}}],["America/Cuiaba",{s:{f:"-0400",n:"-04",s:"19700215T000000",r:{m:2,d:"3SU"}},d:{f:"-0400",t:"-0300",n:"-03",s:"19701101T000000",r:{m:11,d:"1SU"}}}],["America/Curacao",{s:{f:"-0400",n:"AST"}}],["America/Danmarkshavn",{s:{f:"+0000",n:"GMT"}}],["America/Dawson_Creek",{s:{f:"-0700",n:"MST"}}],["America/Dawson",{s:{f:"-0700",t:"-0800",n:"PST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0800",t:"-0700",n:"PDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Denver",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Detroit",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Dominica",{s:{f:"-0400",n:"AST"}}],["America/Edmonton",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Eirunepe",{s:{f:"-0500",n:"-05"}}],["America/El_Salvador",{s:{f:"-0600",n:"CST"}}],["America/Fort_Nelson",{s:{f:"-0700",n:"MST"}}],["America/Fortaleza",{s:{f:"-0300",n:"-03"}}],["America/Glace_Bay",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Godthab",{s:{f:"-0200",t:"-0300",n:"-03",s:"19701024T230000",r:{m:10,d:"-1SA"}},d:{f:"-0300",t:"-0200",n:"-02",s:"19700328T220000",r:{m:3,d:"-1SA"}}}],["America/Goose_Bay",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Grand_Turk",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Grenada",{s:{f:"-0400",n:"AST"}}],["America/Guadeloupe",{s:{f:"-0400",n:"AST"}}],["America/Guatemala",{s:{f:"-0600",n:"CST"}}],["America/Guayaquil",{s:{f:"-0500",n:"-05"}}],["America/Guyana",{s:{f:"-0400",n:"-04"}}],["America/Halifax",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Havana",{s:{f:"-0400",t:"-0500",n:"CST",s:"19701101T010000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"CDT",s:"19700308T000000",r:{m:3,d:"2SU"}}}],["America/Hermosillo",{s:{f:"-0700",n:"MST"}}],["America/Indiana/Indianapolis",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Knox",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Marengo",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Petersburg",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Tell_City",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Vevay",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Vincennes",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Winamac",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Inuvik",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Iqaluit",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Jamaica",{s:{f:"-0500",n:"EST"}}],["America/Juneau",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Kentucky/Louisville",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Kentucky/Monticello",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Kralendijk",{s:{f:"-0400",n:"AST"}}],["America/La_Paz",{s:{f:"-0400",n:"-04"}}],["America/Lima",{s:{f:"-0500",n:"-05"}}],["America/Los_Angeles",{s:{f:"-0700",t:"-0800",n:"PST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0800",t:"-0700",n:"PDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Lower_Princes",{s:{f:"-0400",n:"AST"}}],["America/Maceio",{s:{f:"-0300",n:"-03"}}],["America/Managua",{s:{f:"-0600",n:"CST"}}],["America/Manaus",{s:{f:"-0400",n:"-04"}}],["America/Marigot",{s:{f:"-0400",n:"AST"}}],["America/Martinique",{s:{f:"-0400",n:"AST"}}],["America/Matamoros",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Mazatlan",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Menominee",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Merida",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Metlakatla",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Mexico_City",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Miquelon",{s:{f:"-0200",t:"-0300",n:"-03",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0300",t:"-0200",n:"-02",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Moncton",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Monterrey",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Montevideo",{s:{f:"-0300",n:"-03"}}],["America/Montserrat",{s:{f:"-0400",n:"AST"}}],["America/Nassau",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/New_York",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Nipigon",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Nome",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Noronha",{s:{f:"-0200",n:"-02"}}],["America/North_Dakota/Beulah",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/North_Dakota/Center",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/North_Dakota/New_Salem",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Ojinaga",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Panama",{s:{f:"-0500",n:"EST"}}],["America/Pangnirtung",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Paramaribo",{s:{f:"-0300",n:"-03"}}],["America/Phoenix",{s:{f:"-0700",n:"MST"}}],["America/Port_of_Spain",{s:{f:"-0400",n:"AST"}}],["America/Port-au-Prince",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Porto_Velho",{s:{f:"-0400",n:"-04"}}],["America/Puerto_Rico",{s:{f:"-0400",n:"AST"}}],["America/Punta_Arenas",{s:{f:"-0300",n:"-03"}}],["America/Rainy_River",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Rankin_Inlet",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Recife",{s:{f:"-0300",n:"-03"}}],["America/Regina",{s:{f:"-0600",n:"CST"}}],["America/Resolute",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Rio_Branco",{s:{f:"-0500",n:"-05"}}],["America/Santarem",{s:{f:"-0300",n:"-03"}}],["America/Santiago",{s:{f:"-0300",t:"-0400",n:"-04",s:"19700405T000000",r:{m:4,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"-03",s:"19700906T000000",r:{m:9,d:"1SU"}}}],["America/Santo_Domingo",{s:{f:"-0400",n:"AST"}}],["America/Sao_Paulo",{s:{f:"-0300",n:"-03",s:"19700215T000000",r:{m:2,d:"3SU"}},d:{f:"-0300",t:"-0200",n:"-02",s:"19701101T000000",r:{m:11,d:"1SU"}}}],["America/Scoresbysund",{s:{f:"+0000",t:"-0100",n:"-01",s:"19701025T010000",r:{m:10,d:"-1SU"}},d:{f:"-0100",t:"+0000",n:"+00",s:"19700329T000000",r:{m:3,d:"-1SU"}}}],["America/Sitka",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/St_Barthelemy",{s:{f:"-0400",n:"AST"}}],["America/St_Johns",{s:{f:"-0230",t:"-0330",n:"NST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0330",t:"-0230",n:"NDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/St_Kitts",{s:{f:"-0400",n:"AST"}}],["America/St_Lucia",{s:{f:"-0400",n:"AST"}}],["America/St_Thomas",{s:{f:"-0400",n:"AST"}}],["America/St_Vincent",{s:{f:"-0400",n:"AST"}}],["America/Swift_Current",{s:{f:"-0600",n:"CST"}}],["America/Tegucigalpa",{s:{f:"-0600",n:"CST"}}],["America/Thule",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Thunder_Bay",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Tijuana",{s:{f:"-0700",t:"-0800",n:"PST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0800",t:"-0700",n:"PDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Toronto",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Tortola",{s:{f:"-0400",n:"AST"}}],["America/Vancouver",{s:{f:"-0700",t:"-0800",n:"PST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0800",t:"-0700",n:"PDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Whitehorse",{s:{f:"-0700",t:"-0800",n:"PST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0800",t:"-0700",n:"PDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Winnipeg",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Yakutat",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Yellowknife",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["Antarctica/Casey",{s:{f:"+0800",n:"+08"}}],["Antarctica/Davis",{s:{f:"+0700",n:"+07"}}],["Antarctica/DumontDUrville",{s:{f:"+1000",n:"+10"}}],["Antarctica/Macquarie",{s:{f:"+1100",n:"+11"}}],["Antarctica/Mawson",{s:{f:"+0500",n:"+05"}}],["Antarctica/McMurdo",{s:{f:"+1300",t:"+1200",n:"NZST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1200",t:"+1300",n:"NZDT",s:"19700927T020000",r:{m:9,d:"-1SU"}}}],["Antarctica/Palmer",{s:{f:"-0300",n:"-03"}}],["Antarctica/Rothera",{s:{f:"-0300",n:"-03"}}],["Antarctica/Syowa",{s:{f:"+0300",n:"+03"}}],["Antarctica/Troll",{s:{f:"+0200",t:"+0000",n:"+00",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0200",n:"+02",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Antarctica/Vostok",{s:{f:"+0600",n:"+06"}}],["Arctic/Longyearbyen",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Asia/Aden",{s:{f:"+0300",n:"+03"}}],["Asia/Almaty",{s:{f:"+0600",n:"+06"}}],["Asia/Amman",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701030T010000",r:{m:10,d:"-1FR"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700326T235959",r:{m:3,d:"-1TH"}}}],["Asia/Anadyr",{s:{f:"+1200",n:"+12"}}],["Asia/Aqtau",{s:{f:"+0500",n:"+05"}}],["Asia/Aqtobe",{s:{f:"+0500",n:"+05"}}],["Asia/Ashgabat",{s:{f:"+0500",n:"+05"}}],["Asia/Atyrau",{s:{f:"+0500",n:"+05"}}],["Asia/Baghdad",{s:{f:"+0300",n:"+03"}}],["Asia/Bahrain",{s:{f:"+0300",n:"+03"}}],["Asia/Baku",{s:{f:"+0400",n:"+04"}}],["Asia/Bangkok",{s:{f:"+0700",n:"+07"}}],["Asia/Barnaul",{s:{f:"+0700",n:"+07"}}],["Asia/Beirut",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T000000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T000000",r:{m:3,d:"-1SU"}}}],["Asia/Bishkek",{s:{f:"+0600",n:"+06"}}],["Asia/Brunei",{s:{f:"+0800",n:"+08"}}],["Asia/Chita",{s:{f:"+0900",n:"+09"}}],["Asia/Choibalsan",{s:{f:"+0800",n:"+08"}}],["Asia/Colombo",{s:{f:"+0530",n:"+0530"}}],["Asia/Damascus",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701030T000000",r:{m:10,d:"-1FR"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700327T000000",r:{m:3,d:"-1FR"}}}],["Asia/Dhaka",{s:{f:"+0600",n:"+06"}}],["Asia/Dili",{s:{f:"+0900",n:"+09"}}],["Asia/Dubai",{s:{f:"+0400",n:"+04"}}],["Asia/Dushanbe",{s:{f:"+0500",n:"+05"}}],["Asia/Famagusta",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Asia/Gaza",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701031T010000",r:{m:10,d:"-1SA"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700328T010000",r:{m:3,d:"4SA"}}}],["Asia/Hebron",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701031T010000",r:{m:10,d:"-1SA"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700328T010000",r:{m:3,d:"4SA"}}}],["Asia/Ho_Chi_Minh",{s:{f:"+0700",n:"+07"}}],["Asia/Hong_Kong",{s:{f:"+0800",n:"HKT"}}],["Asia/Hovd",{s:{f:"+0700",n:"+07"}}],["Asia/Irkutsk",{s:{f:"+0800",n:"+08"}}],["Asia/Istanbul",{s:{f:"+0300",n:"+03"}}],["Asia/Jakarta",{s:{f:"+0700",n:"WIB"}}],["Asia/Jayapura",{s:{f:"+0900",n:"WIT"}}],["Asia/Jerusalem",{s:{f:"+0300",t:"+0200",n:"IST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"IDT",s:"19700327T020000",r:{m:3,d:"-1FR"}}}],["Asia/Kabul",{s:{f:"+0430",n:"+0430"}}],["Asia/Kamchatka",{s:{f:"+1200",n:"+12"}}],["Asia/Karachi",{s:{f:"+0500",n:"PKT"}}],["Asia/Kathmandu",{s:{f:"+0545",n:"+0545"}}],["Asia/Khandyga",{s:{f:"+0900",n:"+09"}}],["Asia/Kolkata",{s:{f:"+0530",n:"IST"}}],["Asia/Krasnoyarsk",{s:{f:"+0700",n:"+07"}}],["Asia/Kuala_Lumpur",{s:{f:"+0800",n:"+08"}}],["Asia/Kuching",{s:{f:"+0800",n:"+08"}}],["Asia/Kuwait",{s:{f:"+0300",n:"+03"}}],["Asia/Macau",{s:{f:"+0800",n:"CST"}}],["Asia/Magadan",{s:{f:"+1100",n:"+11"}}],["Asia/Makassar",{s:{f:"+0800",n:"WITA"}}],["Asia/Manila",{s:{f:"+0800",n:"PST"}}],["Asia/Muscat",{s:{f:"+0400",n:"+04"}}],["Asia/Nicosia",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Asia/Novokuznetsk",{s:{f:"+0700",n:"+07"}}],["Asia/Novosibirsk",{s:{f:"+0700",n:"+07"}}],["Asia/Omsk",{s:{f:"+0600",n:"+06"}}],["Asia/Oral",{s:{f:"+0500",n:"+05"}}],["Asia/Phnom_Penh",{s:{f:"+0700",n:"+07"}}],["Asia/Pontianak",{s:{f:"+0700",n:"WIB"}}],["Asia/Pyongyang",{s:{f:"+0900",n:"KST"}}],["Asia/Qatar",{s:{f:"+0300",n:"+03"}}],["Asia/Qyzylorda",{s:{f:"+0600",n:"+06"}}],["Asia/Riyadh",{s:{f:"+0300",n:"+03"}}],["Asia/Sakhalin",{s:{f:"+1100",n:"+11"}}],["Asia/Samarkand",{s:{f:"+0500",n:"+05"}}],["Asia/Seoul",{s:{f:"+0900",n:"KST"}}],["Asia/Shanghai",{s:{f:"+0800",n:"CST"}}],["Asia/Singapore",{s:{f:"+0800",n:"+08"}}],["Asia/Srednekolymsk",{s:{f:"+1100",n:"+11"}}],["Asia/Taipei",{s:{f:"+0800",n:"CST"}}],["Asia/Tashkent",{s:{f:"+0500",n:"+05"}}],["Asia/Tbilisi",{s:{f:"+0400",n:"+04"}}],["Asia/Tehran",{s:{f:"+0430",t:"+0330",n:"+0330",s:"19700921T000000",r:{m:9,d:"3SU"}},d:{f:"+0330",t:"+0430",n:"+0430",s:"19700321T000000",r:{m:3,d:"3SU"}}}],["Asia/Thimphu",{s:{f:"+0600",n:"+06"}}],["Asia/Tokyo",{s:{f:"+0900",n:"JST"}}],["Asia/Tomsk",{s:{f:"+0700",n:"+07"}}],["Asia/Ulaanbaatar",{s:{f:"+0800",n:"+08"}}],["Asia/Urumqi",{s:{f:"+0600",n:"+06"}}],["Asia/Ust-Nera",{s:{f:"+1000",n:"+10"}}],["Asia/Vientiane",{s:{f:"+0700",n:"+07"}}],["Asia/Vladivostok",{s:{f:"+1000",n:"+10"}}],["Asia/Yakutsk",{s:{f:"+0900",n:"+09"}}],["Asia/Yangon",{s:{f:"+0630",n:"+0630"}}],["Asia/Yekaterinburg",{s:{f:"+0500",n:"+05"}}],["Asia/Yerevan",{s:{f:"+0400",n:"+04"}}],["Atlantic/Azores",{s:{f:"+0000",t:"-0100",n:"-01",s:"19701025T010000",r:{m:10,d:"-1SU"}},d:{f:"-0100",t:"+0000",n:"+00",s:"19700329T000000",r:{m:3,d:"-1SU"}}}],["Atlantic/Bermuda",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["Atlantic/Canary",{s:{f:"+0100",t:"+0000",n:"WET",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"WEST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Atlantic/Cape_Verde",{s:{f:"-0100",n:"-01"}}],["Atlantic/Faroe",{s:{f:"+0100",t:"+0000",n:"WET",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"WEST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Atlantic/Madeira",{s:{f:"+0100",t:"+0000",n:"WET",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"WEST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Atlantic/Reykjavik",{s:{f:"+0000",n:"GMT"}}],["Atlantic/South_Georgia",{s:{f:"-0200",n:"-02"}}],["Atlantic/St_Helena",{s:{f:"+0000",n:"GMT"}}],["Atlantic/Stanley",{s:{f:"-0300",n:"-03"}}],["Australia/Adelaide",{s:{f:"+1030",t:"+0930",n:"ACST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+0930",t:"+1030",n:"ACDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Brisbane",{s:{f:"+1000",n:"AEST"}}],["Australia/Broken_Hill",{s:{f:"+1030",t:"+0930",n:"ACST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+0930",t:"+1030",n:"ACDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Currie",{s:{f:"+1100",t:"+1000",n:"AEST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1000",t:"+1100",n:"AEDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Darwin",{s:{f:"+0930",n:"ACST"}}],["Australia/Eucla",{s:{f:"+0845",n:"+0845"}}],["Australia/Hobart",{s:{f:"+1100",t:"+1000",n:"AEST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1000",t:"+1100",n:"AEDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Lindeman",{s:{f:"+1000",n:"AEST"}}],["Australia/Lord_Howe",{s:{f:"+1100",t:"+1030",n:"+1030",s:"19700405T020000",r:{m:4,d:"1SU"}},d:{f:"+1030",t:"+1100",n:"+11",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Melbourne",{s:{f:"+1100",t:"+1000",n:"AEST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1000",t:"+1100",n:"AEDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Perth",{s:{f:"+0800",n:"AWST"}}],["Australia/Sydney",{s:{f:"+1100",t:"+1000",n:"AEST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1000",t:"+1100",n:"AEDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Etc/GMT-0",{s:{f:"+0000",n:"GMT"}}],["Etc/GMT-1",{s:{f:"-0100",n:"-01"}}],["Etc/GMT-10",{s:{f:"-1000",n:"-10"}}],["Etc/GMT-11",{s:{f:"-1100",n:"-11"}}],["Etc/GMT-12",{s:{f:"-1200",n:"-12"}}],["Etc/GMT-2",{s:{f:"-0200",n:"-02"}}],["Etc/GMT-3",{s:{f:"-0300",n:"-03"}}],["Etc/GMT-4",{s:{f:"-0400",n:"-04"}}],["Etc/GMT-5",{s:{f:"-0500",n:"-05"}}],["Etc/GMT-6",{s:{f:"-0600",n:"-06"}}],["Etc/GMT-7",{s:{f:"-0700",n:"-07"}}],["Etc/GMT-8",{s:{f:"-0800",n:"-08"}}],["Etc/GMT-9",{s:{f:"-0900",n:"-09"}}],["Etc/GMT",{s:{f:"+0000",n:"GMT"}}],["Etc/GMT+0",{s:{f:"+0000",n:"GMT"}}],["Etc/GMT+1",{s:{f:"+0100",n:"+01"}}],["Etc/GMT+10",{s:{f:"+1000",n:"+10"}}],["Etc/GMT+11",{s:{f:"+1100",n:"+11"}}],["Etc/GMT+12",{s:{f:"+1200",n:"+12"}}],["Etc/GMT+13",{s:{f:"+1300",n:"+13"}}],["Etc/GMT+14",{s:{f:"+1400",n:"+14"}}],["Etc/GMT+2",{s:{f:"+0200",n:"+02"}}],["Etc/GMT+3",{s:{f:"+0300",n:"+03"}}],["Etc/GMT+4",{s:{f:"+0400",n:"+04"}}],["Etc/GMT+5",{s:{f:"+0500",n:"+05"}}],["Etc/GMT+6",{s:{f:"+0600",n:"+06"}}],["Etc/GMT+7",{s:{f:"+0700",n:"+07"}}],["Etc/GMT+8",{s:{f:"+0800",n:"+08"}}],["Etc/GMT+9",{s:{f:"+0900",n:"+09"}}],["Etc/GMT0",{s:{f:"+0000",n:"GMT"}}],["Etc/Greenwich",{s:{f:"+0000",n:"GMT"}}],["Etc/UCT",{s:{f:"+0000",n:"UCT"}}],["Etc/Universal",{s:{f:"+0000",n:"UTC"}}],["Etc/UTC",{s:{f:"+0000",n:"UTC"}}],["Etc/Zulu",{s:{f:"+0000",n:"UTC"}}],["Europe/Amsterdam",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Andorra",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Astrakhan",{s:{f:"+0400",n:"+04"}}],["Europe/Athens",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Belgrade",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Berlin",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Bratislava",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Brussels",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Bucharest",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Budapest",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Busingen",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Chisinau",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Copenhagen",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Dublin",{s:{f:"+0100",t:"+0000",n:"GMT",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"IST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Gibraltar",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Guernsey",{s:{f:"+0100",t:"+0000",n:"GMT",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"BST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Helsinki",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Isle_of_Man",{s:{f:"+0100",t:"+0000",n:"GMT",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"BST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Istanbul",{s:{f:"+0300",n:"+03"}}],["Europe/Jersey",{s:{f:"+0100",t:"+0000",n:"GMT",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"BST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Kaliningrad",{s:{f:"+0200",n:"EET"}}],["Europe/Kiev",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Kirov",{s:{f:"+0300",n:"+03"}}],["Europe/Lisbon",{s:{f:"+0100",t:"+0000",n:"WET",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"WEST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Ljubljana",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/London",{s:{f:"+0100",t:"+0000",n:"GMT",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"BST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Luxembourg",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Madrid",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Malta",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Mariehamn",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Minsk",{s:{f:"+0300",n:"+03"}}],["Europe/Monaco",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Moscow",{s:{f:"+0300",n:"MSK"}}],["Europe/Nicosia",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Oslo",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Paris",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Podgorica",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Prague",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Riga",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Rome",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Samara",{s:{f:"+0400",n:"+04"}}],["Europe/San_Marino",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Sarajevo",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Saratov",{s:{f:"+0400",n:"+04"}}],["Europe/Simferopol",{s:{f:"+0300",n:"MSK"}}],["Europe/Skopje",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Sofia",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Stockholm",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Tallinn",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Tirane",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Ulyanovsk",{s:{f:"+0400",n:"+04"}}],["Europe/Uzhgorod",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Vaduz",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Vatican",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Vienna",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Vilnius",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Volgograd",{s:{f:"+0400",n:"+04"}}],["Europe/Warsaw",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Zagreb",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Zaporozhye",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Zurich",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Indian/Antananarivo",{s:{f:"+0300",n:"EAT"}}],["Indian/Chagos",{s:{f:"+0600",n:"+06"}}],["Indian/Christmas",{s:{f:"+0700",n:"+07"}}],["Indian/Cocos",{s:{f:"+0630",n:"+0630"}}],["Indian/Comoro",{s:{f:"+0300",n:"EAT"}}],["Indian/Kerguelen",{s:{f:"+0500",n:"+05"}}],["Indian/Mahe",{s:{f:"+0400",n:"+04"}}],["Indian/Maldives",{s:{f:"+0500",n:"+05"}}],["Indian/Mauritius",{s:{f:"+0400",n:"+04"}}],["Indian/Mayotte",{s:{f:"+0300",n:"EAT"}}],["Indian/Reunion",{s:{f:"+0400",n:"+04"}}],["Pacific/Apia",{s:{f:"+1400",t:"+1300",n:"+13",s:"19700405T040000",r:{m:4,d:"1SU"}},d:{f:"+1300",t:"+1400",n:"+14",s:"19700927T030000",r:{m:9,d:"-1SU"}}}],["Pacific/Auckland",{s:{f:"+1300",t:"+1200",n:"NZST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1200",t:"+1300",n:"NZDT",s:"19700927T020000",r:{m:9,d:"-1SU"}}}],["Pacific/Bougainville",{s:{f:"+1100",n:"+11"}}],["Pacific/Chatham",{s:{f:"+1345",t:"+1245",n:"+1245",s:"19700405T034500",r:{m:4,d:"1SU"}},d:{f:"+1245",t:"+1345",n:"+1345",s:"19700927T024500",r:{m:9,d:"-1SU"}}}],["Pacific/Chuuk",{s:{f:"+1000",n:"+10"}}],["Pacific/Easter",{s:{f:"-0500",t:"-0600",n:"-06",s:"19700404T220000",r:{m:4,d:"1SA"}},d:{f:"-0600",t:"-0500",n:"-05",s:"19700905T220000",r:{m:9,d:"1SA"}}}],["Pacific/Efate",{s:{f:"+1100",n:"+11"}}],["Pacific/Enderbury",{s:{f:"+1300",n:"+13"}}],["Pacific/Fakaofo",{s:{f:"+1300",n:"+13"}}],["Pacific/Fiji",{s:{f:"+1300",t:"+1200",n:"+12",s:"19700118T030000",r:{m:1,d:"-2SU"}},d:{f:"+1200",t:"+1300",n:"+13",s:"19701101T020000",r:{m:11,d:"1SU"}}}],["Pacific/Funafuti",{s:{f:"+1200",n:"+12"}}],["Pacific/Galapagos",{s:{f:"-0600",n:"-06"}}],["Pacific/Gambier",{s:{f:"-0900",n:"-09"}}],["Pacific/Guadalcanal",{s:{f:"+1100",n:"+11"}}],["Pacific/Guam",{s:{f:"+1000",n:"ChST"}}],["Pacific/Honolulu",{s:{f:"-1000",n:"HST"}}],["Pacific/Kiritimati",{s:{f:"+1400",n:"+14"}}],["Pacific/Kosrae",{s:{f:"+1100",n:"+11"}}],["Pacific/Kwajalein",{s:{f:"+1200",n:"+12"}}],["Pacific/Majuro",{s:{f:"+1200",n:"+12"}}],["Pacific/Marquesas",{s:{f:"-0930",n:"-0930"}}],["Pacific/Midway",{s:{f:"-1100",n:"SST"}}],["Pacific/Nauru",{s:{f:"+1200",n:"+12"}}],["Pacific/Niue",{s:{f:"-1100",n:"-11"}}],["Pacific/Norfolk",{s:{f:"+1100",n:"+11"}}],["Pacific/Noumea",{s:{f:"+1100",n:"+11"}}],["Pacific/Pago_Pago",{s:{f:"-1100",n:"SST"}}],["Pacific/Palau",{s:{f:"+0900",n:"+09"}}],["Pacific/Pitcairn",{s:{f:"-0800",n:"-08"}}],["Pacific/Pohnpei",{s:{f:"+1100",n:"+11"}}],["Pacific/Port_Moresby",{s:{f:"+1000",n:"+10"}}],["Pacific/Rarotonga",{s:{f:"-1000",n:"-10"}}],["Pacific/Saipan",{s:{f:"+1000",n:"ChST"}}],["Pacific/Tahiti",{s:{f:"-1000",n:"-10"}}],["Pacific/Tarawa",{s:{f:"+1200",n:"+12"}}],["Pacific/Tongatapu",{s:{f:"+1300",n:"+13"}}],["Pacific/Wake",{s:{f:"+1200",n:"+12"}}],["Pacific/Wallis",{s:{f:"+1200",n:"+12"}}]])),ct}var Jt;function Je(){if(Jt)return at;Jt=1,Object.defineProperty(at,"__esModule",{value:!0}),at.getZoneString=at.getZoneLines=void 0;const r=Ze();function t(a){const{n:i,f:o,t:n,r:l,s:u}=a;return[`TZNAME:${i}`,`TZOFFSETFROM:${o}`,`TZOFFSETTO:${n||o}`,`DTSTART:${u||r.defaultStart}`,...l?[`RRULE:FREQ=${l.f||"YEARLY"};BYMONTH=${l.m};BYDAY=${l.d}`]:[]]}function e(a,i=!0){const o=r.zonesMap.get(a);if(o){const{s:n,d:l}=o;return[...i?["BEGIN:VTIMEZONE"]:[],`TZID:${a}`,"BEGIN:STANDARD",...t(n),"END:STANDARD",...l?["BEGIN:DAYLIGHT",...t(l),"END:DAYLIGHT"]:[],...i?["END:VTIMEZONE"]:[]]}}at.getZoneLines=e;function s(a,i=!0){return e(a,i)?.join(`\r +import{r as G,o as B,f as H,g as Q,k as v,y as dt,t as et,w as st,j as vt,N as Se,F as Ft,B as Gt,c as Pt,h as ue,b as de,l as St,D as Ae,u as _,e as ge}from"./Web-BwmPK40i.chunk.mjs";import{_ as ce,l as jt,g as De}from"./public-C1mLBHT3.chunk.mjs";import{t as D}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{N as Kt}from"./ContentCopy-BF1gBM5z.chunk.mjs";import{d as _e,c as mt,a as Lt,g as Ee,h as be,o as Ue,e as Ce}from"./index-B-dGqfIG.chunk.mjs";import{c as ft}from"./index-BLNGy7h5.chunk.mjs";import{d as zt,a as Ot}from"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import{S as Ye}from"./ShareType-suoNfd7y.chunk.mjs";import{N as Ht}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as he}from"./NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs";import{N as ve,a as Oe}from"./NcTextArea-Dxzj4zdb-BPZd41PF.chunk.mjs";import{_ as we}from"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import{l as W}from"./logger-z78wFmcz.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import{k as Me}from"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";/* empty css */import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import{D as Ne}from"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{N as xe}from"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import{P as Ie}from"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./index-CQct0mOs.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./index-dqLzhRZM.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import"./index-BrjNu3x_.chunk.mjs";/* empty css */import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./index-CcOuN-F7.chunk.mjs";import"./NcSelectTags-D7qWNjXa-gqJ9LLZU.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import{z as ke,_ as Be}from"./index-BYnFfAmz.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";function qt(r){const t=r.getFullYear(),e=(r.getMonth()+1).toString().padStart(2,"0"),s=r.getDate().toString().padStart(2,"0");return`${t}-${e}-${s}`}const Pe="_absenceForm_1i2bj_2",Le="_absenceForm__pickerContainer_1i2bj_8",ze="_absenceForm__picker_1i2bj_8",Ve="_absenceForm__longMessage_1i2bj_22",je="_absenceForm__longMessageContainer_1i2bj_26",He="_absenceForm__actions_1i2bj_33",Re={absenceForm:Pe,absenceForm__pickerContainer:Le,absenceForm__picker:ze,absenceForm__longMessage:Ve,absenceForm__longMessageContainer:je,absenceForm__actions:He},We={name:"AbsenceForm",components:{NcButton:Ht,NcTextField:we,NcTextArea:Oe,NcDateTimePickerNative:he,NcSelectUsers:ve},setup(){return{t:D}},data(){const{firstDay:r,lastDay:t,status:e,message:s,replacementUserId:a,replacementUserDisplayName:i}=jt("dav","absence",{});return{loading:!1,status:e??"",message:s??"",firstDay:r?new Date(r):new Date,lastDay:t?new Date(t):null,replacementUserId:a,replacementUser:a?{user:a,displayName:i}:null,searchLoading:!1,options:[]}},computed:{valid(){const r=new Date(this.firstDay?.getTime()),t=new Date(this.lastDay?.getTime());return r?.setHours(0,0,0,0),t?.setHours(0,0,0,0),!!this.firstDay&&!!this.lastDay&&!!this.status&&!!this.message&&t>=r}},methods:{resetForm(){this.status="",this.message="",this.firstDay=new Date,this.lastDay=null},formatForMultiselect(r){return{user:r.uuid||r.value.shareWith,displayName:r.name||r.label,subtitle:r.dsc|""}},async asyncFind(r){this.searchLoading=!0,await this.debounceGetSuggestions(r.trim())},async getSuggestions(r){const t=[Ye.User];let e;try{e=await ft.get(mt("apps/files_sharing/api/v1/sharees"),{params:{format:"json",itemType:"file",search:r,shareType:t}})}catch(d){W.error("Error fetching suggestions",{error:d});return}const s=e.data.ocs.data,a=e.data.ocs.data.exact;s.exact=[];const i=a.users,o=s.users;W.info("AbsenceForm raw suggestions",{rawExactSuggestions:i,rawSuggestions:o});const n=i.map(d=>this.formatForMultiselect(d)),l=o.map(d=>this.formatForMultiselect(d)),u=n.concat(l),c=u.reduce((d,m)=>(m.displayName&&(d[m.displayName]||(d[m.displayName]=0),d[m.displayName]++),d),{});this.options=u.map(d=>c[d.displayName]>1&&!d.desc?{...d,desc:d.shareWithDisplayNameUnique}:d),this.searchLoading=!1,W.info("AbsenseForm suggestions",{options:this.options})},debounceGetSuggestions:_e(function(...r){this.getSuggestions(...r)},300),async saveForm(){if(this.valid){this.loading=!0;try{await ft.post(mt("/apps/dav/api/v1/outOfOffice/{userId}",{userId:Lt().uid}),{firstDay:qt(this.firstDay),lastDay:qt(this.lastDay),status:this.status,message:this.message,replacementUserId:this.replacementUser?.user??null}),zt(D("dav","Absence saved"))}catch(r){Ot(D("dav","Failed to save your absence settings")),W.error("Could not save absence",{error:r})}finally{this.loading=!1}}},async clearAbsence(){this.loading=!0;try{await ft.delete(mt("/apps/dav/api/v1/outOfOffice/{userId}",{userId:Lt().uid})),this.resetForm(),zt(D("dav","Absence cleared"))}catch(r){Ot(D("dav","Failed to clear your absence settings")),W.error("Could not clear absence",{error:r})}finally{this.loading=!1}}}},Fe={for:"replacement-search-input"};function Ge(r,t,e,s,a,i){const o=G("NcDateTimePickerNative"),n=G("NcSelectUsers"),l=G("NcTextField"),u=G("NcTextArea"),c=G("NcButton");return B(),H("form",{class:dt(r.$style.absenceForm),onSubmit:t[5]||(t[5]=Se((...d)=>i.saveForm&&i.saveForm(...d),["prevent"]))},[Q("div",{class:dt(r.$style.absenceForm__pickerContainer)},[v(o,{id:"absence-first-day",modelValue:a.firstDay,"onUpdate:modelValue":t[0]||(t[0]=d=>a.firstDay=d),class:dt(r.$style.absenceForm__picker),label:s.t("dav","First day"),required:""},null,8,["modelValue","class","label"]),v(o,{id:"absence-last-day",modelValue:a.lastDay,"onUpdate:modelValue":t[1]||(t[1]=d=>a.lastDay=d),class:dt(r.$style.absenceForm__picker),label:s.t("dav","Last day (inclusive)"),required:""},null,8,["modelValue","class","label"])],2),Q("label",Fe,et(s.t("dav","Out of office replacement (optional)")),1),v(n,{modelValue:a.replacementUser,"onUpdate:modelValue":t[2]||(t[2]=d=>a.replacementUser=d),inputId:"replacement-search-input",loading:a.searchLoading,placeholder:s.t("dav","Name of the replacement"),options:a.options,onSearch:i.asyncFind},null,8,["modelValue","loading","placeholder","options","onSearch"]),v(l,{modelValue:a.status,"onUpdate:modelValue":t[3]||(t[3]=d=>a.status=d),label:s.t("dav","Short absence status"),required:!0},null,8,["modelValue","label"]),Q("div",{class:dt(r.$style.absenceForm__longMessageContainer)},[v(u,{modelValue:a.message,"onUpdate:modelValue":t[4]||(t[4]=d=>a.message=d),inputClass:r.$style.absenceForm__longMessage,label:s.t("dav","Long absence Message"),required:"",resize:"none",rows:"6"},null,8,["modelValue","inputClass","label"])],2),Q("div",{class:dt(r.$style.absenceForm__actions)},[v(c,{disabled:a.loading||!i.valid,variant:"primary",type:"submit"},{default:st(()=>[vt(et(s.t("dav","Save")),1)]),_:1},8,["disabled"]),v(c,{disabled:a.loading||!i.valid,variant:"error",onClick:i.clearAbsence},{default:st(()=>[vt(et(s.t("dav","Disable absence")),1)]),_:1},8,["disabled","onClick"])],2)],34)}const Ke={$style:Re},qe=ce(We,[["render",Ge],["__cssModules",Ke]]);var at={},ct={},Zt;function Ze(){return Zt||(Zt=1,Object.defineProperty(ct,"__esModule",{value:!0}),ct.zonesMap=ct.defaultStart=void 0,ct.defaultStart="19700101T000000",ct.zonesMap=new Map([["Africa/Abidjan",{s:{f:"+0000",n:"GMT"}}],["Africa/Accra",{s:{f:"+0000",n:"GMT"}}],["Africa/Addis_Ababa",{s:{f:"+0300",n:"EAT"}}],["Africa/Algiers",{s:{f:"+0100",n:"CET"}}],["Africa/Asmara",{s:{f:"+0300",n:"EAT"}}],["Africa/Bamako",{s:{f:"+0000",n:"GMT"}}],["Africa/Bangui",{s:{f:"+0100",n:"WAT"}}],["Africa/Banjul",{s:{f:"+0000",n:"GMT"}}],["Africa/Bissau",{s:{f:"+0000",n:"GMT"}}],["Africa/Blantyre",{s:{f:"+0200",n:"CAT"}}],["Africa/Brazzaville",{s:{f:"+0100",n:"WAT"}}],["Africa/Bujumbura",{s:{f:"+0200",n:"CAT"}}],["Africa/Cairo",{s:{f:"+0200",n:"EET"}}],["Africa/Casablanca",{s:{f:"+0100",n:"+01"}}],["Africa/Ceuta",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Africa/Conakry",{s:{f:"+0000",n:"GMT"}}],["Africa/Dakar",{s:{f:"+0000",n:"GMT"}}],["Africa/Dar_es_Salaam",{s:{f:"+0300",n:"EAT"}}],["Africa/Djibouti",{s:{f:"+0300",n:"EAT"}}],["Africa/Douala",{s:{f:"+0100",n:"WAT"}}],["Africa/El_Aaiun",{s:{f:"+0100",n:"+01"}}],["Africa/Freetown",{s:{f:"+0000",n:"GMT"}}],["Africa/Gaborone",{s:{f:"+0200",n:"CAT"}}],["Africa/Harare",{s:{f:"+0200",n:"CAT"}}],["Africa/Johannesburg",{s:{f:"+0200",n:"SAST"}}],["Africa/Juba",{s:{f:"+0300",n:"EAT"}}],["Africa/Kampala",{s:{f:"+0300",n:"EAT"}}],["Africa/Khartoum",{s:{f:"+0200",n:"CAT"}}],["Africa/Kigali",{s:{f:"+0200",n:"CAT"}}],["Africa/Kinshasa",{s:{f:"+0100",n:"WAT"}}],["Africa/Lagos",{s:{f:"+0100",n:"WAT"}}],["Africa/Libreville",{s:{f:"+0100",n:"WAT"}}],["Africa/Lome",{s:{f:"+0000",n:"GMT"}}],["Africa/Luanda",{s:{f:"+0100",n:"WAT"}}],["Africa/Lubumbashi",{s:{f:"+0200",n:"CAT"}}],["Africa/Lusaka",{s:{f:"+0200",n:"CAT"}}],["Africa/Malabo",{s:{f:"+0100",n:"WAT"}}],["Africa/Maputo",{s:{f:"+0200",n:"CAT"}}],["Africa/Maseru",{s:{f:"+0200",n:"SAST"}}],["Africa/Mbabane",{s:{f:"+0200",n:"SAST"}}],["Africa/Mogadishu",{s:{f:"+0300",n:"EAT"}}],["Africa/Monrovia",{s:{f:"+0000",n:"GMT"}}],["Africa/Nairobi",{s:{f:"+0300",n:"EAT"}}],["Africa/Ndjamena",{s:{f:"+0100",n:"WAT"}}],["Africa/Niamey",{s:{f:"+0100",n:"WAT"}}],["Africa/Nouakchott",{s:{f:"+0000",n:"GMT"}}],["Africa/Ouagadougou",{s:{f:"+0000",n:"GMT"}}],["Africa/Porto-Novo",{s:{f:"+0100",n:"WAT"}}],["Africa/Sao_Tome",{s:{f:"+0100",n:"WAT"}}],["Africa/Tripoli",{s:{f:"+0200",n:"EET"}}],["Africa/Tunis",{s:{f:"+0100",n:"CET"}}],["Africa/Windhoek",{s:{f:"+0200",n:"CAT"}}],["America/Adak",{s:{f:"-0900",t:"-1000",n:"HST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-1000",t:"-0900",n:"HDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Anchorage",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Anguilla",{s:{f:"-0400",n:"AST"}}],["America/Antigua",{s:{f:"-0400",n:"AST"}}],["America/Araguaina",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Buenos_Aires",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Catamarca",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Cordoba",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Jujuy",{s:{f:"-0300",n:"-03"}}],["America/Argentina/La_Rioja",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Mendoza",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Rio_Gallegos",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Salta",{s:{f:"-0300",n:"-03"}}],["America/Argentina/San_Juan",{s:{f:"-0300",n:"-03"}}],["America/Argentina/San_Luis",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Tucuman",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Ushuaia",{s:{f:"-0300",n:"-03"}}],["America/Aruba",{s:{f:"-0400",n:"AST"}}],["America/Asuncion",{s:{f:"-0300",t:"-0400",n:"-04",s:"19700322T000000",r:{m:3,d:"4SU"}},d:{f:"-0400",t:"-0300",n:"-03",s:"19701004T000000",r:{m:10,d:"1SU"}}}],["America/Atikokan",{s:{f:"-0500",n:"EST"}}],["America/Bahia_Banderas",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Bahia",{s:{f:"-0300",n:"-03"}}],["America/Barbados",{s:{f:"-0400",n:"AST"}}],["America/Belem",{s:{f:"-0300",n:"-03"}}],["America/Belize",{s:{f:"-0600",n:"CST"}}],["America/Blanc-Sablon",{s:{f:"-0400",n:"AST"}}],["America/Boa_Vista",{s:{f:"-0400",n:"-04"}}],["America/Bogota",{s:{f:"-0500",n:"-05"}}],["America/Boise",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Cambridge_Bay",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Campo_Grande",{s:{f:"-0400",n:"-04",s:"19700215T000000",r:{m:2,d:"3SU"}},d:{f:"-0400",t:"-0300",n:"-03",s:"19701101T000000",r:{m:11,d:"1SU"}}}],["America/Cancun",{s:{f:"-0500",n:"EST"}}],["America/Caracas",{s:{f:"-0400",n:"-04"}}],["America/Cayenne",{s:{f:"-0300",n:"-03"}}],["America/Cayman",{s:{f:"-0500",n:"EST"}}],["America/Chicago",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Chihuahua",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Costa_Rica",{s:{f:"-0600",n:"CST"}}],["America/Creston",{s:{f:"-0700",n:"MST"}}],["America/Cuiaba",{s:{f:"-0400",n:"-04",s:"19700215T000000",r:{m:2,d:"3SU"}},d:{f:"-0400",t:"-0300",n:"-03",s:"19701101T000000",r:{m:11,d:"1SU"}}}],["America/Curacao",{s:{f:"-0400",n:"AST"}}],["America/Danmarkshavn",{s:{f:"+0000",n:"GMT"}}],["America/Dawson_Creek",{s:{f:"-0700",n:"MST"}}],["America/Dawson",{s:{f:"-0700",t:"-0800",n:"PST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0800",t:"-0700",n:"PDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Denver",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Detroit",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Dominica",{s:{f:"-0400",n:"AST"}}],["America/Edmonton",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Eirunepe",{s:{f:"-0500",n:"-05"}}],["America/El_Salvador",{s:{f:"-0600",n:"CST"}}],["America/Fort_Nelson",{s:{f:"-0700",n:"MST"}}],["America/Fortaleza",{s:{f:"-0300",n:"-03"}}],["America/Glace_Bay",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Godthab",{s:{f:"-0200",t:"-0300",n:"-03",s:"19701024T230000",r:{m:10,d:"-1SA"}},d:{f:"-0300",t:"-0200",n:"-02",s:"19700328T220000",r:{m:3,d:"-1SA"}}}],["America/Goose_Bay",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Grand_Turk",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Grenada",{s:{f:"-0400",n:"AST"}}],["America/Guadeloupe",{s:{f:"-0400",n:"AST"}}],["America/Guatemala",{s:{f:"-0600",n:"CST"}}],["America/Guayaquil",{s:{f:"-0500",n:"-05"}}],["America/Guyana",{s:{f:"-0400",n:"-04"}}],["America/Halifax",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Havana",{s:{f:"-0400",t:"-0500",n:"CST",s:"19701101T010000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"CDT",s:"19700308T000000",r:{m:3,d:"2SU"}}}],["America/Hermosillo",{s:{f:"-0700",n:"MST"}}],["America/Indiana/Indianapolis",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Knox",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Marengo",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Petersburg",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Tell_City",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Vevay",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Vincennes",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Winamac",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Inuvik",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Iqaluit",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Jamaica",{s:{f:"-0500",n:"EST"}}],["America/Juneau",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Kentucky/Louisville",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Kentucky/Monticello",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Kralendijk",{s:{f:"-0400",n:"AST"}}],["America/La_Paz",{s:{f:"-0400",n:"-04"}}],["America/Lima",{s:{f:"-0500",n:"-05"}}],["America/Los_Angeles",{s:{f:"-0700",t:"-0800",n:"PST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0800",t:"-0700",n:"PDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Lower_Princes",{s:{f:"-0400",n:"AST"}}],["America/Maceio",{s:{f:"-0300",n:"-03"}}],["America/Managua",{s:{f:"-0600",n:"CST"}}],["America/Manaus",{s:{f:"-0400",n:"-04"}}],["America/Marigot",{s:{f:"-0400",n:"AST"}}],["America/Martinique",{s:{f:"-0400",n:"AST"}}],["America/Matamoros",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Mazatlan",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Menominee",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Merida",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Metlakatla",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Mexico_City",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Miquelon",{s:{f:"-0200",t:"-0300",n:"-03",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0300",t:"-0200",n:"-02",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Moncton",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Monterrey",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Montevideo",{s:{f:"-0300",n:"-03"}}],["America/Montserrat",{s:{f:"-0400",n:"AST"}}],["America/Nassau",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/New_York",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Nipigon",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Nome",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Noronha",{s:{f:"-0200",n:"-02"}}],["America/North_Dakota/Beulah",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/North_Dakota/Center",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/North_Dakota/New_Salem",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Ojinaga",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Panama",{s:{f:"-0500",n:"EST"}}],["America/Pangnirtung",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Paramaribo",{s:{f:"-0300",n:"-03"}}],["America/Phoenix",{s:{f:"-0700",n:"MST"}}],["America/Port_of_Spain",{s:{f:"-0400",n:"AST"}}],["America/Port-au-Prince",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Porto_Velho",{s:{f:"-0400",n:"-04"}}],["America/Puerto_Rico",{s:{f:"-0400",n:"AST"}}],["America/Punta_Arenas",{s:{f:"-0300",n:"-03"}}],["America/Rainy_River",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Rankin_Inlet",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Recife",{s:{f:"-0300",n:"-03"}}],["America/Regina",{s:{f:"-0600",n:"CST"}}],["America/Resolute",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Rio_Branco",{s:{f:"-0500",n:"-05"}}],["America/Santarem",{s:{f:"-0300",n:"-03"}}],["America/Santiago",{s:{f:"-0300",t:"-0400",n:"-04",s:"19700405T000000",r:{m:4,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"-03",s:"19700906T000000",r:{m:9,d:"1SU"}}}],["America/Santo_Domingo",{s:{f:"-0400",n:"AST"}}],["America/Sao_Paulo",{s:{f:"-0300",n:"-03",s:"19700215T000000",r:{m:2,d:"3SU"}},d:{f:"-0300",t:"-0200",n:"-02",s:"19701101T000000",r:{m:11,d:"1SU"}}}],["America/Scoresbysund",{s:{f:"+0000",t:"-0100",n:"-01",s:"19701025T010000",r:{m:10,d:"-1SU"}},d:{f:"-0100",t:"+0000",n:"+00",s:"19700329T000000",r:{m:3,d:"-1SU"}}}],["America/Sitka",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/St_Barthelemy",{s:{f:"-0400",n:"AST"}}],["America/St_Johns",{s:{f:"-0230",t:"-0330",n:"NST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0330",t:"-0230",n:"NDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/St_Kitts",{s:{f:"-0400",n:"AST"}}],["America/St_Lucia",{s:{f:"-0400",n:"AST"}}],["America/St_Thomas",{s:{f:"-0400",n:"AST"}}],["America/St_Vincent",{s:{f:"-0400",n:"AST"}}],["America/Swift_Current",{s:{f:"-0600",n:"CST"}}],["America/Tegucigalpa",{s:{f:"-0600",n:"CST"}}],["America/Thule",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Thunder_Bay",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Tijuana",{s:{f:"-0700",t:"-0800",n:"PST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0800",t:"-0700",n:"PDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Toronto",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Tortola",{s:{f:"-0400",n:"AST"}}],["America/Vancouver",{s:{f:"-0700",t:"-0800",n:"PST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0800",t:"-0700",n:"PDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Whitehorse",{s:{f:"-0700",t:"-0800",n:"PST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0800",t:"-0700",n:"PDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Winnipeg",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Yakutat",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Yellowknife",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["Antarctica/Casey",{s:{f:"+0800",n:"+08"}}],["Antarctica/Davis",{s:{f:"+0700",n:"+07"}}],["Antarctica/DumontDUrville",{s:{f:"+1000",n:"+10"}}],["Antarctica/Macquarie",{s:{f:"+1100",n:"+11"}}],["Antarctica/Mawson",{s:{f:"+0500",n:"+05"}}],["Antarctica/McMurdo",{s:{f:"+1300",t:"+1200",n:"NZST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1200",t:"+1300",n:"NZDT",s:"19700927T020000",r:{m:9,d:"-1SU"}}}],["Antarctica/Palmer",{s:{f:"-0300",n:"-03"}}],["Antarctica/Rothera",{s:{f:"-0300",n:"-03"}}],["Antarctica/Syowa",{s:{f:"+0300",n:"+03"}}],["Antarctica/Troll",{s:{f:"+0200",t:"+0000",n:"+00",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0200",n:"+02",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Antarctica/Vostok",{s:{f:"+0600",n:"+06"}}],["Arctic/Longyearbyen",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Asia/Aden",{s:{f:"+0300",n:"+03"}}],["Asia/Almaty",{s:{f:"+0600",n:"+06"}}],["Asia/Amman",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701030T010000",r:{m:10,d:"-1FR"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700326T235959",r:{m:3,d:"-1TH"}}}],["Asia/Anadyr",{s:{f:"+1200",n:"+12"}}],["Asia/Aqtau",{s:{f:"+0500",n:"+05"}}],["Asia/Aqtobe",{s:{f:"+0500",n:"+05"}}],["Asia/Ashgabat",{s:{f:"+0500",n:"+05"}}],["Asia/Atyrau",{s:{f:"+0500",n:"+05"}}],["Asia/Baghdad",{s:{f:"+0300",n:"+03"}}],["Asia/Bahrain",{s:{f:"+0300",n:"+03"}}],["Asia/Baku",{s:{f:"+0400",n:"+04"}}],["Asia/Bangkok",{s:{f:"+0700",n:"+07"}}],["Asia/Barnaul",{s:{f:"+0700",n:"+07"}}],["Asia/Beirut",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T000000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T000000",r:{m:3,d:"-1SU"}}}],["Asia/Bishkek",{s:{f:"+0600",n:"+06"}}],["Asia/Brunei",{s:{f:"+0800",n:"+08"}}],["Asia/Chita",{s:{f:"+0900",n:"+09"}}],["Asia/Choibalsan",{s:{f:"+0800",n:"+08"}}],["Asia/Colombo",{s:{f:"+0530",n:"+0530"}}],["Asia/Damascus",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701030T000000",r:{m:10,d:"-1FR"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700327T000000",r:{m:3,d:"-1FR"}}}],["Asia/Dhaka",{s:{f:"+0600",n:"+06"}}],["Asia/Dili",{s:{f:"+0900",n:"+09"}}],["Asia/Dubai",{s:{f:"+0400",n:"+04"}}],["Asia/Dushanbe",{s:{f:"+0500",n:"+05"}}],["Asia/Famagusta",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Asia/Gaza",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701031T010000",r:{m:10,d:"-1SA"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700328T010000",r:{m:3,d:"4SA"}}}],["Asia/Hebron",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701031T010000",r:{m:10,d:"-1SA"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700328T010000",r:{m:3,d:"4SA"}}}],["Asia/Ho_Chi_Minh",{s:{f:"+0700",n:"+07"}}],["Asia/Hong_Kong",{s:{f:"+0800",n:"HKT"}}],["Asia/Hovd",{s:{f:"+0700",n:"+07"}}],["Asia/Irkutsk",{s:{f:"+0800",n:"+08"}}],["Asia/Istanbul",{s:{f:"+0300",n:"+03"}}],["Asia/Jakarta",{s:{f:"+0700",n:"WIB"}}],["Asia/Jayapura",{s:{f:"+0900",n:"WIT"}}],["Asia/Jerusalem",{s:{f:"+0300",t:"+0200",n:"IST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"IDT",s:"19700327T020000",r:{m:3,d:"-1FR"}}}],["Asia/Kabul",{s:{f:"+0430",n:"+0430"}}],["Asia/Kamchatka",{s:{f:"+1200",n:"+12"}}],["Asia/Karachi",{s:{f:"+0500",n:"PKT"}}],["Asia/Kathmandu",{s:{f:"+0545",n:"+0545"}}],["Asia/Khandyga",{s:{f:"+0900",n:"+09"}}],["Asia/Kolkata",{s:{f:"+0530",n:"IST"}}],["Asia/Krasnoyarsk",{s:{f:"+0700",n:"+07"}}],["Asia/Kuala_Lumpur",{s:{f:"+0800",n:"+08"}}],["Asia/Kuching",{s:{f:"+0800",n:"+08"}}],["Asia/Kuwait",{s:{f:"+0300",n:"+03"}}],["Asia/Macau",{s:{f:"+0800",n:"CST"}}],["Asia/Magadan",{s:{f:"+1100",n:"+11"}}],["Asia/Makassar",{s:{f:"+0800",n:"WITA"}}],["Asia/Manila",{s:{f:"+0800",n:"PST"}}],["Asia/Muscat",{s:{f:"+0400",n:"+04"}}],["Asia/Nicosia",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Asia/Novokuznetsk",{s:{f:"+0700",n:"+07"}}],["Asia/Novosibirsk",{s:{f:"+0700",n:"+07"}}],["Asia/Omsk",{s:{f:"+0600",n:"+06"}}],["Asia/Oral",{s:{f:"+0500",n:"+05"}}],["Asia/Phnom_Penh",{s:{f:"+0700",n:"+07"}}],["Asia/Pontianak",{s:{f:"+0700",n:"WIB"}}],["Asia/Pyongyang",{s:{f:"+0900",n:"KST"}}],["Asia/Qatar",{s:{f:"+0300",n:"+03"}}],["Asia/Qyzylorda",{s:{f:"+0600",n:"+06"}}],["Asia/Riyadh",{s:{f:"+0300",n:"+03"}}],["Asia/Sakhalin",{s:{f:"+1100",n:"+11"}}],["Asia/Samarkand",{s:{f:"+0500",n:"+05"}}],["Asia/Seoul",{s:{f:"+0900",n:"KST"}}],["Asia/Shanghai",{s:{f:"+0800",n:"CST"}}],["Asia/Singapore",{s:{f:"+0800",n:"+08"}}],["Asia/Srednekolymsk",{s:{f:"+1100",n:"+11"}}],["Asia/Taipei",{s:{f:"+0800",n:"CST"}}],["Asia/Tashkent",{s:{f:"+0500",n:"+05"}}],["Asia/Tbilisi",{s:{f:"+0400",n:"+04"}}],["Asia/Tehran",{s:{f:"+0430",t:"+0330",n:"+0330",s:"19700921T000000",r:{m:9,d:"3SU"}},d:{f:"+0330",t:"+0430",n:"+0430",s:"19700321T000000",r:{m:3,d:"3SU"}}}],["Asia/Thimphu",{s:{f:"+0600",n:"+06"}}],["Asia/Tokyo",{s:{f:"+0900",n:"JST"}}],["Asia/Tomsk",{s:{f:"+0700",n:"+07"}}],["Asia/Ulaanbaatar",{s:{f:"+0800",n:"+08"}}],["Asia/Urumqi",{s:{f:"+0600",n:"+06"}}],["Asia/Ust-Nera",{s:{f:"+1000",n:"+10"}}],["Asia/Vientiane",{s:{f:"+0700",n:"+07"}}],["Asia/Vladivostok",{s:{f:"+1000",n:"+10"}}],["Asia/Yakutsk",{s:{f:"+0900",n:"+09"}}],["Asia/Yangon",{s:{f:"+0630",n:"+0630"}}],["Asia/Yekaterinburg",{s:{f:"+0500",n:"+05"}}],["Asia/Yerevan",{s:{f:"+0400",n:"+04"}}],["Atlantic/Azores",{s:{f:"+0000",t:"-0100",n:"-01",s:"19701025T010000",r:{m:10,d:"-1SU"}},d:{f:"-0100",t:"+0000",n:"+00",s:"19700329T000000",r:{m:3,d:"-1SU"}}}],["Atlantic/Bermuda",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["Atlantic/Canary",{s:{f:"+0100",t:"+0000",n:"WET",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"WEST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Atlantic/Cape_Verde",{s:{f:"-0100",n:"-01"}}],["Atlantic/Faroe",{s:{f:"+0100",t:"+0000",n:"WET",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"WEST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Atlantic/Madeira",{s:{f:"+0100",t:"+0000",n:"WET",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"WEST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Atlantic/Reykjavik",{s:{f:"+0000",n:"GMT"}}],["Atlantic/South_Georgia",{s:{f:"-0200",n:"-02"}}],["Atlantic/St_Helena",{s:{f:"+0000",n:"GMT"}}],["Atlantic/Stanley",{s:{f:"-0300",n:"-03"}}],["Australia/Adelaide",{s:{f:"+1030",t:"+0930",n:"ACST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+0930",t:"+1030",n:"ACDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Brisbane",{s:{f:"+1000",n:"AEST"}}],["Australia/Broken_Hill",{s:{f:"+1030",t:"+0930",n:"ACST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+0930",t:"+1030",n:"ACDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Currie",{s:{f:"+1100",t:"+1000",n:"AEST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1000",t:"+1100",n:"AEDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Darwin",{s:{f:"+0930",n:"ACST"}}],["Australia/Eucla",{s:{f:"+0845",n:"+0845"}}],["Australia/Hobart",{s:{f:"+1100",t:"+1000",n:"AEST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1000",t:"+1100",n:"AEDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Lindeman",{s:{f:"+1000",n:"AEST"}}],["Australia/Lord_Howe",{s:{f:"+1100",t:"+1030",n:"+1030",s:"19700405T020000",r:{m:4,d:"1SU"}},d:{f:"+1030",t:"+1100",n:"+11",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Melbourne",{s:{f:"+1100",t:"+1000",n:"AEST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1000",t:"+1100",n:"AEDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Perth",{s:{f:"+0800",n:"AWST"}}],["Australia/Sydney",{s:{f:"+1100",t:"+1000",n:"AEST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1000",t:"+1100",n:"AEDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Etc/GMT-0",{s:{f:"+0000",n:"GMT"}}],["Etc/GMT-1",{s:{f:"-0100",n:"-01"}}],["Etc/GMT-10",{s:{f:"-1000",n:"-10"}}],["Etc/GMT-11",{s:{f:"-1100",n:"-11"}}],["Etc/GMT-12",{s:{f:"-1200",n:"-12"}}],["Etc/GMT-2",{s:{f:"-0200",n:"-02"}}],["Etc/GMT-3",{s:{f:"-0300",n:"-03"}}],["Etc/GMT-4",{s:{f:"-0400",n:"-04"}}],["Etc/GMT-5",{s:{f:"-0500",n:"-05"}}],["Etc/GMT-6",{s:{f:"-0600",n:"-06"}}],["Etc/GMT-7",{s:{f:"-0700",n:"-07"}}],["Etc/GMT-8",{s:{f:"-0800",n:"-08"}}],["Etc/GMT-9",{s:{f:"-0900",n:"-09"}}],["Etc/GMT",{s:{f:"+0000",n:"GMT"}}],["Etc/GMT+0",{s:{f:"+0000",n:"GMT"}}],["Etc/GMT+1",{s:{f:"+0100",n:"+01"}}],["Etc/GMT+10",{s:{f:"+1000",n:"+10"}}],["Etc/GMT+11",{s:{f:"+1100",n:"+11"}}],["Etc/GMT+12",{s:{f:"+1200",n:"+12"}}],["Etc/GMT+13",{s:{f:"+1300",n:"+13"}}],["Etc/GMT+14",{s:{f:"+1400",n:"+14"}}],["Etc/GMT+2",{s:{f:"+0200",n:"+02"}}],["Etc/GMT+3",{s:{f:"+0300",n:"+03"}}],["Etc/GMT+4",{s:{f:"+0400",n:"+04"}}],["Etc/GMT+5",{s:{f:"+0500",n:"+05"}}],["Etc/GMT+6",{s:{f:"+0600",n:"+06"}}],["Etc/GMT+7",{s:{f:"+0700",n:"+07"}}],["Etc/GMT+8",{s:{f:"+0800",n:"+08"}}],["Etc/GMT+9",{s:{f:"+0900",n:"+09"}}],["Etc/GMT0",{s:{f:"+0000",n:"GMT"}}],["Etc/Greenwich",{s:{f:"+0000",n:"GMT"}}],["Etc/UCT",{s:{f:"+0000",n:"UCT"}}],["Etc/Universal",{s:{f:"+0000",n:"UTC"}}],["Etc/UTC",{s:{f:"+0000",n:"UTC"}}],["Etc/Zulu",{s:{f:"+0000",n:"UTC"}}],["Europe/Amsterdam",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Andorra",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Astrakhan",{s:{f:"+0400",n:"+04"}}],["Europe/Athens",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Belgrade",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Berlin",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Bratislava",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Brussels",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Bucharest",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Budapest",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Busingen",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Chisinau",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Copenhagen",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Dublin",{s:{f:"+0100",t:"+0000",n:"GMT",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"IST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Gibraltar",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Guernsey",{s:{f:"+0100",t:"+0000",n:"GMT",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"BST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Helsinki",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Isle_of_Man",{s:{f:"+0100",t:"+0000",n:"GMT",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"BST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Istanbul",{s:{f:"+0300",n:"+03"}}],["Europe/Jersey",{s:{f:"+0100",t:"+0000",n:"GMT",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"BST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Kaliningrad",{s:{f:"+0200",n:"EET"}}],["Europe/Kiev",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Kirov",{s:{f:"+0300",n:"+03"}}],["Europe/Lisbon",{s:{f:"+0100",t:"+0000",n:"WET",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"WEST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Ljubljana",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/London",{s:{f:"+0100",t:"+0000",n:"GMT",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"BST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Luxembourg",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Madrid",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Malta",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Mariehamn",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Minsk",{s:{f:"+0300",n:"+03"}}],["Europe/Monaco",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Moscow",{s:{f:"+0300",n:"MSK"}}],["Europe/Nicosia",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Oslo",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Paris",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Podgorica",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Prague",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Riga",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Rome",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Samara",{s:{f:"+0400",n:"+04"}}],["Europe/San_Marino",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Sarajevo",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Saratov",{s:{f:"+0400",n:"+04"}}],["Europe/Simferopol",{s:{f:"+0300",n:"MSK"}}],["Europe/Skopje",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Sofia",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Stockholm",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Tallinn",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Tirane",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Ulyanovsk",{s:{f:"+0400",n:"+04"}}],["Europe/Uzhgorod",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Vaduz",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Vatican",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Vienna",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Vilnius",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Volgograd",{s:{f:"+0400",n:"+04"}}],["Europe/Warsaw",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Zagreb",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Zaporozhye",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Zurich",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Indian/Antananarivo",{s:{f:"+0300",n:"EAT"}}],["Indian/Chagos",{s:{f:"+0600",n:"+06"}}],["Indian/Christmas",{s:{f:"+0700",n:"+07"}}],["Indian/Cocos",{s:{f:"+0630",n:"+0630"}}],["Indian/Comoro",{s:{f:"+0300",n:"EAT"}}],["Indian/Kerguelen",{s:{f:"+0500",n:"+05"}}],["Indian/Mahe",{s:{f:"+0400",n:"+04"}}],["Indian/Maldives",{s:{f:"+0500",n:"+05"}}],["Indian/Mauritius",{s:{f:"+0400",n:"+04"}}],["Indian/Mayotte",{s:{f:"+0300",n:"EAT"}}],["Indian/Reunion",{s:{f:"+0400",n:"+04"}}],["Pacific/Apia",{s:{f:"+1400",t:"+1300",n:"+13",s:"19700405T040000",r:{m:4,d:"1SU"}},d:{f:"+1300",t:"+1400",n:"+14",s:"19700927T030000",r:{m:9,d:"-1SU"}}}],["Pacific/Auckland",{s:{f:"+1300",t:"+1200",n:"NZST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1200",t:"+1300",n:"NZDT",s:"19700927T020000",r:{m:9,d:"-1SU"}}}],["Pacific/Bougainville",{s:{f:"+1100",n:"+11"}}],["Pacific/Chatham",{s:{f:"+1345",t:"+1245",n:"+1245",s:"19700405T034500",r:{m:4,d:"1SU"}},d:{f:"+1245",t:"+1345",n:"+1345",s:"19700927T024500",r:{m:9,d:"-1SU"}}}],["Pacific/Chuuk",{s:{f:"+1000",n:"+10"}}],["Pacific/Easter",{s:{f:"-0500",t:"-0600",n:"-06",s:"19700404T220000",r:{m:4,d:"1SA"}},d:{f:"-0600",t:"-0500",n:"-05",s:"19700905T220000",r:{m:9,d:"1SA"}}}],["Pacific/Efate",{s:{f:"+1100",n:"+11"}}],["Pacific/Enderbury",{s:{f:"+1300",n:"+13"}}],["Pacific/Fakaofo",{s:{f:"+1300",n:"+13"}}],["Pacific/Fiji",{s:{f:"+1300",t:"+1200",n:"+12",s:"19700118T030000",r:{m:1,d:"-2SU"}},d:{f:"+1200",t:"+1300",n:"+13",s:"19701101T020000",r:{m:11,d:"1SU"}}}],["Pacific/Funafuti",{s:{f:"+1200",n:"+12"}}],["Pacific/Galapagos",{s:{f:"-0600",n:"-06"}}],["Pacific/Gambier",{s:{f:"-0900",n:"-09"}}],["Pacific/Guadalcanal",{s:{f:"+1100",n:"+11"}}],["Pacific/Guam",{s:{f:"+1000",n:"ChST"}}],["Pacific/Honolulu",{s:{f:"-1000",n:"HST"}}],["Pacific/Kiritimati",{s:{f:"+1400",n:"+14"}}],["Pacific/Kosrae",{s:{f:"+1100",n:"+11"}}],["Pacific/Kwajalein",{s:{f:"+1200",n:"+12"}}],["Pacific/Majuro",{s:{f:"+1200",n:"+12"}}],["Pacific/Marquesas",{s:{f:"-0930",n:"-0930"}}],["Pacific/Midway",{s:{f:"-1100",n:"SST"}}],["Pacific/Nauru",{s:{f:"+1200",n:"+12"}}],["Pacific/Niue",{s:{f:"-1100",n:"-11"}}],["Pacific/Norfolk",{s:{f:"+1100",n:"+11"}}],["Pacific/Noumea",{s:{f:"+1100",n:"+11"}}],["Pacific/Pago_Pago",{s:{f:"-1100",n:"SST"}}],["Pacific/Palau",{s:{f:"+0900",n:"+09"}}],["Pacific/Pitcairn",{s:{f:"-0800",n:"-08"}}],["Pacific/Pohnpei",{s:{f:"+1100",n:"+11"}}],["Pacific/Port_Moresby",{s:{f:"+1000",n:"+10"}}],["Pacific/Rarotonga",{s:{f:"-1000",n:"-10"}}],["Pacific/Saipan",{s:{f:"+1000",n:"ChST"}}],["Pacific/Tahiti",{s:{f:"-1000",n:"-10"}}],["Pacific/Tarawa",{s:{f:"+1200",n:"+12"}}],["Pacific/Tongatapu",{s:{f:"+1300",n:"+13"}}],["Pacific/Wake",{s:{f:"+1200",n:"+12"}}],["Pacific/Wallis",{s:{f:"+1200",n:"+12"}}]])),ct}var Jt;function Je(){if(Jt)return at;Jt=1,Object.defineProperty(at,"__esModule",{value:!0}),at.getZoneString=at.getZoneLines=void 0;const r=Ze();function t(a){const{n:i,f:o,t:n,r:l,s:u}=a;return[`TZNAME:${i}`,`TZOFFSETFROM:${o}`,`TZOFFSETTO:${n||o}`,`DTSTART:${u||r.defaultStart}`,...l?[`RRULE:FREQ=${l.f||"YEARLY"};BYMONTH=${l.m};BYDAY=${l.d}`]:[]]}function e(a,i=!0){const o=r.zonesMap.get(a);if(o){const{s:n,d:l}=o;return[...i?["BEGIN:VTIMEZONE"]:[],`TZID:${a}`,"BEGIN:STANDARD",...t(n),"END:STANDARD",...l?["BEGIN:DAYLIGHT",...t(l),"END:DAYLIGHT"]:[],...i?["END:VTIMEZONE"]:[]]}}at.getZoneLines=e;function s(a,i=!0){return e(a,i)?.join(`\r `)}return at.getZoneString=s,at}var $e=Je();class Nt{static fromString(t){return new Nt(t)}constructor(t){this.value=t}icaltype="binary";decodeValue(){return this._b64_decode(this.value)}setEncodedValue(t){this.value=this._b64_encode(t)}_b64_encode(t){let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",s,a,i,o,n,l,u,c,d=0,m=0,p="",y=[];if(!t)return t;do s=t.charCodeAt(d++),a=t.charCodeAt(d++),i=t.charCodeAt(d++),c=s<<16|a<<8|i,o=c>>18&63,n=c>>12&63,l=c>>6&63,u=c&63,y[m++]=e.charAt(o)+e.charAt(n)+e.charAt(l)+e.charAt(u);while(d>16&255,a=c>>8&255,i=c&255,l==64?y[m++]=String.fromCharCode(s):u==64?y[m++]=String.fromCharCode(s,a):y[m++]=String.fromCharCode(s,a,i);while(ds)-(e0?-1:0}toString(){return this.start+"/"+(this.end||this.duration)}toJSON(){return[this.start.toString(),(this.end||this.duration).toString()]}toICALString(){return this.start.toICALString()+"/"+(this.end||this.duration).toICALString()}}class h{static _dowCache={};static _wnCache={};static daysInMonth(t,e){let s=[0,31,28,31,30,31,30,31,31,30,31,30,31],a=30;return t<1||t>12||(a=s[t],t==2&&(a+=h.isLeapYear(e))),a}static isLeapYear(t){return t<=1752?t%4==0:t%4==0&&t%100!=0||t%400==0}static fromDayOfYear(t,e){let s=e,a=t,i=new h;i.auto_normalize=!1;let o=h.isLeapYear(s)?1:0;if(a<1)return s--,o=h.isLeapYear(s)?1:0,a+=h.daysInYearPassedMonth[o][12],h.fromDayOfYear(a,s);if(a>h.daysInYearPassedMonth[o][12])return o=h.isLeapYear(s)?1:0,a-=h.daysInYearPassedMonth[o][12],s++,h.fromDayOfYear(a,s);i.year=s,i.isDate=!0;for(let n=11;n>=0;n--)if(a>h.daysInYearPassedMonth[o][n]){i.month=n+1,i.day=a-h.daysInYearPassedMonth[o][n];break}return i.auto_normalize=!0,i}static fromStringv2(t){return new h({year:parseInt(t.slice(0,4),10),month:parseInt(t.slice(5,7),10),day:parseInt(t.slice(8,10),10),isDate:!0})}static fromDateString(t){return new h({year:O(t.slice(0,4)),month:O(t.slice(5,7)),day:O(t.slice(8,10)),isDate:!0})}static fromDateTimeString(t,e){if(t.length<19)throw new Error('invalid date-time value: "'+t+'"');let s,a;t.slice(-1)==="Z"?s=T.utcTimezone:e&&(a=e.getParameter("tzid"),e.parent&&(e.parent.name==="standard"||e.parent.name==="daylight"?s=T.localTimezone:a&&(s=e.parent.getTimeZoneByID(a))));const i={year:O(t.slice(0,4)),month:O(t.slice(5,7)),day:O(t.slice(8,10)),hour:O(t.slice(11,13)),minute:O(t.slice(14,16)),second:O(t.slice(17,19))};return a&&!s&&(i.timezone=a),new h(i,s)}static fromString(t,e){return t.length>10?h.fromDateTimeString(t,e):h.fromDateString(t)}static fromJSDate(t,e){return new h().fromJSDate(t,e)}static fromData=function(t,e){return new h().fromData(t,e)};static now(){return h.fromJSDate(new Date,!1)}static weekOneStarts(t,e){let s=h.fromData({year:t,month:1,day:1,isDate:!0}),a=s.dayOfWeek(),i=e||h.DEFAULT_WEEK_START;return a>h.THURSDAY&&(s.day+=7),i>h.THURSDAY&&(s.day-=7),s.day-=a-i,s}static getDominicalLetter(t){let e="GFEDCBA",s=(t+(t/4|0)+(t/400|0)-(t/100|0)-1)%7;return h.isLeapYear(t)?e[(s+6)%7]+e[s]:e[s]}static#t=null;static get epochTime(){return this.#t||(this.#t=h.fromData({year:1970,month:1,day:1,hour:0,minute:0,second:0,isDate:!1,timezone:"Z"})),this.#t}static _cmp_attr(t,e,s){return t[s]>e[s]?1:t[s]=0){n.day=1,i!=0&&i--,o=n.day;let l=n.dayOfWeek(),u=t-l;u<0&&(u+=7),o+=u,o-=t,a=t}else{n.day=s;let l=n.dayOfWeek();i++,a=l-t,a<0&&(a+=7),a=s-a}return a+=i*7,o+a}isNthWeekDay(t,e){let s=this.dayOfWeek();return e===0&&s===t||this.nthWeekDay(t,e)===this.day}weekNumber(t){let e=(this.year<<12)+(this.month<<8)+(this.day<<3)+t;if(e in h._wnCache)return h._wnCache[e];let s,a=this.clone();a.isDate=!0;let i=this.year;a.month==12&&a.day>25?(s=h.weekOneStarts(i+1,t),a.compare(s)<0?s=h.weekOneStarts(i,t):i++):(s=h.weekOneStarts(i,t),a.compare(s)<0&&(s=h.weekOneStarts(--i,t)));let o=a.subtractDate(s).toSeconds()/86400,n=C(o/7)+1;return h._wnCache[e]=n,n}addDuration(t){let e=t.isNegative?-1:1,s=this.second,a=this.minute,i=this.hour,o=this.day;s+=e*t.seconds,a+=e*t.minutes,i+=e*t.hours,o+=e*t.days,o+=e*7*t.weeks,this.second=s,this.minute=a,this.hour=i,this.day=o,this._cachedUnixTime=null}subtractDate(t){let e=this.toUnixTime()+this.utcOffset(),s=t.toUnixTime()+t.utcOffset();return M.fromSeconds(e-s)}subtractDateTz(t){let e=this.toUnixTime(),s=t.toUnixTime();return M.fromSeconds(e-s)}compare(t){if(t instanceof K)return-1*t.compare(this);{let e=this.toUnixTime(),s=t.toUnixTime();return e>s?1:s>e?-1:0}}compareDateOnlyTz(t,e){let s=this.convertToZone(e),a=t.convertToZone(e),i=0;return(i=h._cmp_attr(s,a,"year"))!=0||(i=h._cmp_attr(s,a,"month"))!=0||(i=h._cmp_attr(s,a,"day"))!=0,i}convertToZone(t){let e=this.clone(),s=this.zone.tzid==t.tzid;return!this.isDate&&!s&&T.convert_time(e,this.zone,t),e.zone=t,e}utcOffset(){return this.zone==T.localTimezone||this.zone==T.utcTimezone?0:this.zone.utcOffset(this)}toICALString(){let t=this.toString();return t.length>10?b.icalendar.value["date-time"].toICAL(t):b.icalendar.value.date.toICAL(t)}toString(){let t=this.year+"-"+k(this.month)+"-"+k(this.day);return this.isDate||(t+="T"+k(this.hour)+":"+k(this.minute)+":"+k(this.second),this.zone===T.utcTimezone&&(t+="Z")),t}toJSDate(){return this.zone==T.localTimezone?this.isDate?new Date(this.year,this.month-1,this.day):new Date(this.year,this.month-1,this.day,this.hour,this.minute,this.second,0):new Date(this.toUnixTime()*1e3)}_normalize(){return this._time.isDate&&(this._time.hour=0,this._time.minute=0,this._time.second=0),this.adjust(0,0,0,0),this}adjust(t,e,s,a,i){let o,n,l=0,u=0,c,d,m,p,y,f=i||this._time;if(f.isDate||(c=f.second+a,f.second=c%60,o=C(c/60),f.second<0&&(f.second+=60,o--),d=f.minute+s+o,f.minute=d%60,n=C(d/60),f.minute<0&&(f.minute+=60,n--),m=f.hour+e+n,f.hour=m%24,l=C(m/24),f.hour<0&&(f.hour+=24,l--)),f.month>12?u=C((f.month-1)/12):f.month<1&&(u=C(f.month/12)-1),f.year+=u,f.month-=12*u,p=f.day+t+l,p>0)for(;y=h.daysInMonth(f.month,f.year),!(p<=y);)f.month++,f.month>12&&(f.year++,f.month=1),p-=y;else for(;p<=0;)f.month==1?(f.year--,f.month=12):f.month--,p+=h.daysInMonth(f.month,f.year);return f.day=p,this._cachedUnixTime=null,this}fromUnixTime(t){this.zone=T.utcTimezone;let e=new Date(t*1e3);this.year=e.getUTCFullYear(),this.month=e.getUTCMonth()+1,this.day=e.getUTCDate(),this._time.isDate?(this.hour=0,this.minute=0,this.second=0):(this.hour=e.getUTCHours(),this.minute=e.getUTCMinutes(),this.second=e.getUTCSeconds()),this._cachedUnixTime=null}toUnixTime(){if(this._cachedUnixTime!==null)return this._cachedUnixTime;let t=this.utcOffset(),e=Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second-t);return this._cachedUnixTime=e/1e3,this._cachedUnixTime}toJSON(){let t=["year","month","day","hour","minute","second","isDate"],e=Object.create(null),s=0,a=t.length,i;for(;s1)throw new it("invalid ical body. component began but did not end");return t=null,e.length==1?e[0]:e}g.property=function(r,t){let e={component:[[],[]],designSet:t||b.defaultSet};return g._handleContentLine(r,e),e.component[1][0]},g.component=function(r){return g(r)};class it extends Error{name=this.constructor.name}g.ParserError=it,g._handleContentLine=function(r,t){let e=r.indexOf(At),s=r.indexOf(xt),a,i,o,n,l={};s!==-1&&e!==-1&&s>e&&(s=-1);let u;if(s!==-1){if(o=r.slice(0,Math.max(0,s)).toLowerCase(),u=g._parseParameters(r.slice(Math.max(0,s)),0,t.designSet),u[2]==-1)throw new it("Invalid parameters in '"+r+"'");l=u[0];let U;if(typeof u[1]=="string"?U=u[1].length:U=u[1].reduce((ht,rt)=>ht+rt.length,0),a=U+u[2]+s,(i=r.slice(Math.max(0,a)).indexOf(At))!==-1)n=r.slice(Math.max(0,a+i+1));else throw new it("Missing parameter value in '"+r+"'")}else if(e!==-1){if(o=r.slice(0,Math.max(0,e)).toLowerCase(),n=r.slice(Math.max(0,e+1)),o==="begin"){let U=[n.toLowerCase(),[],[]];t.stack.length===1?t.component.push(U):t.component[2].push(U),t.stack.push(t.component),t.component=U,t.designSet||(t.designSet=b.getDesignSet(t.component[0]));return}else if(o==="end"){t.component=t.stack.pop();return}}else throw new it('invalid line (no token ";" or ":") "'+r+'"');let c,d=!1,m=!1,p,y,f;t.designSet.propertyGroups&&o.indexOf(".")!==-1?(y=o.split("."),l.group=y[0],f=y[1]):f=o,f in t.designSet.property&&(p=t.designSet.property[f],"multiValue"in p&&(d=p.multiValue),"structuredValue"in p&&(m=p.structuredValue),n&&"detectType"in p&&(c=p.detectType(n))),c||("value"in l?c=l.value.toLowerCase():p?c=p.defaultType:c=r0),delete l.value;let A;d&&m?(n=g._parseMultiValue(n,m,c,[],d,t.designSet,m),A=[f,l,c,n]):d?(A=[f,l,c],g._parseMultiValue(n,d,c,A,null,t.designSet,!1)):m?(n=g._parseMultiValue(n,m,c,[],null,t.designSet,m),A=[f,l,c,n]):(n=g._parseValue(n,c,t.designSet,!1),A=[f,l,c,n]),t.component[0]==="vcard"&&t.component[1].length===0&&!(o==="version"&&n==="4.0")&&(t.designSet=b.getDesignSet("vcard3")),t.component[1].push(A)},g._parseValue=function(r,t,e,s){return t in e.value&&"fromICAL"in e.value[t]?e.value[t].fromICAL(r,s):r},g._parseParameters=function(r,t,e){let s=t,a=0,i=s0,o={},n,l,u,c=-1,d,m,p;for(;a!==!1&&(a=r.indexOf(i,a+1))!==-1;){if(n=r.slice(s+1,a),n.length==0)throw new it("Empty parameter name in '"+r+"'");if(l=n.toLowerCase(),p=!1,m=!1,l in e.param&&e.param[l].valueType?d=e.param[l].valueType:d=a0,l in e.param&&(m=e.param[l].multiValue,e.param[l].multiValueSeparateDQuote&&(p=g._rfc6868Escape('"'+m+'"'))),r[a+1]==='"'){if(c=a+2,a=r.indexOf('"',c),m&&a!=-1){let A=!0;for(;A;)r[a+1]==m&&r[a+2]=='"'?a=r.indexOf('"',a+3):A=!1}if(a===-1)throw new it('invalid line (no matching double quote) "'+r+'"');u=r.slice(c,a),s=r.indexOf(xt,a);let f=r.indexOf(At,a);(s===-1||f!==-1&&s>f)&&(a=!1)}else{c=a+1;let f=r.indexOf(xt,c),A=r.indexOf(At,c);A!==-1&&f>A?(f=A,a=!1):f===-1?(A===-1?f=r.length:f=A,a=!1):(s=f,a=f),u=r.slice(c,f)}const y=u.length;if(u=g._rfc6868Escape(u),c+=y-u.length,m){let f=p||m;u=g._parseMultiValue(u,f,d,[],null,e)}else u=g._parseValue(u,d,e);m&&l in o?Array.isArray(o[l])?o[l].push(u):o[l]=[o[l],u]:o[l]=u}return[o,u,c]},g._rfc6868Escape=function(r){return r.replace(/\^['n^]/g,function(t){return i0[t]})},g._parseMultiValue=function(r,t,e,s,a,i,o){let n=0,l=0,u;if(t.length===0)return r;for(;(n=me(r,t,l))!==-1;)u=r.slice(l,n),a?u=g._parseMultiValue(u,a,e,[],null,i,o):u=g._parseValue(u,e,i,o),s.push(u),l=n+t.length;return u=r.slice(l),a?u=g._parseMultiValue(u,a,e,[],null,i,o):u=g._parseValue(u,e,i,o),s.push(u),s.length==1?s[0]:s},g._eachLine=function(r,t){let e=r.length,s=r.search(e0),a=s,i,o,n;do a=r.indexOf(` `,s)+1,a>1&&r[a-2]==="\r"?n=2:n=1,a===0&&(a=e,n=0),o=r[s],o===" "||o===" "?i+=r.slice(s+1,a-n):(i&&t(null,i),i=r.slice(s,a-n)),s=a;while(a!==e);i=i.trim(),i.length&&t(null,i)};const n0=["tzid","location","tznames","latitude","longitude"];class T{static _compare_change_fn(t,e){return t.yeare.year?1:t.monthe.month?1:t.daye.day?1:t.houre.hour?1:t.minutee.minute?1:t.seconde.second?1:0}static convert_time(t,e,s){if(t.isDate||e.tzid==s.tzid||e==T.localTimezone||s==T.localTimezone)return t.zone=s,t;let a=e.utcOffset(t);return t.adjust(0,0,0,-a),a=s.utcOffset(t),t.adjust(0,0,0,a),null}static fromData(t){return new T().fromData(t)}static#t=null;static get utcTimezone(){return this.#t||(this.#t=T.fromData({tzid:"UTC"})),this.#t}static#e=null;static get localTimezone(){return this.#e||(this.#e=T.fromData({tzid:"floating"})),this.#e}static adjust_change(t,e,s,a,i){return h.prototype.adjust.call(t,e,s,a,i,t)}static _minimumExpansionYear=-1;static EXTRA_COVERAGE=5;constructor(t){this.wrappedJSObject=this,this.fromData(t)}tzid="";location="";tznames="";latitude=0;longitude=0;component=null;expandedUntilYear=0;icalclass="icaltimezone";fromData(t){if(this.expandedUntilYear=0,this.changes=[],t instanceof z)this.component=t;else{if(t&&"component"in t)if(typeof t.component=="string"){let e=g(t.component);this.component=new z(e)}else t.component instanceof z?this.component=t.component:this.component=null;for(let e of n0)t&&e in t&&(this[e]=t[e])}return this.component instanceof z&&!this.tzid&&(this.tzid=this.component.getFirstPropertyValue("tzid")),this}utcOffset(t){if(this==T.utcTimezone||this==T.localTimezone||(this._ensureCoverage(t.year),!this.changes.length))return 0;let e={year:t.year,month:t.month,day:t.day,hour:t.hour,minute:t.minute,second:t.second},s=this._findNearbyChange(e),a=-1,i=1;for(;;){let n=lt(this.changes[s],!0);if(n.utcOffset=0?a=s:i=-1,i==-1&&a!=-1)break;if(s+=i,s<0)return 0;if(s>=this.changes.length)break}let o=this.changes[a];if(o.utcOffset-o.prevUtcOffset<0&&a>0){let n=lt(o,!0);if(T.adjust_change(n,0,0,0,n.prevUtcOffset),T._compare_change_fn(e,n)<0){let l=this.changes[a-1],u=!1;o.is_daylight!=u&&l.is_daylight==u&&(o=l)}}return o.utcOffset}_findNearbyChange(t){let e=nt(this.changes,t,T._compare_change_fn);return e>=this.changes.length?this.changes.length-1:e}_ensureCoverage(t){if(T._minimumExpansionYear==-1){let s=h.now();T._minimumExpansionYear=s.year}let e=t;if(ee||!d));)i.year=d.year,i.month=d.month,i.day=d.day,i.hour=d.hour,i.minute=d.minute,i.second=d.second,i.isDate=d.isDate,T.adjust_change(i,0,0,0,-i.prevUtcOffset),s.push(i)}}return s}toString(){return this.tznames?this.tznames:this.tzid}}let N=null;const wt={get count(){return N===null?0:Object.keys(N).length},reset:function(){N=Object.create(null);let r=T.utcTimezone;N.Z=r,N.UTC=r,N.GMT=r},_hard_reset:function(){N=null},has:function(r){return N===null?!1:!!N[r]},get:function(r){return N===null&&this.reset(),N[r]},register:function(r,t){if(N===null&&this.reset(),typeof r=="string"&&t instanceof T&&([r,t]=[t,r]),t||(r instanceof T?t=r.tzid:r.name==="vtimezone"&&(r=new T(r),t=r.tzid)),!t)throw new TypeError("Neither a timezone nor a name was passed");if(r instanceof T)N[t]=r;else throw new TypeError("timezone must be ICAL.Timezone or ICAL.Component")},remove:function(r){return N===null?null:delete N[r]}};function o0(r){let t,e,s,a,i;if(!r||r.name!=="vcalendar")return r;for(t=r.getAllSubcomponents(),e=[],s={},i=0;i"u"))return r instanceof t?r:new t(r)}function me(r,t,e){for(;(e=r.indexOf(t,e))!==-1;)if(e>0&&r[e-1]==="\\")e+=1;else return e;return-1}function nt(r,t,e){if(!r.length)return 0;let s=0,a=r.length-1,i,o;for(;s<=a;)if(i=s+Math.floor((a-s)/2),o=e(t,r[i]),o<0)a=i-1;else if(o>0)s=i+1;else break;return o<0?i:o>0?i+1:i}function lt(r,t){if(!r||typeof r!="object")return r;if(r instanceof Date)return new Date(r.getTime());if("clone"in r)return r.clone();if(Array.isArray(r)){let e=[];for(let s=0;s65535?2:1:(t+=L.newLineChar+" "+e.slice(0,Math.max(0,s)),e=e.slice(Math.max(0,s)),s=a=0)}return t.slice(L.newLineChar.length+1)}function k(r){switch(typeof r!="string"&&(typeof r=="number"&&(r=parseInt(r)),r=String(r)),r.length){case 0:return"00";case 1:return"0"+r;default:return r}}function C(r){return r<0?Math.ceil(r):Math.floor(r)}function ut(r,t){for(let e in r){let s=Object.getOwnPropertyDescriptor(r,e);s&&!Object.getOwnPropertyDescriptor(t,e)&&Object.defineProperty(t,e,s)}return t}var l0=Object.freeze({__proto__:null,binsearchInsert:nt,clone:lt,extend:ut,foldline:fe,formatClassType:q,isStrictlyNaN:pt,pad2:k,strictParseInt:O,trunc:C,unescapedIndexOf:me,updateTimezones:o0});class V{static fromString(t){let e={};return e.factor=t[0]==="+"?1:-1,e.hours=O(t.slice(1,3)),e.minutes=O(t.slice(4,6)),new V(e)}static fromSeconds(t){let e=new V;return e.fromSeconds(t),e}constructor(t){this.fromData(t)}hours=0;minutes=0;factor=1;icaltype="utc-offset";clone(){return V.fromSeconds(this.toSeconds())}fromData(t){if(t)for(let[e,s]of Object.entries(t))this[e]=s;this._normalize()}fromSeconds(t){let e=Math.abs(t);return this.factor=t<0?-1:1,this.hours=C(e/3600),e-=this.hours*3600,this.minutes=C(e/60),this}toSeconds(){return this.factor*(60*this.minutes+3600*this.hours)}compare(t){let e=this.toSeconds(),s=t.toSeconds();return(e>s)-(s>e)}_normalize(){let t=this.toSeconds(),e=this.factor;for(;t<-43200;)t+=97200;for(;t>50400;)t-=97200;this.fromSeconds(t),t==0&&(this.factor=e)}toICALString(){return b.icalendar.value["utc-offset"].toICAL(this.toString())}toString(){return(this.factor==1?"+":"-")+k(this.hours)+":"+k(this.minutes)}}class tt extends h{static fromDateAndOrTimeString(t,e){function s(f,A,U){return f?O(f.slice(A,A+U)):null}let a=t.split("T"),i=a[0],o=a[1],n=o?b.vcard.value.time._splitZone(o):[],l=n[0],u=n[1],c=i?i.length:0,d=u?u.length:0,m=i&&i[0]=="-"&&i[1]=="-",p=u&&u[0]=="-",y={year:m?null:s(i,0,4),month:m&&(c==4||c==7)?s(i,2,2):c==7||c==10?s(i,5,2):null,day:c==5?s(i,3,2):c==7&&m?s(i,5,2):c==10?s(i,8,2):null,hour:p?null:s(u,0,2),minute:p&&d==3?s(u,1,2):d>4?p?s(u,1,2):s(u,3,2):null,second:d==4?s(u,2,2):d==6?s(u,4,2):d==8?s(u,6,2):null};return l=="Z"?l=T.utcTimezone:l&&l[3]==":"?l=V.fromString(l):l=null,new tt(y,l,e)}constructor(t,e,s){super(t,e),this.icaltype=s||"date-and-or-time"}icalclass="vcardtime";icaltype="date-and-or-time";clone(){return new tt(this._time,this.zone,this.icaltype)}_normalize(){return this}utcOffset(){return this.zone instanceof V?this.zone.toSeconds():h.prototype.utcOffset.apply(this,arguments)}toICALString(){return b.vcard.value[this.icaltype].toICAL(this.toString())}toString(){let t=this.year,e=this.month,s=this.day,a=this.hour,i=this.minute,o=this.second,n=t!==null,l=e!==null,u=s!==null,c=a!==null,d=i!==null,m=o!==null,p=(n?k(t)+(l||u?"-":""):l||u?"--":"")+(l?k(e):"")+(u?"-"+k(s):""),y=(c?k(a):"-")+(c&&d?":":"")+(d?k(i):"")+(!c&&!d?"-":"")+(d&&m?":":"")+(m?k(o):""),f;switch(this.zone===T.utcTimezone?f="Z":this.zone instanceof V?f=this.zone.toString():this.zone===T.localTimezone?f="":this.zone instanceof T?f=V.fromSeconds(this.zone.utcOffset(this)).toString():f="",this.icaltype){case"time":return y+f;case"date-and-or-time":case"date-time":return p+(y=="--"?"":"T"+y+f);case"date":return p}return null}}class R{static _indexMap={BYSECOND:0,BYMINUTE:1,BYHOUR:2,BYDAY:3,BYMONTHDAY:4,BYYEARDAY:5,BYWEEKNO:6,BYMONTH:7,BYSETPOS:8};static _expandMap={SECONDLY:[1,1,1,1,1,1,1,1],MINUTELY:[2,1,1,1,1,1,1,1],HOURLY:[2,2,1,1,1,1,1,1],DAILY:[2,2,2,1,1,1,1,1],WEEKLY:[2,2,2,2,3,3,1,1],MONTHLY:[2,2,2,2,2,3,3,1],YEARLY:[2,2,2,2,2,2,2,2]};static UNKNOWN=0;static CONTRACT=1;static EXPAND=2;static ILLEGAL=3;constructor(t){this.fromData(t)}completed=!1;rule=null;dtstart=null;last=null;occurrence_number=0;by_indices=null;initialized=!1;by_data=null;days=null;days_index=0;fromData(t){if(this.rule=q(t.rule,w),!this.rule)throw new Error("iterator requires a (ICAL.Recur) rule");if(this.dtstart=q(t.dtstart,h),!this.dtstart)throw new Error("iterator requires a (ICAL.Time) dtstart");if(t.by_data?this.by_data=t.by_data:this.by_data=lt(this.rule.parts,!0),t.occurrence_number&&(this.occurrence_number=t.occurrence_number),this.days=t.days||[],t.last&&(this.last=q(t.last,h)),this.by_indices=t.by_indices,this.by_indices||(this.by_indices={BYSECOND:0,BYMINUTE:0,BYHOUR:0,BYDAY:0,BYMONTH:0,BYWEEKNO:0,BYMONTHDAY:0}),this.initialized=t.initialized||!1,!this.initialized)try{this.init()}catch(e){if(e instanceof gt)this.completed=!0;else throw e}}init(){this.initialized=!0,this.last=this.dtstart.clone();let t=this.by_data;if("BYDAY"in t&&this.sort_byday_rules(t.BYDAY),"BYYEARDAY"in t&&("BYMONTH"in t||"BYWEEKNO"in t||"BYMONTHDAY"in t))throw new Error("Invalid BYYEARDAY rule");if("BYWEEKNO"in t&&"BYMONTHDAY"in t)throw new Error("BYWEEKNO does not fit to BYMONTHDAY");if(this.rule.freq=="MONTHLY"&&("BYYEARDAY"in t||"BYWEEKNO"in t))throw new Error("For MONTHLY recurrences neither BYYEARDAY nor BYWEEKNO may appear");if(this.rule.freq=="WEEKLY"&&("BYYEARDAY"in t||"BYMONTHDAY"in t))throw new Error("For WEEKLY recurrences neither BYMONTHDAY nor BYYEARDAY may appear");if(this.rule.freq!="YEARLY"&&"BYYEARDAY"in t)throw new Error("BYYEARDAY may only appear in YEARLY rules");if(this.last.second=this.setup_defaults("BYSECOND","SECONDLY",this.dtstart.second),this.last.minute=this.setup_defaults("BYMINUTE","MINUTELY",this.dtstart.minute),this.last.hour=this.setup_defaults("BYHOUR","HOURLY",this.dtstart.hour),this.last.day=this.setup_defaults("BYMONTHDAY","DAILY",this.dtstart.day),this.last.month=this.setup_defaults("BYMONTH","MONTHLY",this.dtstart.month),this.rule.freq=="WEEKLY")if("BYDAY"in t){let[,e]=this.ruleDayOfWeek(t.BYDAY[0],this.rule.wkst),s=e-this.last.dayOfWeek(this.rule.wkst);(this.last.dayOfWeek(this.rule.wkst)=0||s<0)&&(this.last.day+=s)}else{let e=w.numericDayToIcalDay(this.dtstart.dayOfWeek());t.BYDAY=[e]}if(this.rule.freq=="YEARLY"){const e=this.rule.until?this.rule.until.year:2e4;for(;this.last.year<=e&&(this.expand_year_days(this.last.year),!(this.days.length>0));)this.increment_year(this.rule.interval);if(this.days.length==0)throw new gt;if(!this._nextByYearDay()&&!this.next_year()&&!this.next_year()&&!this.next_year())throw new gt}if(this.rule.freq=="MONTHLY"){if(this.has_by_data("BYDAY")){let e=null,s=this.last.clone(),a=h.daysInMonth(this.last.month,this.last.year);for(let i of this.by_data.BYDAY){this.last=s.clone();let[o,n]=this.ruleDayOfWeek(i),l=this.last.nthWeekDay(n,o);if(o>=6||o<=-6)throw new Error("Malformed values in BYDAY part");if(l>a||l<=0){if(e&&e.month==s.month)continue;for(;l>a||l<=0;)this.increment_month(),a=h.daysInMonth(this.last.month,this.last.year),l=this.last.nthWeekDay(n,o)}this.last.day=l,(!e||this.last.compare(e)<0)&&(e=this.last.clone())}if(this.last=e.clone(),this.has_by_data("BYMONTHDAY")&&this._byDayAndMonthDay(!0),this.last.day>a||this.last.day==0)throw new Error("Malformed values in BYDAY part")}else if(this.has_by_data("BYMONTHDAY")){this.last.day=1;let e=this.normalizeByMonthDayRules(this.last.year,this.last.month,this.rule.parts.BYMONTHDAY).filter(s=>s>=this.last.day);if(e.length)this.last.day=e[0],this.by_data.BYMONTHDAY=e;else if(!this.next_month()&&!this.next_month()&&!this.next_month())throw new gt}}}next(t=!1){let e=this.last?this.last.clone():null;if((this.rule.count&&this.occurrence_number>=this.rule.count||this.rule.until&&this.last.compare(this.rule.until)>0)&&(this.completed=!0),this.completed)return null;if(this.occurrence_number==0&&this.last.compare(this.dtstart)>=0)return this.occurrence_number++,this.last;let s,a=0;do switch(s=1,this.rule.freq){case"SECONDLY":this.next_second();break;case"MINUTELY":this.next_minute();break;case"HOURLY":this.next_hour();break;case"DAILY":this.next_day();break;case"WEEKLY":this.next_week();break;case"MONTHLY":if(s=this.next_month(),s)a=0;else if(++a==336)return this.completed=!0,null;break;case"YEARLY":if(s=this.next_year(),s)a=0;else if(++a==28)return this.completed=!0,null;break;default:return null}while(!this.check_contracting_rules()||this.last.compare(this.dtstart)<0||!s);if(this.last.compare(e)==0){if(t)throw new Error("Same occurrence found twice, protecting you from death by recursion");this.next(!0)}return this.rule.until&&this.last.compare(this.rule.until)>0?(this.completed=!0,null):(this.occurrence_number++,this.last)}next_second(){return this.next_generic("BYSECOND","SECONDLY","second","minute")}increment_second(t){return this.increment_generic(t,"second",60,"minute")}next_minute(){return this.next_generic("BYMINUTE","MINUTELY","minute","hour","next_second")}increment_minute(t){return this.increment_generic(t,"minute",60,"hour")}next_hour(){return this.next_generic("BYHOUR","HOURLY","hour","monthday","next_minute")}increment_hour(t){this.increment_generic(t,"hour",24,"monthday")}next_day(){let t=this.rule.freq=="DAILY";return this.next_hour()==0||(t?this.increment_monthday(this.rule.interval):this.increment_monthday(1)),0}next_week(){let t=0;if(this.next_weekday_by_week()==0)return t;if(this.has_by_data("BYWEEKNO")){this.by_indices.BYWEEKNO++,this.by_indices.BYWEEKNO==this.by_data.BYWEEKNO.length&&(this.by_indices.BYWEEKNO=0,t=1),this.last.month=1,this.last.day=1;let e=this.by_data.BYWEEKNO[this.by_indices.BYWEEKNO];this.last.day+=7*e,t&&this.increment_year(1)}else this.increment_monthday(7*this.rule.interval);return t}normalizeByMonthDayRules(t,e,s){let a=h.daysInMonth(e,t),i=[],o=0,n=s.length,l;for(;oa)){if(l<0)l=a+(l+1);else if(l===0)continue;i.indexOf(l)===-1&&i.push(l)}}return i.sort(function(u,c){return u-c})}_byDayAndMonthDay(t){let e,s=this.by_data.BYDAY,a,i=0,o,n=s.length,l=0,u,c=this,d=this.last.day;function m(){for(u=h.daysInMonth(c.last.month,c.last.year),e=c.normalizeByMonthDayRules(c.last.year,c.last.month,c.by_data.BYMONTHDAY),o=e.length;e[i]<=d&&!(t&&e[i]==d)&&iu){p();continue}let f=e[i++];if(f>=a)d=f;else{p();continue}for(let A=0;Ae&&(this.last.day=1,this.increment_month(),this.is_day_in_byday(this.last)?(!this.has_by_data("BYSETPOS")||this.check_set_position(1))&&(t=1):t=0)}else if(this.has_by_data("BYMONTHDAY")){if(this.by_indices.BYMONTHDAY++,this.by_indices.BYMONTHDAY>=this.by_data.BYMONTHDAY.length&&(this.by_indices.BYMONTHDAY=0,this.increment_month(),this.by_indices.BYMONTHDAY>=this.by_data.BYMONTHDAY.length))return 0;let e=h.daysInMonth(this.last.month,this.last.year),s=this.by_data.BYMONTHDAY[this.by_indices.BYMONTHDAY];s<0&&(s=e+s+1),s>e?(this.last.day=1,t=this.is_day_in_byday(this.last)):this.last.day=s}else{this.increment_month();let e=h.daysInMonth(this.last.month,this.last.year);this.by_data.BYMONTHDAY[0]>e?t=0:this.last.day=this.by_data.BYMONTHDAY[0]}return t}next_weekday_by_week(){let t=0;if(this.next_hour()==0)return t;if(!this.has_by_data("BYDAY"))return 1;for(;;){let e=new h;this.by_indices.BYDAY++,this.by_indices.BYDAY==Object.keys(this.by_data.BYDAY).length&&(this.by_indices.BYDAY=0,t=1);let s=this.by_data.BYDAY[this.by_indices.BYDAY],a=this.ruleDayOfWeek(s)[1];a-=this.rule.wkst,a<0&&(a+=7),e.year=this.last.year,e.month=this.last.month,e.day=this.last.day;let i=e.startDoyWeek(this.rule.wkst);if(a+i<1&&!t)continue;let o=h.fromDayOfYear(i+a,this.last.year);return this.last.year=o.year,this.last.month=o.month,this.last.day=o.day,t}}next_year(){return this.next_hour()==0||(this.days.length==0||++this.days_index==this.days.length)&&(this.days_index=0,this.increment_year(this.rule.interval),this.has_by_data("BYMONTHDAY")&&(this.by_data.BYMONTHDAY=this.normalizeByMonthDayRules(this.last.year,this.last.month,this.rule.parts.BYMONTHDAY)),this.expand_year_days(this.last.year),this.days.length==0)?0:this._nextByYearDay()}_nextByYearDay(){let t=this.days[this.days_index],e=this.last.year;if(Math.abs(t)==366&&!h.isLeapYear(this.last.year))return 0;t<1&&(t+=1,e+=1);let s=h.fromDayOfYear(t,e);return this.last.day=s.day,this.last.month=s.month,1}ruleDayOfWeek(t,e){let s=t.match(/([+-]?[0-9])?(MO|TU|WE|TH|FR|SA|SU)/);if(s){let a=parseInt(s[1]||0,10);return t=w.icalDayToNumericDay(s[2],e),[a,t]}else return[0,0]}next_generic(t,e,s,a,i){let o=t in this.by_data,n=this.rule.freq==e,l=0;if(i&&this[i]()==0)return l;if(o){this.by_indices[t]++;let u=this.by_data[t];this.by_indices[t]==u.length&&(this.by_indices[t]=0,l=1),this.last[s]=u[this.by_indices[t]]}else n&&this["increment_"+s](this.rule.interval);return o&&l&&n&&this["increment_"+a](1),l}increment_monthday(t){for(let e=0;es&&(this.last.day-=s,this.increment_month())}}increment_month(){if(this.last.day=1,this.has_by_data("BYMONTH"))this.by_indices.BYMONTH++,this.by_indices.BYMONTH==this.by_data.BYMONTH.length&&(this.by_indices.BYMONTH=0,this.increment_year(1)),this.last.month=this.by_data.BYMONTH[this.by_indices.BYMONTH];else{this.rule.freq=="MONTHLY"?this.last.month+=this.rule.interval:this.last.month++,this.last.month--;let t=C(this.last.month/12);this.last.month%=12,this.last.month++,t!=0&&this.increment_year(t)}this.has_by_data("BYMONTHDAY")&&(this.by_data.BYMONTHDAY=this.normalizeByMonthDayRules(this.last.year,this.last.month,this.rule.parts.BYMONTHDAY))}increment_year(t){this.last.day=1,this.last.year+=t}increment_generic(t,e,s,a){this.last[e]+=t;let i=C(this.last[e]/s);this.last[e]%=s,i!=0&&this["increment_"+a](i)}has_by_data(t){return t in this.rule.parts}expand_year_days(t){let e=new h;this.days=[];let s={},a=["BYDAY","BYWEEKNO","BYMONTHDAY","BYMONTH","BYYEARDAY"];for(let n of a)n in this.rule.parts&&(s[n]=this.rule.parts[n]);if("BYMONTH"in s&&"BYWEEKNO"in s){let n=1,l={};e.year=t,e.isDate=!0;for(let u=0;u0?(A=U+(y-1)*7,A<=l&&this.days.push(c+A)):(A=ht+(y+1)*7,A>0&&this.days.push(c+A))}}this.days.sort(function(n,l){return n-l})}else if(i==2&&"BYDAY"in s&&"BYMONTHDAY"in s){let n=this.expand_by_day(t);for(let l of n){let u=h.fromDayOfYear(l,t);this.by_data.BYMONTHDAY.indexOf(u.day)>=0&&this.days.push(l)}}else if(i==3&&"BYDAY"in s&&"BYMONTHDAY"in s&&"BYMONTH"in s){let n=this.expand_by_day(t);for(let l of n){let u=h.fromDayOfYear(l,t);this.by_data.BYMONTH.indexOf(u.month)>=0&&this.by_data.BYMONTHDAY.indexOf(u.day)>=0&&this.days.push(l)}}else if(i==2&&"BYDAY"in s&&"BYWEEKNO"in s){let n=this.expand_by_day(t);for(let l of n){let u=h.fromDayOfYear(l,t).weekNumber(this.rule.wkst);this.by_data.BYWEEKNO.indexOf(u)&&this.days.push(l)}}else if(!(i==3&&"BYDAY"in s&&"BYWEEKNO"in s&&"BYMONTHDAY"in s))if(i==1&&"BYYEARDAY"in s)this.days=this.days.concat(this.by_data.BYYEARDAY);else if(i==2&&"BYYEARDAY"in s&&"BYDAY"in s){let n=h.isLeapYear(t)?366:365,l=new Set(this.expand_by_day(t));for(let u of this.by_data.BYYEARDAY)u<0&&(u+=n+1),l.has(u)&&this.days.push(u)}else this.days=[]}let o=h.isLeapYear(t)?366:365;return this.days.sort((n,l)=>(n<0&&(n+=o+1),l<0&&(l+=o+1),n-l)),0}expand_by_day(t){let e=[],s=this.last.clone();s.year=t,s.month=1,s.day=1,s.isDate=!0;let a=s.dayOfWeek();s.month=12,s.day=31,s.isDate=!0;let i=s.dayOfWeek(),o=s.dayOfYear();for(let n of this.by_data.BYDAY){let l=this.ruleDayOfWeek(n),u=l[0],c=l[1];if(u==0){let d=(c+7-a)%7+1;for(let m=d;m<=o;m+=7)e.push(m)}else if(u>0){let d;c>=a?d=c-a+1:d=c-a+8,e.push(d+(u-1)*7)}else{let d;u=-u,c<=i?d=o-i+c:d=o-i+c-7,e.push(d-(u-1)*7)}}return e}is_day_in_byday(t){if(this.by_data.BYDAY)for(let e of this.by_data.BYDAY){let s=this.ruleDayOfWeek(e),a=s[0],i=s[1],o=t.dayOfWeek();if(a==0&&i==o||t.nthWeekDay(i,a)==t.day)return 1}return 0}check_set_position(t){return this.has_by_data("BYSETPOS")?this.by_data.BYSETPOS.indexOf(t)!==-1:!1}sort_byday_rules(t){for(let e=0;ei){let o=t[e];t[e]=t[s],t[s]=o}}}check_contract_restriction(t,e){let s=R._indexMap[t],a=R._expandMap[this.rule.freq][s],i=!1;if(t in this.by_data&&a==R.CONTRACT){let o=this.by_data[t];for(let n of o)if(n==e){i=!0;break}}else i=!0;return i}check_contracting_rules(){let t=this.last.dayOfWeek(),e=this.last.weekNumber(this.rule.wkst),s=this.last.dayOfYear();return this.check_contract_restriction("BYSECOND",this.last.second)&&this.check_contract_restriction("BYMINUTE",this.last.minute)&&this.check_contract_restriction("BYHOUR",this.last.hour)&&this.check_contract_restriction("BYDAY",w.numericDayToIcalDay(t))&&this.check_contract_restriction("BYWEEKNO",e)&&this.check_contract_restriction("BYMONTHDAY",this.last.day)&&this.check_contract_restriction("BYMONTH",this.last.month)&&this.check_contract_restriction("BYYEARDAY",s)}setup_defaults(t,e,s){let a=R._indexMap[t];return R._expandMap[this.rule.freq][a]!=R.CONTRACT&&(t in this.by_data||(this.by_data[t]=[s]),this.rule.freq!=e)?this.by_data[t][0]:s}toJSON(){let t=Object.create(null);return t.initialized=this.initialized,t.rule=this.rule.toJSON(),t.dtstart=this.dtstart.toJSON(),t.by_data=this.by_data,t.days=this.days,t.last=this.last.toJSON(),t.by_indices=this.by_indices,t.occurrence_number=this.occurrence_number,t}}class gt extends Error{constructor(){super("Recurrence rule has no valid occurrences")}}const u0=/^(SU|MO|TU|WE|TH|FR|SA)$/,d0=/^([+-])?(5[0-3]|[1-4][0-9]|[1-9])?(SU|MO|TU|WE|TH|FR|SA)$/,pe={SU:h.SUNDAY,MO:h.MONDAY,TU:h.TUESDAY,WE:h.WEDNESDAY,TH:h.THURSDAY,FR:h.FRIDAY,SA:h.SATURDAY},c0=Object.fromEntries(Object.entries(pe).map(r=>r.reverse())),$t=["SECONDLY","MINUTELY","HOURLY","DAILY","WEEKLY","MONTHLY","YEARLY"];class w{static fromString(t){let e=this._stringToData(t,!1);return new w(e)}static fromData(t){return new w(t)}static _stringToData(t,e){let s=Object.create(null),a=t.split(";"),i=a.length;for(let o=0;o7&&(a-=7),c0[a]}constructor(t){this.wrappedJSObject=this,this.parts={},t&&typeof t=="object"&&this.fromData(t)}parts=null;interval=1;wkst=h.MONDAY;until=null;count=null;freq=null;icalclass="icalrecur";icaltype="recur";iterator(t){return new R({rule:this,dtstart:t})}clone(){return new w(this.toJSON())}isFinite(){return!!(this.count||this.until)}isByCount(){return!!(this.count&&!this.until)}addComponent(t,e){let s=t.toUpperCase();s in this.parts?this.parts[s].push(e):this.parts[s]=[e]}setComponent(t,e){this.parts[t.toUpperCase()]=e.slice()}getComponent(t){let e=t.toUpperCase();return e in this.parts?this.parts[e].slice():[]}getNextOccurrence(t,e){let s=this.iterator(t),a;do a=s.next();while(a&&a.compare(e)<=0);return a&&e.zone&&(a.zone=e.zone),a}fromData(t){for(let e in t){let s=e.toUpperCase();s in kt?Array.isArray(t[e])?this.parts[s]=t[e]:this.parts[s]=[t[e]]:this[e]=t[e]}this.interval&&typeof this.interval!="number"&&It.INTERVAL(this.interval,this),this.wkst&&typeof this.wkst!="number"&&(this.wkst=w.icalDayToNumericDay(this.wkst)),this.until&&!(this.until instanceof h)&&(this.until=h.fromString(this.until))}toJSON(){let t=Object.create(null);t.freq=this.freq,this.count&&(t.count=this.count),this.interval>1&&(t.interval=this.interval);for(let[e,s]of Object.entries(this.parts))Array.isArray(s)&&s.length==1?t[e.toLowerCase()]=s[0]:t[e.toLowerCase()]=lt(s);return this.until&&(t.until=this.until.toString()),"wkst"in this&&this.wkst!==h.DEFAULT_WEEK_START&&(t.wkst=w.numericDayToIcalDay(this.wkst)),t}toString(){let t="FREQ="+this.freq;this.count&&(t+=";COUNT="+this.count),this.interval>1&&(t+=";INTERVAL="+this.interval);for(let[e,s]of Object.entries(this.parts))t+=";"+e+"="+s;return this.until&&(t+=";UNTIL="+this.until.toICALString()),"wkst"in this&&this.wkst!==h.DEFAULT_WEEK_START&&(t+=";WKST="+w.numericDayToIcalDay(this.wkst)),t}}function Z(r,t,e,s){let a=s;if(s[0]==="+"&&(a=s.slice(1)),a=O(a),t!==void 0&&s '+t);if(e!==void 0&&s>e)throw new Error(r+': invalid value "'+s+'" must be < '+t);return a}const It={FREQ:function(r,t,e){if($t.indexOf(r)!==-1)t.freq=r;else throw new Error('invalid frequency "'+r+'" expected: "'+$t.join(", ")+'"')},COUNT:function(r,t,e){t.count=O(r)},INTERVAL:function(r,t,e){t.interval=O(r),t.interval<1&&(t.interval=1)},UNTIL:function(r,t,e){r.length>10?t.until=b.icalendar.value["date-time"].fromICAL(r):t.until=b.icalendar.value.date.fromICAL(r),e||(t.until=h.fromString(t.until))},WKST:function(r,t,e){if(u0.test(r))t.wkst=w.icalDayToNumericDay(r);else throw new Error('invalid WKST value "'+r+'"')}},kt={BYSECOND:Z.bind(void 0,"BYSECOND",0,60),BYMINUTE:Z.bind(void 0,"BYMINUTE",0,59),BYHOUR:Z.bind(void 0,"BYHOUR",0,23),BYDAY:function(r){if(d0.test(r))return r;throw new Error('invalid BYDAY value "'+r+'"')},BYMONTHDAY:Z.bind(void 0,"BYMONTHDAY",-31,31),BYYEARDAY:Z.bind(void 0,"BYYEARDAY",-366,366),BYWEEKNO:Z.bind(void 0,"BYWEEKNO",-53,53),BYMONTH:Z.bind(void 0,"BYMONTH",1,12),BYSETPOS:Z.bind(void 0,"BYSETPOS",-366,366)},h0=/\\\\|\\;|\\,|\\[Nn]/g,m0=/\\|;|,|\n/g,Xt=/\\\\|\\,|\\[Nn]/g,Qt=/\\|,|\n/g;function Vt(r,t){return{matches:/.*/,fromICAL:function(e,s){return p0(e,r,s)},toICAL:function(e,s){let a=t;return s&&(a=new RegExp(a.source+"|"+s,a.flags)),e.replace(a,function(i){switch(i){case"\\":return"\\\\";case";":return"\\;";case",":return"\\,";case` diff --git a/dist/encryption-encryption.mjs b/dist/encryption-encryption.mjs index 29bb15f8cce..10448153a72 100644 --- a/dist/encryption-encryption.mjs +++ b/dist/encryption-encryption.mjs @@ -1,2 +1,2 @@ -import{a as o,b as i}from"./index-B-dGqfIG.chunk.mjs";import{c as r}from"./index-BLNGy7h5.chunk.mjs";import{s as a}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import"./Web-BwmPK40i.chunk.mjs";import"./public-C1mLBHT3.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";window.addEventListener("DOMContentLoaded",async function(){if(o()===null)return;const{data:t}=await r.get(i("/apps/encryption/ajax/getStatus"));t.status==="interactionNeeded"&&a(t.data.message)}); +import{a as o,b as i}from"./index-B-dGqfIG.chunk.mjs";import{c as r}from"./index-BLNGy7h5.chunk.mjs";import{s as a}from"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import"./Web-BwmPK40i.chunk.mjs";import"./public-C1mLBHT3.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";window.addEventListener("DOMContentLoaded",async function(){if(o()===null)return;const{data:t}=await r.get(i("/apps/encryption/ajax/getStatus"));t.status==="interactionNeeded"&&a(t.data.message)}); //# sourceMappingURL=encryption-encryption.mjs.map diff --git a/dist/encryption-settings_admin.css b/dist/encryption-settings_admin.css index 9af945340c6..906fcaca95d 100644 --- a/dist/encryption-settings_admin.css +++ b/dist/encryption-settings_admin.css @@ -6,7 +6,7 @@ @import './common-PencilOutline-B3DMd8SU.chunk.css'; @import './common-NcContent-BhMoPROW-CuEPejA5.chunk.css'; @import './common-TrashCanOutline-BYHcrfvW.chunk.css'; -@import './common-index-980JFXIN.chunk.css'; +@import './common-index-BWhNCeJl.chunk.css'; @import './common-TrayArrowDown-CaC9_ffV.chunk.css'; @import './common-NcInputField-B1bGxYHt-BYHxARP-.chunk.css'; @import './common-index-DYA_tnKg.chunk.css'; @@ -17,7 +17,7 @@ @import './common-NcEmptyContent-CGAPqk4S-Don1d5Bd.chunk.css'; @import './common-NcPasswordField-Be5_qcfm-Crp_EMfV.chunk.css'; @import './common-NcBreadcrumbs-5gl8Syfa-CfbvucBX.chunk.css'; -@import './common-NcTextArea-Dxzj4zdb-B-B2llha.chunk.css'; +@import './common-NcTextArea-Dxzj4zdb-CzDMVgRO.chunk.css'; @import './common-NcActionSeparator-Ct2RnclR-pXJ_-D_I.chunk.css'; @import './common-NcCheckboxRadioSwitch-D8Dfv4iw-CPGkDj-p.chunk.css'; @import './common-Plus-Som-mR4B.chunk.css'; diff --git a/dist/encryption-settings_admin.mjs b/dist/encryption-settings_admin.mjs index 4c5717a38ef..21fd5fc787c 100644 --- a/dist/encryption-settings_admin.mjs +++ b/dist/encryption-settings_admin.mjs @@ -1,2 +1,2 @@ -import{b as k,n as x,z as T,o as p,c as f,u as e,w as c,j as g,t as w,l as s,p as A,f as P,k as m,h,N,v as K,y as j,F as H,g as z,e as D}from"./Web-BwmPK40i.chunk.mjs";import{_ as F,l as I}from"./public-C1mLBHT3.chunk.mjs";import{t as o}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./NcTextArea-Dxzj4zdb-stc727hj.chunk.mjs";import"./NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";/* empty css */import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import{N as U}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{b as S}from"./index-B-dGqfIG.chunk.mjs";import{N as M}from"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./index-CMXcwXc6.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./index-BOH7nBEM.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import"./index-C_wPY1fR.chunk.mjs";/* empty css */import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import{N as E}from"./mdi-Lt-19ASw.chunk.mjs";import{N as V}from"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./index-xEyWukTf.chunk.mjs";import{c as R}from"./index-BLNGy7h5.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import"./NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs";import{N as B}from"./ContentCopy-BF1gBM5z.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import{w as $}from"./index-DlyLvrtV.chunk.mjs";import{d as O}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{N as q,l as C,I as G}from"./types-Cpv__FHC.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";const J=k({__name:"SettingsAdminHomeStorage",props:{modelValue:{type:Boolean,required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(b){const a=x(b,"modelValue"),i=s(!1);return T(a,()=>{i.value=!0}),$(a,async(t,n)=>{if(t===n){i.value=!1;return}try{await R.post(S("/apps/encryption/ajax/setEncryptHomeStorage"),{encryptHomeStorage:t})}finally{i.value=!1}},{debounce:800}),(t,n)=>(p(),f(e(M),{modelValue:a.value,"onUpdate:modelValue":n[0]||(n[0]=r=>a.value=r),loading:i.value,description:e(o)("encryption","Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted"),type:"switch"},{default:c(()=>[g(w(e(o)("encryption","Encrypt the home storage")),1)]),_:1},8,["modelValue","loading","description"]))}}),L=k({__name:"SettingsAdminRecoveryKey",props:{modelValue:{type:Boolean,required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(b){const a=x(b,"modelValue"),i=A("form"),t=s(!1),n=s(!1),r=s(""),l=s(""),v=K(()=>r.value===l.value);async function _(){if(!t.value&&v.value){n.value=!1,t.value=!0;try{const{data:d}=await R.post(S("/apps/encryption/ajax/adminRecovery"),{adminEnableRecovery:!a.value,recoveryPassword:r.value,confirmPassword:l.value});a.value=!a.value,r.value=l.value="",i.value?.reset(),d.data.message&&O(d.data.message)}catch(d){n.value=!0,C.error("Failed to update recovery key settings",{error:d})}finally{t.value=!1}}}return(d,u)=>(p(),P("form",{ref:"form",onSubmit:N(_,["prevent"])},[m(e(q),{label:a.value?e(o)("encryption","Disable recovery key"):e(o)("encryption","Enable recovery key"),description:e(o)("encryption","The recovery key is an additional encryption key used to encrypt files. It is used to recover files from an account if the password is forgotten.")},{default:c(()=>[m(e(V),{modelValue:r.value,"onUpdate:modelValue":u[0]||(u[0]=y=>r.value=y),required:"",name:"password",label:e(o)("encryption","Recovery key password")},null,8,["modelValue","label"]),m(e(V),{modelValue:l.value,"onUpdate:modelValue":u[1]||(u[1]=y=>l.value=y),required:"",name:"confirmPassword",error:!!l.value&&!v.value,helperText:v.value||!l.value?"":e(o)("encryption","Passwords fields do not match"),label:e(o)("encryption","Repeat recovery key password")},null,8,["modelValue","error","helperText","label"]),m(e(U),{type:"submit",variant:a.value?"error":"primary"},{default:c(()=>[g(w(a.value?e(o)("encryption","Disable recovery key"):e(o)("encryption","Enable recovery key")),1)]),_:1},8,["variant"]),n.value?(p(),f(e(E),{key:0,type:"error"},{default:c(()=>[g(w(e(o)("encryption","An error occurred while updating the recovery key settings. Please try again.")),1)]),_:1})):h("",!0)]),_:1},8,["label","description"])],544))}}),Q=k({__name:"SettingsAdminRecoveryKeyChange",setup(b){const a=A("form"),i=s(!1),t=s(!1),n=s(""),r=s(""),l=s(""),v=K(()=>r.value===l.value);async function _(){if(!i.value&&v.value){t.value=!1,i.value=!0;try{await R.post(S("/apps/encryption/ajax/changeRecoveryPassword"),{oldPassword:n.value,newPassword:r.value,confirmPassword:l.value}),n.value=r.value=l.value="",a.value?.reset()}catch(d){t.value=!0,C.error("Failed to update recovery key settings",{error:d})}finally{i.value=!1}}}return(d,u)=>(p(),P("form",{ref:"form",class:j(d.$style.settingsAdminRecoveryKeyChange),onSubmit:N(_,["prevent"])},[m(e(q),{label:e(o)("encryption","Change recovery key password")},{default:c(()=>[m(e(V),{modelValue:n.value,"onUpdate:modelValue":u[0]||(u[0]=y=>n.value=y),required:"",name:"oldPassword",label:e(o)("encryption","Old recovery key password")},null,8,["modelValue","label"]),m(e(V),{modelValue:r.value,"onUpdate:modelValue":u[1]||(u[1]=y=>r.value=y),required:"",name:"password",label:e(o)("encryption","New recovery key password")},null,8,["modelValue","label"]),m(e(V),{modelValue:l.value,"onUpdate:modelValue":u[2]||(u[2]=y=>l.value=y),required:"",name:"confirmPassword",error:!v.value&&!!l.value,helperText:v.value||!l.value?"":e(o)("encryption","Passwords fields do not match"),label:e(o)("encryption","Repeat new recovery key password")},null,8,["modelValue","error","helperText","label"]),m(e(U),{type:"submit",variant:"primary"},{default:c(()=>[g(w(e(o)("encryption","Change recovery key password")),1)]),_:1}),t.value?(p(),f(e(E),{key:0,type:"error"},{default:c(()=>[g(w(e(o)("encryption","An error occurred while changing the recovery key password. Please try again.")),1)]),_:1})):h("",!0)]),_:1},8,["label"])],34))}}),W="_settingsAdminRecoveryKeyChange_12rwr_2",X={settingsAdminRecoveryKeyChange:W},Y={$style:X},Z=F(Q,[["__cssModules",Y]]),ee=k({__name:"SettingsAdmin",setup(b){const a=I("encryption","adminSettings"),i=s(a.encryptHomeStorage),t=s(a.recoveryEnabled);return(n,r)=>(p(),f(e(B),{name:e(o)("encryption","Default encryption module")},{default:c(()=>[e(a).initStatus===e(G).NotInitialized&&!e(a).masterKeyEnabled?(p(),f(e(E),{key:0,type:"warning"},{default:c(()=>[g(w(e(o)("encryption","Encryption app is enabled but your keys are not initialized, please log-out and log-in again")),1)]),_:1})):(p(),P(H,{key:1},[m(J,{modelValue:i.value,"onUpdate:modelValue":r[0]||(r[0]=l=>i.value=l)},null,8,["modelValue"]),r[2]||(r[2]=z("br",null,null,-1)),e(a).masterKeyEnabled?h("",!0):(p(),f(L,{key:0,modelValue:t.value,"onUpdate:modelValue":r[1]||(r[1]=l=>t.value=l)},null,8,["modelValue"])),!e(a).masterKeyEnabled&&t.value?(p(),f(Z,{key:1})):h("",!0)],64))]),_:1},8,["name"]))}}),ae=D(ee);ae.mount("#encryption-settings-section"); +import{b as k,n as x,z as T,o as p,c as f,u as e,w as c,j as g,t as w,l as s,p as A,f as P,k as m,h,N,v as K,y as j,F as H,g as z,e as D}from"./Web-BwmPK40i.chunk.mjs";import{_ as F,l as I}from"./public-C1mLBHT3.chunk.mjs";import{t as o}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./NcTextArea-Dxzj4zdb-BPZd41PF.chunk.mjs";import"./NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";/* empty css */import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import{N as U}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{b as S}from"./index-B-dGqfIG.chunk.mjs";import{N as M}from"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./index-CQct0mOs.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./index-dqLzhRZM.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import"./index-BrjNu3x_.chunk.mjs";/* empty css */import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import{N as E}from"./mdi-Lt-19ASw.chunk.mjs";import{N as V}from"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./index-CcOuN-F7.chunk.mjs";import{c as R}from"./index-BLNGy7h5.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import"./NcSelectTags-D7qWNjXa-gqJ9LLZU.chunk.mjs";import{N as B}from"./ContentCopy-BF1gBM5z.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import{w as $}from"./index-DlyLvrtV.chunk.mjs";import{d as O}from"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import{N as q,l as C,I as G}from"./types-B8vnCPFx.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";const J=k({__name:"SettingsAdminHomeStorage",props:{modelValue:{type:Boolean,required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(b){const a=x(b,"modelValue"),i=s(!1);return T(a,()=>{i.value=!0}),$(a,async(t,n)=>{if(t===n){i.value=!1;return}try{await R.post(S("/apps/encryption/ajax/setEncryptHomeStorage"),{encryptHomeStorage:t})}finally{i.value=!1}},{debounce:800}),(t,n)=>(p(),f(e(M),{modelValue:a.value,"onUpdate:modelValue":n[0]||(n[0]=r=>a.value=r),loading:i.value,description:e(o)("encryption","Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted"),type:"switch"},{default:c(()=>[g(w(e(o)("encryption","Encrypt the home storage")),1)]),_:1},8,["modelValue","loading","description"]))}}),L=k({__name:"SettingsAdminRecoveryKey",props:{modelValue:{type:Boolean,required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(b){const a=x(b,"modelValue"),i=A("form"),t=s(!1),n=s(!1),r=s(""),l=s(""),v=K(()=>r.value===l.value);async function _(){if(!t.value&&v.value){n.value=!1,t.value=!0;try{const{data:d}=await R.post(S("/apps/encryption/ajax/adminRecovery"),{adminEnableRecovery:!a.value,recoveryPassword:r.value,confirmPassword:l.value});a.value=!a.value,r.value=l.value="",i.value?.reset(),d.data.message&&O(d.data.message)}catch(d){n.value=!0,C.error("Failed to update recovery key settings",{error:d})}finally{t.value=!1}}}return(d,u)=>(p(),P("form",{ref:"form",onSubmit:N(_,["prevent"])},[m(e(q),{label:a.value?e(o)("encryption","Disable recovery key"):e(o)("encryption","Enable recovery key"),description:e(o)("encryption","The recovery key is an additional encryption key used to encrypt files. It is used to recover files from an account if the password is forgotten.")},{default:c(()=>[m(e(V),{modelValue:r.value,"onUpdate:modelValue":u[0]||(u[0]=y=>r.value=y),required:"",name:"password",label:e(o)("encryption","Recovery key password")},null,8,["modelValue","label"]),m(e(V),{modelValue:l.value,"onUpdate:modelValue":u[1]||(u[1]=y=>l.value=y),required:"",name:"confirmPassword",error:!!l.value&&!v.value,helperText:v.value||!l.value?"":e(o)("encryption","Passwords fields do not match"),label:e(o)("encryption","Repeat recovery key password")},null,8,["modelValue","error","helperText","label"]),m(e(U),{type:"submit",variant:a.value?"error":"primary"},{default:c(()=>[g(w(a.value?e(o)("encryption","Disable recovery key"):e(o)("encryption","Enable recovery key")),1)]),_:1},8,["variant"]),n.value?(p(),f(e(E),{key:0,type:"error"},{default:c(()=>[g(w(e(o)("encryption","An error occurred while updating the recovery key settings. Please try again.")),1)]),_:1})):h("",!0)]),_:1},8,["label","description"])],544))}}),Q=k({__name:"SettingsAdminRecoveryKeyChange",setup(b){const a=A("form"),i=s(!1),t=s(!1),n=s(""),r=s(""),l=s(""),v=K(()=>r.value===l.value);async function _(){if(!i.value&&v.value){t.value=!1,i.value=!0;try{await R.post(S("/apps/encryption/ajax/changeRecoveryPassword"),{oldPassword:n.value,newPassword:r.value,confirmPassword:l.value}),n.value=r.value=l.value="",a.value?.reset()}catch(d){t.value=!0,C.error("Failed to update recovery key settings",{error:d})}finally{i.value=!1}}}return(d,u)=>(p(),P("form",{ref:"form",class:j(d.$style.settingsAdminRecoveryKeyChange),onSubmit:N(_,["prevent"])},[m(e(q),{label:e(o)("encryption","Change recovery key password")},{default:c(()=>[m(e(V),{modelValue:n.value,"onUpdate:modelValue":u[0]||(u[0]=y=>n.value=y),required:"",name:"oldPassword",label:e(o)("encryption","Old recovery key password")},null,8,["modelValue","label"]),m(e(V),{modelValue:r.value,"onUpdate:modelValue":u[1]||(u[1]=y=>r.value=y),required:"",name:"password",label:e(o)("encryption","New recovery key password")},null,8,["modelValue","label"]),m(e(V),{modelValue:l.value,"onUpdate:modelValue":u[2]||(u[2]=y=>l.value=y),required:"",name:"confirmPassword",error:!v.value&&!!l.value,helperText:v.value||!l.value?"":e(o)("encryption","Passwords fields do not match"),label:e(o)("encryption","Repeat new recovery key password")},null,8,["modelValue","error","helperText","label"]),m(e(U),{type:"submit",variant:"primary"},{default:c(()=>[g(w(e(o)("encryption","Change recovery key password")),1)]),_:1}),t.value?(p(),f(e(E),{key:0,type:"error"},{default:c(()=>[g(w(e(o)("encryption","An error occurred while changing the recovery key password. Please try again.")),1)]),_:1})):h("",!0)]),_:1},8,["label"])],34))}}),W="_settingsAdminRecoveryKeyChange_12rwr_2",X={settingsAdminRecoveryKeyChange:W},Y={$style:X},Z=F(Q,[["__cssModules",Y]]),ee=k({__name:"SettingsAdmin",setup(b){const a=I("encryption","adminSettings"),i=s(a.encryptHomeStorage),t=s(a.recoveryEnabled);return(n,r)=>(p(),f(e(B),{name:e(o)("encryption","Default encryption module")},{default:c(()=>[e(a).initStatus===e(G).NotInitialized&&!e(a).masterKeyEnabled?(p(),f(e(E),{key:0,type:"warning"},{default:c(()=>[g(w(e(o)("encryption","Encryption app is enabled but your keys are not initialized, please log-out and log-in again")),1)]),_:1})):(p(),P(H,{key:1},[m(J,{modelValue:i.value,"onUpdate:modelValue":r[0]||(r[0]=l=>i.value=l)},null,8,["modelValue"]),r[2]||(r[2]=z("br",null,null,-1)),e(a).masterKeyEnabled?h("",!0):(p(),f(L,{key:0,modelValue:t.value,"onUpdate:modelValue":r[1]||(r[1]=l=>t.value=l)},null,8,["modelValue"])),!e(a).masterKeyEnabled&&t.value?(p(),f(Z,{key:1})):h("",!0)],64))]),_:1},8,["name"]))}}),ae=D(ee);ae.mount("#encryption-settings-section"); //# sourceMappingURL=encryption-settings_admin.mjs.map diff --git a/dist/encryption-settings_personal.css b/dist/encryption-settings_personal.css index 9bc197054ae..8887e8f094a 100644 --- a/dist/encryption-settings_personal.css +++ b/dist/encryption-settings_personal.css @@ -8,7 +8,7 @@ @import './common-ContentCopy-D7mIRwIy.chunk.css'; @import './common-PencilOutline-B3DMd8SU.chunk.css'; @import './common-NcContent-BhMoPROW-CuEPejA5.chunk.css'; -@import './common-index-980JFXIN.chunk.css'; +@import './common-index-BWhNCeJl.chunk.css'; @import './common-TrayArrowDown-CaC9_ffV.chunk.css'; @import './common-NcInputField-B1bGxYHt-BYHxARP-.chunk.css'; @import './common-ArrowRight-vZpQWIqF.chunk.css'; @@ -18,7 +18,7 @@ @import './common-NcEmptyContent-CGAPqk4S-Don1d5Bd.chunk.css'; @import './common-NcPasswordField-Be5_qcfm-Crp_EMfV.chunk.css'; @import './common-NcBreadcrumbs-5gl8Syfa-CfbvucBX.chunk.css'; -@import './common-NcTextArea-Dxzj4zdb-B-B2llha.chunk.css'; +@import './common-NcTextArea-Dxzj4zdb-CzDMVgRO.chunk.css'; @import './common-NcActionSeparator-Ct2RnclR-pXJ_-D_I.chunk.css'; @import './common-NcCheckboxRadioSwitch-D8Dfv4iw-CPGkDj-p.chunk.css'; @import './common-Plus-Som-mR4B.chunk.css'; diff --git a/dist/encryption-settings_personal.mjs b/dist/encryption-settings_personal.mjs index e588389b84c..3b835615a15 100644 --- a/dist/encryption-settings_personal.mjs +++ b/dist/encryption-settings_personal.mjs @@ -1,2 +1,2 @@ -import{b,p as P,o as p,f as F,k as v,w as u,c as m,u as e,j as f,t as g,h as U,N as x,l,n as j,z,e as I}from"./Web-BwmPK40i.chunk.mjs";import{c as w,i as h}from"./index-BLNGy7h5.chunk.mjs";import{a as S,c as B,b as K}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{l as R}from"./public-C1mLBHT3.chunk.mjs";import{t as r}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{b as k}from"./index-B-dGqfIG.chunk.mjs";import{N as V}from"./mdi-Lt-19ASw.chunk.mjs";import{N as C}from"./ContentCopy-BF1gBM5z.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./NcTextArea-Dxzj4zdb-stc727hj.chunk.mjs";import"./NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";/* empty css */import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import{N as T}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{N as q}from"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./index-CMXcwXc6.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./index-BOH7nBEM.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import"./index-C_wPY1fR.chunk.mjs";import{N as M,I as E,l as O}from"./types-Cpv__FHC.chunk.mjs";/* empty css */import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import{N as _}from"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./index-xEyWukTf.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import"./NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import{w as Y}from"./index-DlyLvrtV.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";const A=b({__name:"SettingsPersonalChangePrivateKey",props:{recoveryEnabledForUser:{type:Boolean}},emits:["updated"],setup(c,{emit:a}){const s=a,n=P("form"),t=l(!1),o=l(!1),i=l(""),y=l("");async function N(){if(!t.value){t.value=!0,o.value=!1;try{await w.post(k("/apps/encryption/ajax/updatePrivateKeyPassword"),{oldPassword:i.value,newPassword:y.value}),i.value=y.value="",n.value?.reset(),s("updated")}catch(d){h(d)&&d.response&&d.response.data?.data?.message&&S(d.response.data.data.message),o.value=!0}finally{t.value=!1}}}return(d,J)=>(p(),F("form",{ref:"form",onSubmit:x(N,["prevent"])},[v(e(M),{label:e(r)("encryption","Update private key password"),description:e(r)("encryption","Your private key password no longer matches your log-in password. Set your old private key password to your current log-in password.")},{default:u(()=>[c.recoveryEnabledForUser?(p(),m(e(V),{key:0},{default:u(()=>[f(g(e(r)("encryption","If you do not remember your old password you can ask your administrator to recover your files.")),1)]),_:1})):U("",!0),v(e(_),{label:e(r)("encryption","Old log-in password")},null,8,["label"]),v(e(_),{label:e(r)("encryption","Current log-in password")},null,8,["label"]),v(e(T),{type:"submit",variant:"primary"},{default:u(()=>[f(g(e(r)("encryption","Update")),1)]),_:1})]),_:1},8,["label","description"])],544))}}),D=b({__name:"SettingsPersonalEnableRecovery",props:{modelValue:{type:Boolean,required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(c){const a=j(c,"modelValue"),s=l(!1);return z(a,()=>{s.value=!0}),Y([a],async([n],[t])=>{if(n===t){s.value=!1;return}const o=B(r("encryption","Updating recovery keys. This can take some time…"));try{await w.post(k("/apps/encryption/ajax/userSetRecovery"),{userEnableRecovery:a.value})}catch(i){a.value=t,h(i)&&i.response&&i.response.data?.data?.message&&S(i.response.data.data.message)}finally{o.hideToast(),s.value=!1}},{debounce:800}),(n,t)=>(p(),m(e(q),{modelValue:a.value,"onUpdate:modelValue":t[0]||(t[0]=o=>a.value=o),type:"switch",loading:s.value,description:e(r)("encryption","Enabling this option will allow you to reobtain access to your encrypted files in case of password loss")},{default:u(()=>[f(g(e(r)("encryption","Enable password recovery")),1)]),_:1},8,["modelValue","loading","description"]))}}),G=b({__name:"SettingsPersonal",setup(c){const a=R("encryption","personalSettings"),s=l(a.initialized),n=l(a.recoveryEnabledForUser);async function t(){try{const{data:o}=await w.get(k("/apps/encryption/ajax/getStatus"));s.value=o.initStatus,o.data.message&&K(o.data.message)}catch(o){O.error("Failed to fetch current encryption status",{error:o})}}return(o,i)=>(p(),m(e(C),{name:e(r)("encryption","Basic encryption module")},{default:u(()=>[s.value===e(E).NotInitialized?(p(),m(e(V),{key:0,type:"warning"},{default:u(()=>[f(g(e(r)("encryption","Encryption app is enabled but your keys are not initialized, please log-out and log-in again")),1)]),_:1})):s.value===e(E).InitExecuted?(p(),m(A,{key:1,recoveryEnabledForUser:n.value,onUpdated:t},null,8,["recoveryEnabledForUser"])):e(a).recoveryEnabled&&e(a).privateKeySet?(p(),m(D,{key:2,modelValue:n.value,"onUpdate:modelValue":i[0]||(i[0]=y=>n.value=y)},null,8,["modelValue"])):U("",!0)]),_:1},8,["name"]))}}),H=I(G);H.mount("#encryption-settings-section"); +import{b,p as P,o as p,f as F,k as v,w as u,c as m,u as e,j as f,t as g,h as U,N as x,l,n as j,z,e as I}from"./Web-BwmPK40i.chunk.mjs";import{c as w,i as h}from"./index-BLNGy7h5.chunk.mjs";import{a as S,c as B,b as K}from"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import{l as R}from"./public-C1mLBHT3.chunk.mjs";import{t as r}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{b as k}from"./index-B-dGqfIG.chunk.mjs";import{N as V}from"./mdi-Lt-19ASw.chunk.mjs";import{N as C}from"./ContentCopy-BF1gBM5z.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./NcTextArea-Dxzj4zdb-BPZd41PF.chunk.mjs";import"./NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";/* empty css */import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import{N as T}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{N as q}from"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./index-CQct0mOs.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./index-dqLzhRZM.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import"./index-BrjNu3x_.chunk.mjs";import{N as M,I as E,l as O}from"./types-B8vnCPFx.chunk.mjs";/* empty css */import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import{N as _}from"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./index-CcOuN-F7.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import"./NcSelectTags-D7qWNjXa-gqJ9LLZU.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import{w as Y}from"./index-DlyLvrtV.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";const A=b({__name:"SettingsPersonalChangePrivateKey",props:{recoveryEnabledForUser:{type:Boolean}},emits:["updated"],setup(c,{emit:a}){const s=a,n=P("form"),t=l(!1),o=l(!1),i=l(""),y=l("");async function N(){if(!t.value){t.value=!0,o.value=!1;try{await w.post(k("/apps/encryption/ajax/updatePrivateKeyPassword"),{oldPassword:i.value,newPassword:y.value}),i.value=y.value="",n.value?.reset(),s("updated")}catch(d){h(d)&&d.response&&d.response.data?.data?.message&&S(d.response.data.data.message),o.value=!0}finally{t.value=!1}}}return(d,J)=>(p(),F("form",{ref:"form",onSubmit:x(N,["prevent"])},[v(e(M),{label:e(r)("encryption","Update private key password"),description:e(r)("encryption","Your private key password no longer matches your log-in password. Set your old private key password to your current log-in password.")},{default:u(()=>[c.recoveryEnabledForUser?(p(),m(e(V),{key:0},{default:u(()=>[f(g(e(r)("encryption","If you do not remember your old password you can ask your administrator to recover your files.")),1)]),_:1})):U("",!0),v(e(_),{label:e(r)("encryption","Old log-in password")},null,8,["label"]),v(e(_),{label:e(r)("encryption","Current log-in password")},null,8,["label"]),v(e(T),{type:"submit",variant:"primary"},{default:u(()=>[f(g(e(r)("encryption","Update")),1)]),_:1})]),_:1},8,["label","description"])],544))}}),D=b({__name:"SettingsPersonalEnableRecovery",props:{modelValue:{type:Boolean,required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(c){const a=j(c,"modelValue"),s=l(!1);return z(a,()=>{s.value=!0}),Y([a],async([n],[t])=>{if(n===t){s.value=!1;return}const o=B(r("encryption","Updating recovery keys. This can take some time…"));try{await w.post(k("/apps/encryption/ajax/userSetRecovery"),{userEnableRecovery:a.value})}catch(i){a.value=t,h(i)&&i.response&&i.response.data?.data?.message&&S(i.response.data.data.message)}finally{o.hideToast(),s.value=!1}},{debounce:800}),(n,t)=>(p(),m(e(q),{modelValue:a.value,"onUpdate:modelValue":t[0]||(t[0]=o=>a.value=o),type:"switch",loading:s.value,description:e(r)("encryption","Enabling this option will allow you to reobtain access to your encrypted files in case of password loss")},{default:u(()=>[f(g(e(r)("encryption","Enable password recovery")),1)]),_:1},8,["modelValue","loading","description"]))}}),G=b({__name:"SettingsPersonal",setup(c){const a=R("encryption","personalSettings"),s=l(a.initialized),n=l(a.recoveryEnabledForUser);async function t(){try{const{data:o}=await w.get(k("/apps/encryption/ajax/getStatus"));s.value=o.initStatus,o.data.message&&K(o.data.message)}catch(o){O.error("Failed to fetch current encryption status",{error:o})}}return(o,i)=>(p(),m(e(C),{name:e(r)("encryption","Basic encryption module")},{default:u(()=>[s.value===e(E).NotInitialized?(p(),m(e(V),{key:0,type:"warning"},{default:u(()=>[f(g(e(r)("encryption","Encryption app is enabled but your keys are not initialized, please log-out and log-in again")),1)]),_:1})):s.value===e(E).InitExecuted?(p(),m(A,{key:1,recoveryEnabledForUser:n.value,onUpdated:t},null,8,["recoveryEnabledForUser"])):e(a).recoveryEnabled&&e(a).privateKeySet?(p(),m(D,{key:2,modelValue:n.value,"onUpdate:modelValue":i[0]||(i[0]=y=>n.value=y)},null,8,["modelValue"])):U("",!0)]),_:1},8,["name"]))}}),H=I(G);H.mount("#encryption-settings-section"); //# sourceMappingURL=encryption-settings_personal.mjs.map diff --git a/dist/federatedfilesharing-init-files.mjs b/dist/federatedfilesharing-init-files.mjs index 8a3f22674ce..9c7a10655f2 100644 --- a/dist/federatedfilesharing-init-files.mjs +++ b/dist/federatedfilesharing-init-files.mjs @@ -1,2 +1,2 @@ -import{c as d,i as _}from"./index-BLNGy7h5.chunk.mjs";import{b as y,a as u}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{s as b,b as m}from"./index-B-dGqfIG.chunk.mjs";import{_ as R,l as v}from"./public-C1mLBHT3.chunk.mjs";import{t}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{N as D,s as S}from"./index-BW4M2n71.chunk.mjs";import{N as O}from"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import{b as F,o as f,c as h,w as k,g as C,t as P,u as i,y as q,h as x,l as N,v as E}from"./Web-BwmPK40i.chunk.mjs";import{l as M}from"./logger-CEFjrnV8.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";import"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";const T=F({__name:"RemoteShareDialog",props:{name:{},owner:{},remote:{},passwordRequired:{type:Boolean}},emits:["close"],setup(e,{emit:r}){const s=e,a=r,o=N(""),n=E(()=>[{label:t("federatedfilesharing","Cancel"),callback:()=>a("close",!1)},{label:t("federatedfilesharing","Add remote share"),type:s.passwordRequired?"submit":void 0,variant:"primary",callback:()=>a("close",!0,o.value)}]);return(p,l)=>(f(),h(i(D),{buttons:n.value,isForm:e.passwordRequired,name:i(t)("federatedfilesharing","Remote share"),onSubmit:l[1]||(l[1]=w=>a("close",!0,o.value))},{default:k(()=>[C("p",null,P(i(t)("federatedfilesharing","Do you want to add the remote share {name} from {owner}@{remote}?",{name:e.name,owner:e.owner,remote:e.remote})),1),e.passwordRequired?(f(),h(i(O),{key:0,modelValue:o.value,"onUpdate:modelValue":l[0]||(l[0]=w=>o.value=w),class:q(p.$style.remoteShareDialog__password),label:i(t)("federatedfilesharing","Remote share password")},null,8,["modelValue","class","label"])):x("",!0)]),_:1},8,["buttons","isForm","name"]))}}),U="_remoteShareDialog__password_1ccpy_2",V={remoteShareDialog__password:U},$={$style:V},j=R(T,[["__cssModules",$]]);async function I(e,r,s,a=!1){const[o,n]=await S(j,{name:e,owner:r,remote:s,passwordRequired:a});if(a&&o)return n;if(!o)throw new Error("Dialog was cancelled")}window.addEventListener("DOMContentLoaded",()=>{L(),v("federatedfilesharing","notificationsEnabled",!0)!==!0&&A(),b("notifications:action:executed",({action:e,notification:r})=>{r.app==="files_sharing"&&r.object_type==="remote_share"&&e.type==="POST"&&c()})});function c(){if(!window?.OCP?.Files?.Router?.goToRoute){window.location.reload();return}window.OCP.Files.Router.goToRoute(null,{...window.OCP.Files.Router.params,fileid:void 0},{...window.OCP.Files.Router.query,dir:"/",openfile:void 0})}function L(){const e=window.OC.Util.History.parseUrlQuery();if(e.remote&&e.token&&e.name){const r=(s,a)=>{s!==!1&&d.post(m("apps/federatedfilesharing/askForFederatedShare"),{remote:a.remote,token:a.token,owner:a.owner,ownerDisplayName:a.ownerDisplayName||a.owner,name:a.name,password:a.password||""}).then(({data:o})=>{Object.hasOwn(o,"legacyMount")?c():y(o.message)}).catch(o=>{M.error("Error while processing incoming share",{error:o}),_(o)&&o.response.data.message?u(o.response.data.message):u(t("federatedfilesharing","Incoming share could not be processed"))})};location.hash="",e.passwordProtected=parseInt(e.protected,10)===1,g(e,e.passwordProtected,r)}}async function A(){const{data:e}=await d.get(m("/apps/files_sharing/api/externalShares"));for(let r=0;rc())})}function g(e,r,s){const a=e.ownerDisplayName||e.owner,o=e.name,n=e.remote.replace(/^https?:\/\//,"").replace(/\/$/,"");I(o,a,n,r).then(p=>s(!0,{...e,password:p})).catch(()=>s(!1,e))} +import{c as d,i as _}from"./index-BLNGy7h5.chunk.mjs";import{b as y,a as u}from"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import{s as b,b as m}from"./index-B-dGqfIG.chunk.mjs";import{_ as R,l as v}from"./public-C1mLBHT3.chunk.mjs";import{t}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{N as D,s as S}from"./index-BW4M2n71.chunk.mjs";import{N as O}from"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import{b as F,o as f,c as h,w as k,g as C,t as P,u as i,y as q,h as x,l as N,v as E}from"./Web-BwmPK40i.chunk.mjs";import{l as M}from"./logger-CEFjrnV8.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";import"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";const T=F({__name:"RemoteShareDialog",props:{name:{},owner:{},remote:{},passwordRequired:{type:Boolean}},emits:["close"],setup(e,{emit:r}){const s=e,a=r,o=N(""),n=E(()=>[{label:t("federatedfilesharing","Cancel"),callback:()=>a("close",!1)},{label:t("federatedfilesharing","Add remote share"),type:s.passwordRequired?"submit":void 0,variant:"primary",callback:()=>a("close",!0,o.value)}]);return(p,l)=>(f(),h(i(D),{buttons:n.value,isForm:e.passwordRequired,name:i(t)("federatedfilesharing","Remote share"),onSubmit:l[1]||(l[1]=w=>a("close",!0,o.value))},{default:k(()=>[C("p",null,P(i(t)("federatedfilesharing","Do you want to add the remote share {name} from {owner}@{remote}?",{name:e.name,owner:e.owner,remote:e.remote})),1),e.passwordRequired?(f(),h(i(O),{key:0,modelValue:o.value,"onUpdate:modelValue":l[0]||(l[0]=w=>o.value=w),class:q(p.$style.remoteShareDialog__password),label:i(t)("federatedfilesharing","Remote share password")},null,8,["modelValue","class","label"])):x("",!0)]),_:1},8,["buttons","isForm","name"]))}}),U="_remoteShareDialog__password_1ccpy_2",V={remoteShareDialog__password:U},$={$style:V},j=R(T,[["__cssModules",$]]);async function I(e,r,s,a=!1){const[o,n]=await S(j,{name:e,owner:r,remote:s,passwordRequired:a});if(a&&o)return n;if(!o)throw new Error("Dialog was cancelled")}window.addEventListener("DOMContentLoaded",()=>{L(),v("federatedfilesharing","notificationsEnabled",!0)!==!0&&A(),b("notifications:action:executed",({action:e,notification:r})=>{r.app==="files_sharing"&&r.object_type==="remote_share"&&e.type==="POST"&&c()})});function c(){if(!window?.OCP?.Files?.Router?.goToRoute){window.location.reload();return}window.OCP.Files.Router.goToRoute(null,{...window.OCP.Files.Router.params,fileid:void 0},{...window.OCP.Files.Router.query,dir:"/",openfile:void 0})}function L(){const e=window.OC.Util.History.parseUrlQuery();if(e.remote&&e.token&&e.name){const r=(s,a)=>{s!==!1&&d.post(m("apps/federatedfilesharing/askForFederatedShare"),{remote:a.remote,token:a.token,owner:a.owner,ownerDisplayName:a.ownerDisplayName||a.owner,name:a.name,password:a.password||""}).then(({data:o})=>{Object.hasOwn(o,"legacyMount")?c():y(o.message)}).catch(o=>{M.error("Error while processing incoming share",{error:o}),_(o)&&o.response.data.message?u(o.response.data.message):u(t("federatedfilesharing","Incoming share could not be processed"))})};location.hash="",e.passwordProtected=parseInt(e.protected,10)===1,g(e,e.passwordProtected,r)}}async function A(){const{data:e}=await d.get(m("/apps/files_sharing/api/externalShares"));for(let r=0;rc())})}function g(e,r,s){const a=e.ownerDisplayName||e.owner,o=e.name,n=e.remote.replace(/^https?:\/\//,"").replace(/\/$/,"");I(o,a,n,r).then(p=>s(!0,{...e,password:p})).catch(()=>s(!1,e))} //# sourceMappingURL=federatedfilesharing-init-files.mjs.map diff --git a/dist/federatedfilesharing-settings-admin.mjs b/dist/federatedfilesharing-settings-admin.mjs index 5fe4c57ab39..3fea9d6cc1e 100644 --- a/dist/federatedfilesharing-settings-admin.mjs +++ b/dist/federatedfilesharing-settings-admin.mjs @@ -1,2 +1,2 @@ -import{l as s,_ as A}from"./public-C1mLBHT3.chunk.mjs";import{b as U,o as g,c,w as i,k as f,u as a,j as p,t as l,h as m,g as h,R as G,e as T}from"./Web-BwmPK40i.chunk.mjs";import{c as x}from"./index-BLNGy7h5.chunk.mjs";import{a as v,e as b}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{t as e}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{c as C}from"./index-BU6wm4Hd.chunk.mjs";import{c as D}from"./index-B-dGqfIG.chunk.mjs";import{N as u}from"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import{N as j}from"./ContentCopy-BF1gBM5z.chunk.mjs";import{l as S}from"./logger-CEFjrnV8.chunk.mjs";import"./modulepreload-polyfill-BxzAKjcf.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";const I={class:"settings-subsection"},q={class:"settings-subsection__name"},F=U({__name:"AdminSettings",setup(N){const E=s("federatedfilesharing","sharingFederatedDocUrl"),y=new Proxy({outgoingServer2serverShareEnabled:[s("federatedfilesharing","outgoingServer2serverShareEnabled"),"outgoing_server2server_share_enabled"],incomingServer2serverShareEnabled:[s("federatedfilesharing","incomingServer2serverShareEnabled"),"incoming_server2server_share_enabled"],outgoingServer2serverGroupShareEnabled:[s("federatedfilesharing","outgoingServer2serverGroupShareEnabled"),"outgoing_server2server_group_share_enabled"],incomingServer2serverGroupShareEnabled:[s("federatedfilesharing","incomingServer2serverGroupShareEnabled"),"incoming_server2server_group_share_enabled"],federatedGroupSharingSupported:[s("federatedfilesharing","federatedGroupSharingSupported"),"federated_group_sharing_supported"],federatedTrustedShareAutoAccept:[s("federatedfilesharing","federatedTrustedShareAutoAccept"),"federatedTrustedShareAutoAccept"],lookupServerEnabled:[s("federatedfilesharing","lookupServerEnabled"),"lookupServerEnabled"],lookupServerUploadEnabled:[s("federatedfilesharing","lookupServerUploadEnabled"),"lookupServerUploadEnabled"]},{get(d,o){return d[o]?.[0]},set(d,o,t){return o in d?(d[o][0]=t,k(d[o][1],t),!0):!1}}),r=G(y);async function _(d){if(d===!1)return r.lookupServerUploadEnabled=!1;await b({name:e("federatedfilesharing","Confirm data upload to lookup server"),text:e("federatedfilesharing",'When enabled, all account properties (e.g. email address) with scope visibility set to "published", will be automatically synced and transmitted to an external system and made available in a public, global address book.'),labelConfirm:e("federatedfilesharing","Enable data upload"),labelReject:e("federatedfilesharing","Disable upload"),severity:"warning"}).then(()=>{r.lookupServerUploadEnabled=!0}).catch(()=>{r.lookupServerUploadEnabled=!1})}async function w(d){if(d===!1)return r.lookupServerEnabled=!1;await b({name:e("federatedfilesharing","Confirm querying lookup server"),text:e("federatedfilesharing","When enabled, the search input when creating shares will be sent to an external system that provides a public and global address book.")+e("federatedfilesharing","This is used to retrieve the federated cloud ID to make federated sharing easier.")+e("federatedfilesharing","Moreover, email addresses of users might be sent to that system in order to verify them."),labelConfirm:e("federatedfilesharing","Enable querying"),labelReject:e("federatedfilesharing","Disable querying"),severity:"warning"}).then(()=>{r.lookupServerEnabled=!0}).catch(()=>{r.lookupServerEnabled=!1})}async function k(d,o){await C();const t=D("/apps/provisioning_api/api/v1/config/apps/{appId}/{key}",{appId:"files_sharing",key:d}),V=o?"yes":"no";try{const{data:n}=await x.post(t,{value:V});if(n.ocs.meta.status!=="ok")if(n.ocs.meta.message)v(n.ocs.meta.message),S.error("Error updating federated files sharing config",{error:n.ocs});else throw new Error(`Failed to update federatedfilesharing config, ${n.ocs.meta.statuscode}`)}catch(n){S.error("Error updating federated files sharing config",{error:n}),v(e("federatedfilesharing","Unable to update federated files sharing config"))}}return(d,o)=>(g(),c(a(j),{name:a(e)("federatedfilesharing","Federated Cloud Sharing"),description:a(e)("federatedfilesharing","Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing."),docUrl:a(E)},{default:i(()=>[f(a(u),{modelValue:r.outgoingServer2serverShareEnabled,"onUpdate:modelValue":o[0]||(o[0]=t=>r.outgoingServer2serverShareEnabled=t),type:"switch"},{default:i(()=>[p(l(a(e)("federatedfilesharing","Allow people on this server to send shares to other servers (this option also allows WebDAV access to public shares)")),1)]),_:1},8,["modelValue"]),f(a(u),{modelValue:r.incomingServer2serverShareEnabled,"onUpdate:modelValue":o[1]||(o[1]=t=>r.incomingServer2serverShareEnabled=t),type:"switch"},{default:i(()=>[p(l(a(e)("federatedfilesharing","Allow people on this server to receive shares from other servers")),1)]),_:1},8,["modelValue"]),r.federatedGroupSharingSupported?(g(),c(a(u),{key:0,modelValue:r.outgoingServer2serverGroupShareEnabled,"onUpdate:modelValue":o[2]||(o[2]=t=>r.outgoingServer2serverGroupShareEnabled=t),type:"switch"},{default:i(()=>[p(l(a(e)("federatedfilesharing","Allow people on this server to send shares to groups on other servers")),1)]),_:1},8,["modelValue"])):m("",!0),r.federatedGroupSharingSupported?(g(),c(a(u),{key:1,modelValue:r.incomingServer2serverGroupShareEnabled,"onUpdate:modelValue":o[3]||(o[3]=t=>r.incomingServer2serverGroupShareEnabled=t),type:"switch"},{default:i(()=>[p(l(a(e)("federatedfilesharing","Allow people on this server to receive group shares from other servers")),1)]),_:1},8,["modelValue"])):m("",!0),h("fieldset",null,[h("legend",null,l(a(e)("federatedfilesharing","The lookup server is only available for global scale.")),1),f(a(u),{type:"switch",modelValue:r.lookupServerEnabled,disabled:"","onUpdate:modelValue":w},{default:i(()=>[p(l(a(e)("federatedfilesharing","Search global and public address book for people")),1)]),_:1},8,["modelValue"]),f(a(u),{type:"switch",modelValue:r.lookupServerUploadEnabled,disabled:"","onUpdate:modelValue":_},{default:i(()=>[p(l(a(e)("federatedfilesharing","Allow people to publish their data to a global and public address book")),1)]),_:1},8,["modelValue"])]),h("div",I,[h("h3",q,l(a(e)("federatedfilesharing","Trusted federation")),1),f(a(u),{modelValue:r.federatedTrustedShareAutoAccept,"onUpdate:modelValue":o[4]||(o[4]=t=>r.federatedTrustedShareAutoAccept=t),type:"switch"},{default:i(()=>[p(l(a(e)("federatedfilesharing","Automatically accept shares from trusted federated accounts and groups by default")),1)]),_:1},8,["modelValue"])])]),_:1},8,["name","description","docUrl"]))}}),R=A(F,[["__scopeId","data-v-71370f43"]]),W=s("federatedfilesharing","internalOnly",!1);W||T(R).mount("#vue-admin-federated"); +import{l as s,_ as A}from"./public-C1mLBHT3.chunk.mjs";import{b as U,o as g,c,w as i,k as f,u as a,j as p,t as l,h as m,g as h,R as G,e as T}from"./Web-BwmPK40i.chunk.mjs";import{c as x}from"./index-BLNGy7h5.chunk.mjs";import{a as v,e as b}from"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import{t as e}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{c as C}from"./index-BU6wm4Hd.chunk.mjs";import{c as D}from"./index-B-dGqfIG.chunk.mjs";import{N as u}from"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import{N as j}from"./ContentCopy-BF1gBM5z.chunk.mjs";import{l as S}from"./logger-CEFjrnV8.chunk.mjs";import"./modulepreload-polyfill-BxzAKjcf.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";const I={class:"settings-subsection"},q={class:"settings-subsection__name"},F=U({__name:"AdminSettings",setup(N){const E=s("federatedfilesharing","sharingFederatedDocUrl"),y=new Proxy({outgoingServer2serverShareEnabled:[s("federatedfilesharing","outgoingServer2serverShareEnabled"),"outgoing_server2server_share_enabled"],incomingServer2serverShareEnabled:[s("federatedfilesharing","incomingServer2serverShareEnabled"),"incoming_server2server_share_enabled"],outgoingServer2serverGroupShareEnabled:[s("federatedfilesharing","outgoingServer2serverGroupShareEnabled"),"outgoing_server2server_group_share_enabled"],incomingServer2serverGroupShareEnabled:[s("federatedfilesharing","incomingServer2serverGroupShareEnabled"),"incoming_server2server_group_share_enabled"],federatedGroupSharingSupported:[s("federatedfilesharing","federatedGroupSharingSupported"),"federated_group_sharing_supported"],federatedTrustedShareAutoAccept:[s("federatedfilesharing","federatedTrustedShareAutoAccept"),"federatedTrustedShareAutoAccept"],lookupServerEnabled:[s("federatedfilesharing","lookupServerEnabled"),"lookupServerEnabled"],lookupServerUploadEnabled:[s("federatedfilesharing","lookupServerUploadEnabled"),"lookupServerUploadEnabled"]},{get(d,o){return d[o]?.[0]},set(d,o,t){return o in d?(d[o][0]=t,k(d[o][1],t),!0):!1}}),r=G(y);async function _(d){if(d===!1)return r.lookupServerUploadEnabled=!1;await b({name:e("federatedfilesharing","Confirm data upload to lookup server"),text:e("federatedfilesharing",'When enabled, all account properties (e.g. email address) with scope visibility set to "published", will be automatically synced and transmitted to an external system and made available in a public, global address book.'),labelConfirm:e("federatedfilesharing","Enable data upload"),labelReject:e("federatedfilesharing","Disable upload"),severity:"warning"}).then(()=>{r.lookupServerUploadEnabled=!0}).catch(()=>{r.lookupServerUploadEnabled=!1})}async function w(d){if(d===!1)return r.lookupServerEnabled=!1;await b({name:e("federatedfilesharing","Confirm querying lookup server"),text:e("federatedfilesharing","When enabled, the search input when creating shares will be sent to an external system that provides a public and global address book.")+e("federatedfilesharing","This is used to retrieve the federated cloud ID to make federated sharing easier.")+e("federatedfilesharing","Moreover, email addresses of users might be sent to that system in order to verify them."),labelConfirm:e("federatedfilesharing","Enable querying"),labelReject:e("federatedfilesharing","Disable querying"),severity:"warning"}).then(()=>{r.lookupServerEnabled=!0}).catch(()=>{r.lookupServerEnabled=!1})}async function k(d,o){await C();const t=D("/apps/provisioning_api/api/v1/config/apps/{appId}/{key}",{appId:"files_sharing",key:d}),V=o?"yes":"no";try{const{data:n}=await x.post(t,{value:V});if(n.ocs.meta.status!=="ok")if(n.ocs.meta.message)v(n.ocs.meta.message),S.error("Error updating federated files sharing config",{error:n.ocs});else throw new Error(`Failed to update federatedfilesharing config, ${n.ocs.meta.statuscode}`)}catch(n){S.error("Error updating federated files sharing config",{error:n}),v(e("federatedfilesharing","Unable to update federated files sharing config"))}}return(d,o)=>(g(),c(a(j),{name:a(e)("federatedfilesharing","Federated Cloud Sharing"),description:a(e)("federatedfilesharing","Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing."),docUrl:a(E)},{default:i(()=>[f(a(u),{modelValue:r.outgoingServer2serverShareEnabled,"onUpdate:modelValue":o[0]||(o[0]=t=>r.outgoingServer2serverShareEnabled=t),type:"switch"},{default:i(()=>[p(l(a(e)("federatedfilesharing","Allow people on this server to send shares to other servers (this option also allows WebDAV access to public shares)")),1)]),_:1},8,["modelValue"]),f(a(u),{modelValue:r.incomingServer2serverShareEnabled,"onUpdate:modelValue":o[1]||(o[1]=t=>r.incomingServer2serverShareEnabled=t),type:"switch"},{default:i(()=>[p(l(a(e)("federatedfilesharing","Allow people on this server to receive shares from other servers")),1)]),_:1},8,["modelValue"]),r.federatedGroupSharingSupported?(g(),c(a(u),{key:0,modelValue:r.outgoingServer2serverGroupShareEnabled,"onUpdate:modelValue":o[2]||(o[2]=t=>r.outgoingServer2serverGroupShareEnabled=t),type:"switch"},{default:i(()=>[p(l(a(e)("federatedfilesharing","Allow people on this server to send shares to groups on other servers")),1)]),_:1},8,["modelValue"])):m("",!0),r.federatedGroupSharingSupported?(g(),c(a(u),{key:1,modelValue:r.incomingServer2serverGroupShareEnabled,"onUpdate:modelValue":o[3]||(o[3]=t=>r.incomingServer2serverGroupShareEnabled=t),type:"switch"},{default:i(()=>[p(l(a(e)("federatedfilesharing","Allow people on this server to receive group shares from other servers")),1)]),_:1},8,["modelValue"])):m("",!0),h("fieldset",null,[h("legend",null,l(a(e)("federatedfilesharing","The lookup server is only available for global scale.")),1),f(a(u),{type:"switch",modelValue:r.lookupServerEnabled,disabled:"","onUpdate:modelValue":w},{default:i(()=>[p(l(a(e)("federatedfilesharing","Search global and public address book for people")),1)]),_:1},8,["modelValue"]),f(a(u),{type:"switch",modelValue:r.lookupServerUploadEnabled,disabled:"","onUpdate:modelValue":_},{default:i(()=>[p(l(a(e)("federatedfilesharing","Allow people to publish their data to a global and public address book")),1)]),_:1},8,["modelValue"])]),h("div",I,[h("h3",q,l(a(e)("federatedfilesharing","Trusted federation")),1),f(a(u),{modelValue:r.federatedTrustedShareAutoAccept,"onUpdate:modelValue":o[4]||(o[4]=t=>r.federatedTrustedShareAutoAccept=t),type:"switch"},{default:i(()=>[p(l(a(e)("federatedfilesharing","Automatically accept shares from trusted federated accounts and groups by default")),1)]),_:1},8,["modelValue"])])]),_:1},8,["name","description","docUrl"]))}}),R=A(F,[["__scopeId","data-v-71370f43"]]),W=s("federatedfilesharing","internalOnly",!1);W||T(R).mount("#vue-admin-federated"); //# sourceMappingURL=federatedfilesharing-settings-admin.mjs.map diff --git a/dist/federatedfilesharing-settings-personal.mjs b/dist/federatedfilesharing-settings-personal.mjs index 074d57d6763..83067f901e1 100644 --- a/dist/federatedfilesharing-settings-personal.mjs +++ b/dist/federatedfilesharing-settings-personal.mjs @@ -1,4 +1,4 @@ -import{o as l,f as g,g as t,t as i,h as F,m as A,b as H,c as y,w as r,k as s,u as e,j as d,W as J,F as Q,Q as W,l as N,v as C,e as Z}from"./Web-BwmPK40i.chunk.mjs";import{d as L}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{_ as S,l as c}from"./public-C1mLBHT3.chunk.mjs";import{t as a}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{k as _}from"./index-B-dGqfIG.chunk.mjs";import{N as m}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as q}from"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import{I as E,N as G}from"./ContentCopy-BF1gBM5z.chunk.mjs";import"./modulepreload-polyfill-BxzAKjcf.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";const K={name:"CheckIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},X=["aria-hidden","aria-label"],ee=["fill","width","height"],ae={d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"},te={key:0};function re(b,u,o,w,h,x){return l(),g("span",A(b.$attrs,{"aria-hidden":o.title?null:"true","aria-label":o.title,class:"material-design-icon check-icon",role:"img",onClick:u[0]||(u[0]=k=>b.$emit("click",k))}),[(l(),g("svg",{fill:o.fillColor,class:"material-design-icon__svg",width:o.size,height:o.size,viewBox:"0 0 24 24"},[t("path",ae,[o.title?(l(),g("title",te,i(o.title),1)):F("",!0)])],8,ee))],16,X)}const oe=S(K,[["render",re]]),ie={class:"social-button"},le=["src"],ne=["src"],se=["src"],de={style:{margin:"10px 0"}},ce=["href"],ue=H({__name:"PersonalSettings",setup(b){const u=window.OC.theme.productName,o=c("federatedfilesharing","color"),w=c("federatedfilesharing","textColor"),h=c("federatedfilesharing","cloudId"),x=c("federatedfilesharing","docUrlFederated"),k=c("federatedfilesharing","logoPath"),f=c("federatedfilesharing","reference"),U=_("core","facebook"),z=_("core","mastodon"),D=_("core","bluesky"),B=a("federatedfilesharing","Share with me through my #Nextcloud Federated Cloud ID, see {url}",{url:f}),M=a("federatedfilesharing","Share with me through my #Nextcloud Federated Cloud ID"),R=`https://mastodon.social/?text=${encodeURIComponent(M)}&url=${encodeURIComponent(f)}`,T=`https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(f)}`,O=`https://bsky.app/intent/compose?text=${encodeURIComponent(B)}`,P=new URL(k,location.origin),v=N(!1),p=N(!1),I=C(()=>` +import{o as l,f as g,g as t,t as i,h as F,m as A,b as H,c as y,w as r,k as s,u as e,j as d,W as J,F as Q,Q as W,l as N,v as C,e as Z}from"./Web-BwmPK40i.chunk.mjs";import{d as L}from"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import{_ as S,l as c}from"./public-C1mLBHT3.chunk.mjs";import{t as a}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{k as _}from"./index-B-dGqfIG.chunk.mjs";import{N as m}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as q}from"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import{I as E,N as G}from"./ContentCopy-BF1gBM5z.chunk.mjs";import"./modulepreload-polyfill-BxzAKjcf.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";const K={name:"CheckIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},X=["aria-hidden","aria-label"],ee=["fill","width","height"],ae={d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"},te={key:0};function re(b,u,o,w,h,x){return l(),g("span",A(b.$attrs,{"aria-hidden":o.title?null:"true","aria-label":o.title,class:"material-design-icon check-icon",role:"img",onClick:u[0]||(u[0]=k=>b.$emit("click",k))}),[(l(),g("svg",{fill:o.fillColor,class:"material-design-icon__svg",width:o.size,height:o.size,viewBox:"0 0 24 24"},[t("path",ae,[o.title?(l(),g("title",te,i(o.title),1)):F("",!0)])],8,ee))],16,X)}const oe=S(K,[["render",re]]),ie={class:"social-button"},le=["src"],ne=["src"],se=["src"],de={style:{margin:"10px 0"}},ce=["href"],ue=H({__name:"PersonalSettings",setup(b){const u=window.OC.theme.productName,o=c("federatedfilesharing","color"),w=c("federatedfilesharing","textColor"),h=c("federatedfilesharing","cloudId"),x=c("federatedfilesharing","docUrlFederated"),k=c("federatedfilesharing","logoPath"),f=c("federatedfilesharing","reference"),U=_("core","facebook"),z=_("core","mastodon"),D=_("core","bluesky"),B=a("federatedfilesharing","Share with me through my #Nextcloud Federated Cloud ID, see {url}",{url:f}),M=a("federatedfilesharing","Share with me through my #Nextcloud Federated Cloud ID"),R=`https://mastodon.social/?text=${encodeURIComponent(M)}&url=${encodeURIComponent(f)}`,T=`https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(f)}`,O=`https://bsky.app/intent/compose?text=${encodeURIComponent(B)}`,P=new URL(k,location.origin),v=N(!1),p=N(!1),I=C(()=>` padding:10px; background-color:${o}; color:${w}; diff --git a/dist/federation-settings-admin.mjs b/dist/federation-settings-admin.mjs index 42f45178691..3dfa0af65fb 100644 --- a/dist/federation-settings-admin.mjs +++ b/dist/federation-settings-admin.mjs @@ -1,2 +1,2 @@ -import{b as g,p as D,o as l,f as U,g as h,t as E,u as t,y as u,k as _,w as T,N as k,l as w,G as L,c as f,v as p,h as O,S as P,F as R,B as G,e as K}from"./Web-BwmPK40i.chunk.mjs";import{_ as F,l as V}from"./public-C1mLBHT3.chunk.mjs";import{t as r}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{k as q,l as z,a as B,b as M,d as j,N as W}from"./mdi-Lt-19ASw.chunk.mjs";import{N as H}from"./ContentCopy-BF1gBM5z.chunk.mjs";import{d as J,a as y}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{N as b}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as A}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{_ as Q}from"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import{c as C,i as X}from"./index-BLNGy7h5.chunk.mjs";import{c as N,g as Y}from"./index-B-dGqfIG.chunk.mjs";import{N as Z}from"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";const d=Object.freeze({STATUS_OK:1,STATUS_PENDING:2,STATUS_FAILURE:3,STATUS_ACCESS_REVOKED:4});class $ extends Error{}async function ee(a){try{const{data:i}=await C.post(N("apps/federation/trusted-servers"),{url:a}),s=i.ocs.data;return{id:s.id,url:s.url,status:d.STATUS_PENDING}}catch(i){throw I(i)}}async function te(a){try{await C.delete(N(`apps/federation/trusted-servers/${a}`))}catch(i){throw I(i)}}function I(a){return X(a)&&a.response?.data?.ocs?new $(a.response.data.ocs.meta.message,{cause:a}):a}const x=Y().setApp("federation").build(),re=g({__name:"AddTrustedServerForm",emits:["add"],setup(a,{emit:i}){const s=i,v=D("form"),o=w("");async function m(){try{const e=await ee(o.value);o.value="",s("add",e),L(()=>v.value?.reset()),J(r("federation","Added to the list of trusted servers"))}catch(e){x.error("Failed to add trusted server",{error:e}),e instanceof $?y(e.message):y(r("federation","Could not add trusted server. Please try again later."))}}return(e,n)=>(l(),U("form",{ref:"form",onSubmit:k(m,["prevent"])},[h("h3",{class:u(e.$style.addTrustedServerForm__heading)},E(t(r)("federation","Add trusted server")),3),h("div",{class:u(e.$style.addTrustedServerForm__wrapper)},[_(t(Q),{modelValue:o.value,"onUpdate:modelValue":n[0]||(n[0]=c=>o.value=c),label:t(r)("federation","Server url"),placeholder:"https://…",required:"",type:"url"},null,8,["modelValue","label"]),_(t(b),{class:u(e.$style.addTrustedServerForm__submitButton),"aria-label":t(r)("federation","Add"),title:t(r)("federation","Add"),type:"submit",variant:"primary"},{icon:T(()=>[_(t(A),{path:t(q)},null,8,["path"])]),_:1},8,["class","aria-label","title"])],2)],544))}}),se="_addTrustedServerForm__heading_14ngv_2",ae="_addTrustedServerForm__wrapper_14ngv_7",ie="_addTrustedServerForm__submitButton_14ngv_14",oe={addTrustedServerForm__heading:se,addTrustedServerForm__wrapper:ae,addTrustedServerForm__submitButton:ie},de={$style:oe},ne=F(re,[["__cssModules",de]]),le=["textContent"],ue=g({__name:"TrustedServer",props:{server:{}},emits:["delete"],setup(a,{emit:i}){const s=a,v=i,o=w(!1),m=p(()=>s.server.status===d.STATUS_FAILURE),e=p(()=>{switch(s.server.status){case d.STATUS_OK:return j;case d.STATUS_PENDING:case d.STATUS_ACCESS_REVOKED:return M;case d.STATUS_FAILURE:default:return B}}),n=p(()=>{switch(s.server.status){case d.STATUS_OK:return[r("federation","Server ok"),r("federation","User list was exchanged at least once successfully with the remote server.")];case d.STATUS_PENDING:return[r("federation","Server pending"),r("federation","Waiting for shared secret or initial user list exchange.")];case d.STATUS_ACCESS_REVOKED:return[r("federation","Server access revoked"),r("federation","Server access revoked")];case d.STATUS_FAILURE:default:return[r("federation","Server failure"),r("federation","Connection to the remote server failed or the remote server is misconfigured.")]}});async function c(){try{o.value=!0,await te(s.server.id),v("delete",s.server)}catch(S){o.value=!1,x.error("Failed to delete trusted server",{error:S}),y(r("federation","Failed to delete trusted server. Please try again later."))}}return(S,Ee)=>(l(),U("li",{class:u(S.$style.trustedServer)},[_(t(A),{class:u({[S.$style.trustedServer__icon_error]:m.value}),path:e.value,name:n.value[0],title:n.value[1]},null,8,["class","path","name","title"]),h("code",{class:u(S.$style.trustedServer__url),textContent:E(a.server.url)},null,10,le),_(t(b),{"aria-label":t(r)("federation","Delete"),title:t(r)("federation","Delete"),disabled:o.value,onClick:c},{icon:T(()=>[o.value?(l(),f(t(Z),{key:0})):(l(),f(t(A),{key:1,path:t(z)},null,8,["path"]))]),_:1},8,["aria-label","title","disabled"])],2))}}),_e="_trustedServer_1wqey_2",ce="_trustedServer__icon_error_1wqey_15",ve="_trustedServer__url_1wqey_19",me={trustedServer:_e,trustedServer__icon_error:ce,trustedServer__url:ve},Se={$style:me},fe=F(ue,[["__cssModules",Se]]),pe=g({__name:"AdminSettings",setup(a){const i=V("federation","adminSettings"),s=w(i.trustedServers),v=p(()=>s.value.some(e=>e.status===d.STATUS_PENDING));async function o(e){s.value.unshift(e)}function m(e){s.value=s.value.filter(n=>n.id!==e.id)}return(e,n)=>(l(),f(t(H),{name:t(r)("federation","Trusted servers"),docUrl:t(i).docUrl,description:t(r)("federation","Federation allows you to connect with other trusted servers to exchange the account directory. For example this will be used to auto-complete external accounts for federated sharing. It is not necessary to add a server as trusted server in order to create a federated share.")},{default:T(()=>[v.value?(l(),f(t(W),{key:0,type:"info",text:t(r)("federation","Each server must validate the other. This process may require a few cron cycles.")},null,8,["text"])):O("",!0),_(P,{class:u(e.$style.federationAdminSettings__trustedServersList),"aria-label":t(r)("federation","Trusted servers"),tag:"ul",enterFromClass:e.$style.transition_hidden,enterActiveClass:e.$style.transition_active,leaveActiveClass:e.$style.transition_active,leaveToClass:e.$style.transition_hidden},{default:T(()=>[(l(!0),U(R,null,G(s.value,c=>(l(),f(fe,{key:c.id,class:u(e.$style.federationAdminSettings__trustedServersListItem),server:c,onDelete:m},null,8,["class","server"]))),128))]),_:1},8,["class","aria-label","enterFromClass","enterActiveClass","leaveActiveClass","leaveToClass"]),_(ne,{onAdd:o})]),_:1},8,["name","docUrl","description"]))}}),Te="_federationAdminSettings__trustedServersList_z3uvu_2",he="_federationAdminSettings__trustedServersListItem_z3uvu_9",ye="_transition_active_z3uvu_13",Ae="_transition_hidden_z3uvu_17",ge={federationAdminSettings__trustedServersList:Te,federationAdminSettings__trustedServersListItem:he,transition_active:ye,transition_hidden:Ae},Ue={$style:ge},we=F(pe,[["__cssModules",Ue]]),Fe=K(we);Fe.mount("#federation-admin-settings"); +import{b as g,p as D,o as l,f as U,g as h,t as E,u as t,y as u,k as _,w as T,N as k,l as w,G as L,c as f,v as p,h as O,S as P,F as R,B as G,e as K}from"./Web-BwmPK40i.chunk.mjs";import{_ as F,l as V}from"./public-C1mLBHT3.chunk.mjs";import{t as r}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{k as q,l as z,a as B,b as M,d as j,N as W}from"./mdi-Lt-19ASw.chunk.mjs";import{N as H}from"./ContentCopy-BF1gBM5z.chunk.mjs";import{d as J,a as y}from"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import{N as b}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as A}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{_ as Q}from"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import{c as C,i as X}from"./index-BLNGy7h5.chunk.mjs";import{c as N,g as Y}from"./index-B-dGqfIG.chunk.mjs";import{N as Z}from"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";const d=Object.freeze({STATUS_OK:1,STATUS_PENDING:2,STATUS_FAILURE:3,STATUS_ACCESS_REVOKED:4});class $ extends Error{}async function ee(a){try{const{data:i}=await C.post(N("apps/federation/trusted-servers"),{url:a}),s=i.ocs.data;return{id:s.id,url:s.url,status:d.STATUS_PENDING}}catch(i){throw I(i)}}async function te(a){try{await C.delete(N(`apps/federation/trusted-servers/${a}`))}catch(i){throw I(i)}}function I(a){return X(a)&&a.response?.data?.ocs?new $(a.response.data.ocs.meta.message,{cause:a}):a}const x=Y().setApp("federation").build(),re=g({__name:"AddTrustedServerForm",emits:["add"],setup(a,{emit:i}){const s=i,v=D("form"),o=w("");async function m(){try{const e=await ee(o.value);o.value="",s("add",e),L(()=>v.value?.reset()),J(r("federation","Added to the list of trusted servers"))}catch(e){x.error("Failed to add trusted server",{error:e}),e instanceof $?y(e.message):y(r("federation","Could not add trusted server. Please try again later."))}}return(e,n)=>(l(),U("form",{ref:"form",onSubmit:k(m,["prevent"])},[h("h3",{class:u(e.$style.addTrustedServerForm__heading)},E(t(r)("federation","Add trusted server")),3),h("div",{class:u(e.$style.addTrustedServerForm__wrapper)},[_(t(Q),{modelValue:o.value,"onUpdate:modelValue":n[0]||(n[0]=c=>o.value=c),label:t(r)("federation","Server url"),placeholder:"https://…",required:"",type:"url"},null,8,["modelValue","label"]),_(t(b),{class:u(e.$style.addTrustedServerForm__submitButton),"aria-label":t(r)("federation","Add"),title:t(r)("federation","Add"),type:"submit",variant:"primary"},{icon:T(()=>[_(t(A),{path:t(q)},null,8,["path"])]),_:1},8,["class","aria-label","title"])],2)],544))}}),se="_addTrustedServerForm__heading_14ngv_2",ae="_addTrustedServerForm__wrapper_14ngv_7",ie="_addTrustedServerForm__submitButton_14ngv_14",oe={addTrustedServerForm__heading:se,addTrustedServerForm__wrapper:ae,addTrustedServerForm__submitButton:ie},de={$style:oe},ne=F(re,[["__cssModules",de]]),le=["textContent"],ue=g({__name:"TrustedServer",props:{server:{}},emits:["delete"],setup(a,{emit:i}){const s=a,v=i,o=w(!1),m=p(()=>s.server.status===d.STATUS_FAILURE),e=p(()=>{switch(s.server.status){case d.STATUS_OK:return j;case d.STATUS_PENDING:case d.STATUS_ACCESS_REVOKED:return M;case d.STATUS_FAILURE:default:return B}}),n=p(()=>{switch(s.server.status){case d.STATUS_OK:return[r("federation","Server ok"),r("federation","User list was exchanged at least once successfully with the remote server.")];case d.STATUS_PENDING:return[r("federation","Server pending"),r("federation","Waiting for shared secret or initial user list exchange.")];case d.STATUS_ACCESS_REVOKED:return[r("federation","Server access revoked"),r("federation","Server access revoked")];case d.STATUS_FAILURE:default:return[r("federation","Server failure"),r("federation","Connection to the remote server failed or the remote server is misconfigured.")]}});async function c(){try{o.value=!0,await te(s.server.id),v("delete",s.server)}catch(S){o.value=!1,x.error("Failed to delete trusted server",{error:S}),y(r("federation","Failed to delete trusted server. Please try again later."))}}return(S,Ee)=>(l(),U("li",{class:u(S.$style.trustedServer)},[_(t(A),{class:u({[S.$style.trustedServer__icon_error]:m.value}),path:e.value,name:n.value[0],title:n.value[1]},null,8,["class","path","name","title"]),h("code",{class:u(S.$style.trustedServer__url),textContent:E(a.server.url)},null,10,le),_(t(b),{"aria-label":t(r)("federation","Delete"),title:t(r)("federation","Delete"),disabled:o.value,onClick:c},{icon:T(()=>[o.value?(l(),f(t(Z),{key:0})):(l(),f(t(A),{key:1,path:t(z)},null,8,["path"]))]),_:1},8,["aria-label","title","disabled"])],2))}}),_e="_trustedServer_1wqey_2",ce="_trustedServer__icon_error_1wqey_15",ve="_trustedServer__url_1wqey_19",me={trustedServer:_e,trustedServer__icon_error:ce,trustedServer__url:ve},Se={$style:me},fe=F(ue,[["__cssModules",Se]]),pe=g({__name:"AdminSettings",setup(a){const i=V("federation","adminSettings"),s=w(i.trustedServers),v=p(()=>s.value.some(e=>e.status===d.STATUS_PENDING));async function o(e){s.value.unshift(e)}function m(e){s.value=s.value.filter(n=>n.id!==e.id)}return(e,n)=>(l(),f(t(H),{name:t(r)("federation","Trusted servers"),docUrl:t(i).docUrl,description:t(r)("federation","Federation allows you to connect with other trusted servers to exchange the account directory. For example this will be used to auto-complete external accounts for federated sharing. It is not necessary to add a server as trusted server in order to create a federated share.")},{default:T(()=>[v.value?(l(),f(t(W),{key:0,type:"info",text:t(r)("federation","Each server must validate the other. This process may require a few cron cycles.")},null,8,["text"])):O("",!0),_(P,{class:u(e.$style.federationAdminSettings__trustedServersList),"aria-label":t(r)("federation","Trusted servers"),tag:"ul",enterFromClass:e.$style.transition_hidden,enterActiveClass:e.$style.transition_active,leaveActiveClass:e.$style.transition_active,leaveToClass:e.$style.transition_hidden},{default:T(()=>[(l(!0),U(R,null,G(s.value,c=>(l(),f(fe,{key:c.id,class:u(e.$style.federationAdminSettings__trustedServersListItem),server:c,onDelete:m},null,8,["class","server"]))),128))]),_:1},8,["class","aria-label","enterFromClass","enterActiveClass","leaveActiveClass","leaveToClass"]),_(ne,{onAdd:o})]),_:1},8,["name","docUrl","description"]))}}),Te="_federationAdminSettings__trustedServersList_z3uvu_2",he="_federationAdminSettings__trustedServersListItem_z3uvu_9",ye="_transition_active_z3uvu_13",Ae="_transition_hidden_z3uvu_17",ge={federationAdminSettings__trustedServersList:Te,federationAdminSettings__trustedServersListItem:he,transition_active:ye,transition_hidden:Ae},Ue={$style:ge},we=F(pe,[["__cssModules",Ue]]),Fe=K(we);Fe.mount("#federation-admin-settings"); //# sourceMappingURL=federation-settings-admin.mjs.map diff --git a/dist/files_external-auth_rsa.mjs b/dist/files_external-auth_rsa.mjs index 263e5c2d599..bc3c1dc96f5 100644 --- a/dist/files_external-auth_rsa.mjs +++ b/dist/files_external-auth_rsa.mjs @@ -1,3 +1,3 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/AuthMechanismRsa-Bue2F6rp.chunk.mjs'),window.OC.filePath('', '', 'dist/Web-BwmPK40i.chunk.mjs'),window.OC.filePath('', '', 'dist/public-C1mLBHT3.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BLNGy7h5.chunk.mjs'),window.OC.filePath('', '', 'dist/index-B-dGqfIG.chunk.mjs'),window.OC.filePath('', '', 'dist/util-Alk1iwuj.chunk.mjs'),window.OC.filePath('', '', 'dist/index-DL1yHC1K-DnBG6QLJ.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BW4M2n71.chunk.mjs'),window.OC.filePath('', '', 'dist/NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs'),window.OC.filePath('', '', 'dist/logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs'),window.OC.filePath('', '', 'dist/translation-DoG5ZELJ-CFYnqluG.chunk.mjs'),window.OC.filePath('', '', 'dist/common-createElementId-DhjFt1I9-C_oBIsvc.chunk.css'),window.OC.filePath('', '', 'dist/common-logger-D3RVzcfQ-BE3lcFW4.chunk.css'),window.OC.filePath('', '', 'dist/common-NcModal-DUWLRm_F-BsKc2RT9.chunk.css'),window.OC.filePath('', '', 'dist/TrashCanOutline-Cv7t-yKN.chunk.mjs'),window.OC.filePath('', '', 'dist/common-TrashCanOutline-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/common-index-DYA_tnKg.chunk.css'),window.OC.filePath('', '', 'dist/mdi-Lt-19ASw.chunk.mjs'),window.OC.filePath('', '', 'dist/common-mdi-BWNFKLbC.chunk.css'),window.OC.filePath('', '', 'dist/index-BOH7nBEM.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index-980JFXIN.chunk.css'),window.OC.filePath('', '', 'dist/NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcCheckboxRadioSwitch-D8Dfv4iw-CPGkDj-p.chunk.css'),window.OC.filePath('', '', 'dist/NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcInputField-B1bGxYHt-BYHxARP-.chunk.css'),window.OC.filePath('', '', 'dist/common-NcPasswordField-Be5_qcfm-Crp_EMfV.chunk.css'),window.OC.filePath('', '', 'dist/NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs'),window.OC.filePath('', '', 'dist/types-BINwlUX8.chunk.mjs'),window.OC.filePath('', '', 'dist/logger-n22jyIXx.chunk.mjs')])))=>i.map(i=>d[i]); -import{d as t,a as i,_ as a}from"./Web-BwmPK40i.chunk.mjs";import"./public-C1mLBHT3.chunk.mjs";const r=i(()=>a(()=>import("./AuthMechanismRsa-Bue2F6rp.chunk.mjs").then(e=>e.A),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]),import.meta.url)),s=t(r,{shadowRoot:!1});customElements.define("files_external-auth-mechanism-rsa",s),window.OCA.FilesExternal.AuthMechanism.registerHandler({id:"rsa",tagName:"files_external-auth-mechanism-rsa",enabled(e){return e.scheme==="publickey"&&e.identifier==="publickey::rsa"}}); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/AuthMechanismRsa-KxGDDW5e.chunk.mjs'),window.OC.filePath('', '', 'dist/Web-BwmPK40i.chunk.mjs'),window.OC.filePath('', '', 'dist/public-C1mLBHT3.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BLNGy7h5.chunk.mjs'),window.OC.filePath('', '', 'dist/index-B-dGqfIG.chunk.mjs'),window.OC.filePath('', '', 'dist/util-Alk1iwuj.chunk.mjs'),window.OC.filePath('', '', 'dist/index-DL1yHC1K-BJ_TsAjb.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BW4M2n71.chunk.mjs'),window.OC.filePath('', '', 'dist/NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs'),window.OC.filePath('', '', 'dist/logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs'),window.OC.filePath('', '', 'dist/translation-DoG5ZELJ-CFYnqluG.chunk.mjs'),window.OC.filePath('', '', 'dist/common-createElementId-DhjFt1I9-C_oBIsvc.chunk.css'),window.OC.filePath('', '', 'dist/common-logger-D3RVzcfQ-BE3lcFW4.chunk.css'),window.OC.filePath('', '', 'dist/common-NcModal-DUWLRm_F-BsKc2RT9.chunk.css'),window.OC.filePath('', '', 'dist/TrashCanOutline-Cv7t-yKN.chunk.mjs'),window.OC.filePath('', '', 'dist/common-TrashCanOutline-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/common-index-DYA_tnKg.chunk.css'),window.OC.filePath('', '', 'dist/mdi-Lt-19ASw.chunk.mjs'),window.OC.filePath('', '', 'dist/common-mdi-BWNFKLbC.chunk.css'),window.OC.filePath('', '', 'dist/index-dqLzhRZM.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index-BWhNCeJl.chunk.css'),window.OC.filePath('', '', 'dist/NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcCheckboxRadioSwitch-D8Dfv4iw-CPGkDj-p.chunk.css'),window.OC.filePath('', '', 'dist/NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcInputField-B1bGxYHt-BYHxARP-.chunk.css'),window.OC.filePath('', '', 'dist/common-NcPasswordField-Be5_qcfm-Crp_EMfV.chunk.css'),window.OC.filePath('', '', 'dist/NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs'),window.OC.filePath('', '', 'dist/types-BINwlUX8.chunk.mjs'),window.OC.filePath('', '', 'dist/logger-n22jyIXx.chunk.mjs')])))=>i.map(i=>d[i]); +import{d as t,a as i,_ as a}from"./Web-BwmPK40i.chunk.mjs";import"./public-C1mLBHT3.chunk.mjs";const r=i(()=>a(()=>import("./AuthMechanismRsa-KxGDDW5e.chunk.mjs").then(e=>e.A),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]),import.meta.url)),s=t(r,{shadowRoot:!1});customElements.define("files_external-auth-mechanism-rsa",s),window.OCA.FilesExternal.AuthMechanism.registerHandler({id:"rsa",tagName:"files_external-auth-mechanism-rsa",enabled(e){return e.scheme==="publickey"&&e.identifier==="publickey::rsa"}}); //# sourceMappingURL=files_external-auth_rsa.mjs.map diff --git a/dist/files_external-files_external-settings-DF-XZBpX.chunk.css b/dist/files_external-files_external-settings-BB673f-7.chunk.css similarity index 79% rename from dist/files_external-files_external-settings-DF-XZBpX.chunk.css rename to dist/files_external-files_external-settings-BB673f-7.chunk.css index 424f02f0669..c2127708097 100644 --- a/dist/files_external-files_external-settings-DF-XZBpX.chunk.css +++ b/dist/files_external-files_external-settings-BB673f-7.chunk.css @@ -1 +1 @@ -._authMechanismConfiguration_kpcpy_2,._backendConfiguration_1sf6y_2{display:flex;flex-direction:column;gap:var(--default-grid-baseline)}._mountOptions_1fqyb_2{background-color:hsl(from var(--color-primary-element-light) h s calc(l*1.045));border-radius:var(--border-radius-element);display:flex;flex-direction:column;gap:var(--default-grid-baseline);width:100%}._mountOptions__fieldset_1fqyb_12{display:flex;flex-direction:column;gap:var(--default-grid-baseline);padding-inline:calc(2 * var(--default-grid-baseline)) var(--default-grid-baseline)}._externalStorageDialog_9wew8_2{display:flex;flex-direction:column;gap:var(--default-grid-baseline);min-height:calc(14 * var(--default-clickable-area))!important}._externalStorageDialog__configuration_9wew8_9{margin-block:.5rem}._storageTableRow__cellActions_1k62p_2{display:flex;gap:var(--default-grid-baseline)}._storageTableRow__cellApplicable_1k62p_7{display:flex;flex-wrap:wrap;gap:var(--default-grid-baseline);align-items:center;max-height:calc(48px + 2 * var(--default-grid-baseline));overflow:scroll}._storageTableRow__status_warning_1k62p_17{color:var(--color-element-warning)}._storageTableRow__status_error_1k62p_21{color:var(--color-element-error)}._storageTable_1dqte_2{width:100%}._storageTable_1dqte_2 td,th{padding-block:calc(var(--default-grid-baseline) / 2);padding-inline:var(--default-grid-baseline)}._storageTable__header_1dqte_11{color:var(--color-text-maxcontrast);min-height:var(--default-clickable-area)}._storageTable__headerStatus_1dqte_16{width:calc(var(--default-clickable-area) + 2 * var(--default-grid-baseline))}._storageTable__headerFolder_1dqte_20{width:25%}._storageTable__headerBackend_1dqte_24,._storageTable__headerFAuthentication_1dqte_28{width:20%}._storageTable__headerActions_1dqte_32{width:calc(2 * var(--default-clickable-area) + 3 * var(--default-grid-baseline))}._userMountSettings__heading_59moz_2{font-weight:700;font-size:1.2rem;margin-block-start:var(--default-clickable-area)}._userMountSettings__backends_59moz_9{--padding: calc((var(--default-clickable-area) - 20px) / 2 + var(--default-grid-baseline));margin-block-start:var(--padding);margin-inline-start:var(--padding)}._userMountSettings__backends_59moz_9 legend{font-weight:700}._externalStoragesSection__dependantList_atsmn_2{list-style:disc!important;margin-inline-start:calc(var(--default-clickable-area) / 2)}._externalStoragesSection__newStorageButton_atsmn_7{margin-top:var(--default-clickable-area)}._globalCredentialsSectionForm_bgjv2_2{max-width:400px;display:flex;flex-direction:column;align-items:end;gap:15px}._globalCredentialsSectionForm__submit_bgjv2_10{min-width:max(40%,44px)} +._authMechanismConfiguration_kpcpy_2,._backendConfiguration_1sf6y_2{display:flex;flex-direction:column;gap:var(--default-grid-baseline)}._mountOptions_1fqyb_2{background-color:hsl(from var(--color-primary-element-light) h s calc(l*1.045));border-radius:var(--border-radius-element);display:flex;flex-direction:column;gap:var(--default-grid-baseline);width:100%}._mountOptions__fieldset_1fqyb_12{display:flex;flex-direction:column;gap:var(--default-grid-baseline);padding-inline:calc(2 * var(--default-grid-baseline)) var(--default-grid-baseline)}._externalStorageDialog_9wew8_2{display:flex;flex-direction:column;gap:var(--default-grid-baseline);min-height:calc(14 * var(--default-clickable-area))!important}._externalStorageDialog__configuration_9wew8_9{margin-block:.5rem}._storageTableRow__cellActions_1k62p_2{display:flex;gap:var(--default-grid-baseline)}._storageTableRow__cellApplicable_1k62p_7{display:flex;flex-wrap:wrap;gap:var(--default-grid-baseline);align-items:center;max-height:calc(48px + 2 * var(--default-grid-baseline));overflow:scroll}._storageTableRow__status_warning_1k62p_17{color:var(--color-element-warning)}._storageTableRow__status_error_1k62p_21{color:var(--color-element-error)}._storageTable_1dqte_2{width:100%}._storageTable_1dqte_2 td,th{padding-block:calc(var(--default-grid-baseline) / 2);padding-inline:var(--default-grid-baseline)}._storageTable__header_1dqte_11{color:var(--color-text-maxcontrast);min-height:var(--default-clickable-area)}._storageTable__headerStatus_1dqte_16{width:calc(var(--default-clickable-area) + 2 * var(--default-grid-baseline))}._storageTable__headerFolder_1dqte_20{width:25%}._storageTable__headerBackend_1dqte_24,._storageTable__headerFAuthentication_1dqte_28{width:20%}._storageTable__headerActions_1dqte_32{width:calc(2 * var(--default-clickable-area) + 3 * var(--default-grid-baseline))}._userMountSettings__heading_59moz_2{font-weight:700;font-size:1.2rem;margin-block-start:var(--default-clickable-area)}._userMountSettings__backends_59moz_9{--padding: calc((var(--default-clickable-area) - 20px) / 2 + var(--default-grid-baseline));margin-block-start:var(--padding);margin-inline-start:var(--padding);legend{font-weight:700}}._externalStoragesSection__dependantList_atsmn_2{list-style:disc!important;margin-inline-start:calc(var(--default-clickable-area) / 2)}._externalStoragesSection__newStorageButton_atsmn_7{margin-top:var(--default-clickable-area)}._globalCredentialsSectionForm_bgjv2_2{max-width:400px;display:flex;flex-direction:column;align-items:end;gap:15px}._globalCredentialsSectionForm__submit_bgjv2_10{min-width:max(40%,44px)} diff --git a/dist/files_external-init.mjs b/dist/files_external-init.mjs index 06e08bda81a..919f421e0c8 100644 --- a/dist/files_external-init.mjs +++ b/dist/files_external-init.mjs @@ -1,3 +1,3 @@ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/CredentialsDialog-CtO6QLed.chunk.mjs'),window.OC.filePath('', '', 'dist/translation-DoG5ZELJ-CFYnqluG.chunk.mjs'),window.OC.filePath('', '', 'dist/index-B-dGqfIG.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BW4M2n71.chunk.mjs'),window.OC.filePath('', '', 'dist/NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs'),window.OC.filePath('', '', 'dist/Web-BwmPK40i.chunk.mjs'),window.OC.filePath('', '', 'dist/public-C1mLBHT3.chunk.mjs'),window.OC.filePath('', '', 'dist/logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs'),window.OC.filePath('', '', 'dist/common-createElementId-DhjFt1I9-C_oBIsvc.chunk.css'),window.OC.filePath('', '', 'dist/common-logger-D3RVzcfQ-BE3lcFW4.chunk.css'),window.OC.filePath('', '', 'dist/common-NcModal-DUWLRm_F-BsKc2RT9.chunk.css'),window.OC.filePath('', '', 'dist/TrashCanOutline-Cv7t-yKN.chunk.mjs'),window.OC.filePath('', '', 'dist/common-TrashCanOutline-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/common-index-DYA_tnKg.chunk.css'),window.OC.filePath('', '', 'dist/mdi-Lt-19ASw.chunk.mjs'),window.OC.filePath('', '', 'dist/common-mdi-BWNFKLbC.chunk.css'),window.OC.filePath('', '', 'dist/NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BLNGy7h5.chunk.mjs'),window.OC.filePath('', '', 'dist/util-Alk1iwuj.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcInputField-B1bGxYHt-BYHxARP-.chunk.css'),window.OC.filePath('', '', 'dist/common-NcPasswordField-Be5_qcfm-Crp_EMfV.chunk.css'),window.OC.filePath('', '', 'dist/NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs')])))=>i.map(i=>d[i]); -import{D as x,b as C,V as E,C as p,a as u}from"./index-BDagnpAU.chunk.mjs";import{l as V}from"./public-C1mLBHT3.chunk.mjs";import{t as s}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{a as M,_ as L}from"./Web-BwmPK40i.chunk.mjs";import{c as l}from"./index-BLNGy7h5.chunk.mjs";import{d as w,a as h,s as S,e as T}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{b as m,f as _,a as c,c as A,h as y}from"./index-B-dGqfIG.chunk.mjs";import{a as N,P as k}from"./index-BU6wm4Hd.chunk.mjs";import{s as D}from"./index-BW4M2n71.chunk.mjs";import{S as a}from"./types-BINwlUX8.chunk.mjs";import{F as I,b,P as d}from"./folder-29HuacU_-Joa_bkj_.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";import"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";const P='',O='';function v(e){return e.status===void 0||e.status===a.Success?!1:e.userProvided||e.authMechanism==="password::global::user"}function H(e){if(e.type===I.File)return!1;const t=e.attributes;return!t.scope||!t.backend?!1:t.scope==="personal"||t.scope==="system"}N(l);async function R(e,t,n){const r=(await l.request({method:"PUT",url:m("apps/files_external/userglobalstorages/{id}",{id:e.id}),confirmPassword:k.Strict,data:{backendOptions:{user:t,password:n}}})).data;return r.status!==a.Success?(h(s("files_external","Unable to update this external storage config. {statusMessage}",{statusMessage:r?.statusMessage||""})),null):(w(s("files_external","New configuration successfully saved")),e.attributes.config=r,_("files:node:updated",e),!0)}const F="credentials-external-storage",U={id:F,displayName:()=>s("files","Enter missing credentials"),iconSvgInline:()=>O,enabled:({nodes:e})=>{if(e.length!==1||!e[0])return!1;const t=e[0];if(!H(t))return!1;const n=t.attributes?.config||{};return!!v(n)},async exec({nodes:e}){const{login:t,password:n}=await D(M(()=>L(()=>import("./CredentialsDialog-CtO6QLed.chunk.mjs"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]),import.meta.url)))??{};if(t&&n)try{await R(e[0],t,n),w(s("files_external","Credentials successfully set"))}catch(r){h(s("files_external","Error while setting credentials: {error}",{error:r.message}))}return null},order:-1e3,default:x.DEFAULT,inline:()=>!0},$='',o=`/files/${c()?.uid}`;function B(e){const t=(e.path+"/"+e.name).replace(/^\//gm,"");return new b({id:e.id,source:y("dav"+o+"/"+t),root:o,owner:c()?.uid||null,permissions:e.config.status!==a.Success?d.NONE:e?.permissions||d.READ,attributes:{displayName:t,...e}})}async function Z(){const e=(await l.get(A("apps/files_external/api/v1/mounts"))).data.ocs.data.map(B);return{folder:new b({id:0,source:y("dav"+o),root:o,owner:c()?.uid||null,permissions:d.READ}),contents:e}}function j(e,t=!0){const n=t?"userglobalstorages":"userstorages";return l.get(m(`apps/files_external/${n}/${e}?testOnly=false`))}const q={id:"check-external-storage",displayName:()=>"",iconSvgInline:()=>"",enabled:({nodes:e})=>e.every(t=>H(t)===!0),exec:async()=>null,async renderInline({nodes:e}){if(e.length!==1||!e[0])return null;const t=e[0],n=document.createElement("span");n.className="files-list__row-status",n.innerHTML=s("files_external","Checking storage …");let r;try{const{data:i}=await j(t.id,t.attributes.scope==="system");if(r=i,t.attributes.config=r,_("files:node:updated",t),r.status!==a.Success)throw new Error(r?.statusMessage||s("files_external","There was an error with this external storage."));n.remove()}catch(i){i.response&&!r&&S(s("files_external","We were unable to check the external storage {basename}",{basename:t.basename})),n.innerHTML="";const f=r?v(r):!1,g=document.createElement("span");g.classList.add(`files-list__row-status--${f?"warning":"error"}`),f||(n.innerHTML=$,n.title=i.message),n.prepend(g)}return n},order:10},W={id:"open-in-files-external-storage",displayName:({nodes:e})=>(e?.[0]?.attributes?.config||{status:a.Indeterminate}).status!==a.Success?s("files_external","Examine this faulty external storage configuration"):s("files","Open in Files"),iconSvgInline:()=>"",enabled:({view:e})=>e.id==="extstoragemounts",async exec({nodes:e}){if(e[0]?.attributes?.config?.status!==a.Success){if(await T({name:s("files_external","External mount error"),text:s("files_external","There was an error with this external storage. Do you want to review this mount point config in the settings page?"),labelConfirm:s("files_external","Open settings"),labelReject:s("files_external","Ignore")})===!0){const t=c()?.isAdmin?"admin":"user";window.location.href=m(`/settings/${t}/externalstorages`)}return null}return window.OCP.Files.Router.goToRoute(null,{view:"files"},{dir:e[0].path}),null},order:-1e3,default:x.HIDDEN},Y=V("files_external","allowUserMounting",!1),z=C();z.register(new E({id:"extstoragemounts",name:s("files_external","External storage"),caption:s("files_external","List of external storage."),emptyCaption:Y?s("files_external","There is no external storage configured. You can configure them in your Personal settings."):s("files_external","There is no external storage configured and you don't have the permission to configure them."),emptyTitle:s("files_external","No external storage"),icon:P,order:30,columns:[new p({id:"storage-type",title:s("files_external","Storage type"),render(e){const t=e.attributes?.backend||s("files_external","Unknown"),n=document.createElement("span");return n.textContent=t,n}}),new p({id:"scope",title:s("files_external","Scope"),render(e){const t=document.createElement("span");let n=s("files_external","Personal");return e.attributes?.scope==="system"&&(n=s("files_external","System")),t.textContent=n,t}})],getContents:Z})),u(U),u(q),u(W); +import{D as x,b as C,V as E,C as p,a as u}from"./index-BDagnpAU.chunk.mjs";import{l as V}from"./public-C1mLBHT3.chunk.mjs";import{t as s}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{a as M,_ as L}from"./Web-BwmPK40i.chunk.mjs";import{c as l}from"./index-BLNGy7h5.chunk.mjs";import{d as w,a as h,s as S,e as T}from"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import{b as m,f as _,a as c,c as A,h as y}from"./index-B-dGqfIG.chunk.mjs";import{a as N,P as k}from"./index-BU6wm4Hd.chunk.mjs";import{s as D}from"./index-BW4M2n71.chunk.mjs";import{S as a}from"./types-BINwlUX8.chunk.mjs";import{F as I,b,P as d}from"./folder-29HuacU_-Joa_bkj_.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";import"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";const P='',O='';function v(e){return e.status===void 0||e.status===a.Success?!1:e.userProvided||e.authMechanism==="password::global::user"}function H(e){if(e.type===I.File)return!1;const t=e.attributes;return!t.scope||!t.backend?!1:t.scope==="personal"||t.scope==="system"}N(l);async function R(e,t,n){const r=(await l.request({method:"PUT",url:m("apps/files_external/userglobalstorages/{id}",{id:e.id}),confirmPassword:k.Strict,data:{backendOptions:{user:t,password:n}}})).data;return r.status!==a.Success?(h(s("files_external","Unable to update this external storage config. {statusMessage}",{statusMessage:r?.statusMessage||""})),null):(w(s("files_external","New configuration successfully saved")),e.attributes.config=r,_("files:node:updated",e),!0)}const F="credentials-external-storage",U={id:F,displayName:()=>s("files","Enter missing credentials"),iconSvgInline:()=>O,enabled:({nodes:e})=>{if(e.length!==1||!e[0])return!1;const t=e[0];if(!H(t))return!1;const n=t.attributes?.config||{};return!!v(n)},async exec({nodes:e}){const{login:t,password:n}=await D(M(()=>L(()=>import("./CredentialsDialog-CtO6QLed.chunk.mjs"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]),import.meta.url)))??{};if(t&&n)try{await R(e[0],t,n),w(s("files_external","Credentials successfully set"))}catch(r){h(s("files_external","Error while setting credentials: {error}",{error:r.message}))}return null},order:-1e3,default:x.DEFAULT,inline:()=>!0},$='',o=`/files/${c()?.uid}`;function B(e){const t=(e.path+"/"+e.name).replace(/^\//gm,"");return new b({id:e.id,source:y("dav"+o+"/"+t),root:o,owner:c()?.uid||null,permissions:e.config.status!==a.Success?d.NONE:e?.permissions||d.READ,attributes:{displayName:t,...e}})}async function Z(){const e=(await l.get(A("apps/files_external/api/v1/mounts"))).data.ocs.data.map(B);return{folder:new b({id:0,source:y("dav"+o),root:o,owner:c()?.uid||null,permissions:d.READ}),contents:e}}function j(e,t=!0){const n=t?"userglobalstorages":"userstorages";return l.get(m(`apps/files_external/${n}/${e}?testOnly=false`))}const q={id:"check-external-storage",displayName:()=>"",iconSvgInline:()=>"",enabled:({nodes:e})=>e.every(t=>H(t)===!0),exec:async()=>null,async renderInline({nodes:e}){if(e.length!==1||!e[0])return null;const t=e[0],n=document.createElement("span");n.className="files-list__row-status",n.innerHTML=s("files_external","Checking storage …");let r;try{const{data:i}=await j(t.id,t.attributes.scope==="system");if(r=i,t.attributes.config=r,_("files:node:updated",t),r.status!==a.Success)throw new Error(r?.statusMessage||s("files_external","There was an error with this external storage."));n.remove()}catch(i){i.response&&!r&&S(s("files_external","We were unable to check the external storage {basename}",{basename:t.basename})),n.innerHTML="";const f=r?v(r):!1,g=document.createElement("span");g.classList.add(`files-list__row-status--${f?"warning":"error"}`),f||(n.innerHTML=$,n.title=i.message),n.prepend(g)}return n},order:10},W={id:"open-in-files-external-storage",displayName:({nodes:e})=>(e?.[0]?.attributes?.config||{status:a.Indeterminate}).status!==a.Success?s("files_external","Examine this faulty external storage configuration"):s("files","Open in Files"),iconSvgInline:()=>"",enabled:({view:e})=>e.id==="extstoragemounts",async exec({nodes:e}){if(e[0]?.attributes?.config?.status!==a.Success){if(await T({name:s("files_external","External mount error"),text:s("files_external","There was an error with this external storage. Do you want to review this mount point config in the settings page?"),labelConfirm:s("files_external","Open settings"),labelReject:s("files_external","Ignore")})===!0){const t=c()?.isAdmin?"admin":"user";window.location.href=m(`/settings/${t}/externalstorages`)}return null}return window.OCP.Files.Router.goToRoute(null,{view:"files"},{dir:e[0].path}),null},order:-1e3,default:x.HIDDEN},Y=V("files_external","allowUserMounting",!1),z=C();z.register(new E({id:"extstoragemounts",name:s("files_external","External storage"),caption:s("files_external","List of external storage."),emptyCaption:Y?s("files_external","There is no external storage configured. You can configure them in your Personal settings."):s("files_external","There is no external storage configured and you don't have the permission to configure them."),emptyTitle:s("files_external","No external storage"),icon:P,order:30,columns:[new p({id:"storage-type",title:s("files_external","Storage type"),render(e){const t=e.attributes?.backend||s("files_external","Unknown"),n=document.createElement("span");return n.textContent=t,n}}),new p({id:"scope",title:s("files_external","Scope"),render(e){const t=document.createElement("span");let n=s("files_external","Personal");return e.attributes?.scope==="system"&&(n=s("files_external","System")),t.textContent=n,t}})],getContents:Z})),u(U),u(q),u(W); //# sourceMappingURL=files_external-init.mjs.map diff --git a/dist/files_external-settings.css b/dist/files_external-settings.css index a83da52beab..da1852ce79c 100644 --- a/dist/files_external-settings.css +++ b/dist/files_external-settings.css @@ -1,5 +1,5 @@ /* extracted by css-entry-points-plugin */ -@import './files_external-files_external-settings-DF-XZBpX.chunk.css'; +@import './files_external-files_external-settings-BB673f-7.chunk.css'; @import './common-createElementId-DhjFt1I9-C_oBIsvc.chunk.css'; @import './common-logger-D3RVzcfQ-BE3lcFW4.chunk.css'; @import './common-mdi-BWNFKLbC.chunk.css'; @@ -8,7 +8,7 @@ @import './common-NcModal-DUWLRm_F-BsKc2RT9.chunk.css'; @import './common-TrashCanOutline-BYHcrfvW.chunk.css'; @import './common-index-DYA_tnKg.chunk.css'; -@import './common-index-980JFXIN.chunk.css'; +@import './common-index-BWhNCeJl.chunk.css'; @import './common-NcInputField-B1bGxYHt-BYHxARP-.chunk.css'; @import './common-NcContent-BhMoPROW-CuEPejA5.chunk.css'; @import './common-PencilOutline-B3DMd8SU.chunk.css'; @@ -19,7 +19,7 @@ @import './common-NcAvatar-M3-CbKbq-DTVmI7NO.chunk.css'; @import './common-NcPasswordField-Be5_qcfm-Crp_EMfV.chunk.css'; @import './common-NcBreadcrumbs-5gl8Syfa-CfbvucBX.chunk.css'; -@import './common-NcTextArea-Dxzj4zdb-B-B2llha.chunk.css'; +@import './common-NcTextArea-Dxzj4zdb-CzDMVgRO.chunk.css'; @import './common-NcActionSeparator-Ct2RnclR-pXJ_-D_I.chunk.css'; @import './common-NcCheckboxRadioSwitch-D8Dfv4iw-CPGkDj-p.chunk.css'; @import './common-Plus-Som-mR4B.chunk.css'; diff --git a/dist/files_external-settings.mjs b/dist/files_external-settings.mjs index 5cb527c2af9..7030b0cde06 100644 --- a/dist/files_external-settings.mjs +++ b/dist/files_external-settings.mjs @@ -1,2 +1,2 @@ -import{d as ke,c as Ve}from"./pinia-CLibr4cC.chunk.mjs";import{H as K,a9 as ee,R as Se,v as C,b as $,n as B,o as u,c as k,u as e,l as M,z,f as h,y as x,g as y,t as v,F as S,C as Ce,B as O,L as W,M as Y,h as T,s as Z,a1 as Q,U as ie,k as b,w,j as V,N as Me,e as Ae}from"./Web-BwmPK40i.chunk.mjs";import{s as Ue,g as $e,t as Te,u as Oe,l as Ne,v as qe,N as re,k as Pe}from"./mdi-Lt-19ASw.chunk.mjs";import{_ as N,l as A}from"./public-C1mLBHT3.chunk.mjs";import{t as n,a as Ee}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{N as P}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import{N as F}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{N as ce}from"./ContentCopy-BF1gBM5z.chunk.mjs";import{N as Re,s as Fe}from"./index-BW4M2n71.chunk.mjs";import{N as ae}from"./index-BOH7nBEM.chunk.mjs";import{_ as _e}from"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import{c as U}from"./index-BLNGy7h5.chunk.mjs";import{b as R}from"./index-B-dGqfIG.chunk.mjs";import{N as Be}from"./NcTextArea-Dxzj4zdb-stc727hj.chunk.mjs";import{b as Le}from"./index-DlyLvrtV.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";/* empty css */import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import{N as me}from"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{N as E}from"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import{N as je}from"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./index-CMXcwXc6.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import"./index-C_wPY1fR.chunk.mjs";/* empty css */import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import{N as De}from"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./index-xEyWukTf.chunk.mjs";import"./NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs";import{N as He}from"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import{_ as pe}from"./AuthMechanismRsa-Bue2F6rp.chunk.mjs";import{C as H,a as ge,M as G,S as L,b as Ge,c as Ie}from"./types-BINwlUX8.chunk.mjs";import{a as fe,P as I}from"./index-BU6wm4Hd.chunk.mjs";import{a as te,d as le}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{l as ve}from"./logger-n22jyIXx.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";const Qe='',J=Se(new Map);function be(l){const a=C(()=>ee(l).map(t=>({id:`user:${t}`,user:t,displayName:J.get(t)||t})));return K(async()=>{const t=ee(l).filter(r=>!J.has(r));if(t.length>0){const{data:r}=await U.post(R("/displaynames"),{users:t});for(const[d,c]of Object.entries(r.users))J.set(d,c)}}),a}function ze(l){return C(()=>ee(l).map(ye))}function ye(l){return{id:l,isNoUser:!0,displayName:l,iconSvg:Qe}}const Ze=$({__name:"ApplicableEntities",props:{groups:{default:()=>[]},groupsModifiers:{},users:{default:()=>[]},usersModifiers:{}},emits:["update:groups","update:users"],setup(l){const a=B(l,"groups"),t=B(l,"users"),r=M([]),d=be(t),c=ze(a),o=C({get(){return[...c.value,...d.value]},set(p){t.value=p.filter(_=>_.user).map(_=>_.user),a.value=p.filter(_=>_.isNoUser).map(_=>_.id)}}),i=Le(s,500);async function s(p){const{data:_}=await U.get(R("apps/files_external/ajax/applicable"),{params:{pattern:p,limit:20}}),m=[...r.value.map(g=>[g.id,g]),...Object.entries(_.groups).map(([g,f])=>[g,{...ye(g),displayName:f}]),...Object.entries(_.users).map(([g,f])=>[`user:${g}`,{id:`user:${g}`,user:g,displayName:f}])];r.value=[...new Map(m).values()]}return(p,_)=>(u(),k(e(Be),{modelValue:o.value,"onUpdate:modelValue":_[0]||(_[0]=m=>o.value=m),keepOpen:"",multiple:"",options:r.value,inputLabel:e(n)("files_external","Restrict to"),onSearch:e(i)},null,8,["modelValue","options","inputLabel","onSearch"]))}}),Ke=$({__name:"AuthMechanismConfiguration",props:Z({authMechanism:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(l){const a=B(l,"modelValue"),t=l,r=C(()=>{if(!t.authMechanism.configuration)return;const s=Object.entries(t.authMechanism.configuration).filter(([,p])=>!(p.flags&H.UserProvided));return Object.fromEntries(s)}),d=C(()=>window.OCA.FilesExternal.AuthMechanism.getHandler(t.authMechanism)),c=C(()=>{if(!r.value)return!1;for(const s of Object.values(r.value))if(!(s.flags&H.Hidden||s.flags&H.UserProvided))return!0;return!1}),o=M(!1);K(async()=>{d.value&&(o.value=!0,await window.customElements.whenDefined(d.value.tagName),o.value=!1)}),z(r,()=>{for(const s in r.value)s in a.value||(a.value[s]=r.value[s]?.type===ge.Boolean?!1:"")});function i(s){const p=[s.detail].flat()[0];a.value={...a.value,...p}}return(s,p)=>c.value?(u(),h("fieldset",{key:0,class:x(s.$style.authMechanismConfiguration)},[y("legend",null,v(e(n)("files_external","Authentication")),1),d.value?(u(),h(S,{key:0},[o.value?(u(),k(e(me),{key:0})):(u(),k(Ce(d.value.tagName),{key:1,".modelValue":a.value,".authMechanism":l.authMechanism,"onUpdate:modelValue":i},null,40,[".modelValue",".authMechanism"]))],64)):(u(!0),h(S,{key:1},O(r.value,(_,m)=>W((u(),k(pe,{key:_.value,modelValue:a.value[m],"onUpdate:modelValue":g=>a.value[m]=g,"config-key":m,"config-option":_},null,8,["modelValue","onUpdate:modelValue","config-key","config-option"])),[[Y,!(_.flags&e(H).Hidden)]])),128))],2)):T("",!0)}}),We="_authMechanismConfiguration_kpcpy_2",Ye={authMechanismConfiguration:We},Je={$style:Ye},Xe=N(Ke,[["__cssModules",Je]]),ea=$({__name:"BackendConfiguration",props:Z({configuration:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(l){const a=B(l,"modelValue"),t=l;return z(()=>t.configuration,()=>{for(const r in t.configuration)r in a.value||(a.value[r]=t.configuration[r]?.defaultValue??(t.configuration[r]?.type===ge.Boolean?!1:""))},{immediate:!0}),(r,d)=>(u(),h("fieldset",{class:x(r.$style.backendConfiguration)},[y("legend",null,v(e(n)("files_external","Storage configuration")),1),(u(!0),h(S,null,O(l.configuration,(c,o)=>W((u(),k(pe,{key:c.value,modelValue:a.value[o],"onUpdate:modelValue":i=>a.value[o]=i,configKey:o,configOption:c},null,8,["modelValue","onUpdate:modelValue","configKey","configOption"])),[[Y,!(c.flags&e(H).Hidden)]])),128))],2))}}),aa="_backendConfiguration_1sf6y_2",ta={backendConfiguration:aa},la={$style:ta},sa=N(ea,[["__cssModules",la]]),{isAdmin:na}=A("files_external","settings"),se=ke("files_external--storages",()=>{const l=M([]),a=M([]);async function t(m){const g=R("apps/files_external/globalstorages"),{data:f}=await U.post(g,Q(m),{confirmPassword:I.Strict});l.value.push(j(f))}async function r(m){const g=R("apps/files_external/userstorages"),{data:f}=await U.post(g,Q(m),{confirmPassword:I.Strict});a.value.push(j(f))}async function d(m){await U.delete(p(m),{confirmPassword:I.Strict}),m.type==="personal"?a.value=a.value.filter(g=>g.id!==m.id):l.value=l.value.filter(g=>g.id!==m.id)}async function c(m){const{data:g}=await U.put(p(m),Q(m),{confirmPassword:I.Strict});_(j(g))}async function o(m){const{data:g}=await U.get(p(m));_(j(g))}return s(),{globalStorages:l,userStorages:a,createGlobalStorage:t,createUserStorage:r,deleteStorage:d,reloadStorage:o,updateStorage:c};async function i(m){const g=`apps/files_external/${m}`,{data:f}=await U.get(R(g));return Object.values(f).map(j)}async function s(){fe(U),na?l.value=await i("globalstorages"):(a.value=await i("userstorages"),l.value=await i("userglobalstorages"))}function p(m){const g=m.type==="personal"?"userstorages":"globalstorages";return R(`apps/files_external/${g}/${m.id}`)}function _(m){if(m.type==="personal"){const g=a.value.findIndex(f=>f.id===m.id);a.value.splice(g,1,m)}else{const g=l.value.findIndex(f=>f.id===m.id);l.value.splice(g,1,m)}}});function j(l){return{...l,mountOptions:he(l.mountOptions)}}function he(l){const a={...l};return a.encrypt=D(a.encrypt,!0),a.previews=D(a.previews,!0),a.enable_sharing=D(a.enable_sharing,!1),a.filesystem_check_changes=typeof a.filesystem_check_changes=="string"?Number.parseInt(a.filesystem_check_changes):a.filesystem_check_changes??G.OncePerRequest,a.encoding_compatibility=D(a.encoding_compatibility,!1),a.readonly=D(a.readonly,!1),a}function D(l,a=!1){return l===void 0?a:l===!0||l==="true"||l==="1"}const oa=["id","aria-labelledby"],ia=$({__name:"MountOptions",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(l){const a=B(l,"modelValue");K(()=>{Object.keys(a.value).length===0&&(a.value=he(a.value))});const{hasEncryption:t}=A("files_external","settings"),r=ie(),d=ie(),c=M(!1),o=[{label:n("files_external","Never"),value:G.Never},{label:n("files_external","Once every direct access"),value:G.OncePerRequest},{label:n("files_external","Always"),value:G.Always}],i=C({get(){return o.find(s=>s.value===a.value.filesystem_check_changes)},set(s){a.value.filesystem_check_changes=s?.value??G.OncePerRequest}});return(s,p)=>(u(),h("div",{class:x(s.$style.mountOptions)},[b(e(P),{id:e(r),"aria-controls":e(d),"aria-expanded":c.value,variant:"tertiary-no-background",onClick:p[0]||(p[0]=_=>c.value=!c.value)},{icon:w(()=>[b(e(F),{directional:"",path:c.value?e(Ue):e($e)},null,8,["path"])]),default:w(()=>[V(" "+v(e(n)("files_external","Mount options")),1)]),_:1},8,["id","aria-controls","aria-expanded"]),W(y("fieldset",{id:e(d),class:x(s.$style.mountOptions__fieldset),"aria-labelledby":e(r)},[b(e(ae),{modelValue:i.value,"onUpdate:modelValue":p[1]||(p[1]=_=>i.value=_),inputLabel:e(n)("files_external","Check filesystem changes"),options:o},null,8,["modelValue","inputLabel"]),b(e(E),{modelValue:l.modelValue.readonly,"onUpdate:modelValue":p[2]||(p[2]=_=>l.modelValue.readonly=_),type:"switch"},{default:w(()=>[V(v(e(n)("files_external","Read only")),1)]),_:1},8,["modelValue"]),b(e(E),{modelValue:l.modelValue.previews,"onUpdate:modelValue":p[3]||(p[3]=_=>l.modelValue.previews=_),type:"switch"},{default:w(()=>[V(v(e(n)("files_external","Enable previews")),1)]),_:1},8,["modelValue"]),b(e(E),{modelValue:l.modelValue.enable_sharing,"onUpdate:modelValue":p[4]||(p[4]=_=>l.modelValue.enable_sharing=_),type:"switch"},{default:w(()=>[V(v(e(n)("files_external","Enable sharing")),1)]),_:1},8,["modelValue"]),e(t)?(u(),k(e(E),{key:0,modelValue:l.modelValue.encrypt,"onUpdate:modelValue":p[5]||(p[5]=_=>l.modelValue.encrypt=_),type:"switch"},{default:w(()=>[V(v(e(n)("files_external","Enable encryption")),1)]),_:1},8,["modelValue"])):T("",!0),b(e(E),{modelValue:l.modelValue.encoding_compatibility,"onUpdate:modelValue":p[6]||(p[6]=_=>l.modelValue.encoding_compatibility=_),type:"switch"},{default:w(()=>[V(v(e(n)("files_external","Compatibility with Mac NFD encoding (slow)")),1)]),_:1},8,["modelValue"])],10,oa),[[Y,c.value]])],2))}}),ra="_mountOptions_1fqyb_2",ua="_mountOptions__fieldset_1fqyb_12",da={mountOptions:ra,mountOptions__fieldset:ua},ca={$style:da},_a=N(ia,[["__cssModules",ca]]),{isAdmin:ue}=A("files_external","settings"),ma=A("files_external","allowedBackends"),de=A("files_external","backends").filter(l=>ma.includes(l.identifier)),pa=A("files_external","authMechanisms"),ga=$({__name:"AddExternalStorageDialog",props:Z({storage:{default:()=>({backendOptions:{},mountOptions:{},type:ue?"system":"personal"})}},{open:{type:Boolean,default:!0},openModifiers:{}}),emits:Z(["close"],["update:open"]),setup(l){const a=B(l,"open"),t=M(structuredClone(Q(l.storage)));K(()=>{a.value&&(t.value=structuredClone(Q(l.storage)))});const r=C({get(){return de.find(o=>o.identifier===t.value.backend)},set(o){t.value.backend=o?.identifier}}),d=C(()=>pa.filter(({scheme:o})=>r.value?.authSchemes[o])),c=C({get(){return d.value.find(o=>o.identifier===t.value.authMechanism)},set(o){t.value.authMechanism=o?.identifier}});return z(d,()=>{d.value.length===1&&(t.value.authMechanism=d.value[0].identifier)}),(o,i)=>(u(),k(e(Re),{open:a.value,"onUpdate:open":[i[9]||(i[9]=s=>a.value=s),i[11]||(i[11]=s=>s||o.$emit("close"))],isForm:"",contentClasses:o.$style.externalStorageDialog,name:t.value.id?e(n)("files_external","Edit storage"):e(n)("files_external","Add storage"),onSubmit:i[10]||(i[10]=s=>o.$emit("close",t.value))},{actions:w(()=>[l.storage.id?(u(),k(e(P),{key:0,onClick:i[8]||(i[8]=s=>o.$emit("close"))},{default:w(()=>[V(v(e(n)("files_external","Cancel")),1)]),_:1})):T("",!0),b(e(P),{variant:"primary",type:"submit"},{default:w(()=>[V(v(l.storage.id?e(n)("files_external","Edit"):e(n)("files_external","Create")),1)]),_:1})]),default:w(()=>[b(e(_e),{modelValue:t.value.mountPoint,"onUpdate:modelValue":i[0]||(i[0]=s=>t.value.mountPoint=s),label:e(n)("files_external","Folder name"),required:""},null,8,["modelValue","label"]),b(_a,{modelValue:t.value.mountOptions,"onUpdate:modelValue":i[1]||(i[1]=s=>t.value.mountOptions=s)},null,8,["modelValue"]),e(ue)?(u(),k(Ze,{key:0,groups:t.value.applicableGroups,"onUpdate:groups":i[2]||(i[2]=s=>t.value.applicableGroups=s),users:t.value.applicableUsers,"onUpdate:users":i[3]||(i[3]=s=>t.value.applicableUsers=s)},null,8,["groups","users"])):T("",!0),b(e(ae),{modelValue:r.value,"onUpdate:modelValue":i[4]||(i[4]=s=>r.value=s),options:e(de),disabled:!!(t.value.id&&t.value.backend),inputLabel:e(n)("files_external","External storage"),label:"name",required:""},null,8,["modelValue","options","disabled","inputLabel"]),b(e(ae),{modelValue:c.value,"onUpdate:modelValue":i[5]||(i[5]=s=>c.value=s),options:d.value,disabled:!t.value.backend||d.value.length<=1||!!(t.value.id&&t.value.authMechanism),inputLabel:e(n)("files_external","Authentication"),label:"name",required:""},null,8,["modelValue","options","disabled","inputLabel"]),r.value&&t.value.backendOptions?(u(),k(sa,{key:1,modelValue:t.value.backendOptions,"onUpdate:modelValue":i[6]||(i[6]=s=>t.value.backendOptions=s),class:x(o.$style.externalStorageDialog__configuration),configuration:r.value.configuration},null,8,["modelValue","class","configuration"])):T("",!0),c.value&&t.value.backendOptions?(u(),k(Xe,{key:2,modelValue:t.value.backendOptions,"onUpdate:modelValue":i[7]||(i[7]=s=>t.value.backendOptions=s),class:x(o.$style.externalStorageDialog__configuration),authMechanism:c.value},null,8,["modelValue","class","authMechanism"])):T("",!0)]),_:1},8,["open","contentClasses","name"]))}}),fa="_externalStorageDialog_9wew8_2",va="_externalStorageDialog__configuration_9wew8_9",ba={externalStorageDialog:fa,externalStorageDialog__configuration:va},ya={$style:ba},xe=N(ga,[["__cssModules",ya]]),ha={class:"hidden-visually"},xa={key:0},wa=$({__name:"ExternalStorageTableRow",props:{storage:{},isAdmin:{type:Boolean}},setup(l){const a=l,t=se(),r=A("files_external","backends"),d=C(()=>r.find(f=>f.identifier===a.storage.backend).name),c=A("files_external","authMechanisms"),o=C(()=>c.find(f=>f.identifier===a.storage.authMechanism).name),i=M(!1),s=C(()=>{if(i.value)return{icon:"loading",label:n("files_external","Checking …")};const f=a.storage.status??L.Indeterminate,ne=a.storage.statusMessage||Ge[f],q=Ie[f],oe=f===L.NetworkError||f===L.Timeout,we=!oe&&f!==L.Success&&f!==L.Indeterminate;return{icon:q,label:ne,isWarning:oe,isError:we}}),p=be(()=>a.storage.applicableUsers||[]);async function _(){await t.deleteStorage(a.storage)}async function m(){const f=await Fe(xe,{storage:a.storage});f&&await t.updateStorage(f)}async function g(){i.value=!0;try{await t.reloadStorage(a.storage)}finally{i.value=!1}}return(f,ne)=>(u(),h("tr",{class:x(f.$style.storageTableRow)},[y("td",null,[y("span",ha,v(s.value.label),1),b(e(P),{"aria-label":e(n)("files_external","Recheck status"),title:s.value.label,variant:"tertiary-no-background",onClick:g},{icon:w(()=>[s.value.icon==="loading"?(u(),k(e(me),{key:0})):(u(),k(e(F),{key:1,class:x({[f.$style.storageTableRow__status_error]:s.value.isError,[f.$style.storageTableRow__status_warning]:s.value.isWarning}),path:s.value.icon},null,8,["class","path"]))]),_:1},8,["aria-label","title"])]),y("td",null,v(l.storage.mountPoint),1),y("td",null,v(d.value),1),y("td",null,v(o.value),1),l.isAdmin?(u(),h("td",xa,[y("div",{class:x(f.$style.storageTableRow__cellApplicable)},[(u(!0),h(S,null,O(l.storage.applicableGroups,q=>(u(),k(e(je),{key:q,iconPath:e(Te),noClose:"",text:q},null,8,["iconPath","text"]))),128)),(u(!0),h(S,null,O(e(p),q=>(u(),k(e(He),{key:q.user,displayName:q.displayName,size:24,user:q.user},null,8,["displayName","user"]))),128))],2)])):T("",!0),y("td",null,[l.isAdmin||l.storage.type==="personal"?(u(),h("div",{key:0,class:x(f.$style.storageTableRow__cellActions)},[b(e(P),{"aria-label":e(n)("files_external","Edit"),title:e(n)("files_external","Edit"),onClick:m},{icon:w(()=>[b(e(F),{path:e(Oe)},null,8,["path"])]),_:1},8,["aria-label","title"]),b(e(P),{"aria-label":e(n)("files_external","Delete"),title:e(n)("files_external","Delete"),variant:"error",onClick:_},{icon:w(()=>[b(e(F),{path:e(Ne)},null,8,["path"])]),_:1},8,["aria-label","title"])],2)):(u(),k(e(F),{key:1,inline:"",path:e(qe),name:e(n)("files_external","System provided storage"),title:e(n)("files_external","System provided storage")},null,8,["path","name","title"]))])],2))}}),ka="_storageTableRow__cellActions_1k62p_2",Va="_storageTableRow__cellApplicable_1k62p_7",Sa="_storageTableRow__status_warning_1k62p_17",Ca="_storageTableRow__status_error_1k62p_21",Ma={storageTableRow__cellActions:ka,storageTableRow__cellApplicable:Va,storageTableRow__status_warning:Sa,storageTableRow__status_error:Ca},Aa={$style:Ma},Ua=N(wa,[["__cssModules",Aa]]),$a=["aria-label"],Ta={class:"hidden-visually"},Oa={key:0},Na={class:"hidden-visually"},qa=$({__name:"ExternalStorageTable",setup(l){const a=se(),{isAdmin:t}=A("files_external","settings"),r=C(()=>t?a.globalStorages:[...a.userStorages,...a.globalStorages]);return(d,c)=>(u(),h("table",{class:x(d.$style.storageTable),"aria-label":e(n)("files_external","External storages")},[y("thead",{class:x(d.$style.storageTable__header)},[y("tr",null,[y("th",{class:x(d.$style.storageTable__headerStatus)},[y("span",Ta,v(e(n)("files_external","Status")),1)],2),y("th",{class:x(d.$style.storageTable__headerFolder)},v(e(n)("files_external","Folder name")),3),y("th",{class:x(d.$style.storageTable__headerBackend)},v(e(n)("files_external","External storage")),3),y("th",{class:x(d.$style.storageTable__headerAuthentication)},v(e(n)("files_external","Authentication")),3),e(t)?(u(),h("th",Oa,v(e(n)("files_external","Restricted to")),1)):T("",!0),y("th",{class:x(d.$style.storageTable__headerActions)},[y("span",Na,v(e(n)("files_external","Actions")),1)],2)])],2),y("tbody",null,[(u(!0),h(S,null,O(r.value,o=>(u(),k(Ua,{key:o.id,isAdmin:e(t),storage:o},null,8,["isAdmin","storage"]))),128))])],10,$a))}}),Pa="_storageTable_1dqte_2",Ea="_storageTable__header_1dqte_11",Ra="_storageTable__headerStatus_1dqte_16",Fa="_storageTable__headerFolder_1dqte_20",Ba="_storageTable__headerBackend_1dqte_24",La="_storageTable__headerFAuthentication_1dqte_28",ja="_storageTable__headerActions_1dqte_32",Da={storageTable:Pa,storageTable__header:Ea,storageTable__headerStatus:Ra,storageTable__headerFolder:Fa,storageTable__headerBackend:Ba,storageTable__headerFAuthentication:La,storageTable__headerActions:ja},Ha={$style:Da},Ga=N(qa,[["__cssModules",Ha]]),Ia=$({__name:"UserMountSettings",setup(l){const a=A("files_external","user-mounting"),t=A("files_external","backends").filter(c=>c.identifier!=="local"),r=M(a.allowUserMounting),d=M(a.allowedBackends);return z(r,()=>{const c=!r.value;window.OCP.AppConfig.setValue("files_external","allow_user_mounting",r.value?"yes":"no",{success:()=>le(n("files_external","Saved")),error:()=>{r.value=c,te(n("files_external","Error while saving"))}})}),z(d,(c,o)=>{window.OCP.AppConfig.setValue("files_external","user_mounting_backends",c.join(","),{success:()=>le(n("files_external","Saved allowed backends")),error:()=>{te(n("files_external","Failed to save allowed backends")),d.value=o}})}),(c,o)=>(u(),h("form",null,[y("h3",{class:x(c.$style.userMountSettings__heading)},v(e(n)("files_external","Advanced options for external storage mounts")),3),b(e(E),{modelValue:r.value,"onUpdate:modelValue":o[0]||(o[0]=i=>r.value=i),type:"switch"},{default:w(()=>[V(v(e(n)("files_external","Allow people to mount external storage")),1)]),_:1},8,["modelValue"]),W(y("fieldset",{class:x(c.$style.userMountSettings__backends)},[y("legend",null,v(e(n)("files_external","External storage backends people are allowed to mount")),1),(u(!0),h(S,null,O(e(t),i=>(u(),k(e(E),{key:i.identifier,modelValue:d.value,"onUpdate:modelValue":o[1]||(o[1]=s=>d.value=s),value:i.identifier,name:"allowUserMountingBackends[]"},{default:w(()=>[V(v(i.name),1)]),_:2},1032,["modelValue","value"]))),128))],2),[[Y,r.value]])]))}}),Qa="_userMountSettings__heading_59moz_2",za="_userMountSettings__backends_59moz_9",Za={userMountSettings__heading:Qa,userMountSettings__backends:za},Ka={$style:Za},Wa=N(Ia,[["__cssModules",Ka]]);const Ya=["aria-label"],Ja=$({__name:"ExternalStoragesSection",setup(l){const a=A("files_external","settings",{docUrl:"",dependencyIssues:{messages:null,modules:null},isAdmin:!1}),t=se(),r=a.dependencyIssues?.messages??[],d=a.dependencyIssues?.modules??{},c=M(!1),o=M();async function i(s){if(c.value=!1,!!s)try{a.isAdmin?await t.createGlobalStorage(s):await t.createUserStorage(s),o.value=void 0}catch(p){ve.error("Failed to add external storage",{error:p,storage:s}),o.value={...s},c.value=!0}}return(s,p)=>(u(),k(e(ce),{docUrl:e(a).docUrl,name:e(n)("files_external","External storage"),description:e(n)("files_external","External storage enables you to mount external storage services and devices as secondary Nextcloud storage devices.")+(e(a).isAdmin?" "+e(n)("files_external","You may also allow people to mount their own external storage services."):"")},{default:w(()=>[(u(!0),h(S,null,O(e(r),(_,m)=>(u(),k(e(re),{key:m,type:"error"},{default:w(()=>[V(v(_),1)]),_:2},1024))),128)),(u(!0),h(S,null,O(e(d),(_,m)=>(u(),k(e(re),{key:m,type:"warning"},{default:w(()=>[y("p",null,[m==="curl"?(u(),h(S,{key:0},[V(v(e(n)("files_external","The cURL support in PHP is not enabled or installed.")),1)],64)):m==="ftp"?(u(),h(S,{key:1},[V(v(e(n)("files_external","The FTP support in PHP is not enabled or installed.")),1)],64)):(u(),h(S,{key:2},[V(v(e(n)("files_external","{module} is not installed.",{module:m})),1)],64)),V(" "+v(e(Ee)("files_external","Please ask your system administrator to install it as otherwise mounting the following backend is not possible:","Please ask your system administrator to install it as otherwise mounting the following backends is not possible:",_.length)),1)]),y("ul",{class:x(s.$style.externalStoragesSection__dependantList),"aria-label":e(n)("files_external","Dependant backends")},[(u(!0),h(S,null,O(_,g=>(u(),h("li",{key:g},v(g),1))),128))],10,Ya)]),_:2},1024))),128)),T("",!0),b(Ga),b(e(P),{class:x(s.$style.externalStoragesSection__newStorageButton),variant:"primary",onClick:p[0]||(p[0]=_=>c.value=!c.value)},{icon:w(()=>[b(e(F),{path:e(Pe)},null,8,["path"])]),default:w(()=>[V(" "+v(e(n)("files_external","Add external storage")),1)]),_:1},8,["class"]),b(xe,{open:c.value,"onUpdate:open":p[1]||(p[1]=_=>c.value=_),storage:o.value,onClose:i},null,8,["open","storage"]),e(a).isAdmin?(u(),k(Wa,{key:1})):T("",!0)]),_:1},8,["docUrl","name","description"]))}}),Xa="_externalStoragesSection__dependantList_atsmn_2",et="_externalStoragesSection__newStorageButton_atsmn_7",at={externalStoragesSection__dependantList:Xa,externalStoragesSection__newStorageButton:et},tt={$style:at},lt=N(Ja,[["__cssModules",tt]]),st=$({__name:"GlobalCredentialsSection",setup(l){const a=A("files_external","global-credentials"),t=M(!1),r=M(a.user),d=M(a.password);fe(U);async function c(){try{t.value=!0;const{data:o}=await U.post(R("apps/files_external/globalcredentials"),{uid:a.uid,user:r.value,password:d.value},{confirmPassword:I.Strict});if(o){le(n("files_external","Global credentials saved"));return}}catch(o){ve.error(o)}finally{t.value=!1}te(n("files_external","Could not save global credentials")),r.value=a.user,d.value=a.password}return(o,i)=>(u(),k(e(ce),{name:e(n)("files_external","Global credentials"),description:e(n)("files_external","Global credentials can be used to authenticate with multiple external storages that have the same credentials.")},{default:w(()=>[y("form",{id:"global_credentials",class:x(o.$style.globalCredentialsSectionForm),autocomplete:"false",onSubmit:Me(c,["prevent"])},[b(e(_e),{modelValue:r.value,"onUpdate:modelValue":i[0]||(i[0]=s=>r.value=s),name:"username",autocomplete:"false",label:e(n)("files_external","Login")},null,8,["modelValue","label"]),b(e(De),{modelValue:d.value,"onUpdate:modelValue":i[1]||(i[1]=s=>d.value=s),name:"password",autocomplete:"false",label:e(n)("files_external","Password")},null,8,["modelValue","label"]),b(e(P),{class:x(o.$style.globalCredentialsSectionForm__submit),disabled:t.value,variant:"primary",type:"submit"},{default:w(()=>[V(v(t.value?e(n)("files_external","Saving …"):e(n)("files_external","Save")),1)]),_:1},8,["class","disabled"])],34)]),_:1},8,["name","description"]))}}),nt="_globalCredentialsSectionForm_bgjv2_2",ot="_globalCredentialsSectionForm__submit_bgjv2_10",it={globalCredentialsSectionForm:nt,globalCredentialsSectionForm__submit:ot},rt={$style:it},ut=N(st,[["__cssModules",rt]]),dt=$({__name:"FilesExternalSettings",setup(l){return(a,t)=>(u(),h(S,null,[b(lt),b(ut)],64))}}),ct=Ve(),X=Ae(dt);X.config.idPrefix="files-external",X.use(ct),X.mount("#files-external"); +import{d as ke,c as Ve}from"./pinia-CLibr4cC.chunk.mjs";import{H as K,a9 as ee,R as Se,v as C,b as $,n as B,o as u,c as k,u as e,l as M,z,f as h,y as x,g as y,t as v,F as S,C as Ce,B as O,L as W,M as Y,h as T,s as Z,a1 as Q,U as ie,k as b,w,j as V,N as Me,e as Ae}from"./Web-BwmPK40i.chunk.mjs";import{s as Ue,g as $e,t as Te,u as Oe,l as Ne,v as qe,N as re,k as Pe}from"./mdi-Lt-19ASw.chunk.mjs";import{_ as N,l as A}from"./public-C1mLBHT3.chunk.mjs";import{t as n,a as Ee}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{N as P}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import{N as F}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{N as ce}from"./ContentCopy-BF1gBM5z.chunk.mjs";import{N as Re,s as Fe}from"./index-BW4M2n71.chunk.mjs";import{N as ae}from"./index-dqLzhRZM.chunk.mjs";import{_ as _e}from"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import{c as U}from"./index-BLNGy7h5.chunk.mjs";import{b as R}from"./index-B-dGqfIG.chunk.mjs";import{N as Be}from"./NcTextArea-Dxzj4zdb-BPZd41PF.chunk.mjs";import{b as Le}from"./index-DlyLvrtV.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";/* empty css */import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import{N as me}from"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{N as E}from"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import{N as je}from"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./index-CQct0mOs.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import"./index-BrjNu3x_.chunk.mjs";/* empty css */import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import{N as De}from"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./index-CcOuN-F7.chunk.mjs";import"./NcSelectTags-D7qWNjXa-gqJ9LLZU.chunk.mjs";import{N as He}from"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import{_ as pe}from"./AuthMechanismRsa-KxGDDW5e.chunk.mjs";import{C as H,a as ge,M as G,S as L,b as Ge,c as Ie}from"./types-BINwlUX8.chunk.mjs";import{a as fe,P as I}from"./index-BU6wm4Hd.chunk.mjs";import{a as te,d as le}from"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import{l as ve}from"./logger-n22jyIXx.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";const Qe='',J=Se(new Map);function be(l){const a=C(()=>ee(l).map(t=>({id:`user:${t}`,user:t,displayName:J.get(t)||t})));return K(async()=>{const t=ee(l).filter(r=>!J.has(r));if(t.length>0){const{data:r}=await U.post(R("/displaynames"),{users:t});for(const[d,c]of Object.entries(r.users))J.set(d,c)}}),a}function ze(l){return C(()=>ee(l).map(ye))}function ye(l){return{id:l,isNoUser:!0,displayName:l,iconSvg:Qe}}const Ze=$({__name:"ApplicableEntities",props:{groups:{default:()=>[]},groupsModifiers:{},users:{default:()=>[]},usersModifiers:{}},emits:["update:groups","update:users"],setup(l){const a=B(l,"groups"),t=B(l,"users"),r=M([]),d=be(t),c=ze(a),o=C({get(){return[...c.value,...d.value]},set(p){t.value=p.filter(_=>_.user).map(_=>_.user),a.value=p.filter(_=>_.isNoUser).map(_=>_.id)}}),i=Le(s,500);async function s(p){const{data:_}=await U.get(R("apps/files_external/ajax/applicable"),{params:{pattern:p,limit:20}}),m=[...r.value.map(g=>[g.id,g]),...Object.entries(_.groups).map(([g,f])=>[g,{...ye(g),displayName:f}]),...Object.entries(_.users).map(([g,f])=>[`user:${g}`,{id:`user:${g}`,user:g,displayName:f}])];r.value=[...new Map(m).values()]}return(p,_)=>(u(),k(e(Be),{modelValue:o.value,"onUpdate:modelValue":_[0]||(_[0]=m=>o.value=m),keepOpen:"",multiple:"",options:r.value,inputLabel:e(n)("files_external","Restrict to"),onSearch:e(i)},null,8,["modelValue","options","inputLabel","onSearch"]))}}),Ke=$({__name:"AuthMechanismConfiguration",props:Z({authMechanism:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(l){const a=B(l,"modelValue"),t=l,r=C(()=>{if(!t.authMechanism.configuration)return;const s=Object.entries(t.authMechanism.configuration).filter(([,p])=>!(p.flags&H.UserProvided));return Object.fromEntries(s)}),d=C(()=>window.OCA.FilesExternal.AuthMechanism.getHandler(t.authMechanism)),c=C(()=>{if(!r.value)return!1;for(const s of Object.values(r.value))if(!(s.flags&H.Hidden||s.flags&H.UserProvided))return!0;return!1}),o=M(!1);K(async()=>{d.value&&(o.value=!0,await window.customElements.whenDefined(d.value.tagName),o.value=!1)}),z(r,()=>{for(const s in r.value)s in a.value||(a.value[s]=r.value[s]?.type===ge.Boolean?!1:"")});function i(s){const p=[s.detail].flat()[0];a.value={...a.value,...p}}return(s,p)=>c.value?(u(),h("fieldset",{key:0,class:x(s.$style.authMechanismConfiguration)},[y("legend",null,v(e(n)("files_external","Authentication")),1),d.value?(u(),h(S,{key:0},[o.value?(u(),k(e(me),{key:0})):(u(),k(Ce(d.value.tagName),{key:1,".modelValue":a.value,".authMechanism":l.authMechanism,"onUpdate:modelValue":i},null,40,[".modelValue",".authMechanism"]))],64)):(u(!0),h(S,{key:1},O(r.value,(_,m)=>W((u(),k(pe,{key:_.value,modelValue:a.value[m],"onUpdate:modelValue":g=>a.value[m]=g,"config-key":m,"config-option":_},null,8,["modelValue","onUpdate:modelValue","config-key","config-option"])),[[Y,!(_.flags&e(H).Hidden)]])),128))],2)):T("",!0)}}),We="_authMechanismConfiguration_kpcpy_2",Ye={authMechanismConfiguration:We},Je={$style:Ye},Xe=N(Ke,[["__cssModules",Je]]),ea=$({__name:"BackendConfiguration",props:Z({configuration:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(l){const a=B(l,"modelValue"),t=l;return z(()=>t.configuration,()=>{for(const r in t.configuration)r in a.value||(a.value[r]=t.configuration[r]?.defaultValue??(t.configuration[r]?.type===ge.Boolean?!1:""))},{immediate:!0}),(r,d)=>(u(),h("fieldset",{class:x(r.$style.backendConfiguration)},[y("legend",null,v(e(n)("files_external","Storage configuration")),1),(u(!0),h(S,null,O(l.configuration,(c,o)=>W((u(),k(pe,{key:c.value,modelValue:a.value[o],"onUpdate:modelValue":i=>a.value[o]=i,configKey:o,configOption:c},null,8,["modelValue","onUpdate:modelValue","configKey","configOption"])),[[Y,!(c.flags&e(H).Hidden)]])),128))],2))}}),aa="_backendConfiguration_1sf6y_2",ta={backendConfiguration:aa},la={$style:ta},sa=N(ea,[["__cssModules",la]]),{isAdmin:na}=A("files_external","settings"),se=ke("files_external--storages",()=>{const l=M([]),a=M([]);async function t(m){const g=R("apps/files_external/globalstorages"),{data:f}=await U.post(g,Q(m),{confirmPassword:I.Strict});l.value.push(j(f))}async function r(m){const g=R("apps/files_external/userstorages"),{data:f}=await U.post(g,Q(m),{confirmPassword:I.Strict});a.value.push(j(f))}async function d(m){await U.delete(p(m),{confirmPassword:I.Strict}),m.type==="personal"?a.value=a.value.filter(g=>g.id!==m.id):l.value=l.value.filter(g=>g.id!==m.id)}async function c(m){const{data:g}=await U.put(p(m),Q(m),{confirmPassword:I.Strict});_(j(g))}async function o(m){const{data:g}=await U.get(p(m));_(j(g))}return s(),{globalStorages:l,userStorages:a,createGlobalStorage:t,createUserStorage:r,deleteStorage:d,reloadStorage:o,updateStorage:c};async function i(m){const g=`apps/files_external/${m}`,{data:f}=await U.get(R(g));return Object.values(f).map(j)}async function s(){fe(U),na?l.value=await i("globalstorages"):(a.value=await i("userstorages"),l.value=await i("userglobalstorages"))}function p(m){const g=m.type==="personal"?"userstorages":"globalstorages";return R(`apps/files_external/${g}/${m.id}`)}function _(m){if(m.type==="personal"){const g=a.value.findIndex(f=>f.id===m.id);a.value.splice(g,1,m)}else{const g=l.value.findIndex(f=>f.id===m.id);l.value.splice(g,1,m)}}});function j(l){return{...l,mountOptions:he(l.mountOptions)}}function he(l){const a={...l};return a.encrypt=D(a.encrypt,!0),a.previews=D(a.previews,!0),a.enable_sharing=D(a.enable_sharing,!1),a.filesystem_check_changes=typeof a.filesystem_check_changes=="string"?Number.parseInt(a.filesystem_check_changes):a.filesystem_check_changes??G.OncePerRequest,a.encoding_compatibility=D(a.encoding_compatibility,!1),a.readonly=D(a.readonly,!1),a}function D(l,a=!1){return l===void 0?a:l===!0||l==="true"||l==="1"}const oa=["id","aria-labelledby"],ia=$({__name:"MountOptions",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(l){const a=B(l,"modelValue");K(()=>{Object.keys(a.value).length===0&&(a.value=he(a.value))});const{hasEncryption:t}=A("files_external","settings"),r=ie(),d=ie(),c=M(!1),o=[{label:n("files_external","Never"),value:G.Never},{label:n("files_external","Once every direct access"),value:G.OncePerRequest},{label:n("files_external","Always"),value:G.Always}],i=C({get(){return o.find(s=>s.value===a.value.filesystem_check_changes)},set(s){a.value.filesystem_check_changes=s?.value??G.OncePerRequest}});return(s,p)=>(u(),h("div",{class:x(s.$style.mountOptions)},[b(e(P),{id:e(r),"aria-controls":e(d),"aria-expanded":c.value,variant:"tertiary-no-background",onClick:p[0]||(p[0]=_=>c.value=!c.value)},{icon:w(()=>[b(e(F),{directional:"",path:c.value?e(Ue):e($e)},null,8,["path"])]),default:w(()=>[V(" "+v(e(n)("files_external","Mount options")),1)]),_:1},8,["id","aria-controls","aria-expanded"]),W(y("fieldset",{id:e(d),class:x(s.$style.mountOptions__fieldset),"aria-labelledby":e(r)},[b(e(ae),{modelValue:i.value,"onUpdate:modelValue":p[1]||(p[1]=_=>i.value=_),inputLabel:e(n)("files_external","Check filesystem changes"),options:o},null,8,["modelValue","inputLabel"]),b(e(E),{modelValue:l.modelValue.readonly,"onUpdate:modelValue":p[2]||(p[2]=_=>l.modelValue.readonly=_),type:"switch"},{default:w(()=>[V(v(e(n)("files_external","Read only")),1)]),_:1},8,["modelValue"]),b(e(E),{modelValue:l.modelValue.previews,"onUpdate:modelValue":p[3]||(p[3]=_=>l.modelValue.previews=_),type:"switch"},{default:w(()=>[V(v(e(n)("files_external","Enable previews")),1)]),_:1},8,["modelValue"]),b(e(E),{modelValue:l.modelValue.enable_sharing,"onUpdate:modelValue":p[4]||(p[4]=_=>l.modelValue.enable_sharing=_),type:"switch"},{default:w(()=>[V(v(e(n)("files_external","Enable sharing")),1)]),_:1},8,["modelValue"]),e(t)?(u(),k(e(E),{key:0,modelValue:l.modelValue.encrypt,"onUpdate:modelValue":p[5]||(p[5]=_=>l.modelValue.encrypt=_),type:"switch"},{default:w(()=>[V(v(e(n)("files_external","Enable encryption")),1)]),_:1},8,["modelValue"])):T("",!0),b(e(E),{modelValue:l.modelValue.encoding_compatibility,"onUpdate:modelValue":p[6]||(p[6]=_=>l.modelValue.encoding_compatibility=_),type:"switch"},{default:w(()=>[V(v(e(n)("files_external","Compatibility with Mac NFD encoding (slow)")),1)]),_:1},8,["modelValue"])],10,oa),[[Y,c.value]])],2))}}),ra="_mountOptions_1fqyb_2",ua="_mountOptions__fieldset_1fqyb_12",da={mountOptions:ra,mountOptions__fieldset:ua},ca={$style:da},_a=N(ia,[["__cssModules",ca]]),{isAdmin:ue}=A("files_external","settings"),ma=A("files_external","allowedBackends"),de=A("files_external","backends").filter(l=>ma.includes(l.identifier)),pa=A("files_external","authMechanisms"),ga=$({__name:"AddExternalStorageDialog",props:Z({storage:{default:()=>({backendOptions:{},mountOptions:{},type:ue?"system":"personal"})}},{open:{type:Boolean,default:!0},openModifiers:{}}),emits:Z(["close"],["update:open"]),setup(l){const a=B(l,"open"),t=M(structuredClone(Q(l.storage)));K(()=>{a.value&&(t.value=structuredClone(Q(l.storage)))});const r=C({get(){return de.find(o=>o.identifier===t.value.backend)},set(o){t.value.backend=o?.identifier}}),d=C(()=>pa.filter(({scheme:o})=>r.value?.authSchemes[o])),c=C({get(){return d.value.find(o=>o.identifier===t.value.authMechanism)},set(o){t.value.authMechanism=o?.identifier}});return z(d,()=>{d.value.length===1&&(t.value.authMechanism=d.value[0].identifier)}),(o,i)=>(u(),k(e(Re),{open:a.value,"onUpdate:open":[i[9]||(i[9]=s=>a.value=s),i[11]||(i[11]=s=>s||o.$emit("close"))],isForm:"",contentClasses:o.$style.externalStorageDialog,name:t.value.id?e(n)("files_external","Edit storage"):e(n)("files_external","Add storage"),onSubmit:i[10]||(i[10]=s=>o.$emit("close",t.value))},{actions:w(()=>[l.storage.id?(u(),k(e(P),{key:0,onClick:i[8]||(i[8]=s=>o.$emit("close"))},{default:w(()=>[V(v(e(n)("files_external","Cancel")),1)]),_:1})):T("",!0),b(e(P),{variant:"primary",type:"submit"},{default:w(()=>[V(v(l.storage.id?e(n)("files_external","Edit"):e(n)("files_external","Create")),1)]),_:1})]),default:w(()=>[b(e(_e),{modelValue:t.value.mountPoint,"onUpdate:modelValue":i[0]||(i[0]=s=>t.value.mountPoint=s),label:e(n)("files_external","Folder name"),required:""},null,8,["modelValue","label"]),b(_a,{modelValue:t.value.mountOptions,"onUpdate:modelValue":i[1]||(i[1]=s=>t.value.mountOptions=s)},null,8,["modelValue"]),e(ue)?(u(),k(Ze,{key:0,groups:t.value.applicableGroups,"onUpdate:groups":i[2]||(i[2]=s=>t.value.applicableGroups=s),users:t.value.applicableUsers,"onUpdate:users":i[3]||(i[3]=s=>t.value.applicableUsers=s)},null,8,["groups","users"])):T("",!0),b(e(ae),{modelValue:r.value,"onUpdate:modelValue":i[4]||(i[4]=s=>r.value=s),options:e(de),disabled:!!(t.value.id&&t.value.backend),inputLabel:e(n)("files_external","External storage"),label:"name",required:""},null,8,["modelValue","options","disabled","inputLabel"]),b(e(ae),{modelValue:c.value,"onUpdate:modelValue":i[5]||(i[5]=s=>c.value=s),options:d.value,disabled:!t.value.backend||d.value.length<=1||!!(t.value.id&&t.value.authMechanism),inputLabel:e(n)("files_external","Authentication"),label:"name",required:""},null,8,["modelValue","options","disabled","inputLabel"]),r.value&&t.value.backendOptions?(u(),k(sa,{key:1,modelValue:t.value.backendOptions,"onUpdate:modelValue":i[6]||(i[6]=s=>t.value.backendOptions=s),class:x(o.$style.externalStorageDialog__configuration),configuration:r.value.configuration},null,8,["modelValue","class","configuration"])):T("",!0),c.value&&t.value.backendOptions?(u(),k(Xe,{key:2,modelValue:t.value.backendOptions,"onUpdate:modelValue":i[7]||(i[7]=s=>t.value.backendOptions=s),class:x(o.$style.externalStorageDialog__configuration),authMechanism:c.value},null,8,["modelValue","class","authMechanism"])):T("",!0)]),_:1},8,["open","contentClasses","name"]))}}),fa="_externalStorageDialog_9wew8_2",va="_externalStorageDialog__configuration_9wew8_9",ba={externalStorageDialog:fa,externalStorageDialog__configuration:va},ya={$style:ba},xe=N(ga,[["__cssModules",ya]]),ha={class:"hidden-visually"},xa={key:0},wa=$({__name:"ExternalStorageTableRow",props:{storage:{},isAdmin:{type:Boolean}},setup(l){const a=l,t=se(),r=A("files_external","backends"),d=C(()=>r.find(f=>f.identifier===a.storage.backend).name),c=A("files_external","authMechanisms"),o=C(()=>c.find(f=>f.identifier===a.storage.authMechanism).name),i=M(!1),s=C(()=>{if(i.value)return{icon:"loading",label:n("files_external","Checking …")};const f=a.storage.status??L.Indeterminate,ne=a.storage.statusMessage||Ge[f],q=Ie[f],oe=f===L.NetworkError||f===L.Timeout,we=!oe&&f!==L.Success&&f!==L.Indeterminate;return{icon:q,label:ne,isWarning:oe,isError:we}}),p=be(()=>a.storage.applicableUsers||[]);async function _(){await t.deleteStorage(a.storage)}async function m(){const f=await Fe(xe,{storage:a.storage});f&&await t.updateStorage(f)}async function g(){i.value=!0;try{await t.reloadStorage(a.storage)}finally{i.value=!1}}return(f,ne)=>(u(),h("tr",{class:x(f.$style.storageTableRow)},[y("td",null,[y("span",ha,v(s.value.label),1),b(e(P),{"aria-label":e(n)("files_external","Recheck status"),title:s.value.label,variant:"tertiary-no-background",onClick:g},{icon:w(()=>[s.value.icon==="loading"?(u(),k(e(me),{key:0})):(u(),k(e(F),{key:1,class:x({[f.$style.storageTableRow__status_error]:s.value.isError,[f.$style.storageTableRow__status_warning]:s.value.isWarning}),path:s.value.icon},null,8,["class","path"]))]),_:1},8,["aria-label","title"])]),y("td",null,v(l.storage.mountPoint),1),y("td",null,v(d.value),1),y("td",null,v(o.value),1),l.isAdmin?(u(),h("td",xa,[y("div",{class:x(f.$style.storageTableRow__cellApplicable)},[(u(!0),h(S,null,O(l.storage.applicableGroups,q=>(u(),k(e(je),{key:q,iconPath:e(Te),noClose:"",text:q},null,8,["iconPath","text"]))),128)),(u(!0),h(S,null,O(e(p),q=>(u(),k(e(He),{key:q.user,displayName:q.displayName,size:24,user:q.user},null,8,["displayName","user"]))),128))],2)])):T("",!0),y("td",null,[l.isAdmin||l.storage.type==="personal"?(u(),h("div",{key:0,class:x(f.$style.storageTableRow__cellActions)},[b(e(P),{"aria-label":e(n)("files_external","Edit"),title:e(n)("files_external","Edit"),onClick:m},{icon:w(()=>[b(e(F),{path:e(Oe)},null,8,["path"])]),_:1},8,["aria-label","title"]),b(e(P),{"aria-label":e(n)("files_external","Delete"),title:e(n)("files_external","Delete"),variant:"error",onClick:_},{icon:w(()=>[b(e(F),{path:e(Ne)},null,8,["path"])]),_:1},8,["aria-label","title"])],2)):(u(),k(e(F),{key:1,inline:"",path:e(qe),name:e(n)("files_external","System provided storage"),title:e(n)("files_external","System provided storage")},null,8,["path","name","title"]))])],2))}}),ka="_storageTableRow__cellActions_1k62p_2",Va="_storageTableRow__cellApplicable_1k62p_7",Sa="_storageTableRow__status_warning_1k62p_17",Ca="_storageTableRow__status_error_1k62p_21",Ma={storageTableRow__cellActions:ka,storageTableRow__cellApplicable:Va,storageTableRow__status_warning:Sa,storageTableRow__status_error:Ca},Aa={$style:Ma},Ua=N(wa,[["__cssModules",Aa]]),$a=["aria-label"],Ta={class:"hidden-visually"},Oa={key:0},Na={class:"hidden-visually"},qa=$({__name:"ExternalStorageTable",setup(l){const a=se(),{isAdmin:t}=A("files_external","settings"),r=C(()=>t?a.globalStorages:[...a.userStorages,...a.globalStorages]);return(d,c)=>(u(),h("table",{class:x(d.$style.storageTable),"aria-label":e(n)("files_external","External storages")},[y("thead",{class:x(d.$style.storageTable__header)},[y("tr",null,[y("th",{class:x(d.$style.storageTable__headerStatus)},[y("span",Ta,v(e(n)("files_external","Status")),1)],2),y("th",{class:x(d.$style.storageTable__headerFolder)},v(e(n)("files_external","Folder name")),3),y("th",{class:x(d.$style.storageTable__headerBackend)},v(e(n)("files_external","External storage")),3),y("th",{class:x(d.$style.storageTable__headerAuthentication)},v(e(n)("files_external","Authentication")),3),e(t)?(u(),h("th",Oa,v(e(n)("files_external","Restricted to")),1)):T("",!0),y("th",{class:x(d.$style.storageTable__headerActions)},[y("span",Na,v(e(n)("files_external","Actions")),1)],2)])],2),y("tbody",null,[(u(!0),h(S,null,O(r.value,o=>(u(),k(Ua,{key:o.id,isAdmin:e(t),storage:o},null,8,["isAdmin","storage"]))),128))])],10,$a))}}),Pa="_storageTable_1dqte_2",Ea="_storageTable__header_1dqte_11",Ra="_storageTable__headerStatus_1dqte_16",Fa="_storageTable__headerFolder_1dqte_20",Ba="_storageTable__headerBackend_1dqte_24",La="_storageTable__headerFAuthentication_1dqte_28",ja="_storageTable__headerActions_1dqte_32",Da={storageTable:Pa,storageTable__header:Ea,storageTable__headerStatus:Ra,storageTable__headerFolder:Fa,storageTable__headerBackend:Ba,storageTable__headerFAuthentication:La,storageTable__headerActions:ja},Ha={$style:Da},Ga=N(qa,[["__cssModules",Ha]]),Ia=$({__name:"UserMountSettings",setup(l){const a=A("files_external","user-mounting"),t=A("files_external","backends").filter(c=>c.identifier!=="local"),r=M(a.allowUserMounting),d=M(a.allowedBackends);return z(r,()=>{const c=!r.value;window.OCP.AppConfig.setValue("files_external","allow_user_mounting",r.value?"yes":"no",{success:()=>le(n("files_external","Saved")),error:()=>{r.value=c,te(n("files_external","Error while saving"))}})}),z(d,(c,o)=>{window.OCP.AppConfig.setValue("files_external","user_mounting_backends",c.join(","),{success:()=>le(n("files_external","Saved allowed backends")),error:()=>{te(n("files_external","Failed to save allowed backends")),d.value=o}})}),(c,o)=>(u(),h("form",null,[y("h3",{class:x(c.$style.userMountSettings__heading)},v(e(n)("files_external","Advanced options for external storage mounts")),3),b(e(E),{modelValue:r.value,"onUpdate:modelValue":o[0]||(o[0]=i=>r.value=i),type:"switch"},{default:w(()=>[V(v(e(n)("files_external","Allow people to mount external storage")),1)]),_:1},8,["modelValue"]),W(y("fieldset",{class:x(c.$style.userMountSettings__backends)},[y("legend",null,v(e(n)("files_external","External storage backends people are allowed to mount")),1),(u(!0),h(S,null,O(e(t),i=>(u(),k(e(E),{key:i.identifier,modelValue:d.value,"onUpdate:modelValue":o[1]||(o[1]=s=>d.value=s),value:i.identifier,name:"allowUserMountingBackends[]"},{default:w(()=>[V(v(i.name),1)]),_:2},1032,["modelValue","value"]))),128))],2),[[Y,r.value]])]))}}),Qa="_userMountSettings__heading_59moz_2",za="_userMountSettings__backends_59moz_9",Za={userMountSettings__heading:Qa,userMountSettings__backends:za},Ka={$style:Za},Wa=N(Ia,[["__cssModules",Ka]]);const Ya=["aria-label"],Ja=$({__name:"ExternalStoragesSection",setup(l){const a=A("files_external","settings",{docUrl:"",dependencyIssues:{messages:null,modules:null},isAdmin:!1}),t=se(),r=a.dependencyIssues?.messages??[],d=a.dependencyIssues?.modules??{},c=M(!1),o=M();async function i(s){if(c.value=!1,!!s)try{a.isAdmin?await t.createGlobalStorage(s):await t.createUserStorage(s),o.value=void 0}catch(p){ve.error("Failed to add external storage",{error:p,storage:s}),o.value={...s},c.value=!0}}return(s,p)=>(u(),k(e(ce),{docUrl:e(a).docUrl,name:e(n)("files_external","External storage"),description:e(n)("files_external","External storage enables you to mount external storage services and devices as secondary Nextcloud storage devices.")+(e(a).isAdmin?" "+e(n)("files_external","You may also allow people to mount their own external storage services."):"")},{default:w(()=>[(u(!0),h(S,null,O(e(r),(_,m)=>(u(),k(e(re),{key:m,type:"error"},{default:w(()=>[V(v(_),1)]),_:2},1024))),128)),(u(!0),h(S,null,O(e(d),(_,m)=>(u(),k(e(re),{key:m,type:"warning"},{default:w(()=>[y("p",null,[m==="curl"?(u(),h(S,{key:0},[V(v(e(n)("files_external","The cURL support in PHP is not enabled or installed.")),1)],64)):m==="ftp"?(u(),h(S,{key:1},[V(v(e(n)("files_external","The FTP support in PHP is not enabled or installed.")),1)],64)):(u(),h(S,{key:2},[V(v(e(n)("files_external","{module} is not installed.",{module:m})),1)],64)),V(" "+v(e(Ee)("files_external","Please ask your system administrator to install it as otherwise mounting the following backend is not possible:","Please ask your system administrator to install it as otherwise mounting the following backends is not possible:",_.length)),1)]),y("ul",{class:x(s.$style.externalStoragesSection__dependantList),"aria-label":e(n)("files_external","Dependant backends")},[(u(!0),h(S,null,O(_,g=>(u(),h("li",{key:g},v(g),1))),128))],10,Ya)]),_:2},1024))),128)),T("",!0),b(Ga),b(e(P),{class:x(s.$style.externalStoragesSection__newStorageButton),variant:"primary",onClick:p[0]||(p[0]=_=>c.value=!c.value)},{icon:w(()=>[b(e(F),{path:e(Pe)},null,8,["path"])]),default:w(()=>[V(" "+v(e(n)("files_external","Add external storage")),1)]),_:1},8,["class"]),b(xe,{open:c.value,"onUpdate:open":p[1]||(p[1]=_=>c.value=_),storage:o.value,onClose:i},null,8,["open","storage"]),e(a).isAdmin?(u(),k(Wa,{key:1})):T("",!0)]),_:1},8,["docUrl","name","description"]))}}),Xa="_externalStoragesSection__dependantList_atsmn_2",et="_externalStoragesSection__newStorageButton_atsmn_7",at={externalStoragesSection__dependantList:Xa,externalStoragesSection__newStorageButton:et},tt={$style:at},lt=N(Ja,[["__cssModules",tt]]),st=$({__name:"GlobalCredentialsSection",setup(l){const a=A("files_external","global-credentials"),t=M(!1),r=M(a.user),d=M(a.password);fe(U);async function c(){try{t.value=!0;const{data:o}=await U.post(R("apps/files_external/globalcredentials"),{uid:a.uid,user:r.value,password:d.value},{confirmPassword:I.Strict});if(o){le(n("files_external","Global credentials saved"));return}}catch(o){ve.error(o)}finally{t.value=!1}te(n("files_external","Could not save global credentials")),r.value=a.user,d.value=a.password}return(o,i)=>(u(),k(e(ce),{name:e(n)("files_external","Global credentials"),description:e(n)("files_external","Global credentials can be used to authenticate with multiple external storages that have the same credentials.")},{default:w(()=>[y("form",{id:"global_credentials",class:x(o.$style.globalCredentialsSectionForm),autocomplete:"false",onSubmit:Me(c,["prevent"])},[b(e(_e),{modelValue:r.value,"onUpdate:modelValue":i[0]||(i[0]=s=>r.value=s),name:"username",autocomplete:"false",label:e(n)("files_external","Login")},null,8,["modelValue","label"]),b(e(De),{modelValue:d.value,"onUpdate:modelValue":i[1]||(i[1]=s=>d.value=s),name:"password",autocomplete:"false",label:e(n)("files_external","Password")},null,8,["modelValue","label"]),b(e(P),{class:x(o.$style.globalCredentialsSectionForm__submit),disabled:t.value,variant:"primary",type:"submit"},{default:w(()=>[V(v(t.value?e(n)("files_external","Saving …"):e(n)("files_external","Save")),1)]),_:1},8,["class","disabled"])],34)]),_:1},8,["name","description"]))}}),nt="_globalCredentialsSectionForm_bgjv2_2",ot="_globalCredentialsSectionForm__submit_bgjv2_10",it={globalCredentialsSectionForm:nt,globalCredentialsSectionForm__submit:ot},rt={$style:it},ut=N(st,[["__cssModules",rt]]),dt=$({__name:"FilesExternalSettings",setup(l){return(a,t)=>(u(),h(S,null,[b(lt),b(ut)],64))}}),ct=Ve(),X=Ae(dt);X.config.idPrefix="files-external",X.use(ct),X.mount("#files-external"); //# sourceMappingURL=files_external-settings.mjs.map diff --git a/dist/files_reminders-init.css b/dist/files_reminders-init.css index a8abc2df9e9..4d9231d5e46 100644 --- a/dist/files_reminders-init.css +++ b/dist/files_reminders-init.css @@ -6,7 +6,7 @@ @import './common-PencilOutline-B3DMd8SU.chunk.css'; @import './common-NcContent-BhMoPROW-CuEPejA5.chunk.css'; @import './common-TrashCanOutline-BYHcrfvW.chunk.css'; -@import './common-index-980JFXIN.chunk.css'; +@import './common-index-BWhNCeJl.chunk.css'; @import './common-TrayArrowDown-CaC9_ffV.chunk.css'; @import './common-NcInputField-B1bGxYHt-BYHxARP-.chunk.css'; @import './common-index-DYA_tnKg.chunk.css'; @@ -17,7 +17,7 @@ @import './common-NcEmptyContent-CGAPqk4S-Don1d5Bd.chunk.css'; @import './common-NcPasswordField-Be5_qcfm-Crp_EMfV.chunk.css'; @import './common-NcBreadcrumbs-5gl8Syfa-CfbvucBX.chunk.css'; -@import './common-NcTextArea-Dxzj4zdb-B-B2llha.chunk.css'; +@import './common-NcTextArea-Dxzj4zdb-CzDMVgRO.chunk.css'; @import './common-NcActionSeparator-Ct2RnclR-pXJ_-D_I.chunk.css'; @import './common-NcCheckboxRadioSwitch-D8Dfv4iw-CPGkDj-p.chunk.css'; @import './common-Plus-Som-mR4B.chunk.css'; diff --git a/dist/files_reminders-init.mjs b/dist/files_reminders-init.mjs index 779e9ec8613..aa9d60126da 100644 --- a/dist/files_reminders-init.mjs +++ b/dist/files_reminders-init.mjs @@ -1,2 +1,2 @@ -import{a as l}from"./index-BDagnpAU.chunk.mjs";import{c as Q}from"./dav-CGJ67RGS.chunk.mjs";import{c as B,f as D,g as X}from"./index-B-dGqfIG.chunk.mjs";import{b as O,t as i}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{c as W}from"./index-BLNGy7h5.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./NcTextArea-Dxzj4zdb-stc727hj.chunk.mjs";import{N as J}from"./NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs";import{_ as ee}from"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";/* empty css */import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import{N as k}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./index-CMXcwXc6.chunk.mjs";import{N as te,s as re}from"./index-BW4M2n71.chunk.mjs";import"./index-BOH7nBEM.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import"./index-C_wPY1fR.chunk.mjs";/* empty css */import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import{N as M}from"./mdi-Lt-19ASw.chunk.mjs";import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./index-xEyWukTf.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import"./NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs";import"./ContentCopy-BF1gBM5z.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import{b as ie,A as ae,D as ne,o as v,c as y,w as d,g as se,N as oe,k as b,u as n,j as m,t as u,h as A,l as c}from"./Web-BwmPK40i.chunk.mjs";import{a as f,d as N}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{_ as de}from"./public-C1mLBHT3.chunk.mjs";import"./folder-29HuacU_-Joa_bkj_.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./index-BYnFfAmz.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";const le='';async function E(e,t){const r=B("/apps/files_reminders/api/v1/{fileId}",{fileId:e});return(await W.put(r,{dueDate:t.toISOString()})).data.ocs.data}async function Z(e){const t=B("/apps/files_reminders/api/v1/{fileId}",{fileId:e});return(await W.delete(t)).data.ocs.data}var p=(e=>(e.LaterToday="later-today",e.Tomorrow="tomorrow",e.ThisWeekend="this-weekend",e.NextWeek="next-week",e))(p||{});function F(){const e=new Date;return e.setHours(0,0,0,0),e.setDate(e.getDate()-e.getDay()+1),new Date(e)}function I(e){new Date(e).setHours(0,0,0,0);const t=new Date(e.getFullYear(),0,1,0,0,0,0),r=(e.getTime()-t.getTime())/864e5;return Math.ceil((r+t.getDay()+1)/7)}function me(e,t){return I(e)===I(t)&&e.getFullYear()===t.getFullYear()}function ue(e,t){return e.getDate()===t.getDate()&&e.getMonth()===t.getMonth()&&e.getFullYear()===t.getFullYear()}function _(e){return{"later-today":()=>{const t=new Date,r=new Date;r.setHours(18,0,0,0);const s=new Date;return s.setHours(17,0,0,0),t>=s?null:r},tomorrow:()=>{const t=new Date,r=new Date;return r.setDate(t.getDate()+1),r.setHours(8,0,0,0),r},"this-weekend":()=>{const t=new Date;if([5,6,0].includes(t.getDay()))return null;const r=new Date,s=F();return r.setDate(s.getDate()+5),r.setHours(8,0,0,0),r},"next-week":()=>{if(new Date().getDay()===0)return null;const t=new Date,r=F();return t.setDate(r.getDate()+7),t.setHours(8,0,0,0),t}}[e]()}function ce(){const e=new Date,t=new Date;return t.setHours(e.getHours()+2,0,0,0),t}function V(e){let t={hour:"numeric",minute:"2-digit"};const r=new Date;return ue(e,r)||(t={...t,weekday:"short"}),me(e,r)||(t={...t,month:"short",day:"numeric"}),e.getFullYear()!==r.getFullYear()&&(t={...t,year:"numeric"}),e.toLocaleString(O(),t)}function h(e){let t={month:"long",day:"numeric",weekday:"long",hour:"numeric",minute:"2-digit"};const r=new Date;return e.getFullYear()!==r.getFullYear()&&(t={...t,year:"numeric"}),e.toLocaleString(O(),t)}const fe={id:"clear-reminder",displayName:()=>i("files_reminders","Clear reminder"),title:({nodes:e})=>{const t=e.at(0),r=new Date(t.attributes["reminder-due-date"]);return`${i("files_reminders","Clear reminder")} – ${h(r)}`},iconSvgInline:()=>le,enabled:({nodes:e})=>e.length!==1?!1:!!e.at(0).attributes["reminder-due-date"],async exec({nodes:e}){const t=e.at(0);if(t.fileid)try{return await Z(t.fileid),t.attributes["reminder-due-date"]="",D("files:node:updated",t),!0}catch{return!1}return null},order:19},U='',L=X().setApp("files_reminders").detectUser().build(),pe=ie({__name:"SetCustomReminderModal",props:{node:{}},emits:["close"],setup(e,{emit:t}){const r=e,s=t,S=c(!1),C=c(!1),g=c(!0),o=c(),x=c(new Date);ae(()=>{const a=r.node.attributes["reminder-due-date"]?new Date(r.node.attributes["reminder-due-date"]):void 0;S.value=!!a,g.value=!0,C.value=!0,o.value=a??ce(),x.value=new Date}),ne(()=>{const a=document.getElementById("set-custom-reminder");a.focus(),S.value||a.showPicker()});async function q(){if(!(o.value instanceof Date)||isNaN(o.value.getTime())){f(i("files_reminders","Please choose a valid date & time"));return}try{await E(r.node.fileid,o.value);const a=r.node.clone();a.attributes["reminder-due-date"]=o.value.toISOString(),D("files:node:updated",a),N(i("files_reminders",'Reminder set for "{fileName}"',{fileName:r.node.displayname})),w()}catch(a){L.error("Failed to set reminder",{error:a}),f(i("files_reminders","Failed to set reminder"))}}async function z(){try{await Z(r.node.fileid);const a=r.node.clone();a.attributes["reminder-due-date"]="",D("files:node:updated",a),N(i("files_reminders",'Reminder cleared for "{fileName}"',{fileName:r.node.displayname})),w()}catch(a){L.error("Failed to clear reminder",{error:a}),f(i("files_reminders","Failed to clear reminder"))}}function w(){C.value=!1,s("close")}function G(){const a=document.getElementById("set-custom-reminder");g.value=a.checkValidity()}return(a,H)=>C.value?(v(),y(n(te),{key:0,name:n(i)("files_reminders","Set reminder for '{fileName}'",{fileName:e.node.displayname}),outTransition:"",size:"small",closeOnClickOutside:"",onClosing:w},{actions:d(()=>[b(n(k),{variant:"tertiary",onClick:w},{default:d(()=>[m(u(n(i)("files_reminders","Cancel")),1)]),_:1}),S.value?(v(),y(n(k),{key:0,onClick:z},{default:d(()=>[m(u(n(i)("files_reminders","Clear reminder")),1)]),_:1})):A("",!0),b(n(k),{disabled:!g.value,variant:"primary",form:"set-custom-reminder-form",type:"submit"},{default:d(()=>[m(u(n(i)("files_reminders","Set reminder")),1)]),_:1},8,["disabled"])]),default:d(()=>[se("form",{id:"set-custom-reminder-form",class:"custom-reminder-modal",onSubmit:oe(q,["prevent"])},[b(n(J),{id:"set-custom-reminder",modelValue:o.value,"onUpdate:modelValue":H[0]||(H[0]=K=>o.value=K),label:n(i)("files_reminders","Reminder at custom date & time"),min:x.value,required:!0,type:"datetime-local",onInput:G},null,8,["modelValue","label","min"]),g.value&&o.value?(v(),y(n(M),{key:0,type:"info"},{default:d(()=>[m(u(n(i)("files_reminders","We will remind you of this file"))+" ",1),b(n(ee),{timestamp:o.value},null,8,["timestamp"])]),_:1})):(v(),y(n(M),{key:1,type:"error"},{default:d(()=>[m(u(n(i)("files_reminders","Please choose a valid date & time")),1)]),_:1}))],32)]),_:1},8,["name"])):A("",!0)}}),ge=de(pe,[["__scopeId","data-v-1cc1857f"]]);async function j(e){await re(ge,{node:e})}const we={id:"reminder-status",inline:()=>!0,displayName:()=>"",title:({nodes:e})=>{const t=e.at(0),r=new Date(t.attributes["reminder-due-date"]);return`${i("files_reminders","Reminder set")} – ${h(r)}`},iconSvgInline:()=>U,enabled:({nodes:e})=>e.length!==1?!1:!!e.at(0).attributes["reminder-due-date"],async exec({nodes:e}){const t=e.at(0);return await j(t),null},order:-15},ve='',T="set-reminder-menu",ye={id:T,displayName:()=>i("files_reminders","Set reminder"),iconSvgInline:()=>U,enabled:({nodes:e,view:t})=>t.id==="trashbin"||e.length!==1?!1:e.at(0).attributes["reminder-due-date"]!==void 0,async exec(){return null},order:20},be={id:"set-reminder-custom",displayName:()=>i("files_reminders","Custom reminder"),title:()=>i("files_reminders","Reminder at custom date & time"),iconSvgInline:()=>ve,enabled:({nodes:e,view:t})=>t.id==="trashbin"||e.length!==1?!1:e.at(0).attributes["reminder-due-date"]!==void 0,parent:T,async exec({nodes:e}){const t=e.at(0);return j(t),null},order:22},P={dateTimePreset:p.LaterToday,label:i("files_reminders","Later today"),ariaLabel:i("files_reminders","Set reminder for later today"),dateString:"",verboseDateString:""},Y={dateTimePreset:p.Tomorrow,label:i("files_reminders","Tomorrow"),ariaLabel:i("files_reminders","Set reminder for tomorrow"),dateString:"",verboseDateString:""},$={dateTimePreset:p.ThisWeekend,label:i("files_reminders","This weekend"),ariaLabel:i("files_reminders","Set reminder for this weekend"),dateString:"",verboseDateString:""},R={dateTimePreset:p.NextWeek,label:i("files_reminders","Next week"),ariaLabel:i("files_reminders","Set reminder for next week"),dateString:"",verboseDateString:""};function De(){return[P,Y,$,R].forEach(e=>{const t=_(e.dateTimePreset);t&&(e.dateString=V(t),e.verboseDateString=h(t),setInterval(()=>{const r=_(e.dateTimePreset);r&&(e.dateString=V(r),e.verboseDateString=h(r))},1e3*30*60))}),[P,Y,$,R].map(_e)}function _e(e){return{id:`set-reminder-${e.dateTimePreset}`,displayName:()=>`${e.label} – ${e.dateString}`,title:()=>`${e.ariaLabel} – ${e.verboseDateString}`,iconSvgInline:()=>"",enabled:({nodes:t,view:r})=>r.id==="trashbin"||t.length!==1?!1:t.at(0).attributes["reminder-due-date"]!==void 0&&!!_(e.dateTimePreset),parent:T,async exec({nodes:t}){const r=t.at(0);if(!r.fileid)return L.error("Failed to set reminder, missing file id"),f(i("files_reminders","Failed to set reminder")),null;try{const s=_(e.dateTimePreset);await E(r.fileid,s),r.attributes["reminder-due-date"]=s.toISOString(),D("files:node:updated",r),N(i("files_reminders",'Reminder set for "{fileName}"',{fileName:r.basename}))}catch(s){L.error("Failed to set reminder",{error:s}),f(i("files_reminders","Failed to set reminder"))}return null},order:21}}Q("nc:reminder-due-date",{nc:"http://nextcloud.org/ns"}),l(we),l(fe),l(ye),l(be),De().forEach(l); +import{a as l}from"./index-BDagnpAU.chunk.mjs";import{c as Q}from"./dav-CGJ67RGS.chunk.mjs";import{c as B,f as D,g as X}from"./index-B-dGqfIG.chunk.mjs";import{b as O,t as i}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{c as W}from"./index-BLNGy7h5.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./NcTextArea-Dxzj4zdb-BPZd41PF.chunk.mjs";import{N as J}from"./NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs";import{_ as ee}from"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";/* empty css */import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import{N as k}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./index-CQct0mOs.chunk.mjs";import{N as te,s as re}from"./index-BW4M2n71.chunk.mjs";import"./index-dqLzhRZM.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import"./index-BrjNu3x_.chunk.mjs";/* empty css */import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import{N as M}from"./mdi-Lt-19ASw.chunk.mjs";import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./index-CcOuN-F7.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import"./NcSelectTags-D7qWNjXa-gqJ9LLZU.chunk.mjs";import"./ContentCopy-BF1gBM5z.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import{b as ie,A as ae,D as ne,o as v,c as y,w as d,g as se,N as oe,k as b,u as n,j as m,t as u,h as A,l as c}from"./Web-BwmPK40i.chunk.mjs";import{a as f,d as N}from"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import{_ as de}from"./public-C1mLBHT3.chunk.mjs";import"./folder-29HuacU_-Joa_bkj_.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./index-BYnFfAmz.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";const le='';async function E(e,t){const r=B("/apps/files_reminders/api/v1/{fileId}",{fileId:e});return(await W.put(r,{dueDate:t.toISOString()})).data.ocs.data}async function Z(e){const t=B("/apps/files_reminders/api/v1/{fileId}",{fileId:e});return(await W.delete(t)).data.ocs.data}var p=(e=>(e.LaterToday="later-today",e.Tomorrow="tomorrow",e.ThisWeekend="this-weekend",e.NextWeek="next-week",e))(p||{});function F(){const e=new Date;return e.setHours(0,0,0,0),e.setDate(e.getDate()-e.getDay()+1),new Date(e)}function I(e){new Date(e).setHours(0,0,0,0);const t=new Date(e.getFullYear(),0,1,0,0,0,0),r=(e.getTime()-t.getTime())/864e5;return Math.ceil((r+t.getDay()+1)/7)}function me(e,t){return I(e)===I(t)&&e.getFullYear()===t.getFullYear()}function ue(e,t){return e.getDate()===t.getDate()&&e.getMonth()===t.getMonth()&&e.getFullYear()===t.getFullYear()}function _(e){return{"later-today":()=>{const t=new Date,r=new Date;r.setHours(18,0,0,0);const s=new Date;return s.setHours(17,0,0,0),t>=s?null:r},tomorrow:()=>{const t=new Date,r=new Date;return r.setDate(t.getDate()+1),r.setHours(8,0,0,0),r},"this-weekend":()=>{const t=new Date;if([5,6,0].includes(t.getDay()))return null;const r=new Date,s=F();return r.setDate(s.getDate()+5),r.setHours(8,0,0,0),r},"next-week":()=>{if(new Date().getDay()===0)return null;const t=new Date,r=F();return t.setDate(r.getDate()+7),t.setHours(8,0,0,0),t}}[e]()}function ce(){const e=new Date,t=new Date;return t.setHours(e.getHours()+2,0,0,0),t}function V(e){let t={hour:"numeric",minute:"2-digit"};const r=new Date;return ue(e,r)||(t={...t,weekday:"short"}),me(e,r)||(t={...t,month:"short",day:"numeric"}),e.getFullYear()!==r.getFullYear()&&(t={...t,year:"numeric"}),e.toLocaleString(O(),t)}function h(e){let t={month:"long",day:"numeric",weekday:"long",hour:"numeric",minute:"2-digit"};const r=new Date;return e.getFullYear()!==r.getFullYear()&&(t={...t,year:"numeric"}),e.toLocaleString(O(),t)}const fe={id:"clear-reminder",displayName:()=>i("files_reminders","Clear reminder"),title:({nodes:e})=>{const t=e.at(0),r=new Date(t.attributes["reminder-due-date"]);return`${i("files_reminders","Clear reminder")} – ${h(r)}`},iconSvgInline:()=>le,enabled:({nodes:e})=>e.length!==1?!1:!!e.at(0).attributes["reminder-due-date"],async exec({nodes:e}){const t=e.at(0);if(t.fileid)try{return await Z(t.fileid),t.attributes["reminder-due-date"]="",D("files:node:updated",t),!0}catch{return!1}return null},order:19},U='',L=X().setApp("files_reminders").detectUser().build(),pe=ie({__name:"SetCustomReminderModal",props:{node:{}},emits:["close"],setup(e,{emit:t}){const r=e,s=t,S=c(!1),C=c(!1),g=c(!0),o=c(),x=c(new Date);ae(()=>{const a=r.node.attributes["reminder-due-date"]?new Date(r.node.attributes["reminder-due-date"]):void 0;S.value=!!a,g.value=!0,C.value=!0,o.value=a??ce(),x.value=new Date}),ne(()=>{const a=document.getElementById("set-custom-reminder");a.focus(),S.value||a.showPicker()});async function q(){if(!(o.value instanceof Date)||isNaN(o.value.getTime())){f(i("files_reminders","Please choose a valid date & time"));return}try{await E(r.node.fileid,o.value);const a=r.node.clone();a.attributes["reminder-due-date"]=o.value.toISOString(),D("files:node:updated",a),N(i("files_reminders",'Reminder set for "{fileName}"',{fileName:r.node.displayname})),w()}catch(a){L.error("Failed to set reminder",{error:a}),f(i("files_reminders","Failed to set reminder"))}}async function z(){try{await Z(r.node.fileid);const a=r.node.clone();a.attributes["reminder-due-date"]="",D("files:node:updated",a),N(i("files_reminders",'Reminder cleared for "{fileName}"',{fileName:r.node.displayname})),w()}catch(a){L.error("Failed to clear reminder",{error:a}),f(i("files_reminders","Failed to clear reminder"))}}function w(){C.value=!1,s("close")}function G(){const a=document.getElementById("set-custom-reminder");g.value=a.checkValidity()}return(a,H)=>C.value?(v(),y(n(te),{key:0,name:n(i)("files_reminders","Set reminder for '{fileName}'",{fileName:e.node.displayname}),outTransition:"",size:"small",closeOnClickOutside:"",onClosing:w},{actions:d(()=>[b(n(k),{variant:"tertiary",onClick:w},{default:d(()=>[m(u(n(i)("files_reminders","Cancel")),1)]),_:1}),S.value?(v(),y(n(k),{key:0,onClick:z},{default:d(()=>[m(u(n(i)("files_reminders","Clear reminder")),1)]),_:1})):A("",!0),b(n(k),{disabled:!g.value,variant:"primary",form:"set-custom-reminder-form",type:"submit"},{default:d(()=>[m(u(n(i)("files_reminders","Set reminder")),1)]),_:1},8,["disabled"])]),default:d(()=>[se("form",{id:"set-custom-reminder-form",class:"custom-reminder-modal",onSubmit:oe(q,["prevent"])},[b(n(J),{id:"set-custom-reminder",modelValue:o.value,"onUpdate:modelValue":H[0]||(H[0]=K=>o.value=K),label:n(i)("files_reminders","Reminder at custom date & time"),min:x.value,required:!0,type:"datetime-local",onInput:G},null,8,["modelValue","label","min"]),g.value&&o.value?(v(),y(n(M),{key:0,type:"info"},{default:d(()=>[m(u(n(i)("files_reminders","We will remind you of this file"))+" ",1),b(n(ee),{timestamp:o.value},null,8,["timestamp"])]),_:1})):(v(),y(n(M),{key:1,type:"error"},{default:d(()=>[m(u(n(i)("files_reminders","Please choose a valid date & time")),1)]),_:1}))],32)]),_:1},8,["name"])):A("",!0)}}),ge=de(pe,[["__scopeId","data-v-1cc1857f"]]);async function j(e){await re(ge,{node:e})}const we={id:"reminder-status",inline:()=>!0,displayName:()=>"",title:({nodes:e})=>{const t=e.at(0),r=new Date(t.attributes["reminder-due-date"]);return`${i("files_reminders","Reminder set")} – ${h(r)}`},iconSvgInline:()=>U,enabled:({nodes:e})=>e.length!==1?!1:!!e.at(0).attributes["reminder-due-date"],async exec({nodes:e}){const t=e.at(0);return await j(t),null},order:-15},ve='',T="set-reminder-menu",ye={id:T,displayName:()=>i("files_reminders","Set reminder"),iconSvgInline:()=>U,enabled:({nodes:e,view:t})=>t.id==="trashbin"||e.length!==1?!1:e.at(0).attributes["reminder-due-date"]!==void 0,async exec(){return null},order:20},be={id:"set-reminder-custom",displayName:()=>i("files_reminders","Custom reminder"),title:()=>i("files_reminders","Reminder at custom date & time"),iconSvgInline:()=>ve,enabled:({nodes:e,view:t})=>t.id==="trashbin"||e.length!==1?!1:e.at(0).attributes["reminder-due-date"]!==void 0,parent:T,async exec({nodes:e}){const t=e.at(0);return j(t),null},order:22},P={dateTimePreset:p.LaterToday,label:i("files_reminders","Later today"),ariaLabel:i("files_reminders","Set reminder for later today"),dateString:"",verboseDateString:""},Y={dateTimePreset:p.Tomorrow,label:i("files_reminders","Tomorrow"),ariaLabel:i("files_reminders","Set reminder for tomorrow"),dateString:"",verboseDateString:""},$={dateTimePreset:p.ThisWeekend,label:i("files_reminders","This weekend"),ariaLabel:i("files_reminders","Set reminder for this weekend"),dateString:"",verboseDateString:""},R={dateTimePreset:p.NextWeek,label:i("files_reminders","Next week"),ariaLabel:i("files_reminders","Set reminder for next week"),dateString:"",verboseDateString:""};function De(){return[P,Y,$,R].forEach(e=>{const t=_(e.dateTimePreset);t&&(e.dateString=V(t),e.verboseDateString=h(t),setInterval(()=>{const r=_(e.dateTimePreset);r&&(e.dateString=V(r),e.verboseDateString=h(r))},1e3*30*60))}),[P,Y,$,R].map(_e)}function _e(e){return{id:`set-reminder-${e.dateTimePreset}`,displayName:()=>`${e.label} – ${e.dateString}`,title:()=>`${e.ariaLabel} – ${e.verboseDateString}`,iconSvgInline:()=>"",enabled:({nodes:t,view:r})=>r.id==="trashbin"||t.length!==1?!1:t.at(0).attributes["reminder-due-date"]!==void 0&&!!_(e.dateTimePreset),parent:T,async exec({nodes:t}){const r=t.at(0);if(!r.fileid)return L.error("Failed to set reminder, missing file id"),f(i("files_reminders","Failed to set reminder")),null;try{const s=_(e.dateTimePreset);await E(r.fileid,s),r.attributes["reminder-due-date"]=s.toISOString(),D("files:node:updated",r),N(i("files_reminders",'Reminder set for "{fileName}"',{fileName:r.basename}))}catch(s){L.error("Failed to set reminder",{error:s}),f(i("files_reminders","Failed to set reminder"))}return null},order:21}}Q("nc:reminder-due-date",{nc:"http://nextcloud.org/ns"}),l(we),l(fe),l(ye),l(be),De().forEach(l); //# sourceMappingURL=files_reminders-init.mjs.map diff --git a/dist/files_trashbin-init.mjs b/dist/files_trashbin-init.mjs index 826e739d383..55288c4f30b 100644 --- a/dist/files_trashbin-init.mjs +++ b/dist/files_trashbin-init.mjs @@ -1,4 +1,4 @@ -import{C as c,V as _,b as v,c as x,a as V}from"./index-BDagnpAU.chunk.mjs";import{a as o,b as H,i as A,g as C,h as N,j as E,f as h}from"./index-B-dGqfIG.chunk.mjs";import{c as u,i as S}from"./index-BLNGy7h5.chunk.mjs";import{a as b,d as $,g as I}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{P as D}from"./folder-29HuacU_-Joa_bkj_.chunk.mjs";import{g as y,b as f,t as n}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{g as L,a as M,b as T,r as k,d as F}from"./dav-CGJ67RGS.chunk.mjs";import{f as B}from"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import{e as U}from"./Web-BwmPK40i.chunk.mjs";import{N as P}from"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import{l as O}from"./public-C1mLBHT3.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";import"./index-BYnFfAmz.chunk.mjs";import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";const R='',j='',w=`/trashbin/${o()?.uid}/trash`,q=L(),z=` +import{C as c,V as _,b as v,c as x,a as V}from"./index-BDagnpAU.chunk.mjs";import{a as o,b as H,i as A,g as C,h as N,j as E,f as h}from"./index-B-dGqfIG.chunk.mjs";import{c as u,i as S}from"./index-BLNGy7h5.chunk.mjs";import{a as b,d as $,g as I}from"./index-DL1yHC1K-BJ_TsAjb.chunk.mjs";import{P as D}from"./folder-29HuacU_-Joa_bkj_.chunk.mjs";import{g as y,b as f,t as n}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{g as L,a as M,b as T,r as k,d as F}from"./dav-CGJ67RGS.chunk.mjs";import{f as B}from"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import{e as U}from"./Web-BwmPK40i.chunk.mjs";import{N as P}from"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import{l as O}from"./public-C1mLBHT3.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./mdi-Lt-19ASw.chunk.mjs";import"./index-BYnFfAmz.chunk.mjs";import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";const R='',j='',w=`/trashbin/${o()?.uid}/trash`,q=L(),z=` diff --git a/dist/files_versions-sidebar-tab.mjs b/dist/files_versions-sidebar-tab.mjs index 025950c301b..e1b54fd87c4 100644 --- a/dist/files_versions-sidebar-tab.mjs +++ b/dist/files_versions-sidebar-tab.mjs @@ -1,3 +1,3 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/FilesVersionsSidebarTab-Dy1jRbse.chunk.mjs'),window.OC.filePath('', '', 'dist/index-DL1yHC1K-DnBG6QLJ.chunk.mjs'),window.OC.filePath('', '', 'dist/Web-BwmPK40i.chunk.mjs'),window.OC.filePath('', '', 'dist/public-C1mLBHT3.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BW4M2n71.chunk.mjs'),window.OC.filePath('', '', 'dist/NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs'),window.OC.filePath('', '', 'dist/logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs'),window.OC.filePath('', '', 'dist/translation-DoG5ZELJ-CFYnqluG.chunk.mjs'),window.OC.filePath('', '', 'dist/index-B-dGqfIG.chunk.mjs'),window.OC.filePath('', '', 'dist/common-createElementId-DhjFt1I9-C_oBIsvc.chunk.css'),window.OC.filePath('', '', 'dist/common-logger-D3RVzcfQ-BE3lcFW4.chunk.css'),window.OC.filePath('', '', 'dist/common-NcModal-DUWLRm_F-BsKc2RT9.chunk.css'),window.OC.filePath('', '', 'dist/TrashCanOutline-Cv7t-yKN.chunk.mjs'),window.OC.filePath('', '', 'dist/common-TrashCanOutline-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/common-index-DYA_tnKg.chunk.css'),window.OC.filePath('', '', 'dist/mdi-Lt-19ASw.chunk.mjs'),window.OC.filePath('', '', 'dist/common-mdi-BWNFKLbC.chunk.css'),window.OC.filePath('', '', 'dist/index-BDagnpAU.chunk.mjs'),window.OC.filePath('', '', 'dist/folder-29HuacU_-Joa_bkj_.chunk.mjs'),window.OC.filePath('', '', 'dist/util-Alk1iwuj.chunk.mjs'),window.OC.filePath('', '', 'dist/PencilOutline-CJ2aSuY5.chunk.mjs'),window.OC.filePath('', '', 'dist/common-PencilOutline-B3DMd8SU.chunk.css'),window.OC.filePath('', '', 'dist/NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcDateTime-b9UhLDij.chunk.css'),window.OC.filePath('', '', 'dist/NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BLNGy7h5.chunk.mjs'),window.OC.filePath('', '', 'dist/ArrowRight-DKsMJImQ.chunk.mjs'),window.OC.filePath('', '', 'dist/common-ArrowRight-vZpQWIqF.chunk.css'),window.OC.filePath('', '', 'dist/colors-BDeMBgfq-BQ_6MaUU.chunk.mjs'),window.OC.filePath('', '', 'dist/NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcUserStatusIcon-DsviB2Cr-Bq_6hmXG.chunk.css'),window.OC.filePath('', '', 'dist/common-NcAvatar-M3-CbKbq-DTVmI7NO.chunk.css'),window.OC.filePath('', '', 'dist/TrayArrowDown-BI3qCRD6.chunk.mjs'),window.OC.filePath('', '', 'dist/common-TrayArrowDown-CaC9_ffV.chunk.css'),window.OC.filePath('', '', 'dist/NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcInputField-B1bGxYHt-BYHxARP-.chunk.css'),window.OC.filePath('', '', 'dist/dav-CGJ67RGS.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BYnFfAmz.chunk.mjs'),window.OC.filePath('', '', 'dist/index-DlyLvrtV.chunk.mjs'),window.OC.filePath('', '', 'dist/files_versions-FilesVersionsSidebarTab-Cjl2hr1y.chunk.css')])))=>i.map(i=>d[i]); -import{d as i,a as r,_ as e}from"./Web-BwmPK40i.chunk.mjs";import{r as t}from"./index-BDagnpAU.chunk.mjs";import{t as m}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{i as n}from"./public-C1mLBHT3.chunk.mjs";import{F as a}from"./folder-29HuacU_-Joa_bkj_.chunk.mjs";import"./index-B-dGqfIG.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";const d='',s="files-versions_sidebar-tab";t({id:"files_versions",tagName:s,order:90,displayName:m("files_versions","Versions"),iconSvgInline:d,enabled({node:o}){return!(n()||o.type!==a.File)},async onInit(){const o=r(()=>e(()=>import("./FilesVersionsSidebarTab-Dy1jRbse.chunk.mjs"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41]),import.meta.url));window.customElements.define(s,i(o,{shadowRoot:!1}))}}); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/FilesVersionsSidebarTab-DnlxLRCh.chunk.mjs'),window.OC.filePath('', '', 'dist/index-DL1yHC1K-BJ_TsAjb.chunk.mjs'),window.OC.filePath('', '', 'dist/Web-BwmPK40i.chunk.mjs'),window.OC.filePath('', '', 'dist/public-C1mLBHT3.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BW4M2n71.chunk.mjs'),window.OC.filePath('', '', 'dist/NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs'),window.OC.filePath('', '', 'dist/logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs'),window.OC.filePath('', '', 'dist/translation-DoG5ZELJ-CFYnqluG.chunk.mjs'),window.OC.filePath('', '', 'dist/index-B-dGqfIG.chunk.mjs'),window.OC.filePath('', '', 'dist/common-createElementId-DhjFt1I9-C_oBIsvc.chunk.css'),window.OC.filePath('', '', 'dist/common-logger-D3RVzcfQ-BE3lcFW4.chunk.css'),window.OC.filePath('', '', 'dist/common-NcModal-DUWLRm_F-BsKc2RT9.chunk.css'),window.OC.filePath('', '', 'dist/TrashCanOutline-Cv7t-yKN.chunk.mjs'),window.OC.filePath('', '', 'dist/common-TrashCanOutline-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/common-index-DYA_tnKg.chunk.css'),window.OC.filePath('', '', 'dist/mdi-Lt-19ASw.chunk.mjs'),window.OC.filePath('', '', 'dist/common-mdi-BWNFKLbC.chunk.css'),window.OC.filePath('', '', 'dist/index-BDagnpAU.chunk.mjs'),window.OC.filePath('', '', 'dist/folder-29HuacU_-Joa_bkj_.chunk.mjs'),window.OC.filePath('', '', 'dist/util-Alk1iwuj.chunk.mjs'),window.OC.filePath('', '', 'dist/PencilOutline-CJ2aSuY5.chunk.mjs'),window.OC.filePath('', '', 'dist/common-PencilOutline-B3DMd8SU.chunk.css'),window.OC.filePath('', '', 'dist/NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcDateTime-b9UhLDij.chunk.css'),window.OC.filePath('', '', 'dist/NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BLNGy7h5.chunk.mjs'),window.OC.filePath('', '', 'dist/ArrowRight-DKsMJImQ.chunk.mjs'),window.OC.filePath('', '', 'dist/common-ArrowRight-vZpQWIqF.chunk.css'),window.OC.filePath('', '', 'dist/colors-BDeMBgfq-BQ_6MaUU.chunk.mjs'),window.OC.filePath('', '', 'dist/NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcUserStatusIcon-DsviB2Cr-Bq_6hmXG.chunk.css'),window.OC.filePath('', '', 'dist/common-NcAvatar-M3-CbKbq-DTVmI7NO.chunk.css'),window.OC.filePath('', '', 'dist/TrayArrowDown-BI3qCRD6.chunk.mjs'),window.OC.filePath('', '', 'dist/common-TrayArrowDown-CaC9_ffV.chunk.css'),window.OC.filePath('', '', 'dist/NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcInputField-B1bGxYHt-BYHxARP-.chunk.css'),window.OC.filePath('', '', 'dist/dav-CGJ67RGS.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BYnFfAmz.chunk.mjs'),window.OC.filePath('', '', 'dist/index-DlyLvrtV.chunk.mjs'),window.OC.filePath('', '', 'dist/files_versions-FilesVersionsSidebarTab-Cjl2hr1y.chunk.css')])))=>i.map(i=>d[i]); +import{d as i,a as r,_ as e}from"./Web-BwmPK40i.chunk.mjs";import{r as t}from"./index-BDagnpAU.chunk.mjs";import{t as m}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{i as n}from"./public-C1mLBHT3.chunk.mjs";import{F as a}from"./folder-29HuacU_-Joa_bkj_.chunk.mjs";import"./index-B-dGqfIG.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";const d='',s="files-versions_sidebar-tab";t({id:"files_versions",tagName:s,order:90,displayName:m("files_versions","Versions"),iconSvgInline:d,enabled({node:o}){return!(n()||o.type!==a.File)},async onInit(){const o=r(()=>e(()=>import("./FilesVersionsSidebarTab-DnlxLRCh.chunk.mjs"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41]),import.meta.url));window.customElements.define(s,i(o,{shadowRoot:!1}))}}); //# sourceMappingURL=files_versions-sidebar-tab.mjs.map diff --git a/dist/index-C_wPY1fR.chunk.mjs b/dist/index-BrjNu3x_.chunk.mjs similarity index 99% rename from dist/index-C_wPY1fR.chunk.mjs rename to dist/index-BrjNu3x_.chunk.mjs index 06854f83c39..c3df16a6c3d 100644 --- a/dist/index-C_wPY1fR.chunk.mjs +++ b/dist/index-BrjNu3x_.chunk.mjs @@ -1,5 +1,5 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/index-XAFCS_Gy.chunk.mjs'),window.OC.filePath('', '', 'dist/index-B-dGqfIG.chunk.mjs'),window.OC.filePath('', '', 'dist/ArrowRight-DKsMJImQ.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs'),window.OC.filePath('', '', 'dist/translation-DoG5ZELJ-CFYnqluG.chunk.mjs'),window.OC.filePath('', '', 'dist/Web-BwmPK40i.chunk.mjs'),window.OC.filePath('', '', 'dist/public-C1mLBHT3.chunk.mjs'),window.OC.filePath('', '', 'dist/common-createElementId-DhjFt1I9-C_oBIsvc.chunk.css'),window.OC.filePath('', '', 'dist/logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs'),window.OC.filePath('', '', 'dist/common-logger-D3RVzcfQ-BE3lcFW4.chunk.css'),window.OC.filePath('', '', 'dist/common-ArrowRight-vZpQWIqF.chunk.css'),window.OC.filePath('', '', 'dist/NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs'),window.OC.filePath('', '', 'dist/TrashCanOutline-Cv7t-yKN.chunk.mjs'),window.OC.filePath('', '', 'dist/common-TrashCanOutline-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/common-NcCheckboxRadioSwitch-D8Dfv4iw-CPGkDj-p.chunk.css'),window.OC.filePath('', '', 'dist/index-BLNGy7h5.chunk.mjs'),window.OC.filePath('', '', 'dist/util-Alk1iwuj.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BOH7nBEM.chunk.mjs'),window.OC.filePath('', '', 'dist/NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcModal-DUWLRm_F-BsKc2RT9.chunk.css'),window.OC.filePath('', '', 'dist/common-index-980JFXIN.chunk.css'),window.OC.filePath('', '', 'dist/NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcEmptyContent-CGAPqk4S-Don1d5Bd.chunk.css'),window.OC.filePath('', '', 'dist/NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcInputField-B1bGxYHt-BYHxARP-.chunk.css')])))=>i.map(i=>d[i]); -import{v as ue,a9 as Ro,l as mt,e as Do,r as H,o as R,f as U,c as J,k as ne,h as pe,a7 as Zr,N as Mo,Q as ei,w as de,g as ee,t as me,b as ti,X as Fo,p as Xn,z as zo,V as No,y as tt,m as kn,C as jo,j as ni,u as ht,G as Zn,F as ri,B as Bo,ad as Y,_ as Vo}from"./Web-BwmPK40i.chunk.mjs";import{e as Uo,D as $o,l as Ve,N as xn,E as Ho,R as ii}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as qo}from"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import{k as Wo,f as Qo,c as De,d as oi,t as li,a as Yo}from"./index-B-dGqfIG.chunk.mjs";import{c as Ne}from"./index-BLNGy7h5.chunk.mjs";import{l as er,a as tr}from"./public-C1mLBHT3.chunk.mjs";import{r as Ue,F as Ko,b as re,G as Go,H as Jo,I as si,J as Xo,K as Zo,q as el,L as tl,y as nl,M as rl,_ as ge,c as $t,N as il}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{I as ol,N as ai,_ as ci}from"./index-BOH7nBEM.chunk.mjs";import{N as bn}from"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import{N as ll,I as sl,u as al,v as cl}from"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import{g as ui,v as $e,c as ul,U as nr,N as fl,p as pl,r as dl,E as hl,u as rr,S as fi}from"./ArrowRight-DKsMJImQ.chunk.mjs";import{N as ml}from"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{_ as gl}from"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";Ue(Ko);const yl=2e3;function vl(e){const t=mt(!1),n=ue(()=>t.value?Uo:$o),r=ue(()=>t.value?re("Copied"):re("Copy to clipboard"));async function i(){if(t.value)return;const o=Ro(e);try{await navigator.clipboard.writeText(o)}catch{prompt("",o)}t.value=!0,setTimeout(()=>{t.value=!1},yl)}return{isCopied:t,copy:i,icon:n,altText:r}}window._vue_richtext_widgets??={},window._registerWidget??=(e,t,n,r)=>{pi(e,t,n,r)};function pi(e,t,n=()=>{},r){const i={hasInteractiveView:!0,fullWidth:!1,...r};if(window._vue_richtext_widgets[e]){Ve.error(`[ReferencePicker]: Widget for id ${e} already registered`);return}window._vue_richtext_widgets[e]={id:e,callback:t,onDestroy:n,...i}}function di(e,t){const{richObjectType:n,richObject:r,accessible:i,interactive:o}=t;if(n!=="open-graph"){if(!window._vue_richtext_widgets[n]){Ve.error("Widget for rich object type "+n+" not registered");return}window._vue_richtext_widgets[n].callback(e,{richObjectType:n,richObject:r,accessible:i,interactive:o})}}function kl(e,t){e!=="open-graph"&&window._vue_richtext_widgets[e]&&window._vue_richtext_widgets[e].onDestroy(t)}function hi(e){return!!window._vue_richtext_widgets[e]}function xl(e){return!!window._vue_richtext_widgets[e]?.hasInteractiveView}function bl(e){return!!window._vue_richtext_widgets[e]?.fullWidth}window._vue_richtext_custom_picker_elements??={},window._registerCustomPickerElement??=mi;class wl{element;object;constructor(t,n){this.element=t,this.object=n}}function nt(e){return!!window._vue_richtext_custom_picker_elements[e]}function Sl(e){const t=window._vue_richtext_custom_picker_elements[e]?.size;return t&&["small","normal","large","full"].includes(t)?t:null}function mi(e,t,n=()=>{},r="large"){if(window._vue_richtext_custom_picker_elements[e]){Ve.error(`Custom reference picker element for id ${e} already registered`);return}window._vue_richtext_custom_picker_elements[e]={id:e,callback:t,onDestroy:n,size:r}}function gi(e,t){const{providerId:n,accessible:r}=t;if(!window._vue_richtext_custom_picker_elements[n]){Ve.error(`Custom reference picker element for reference provider ID ${n} not registered`);return}return window._vue_richtext_custom_picker_elements[n].callback(e,{providerId:n,accessible:r})}function Cl(e,t,n){window._vue_richtext_custom_picker_elements[e]&&window._vue_richtext_custom_picker_elements[e].onDestroy(t,n)}const Il={name:"ArrowLeftIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Pl=["aria-hidden","aria-label"],El=["fill","width","height"],_l={d:"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z"},Tl={key:0};function Ll(e,t,n,r,i,o){return R(),U("span",kn(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon arrow-left-icon",role:"img",onClick:t[0]||(t[0]=l=>e.$emit("click",l))}),[(R(),U("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[ee("path",_l,[n.title?(R(),U("title",Tl,me(n.title),1)):pe("",!0)])],8,El))],16,Pl)}const Ol=ge(Il,[["render",Ll]]),Al={name:"NcCustomPickerElement",props:{provider:{type:Object,required:!0}},emits:["cancel","submit"],data(){return{isRegistered:nt(this.provider.id),renderResult:null}},mounted(){this.isRegistered&&this.renderElement()},beforeUnmount(){this.isRegistered&&Cl(this.provider.id,this.$el,this.renderResult)},methods:{renderElement(){this.$refs.domElement&&(this.$refs.domElement.innerHTML="");const e=gi(this.$refs.domElement,{providerId:this.provider.id,accessible:!1});Promise.resolve(e).then(t=>{this.renderResult=t,this.renderResult.object?._isVue&&this.renderResult.object?.$on&&(this.renderResult.object.$on("submit",this.onSubmit),this.renderResult.object.$on("cancel",this.onCancel)),this.renderResult.element.addEventListener("submit",n=>{this.onSubmit(n.detail)}),this.renderResult.element.addEventListener("cancel",this.onCancel)})},onSubmit(e){this.$emit("submit",e)},onCancel(){this.$emit("cancel")}}},Rl={ref:"domElement"};function Dl(e,t,n,r,i,o){return R(),U("div",Rl,null,512)}const Ml=ge(Al,[["render",Dl],["__scopeId","data-v-e408867a"]]),Fl={name:"LinkVariantIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},zl=["aria-hidden","aria-label"],Nl=["fill","width","height"],jl={d:"M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z"},Bl={key:0};function Vl(e,t,n,r,i,o){return R(),U("span",kn(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon link-variant-icon",role:"img",onClick:t[0]||(t[0]=l=>e.$emit("click",l))}),[(R(),U("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[ee("path",jl,[n.title?(R(),U("title",Bl,me(n.title),1)):pe("",!0)])],8,Nl))],16,zl)}const wn=ge(Fl,[["render",Vl]]);Ue(Go);const Sn="any-link",yi={id:Sn,title:re("Any link"),order:0,icon_url:Wo("core","filetypes/link.svg")};window._vue_richtext_reference_providers??=er("core","reference-provider-list",[]),window._vue_richtext_reference_provider_timestamps??=er("core","reference-provider-timestamps",{});function vi(e){return e===Sn?yi:Cn().find(t=>t.id===e)}function Cn(){return window._vue_richtext_reference_providers.filter(e=>{const t=!!e.search_providers_ids&&e.search_providers_ids.length>0||nt(e.id);return t||Ve.debug(`[smart picker] ${e.id} reference provider is discoverable but does not have any related search provider or custom picker component registered`),t})}function ki(e){const t=window._vue_richtext_reference_provider_timestamps;return e.sort((n,r)=>n.order===r.order?0:n.order>r.order?1:-1).sort((n,r)=>{const i=t[n.id],o=t[r.id];return i===o?0:o===void 0?-1:i===void 0?1:i>o?-1:1})}function xi(e,t){const n=Cn(),r=e.replace(/[/\-\\^$*+?.()|[\]{}]/g,"\\$&"),i=new RegExp(r,"i"),o=ki(n).filter(s=>s.title.match(i)),l=t?o.slice(0,t):o;return(e===""||l.length===0)&&l.push(yi),l}async function Ul(e){const t=Math.floor(Date.now()/1e3),n=De("references/provider/{providerId}",{providerId:e});await Ne.put(n,{timestamp:t}),window._vue_richtext_reference_provider_timestamps[e]=t}Ue(si,Jo);function In(e){try{return!!new URL(e)}catch{return!1}}const $l={name:"NcProviderList",components:{NcSelect:ai,NcHighlight:ci,NcEmptyContent:bn,LinkVariantIcon:wn},emits:["selectProvider","submit"],data(){return{selectedProvider:null,query:"",multiselectPlaceholder:re("Select provider"),providerIconAlt:re("Provider icon")}},computed:{options(){const e=[];return this.query!==""&&In(this.query)&&e.push({id:this.query,title:this.query,isLink:!0}),e.push(...xi(this.query)),e}},methods:{focus(){setTimeout(()=>{this.$refs["provider-select"]?.$el?.querySelector("#provider-select-input")?.focus()},300)},onProviderSelected(e){e!==null&&(e.isLink?this.$emit("submit",e.title):this.$emit("selectProvider",e),this.selectedProvider=null)},onSearch(e){this.query=e}}},Hl={class:"provider-list"},ql={key:0,class:"provider"},Wl={key:1,class:"provider"},Ql=["src","alt"];function Yl(e,t,n,r,i,o){const l=H("LinkVariantIcon"),s=H("NcHighlight"),a=H("NcSelect"),c=H("NcEmptyContent");return R(),U("div",Hl,[ne(a,{ref:"provider-select",modelValue:i.selectedProvider,"onUpdate:modelValue":[t[0]||(t[0]=f=>i.selectedProvider=f),o.onProviderSelected],class:"provider-list--select",inputId:"provider-select-input",label:"title",placeholder:i.multiselectPlaceholder,options:o.options,appendToBody:!1,clearSearchOnSelect:!0,clearSearchOnBlur:()=>!1,filterable:!1,onSearch:o.onSearch},{option:de(f=>[f.isLink?(R(),U("div",ql,[ne(l,{class:"link-icon",size:20}),ee("span",null,me(f.title),1)])):(R(),U("div",Wl,[ee("img",{class:"provider-icon",src:f.icon_url,alt:i.providerIconAlt},null,8,Ql),ne(s,{class:"option-text",search:i.query,text:f.title},null,8,["search","text"])]))]),_:1},8,["modelValue","placeholder","options","onSearch","onUpdate:modelValue"]),ne(c,{class:"provider-list--empty-content"},{icon:de(()=>[ne(l)]),_:1})])}const Kl=ge($l,[["render",Yl],["__scopeId","data-v-ea81d3af"]]);Ue(Xo);const Gl=["src"],Jl={class:"widget-default--details"},Xl={class:"widget-default--name"},Zl={class:"widget-default--link"},es=180*1e3,ts=ti({__name:"NcReferenceWidget",props:{reference:{},interactive:{type:Boolean,default:!0},interactiveOptIn:{type:Boolean,default:!1}},setup(e){const t=e,n=Fo(Ho,null),r=mt(!1),i=Xn("customWidget"),o=Xn("widgetRoot"),{width:l}=al(o);cl(o,([A])=>{Zn(()=>{r.value=A.isIntersecting})});const s=mt(!1),a=mt(!1);let c=null;const f=ue(()=>!t.interactiveOptIn&&t.interactive||s.value),u=ue(()=>bl(t.reference.richObjectType)),d=ue(()=>hi(t.reference.richObjectType)),p=ue(()=>d.value&&xl(t.reference.richObjectType)),g=ue(()=>!t.reference.accessible),k=ue(()=>[450,550,650,1/0].findIndex(A=>l.value{if(k.value===0)return{display:"none"};const A=k.value;return{lineClamp:A,webkitLineClamp:A}}),y=ue(()=>{const A=t.reference.openGraphObject.link;return A?A.startsWith("https://")?A.substring(8):A.startsWith("http://")?A.substring(7):A:""}),C=ue(()=>ui(n,t.reference.openGraphObject.link)),I=ue(()=>C.value?ii:"a"),_=ue(()=>C.value?{to:C.value}:{href:t.reference.openGraphObject.link,target:"_blank"});zo(r,A=>{if(!A){c=setTimeout(()=>{r.value||z()},es);return}c&&(clearTimeout(c),c=null),a.value||b()},{immediate:!0}),No(()=>{z()});function N(){s.value=!0,b()}function b(){if(!i.value||t.reference.richObjectType==="open-graph")return;i.value.innerHTML="";const A=document.createElement("div");A.style.width="100%",i.value.appendChild(A),Zn(()=>{di(A,{...t.reference,interactive:f.value}),a.value=!0})}function z(){a.value&&o.value&&(kl(t.reference.richObjectType,o.value),a.value=!1)}return(A,B)=>(R(),U("div",{ref_key:"widgetRoot",ref:o,class:tt({"toggle-interactive":p.value&&!f.value})},[e.reference&&d.value?(R(),U("div",{key:0,ref_key:"customWidget",ref:i,class:tt(["widget-custom",{"full-width":u.value}])},null,2)):!g.value&&e.reference&&e.reference.openGraphObject&&!d.value?(R(),J(jo(I.value),kn({key:1},_.value,{rel:"noopener noreferrer",class:"widget-default"}),{default:de(()=>[e.reference.openGraphObject.thumb?(R(),U("img",{key:0,class:"widget-default--image",src:e.reference.openGraphObject.thumb},null,8,Gl)):pe("",!0),ee("div",Jl,[ee("p",Xl,me(e.reference.openGraphObject.name),1),ee("p",{class:"widget-default--description",style:ei(w.value)},me(e.reference.openGraphObject.description),5),ee("p",Zl,me(y.value),1)])]),_:1},16)):pe("",!0),e.interactiveOptIn&&p.value&&!f.value?(R(),J(xn,{key:2,class:"toggle-interactive--button",onClick:N},{default:de(()=>[ni(me(ht(re)("Enable interactive view")),1)]),_:1})):pe("",!0)],2))}}),Pn=ge(ts,[["__scopeId","data-v-b0ec9f0b"]]);Ue(Zo);const ns={name:"NcRawLinkInput",components:{LinkVariantIcon:wn,NcEmptyContent:bn,NcLoadingIcon:ml,NcReferenceWidget:Pn,NcTextField:gl},props:{provider:{type:Object,required:!0}},emits:["submit"],data(){return{inputValue:"",loading:!1,reference:null,abortController:null,inputPlaceholder:re("Enter link")}},computed:{isLinkValid(){return In(this.inputValue)},debouncedUpdateReference(){return oi(this.updateReference,500)}},methods:{focus(){this.$refs["url-input"].$el.getElementsByTagName("input")[0]?.focus()},onSubmit(e){const t=e.target.value;this.isLinkValid&&this.$emit("submit",t)},onClear(){this.inputValue="",this.reference=null},onInput(){this.reference=null,this.abortController&&this.abortController.abort(),this.isLinkValid&&this.debouncedUpdateReference()},updateReference(){this.loading=!0,this.abortController=new AbortController,Ne.get(De("references/resolve",2)+"?reference="+encodeURIComponent(this.inputValue),{signal:this.abortController.signal}).then(e=>{this.reference=e.data.ocs.data.references[this.inputValue]}).catch(e=>{Ve.error("[NcRawLinkInput] Failed to update reference",{error:e})}).then(()=>{this.loading=!1})}}},rs={class:"raw-link"},is={class:"input-wrapper"},os=["src"];function ls(e,t,n,r,i,o){const l=H("NcLoadingIcon"),s=H("LinkVariantIcon"),a=H("NcTextField"),c=H("NcReferenceWidget"),f=H("NcEmptyContent");return R(),U("div",rs,[ee("div",is,[ne(a,{ref:"url-input",modelValue:i.inputValue,"onUpdate:modelValue":[t[0]||(t[0]=u=>i.inputValue=u),o.onInput],showTrailingButton:i.inputValue!=="",label:i.inputPlaceholder,onTrailingButtonClick:o.onClear,onKeyup:Zr(o.onSubmit,["enter"])},{default:de(()=>[i.loading?(R(),J(l,{key:0,size:16})):(R(),J(s,{key:1,size:16}))]),_:1},8,["modelValue","showTrailingButton","label","onTrailingButtonClick","onUpdate:modelValue","onKeyup"])]),i.reference!==null?(R(),J(c,{key:0,class:"reference-widget",reference:i.reference},null,8,["reference"])):(R(),J(f,{key:1,class:"raw-link--empty-content"},{icon:de(()=>[n.provider.icon_url?(R(),U("img",{key:0,class:"provider-icon",src:n.provider.icon_url},null,8,os)):(R(),J(s,{key:1}))]),_:1}))])}const ss=ge(ns,[["render",ls],["__scopeId","data-v-918730b9"]]),as={name:"NcSearchResult",components:{NcHighlight:ci},props:{entry:{type:Object,required:!0},query:{type:String,required:!0}}},cs={class:"result"},us=["src"],fs={class:"result--content"},ps={class:"result--content--name"},ds={class:"result--content--subline"};function hs(e,t,n,r,i,o){const l=H("NcHighlight");return R(),U("div",cs,[n.entry.icon?(R(),U("div",{key:0,class:tt([{[n.entry.icon]:!0,rounded:n.entry.rounded},"result--icon-class"])},null,2)):(R(),U("img",{key:1,class:tt(["result--image",{rounded:n.entry.rounded}]),src:n.entry.thumbnailUrl},null,10,us)),ee("div",fs,[ee("span",ps,[ne(l,{search:n.query,text:n.entry.title},null,8,["search","text"])]),ee("span",ds,[ne(l,{search:n.query,text:n.entry.subline},null,8,["search","text"])])])])}const ms=ge(as,[["render",hs],["__scopeId","data-v-059edcfb"]]);Ue(tl,si,el);const ir=5,gs={name:"NcSearch",components:{LinkVariantIcon:wn,DotsHorizontalIcon:sl,NcEmptyContent:bn,NcSelect:ai,NcSearchResult:ms},props:{provider:{type:Object,required:!0},showEmptyContent:{type:Boolean,default:!0},searchPlaceholder:{type:String,default:null}},emits:["submit"],data(){return{searchQuery:"",selectedResult:null,resultsBySearchProvider:{},searching:!1,searchingMoreOf:null,abortController:null,noOptionsText:re("Start typing to search"),providerIconAlt:re("Provider icon")}},computed:{mySearchPlaceholder(){return this.searchPlaceholder||re("Search")},searchProviderIds(){return this.provider.search_providers_ids},options(){if(this.searchQuery==="")return[];const e=[];return In(this.searchQuery)&&e.push(this.rawLinkEntry),e.push(...this.formattedSearchResults),e},rawLinkEntry(){return{id:"rawLinkEntry",resourceUrl:this.searchQuery,isRawLink:!0}},formattedSearchResults(){const e=[];return this.searchProviderIds.forEach(t=>{if(this.resultsBySearchProvider[t].entries.length>0){(this.searchProviderIds.length>1||this.resultsBySearchProvider[t].entries.length>1)&&e.push({id:"groupTitle-"+t,name:this.resultsBySearchProvider[t].name,isCustomGroupTitle:!0,providerId:t});const n=this.resultsBySearchProvider[t].entries.map((r,i)=>({id:"provider-"+t+"-entry-"+i,...r}));e.push(...n),this.resultsBySearchProvider[t].isPaginated&&e.push({id:"moreOf-"+t,name:this.resultsBySearchProvider[t].name,isMore:!0,providerId:t,isLoading:this.searchingMoreOf===t})}}),e},debouncedUpdateSearch(){return oi(this.updateSearch,500)}},mounted(){this.resetResults()},beforeUnmount(){this.cancelSearchRequests()},methods:{t:re,resetResults(){const e={};this.searchProviderIds.forEach(t=>{e[t]={entries:[]}}),this.resultsBySearchProvider=e},focus(){setTimeout(()=>{this.$refs["search-select"]?.$el?.querySelector("#search-select-input")?.focus()},300)},cancelSearchRequests(){this.abortController&&this.abortController.abort()},onSearchInput(e){this.searchQuery=e,this.debouncedUpdateSearch()},onSelectResultSelected(e){e!==null&&(e.resourceUrl?(this.cancelSearchRequests(),this.$emit("submit",e.resourceUrl)):e.isMore&&this.searchMoreOf(e.providerId).then(()=>{this.selectedResult=null}))},searchMoreOf(e){return this.searchingMoreOf=e,this.cancelSearchRequests(),this.searchProviders(e)},updateSearch(){if(this.cancelSearchRequests(),this.resetResults(),this.searchQuery===""){this.searching=!1;return}return this.searchProviders()},searchProviders(e=null){this.abortController=new AbortController,this.searching=!0;const t=e===null?[...this.searchProviderIds].map(n=>this.searchOneProvider(n)):[this.searchOneProvider(e,this.resultsBySearchProvider[e]?.cursor??null)];return Promise.allSettled(t).then(n=>{n.find(r=>r.status==="rejected"&&(r.reason.name==="CanceledError"||r.reason.code==="ERR_CANCELED"))||(this.searching=!1,this.searchingMoreOf=null)})},searchOneProvider(e,t=null){const n=t===null?De("search/providers/{providerId}/search?term={term}&limit={limit}",{providerId:e,term:this.searchQuery,limit:ir}):De("search/providers/{providerId}/search?term={term}&limit={limit}&cursor={cursor}",{providerId:e,term:this.searchQuery,limit:ir,cursor:t});return Ne.get(n,{signal:this.abortController.signal}).then(r=>{const i=r.data.ocs.data;this.resultsBySearchProvider[e].name=i.name,this.resultsBySearchProvider[e].cursor=i.cursor,this.resultsBySearchProvider[e].isPaginated=i.isPaginated,this.resultsBySearchProvider[e].entries.push(...i.entries)})}}},ys={key:0,class:"custom-option"},vs={class:"option-text"},ks={key:2,class:"custom-option group-name"},xs=["src"],bs={class:"option-text"},ws={key:3,class:"custom-option"},Ss={key:0,class:"option-simple-icon icon-loading-small"},Cs={class:"option-text"},Is=["alt","src"];function Ps(e,t,n,r,i,o){const l=H("LinkVariantIcon"),s=H("NcSearchResult"),a=H("DotsHorizontalIcon"),c=H("NcSelect"),f=H("NcEmptyContent");return R(),U("div",{class:tt(["smart-picker-search",{"with-empty-content":n.showEmptyContent}])},[ne(c,{ref:"search-select",modelValue:i.selectedResult,"onUpdate:modelValue":[t[0]||(t[0]=u=>i.selectedResult=u),o.onSelectResultSelected],class:"smart-picker-search--select",inputId:"search-select-input",label:"name",placeholder:o.mySearchPlaceholder,options:o.options,appendToBody:!1,closeOnSelect:!1,clearSearchOnSelect:!1,clearSearchOnBlur:()=>!1,resetFocusOnOptionsChange:!1,filterable:!1,autoscroll:!0,resetOnOptionsChange:!1,loading:i.searching,onSearch:o.onSearchInput},{option:de(u=>[u.isRawLink?(R(),U("div",ys,[ne(l,{class:"option-simple-icon",size:20}),ee("span",vs,me(o.t("Raw link {options}",{options:u.resourceUrl})),1)])):u.resourceUrl?(R(),J(s,{key:1,class:"search-result",entry:u,query:i.searchQuery},null,8,["entry","query"])):u.isCustomGroupTitle?(R(),U("span",ks,[n.provider.icon_url?(R(),U("img",{key:0,class:"provider-icon group-name-icon",src:n.provider.icon_url},null,8,xs)):pe("",!0),ee("span",bs,[ee("strong",null,me(u.name),1)])])):u.isMore?(R(),U("span",ws,[u.isLoading?(R(),U("span",Ss)):(R(),J(a,{key:1,class:"option-simple-icon",size:20})),ee("span",Cs,me(o.t('Load more "{options}"',{options:u.name})),1)])):pe("",!0)]),"no-options":de(()=>[ni(me(i.noOptionsText),1)]),_:1},8,["modelValue","placeholder","options","loading","onSearch","onUpdate:modelValue"]),n.showEmptyContent?(R(),J(f,{key:0,class:"smart-picker-search--empty-content"},{icon:de(()=>[n.provider.icon_url?(R(),U("img",{key:0,class:"provider-icon",alt:i.providerIconAlt,src:n.provider.icon_url},null,8,Is)):(R(),J(l,{key:1}))]),_:1})):pe("",!0)],2)}const bi=ge(gs,[["render",Ps],["__scopeId","data-v-af9d145f"]]),at={providerList:1,standardLinkInput:2,searchInput:3,customElement:4},Es={name:"NcReferencePicker",components:{NcCustomPickerElement:Ml,NcProviderList:Kl,NcRawLinkInput:ss,NcSearch:bi},props:{initialProvider:{type:Object,default:()=>null},width:{type:Number,default:null},focusOnCreate:{type:Boolean,default:!0}},emits:["cancel","cancelRawLink","cancelSearch","providerSelected","submit"],data(){return{MODES:at,selectedProvider:this.initialProvider}},computed:{mode(){return this.selectedProvider===null?at.providerList:nt(this.selectedProvider.id)?at.customElement:this.selectedProvider.search_providers_ids?at.searchInput:at.standardLinkInput},pickerWrapperStyle(){return{width:this.width?this.width+"px":void 0}}},mounted(){this.focusOnCreate&&(this.initialProvider?setTimeout(()=>{this.$refs["url-input"]?.focus()},300):this.$nextTick(()=>{this.$refs["provider-list"]?.focus()}))},methods:{onEscapePressed(){this.selectedProvider!==null?this.deselectProvider():this.cancelProviderSelection()},onProviderSelected(e){this.selectedProvider=e,this.$emit("providerSelected",e),this.$nextTick(()=>{this.$refs["url-input"]?.focus()})},cancelCustomElement(){this.deselectProvider()},cancelSearch(){this.$emit("cancelSearch",this.selectedProvider?.title),this.deselectProvider()},cancelRawLinkInput(){this.$emit("cancelRawLink",this.selectedProvider?.title),this.deselectProvider()},cancelProviderSelection(){this.$emit("cancel")},submitLink(e){this.selectedProvider!==null&&Ul(this.selectedProvider.id),this.$emit("submit",e),this.deselectProvider()},deselectProvider(){this.selectedProvider=null,this.$emit("providerSelected",null),setTimeout(()=>{this.$refs["provider-list"]?.focus()},300)}}},_s={key:3,class:"custom-element-wrapper"};function Ts(e,t,n,r,i,o){const l=H("NcProviderList"),s=H("NcRawLinkInput"),a=H("NcSearch"),c=H("NcCustomPickerElement");return R(),U("div",{class:"reference-picker",style:ei(o.pickerWrapperStyle),tabindex:"-1",onKeydown:t[0]||(t[0]=Zr(Mo((...f)=>o.onEscapePressed&&o.onEscapePressed(...f),["stop","prevent"]),["esc"]))},[o.mode===i.MODES.providerList?(R(),J(l,{key:0,ref:"provider-list",onSelectProvider:o.onProviderSelected,onSubmit:o.submitLink,onCancel:o.cancelProviderSelection},null,8,["onSelectProvider","onSubmit","onCancel"])):o.mode===i.MODES.standardLinkInput?(R(),J(s,{key:1,ref:"url-input",provider:i.selectedProvider,onSubmit:o.submitLink,onCancel:o.cancelRawLinkInput},null,8,["provider","onSubmit","onCancel"])):o.mode===i.MODES.searchInput?(R(),J(a,{key:2,ref:"url-input",provider:i.selectedProvider,onCancel:o.cancelSearch,onSubmit:o.submitLink},null,8,["provider","onCancel","onSubmit"])):o.mode===i.MODES.customElement?(R(),U("div",_s,[ne(c,{provider:i.selectedProvider,class:"custom-element",onSubmit:o.submitLink,onCancel:o.cancelCustomElement},null,8,["provider","onSubmit","onCancel"])])):pe("",!0)],36)}const wi=ge(Es,[["render",Ts],["__scopeId","data-v-5e2e9195"]]);Ue(rl,nl);const Ls={name:"NcReferencePickerModal",components:{NcReferencePicker:wi,NcModal:ll,NcButton:xn,ArrowLeftIcon:Ol,CloseIcon:ol},props:{initialProvider:{type:Object,default:()=>null},focusOnCreate:{type:Boolean,default:!0},isInsideViewer:{type:Boolean,default:!1}},emits:["cancel","submit"],data(){return{show:!0,selectedProvider:this.initialProvider,backButtonTitle:re("Back to provider selection"),closeButtonTitle:re("Close"),closeButtonLabel:re("Close Smart Picker")}},computed:{isProviderSelected(){return this.selectedProvider!==null},showBackButton(){return this.initialProvider===null&&this.isProviderSelected},modalSize(){return this.isProviderSelected&&nt(this.selectedProvider.id)?Sl(this.selectedProvider.id)??"large":"normal"},showModalName(){return!this.isProviderSelected||!nt(this.selectedProvider.id)},modalName(){return this.isProviderSelected?this.selectedProvider.title:re("Smart Picker")}},mounted(){if(this.isInsideViewer){const e=this.$refs.modal_content;Qo("viewer:trapElements:changed",e)}},methods:{onCancel(){this.show=!1,this.$emit("cancel")},onSubmit(e){this.show=!1,this.$emit("submit",e)},onProviderSelect(e){this.selectedProvider=e,e===null&&this.initialProvider!==null&&this.onCancel()},onBackClicked(){this.$refs.referencePicker.deselectProvider()}}},Os={ref:"modal_content",class:"reference-picker-modal--content"},As={key:1};function Rs(e,t,n,r,i,o){const l=H("ArrowLeftIcon"),s=H("NcButton"),a=H("CloseIcon"),c=H("NcReferencePicker"),f=H("NcModal");return i.show?(R(),J(f,{key:0,size:o.modalSize,class:"reference-picker-modal",onClose:o.onCancel},{default:de(()=>[ee("div",Os,[o.showBackButton?(R(),J(s,{key:0,"aria-label":i.backButtonTitle,title:i.backButtonTitle,class:"back-button",onClick:o.onBackClicked},{icon:de(()=>[ne(l)]),_:1},8,["aria-label","title","onClick"])):pe("",!0),ne(s,{class:"close-button","aria-label":i.closeButtonLabel,title:i.closeButtonTitle,variant:"tertiary",onClick:o.onCancel},{icon:de(()=>[ne(a)]),_:1},8,["aria-label","title","onClick"]),o.showModalName?(R(),U("h2",As,me(o.modalName),1)):pe("",!0),ne(c,{ref:"referencePicker",initialProvider:n.initialProvider,focusOnCreate:n.focusOnCreate,onProviderSelected:o.onProviderSelect,onSubmit:o.onSubmit,onCancel:o.onCancel},null,8,["initialProvider","focusOnCreate","onProviderSelected","onSubmit","onCancel"])],512)]),_:1},8,["size","onClose"])):pe("",!0)}const Si=ge(Ls,[["render",Rs],["__scopeId","data-v-bf0a25ee"]]);async function Ds(e,t){const n="referencePickerModal",r=document.createElement("div");r.id=n,document.body.append(r);const{promise:i,reject:o,resolve:l}=Promise.withResolvers(),s=e&&vi(e)||null,a=Do(Si,{initialProvider:s,isInsideViewer:t,onCancel(){a.unmount(),o(new Error("User cancellation"))},onSubmit(c){a.unmount(),l(c)}});return a.mount(r),i}const Ms={};function zt(e,t){const n=Ms,r=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,i=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return Ci(e,r,i)}function Ci(e,t,n){if(Fs(e)){if("value"in e)return e.type==="html"&&!n?"":e.value;if(t&&"alt"in e&&e.alt)return e.alt;if("children"in e)return or(e.children,t,n)}return Array.isArray(e)?or(e,t,n):""}function or(e,t,n){const r=[];let i=-1;for(;++i{const n=(i,o)=>(e.set(o,i),i),r=i=>{if(e.has(i))return e.get(i);const[o,l]=t[i];switch(o){case Nt:case Ii:return n(l,i);case gt:{const s=n([],i);for(const a of l)s.push(r(a));return s}case Dt:{const s=n({},i);for(const[a,c]of l)s[r(a)]=r(c);return s}case En:return n(new Date(l),i);case _n:{const{source:s,flags:a}=l;return n(new RegExp(s,a),i)}case Tn:{const s=n(new Map,i);for(const[a,c]of l)s.set(r(a),r(c));return s}case Ln:{const s=n(new Set,i);for(const a of l)s.add(r(a));return s}case Pi:{const{name:s,message:a}=l;return n(new lr[s](a),i)}case Ei:return n(BigInt(l),i);case"BigInt":return n(Object(BigInt(l)),i);case"ArrayBuffer":return n(new Uint8Array(l).buffer,l);case"DataView":{const{buffer:s}=new Uint8Array(l);return n(new DataView(s),l)}}return n(new lr[o](l),i)};return r},sr=e=>zs(new Map,e)(0),Ke="",{toString:Ns}={},{keys:js}=Object,ct=e=>{const t=typeof e;if(t!=="object"||!e)return[Nt,t];const n=Ns.call(e).slice(8,-1);switch(n){case"Array":return[gt,Ke];case"Object":return[Dt,Ke];case"Date":return[En,Ke];case"RegExp":return[_n,Ke];case"Map":return[Tn,Ke];case"Set":return[Ln,Ke];case"DataView":return[gt,n]}return n.includes("Array")?[gt,n]:n.includes("Error")?[Pi,n]:[Dt,n]},Et=([e,t])=>e===Nt&&(t==="function"||t==="symbol"),Bs=(e,t,n,r)=>{const i=(l,s)=>{const a=r.push(l)-1;return n.set(s,a),a},o=l=>{if(n.has(l))return n.get(l);let[s,a]=ct(l);switch(s){case Nt:{let f=l;switch(a){case"bigint":s=Ei,f=l.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+a);f=null;break;case"undefined":return i([Ii],l)}return i([s,f],l)}case gt:{if(a){let d=l;return a==="DataView"?d=new Uint8Array(l.buffer):a==="ArrayBuffer"&&(d=new Uint8Array(l)),i([a,[...d]],l)}const f=[],u=i([s,f],l);for(const d of l)f.push(o(d));return u}case Dt:{if(a)switch(a){case"BigInt":return i([a,l.toString()],l);case"Boolean":case"Number":case"String":return i([a,l.valueOf()],l)}if(t&&"toJSON"in l)return o(l.toJSON());const f=[],u=i([s,f],l);for(const d of js(l))(e||!Et(ct(l[d])))&&f.push([o(d),o(l[d])]);return u}case En:return i([s,l.toISOString()],l);case _n:{const{source:f,flags:u}=l;return i([s,{source:f,flags:u}],l)}case Tn:{const f=[],u=i([s,f],l);for(const[d,p]of l)(e||!(Et(ct(d))||Et(ct(p))))&&f.push([o(d),o(p)]);return u}case Ln:{const f=[],u=i([s,f],l);for(const d of l)(e||!Et(ct(d)))&&f.push(o(d));return u}}const{message:c}=l;return i([s,{name:a,message:c}],l)};return o},ar=(e,{json:t,lossy:n}={})=>{const r=[];return Bs(!(t||n),!!t,new Map,r)(e),r},je=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?sr(ar(e,t)):structuredClone(e):(e,t)=>sr(ar(e,t)),_i=(function(e){if(e==null)return $s;if(typeof e=="string")return Us(e);if(typeof e=="object")return Vs(e);if(typeof e=="function")return On(e);throw new Error("Expected function, string, or array as `test`")});function Vs(e){const t=[];let n=-1;for(;++n0&&(o.properties.rel=[...d]),p&&(o.properties.target=p),f){const k=ut(t.contentProperties,o)||{};o.children.push({type:"element",tagName:"span",properties:je(k),children:je(f)})}}}})}}function ut(e,t){return typeof e=="function"?e(t):e}function ea(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const ta=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,na=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,ra={};function cr(e,t){return(ra.jsx?na:ta).test(e)}const ia=/[ \t\n\f\r]/g;function oa(e){return typeof e=="object"?e.type==="text"?ur(e.value):!1:ur(e)}function ur(e){return e.replace(ia,"")===""}class yt{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}yt.prototype.normal={},yt.prototype.property={},yt.prototype.space=void 0;function Ti(e,t){const n={},r={};for(const i of e)Object.assign(n,i.property),Object.assign(r,i.normal);return new yt(n,r,t)}function sn(e){return e.toLowerCase()}class oe{constructor(t,n){this.attribute=n,this.property=t}}oe.prototype.attribute="",oe.prototype.booleanish=!1,oe.prototype.boolean=!1,oe.prototype.commaOrSpaceSeparated=!1,oe.prototype.commaSeparated=!1,oe.prototype.defined=!1,oe.prototype.mustUseProperty=!1,oe.prototype.number=!1,oe.prototype.overloadedBoolean=!1,oe.prototype.property="",oe.prototype.spaceSeparated=!1,oe.prototype.space=void 0;let la=0;const j=He(),K=He(),an=He(),S=He(),q=He(),Ze=He(),ce=He();function He(){return 2**++la}const cn=Object.freeze(Object.defineProperty({__proto__:null,boolean:j,booleanish:K,commaOrSpaceSeparated:ce,commaSeparated:Ze,number:S,overloadedBoolean:an,spaceSeparated:q},Symbol.toStringTag,{value:"Module"})),Ht=Object.keys(cn);class An extends oe{constructor(t,n,r,i){let o=-1;if(super(t,n),fr(this,"space",i),typeof r=="number")for(;++o4&&n.slice(0,4)==="data"&&fa.test(t)){if(t.charAt(4)==="-"){const o=t.slice(5).replace(pr,ha);r="data"+o.charAt(0).toUpperCase()+o.slice(1)}else{const o=t.slice(4);if(!pr.test(o)){let l=o.replace(ua,da);l.charAt(0)!=="-"&&(l="-"+l),t="data"+l}}i=An}return new i(r,t)}function da(e){return"-"+e.toLowerCase()}function ha(e){return e.charAt(1).toUpperCase()}const ma=Ti([Li,sa,Ri,Di,Mi],"html"),Rn=Ti([Li,aa,Ri,Di,Mi],"svg");var Ge={},qt,dr;function ga(){if(dr)return qt;dr=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,r=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,o=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,l=/^[;\s]*/,s=/^\s+|\s+$/g,a=` +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/index-DzL3ZhYR.chunk.mjs'),window.OC.filePath('', '', 'dist/index-B-dGqfIG.chunk.mjs'),window.OC.filePath('', '', 'dist/ArrowRight-DKsMJImQ.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs'),window.OC.filePath('', '', 'dist/translation-DoG5ZELJ-CFYnqluG.chunk.mjs'),window.OC.filePath('', '', 'dist/Web-BwmPK40i.chunk.mjs'),window.OC.filePath('', '', 'dist/public-C1mLBHT3.chunk.mjs'),window.OC.filePath('', '', 'dist/common-createElementId-DhjFt1I9-C_oBIsvc.chunk.css'),window.OC.filePath('', '', 'dist/logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs'),window.OC.filePath('', '', 'dist/common-logger-D3RVzcfQ-BE3lcFW4.chunk.css'),window.OC.filePath('', '', 'dist/common-ArrowRight-vZpQWIqF.chunk.css'),window.OC.filePath('', '', 'dist/NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs'),window.OC.filePath('', '', 'dist/TrashCanOutline-Cv7t-yKN.chunk.mjs'),window.OC.filePath('', '', 'dist/common-TrashCanOutline-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/common-NcCheckboxRadioSwitch-D8Dfv4iw-CPGkDj-p.chunk.css'),window.OC.filePath('', '', 'dist/index-BLNGy7h5.chunk.mjs'),window.OC.filePath('', '', 'dist/util-Alk1iwuj.chunk.mjs'),window.OC.filePath('', '', 'dist/index-dqLzhRZM.chunk.mjs'),window.OC.filePath('', '', 'dist/NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcModal-DUWLRm_F-BsKc2RT9.chunk.css'),window.OC.filePath('', '', 'dist/common-index-BWhNCeJl.chunk.css'),window.OC.filePath('', '', 'dist/NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcEmptyContent-CGAPqk4S-Don1d5Bd.chunk.css'),window.OC.filePath('', '', 'dist/NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcInputField-B1bGxYHt-BYHxARP-.chunk.css')])))=>i.map(i=>d[i]); +import{v as ue,a9 as Ro,l as mt,e as Do,r as H,o as R,f as U,c as J,k as ne,h as pe,a7 as Zr,N as Mo,Q as ei,w as de,g as ee,t as me,b as ti,X as Fo,p as Xn,z as zo,V as No,y as tt,m as kn,C as jo,j as ni,u as ht,G as Zn,F as ri,B as Bo,ad as Y,_ as Vo}from"./Web-BwmPK40i.chunk.mjs";import{e as Uo,D as $o,l as Ve,N as xn,E as Ho,R as ii}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as qo}from"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import{k as Wo,f as Qo,c as De,d as oi,t as li,a as Yo}from"./index-B-dGqfIG.chunk.mjs";import{c as Ne}from"./index-BLNGy7h5.chunk.mjs";import{l as er,a as tr}from"./public-C1mLBHT3.chunk.mjs";import{r as Ue,F as Ko,b as re,G as Go,H as Jo,I as si,J as Xo,K as Zo,q as el,L as tl,y as nl,M as rl,_ as ge,c as $t,N as il}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{I as ol,N as ai,_ as ci}from"./index-dqLzhRZM.chunk.mjs";import{N as bn}from"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import{N as ll,I as sl,u as al,v as cl}from"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import{g as ui,v as $e,c as ul,U as nr,N as fl,p as pl,r as dl,E as hl,u as rr,S as fi}from"./ArrowRight-DKsMJImQ.chunk.mjs";import{N as ml}from"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{_ as gl}from"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";Ue(Ko);const yl=2e3;function vl(e){const t=mt(!1),n=ue(()=>t.value?Uo:$o),r=ue(()=>t.value?re("Copied"):re("Copy to clipboard"));async function i(){if(t.value)return;const o=Ro(e);try{await navigator.clipboard.writeText(o)}catch{prompt("",o)}t.value=!0,setTimeout(()=>{t.value=!1},yl)}return{isCopied:t,copy:i,icon:n,altText:r}}window._vue_richtext_widgets??={},window._registerWidget??=(e,t,n,r)=>{pi(e,t,n,r)};function pi(e,t,n=()=>{},r){const i={hasInteractiveView:!0,fullWidth:!1,...r};if(window._vue_richtext_widgets[e]){Ve.error(`[ReferencePicker]: Widget for id ${e} already registered`);return}window._vue_richtext_widgets[e]={id:e,callback:t,onDestroy:n,...i}}function di(e,t){const{richObjectType:n,richObject:r,accessible:i,interactive:o}=t;if(n!=="open-graph"){if(!window._vue_richtext_widgets[n]){Ve.error("Widget for rich object type "+n+" not registered");return}window._vue_richtext_widgets[n].callback(e,{richObjectType:n,richObject:r,accessible:i,interactive:o})}}function kl(e,t){e!=="open-graph"&&window._vue_richtext_widgets[e]&&window._vue_richtext_widgets[e].onDestroy(t)}function hi(e){return!!window._vue_richtext_widgets[e]}function xl(e){return!!window._vue_richtext_widgets[e]?.hasInteractiveView}function bl(e){return!!window._vue_richtext_widgets[e]?.fullWidth}window._vue_richtext_custom_picker_elements??={},window._registerCustomPickerElement??=mi;class wl{element;object;constructor(t,n){this.element=t,this.object=n}}function nt(e){return!!window._vue_richtext_custom_picker_elements[e]}function Sl(e){const t=window._vue_richtext_custom_picker_elements[e]?.size;return t&&["small","normal","large","full"].includes(t)?t:null}function mi(e,t,n=()=>{},r="large"){if(window._vue_richtext_custom_picker_elements[e]){Ve.error(`Custom reference picker element for id ${e} already registered`);return}window._vue_richtext_custom_picker_elements[e]={id:e,callback:t,onDestroy:n,size:r}}function gi(e,t){const{providerId:n,accessible:r}=t;if(!window._vue_richtext_custom_picker_elements[n]){Ve.error(`Custom reference picker element for reference provider ID ${n} not registered`);return}return window._vue_richtext_custom_picker_elements[n].callback(e,{providerId:n,accessible:r})}function Cl(e,t,n){window._vue_richtext_custom_picker_elements[e]&&window._vue_richtext_custom_picker_elements[e].onDestroy(t,n)}const Il={name:"ArrowLeftIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Pl=["aria-hidden","aria-label"],El=["fill","width","height"],_l={d:"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z"},Tl={key:0};function Ll(e,t,n,r,i,o){return R(),U("span",kn(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon arrow-left-icon",role:"img",onClick:t[0]||(t[0]=l=>e.$emit("click",l))}),[(R(),U("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[ee("path",_l,[n.title?(R(),U("title",Tl,me(n.title),1)):pe("",!0)])],8,El))],16,Pl)}const Ol=ge(Il,[["render",Ll]]),Al={name:"NcCustomPickerElement",props:{provider:{type:Object,required:!0}},emits:["cancel","submit"],data(){return{isRegistered:nt(this.provider.id),renderResult:null}},mounted(){this.isRegistered&&this.renderElement()},beforeUnmount(){this.isRegistered&&Cl(this.provider.id,this.$el,this.renderResult)},methods:{renderElement(){this.$refs.domElement&&(this.$refs.domElement.innerHTML="");const e=gi(this.$refs.domElement,{providerId:this.provider.id,accessible:!1});Promise.resolve(e).then(t=>{this.renderResult=t,this.renderResult.object?._isVue&&this.renderResult.object?.$on&&(this.renderResult.object.$on("submit",this.onSubmit),this.renderResult.object.$on("cancel",this.onCancel)),this.renderResult.element.addEventListener("submit",n=>{this.onSubmit(n.detail)}),this.renderResult.element.addEventListener("cancel",this.onCancel)})},onSubmit(e){this.$emit("submit",e)},onCancel(){this.$emit("cancel")}}},Rl={ref:"domElement"};function Dl(e,t,n,r,i,o){return R(),U("div",Rl,null,512)}const Ml=ge(Al,[["render",Dl],["__scopeId","data-v-e408867a"]]),Fl={name:"LinkVariantIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},zl=["aria-hidden","aria-label"],Nl=["fill","width","height"],jl={d:"M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z"},Bl={key:0};function Vl(e,t,n,r,i,o){return R(),U("span",kn(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon link-variant-icon",role:"img",onClick:t[0]||(t[0]=l=>e.$emit("click",l))}),[(R(),U("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[ee("path",jl,[n.title?(R(),U("title",Bl,me(n.title),1)):pe("",!0)])],8,Nl))],16,zl)}const wn=ge(Fl,[["render",Vl]]);Ue(Go);const Sn="any-link",yi={id:Sn,title:re("Any link"),order:0,icon_url:Wo("core","filetypes/link.svg")};window._vue_richtext_reference_providers??=er("core","reference-provider-list",[]),window._vue_richtext_reference_provider_timestamps??=er("core","reference-provider-timestamps",{});function vi(e){return e===Sn?yi:Cn().find(t=>t.id===e)}function Cn(){return window._vue_richtext_reference_providers.filter(e=>{const t=!!e.search_providers_ids&&e.search_providers_ids.length>0||nt(e.id);return t||Ve.debug(`[smart picker] ${e.id} reference provider is discoverable but does not have any related search provider or custom picker component registered`),t})}function ki(e){const t=window._vue_richtext_reference_provider_timestamps;return e.sort((n,r)=>n.order===r.order?0:n.order>r.order?1:-1).sort((n,r)=>{const i=t[n.id],o=t[r.id];return i===o?0:o===void 0?-1:i===void 0?1:i>o?-1:1})}function xi(e,t){const n=Cn(),r=e.replace(/[/\-\\^$*+?.()|[\]{}]/g,"\\$&"),i=new RegExp(r,"i"),o=ki(n).filter(s=>s.title.match(i)),l=t?o.slice(0,t):o;return(e===""||l.length===0)&&l.push(yi),l}async function Ul(e){const t=Math.floor(Date.now()/1e3),n=De("references/provider/{providerId}",{providerId:e});await Ne.put(n,{timestamp:t}),window._vue_richtext_reference_provider_timestamps[e]=t}Ue(si,Jo);function In(e){try{return!!new URL(e)}catch{return!1}}const $l={name:"NcProviderList",components:{NcSelect:ai,NcHighlight:ci,NcEmptyContent:bn,LinkVariantIcon:wn},emits:["selectProvider","submit"],data(){return{selectedProvider:null,query:"",multiselectPlaceholder:re("Select provider"),providerIconAlt:re("Provider icon")}},computed:{options(){const e=[];return this.query!==""&&In(this.query)&&e.push({id:this.query,title:this.query,isLink:!0}),e.push(...xi(this.query)),e}},methods:{focus(){setTimeout(()=>{this.$refs["provider-select"]?.$el?.querySelector("#provider-select-input")?.focus()},300)},onProviderSelected(e){e!==null&&(e.isLink?this.$emit("submit",e.title):this.$emit("selectProvider",e),this.selectedProvider=null)},onSearch(e){this.query=e}}},Hl={class:"provider-list"},ql={key:0,class:"provider"},Wl={key:1,class:"provider"},Ql=["src","alt"];function Yl(e,t,n,r,i,o){const l=H("LinkVariantIcon"),s=H("NcHighlight"),a=H("NcSelect"),c=H("NcEmptyContent");return R(),U("div",Hl,[ne(a,{ref:"provider-select",modelValue:i.selectedProvider,"onUpdate:modelValue":[t[0]||(t[0]=f=>i.selectedProvider=f),o.onProviderSelected],class:"provider-list--select",inputId:"provider-select-input",label:"title",placeholder:i.multiselectPlaceholder,options:o.options,appendToBody:!1,clearSearchOnSelect:!0,clearSearchOnBlur:()=>!1,filterable:!1,onSearch:o.onSearch},{option:de(f=>[f.isLink?(R(),U("div",ql,[ne(l,{class:"link-icon",size:20}),ee("span",null,me(f.title),1)])):(R(),U("div",Wl,[ee("img",{class:"provider-icon",src:f.icon_url,alt:i.providerIconAlt},null,8,Ql),ne(s,{class:"option-text",search:i.query,text:f.title},null,8,["search","text"])]))]),_:1},8,["modelValue","placeholder","options","onSearch","onUpdate:modelValue"]),ne(c,{class:"provider-list--empty-content"},{icon:de(()=>[ne(l)]),_:1})])}const Kl=ge($l,[["render",Yl],["__scopeId","data-v-ea81d3af"]]);Ue(Xo);const Gl=["src"],Jl={class:"widget-default--details"},Xl={class:"widget-default--name"},Zl={class:"widget-default--link"},es=180*1e3,ts=ti({__name:"NcReferenceWidget",props:{reference:{},interactive:{type:Boolean,default:!0},interactiveOptIn:{type:Boolean,default:!1}},setup(e){const t=e,n=Fo(Ho,null),r=mt(!1),i=Xn("customWidget"),o=Xn("widgetRoot"),{width:l}=al(o);cl(o,([A])=>{Zn(()=>{r.value=A.isIntersecting})});const s=mt(!1),a=mt(!1);let c=null;const f=ue(()=>!t.interactiveOptIn&&t.interactive||s.value),u=ue(()=>bl(t.reference.richObjectType)),d=ue(()=>hi(t.reference.richObjectType)),p=ue(()=>d.value&&xl(t.reference.richObjectType)),g=ue(()=>!t.reference.accessible),k=ue(()=>[450,550,650,1/0].findIndex(A=>l.value{if(k.value===0)return{display:"none"};const A=k.value;return{lineClamp:A,webkitLineClamp:A}}),y=ue(()=>{const A=t.reference.openGraphObject.link;return A?A.startsWith("https://")?A.substring(8):A.startsWith("http://")?A.substring(7):A:""}),C=ue(()=>ui(n,t.reference.openGraphObject.link)),I=ue(()=>C.value?ii:"a"),_=ue(()=>C.value?{to:C.value}:{href:t.reference.openGraphObject.link,target:"_blank"});zo(r,A=>{if(!A){c=setTimeout(()=>{r.value||z()},es);return}c&&(clearTimeout(c),c=null),a.value||b()},{immediate:!0}),No(()=>{z()});function N(){s.value=!0,b()}function b(){if(!i.value||t.reference.richObjectType==="open-graph")return;i.value.innerHTML="";const A=document.createElement("div");A.style.width="100%",i.value.appendChild(A),Zn(()=>{di(A,{...t.reference,interactive:f.value}),a.value=!0})}function z(){a.value&&o.value&&(kl(t.reference.richObjectType,o.value),a.value=!1)}return(A,B)=>(R(),U("div",{ref_key:"widgetRoot",ref:o,class:tt({"toggle-interactive":p.value&&!f.value})},[e.reference&&d.value?(R(),U("div",{key:0,ref_key:"customWidget",ref:i,class:tt(["widget-custom",{"full-width":u.value}])},null,2)):!g.value&&e.reference&&e.reference.openGraphObject&&!d.value?(R(),J(jo(I.value),kn({key:1},_.value,{rel:"noopener noreferrer",class:"widget-default"}),{default:de(()=>[e.reference.openGraphObject.thumb?(R(),U("img",{key:0,class:"widget-default--image",src:e.reference.openGraphObject.thumb},null,8,Gl)):pe("",!0),ee("div",Jl,[ee("p",Xl,me(e.reference.openGraphObject.name),1),ee("p",{class:"widget-default--description",style:ei(w.value)},me(e.reference.openGraphObject.description),5),ee("p",Zl,me(y.value),1)])]),_:1},16)):pe("",!0),e.interactiveOptIn&&p.value&&!f.value?(R(),J(xn,{key:2,class:"toggle-interactive--button",onClick:N},{default:de(()=>[ni(me(ht(re)("Enable interactive view")),1)]),_:1})):pe("",!0)],2))}}),Pn=ge(ts,[["__scopeId","data-v-b0ec9f0b"]]);Ue(Zo);const ns={name:"NcRawLinkInput",components:{LinkVariantIcon:wn,NcEmptyContent:bn,NcLoadingIcon:ml,NcReferenceWidget:Pn,NcTextField:gl},props:{provider:{type:Object,required:!0}},emits:["submit"],data(){return{inputValue:"",loading:!1,reference:null,abortController:null,inputPlaceholder:re("Enter link")}},computed:{isLinkValid(){return In(this.inputValue)},debouncedUpdateReference(){return oi(this.updateReference,500)}},methods:{focus(){this.$refs["url-input"].$el.getElementsByTagName("input")[0]?.focus()},onSubmit(e){const t=e.target.value;this.isLinkValid&&this.$emit("submit",t)},onClear(){this.inputValue="",this.reference=null},onInput(){this.reference=null,this.abortController&&this.abortController.abort(),this.isLinkValid&&this.debouncedUpdateReference()},updateReference(){this.loading=!0,this.abortController=new AbortController,Ne.get(De("references/resolve",2)+"?reference="+encodeURIComponent(this.inputValue),{signal:this.abortController.signal}).then(e=>{this.reference=e.data.ocs.data.references[this.inputValue]}).catch(e=>{Ve.error("[NcRawLinkInput] Failed to update reference",{error:e})}).then(()=>{this.loading=!1})}}},rs={class:"raw-link"},is={class:"input-wrapper"},os=["src"];function ls(e,t,n,r,i,o){const l=H("NcLoadingIcon"),s=H("LinkVariantIcon"),a=H("NcTextField"),c=H("NcReferenceWidget"),f=H("NcEmptyContent");return R(),U("div",rs,[ee("div",is,[ne(a,{ref:"url-input",modelValue:i.inputValue,"onUpdate:modelValue":[t[0]||(t[0]=u=>i.inputValue=u),o.onInput],showTrailingButton:i.inputValue!=="",label:i.inputPlaceholder,onTrailingButtonClick:o.onClear,onKeyup:Zr(o.onSubmit,["enter"])},{default:de(()=>[i.loading?(R(),J(l,{key:0,size:16})):(R(),J(s,{key:1,size:16}))]),_:1},8,["modelValue","showTrailingButton","label","onTrailingButtonClick","onUpdate:modelValue","onKeyup"])]),i.reference!==null?(R(),J(c,{key:0,class:"reference-widget",reference:i.reference},null,8,["reference"])):(R(),J(f,{key:1,class:"raw-link--empty-content"},{icon:de(()=>[n.provider.icon_url?(R(),U("img",{key:0,class:"provider-icon",src:n.provider.icon_url},null,8,os)):(R(),J(s,{key:1}))]),_:1}))])}const ss=ge(ns,[["render",ls],["__scopeId","data-v-918730b9"]]),as={name:"NcSearchResult",components:{NcHighlight:ci},props:{entry:{type:Object,required:!0},query:{type:String,required:!0}}},cs={class:"result"},us=["src"],fs={class:"result--content"},ps={class:"result--content--name"},ds={class:"result--content--subline"};function hs(e,t,n,r,i,o){const l=H("NcHighlight");return R(),U("div",cs,[n.entry.icon?(R(),U("div",{key:0,class:tt([{[n.entry.icon]:!0,rounded:n.entry.rounded},"result--icon-class"])},null,2)):(R(),U("img",{key:1,class:tt(["result--image",{rounded:n.entry.rounded}]),src:n.entry.thumbnailUrl},null,10,us)),ee("div",fs,[ee("span",ps,[ne(l,{search:n.query,text:n.entry.title},null,8,["search","text"])]),ee("span",ds,[ne(l,{search:n.query,text:n.entry.subline},null,8,["search","text"])])])])}const ms=ge(as,[["render",hs],["__scopeId","data-v-059edcfb"]]);Ue(tl,si,el);const ir=5,gs={name:"NcSearch",components:{LinkVariantIcon:wn,DotsHorizontalIcon:sl,NcEmptyContent:bn,NcSelect:ai,NcSearchResult:ms},props:{provider:{type:Object,required:!0},showEmptyContent:{type:Boolean,default:!0},searchPlaceholder:{type:String,default:null}},emits:["submit"],data(){return{searchQuery:"",selectedResult:null,resultsBySearchProvider:{},searching:!1,searchingMoreOf:null,abortController:null,noOptionsText:re("Start typing to search"),providerIconAlt:re("Provider icon")}},computed:{mySearchPlaceholder(){return this.searchPlaceholder||re("Search")},searchProviderIds(){return this.provider.search_providers_ids},options(){if(this.searchQuery==="")return[];const e=[];return In(this.searchQuery)&&e.push(this.rawLinkEntry),e.push(...this.formattedSearchResults),e},rawLinkEntry(){return{id:"rawLinkEntry",resourceUrl:this.searchQuery,isRawLink:!0}},formattedSearchResults(){const e=[];return this.searchProviderIds.forEach(t=>{if(this.resultsBySearchProvider[t].entries.length>0){(this.searchProviderIds.length>1||this.resultsBySearchProvider[t].entries.length>1)&&e.push({id:"groupTitle-"+t,name:this.resultsBySearchProvider[t].name,isCustomGroupTitle:!0,providerId:t});const n=this.resultsBySearchProvider[t].entries.map((r,i)=>({id:"provider-"+t+"-entry-"+i,...r}));e.push(...n),this.resultsBySearchProvider[t].isPaginated&&e.push({id:"moreOf-"+t,name:this.resultsBySearchProvider[t].name,isMore:!0,providerId:t,isLoading:this.searchingMoreOf===t})}}),e},debouncedUpdateSearch(){return oi(this.updateSearch,500)}},mounted(){this.resetResults()},beforeUnmount(){this.cancelSearchRequests()},methods:{t:re,resetResults(){const e={};this.searchProviderIds.forEach(t=>{e[t]={entries:[]}}),this.resultsBySearchProvider=e},focus(){setTimeout(()=>{this.$refs["search-select"]?.$el?.querySelector("#search-select-input")?.focus()},300)},cancelSearchRequests(){this.abortController&&this.abortController.abort()},onSearchInput(e){this.searchQuery=e,this.debouncedUpdateSearch()},onSelectResultSelected(e){e!==null&&(e.resourceUrl?(this.cancelSearchRequests(),this.$emit("submit",e.resourceUrl)):e.isMore&&this.searchMoreOf(e.providerId).then(()=>{this.selectedResult=null}))},searchMoreOf(e){return this.searchingMoreOf=e,this.cancelSearchRequests(),this.searchProviders(e)},updateSearch(){if(this.cancelSearchRequests(),this.resetResults(),this.searchQuery===""){this.searching=!1;return}return this.searchProviders()},searchProviders(e=null){this.abortController=new AbortController,this.searching=!0;const t=e===null?[...this.searchProviderIds].map(n=>this.searchOneProvider(n)):[this.searchOneProvider(e,this.resultsBySearchProvider[e]?.cursor??null)];return Promise.allSettled(t).then(n=>{n.find(r=>r.status==="rejected"&&(r.reason.name==="CanceledError"||r.reason.code==="ERR_CANCELED"))||(this.searching=!1,this.searchingMoreOf=null)})},searchOneProvider(e,t=null){const n=t===null?De("search/providers/{providerId}/search?term={term}&limit={limit}",{providerId:e,term:this.searchQuery,limit:ir}):De("search/providers/{providerId}/search?term={term}&limit={limit}&cursor={cursor}",{providerId:e,term:this.searchQuery,limit:ir,cursor:t});return Ne.get(n,{signal:this.abortController.signal}).then(r=>{const i=r.data.ocs.data;this.resultsBySearchProvider[e].name=i.name,this.resultsBySearchProvider[e].cursor=i.cursor,this.resultsBySearchProvider[e].isPaginated=i.isPaginated,this.resultsBySearchProvider[e].entries.push(...i.entries)})}}},ys={key:0,class:"custom-option"},vs={class:"option-text"},ks={key:2,class:"custom-option group-name"},xs=["src"],bs={class:"option-text"},ws={key:3,class:"custom-option"},Ss={key:0,class:"option-simple-icon icon-loading-small"},Cs={class:"option-text"},Is=["alt","src"];function Ps(e,t,n,r,i,o){const l=H("LinkVariantIcon"),s=H("NcSearchResult"),a=H("DotsHorizontalIcon"),c=H("NcSelect"),f=H("NcEmptyContent");return R(),U("div",{class:tt(["smart-picker-search",{"with-empty-content":n.showEmptyContent}])},[ne(c,{ref:"search-select",modelValue:i.selectedResult,"onUpdate:modelValue":[t[0]||(t[0]=u=>i.selectedResult=u),o.onSelectResultSelected],class:"smart-picker-search--select",inputId:"search-select-input",label:"name",placeholder:o.mySearchPlaceholder,options:o.options,appendToBody:!1,closeOnSelect:!1,clearSearchOnSelect:!1,clearSearchOnBlur:()=>!1,resetFocusOnOptionsChange:!1,filterable:!1,autoscroll:!0,resetOnOptionsChange:!1,loading:i.searching,onSearch:o.onSearchInput},{option:de(u=>[u.isRawLink?(R(),U("div",ys,[ne(l,{class:"option-simple-icon",size:20}),ee("span",vs,me(o.t("Raw link {options}",{options:u.resourceUrl})),1)])):u.resourceUrl?(R(),J(s,{key:1,class:"search-result",entry:u,query:i.searchQuery},null,8,["entry","query"])):u.isCustomGroupTitle?(R(),U("span",ks,[n.provider.icon_url?(R(),U("img",{key:0,class:"provider-icon group-name-icon",src:n.provider.icon_url},null,8,xs)):pe("",!0),ee("span",bs,[ee("strong",null,me(u.name),1)])])):u.isMore?(R(),U("span",ws,[u.isLoading?(R(),U("span",Ss)):(R(),J(a,{key:1,class:"option-simple-icon",size:20})),ee("span",Cs,me(o.t('Load more "{options}"',{options:u.name})),1)])):pe("",!0)]),"no-options":de(()=>[ni(me(i.noOptionsText),1)]),_:1},8,["modelValue","placeholder","options","loading","onSearch","onUpdate:modelValue"]),n.showEmptyContent?(R(),J(f,{key:0,class:"smart-picker-search--empty-content"},{icon:de(()=>[n.provider.icon_url?(R(),U("img",{key:0,class:"provider-icon",alt:i.providerIconAlt,src:n.provider.icon_url},null,8,Is)):(R(),J(l,{key:1}))]),_:1})):pe("",!0)],2)}const bi=ge(gs,[["render",Ps],["__scopeId","data-v-af9d145f"]]),at={providerList:1,standardLinkInput:2,searchInput:3,customElement:4},Es={name:"NcReferencePicker",components:{NcCustomPickerElement:Ml,NcProviderList:Kl,NcRawLinkInput:ss,NcSearch:bi},props:{initialProvider:{type:Object,default:()=>null},width:{type:Number,default:null},focusOnCreate:{type:Boolean,default:!0}},emits:["cancel","cancelRawLink","cancelSearch","providerSelected","submit"],data(){return{MODES:at,selectedProvider:this.initialProvider}},computed:{mode(){return this.selectedProvider===null?at.providerList:nt(this.selectedProvider.id)?at.customElement:this.selectedProvider.search_providers_ids?at.searchInput:at.standardLinkInput},pickerWrapperStyle(){return{width:this.width?this.width+"px":void 0}}},mounted(){this.focusOnCreate&&(this.initialProvider?setTimeout(()=>{this.$refs["url-input"]?.focus()},300):this.$nextTick(()=>{this.$refs["provider-list"]?.focus()}))},methods:{onEscapePressed(){this.selectedProvider!==null?this.deselectProvider():this.cancelProviderSelection()},onProviderSelected(e){this.selectedProvider=e,this.$emit("providerSelected",e),this.$nextTick(()=>{this.$refs["url-input"]?.focus()})},cancelCustomElement(){this.deselectProvider()},cancelSearch(){this.$emit("cancelSearch",this.selectedProvider?.title),this.deselectProvider()},cancelRawLinkInput(){this.$emit("cancelRawLink",this.selectedProvider?.title),this.deselectProvider()},cancelProviderSelection(){this.$emit("cancel")},submitLink(e){this.selectedProvider!==null&&Ul(this.selectedProvider.id),this.$emit("submit",e),this.deselectProvider()},deselectProvider(){this.selectedProvider=null,this.$emit("providerSelected",null),setTimeout(()=>{this.$refs["provider-list"]?.focus()},300)}}},_s={key:3,class:"custom-element-wrapper"};function Ts(e,t,n,r,i,o){const l=H("NcProviderList"),s=H("NcRawLinkInput"),a=H("NcSearch"),c=H("NcCustomPickerElement");return R(),U("div",{class:"reference-picker",style:ei(o.pickerWrapperStyle),tabindex:"-1",onKeydown:t[0]||(t[0]=Zr(Mo((...f)=>o.onEscapePressed&&o.onEscapePressed(...f),["stop","prevent"]),["esc"]))},[o.mode===i.MODES.providerList?(R(),J(l,{key:0,ref:"provider-list",onSelectProvider:o.onProviderSelected,onSubmit:o.submitLink,onCancel:o.cancelProviderSelection},null,8,["onSelectProvider","onSubmit","onCancel"])):o.mode===i.MODES.standardLinkInput?(R(),J(s,{key:1,ref:"url-input",provider:i.selectedProvider,onSubmit:o.submitLink,onCancel:o.cancelRawLinkInput},null,8,["provider","onSubmit","onCancel"])):o.mode===i.MODES.searchInput?(R(),J(a,{key:2,ref:"url-input",provider:i.selectedProvider,onCancel:o.cancelSearch,onSubmit:o.submitLink},null,8,["provider","onCancel","onSubmit"])):o.mode===i.MODES.customElement?(R(),U("div",_s,[ne(c,{provider:i.selectedProvider,class:"custom-element",onSubmit:o.submitLink,onCancel:o.cancelCustomElement},null,8,["provider","onSubmit","onCancel"])])):pe("",!0)],36)}const wi=ge(Es,[["render",Ts],["__scopeId","data-v-5e2e9195"]]);Ue(rl,nl);const Ls={name:"NcReferencePickerModal",components:{NcReferencePicker:wi,NcModal:ll,NcButton:xn,ArrowLeftIcon:Ol,CloseIcon:ol},props:{initialProvider:{type:Object,default:()=>null},focusOnCreate:{type:Boolean,default:!0},isInsideViewer:{type:Boolean,default:!1}},emits:["cancel","submit"],data(){return{show:!0,selectedProvider:this.initialProvider,backButtonTitle:re("Back to provider selection"),closeButtonTitle:re("Close"),closeButtonLabel:re("Close Smart Picker")}},computed:{isProviderSelected(){return this.selectedProvider!==null},showBackButton(){return this.initialProvider===null&&this.isProviderSelected},modalSize(){return this.isProviderSelected&&nt(this.selectedProvider.id)?Sl(this.selectedProvider.id)??"large":"normal"},showModalName(){return!this.isProviderSelected||!nt(this.selectedProvider.id)},modalName(){return this.isProviderSelected?this.selectedProvider.title:re("Smart Picker")}},mounted(){if(this.isInsideViewer){const e=this.$refs.modal_content;Qo("viewer:trapElements:changed",e)}},methods:{onCancel(){this.show=!1,this.$emit("cancel")},onSubmit(e){this.show=!1,this.$emit("submit",e)},onProviderSelect(e){this.selectedProvider=e,e===null&&this.initialProvider!==null&&this.onCancel()},onBackClicked(){this.$refs.referencePicker.deselectProvider()}}},Os={ref:"modal_content",class:"reference-picker-modal--content"},As={key:1};function Rs(e,t,n,r,i,o){const l=H("ArrowLeftIcon"),s=H("NcButton"),a=H("CloseIcon"),c=H("NcReferencePicker"),f=H("NcModal");return i.show?(R(),J(f,{key:0,size:o.modalSize,class:"reference-picker-modal",onClose:o.onCancel},{default:de(()=>[ee("div",Os,[o.showBackButton?(R(),J(s,{key:0,"aria-label":i.backButtonTitle,title:i.backButtonTitle,class:"back-button",onClick:o.onBackClicked},{icon:de(()=>[ne(l)]),_:1},8,["aria-label","title","onClick"])):pe("",!0),ne(s,{class:"close-button","aria-label":i.closeButtonLabel,title:i.closeButtonTitle,variant:"tertiary",onClick:o.onCancel},{icon:de(()=>[ne(a)]),_:1},8,["aria-label","title","onClick"]),o.showModalName?(R(),U("h2",As,me(o.modalName),1)):pe("",!0),ne(c,{ref:"referencePicker",initialProvider:n.initialProvider,focusOnCreate:n.focusOnCreate,onProviderSelected:o.onProviderSelect,onSubmit:o.onSubmit,onCancel:o.onCancel},null,8,["initialProvider","focusOnCreate","onProviderSelected","onSubmit","onCancel"])],512)]),_:1},8,["size","onClose"])):pe("",!0)}const Si=ge(Ls,[["render",Rs],["__scopeId","data-v-bf0a25ee"]]);async function Ds(e,t){const n="referencePickerModal",r=document.createElement("div");r.id=n,document.body.append(r);const{promise:i,reject:o,resolve:l}=Promise.withResolvers(),s=e&&vi(e)||null,a=Do(Si,{initialProvider:s,isInsideViewer:t,onCancel(){a.unmount(),o(new Error("User cancellation"))},onSubmit(c){a.unmount(),l(c)}});return a.mount(r),i}const Ms={};function zt(e,t){const n=Ms,r=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,i=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return Ci(e,r,i)}function Ci(e,t,n){if(Fs(e)){if("value"in e)return e.type==="html"&&!n?"":e.value;if(t&&"alt"in e&&e.alt)return e.alt;if("children"in e)return or(e.children,t,n)}return Array.isArray(e)?or(e,t,n):""}function or(e,t,n){const r=[];let i=-1;for(;++i{const n=(i,o)=>(e.set(o,i),i),r=i=>{if(e.has(i))return e.get(i);const[o,l]=t[i];switch(o){case Nt:case Ii:return n(l,i);case gt:{const s=n([],i);for(const a of l)s.push(r(a));return s}case Dt:{const s=n({},i);for(const[a,c]of l)s[r(a)]=r(c);return s}case En:return n(new Date(l),i);case _n:{const{source:s,flags:a}=l;return n(new RegExp(s,a),i)}case Tn:{const s=n(new Map,i);for(const[a,c]of l)s.set(r(a),r(c));return s}case Ln:{const s=n(new Set,i);for(const a of l)s.add(r(a));return s}case Pi:{const{name:s,message:a}=l;return n(new lr[s](a),i)}case Ei:return n(BigInt(l),i);case"BigInt":return n(Object(BigInt(l)),i);case"ArrayBuffer":return n(new Uint8Array(l).buffer,l);case"DataView":{const{buffer:s}=new Uint8Array(l);return n(new DataView(s),l)}}return n(new lr[o](l),i)};return r},sr=e=>zs(new Map,e)(0),Ke="",{toString:Ns}={},{keys:js}=Object,ct=e=>{const t=typeof e;if(t!=="object"||!e)return[Nt,t];const n=Ns.call(e).slice(8,-1);switch(n){case"Array":return[gt,Ke];case"Object":return[Dt,Ke];case"Date":return[En,Ke];case"RegExp":return[_n,Ke];case"Map":return[Tn,Ke];case"Set":return[Ln,Ke];case"DataView":return[gt,n]}return n.includes("Array")?[gt,n]:n.includes("Error")?[Pi,n]:[Dt,n]},Et=([e,t])=>e===Nt&&(t==="function"||t==="symbol"),Bs=(e,t,n,r)=>{const i=(l,s)=>{const a=r.push(l)-1;return n.set(s,a),a},o=l=>{if(n.has(l))return n.get(l);let[s,a]=ct(l);switch(s){case Nt:{let f=l;switch(a){case"bigint":s=Ei,f=l.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+a);f=null;break;case"undefined":return i([Ii],l)}return i([s,f],l)}case gt:{if(a){let d=l;return a==="DataView"?d=new Uint8Array(l.buffer):a==="ArrayBuffer"&&(d=new Uint8Array(l)),i([a,[...d]],l)}const f=[],u=i([s,f],l);for(const d of l)f.push(o(d));return u}case Dt:{if(a)switch(a){case"BigInt":return i([a,l.toString()],l);case"Boolean":case"Number":case"String":return i([a,l.valueOf()],l)}if(t&&"toJSON"in l)return o(l.toJSON());const f=[],u=i([s,f],l);for(const d of js(l))(e||!Et(ct(l[d])))&&f.push([o(d),o(l[d])]);return u}case En:return i([s,l.toISOString()],l);case _n:{const{source:f,flags:u}=l;return i([s,{source:f,flags:u}],l)}case Tn:{const f=[],u=i([s,f],l);for(const[d,p]of l)(e||!(Et(ct(d))||Et(ct(p))))&&f.push([o(d),o(p)]);return u}case Ln:{const f=[],u=i([s,f],l);for(const d of l)(e||!Et(ct(d)))&&f.push(o(d));return u}}const{message:c}=l;return i([s,{name:a,message:c}],l)};return o},ar=(e,{json:t,lossy:n}={})=>{const r=[];return Bs(!(t||n),!!t,new Map,r)(e),r},je=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?sr(ar(e,t)):structuredClone(e):(e,t)=>sr(ar(e,t)),_i=(function(e){if(e==null)return $s;if(typeof e=="string")return Us(e);if(typeof e=="object")return Vs(e);if(typeof e=="function")return On(e);throw new Error("Expected function, string, or array as `test`")});function Vs(e){const t=[];let n=-1;for(;++n0&&(o.properties.rel=[...d]),p&&(o.properties.target=p),f){const k=ut(t.contentProperties,o)||{};o.children.push({type:"element",tagName:"span",properties:je(k),children:je(f)})}}}})}}function ut(e,t){return typeof e=="function"?e(t):e}function ea(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const ta=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,na=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,ra={};function cr(e,t){return(ra.jsx?na:ta).test(e)}const ia=/[ \t\n\f\r]/g;function oa(e){return typeof e=="object"?e.type==="text"?ur(e.value):!1:ur(e)}function ur(e){return e.replace(ia,"")===""}class yt{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}yt.prototype.normal={},yt.prototype.property={},yt.prototype.space=void 0;function Ti(e,t){const n={},r={};for(const i of e)Object.assign(n,i.property),Object.assign(r,i.normal);return new yt(n,r,t)}function sn(e){return e.toLowerCase()}class oe{constructor(t,n){this.attribute=n,this.property=t}}oe.prototype.attribute="",oe.prototype.booleanish=!1,oe.prototype.boolean=!1,oe.prototype.commaOrSpaceSeparated=!1,oe.prototype.commaSeparated=!1,oe.prototype.defined=!1,oe.prototype.mustUseProperty=!1,oe.prototype.number=!1,oe.prototype.overloadedBoolean=!1,oe.prototype.property="",oe.prototype.spaceSeparated=!1,oe.prototype.space=void 0;let la=0;const j=He(),K=He(),an=He(),S=He(),q=He(),Ze=He(),ce=He();function He(){return 2**++la}const cn=Object.freeze(Object.defineProperty({__proto__:null,boolean:j,booleanish:K,commaOrSpaceSeparated:ce,commaSeparated:Ze,number:S,overloadedBoolean:an,spaceSeparated:q},Symbol.toStringTag,{value:"Module"})),Ht=Object.keys(cn);class An extends oe{constructor(t,n,r,i){let o=-1;if(super(t,n),fr(this,"space",i),typeof r=="number")for(;++o4&&n.slice(0,4)==="data"&&fa.test(t)){if(t.charAt(4)==="-"){const o=t.slice(5).replace(pr,ha);r="data"+o.charAt(0).toUpperCase()+o.slice(1)}else{const o=t.slice(4);if(!pr.test(o)){let l=o.replace(ua,da);l.charAt(0)!=="-"&&(l="-"+l),t="data"+l}}i=An}return new i(r,t)}function da(e){return"-"+e.toLowerCase()}function ha(e){return e.charAt(1).toUpperCase()}const ma=Ti([Li,sa,Ri,Di,Mi],"html"),Rn=Ti([Li,aa,Ri,Di,Mi],"svg");var Ge={},qt,dr;function ga(){if(dr)return qt;dr=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,r=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,o=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,l=/^[;\s]*/,s=/^\s+|\s+$/g,a=` `,c="/",f="*",u="",d="comment",p="declaration";qt=function(k,w){if(typeof k!="string")throw new TypeError("First argument must be a string");if(!k)return[];w=w||{};var y=1,C=1;function I(O){var E=O.match(t);E&&(y+=E.length);var F=O.lastIndexOf(a);C=~F?O.length-F:C+O.length}function _(){var O={line:y,column:C};return function(E){return E.position=new N(O),A(),E}}function N(O){this.start=O,this.end={line:y,column:C},this.source=w.source}N.prototype.content=k;function b(O){var E=new Error(w.source+":"+y+":"+C+": "+O);if(E.reason=O,E.filename=w.source,E.line=y,E.column=C,E.source=k,!w.silent)throw E}function z(O){var E=O.exec(k);if(E){var F=E[0];return I(F),k=k.slice(F.length),E}}function A(){z(n)}function B(O){var E;for(O=O||[];E=v();)E!==!1&&O.push(E);return O}function v(){var O=_();if(!(c!=k.charAt(0)||f!=k.charAt(1))){for(var E=2;u!=k.charAt(E)&&(f!=k.charAt(E)||c!=k.charAt(E+1));)++E;if(E+=2,u===k.charAt(E-1))return b("End of comment missing");var F=k.slice(2,E-2);return C+=2,I(F),k=k.slice(E),C+=2,O({type:d,comment:F})}}function T(){var O=_(),E=z(r);if(E){if(v(),!z(i))return b("property missing ':'");var F=z(o),G=O({type:p,property:g(E[0].replace(e,u)),value:F?g(F[0].replace(e,u)):u});return z(l),G}}function L(){var O=[];B(O);for(var E;E=T();)E!==!1&&(O.push(E),B(O));return O}return A(),L()};function g(k){return k?k.replace(s,u):u}return qt}var hr;function ya(){if(hr)return Ge;hr=1;var e=Ge&&Ge.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Ge,"__esModule",{value:!0}),Ge.default=n;const t=e(ga());function n(r,i){let o=null;if(!r||typeof r!="string")return o;const l=(0,t.default)(r),s=typeof i=="function";return l.forEach(a=>{if(a.type!=="declaration")return;const{property:c,value:f}=a;s?i(c,f,a):f&&(o=o||{},o[c]=f)}),o}return Ge}var ft={},mr;function va(){if(mr)return ft;mr=1,Object.defineProperty(ft,"__esModule",{value:!0}),ft.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,t=/-([a-z])/g,n=/^[^-]+$/,r=/^-(webkit|moz|ms|o|khtml)-/,i=/^-(ms)-/,o=function(c){return!c||n.test(c)||e.test(c)},l=function(c,f){return f.toUpperCase()},s=function(c,f){return"".concat(f,"-")},a=function(c,f){return f===void 0&&(f={}),o(c)?c:(c=c.toLowerCase(),f.reactCompat?c=c.replace(i,s):c=c.replace(r,s),c.replace(t,l))};return ft.camelCase=a,ft}var pt,gr;function ka(){if(gr)return pt;gr=1;var e=pt&&pt.__importDefault||function(i){return i&&i.__esModule?i:{default:i}},t=e(ya()),n=va();function r(i,o){var l={};return!i||typeof i!="string"||(0,t.default)(i,function(s,a){s&&a&&(l[(0,n.camelCase)(s,o)]=a)}),l}return r.default=r,pt=r,pt}var xa=ka();const ba=li(xa),Fi=zi("end"),Dn=zi("start");function zi(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function wa(e){const t=Dn(e),n=Fi(e);if(t&&n)return{start:t,end:n}}function vt(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?yr(e.position):"start"in e||"end"in e?yr(e):"line"in e||"column"in e?un(e):""}function un(e){return vr(e&&e.line)+":"+vr(e&&e.column)}function yr(e){return un(e&&e.start)+"-"+un(e&&e.end)}function vr(e){return e&&typeof e=="number"?e:1}class te extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let i="",o={},l=!1;if(n&&("line"in n&&"column"in n?o={place:n}:"start"in n&&"end"in n?o={place:n}:"type"in n?o={ancestors:[n],place:n.position}:o={...n}),typeof t=="string"?i=t:!o.cause&&t&&(l=!0,i=t.message,o.cause=t),!o.ruleId&&!o.source&&typeof r=="string"){const a=r.indexOf(":");a===-1?o.ruleId=r:(o.source=r.slice(0,a),o.ruleId=r.slice(a+1))}if(!o.place&&o.ancestors&&o.ancestors){const a=o.ancestors[o.ancestors.length-1];a&&(o.place=a.position)}const s=o.place&&"start"in o.place?o.place.start:o.place;this.ancestors=o.ancestors||void 0,this.cause=o.cause||void 0,this.column=s?s.column:void 0,this.fatal=void 0,this.file="",this.message=i,this.line=s?s.line:void 0,this.name=vt(o.place)||"1:1",this.place=o.place||void 0,this.reason=this.message,this.ruleId=o.ruleId||void 0,this.source=o.source||void 0,this.stack=l&&o.cause&&typeof o.cause.stack=="string"?o.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}te.prototype.file="",te.prototype.name="",te.prototype.reason="",te.prototype.message="",te.prototype.stack="",te.prototype.column=void 0,te.prototype.line=void 0,te.prototype.ancestors=void 0,te.prototype.cause=void 0,te.prototype.fatal=void 0,te.prototype.place=void 0,te.prototype.ruleId=void 0,te.prototype.source=void 0;const Mn={}.hasOwnProperty,Sa=new Map,Ca=/[A-Z]/g,Ia=new Set(["table","tbody","thead","tfoot","tr"]),Pa=new Set(["td","th"]),Ni="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function Ea(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=Ma(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=Da(n,t.jsx,t.jsxs)}const i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Rn:ma,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},o=ji(i,e,void 0);return o&&typeof o!="string"?o:i.create(e,i.Fragment,{children:o||void 0},void 0)}function ji(e,t,n){if(t.type==="element")return _a(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return Ta(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return Oa(e,t,n);if(t.type==="mdxjsEsm")return La(e,t);if(t.type==="root")return Aa(e,t,n);if(t.type==="text")return Ra(e,t)}function _a(e,t,n){const r=e.schema;let i=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(i=Rn,e.schema=i),e.ancestors.push(t);const o=Vi(e,t.tagName,!1),l=Fa(e,t);let s=zn(e,t);return Ia.has(t.tagName)&&(s=s.filter(function(a){return typeof a=="string"?!oa(a):!0})),Bi(e,l,o,t),Fn(l,s),e.ancestors.pop(),e.schema=r,e.create(t,o,l,n)}function Ta(e,t){if(t.data&&t.data.estree&&e.evaluater){const n=t.data.estree.body[0];return n.type,e.evaluater.evaluateExpression(n.expression)}bt(e,t.position)}function La(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);bt(e,t.position)}function Oa(e,t,n){const r=e.schema;let i=r;t.name==="svg"&&r.space==="html"&&(i=Rn,e.schema=i),e.ancestors.push(t);const o=t.name===null?e.Fragment:Vi(e,t.name,!0),l=za(e,t),s=zn(e,t);return Bi(e,l,o,t),Fn(l,s),e.ancestors.pop(),e.schema=r,e.create(t,o,l,n)}function Aa(e,t,n){const r={};return Fn(r,zn(e,t)),e.create(t,e.Fragment,r,n)}function Ra(e,t){return t.value}function Bi(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Fn(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function Da(e,t,n){return r;function r(i,o,l,s){const a=Array.isArray(l.children)?n:t;return s?a(o,l,s):a(o,l)}}function Ma(e,t){return n;function n(r,i,o,l){const s=Array.isArray(o.children),a=Dn(r);return t(i,o,l,s,{columnNumber:a?a.column-1:void 0,fileName:e,lineNumber:a?a.line:void 0},void 0)}}function Fa(e,t){const n={};let r,i;for(i in t.properties)if(i!=="children"&&Mn.call(t.properties,i)){const o=Na(e,i,t.properties[i]);if(o){const[l,s]=o;e.tableCellAlignToStyle&&l==="align"&&typeof s=="string"&&Pa.has(t.tagName)?r=s:n[l]=s}}if(r){const o=n.style||(n.style={});o[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function za(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const i=r.data.estree.body[0];i.type;const o=i.expression;o.type;const l=o.properties[0];l.type,Object.assign(n,e.evaluater.evaluateExpression(l.argument))}else bt(e,t.position);else{const i=r.name;let o;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const l=r.value.data.estree.body[0];l.type,o=e.evaluater.evaluateExpression(l.expression)}else bt(e,t.position);else o=r.value===null?!0:r.value;n[i]=o}return n}function zn(e,t){const n=[];let r=-1;const i=e.passKeys?new Map:Sa;for(;++r0?{type:"text",value:_}:void 0),_===!1?u.lastIndex=C+1:(p!==C&&w.push({type:"text",value:a.value.slice(p,C)}),Array.isArray(_)?w.push(..._):_&&w.push(_),p=C+y[0].length,k=!0),!u.global)break;y=u.exec(a.value)}return k?(pi?0:i+t:t=t>i?i:t,n=n>0?n:0,r.length<1e4)l=Array.from(r),l.unshift(t,n),e.splice(...l);else for(n&&e.splice(t,n);o0?(Ce(e,e.length,0,t),e):t}const xr={}.hasOwnProperty;function Xa(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function et(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Se=Me(/[A-Za-z]/),fe=Me(/[\dA-Za-z]/),tc=Me(/[#-'*+\--9=?A-Z^-~]/);function fn(e){return e!==null&&(e<32||e===127)}const pn=Me(/\d/),nc=Me(/[\dA-Fa-f]/),rc=Me(/[!-/:-@[-`{-~]/);function D(e){return e!==null&&e<-2}function le(e){return e!==null&&(e<0||e===32)}function V(e){return e===-2||e===-1||e===32}const ic=Me(new RegExp("\\p{P}|\\p{S}","u")),oc=Me(/\s/);function Me(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function it(e){const t=[];let n=-1,r=0,i=0;for(;++n55295&&o<57344){const s=e.charCodeAt(n+1);o<56320&&s>56319&&s<57344?(l=String.fromCharCode(o,s),i=1):l="�"}else l=String.fromCharCode(o);l&&(t.push(e.slice(r,n),encodeURIComponent(l)),r=n+i+1,l=""),i&&(n+=i,i=0)}return t.join("")+e.slice(r)}function W(e,t,n,r){const i=r?r-1:Number.POSITIVE_INFINITY;let o=0;return l;function l(a){return V(a)?(e.enter(n),s(a)):t(a)}function s(a){return V(a)&&o++l))return;const z=t.events.length;let A=z,B,v;for(;A--;)if(t.events[A][0]==="exit"&&t.events[A][1].type==="chunkFlow"){if(B){v=t.events[A][1].end;break}B=!0}for(y(r),b=z;bI;){const N=n[_];t.containerState=N[1],N[0].exit.call(t,e)}n.length=I}function C(){i.write([null]),o=void 0,i=void 0,t.containerState._closeFlow=void 0}}function uc(e,t,n){return W(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function wr(e){if(e===null||le(e)||oc(e))return 1;if(ic(e))return 2}function jn(e,t,n){const r=[];let i=-1;for(;++i1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const u={...e[r][1].end},d={...e[n][1].start};Sr(u,-a),Sr(d,a),l={type:a>1?"strongSequence":"emphasisSequence",start:u,end:{...e[r][1].end}},s={type:a>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:d},o={type:a>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},i={type:a>1?"strong":"emphasis",start:{...l.start},end:{...s.end}},e[r][1].end={...l.start},e[n][1].start={...s.end},c=[],e[r][1].end.offset-e[r][1].start.offset&&(c=he(c,[["enter",e[r][1],t],["exit",e[r][1],t]])),c=he(c,[["enter",i,t],["enter",l,t],["exit",l,t],["enter",o,t]]),c=he(c,jn(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),c=he(c,[["exit",o,t],["enter",s,t],["exit",s,t],["exit",i,t]]),e[n][1].end.offset-e[n][1].start.offset?(f=2,c=he(c,[["enter",e[n][1],t],["exit",e[n][1],t]])):f=0,Ce(e,r-1,n-r+3,c),n=r+c.length-f-2;break}}for(n=-1;++n0&&V(b)?W(e,C,"linePrefix",o+1)(b):C(b)}function C(b){return b===null||D(b)?e.check(Cr,k,_)(b):(e.enter("codeFlowValue"),I(b))}function I(b){return b===null||D(b)?(e.exit("codeFlowValue"),C(b)):(e.consume(b),I)}function _(b){return e.exit("codeFenced"),t(b)}function N(b,z,A){let B=0;return v;function v(F){return b.enter("lineEnding"),b.consume(F),b.exit("lineEnding"),T}function T(F){return b.enter("codeFencedFence"),V(F)?W(b,L,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(F):L(F)}function L(F){return F===s?(b.enter("codeFencedFenceSequence"),O(F)):A(F)}function O(F){return F===s?(B++,b.consume(F),O):B>=l?(b.exit("codeFencedFenceSequence"),V(F)?W(b,E,"whitespace")(F):E(F)):A(F)}function E(F){return F===null||D(F)?(b.exit("codeFencedFence"),z(F)):A(F)}}}function wc(e,t,n){const r=this;return i;function i(l){return l===null?n(l):(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),o)}function o(l){return r.parser.lazy[r.now().line]?n(l):t(l)}}const Wt={name:"codeIndented",tokenize:Cc},Sc={partial:!0,tokenize:Ic};function Cc(e,t,n){const r=this;return i;function i(c){return e.enter("codeIndented"),W(e,o,"linePrefix",5)(c)}function o(c){const f=r.events[r.events.length-1];return f&&f[1].type==="linePrefix"&&f[2].sliceSerialize(f[1],!0).length>=4?l(c):n(c)}function l(c){return c===null?a(c):D(c)?e.attempt(Sc,l,a)(c):(e.enter("codeFlowValue"),s(c))}function s(c){return c===null||D(c)?(e.exit("codeFlowValue"),l(c)):(e.consume(c),s)}function a(c){return e.exit("codeIndented"),t(c)}}function Ic(e,t,n){const r=this;return i;function i(l){return r.parser.lazy[r.now().line]?n(l):D(l)?(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),i):W(e,o,"linePrefix",5)(l)}function o(l){const s=r.events[r.events.length-1];return s&&s[1].type==="linePrefix"&&s[2].sliceSerialize(s[1],!0).length>=4?t(l):D(l)?i(l):n(l)}}const Pc={name:"codeText",previous:_c,resolve:Ec,tokenize:Tc};function Ec(e){let t=e.length-4,n=3,r,i;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const i=n||0;this.setCursor(Math.trunc(t));const o=this.right.splice(this.right.length-i,Number.POSITIVE_INFINITY);return r&&dt(this.left,r),o.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),dt(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),dt(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(l):e.interrupt(r.parser.constructs.flow,n,t)(l)}}function Qi(e,t,n,r,i,o,l,s,a){const c=a||Number.POSITIVE_INFINITY;let f=0;return u;function u(y){return y===60?(e.enter(r),e.enter(i),e.enter(o),e.consume(y),e.exit(o),d):y===null||y===32||y===41||fn(y)?n(y):(e.enter(r),e.enter(l),e.enter(s),e.enter("chunkString",{contentType:"string"}),k(y))}function d(y){return y===62?(e.enter(o),e.consume(y),e.exit(o),e.exit(i),e.exit(r),t):(e.enter(s),e.enter("chunkString",{contentType:"string"}),p(y))}function p(y){return y===62?(e.exit("chunkString"),e.exit(s),d(y)):y===null||y===60||D(y)?n(y):(e.consume(y),y===92?g:p)}function g(y){return y===60||y===62||y===92?(e.consume(y),p):p(y)}function k(y){return!f&&(y===null||y===41||le(y))?(e.exit("chunkString"),e.exit(s),e.exit(l),e.exit(r),t(y)):f999||p===null||p===91||p===93&&!a||p===94&&!s&&"_hiddenFootnoteSupport"in l.parser.constructs?n(p):p===93?(e.exit(o),e.enter(i),e.consume(p),e.exit(i),e.exit(r),t):D(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),f):(e.enter("chunkString",{contentType:"string"}),u(p))}function u(p){return p===null||p===91||p===93||D(p)||s++>999?(e.exit("chunkString"),f(p)):(e.consume(p),a||(a=!V(p)),p===92?d:u)}function d(p){return p===91||p===92||p===93?(e.consume(p),s++,u):u(p)}}function Ki(e,t,n,r,i,o){let l;return s;function s(d){return d===34||d===39||d===40?(e.enter(r),e.enter(i),e.consume(d),e.exit(i),l=d===40?41:d,a):n(d)}function a(d){return d===l?(e.enter(i),e.consume(d),e.exit(i),e.exit(r),t):(e.enter(o),c(d))}function c(d){return d===l?(e.exit(o),a(l)):d===null?n(d):D(d)?(e.enter("lineEnding"),e.consume(d),e.exit("lineEnding"),W(e,c,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),f(d))}function f(d){return d===l||d===null||D(d)?(e.exit("chunkString"),c(d)):(e.consume(d),d===92?u:f)}function u(d){return d===l||d===92?(e.consume(d),f):f(d)}}function kt(e,t){let n;return r;function r(i){return D(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r):V(i)?W(e,r,n?"linePrefix":"lineSuffix")(i):t(i)}}const zc={name:"definition",tokenize:jc},Nc={partial:!0,tokenize:Bc};function jc(e,t,n){const r=this;let i;return o;function o(p){return e.enter("definition"),l(p)}function l(p){return Yi.call(r,e,s,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(p)}function s(p){return i=et(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),p===58?(e.enter("definitionMarker"),e.consume(p),e.exit("definitionMarker"),a):n(p)}function a(p){return le(p)?kt(e,c)(p):c(p)}function c(p){return Qi(e,f,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(p)}function f(p){return e.attempt(Nc,u,u)(p)}function u(p){return V(p)?W(e,d,"whitespace")(p):d(p)}function d(p){return p===null||D(p)?(e.exit("definition"),r.parser.defined.push(i),t(p)):n(p)}}function Bc(e,t,n){return r;function r(s){return le(s)?kt(e,i)(s):n(s)}function i(s){return Ki(e,o,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(s)}function o(s){return V(s)?W(e,l,"whitespace")(s):l(s)}function l(s){return s===null||D(s)?t(s):n(s)}}const Vc={name:"hardBreakEscape",tokenize:Uc};function Uc(e,t,n){return r;function r(o){return e.enter("hardBreakEscape"),e.consume(o),i}function i(o){return D(o)?(e.exit("hardBreakEscape"),t(o)):n(o)}}const $c={name:"headingAtx",resolve:Hc,tokenize:qc};function Hc(e,t){let n=e.length-2,r=3,i,o;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(i={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},o={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},Ce(e,r,n-r+1,[["enter",i,t],["enter",o,t],["exit",o,t],["exit",i,t]])),e}function qc(e,t,n){let r=0;return i;function i(f){return e.enter("atxHeading"),o(f)}function o(f){return e.enter("atxHeadingSequence"),l(f)}function l(f){return f===35&&r++<6?(e.consume(f),l):f===null||le(f)?(e.exit("atxHeadingSequence"),s(f)):n(f)}function s(f){return f===35?(e.enter("atxHeadingSequence"),a(f)):f===null||D(f)?(e.exit("atxHeading"),t(f)):V(f)?W(e,s,"whitespace")(f):(e.enter("atxHeadingText"),c(f))}function a(f){return f===35?(e.consume(f),a):(e.exit("atxHeadingSequence"),s(f))}function c(f){return f===null||f===35||le(f)?(e.exit("atxHeadingText"),s(f)):(e.consume(f),c)}}const Wc=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Pr=["pre","script","style","textarea"],Qc={concrete:!0,name:"htmlFlow",resolveTo:Gc,tokenize:Jc},Yc={partial:!0,tokenize:Zc},Kc={partial:!0,tokenize:Xc};function Gc(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function Jc(e,t,n){const r=this;let i,o,l,s,a;return c;function c(m){return f(m)}function f(m){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(m),u}function u(m){return m===33?(e.consume(m),d):m===47?(e.consume(m),o=!0,k):m===63?(e.consume(m),i=3,r.interrupt?t:h):Se(m)?(e.consume(m),l=String.fromCharCode(m),w):n(m)}function d(m){return m===45?(e.consume(m),i=2,p):m===91?(e.consume(m),i=5,s=0,g):Se(m)?(e.consume(m),i=4,r.interrupt?t:h):n(m)}function p(m){return m===45?(e.consume(m),r.interrupt?t:h):n(m)}function g(m){const ke="CDATA[";return m===ke.charCodeAt(s++)?(e.consume(m),s===ke.length?r.interrupt?t:L:g):n(m)}function k(m){return Se(m)?(e.consume(m),l=String.fromCharCode(m),w):n(m)}function w(m){if(m===null||m===47||m===62||le(m)){const ke=m===47,Fe=l.toLowerCase();return!ke&&!o&&Pr.includes(Fe)?(i=1,r.interrupt?t(m):L(m)):Wc.includes(l.toLowerCase())?(i=6,ke?(e.consume(m),y):r.interrupt?t(m):L(m)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(m):o?C(m):I(m))}return m===45||fe(m)?(e.consume(m),l+=String.fromCharCode(m),w):n(m)}function y(m){return m===62?(e.consume(m),r.interrupt?t:L):n(m)}function C(m){return V(m)?(e.consume(m),C):v(m)}function I(m){return m===47?(e.consume(m),v):m===58||m===95||Se(m)?(e.consume(m),_):V(m)?(e.consume(m),I):v(m)}function _(m){return m===45||m===46||m===58||m===95||fe(m)?(e.consume(m),_):N(m)}function N(m){return m===61?(e.consume(m),b):V(m)?(e.consume(m),N):I(m)}function b(m){return m===null||m===60||m===61||m===62||m===96?n(m):m===34||m===39?(e.consume(m),a=m,z):V(m)?(e.consume(m),b):A(m)}function z(m){return m===a?(e.consume(m),a=null,B):m===null||D(m)?n(m):(e.consume(m),z)}function A(m){return m===null||m===34||m===39||m===47||m===60||m===61||m===62||m===96||le(m)?N(m):(e.consume(m),A)}function B(m){return m===47||m===62||V(m)?I(m):n(m)}function v(m){return m===62?(e.consume(m),T):n(m)}function T(m){return m===null||D(m)?L(m):V(m)?(e.consume(m),T):n(m)}function L(m){return m===45&&i===2?(e.consume(m),G):m===60&&i===1?(e.consume(m),X):m===62&&i===4?(e.consume(m),ve):m===63&&i===3?(e.consume(m),h):m===93&&i===5?(e.consume(m),Ie):D(m)&&(i===6||i===7)?(e.exit("htmlFlowData"),e.check(Yc,Pe,O)(m)):m===null||D(m)?(e.exit("htmlFlowData"),O(m)):(e.consume(m),L)}function O(m){return e.check(Kc,E,Pe)(m)}function E(m){return e.enter("lineEnding"),e.consume(m),e.exit("lineEnding"),F}function F(m){return m===null||D(m)?O(m):(e.enter("htmlFlowData"),L(m))}function G(m){return m===45?(e.consume(m),h):L(m)}function X(m){return m===47?(e.consume(m),l="",ye):L(m)}function ye(m){if(m===62){const ke=l.toLowerCase();return Pr.includes(ke)?(e.consume(m),ve):L(m)}return Se(m)&&l.length<8?(e.consume(m),l+=String.fromCharCode(m),ye):L(m)}function Ie(m){return m===93?(e.consume(m),h):L(m)}function h(m){return m===62?(e.consume(m),ve):m===45&&i===2?(e.consume(m),h):L(m)}function ve(m){return m===null||D(m)?(e.exit("htmlFlowData"),Pe(m)):(e.consume(m),ve)}function Pe(m){return e.exit("htmlFlow"),t(m)}}function Xc(e,t,n){const r=this;return i;function i(l){return D(l)?(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),o):n(l)}function o(l){return r.parser.lazy[r.now().line]?n(l):t(l)}}function Zc(e,t,n){return r;function r(i){return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),e.attempt(jt,t,n)}}const eu={name:"htmlText",tokenize:tu};function tu(e,t,n){const r=this;let i,o,l;return s;function s(h){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(h),a}function a(h){return h===33?(e.consume(h),c):h===47?(e.consume(h),N):h===63?(e.consume(h),I):Se(h)?(e.consume(h),A):n(h)}function c(h){return h===45?(e.consume(h),f):h===91?(e.consume(h),o=0,g):Se(h)?(e.consume(h),C):n(h)}function f(h){return h===45?(e.consume(h),p):n(h)}function u(h){return h===null?n(h):h===45?(e.consume(h),d):D(h)?(l=u,X(h)):(e.consume(h),u)}function d(h){return h===45?(e.consume(h),p):u(h)}function p(h){return h===62?G(h):h===45?d(h):u(h)}function g(h){const ve="CDATA[";return h===ve.charCodeAt(o++)?(e.consume(h),o===ve.length?k:g):n(h)}function k(h){return h===null?n(h):h===93?(e.consume(h),w):D(h)?(l=k,X(h)):(e.consume(h),k)}function w(h){return h===93?(e.consume(h),y):k(h)}function y(h){return h===62?G(h):h===93?(e.consume(h),y):k(h)}function C(h){return h===null||h===62?G(h):D(h)?(l=C,X(h)):(e.consume(h),C)}function I(h){return h===null?n(h):h===63?(e.consume(h),_):D(h)?(l=I,X(h)):(e.consume(h),I)}function _(h){return h===62?G(h):I(h)}function N(h){return Se(h)?(e.consume(h),b):n(h)}function b(h){return h===45||fe(h)?(e.consume(h),b):z(h)}function z(h){return D(h)?(l=z,X(h)):V(h)?(e.consume(h),z):G(h)}function A(h){return h===45||fe(h)?(e.consume(h),A):h===47||h===62||le(h)?B(h):n(h)}function B(h){return h===47?(e.consume(h),G):h===58||h===95||Se(h)?(e.consume(h),v):D(h)?(l=B,X(h)):V(h)?(e.consume(h),B):G(h)}function v(h){return h===45||h===46||h===58||h===95||fe(h)?(e.consume(h),v):T(h)}function T(h){return h===61?(e.consume(h),L):D(h)?(l=T,X(h)):V(h)?(e.consume(h),T):B(h)}function L(h){return h===null||h===60||h===61||h===62||h===96?n(h):h===34||h===39?(e.consume(h),i=h,O):D(h)?(l=L,X(h)):V(h)?(e.consume(h),L):(e.consume(h),E)}function O(h){return h===i?(e.consume(h),i=void 0,F):h===null?n(h):D(h)?(l=O,X(h)):(e.consume(h),O)}function E(h){return h===null||h===34||h===39||h===60||h===61||h===96?n(h):h===47||h===62||le(h)?B(h):(e.consume(h),E)}function F(h){return h===47||h===62||le(h)?B(h):n(h)}function G(h){return h===62?(e.consume(h),e.exit("htmlTextData"),e.exit("htmlText"),t):n(h)}function X(h){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),ye}function ye(h){return V(h)?W(e,Ie,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(h):Ie(h)}function Ie(h){return e.enter("htmlTextData"),l(h)}}const Bn={name:"labelEnd",resolveAll:ou,resolveTo:lu,tokenize:su},nu={tokenize:au},ru={tokenize:cu},iu={tokenize:uu};function ou(e){let t=-1;const n=[];for(;++t=3&&(c===null||D(c))?(e.exit("thematicBreak"),t(c)):n(c)}function a(c){return c===i?(e.consume(c),r++,a):(e.exit("thematicBreakSequence"),V(c)?W(e,s,"whitespace")(c):s(c))}}const ie={continuation:{tokenize:xu},exit:wu,name:"list",tokenize:ku},yu={partial:!0,tokenize:Su},vu={partial:!0,tokenize:bu};function ku(e,t,n){const r=this,i=r.events[r.events.length-1];let o=i&&i[1].type==="linePrefix"?i[2].sliceSerialize(i[1],!0).length:0,l=0;return s;function s(p){const g=r.containerState.type||(p===42||p===43||p===45?"listUnordered":"listOrdered");if(g==="listUnordered"?!r.containerState.marker||p===r.containerState.marker:pn(p)){if(r.containerState.type||(r.containerState.type=g,e.enter(g,{_container:!0})),g==="listUnordered")return e.enter("listItemPrefix"),p===42||p===45?e.check(Ot,n,c)(p):c(p);if(!r.interrupt||p===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),a(p)}return n(p)}function a(p){return pn(p)&&++l<10?(e.consume(p),a):(!r.interrupt||l<2)&&(r.containerState.marker?p===r.containerState.marker:p===41||p===46)?(e.exit("listItemValue"),c(p)):n(p)}function c(p){return e.enter("listItemMarker"),e.consume(p),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||p,e.check(jt,r.interrupt?n:f,e.attempt(yu,d,u))}function f(p){return r.containerState.initialBlankLine=!0,o++,d(p)}function u(p){return V(p)?(e.enter("listItemPrefixWhitespace"),e.consume(p),e.exit("listItemPrefixWhitespace"),d):n(p)}function d(p){return r.containerState.size=o+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(p)}}function xu(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(jt,i,o);function i(s){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,W(e,t,"listItemIndent",r.containerState.size+1)(s)}function o(s){return r.containerState.furtherBlankLines||!V(s)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,l(s)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(vu,t,l)(s))}function l(s){return r.containerState._closeFlow=!0,r.interrupt=void 0,W(e,e.attempt(ie,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(s)}}function bu(e,t,n){const r=this;return W(e,i,"listItemIndent",r.containerState.size+1);function i(o){const l=r.events[r.events.length-1];return l&&l[1].type==="listItemIndent"&&l[2].sliceSerialize(l[1],!0).length===r.containerState.size?t(o):n(o)}}function wu(e){e.exit(this.containerState.type)}function Su(e,t,n){const r=this;return W(e,i,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function i(o){const l=r.events[r.events.length-1];return!V(o)&&l&&l[1].type==="listItemPrefixWhitespace"?t(o):n(o)}}const Er={name:"setextUnderline",resolveTo:Cu,tokenize:Iu};function Cu(e,t){let n=e.length,r,i,o;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(i=n)}else e[n][1].type==="content"&&e.splice(n,1),!o&&e[n][1].type==="definition"&&(o=n);const l={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type="setextHeadingText",o?(e.splice(i,0,["enter",l,t]),e.splice(o+1,0,["exit",e[r][1],t]),e[r][1].end={...e[o][1].end}):e[r][1]=l,e.push(["exit",l,t]),e}function Iu(e,t,n){const r=this;let i;return o;function o(c){let f=r.events.length,u;for(;f--;)if(r.events[f][1].type!=="lineEnding"&&r.events[f][1].type!=="linePrefix"&&r.events[f][1].type!=="content"){u=r.events[f][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||u)?(e.enter("setextHeadingLine"),i=c,l(c)):n(c)}function l(c){return e.enter("setextHeadingLineSequence"),s(c)}function s(c){return c===i?(e.consume(c),s):(e.exit("setextHeadingLineSequence"),V(c)?W(e,a,"lineSuffix")(c):a(c))}function a(c){return c===null||D(c)?(e.exit("setextHeadingLine"),t(c)):n(c)}}const Pu={tokenize:Eu};function Eu(e){const t=this,n=e.attempt(jt,r,e.attempt(this.parser.constructs.flowInitial,i,W(e,e.attempt(this.parser.constructs.flow,i,e.attempt(Ac,i)),"linePrefix")));return n;function r(o){if(o===null){e.consume(o);return}return e.enter("lineEndingBlank"),e.consume(o),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function i(o){if(o===null){e.consume(o);return}return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const _u={resolveAll:Ji()},Tu=Gi("string"),Lu=Gi("text");function Gi(e){return{resolveAll:Ji(e==="text"?Ou:void 0),tokenize:t};function t(n){const r=this,i=this.parser.constructs[e],o=n.attempt(i,l,s);return l;function l(f){return c(f)?o(f):s(f)}function s(f){if(f===null){n.consume(f);return}return n.enter("data"),n.consume(f),a}function a(f){return c(f)?(n.exit("data"),o(f)):(n.consume(f),a)}function c(f){if(f===null)return!0;const u=i[f];let d=-1;if(u)for(;++d-1){const s=l[0];typeof s=="string"?l[0]=s.slice(r):l.shift()}o>0&&l.push(e[i].slice(0,o))}return l}function Hu(e,t){let n=-1;const r=[];let i;for(;++n0){const xe=M.tokenStack[M.tokenStack.length-1];(xe[1]||Tr).call(M,void 0,xe[0])}for(P.position={start:Re(x.length>0?x[0][1].start:{line:1,column:1,offset:0}),end:Re(x.length>0?x[x.length-2][1].end:{line:1,column:1,offset:0})},Q=-1;++Q",...a.current()})),c+=a.move(">")):(s=n.enter("destinationRaw"),c+=a.move(n.safe(e.url,{before:c,after:e.title?" ":")",...a.current()}))),s(),e.title&&(s=n.enter(`title${o}`),c+=a.move(" "+i),c+=a.move(n.safe(e.title,{before:c,after:i,...a.current()})),c+=a.move(i),s()),c+=a.move(")"),l(),c}function dd(){return"!"}co.peek=hd;function co(e,t,n,r){const i=e.referenceType,o=n.enter("imageReference");let l=n.enter("label");const s=n.createTracker(r);let a=s.move("![");const c=n.safe(e.alt,{before:a,after:"]",...s.current()});a+=s.move(c+"]["),l();const f=n.stack;n.stack=[],l=n.enter("reference");const u=n.safe(n.associationId(e),{before:a,after:"]",...s.current()});return l(),n.stack=f,o(),i==="full"||!c||c!==u?a+=s.move(u+"]"):i==="shortcut"?a=a.slice(0,-1):a+=s.move("]"),a}function hd(){return"!"}uo.peek=md;function uo(e,t,n){let r=e.value||"",i="`",o=-1;for(;new RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++o\u007F]/.test(e.url))}po.peek=gd;function po(e,t,n,r){const i=Hn(n),o=i==='"'?"Quote":"Apostrophe",l=n.createTracker(r);let s,a;if(fo(e,n)){const f=n.stack;n.stack=[],s=n.enter("autolink");let u=l.move("<");return u+=l.move(n.containerPhrasing(e,{before:u,after:">",...l.current()})),u+=l.move(">"),s(),n.stack=f,u}s=n.enter("link"),a=n.enter("label");let c=l.move("[");return c+=l.move(n.containerPhrasing(e,{before:c,after:"](",...l.current()})),c+=l.move("]("),a(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(a=n.enter("destinationLiteral"),c+=l.move("<"),c+=l.move(n.safe(e.url,{before:c,after:">",...l.current()})),c+=l.move(">")):(a=n.enter("destinationRaw"),c+=l.move(n.safe(e.url,{before:c,after:e.title?" ":")",...l.current()}))),a(),e.title&&(a=n.enter(`title${o}`),c+=l.move(" "+i),c+=l.move(n.safe(e.title,{before:c,after:i,...l.current()})),c+=l.move(i),a()),c+=l.move(")"),s(),c}function gd(e,t,n){return fo(e,n)?"<":"["}ho.peek=yd;function ho(e,t,n,r){const i=e.referenceType,o=n.enter("linkReference");let l=n.enter("label");const s=n.createTracker(r);let a=s.move("[");const c=n.containerPhrasing(e,{before:a,after:"]",...s.current()});a+=s.move(c+"]["),l();const f=n.stack;n.stack=[],l=n.enter("reference");const u=n.safe(n.associationId(e),{before:a,after:"]",...s.current()});return l(),n.stack=f,o(),i==="full"||!c||c!==u?a+=s.move(u+"]"):i==="shortcut"?a=a.slice(0,-1):a+=s.move("]"),a}function yd(){return"["}function qn(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function vd(e){const t=qn(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function kd(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function mo(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function xd(e,t,n,r){const i=n.enter("list"),o=n.bulletCurrent;let l=e.ordered?kd(n):qn(n);const s=e.ordered?l==="."?")":".":vd(n);let a=t&&n.bulletLastUsed?l===n.bulletLastUsed:!1;if(!e.ordered){const f=e.children?e.children[0]:void 0;if((l==="*"||l==="-")&&f&&(!f.children||!f.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(a=!0),mo(n)===l&&f){let u=-1;for(;++u-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+o);let l=o.length+1;(i==="tab"||i==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(l=Math.ceil(l/4)*4);const s=n.createTracker(r);s.move(o+" ".repeat(l-o.length)),s.shift(l);const a=n.enter("listItem"),c=n.indentLines(n.containerFlow(e,s.current()),f);return a(),c;function f(u,d,p){return d?(p?"":" ".repeat(l))+u:(p?o:o+" ".repeat(l-o.length))+u}}function Sd(e,t,n,r){const i=n.enter("paragraph"),o=n.enter("phrasing"),l=n.containerPhrasing(e,r);return o(),i(),l}const Cd=$n(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function Id(e,t,n,r){return(e.children.some(function(i){return Cd(i)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function Pd(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}go.peek=Ed;function go(e,t,n,r){const i=Pd(n),o=n.enter("strong"),l=n.createTracker(r),s=l.move(i+i);let a=l.move(n.containerPhrasing(e,{after:i,before:s,...l.current()}));const c=a.charCodeAt(0),f=Ft(r.before.charCodeAt(r.before.length-1),c,i);f.inside&&(a=St(c)+a.slice(1));const u=a.charCodeAt(a.length-1),d=Ft(r.after.charCodeAt(0),u,i);d.inside&&(a=a.slice(0,-1)+St(u));const p=l.move(i+i);return o(),n.attentionEncodeSurroundingInfo={after:d.outside,before:f.outside},s+a+p}function Ed(e,t,n){return n.options.strong||"*"}function _d(e,t,n,r){return n.safe(e.value,r)}function Td(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function Ld(e,t,n){const r=(mo(n)+(n.options.ruleSpaces?" ":"")).repeat(Td(n));return n.options.ruleSpaces?r.slice(0,-1):r}const yo={blockquote:Xp,break:qr,code:id,definition:ld,emphasis:lo,hardBreak:qr,heading:fd,html:so,image:ao,imageReference:co,inlineCode:uo,link:po,linkReference:ho,list:xd,listItem:wd,paragraph:Sd,root:Id,strong:go,text:_d,thematicBreak:Ld};function Od(){return{enter:{table:Ad,tableData:Wr,tableHeader:Wr,tableRow:Dd},exit:{codeText:Md,table:Rd,tableData:ln,tableHeader:ln,tableRow:ln}}}function Ad(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function Rd(e){this.exit(e),this.data.inTable=void 0}function Dd(e){this.enter({type:"tableRow",children:[]},e)}function ln(e){this.exit(e)}function Wr(e){this.enter({type:"tableCell",children:[]},e)}function Md(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,Fd));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function Fd(e,t){return t==="|"?t:e}function zd(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,o=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` `,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:d,table:l,tableCell:a,tableRow:s}};function l(p,g,k,w){return c(f(p,k,w),p.align)}function s(p,g,k,w){const y=u(p,k,w),C=c([y]);return C.slice(0,C.indexOf(` -`))}function a(p,g,k,w){const y=k.enter("tableCell"),C=k.enter("phrasing"),I=k.containerPhrasing(p,{...w,before:o,after:o});return C(),y(),I}function c(p,g){return Gp(p,{align:g,alignDelimiters:r,padding:n,stringLength:i})}function f(p,g,k){const w=p.children;let y=-1;const C=[],I=g.enter("table");for(;++yi?0:i+t:t=t>i?i:t,n=n>0?n:0,r.length<1e4)l=Array.from(r),l.unshift(t,n),e.splice(...l);else for(n&&e.splice(t,n);o0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}function ih(e,t,n){const r=[];let i=-1;for(;++i999||u===93&&!l||u===null||u===91||se(u))return n(u);if(u===93){e.exit("chunkString");const d=e.exit("gfmFootnoteCallString");return i.includes(It(r.sliceSerialize(d)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(u),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(u)}return se(u)||(l=!0),o++,e.consume(u),u===92?f:c}function f(u){return u===91||u===92||u===93?(e.consume(u),o++,c):c(u)}}function ph(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o,l=0,s;return a;function a(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),c}function c(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",f):n(g)}function f(g){if(l>999||g===93&&!s||g===null||g===91||se(g))return n(g);if(g===93){e.exit("chunkString");const k=e.exit("gfmFootnoteDefinitionLabelString");return o=It(r.sliceSerialize(k)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),d}return se(g)||(s=!0),l++,e.consume(g),g===92?u:f}function u(g){return g===91||g===92||g===93?(e.consume(g),l++,f):f(g)}function d(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),i.includes(o)||i.push(o),Oe(e,p,"gfmFootnoteDefinitionWhitespace")):n(g)}function p(g){return t(g)}}function dh(e,t,n){return e.check(oh,t,e.attempt(sh,t,n))}function hh(e){e.exit("gfmFootnoteDefinition")}function mh(e,t,n){const r=this;return Oe(e,i,"gfmFootnoteDefinitionIndent",5);function i(o){const l=r.events[r.events.length-1];return l&&l[1].type==="gfmFootnoteDefinitionIndent"&&l[2].sliceSerialize(l[1],!0).length===4?t(o):n(o)}}function gh(e){let t=(e||{}).singleTilde;const n={name:"strikethrough",tokenize:i,resolveAll:r};return t==null&&(t=!0),{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(o,l){let s=-1;for(;++s1?s(p):(o.consume(p),f++,d);if(f<2&&!t)return s(p);const k=o.exit("strikethroughSequenceTemporary"),w=Mt(p);return k._open=!w||w===2&&!!g,k._close=!g||g===2&&!!w,l(p)}}}class yh{constructor(){this.map=[]}add(t,n,r){vh(this,t,n,r)}consume(t){if(this.map.sort(function(o,l){return o[0]-l[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let i=r.pop();for(;i;){for(const o of i)t.push(o);i=r.pop()}this.map.length=0}}function vh(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i-1;){const E=r.events[T][1].type;if(E==="lineEnding"||E==="linePrefix")T--;else break}const L=T>-1?r.events[T][1].type:null,O=L==="tableHead"||L==="tableRow"?b:a;return O===b&&r.parser.lazy[r.now().line]?n(v):O(v)}function a(v){return e.enter("tableHead"),e.enter("tableRow"),c(v)}function c(v){return v===124||(l=!0,o+=1),f(v)}function f(v){return v===null?n(v):Xe(v)?o>1?(o=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(v),e.exit("lineEnding"),p):n(v):Le(v)?Oe(e,f,"whitespace")(v):(o+=1,l&&(l=!1,i+=1),v===124?(e.enter("tableCellDivider"),e.consume(v),e.exit("tableCellDivider"),l=!0,f):(e.enter("data"),u(v)))}function u(v){return v===null||v===124||se(v)?(e.exit("data"),f(v)):(e.consume(v),v===92?d:u)}function d(v){return v===92||v===124?(e.consume(v),u):u(v)}function p(v){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(v):(e.enter("tableDelimiterRow"),l=!1,Le(v)?Oe(e,g,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(v):g(v))}function g(v){return v===45||v===58?w(v):v===124?(l=!0,e.enter("tableCellDivider"),e.consume(v),e.exit("tableCellDivider"),k):N(v)}function k(v){return Le(v)?Oe(e,w,"whitespace")(v):w(v)}function w(v){return v===58?(o+=1,l=!0,e.enter("tableDelimiterMarker"),e.consume(v),e.exit("tableDelimiterMarker"),y):v===45?(o+=1,y(v)):v===null||Xe(v)?_(v):N(v)}function y(v){return v===45?(e.enter("tableDelimiterFiller"),C(v)):N(v)}function C(v){return v===45?(e.consume(v),C):v===58?(l=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(v),e.exit("tableDelimiterMarker"),I):(e.exit("tableDelimiterFiller"),I(v))}function I(v){return Le(v)?Oe(e,_,"whitespace")(v):_(v)}function _(v){return v===124?g(v):v===null||Xe(v)?!l||i!==o?N(v):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(v)):N(v)}function N(v){return n(v)}function b(v){return e.enter("tableRow"),z(v)}function z(v){return v===124?(e.enter("tableCellDivider"),e.consume(v),e.exit("tableCellDivider"),z):v===null||Xe(v)?(e.exit("tableRow"),t(v)):Le(v)?Oe(e,z,"whitespace")(v):(e.enter("data"),A(v))}function A(v){return v===null||v===124||se(v)?(e.exit("data"),z(v)):(e.consume(v),v===92?B:A)}function B(v){return v===92||v===124?(e.consume(v),A):A(v)}}function wh(e,t){let n=-1,r=!0,i=0,o=[0,0,0,0],l=[0,0,0,0],s=!1,a=0,c,f,u;const d=new yh;for(;++nn[2]+1){const g=n[2]+1,k=n[3]-n[2]-1;e.add(g,k,[])}}e.add(n[3]+1,0,[["exit",u,t]])}return i!==void 0&&(o.end=Object.assign({},Je(t.events,i)),e.add(i,0,[["exit",o,t]]),o=void 0),o}function Jr(e,t,n,r,i){const o=[],l=Je(t.events,n);i&&(i.end=Object.assign({},l),o.push(["exit",i,t])),r.end=Object.assign({},l),o.push(["exit",r,t]),e.add(n+1,0,o)}function Je(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const Sh={name:"tasklistCheck",tokenize:Ih};function Ch(){return{text:{91:Sh}}}function Ih(e,t,n){const r=this;return i;function i(a){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(a):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(a),e.exit("taskListCheckMarker"),o)}function o(a){return se(a)?(e.enter("taskListCheckValueUnchecked"),e.consume(a),e.exit("taskListCheckValueUnchecked"),l):a===88||a===120?(e.enter("taskListCheckValueChecked"),e.consume(a),e.exit("taskListCheckValueChecked"),l):n(a)}function l(a){return a===93?(e.enter("taskListCheckMarker"),e.consume(a),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),s):n(a)}function s(a){return Xe(a)?t(a):Le(a)?e.check({tokenize:Ph},t,n)(a):n(a)}}function Ph(e,t,n){return Oe(e,r,"whitespace");function r(i){return i===null?n(i):t(i)}}function Eh(e){return Hd([Kd(),ah(),gh(e),xh(),Ch()])}const _h={};function Th(e){const t=this,n=e||_h,r=t.data(),i=r.micromarkExtensions||(r.micromarkExtensions=[]),o=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),l=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);i.push(Eh(n)),o.push(Ud()),l.push($d(n))}const Lh=ti({__name:"NcRichTextCopyButton",props:{contentId:{}},setup(e){const{copy:t,icon:n,altText:r}=vl(()=>document.getElementById(e.contentId).textContent);return(i,o)=>(R(),J(xn,{variant:"tertiary",size:"small","aria-label":ht(r),title:ht(r),onClick:ht(t)},{icon:de(()=>[ne(il,{path:ht(n),inline:""},null,8,["path"])]),_:1},8,["aria-label","title","onClick"]))}});function Oh(e){return e.type==="text"}const Ah=function(e){$e(e,Oh,(t,n)=>{const r=n.at(-1),i=r.children.indexOf(t),o=t.value.split(/(\{[a-z\-_.0-9]+\})/ig).map(l=>{const s=l.match(/^\{([a-z\-_.0-9]+)\}$/i);if(!s)return rr("text",l);const[,a]=s;return rr("element",{tagName:`#${a}`,children:[]})});r.children.splice(i,1,...o)})},Rh=()=>Ah;function Dh(e){return["code","inlineCode"].includes(e.type)}const Mh=function(){return function(e){$e(e,Dh,(t,n)=>{const r=n.at(-1),i=r.children.indexOf(t);return r.children.splice(i,1,{...t,value:""}),[fi,i+1]})}};function Fh(e){return["text","code","inlineCode"].includes(e.type)}const zh=function(){return function(e){$e(e,Fh,(t,n)=>{const r=n.at(-1),i=r.children.indexOf(t);return r.children.splice(i,1,{...t,value:t.value.replace(/</gmi,"<").replace(/>/gmi,">")}),[fi,i+1]})}},Nh=["http","https","mailto","tel"],vn=mt(null);async function jh(){const e=await Vo(()=>import("./index-XAFCS_Gy.chunk.mjs"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]),import.meta.url);vn.value=e.default}const Bh={name:"NcRichText",components:{NcReferenceList:At},props:{text:{type:String,default:""},arguments:{type:Object,default:()=>({})},referenceLimit:{type:Number,default:0},referenceInteractive:{type:Boolean,default:!0},referenceInteractiveOptIn:{type:Boolean,default:!1},references:{type:Array,default:null},useMarkdown:{type:Boolean,default:!1},useExtendedMarkdown:{type:Boolean,default:!1},interactive:{type:Boolean,default:!1},autolink:{type:Boolean,default:!0}},emits:["interactTodo"],data(){return{parentId:$t()}},methods:{renderPlaintext(){const e=this.text.split(/(\{[a-z\-_.0-9]+\})/ig).map(t=>{const n=t.match(/^\{([a-z\-_.0-9]+)\}$/i);if(!n)return this.prepareTextNode(t);const r=n[1],i=this.arguments[r];if(typeof i=="object"){const{component:o,props:l}=i;return Y(typeof o=="string"?H(o):o,{...l,class:"rich-text--component"})}return i?Y("span",{class:"rich-text--fallback"},i):t});return Y("div",{class:"rich-text--wrapper"},[Y("div",{},e.flat()),this.referenceLimit>0?Y("div",{class:"rich-text--reference-widget"},[Y(At,{text:this.text,referenceData:this.references,interactive:this.referenceInteractive,interactiveOptIn:this.referenceInteractiveOptIn})]):null])},renderMarkdown(){const e=jr().use(Lr).use(dl,{autolink:this.autolink,useMarkdown:this.useMarkdown,useExtendedMarkdown:this.useExtendedMarkdown}).use(zh).use(this.useExtendedMarkdown?Th:void 0).use(Ja).use(Nf,{except:Nh}).use(Ff,{handlers:{component(t,n){return t(n,n.component,{value:n.value})}}}).use(this.useExtendedMarkdown?vn.value:void 0).use(Rh).use(Zs,{target:"_blank",rel:["noopener noreferrer"]}).use($a,{Fragment:ri,jsx:this.createElement,jsxs:this.createElement,elementAttributeNameCase:"html",prefix:!1}).processSync(this.text.replace(/<[^>]+>/g,t=>t.replace(/")).result;return Y("div",{class:"rich-text--wrapper rich-text--wrapper-markdown"},[e,this.referenceLimit>0?Y("div",{class:"rich-text--reference-widget"},[Y(At,{text:this.prepareReferenceSource(this.text),referenceData:this.references,interactive:this.referenceInteractive,interactiveOptIn:this.referenceInteractiveOptIn})]):null])},prepareTextNode(e){return this.autolink&&(e=pl(e)),Array.isArray(e)?e.map(t=>{if(typeof t=="string")return t;const{component:n,props:r}=t;return Y(n,{...r,class:"rich-text--component"})}):e},prepareReferenceSource(e){if(!this.useMarkdown&&!this.useExtendedMarkdown)return e;const t=jr();return t.compiler=n=>zt(n),t.use(Lr).use(Mh).processSync(e.replace(/\s/g," ")).value},createElement(e,t,n){n&&(t.key=n);const r=t.children??[];if(delete t.children,!String(e).startsWith("#")){["h1","h2","h3","h4","h5","h6"].includes(String(e))&&(e=`h${Math.min(+String(e)[1]+3,6)}`);let o=null;if(this.useExtendedMarkdown){if(String(e)==="code"&&!vn.value&&t?.class?.includes("language")&&jh(),String(e)==="pre"&&r&&String(r.type)==="code"){const l=this.parentId+"-code-block-"+$t();return Y("p",{class:"rich-text__code-block"},[Y(e,{...t,id:l},r),Y(Lh,{class:"rich-text__code-block-button",contentId:l})])}if(String(e)==="li"&&Array.isArray(r)&&r.length!==0&&r[0].type==="input"&&r[0].props.type==="checkbox"){const[l,,...s]=r,a=s.findIndex(d=>["ul","ol","li","blockquote","pre"].includes(d.type));a!==-1&&(o=s[a],s.splice(a));const c=this.parentId+"-markdown-input-"+$t(),f={...l.props};delete f.checked;const u=Y(qo,{...f,modelValue:l.props.checked,id:c,disabled:!this.interactive,"onUpdate:modelValue":()=>{this.$emit("interactTodo",c)}},{default:()=>s});return Y(e,t,[u,o])}}if(String(e)==="a"){const l=ui(this.$router,t.href);return l?(delete t.href,delete t.target,Y(ii,{...t,to:l},{default:()=>r})):/^(https?:\/\/|tel:|mailto:)/.test(t.href)?(t.href=t.href.trim(),Y(fl,t,r)):(delete t.href,delete t.target,Y("span",t,r))}return Y(e,t,r)}const i=this.arguments[e.slice(1)];return i?i.component?Y(typeof i.component=="string"?H(i.component):i.component,{...t,...i.props,class:"rich-text--component"},{default:()=>r}):Y("span",{...t},[i]):Y("span",{...t,class:"rich-text--fallback"},[`{${e.slice(1)}}`])}},render(){return this.useMarkdown||this.useExtendedMarkdown?this.renderMarkdown():this.renderPlaintext()}},Xr=ge(Bh,[["__scopeId","data-v-76a4a548"]]),em=Object.freeze(Object.defineProperty({__proto__:null,NcCustomPickerRenderResult:wl,NcReferenceList:At,NcReferencePicker:wi,NcReferencePickerModal:Si,NcReferenceWidget:Pn,NcRichText:Xr,NcSearch:bi,anyLinkProviderId:Sn,default:Xr,getLinkWithPicker:Ds,getProvider:vi,getProviders:Cn,isCustomPickerElementRegistered:nt,isWidgetRegistered:hi,registerCustomPickerElement:mi,registerWidget:pi,renderCustomPickerElement:gi,renderWidget:di,searchProvider:xi,sortProviders:ki},Symbol.toStringTag,{value:"Module"}));export{wl as N,mi as a,Xr as b,_i as c,Ds as g,em as i,pi as r,xi as s,xt as v}; -//# sourceMappingURL=index-C_wPY1fR.chunk.mjs.map +`))}function a(p,g,k,w){const y=k.enter("tableCell"),C=k.enter("phrasing"),I=k.containerPhrasing(p,{...w,before:o,after:o});return C(),y(),I}function c(p,g){return Gp(p,{align:g,alignDelimiters:r,padding:n,stringLength:i})}function f(p,g,k){const w=p.children;let y=-1;const C=[],I=g.enter("table");for(;++yi?0:i+t:t=t>i?i:t,n=n>0?n:0,r.length<1e4)l=Array.from(r),l.unshift(t,n),e.splice(...l);else for(n&&e.splice(t,n);o0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}function ih(e,t,n){const r=[];let i=-1;for(;++i999||u===93&&!l||u===null||u===91||se(u))return n(u);if(u===93){e.exit("chunkString");const d=e.exit("gfmFootnoteCallString");return i.includes(It(r.sliceSerialize(d)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(u),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(u)}return se(u)||(l=!0),o++,e.consume(u),u===92?f:c}function f(u){return u===91||u===92||u===93?(e.consume(u),o++,c):c(u)}}function ph(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o,l=0,s;return a;function a(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),c}function c(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",f):n(g)}function f(g){if(l>999||g===93&&!s||g===null||g===91||se(g))return n(g);if(g===93){e.exit("chunkString");const k=e.exit("gfmFootnoteDefinitionLabelString");return o=It(r.sliceSerialize(k)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),d}return se(g)||(s=!0),l++,e.consume(g),g===92?u:f}function u(g){return g===91||g===92||g===93?(e.consume(g),l++,f):f(g)}function d(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),i.includes(o)||i.push(o),Oe(e,p,"gfmFootnoteDefinitionWhitespace")):n(g)}function p(g){return t(g)}}function dh(e,t,n){return e.check(oh,t,e.attempt(sh,t,n))}function hh(e){e.exit("gfmFootnoteDefinition")}function mh(e,t,n){const r=this;return Oe(e,i,"gfmFootnoteDefinitionIndent",5);function i(o){const l=r.events[r.events.length-1];return l&&l[1].type==="gfmFootnoteDefinitionIndent"&&l[2].sliceSerialize(l[1],!0).length===4?t(o):n(o)}}function gh(e){let t=(e||{}).singleTilde;const n={name:"strikethrough",tokenize:i,resolveAll:r};return t==null&&(t=!0),{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(o,l){let s=-1;for(;++s1?s(p):(o.consume(p),f++,d);if(f<2&&!t)return s(p);const k=o.exit("strikethroughSequenceTemporary"),w=Mt(p);return k._open=!w||w===2&&!!g,k._close=!g||g===2&&!!w,l(p)}}}class yh{constructor(){this.map=[]}add(t,n,r){vh(this,t,n,r)}consume(t){if(this.map.sort(function(o,l){return o[0]-l[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let i=r.pop();for(;i;){for(const o of i)t.push(o);i=r.pop()}this.map.length=0}}function vh(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i-1;){const E=r.events[T][1].type;if(E==="lineEnding"||E==="linePrefix")T--;else break}const L=T>-1?r.events[T][1].type:null,O=L==="tableHead"||L==="tableRow"?b:a;return O===b&&r.parser.lazy[r.now().line]?n(v):O(v)}function a(v){return e.enter("tableHead"),e.enter("tableRow"),c(v)}function c(v){return v===124||(l=!0,o+=1),f(v)}function f(v){return v===null?n(v):Xe(v)?o>1?(o=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(v),e.exit("lineEnding"),p):n(v):Le(v)?Oe(e,f,"whitespace")(v):(o+=1,l&&(l=!1,i+=1),v===124?(e.enter("tableCellDivider"),e.consume(v),e.exit("tableCellDivider"),l=!0,f):(e.enter("data"),u(v)))}function u(v){return v===null||v===124||se(v)?(e.exit("data"),f(v)):(e.consume(v),v===92?d:u)}function d(v){return v===92||v===124?(e.consume(v),u):u(v)}function p(v){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(v):(e.enter("tableDelimiterRow"),l=!1,Le(v)?Oe(e,g,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(v):g(v))}function g(v){return v===45||v===58?w(v):v===124?(l=!0,e.enter("tableCellDivider"),e.consume(v),e.exit("tableCellDivider"),k):N(v)}function k(v){return Le(v)?Oe(e,w,"whitespace")(v):w(v)}function w(v){return v===58?(o+=1,l=!0,e.enter("tableDelimiterMarker"),e.consume(v),e.exit("tableDelimiterMarker"),y):v===45?(o+=1,y(v)):v===null||Xe(v)?_(v):N(v)}function y(v){return v===45?(e.enter("tableDelimiterFiller"),C(v)):N(v)}function C(v){return v===45?(e.consume(v),C):v===58?(l=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(v),e.exit("tableDelimiterMarker"),I):(e.exit("tableDelimiterFiller"),I(v))}function I(v){return Le(v)?Oe(e,_,"whitespace")(v):_(v)}function _(v){return v===124?g(v):v===null||Xe(v)?!l||i!==o?N(v):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(v)):N(v)}function N(v){return n(v)}function b(v){return e.enter("tableRow"),z(v)}function z(v){return v===124?(e.enter("tableCellDivider"),e.consume(v),e.exit("tableCellDivider"),z):v===null||Xe(v)?(e.exit("tableRow"),t(v)):Le(v)?Oe(e,z,"whitespace")(v):(e.enter("data"),A(v))}function A(v){return v===null||v===124||se(v)?(e.exit("data"),z(v)):(e.consume(v),v===92?B:A)}function B(v){return v===92||v===124?(e.consume(v),A):A(v)}}function wh(e,t){let n=-1,r=!0,i=0,o=[0,0,0,0],l=[0,0,0,0],s=!1,a=0,c,f,u;const d=new yh;for(;++nn[2]+1){const g=n[2]+1,k=n[3]-n[2]-1;e.add(g,k,[])}}e.add(n[3]+1,0,[["exit",u,t]])}return i!==void 0&&(o.end=Object.assign({},Je(t.events,i)),e.add(i,0,[["exit",o,t]]),o=void 0),o}function Jr(e,t,n,r,i){const o=[],l=Je(t.events,n);i&&(i.end=Object.assign({},l),o.push(["exit",i,t])),r.end=Object.assign({},l),o.push(["exit",r,t]),e.add(n+1,0,o)}function Je(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const Sh={name:"tasklistCheck",tokenize:Ih};function Ch(){return{text:{91:Sh}}}function Ih(e,t,n){const r=this;return i;function i(a){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(a):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(a),e.exit("taskListCheckMarker"),o)}function o(a){return se(a)?(e.enter("taskListCheckValueUnchecked"),e.consume(a),e.exit("taskListCheckValueUnchecked"),l):a===88||a===120?(e.enter("taskListCheckValueChecked"),e.consume(a),e.exit("taskListCheckValueChecked"),l):n(a)}function l(a){return a===93?(e.enter("taskListCheckMarker"),e.consume(a),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),s):n(a)}function s(a){return Xe(a)?t(a):Le(a)?e.check({tokenize:Ph},t,n)(a):n(a)}}function Ph(e,t,n){return Oe(e,r,"whitespace");function r(i){return i===null?n(i):t(i)}}function Eh(e){return Hd([Kd(),ah(),gh(e),xh(),Ch()])}const _h={};function Th(e){const t=this,n=e||_h,r=t.data(),i=r.micromarkExtensions||(r.micromarkExtensions=[]),o=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),l=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);i.push(Eh(n)),o.push(Ud()),l.push($d(n))}const Lh=ti({__name:"NcRichTextCopyButton",props:{contentId:{}},setup(e){const{copy:t,icon:n,altText:r}=vl(()=>document.getElementById(e.contentId).textContent);return(i,o)=>(R(),J(xn,{variant:"tertiary",size:"small","aria-label":ht(r),title:ht(r),onClick:ht(t)},{icon:de(()=>[ne(il,{path:ht(n),inline:""},null,8,["path"])]),_:1},8,["aria-label","title","onClick"]))}});function Oh(e){return e.type==="text"}const Ah=function(e){$e(e,Oh,(t,n)=>{const r=n.at(-1),i=r.children.indexOf(t),o=t.value.split(/(\{[a-z\-_.0-9]+\})/ig).map(l=>{const s=l.match(/^\{([a-z\-_.0-9]+)\}$/i);if(!s)return rr("text",l);const[,a]=s;return rr("element",{tagName:`#${a}`,children:[]})});r.children.splice(i,1,...o)})},Rh=()=>Ah;function Dh(e){return["code","inlineCode"].includes(e.type)}const Mh=function(){return function(e){$e(e,Dh,(t,n)=>{const r=n.at(-1),i=r.children.indexOf(t);return r.children.splice(i,1,{...t,value:""}),[fi,i+1]})}};function Fh(e){return["text","code","inlineCode"].includes(e.type)}const zh=function(){return function(e){$e(e,Fh,(t,n)=>{const r=n.at(-1),i=r.children.indexOf(t);return r.children.splice(i,1,{...t,value:t.value.replace(/</gmi,"<").replace(/>/gmi,">")}),[fi,i+1]})}},Nh=["http","https","mailto","tel"],vn=mt(null);async function jh(){const e=await Vo(()=>import("./index-DzL3ZhYR.chunk.mjs"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]),import.meta.url);vn.value=e.default}const Bh={name:"NcRichText",components:{NcReferenceList:At},props:{text:{type:String,default:""},arguments:{type:Object,default:()=>({})},referenceLimit:{type:Number,default:0},referenceInteractive:{type:Boolean,default:!0},referenceInteractiveOptIn:{type:Boolean,default:!1},references:{type:Array,default:null},useMarkdown:{type:Boolean,default:!1},useExtendedMarkdown:{type:Boolean,default:!1},interactive:{type:Boolean,default:!1},autolink:{type:Boolean,default:!0}},emits:["interactTodo"],data(){return{parentId:$t()}},methods:{renderPlaintext(){const e=this.text.split(/(\{[a-z\-_.0-9]+\})/ig).map(t=>{const n=t.match(/^\{([a-z\-_.0-9]+)\}$/i);if(!n)return this.prepareTextNode(t);const r=n[1],i=this.arguments[r];if(typeof i=="object"){const{component:o,props:l}=i;return Y(typeof o=="string"?H(o):o,{...l,class:"rich-text--component"})}return i?Y("span",{class:"rich-text--fallback"},i):t});return Y("div",{class:"rich-text--wrapper"},[Y("div",{},e.flat()),this.referenceLimit>0?Y("div",{class:"rich-text--reference-widget"},[Y(At,{text:this.text,referenceData:this.references,interactive:this.referenceInteractive,interactiveOptIn:this.referenceInteractiveOptIn})]):null])},renderMarkdown(){const e=jr().use(Lr).use(dl,{autolink:this.autolink,useMarkdown:this.useMarkdown,useExtendedMarkdown:this.useExtendedMarkdown}).use(zh).use(this.useExtendedMarkdown?Th:void 0).use(Ja).use(Nf,{except:Nh}).use(Ff,{handlers:{component(t,n){return t(n,n.component,{value:n.value})}}}).use(this.useExtendedMarkdown?vn.value:void 0).use(Rh).use(Zs,{target:"_blank",rel:["noopener noreferrer"]}).use($a,{Fragment:ri,jsx:this.createElement,jsxs:this.createElement,elementAttributeNameCase:"html",prefix:!1}).processSync(this.text.replace(/<[^>]+>/g,t=>t.replace(/")).result;return Y("div",{class:"rich-text--wrapper rich-text--wrapper-markdown"},[e,this.referenceLimit>0?Y("div",{class:"rich-text--reference-widget"},[Y(At,{text:this.prepareReferenceSource(this.text),referenceData:this.references,interactive:this.referenceInteractive,interactiveOptIn:this.referenceInteractiveOptIn})]):null])},prepareTextNode(e){return this.autolink&&(e=pl(e)),Array.isArray(e)?e.map(t=>{if(typeof t=="string")return t;const{component:n,props:r}=t;return Y(n,{...r,class:"rich-text--component"})}):e},prepareReferenceSource(e){if(!this.useMarkdown&&!this.useExtendedMarkdown)return e;const t=jr();return t.compiler=n=>zt(n),t.use(Lr).use(Mh).processSync(e.replace(/\s/g," ")).value},createElement(e,t,n){n&&(t.key=n);const r=t.children??[];if(delete t.children,!String(e).startsWith("#")){["h1","h2","h3","h4","h5","h6"].includes(String(e))&&(e=`h${Math.min(+String(e)[1]+3,6)}`);let o=null;if(this.useExtendedMarkdown){if(String(e)==="code"&&!vn.value&&t?.class?.includes("language")&&jh(),String(e)==="pre"&&r&&String(r.type)==="code"){const l=this.parentId+"-code-block-"+$t();return Y("p",{class:"rich-text__code-block"},[Y(e,{...t,id:l},r),Y(Lh,{class:"rich-text__code-block-button",contentId:l})])}if(String(e)==="li"&&Array.isArray(r)&&r.length!==0&&r[0].type==="input"&&r[0].props.type==="checkbox"){const[l,,...s]=r,a=s.findIndex(d=>["ul","ol","li","blockquote","pre"].includes(d.type));a!==-1&&(o=s[a],s.splice(a));const c=this.parentId+"-markdown-input-"+$t(),f={...l.props};delete f.checked;const u=Y(qo,{...f,modelValue:l.props.checked,id:c,disabled:!this.interactive,"onUpdate:modelValue":()=>{this.$emit("interactTodo",c)}},{default:()=>s});return Y(e,t,[u,o])}}if(String(e)==="a"){const l=ui(this.$router,t.href);return l?(delete t.href,delete t.target,Y(ii,{...t,to:l},{default:()=>r})):/^(https?:\/\/|tel:|mailto:)/.test(t.href)?(t.href=t.href.trim(),Y(fl,t,r)):(delete t.href,delete t.target,Y("span",t,r))}return Y(e,t,r)}const i=this.arguments[e.slice(1)];return i?i.component?Y(typeof i.component=="string"?H(i.component):i.component,{...t,...i.props,class:"rich-text--component"},{default:()=>r}):Y("span",{...t},[i]):Y("span",{...t,class:"rich-text--fallback"},[`{${e.slice(1)}}`])}},render(){return this.useMarkdown||this.useExtendedMarkdown?this.renderMarkdown():this.renderPlaintext()}},Xr=ge(Bh,[["__scopeId","data-v-76a4a548"]]),em=Object.freeze(Object.defineProperty({__proto__:null,NcCustomPickerRenderResult:wl,NcReferenceList:At,NcReferencePicker:wi,NcReferencePickerModal:Si,NcReferenceWidget:Pn,NcRichText:Xr,NcSearch:bi,anyLinkProviderId:Sn,default:Xr,getLinkWithPicker:Ds,getProvider:vi,getProviders:Cn,isCustomPickerElementRegistered:nt,isWidgetRegistered:hi,registerCustomPickerElement:mi,registerWidget:pi,renderCustomPickerElement:gi,renderWidget:di,searchProvider:xi,sortProviders:ki},Symbol.toStringTag,{value:"Module"}));export{wl as N,mi as a,Xr as b,_i as c,Ds as g,em as i,pi as r,xi as s,xt as v}; +//# sourceMappingURL=index-BrjNu3x_.chunk.mjs.map diff --git a/dist/index-C_wPY1fR.chunk.mjs.license b/dist/index-BrjNu3x_.chunk.mjs.license similarity index 100% rename from dist/index-C_wPY1fR.chunk.mjs.license rename to dist/index-BrjNu3x_.chunk.mjs.license diff --git a/dist/index-C_wPY1fR.chunk.mjs.map b/dist/index-BrjNu3x_.chunk.mjs.map similarity index 99% rename from dist/index-C_wPY1fR.chunk.mjs.map rename to dist/index-BrjNu3x_.chunk.mjs.map index 0bf1ff2afa7..af547b36303 100644 --- a/dist/index-C_wPY1fR.chunk.mjs.map +++ b/dist/index-BrjNu3x_.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"mappings":"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","names":["register","t22","DELAY","useCopy","content","isCopied","ref","icon","computed","mdiCheck","mdiContentCopy","altText","t","copy","value","toValue","id","callback","onDestroy","props","registerWidget","propsWithDefaults","logger","renderWidget","el","options","richObjectType","richObject","accessible","interactive","destroyWidget","isWidgetRegistered","hasInteractiveView","hasFullWidth","registerCustomPickerElement","NcCustomPickerRenderResult","element","object","isCustomPickerElementRegistered","getCustomPickerElementSize","size","renderCustomPickerElement","providerId","destroyCustomPickerElement","renderResult","_sfc_main$9","_hoisted_1$9","_hoisted_2$7","_hoisted_3$6","_hoisted_4$5","_sfc_render$8","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","mergeProps","$event","createElementVNode","toDisplayString","createCommentVNode","ArrowLeftIcon","_export_sfc","_sfc_main$8","renderFunctionResult","result","e","_hoisted_1$8","_sfc_render$7","NcCustomPickerElement","_sfc_main$7","_hoisted_1$7","_hoisted_2$6","_hoisted_3$5","_hoisted_4$4","_sfc_render$6","LinkVariantIcon","t8","anyLinkProviderId","anyLinkProvider","imagePath","loadState","getProvider","getProviders","p","keep","sortProviders","providerList","timestamps","a","b","ta","tb","searchProvider","query","limit","providers","escapedQuery","regexp","filteredSortedProviders","searchResult","touchProvider","timestamp","url","generateOcsUrl","axios","t41","t46","isUrl","str","_sfc_main$6","NcSelect","_sfc_main$a","NcEmptyContent","_hoisted_1$6","_hoisted_2$5","_hoisted_3$4","_hoisted_4$3","_sfc_render$5","_component_LinkVariantIcon","resolveComponent","_component_NcHighlight","_component_NcSelect","_component_NcEmptyContent","createVNode","withCtx","option","NcProviderList","t24","_hoisted_1$5","_hoisted_2$4","_hoisted_3$3","_hoisted_4$2","IDLE_TIMEOUT","_sfc_main$5","defineComponent","__props","router","inject","routerKey","isVisible","customWidget","useTemplateRef","widgetRoot","width","useElementSize","useIntersectionObserver","entry","nextTick","showInteractive","rendered","idleTimeout","isInteractive","referenceHasFullWidth","hasCustomWidget","referenceHasInteractiveView","noAccess","numberOfLines","max","descriptionStyle","lineClamp","compactLink","link","route","getRoute","referenceWidgetLinkComponent","RouterLink","referenceWidgetLinkProps","watch","val","destroyReferenceWidget","renderReferenceWidget","onBeforeUnmount","enableInteractive","widget","normalizeClass","createBlock","resolveDynamicComponent","normalizeStyle","NcButton","createTextVNode","unref","NcReferenceWidget","t25","_sfc_main$4","NcLoadingIcon","_sfc_main$b","debounce","response","error","_hoisted_1$4","_hoisted_2$3","_hoisted_3$2","_sfc_render$4","_component_NcLoadingIcon","_component_NcTextField","_component_NcReferenceWidget","withKeys","NcRawLinkInput","_sfc_main$3","_hoisted_1$3","_hoisted_2$2","_hoisted_3$1","_hoisted_4$1","_hoisted_5$1","_sfc_render$3","NcSearchResult","t32","t43","LIMIT","_sfc_main$2","IconDotsHorizontal","results","pid","providerEntriesWithId","index","resultsBySearchProvider","item","searchProviderId","searchPromises","promises","cursor","data","_hoisted_1$2","_hoisted_2$1","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_sfc_render$2","_component_NcSearchResult","_component_DotsHorizontalIcon","NcSearch","MODES","_sfc_main$1","provider","_hoisted_1$1","_sfc_render$1","_component_NcProviderList","_component_NcRawLinkInput","_component_NcSearch","_component_NcCustomPickerElement","withModifiers","args","NcReferencePicker","t12","t19","_sfc_main","NcModal","IconClose","elem","emit","_hoisted_1","_hoisted_2","_sfc_render","_component_ArrowLeftIcon","_component_NcButton","_component_CloseIcon","_component_NcReferencePicker","_component_NcModal","NcReferencePickerModal","getLinkWithPicker","isInsideViewer","modalId","modalElement","promise","reject","resolve","initialProvider","view","createApp","emptyOptions","toString","settings","includeImageAlt","includeHtml","one","node","all","values","VOID","PRIMITIVE","ARRAY","OBJECT","DATE","REGEXP","MAP","SET","ERROR","BIGINT","env","deserializer","$","_","as","out","unpair","type","arr","key","source","flags","map","set","name","message","buffer","deserialize","serialized","EMPTY","keys","typeOf","asString","shouldSkip","TYPE","serializer","strict","json","pair","spread","entries","serialize","lossy","structuredClone$1","any","convertElement","test","tagNameFactory","anyFactory","castFactory","tests","checks","parameters","check","tagName","testFunction","parent","looksLikeAnElement","ABSOLUTE_URL_REGEX","WINDOWS_PATH_REGEX","isAbsoluteUrl","parse","input","stringify","visit","tree","testOrVisitor","visitorOrReverse","maybeReverse","reverse","visitor","visitParents","overload","parents","defaultProtocols","defaultRel","rehypeExternalLinks","protocols","is","contentRaw","createIfNeeded","relRaw","rel","target","properties","structuredClone","nameRe","nameReJsx","re","whitespace","thing","empty","Schema","property","normal","space","merge","definitions","definition","normalize","Info","attribute","powers","boolean","increment","booleanish","overloadedBoolean","number","spaceSeparated","commaSeparated","commaOrSpaceSeparated","types","DefinedInfo","mask","mark","create","normals","info","aria","caseSensitiveTransform","attributes","caseInsensitiveTransform","html","svg","xlink","xmlns","xml","hastToReact","cap","dash","valid","find","schema","Type","rest","camelcase","dashes","kebab","$0","htmlBase","svgBase","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","NEWLINE","FORWARD_SLASH","ASTERISK","EMPTY_STRING","TYPE_COMMENT","TYPE_DECLARATION","inlineStyleParser","style","lineno","column","updatePosition","lines","i","position","start","Position","msg","err","match","m","comments","rules","c","comment","pos","declaration","prop","ret","trim","declarations","decls","decl","__importDefault","this","mod","cjs","StyleToObject","inline_style_parser_1","require$$0","iterator","styleObject","hasIterator","utilities","CUSTOM_PROPERTY_REGEX","HYPHEN_REGEX","NO_HYPHEN_REGEX","VENDOR_PREFIX_REGEX","MS_VENDOR_PREFIX_REGEX","skipCamelCase","capitalize","character","trimHyphen","prefix","camelCase","style_to_object_1","utilities_1","require$$1","StyleToJS","output","pointEnd","point","pointStart","end","stringifyPosition","VFileMessage","causeOrReason","optionsOrParentOrPlace","origin","reason","legacyCause","own","emptyMap","tableElements","tableCellElement","docs","toJsxRuntime","filePath","developmentCreate","productionCreate","state","mdxExpression","mdxJsxElement","mdxEsm","root","text","parentSchema","findComponentFromName","createElementProps","children","createChildren","child","addNode","addChildren","expression","assert","crashEstree","createJsxElementProps","jsx","jsxs","fn","jsxDEV","isStaticChildren","alignValue","createProperty","objectExpression","countsByName","count","commas","spaces","parseStyle","transformStylesToCssCasing","styleToJs","cause","allowExpression","identifiers","isIdentifierName","place","domCasing","cssCasing","from","transformStyleToCssCasing","to","toDash","rehypeReact","self","compiler","file","escapeStringRegexp","string","findAndReplace","list","ignored","convert","pairs","toPairs","pairIndex","grandparent","siblings","handler","replace","change","nodes","matchObject","tupleOrList","tuple","toExpression","toFunction","escape","newlineToBreak","remarkBreaks","decodeNamedCharacterReference","characterReference","splice","remove","items","chunkStart","push","hasOwnProperty","combineExtensions","extensions","syntaxExtension","extension","hook","left","right","code","constructs","existing","before","decodeNumericCharacterReference","base","normalizeIdentifier","asciiAlpha","regexCheck","asciiAlphanumeric","asciiAtext","asciiControl","asciiDigit","asciiHexDigit","asciiPunctuation","markdownLineEnding","markdownLineEndingOrSpace","markdownSpace","unicodePunctuation","unicodeWhitespace","regex","normalizeUri","skip","next","factorySpace","effects","ok","initializeContent","contentStart","afterContentStartConstruct","paragraphInitial","previous","lineStart","token","document","initializeDocument","containerConstruct","tokenizeContainer","stack","continued","childFlow","childToken","lineStartOffset","documentContinue","checkNewContainers","closeFlow","indexBeforeExits","indexBeforeFlow","exitContainers","documentContinued","flowStart","thereIsANewContainer","thereIsNoNewContainer","containerContinue","flowContinue","writeToChild","endOfFile","stream","seen","nok","classifyCharacter","resolveAll","events","context","called","attention","resolveAllAttention","tokenizeAttention","open","group","openingSequence","closingSequence","use","nextEvents","offset","movePoint","attentionMarkers","marker","inside","after","close","autolink","tokenizeAutolink","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","blankLine","tokenizeBlankLine","blockQuote","tokenizeBlockQuoteContinuation","exit","tokenizeBlockQuoteStart","contStart","contBefore","characterEscape","tokenizeCharacterEscape","tokenizeCharacterReference","numeric","nonLazyContinuation","tokenizeNonLazyContinuation","codeFenced","tokenizeCodeFenced","closeStart","tokenizeCloseStart","initialPrefix","sizeOpen","beforeSequenceOpen","tail","sequenceOpen","infoBefore","atNonLazyBreak","metaBefore","meta","contentBefore","beforeContentChunk","contentChunk","startBefore","beforeSequenceClose","sequenceClose","sequenceCloseAfter","codeIndented","tokenizeCodeIndented","furtherStart","tokenizeFurtherStart","afterPrefix","atBreak","codeText","resolveCodeText","tokenizeCodeText","tailExitIndex","headEnterIndex","enter","between","SpliceBuffer","initial","stop","deleteCount","removed","chunkedPush","n","subtokenize","eventsArray","jumps","event","lineIndex","otherIndex","otherEvent","subevents","more","subcontent","eventIndex","startPosition","startPositions","tokenizer","childEvents","gaps","current","adjust","breaks","slice","resolveContent","tokenizeContent","continuationConstruct","tokenizeContinuation","chunkInside","contentEnd","contentContinue","startLookahead","prefixed","factoryDestination","literalType","literalMarkerType","rawType","stringType","balance","enclosedBefore","raw","enclosed","enclosedEscape","rawEscape","factoryLabel","markerType","labelInside","labelEscape","factoryTitle","begin","factoryWhitespace","tokenizeDefinition","titleBefore","tokenizeTitleBefore","identifier","labelAfter","markerAfter","destinationBefore","destinationAfter","afterWhitespace","beforeMarker","titleAfter","titleAfterOptionalWhitespace","hardBreakEscape","tokenizeHardBreakEscape","headingAtx","resolveHeadingAtx","tokenizeHeadingAtx","sequenceFurther","htmlBlockNames","htmlRawNames","htmlFlow","resolveToHtmlFlow","tokenizeHtmlFlow","blankLineBefore","tokenizeBlankLineBefore","nonLazyContinuationStart","tokenizeNonLazyContinuationStart","closingTag","markerB","declarationOpen","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","continuation","slash","basicSelfClosing","completeClosingTagAfter","completeAttributeNameBefore","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCdataInside","continuationAfter","continuationStart","continuationStartNonLazy","continuationBefore","continuationRawEndTag","htmlText","tokenizeHtmlText","returnState","instruction","tagOpen","commentEnd","commentClose","lineEndingBefore","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","lineEndingAfter","lineEndingAfterPrefix","labelEnd","resolveAllLabelEnd","resolveToLabelEnd","tokenizeLabelEnd","resourceConstruct","tokenizeResource","referenceFullConstruct","tokenizeReferenceFull","referenceCollapsedConstruct","tokenizeReferenceCollapsed","newEvents","media","label","labelStart","defined","labelEndNok","labelEndOk","referenceNotFull","resourceStart","resourceBefore","resourceOpen","resourceEnd","resourceDestinationAfter","resourceDestinationMissing","resourceBetween","resourceTitleAfter","referenceFull","referenceFullAfter","referenceFullMissing","referenceCollapsedStart","referenceCollapsedOpen","labelStartImage","tokenizeLabelStartImage","labelStartLink","tokenizeLabelStartLink","lineEnding","tokenizeLineEnding","thematicBreak","tokenizeThematicBreak","sequence","tokenizeListContinuation","tokenizeListEnd","tokenizeListStart","listItemPrefixWhitespaceConstruct","tokenizeListItemPrefixWhitespace","indentConstruct","tokenizeIndent","initialSize","kind","atMarker","onBlank","endOfPrefix","otherPrefix","notBlank","notInCurrentItem","setextUnderline","resolveToSetextUnderline","tokenizeSetextUnderline","heading","paragraph","flow","initializeFlow","atBlankEnding","afterConstruct","resolver","createResolver","initializeFactory","field","resolveAllLineSuffixes","initializeText","notText","extraResolver","resolveAllText","chunks","bufferIndex","tabs","chunk","contentInitial","flowInitial","insideSpan","resolveText","disable","createTokenizer","parser","initialize","columnStart","resolveAllConstructs","constructFactory","onsuccessfulconstruct","onsuccessfulcheck","consume","defineSkip","now","sliceSerialize","sliceStream","write","main","addResult","expandTabs","serializeChunks","sliceChunks","_bufferIndex","_index","line","accountForPotentialSkip","chunkIndex","go","fields","construct","onreturn","bogusState","listOfConstructs","constructIndex","currentConstruct","handleListOfConstructs","handleMapOfConstructs","handleConstruct","store","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","restore","startIndex","startBufferIndex","endIndex","endBufferIndex","head","atTab","defaultConstructs","creator","postprocess","search","preprocess","atCarriageReturn","preprocessor","encoding","endPosition","characterEscapeOrReference","decodeString","decode","$1","$2","hex","fromMarkdown","config","opener","onenterdata","codeFlow","emphasis","hardBreak","image","listItem","onenterlistitemvalue","onenterlistordered","onenterreference","strong","closer","onexitatxheadingsequence","onexitautolinkemail","onexitautolinkprotocol","onexitdata","onexitcharacterreferencemarker","onexitcharacterreferencevalue","onexitcharacterreference","onexitcodefenced","onexitcodefencedfence","onexitcodefencedfenceinfo","onexitcodefencedfencemeta","onexitcodeindented","onexitcodetext","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexithardbreak","onexithtmlflow","onexithtmltext","onexitimage","onexitlabel","onexitlabeltext","onexitlineending","onexitlink","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","onexitresource","onexitsetextheading","onexitsetextheadinglinesequence","onexitsetextheadingtext","configure","compile","resume","listStack","prepareList","defaultOnError","length","containerBalance","listSpread","firstBlankLineIndex","tailIndex","tailEvent","and","errorHandler","onExitError","ancestor","depth","referenceType","fragment","d","combined","remarkParse","doc","blockquote","language","strikethrough","footnoteReference","clobberPrefix","safeId","counter","reuseCounter","sup","revert","subtype","suffix","contents","imageReference","inlineCode","linkReference","loose","listLoose","listItemLoose","table","rows","firstRow","tableContent","body","tableRow","align","cellIndex","cells","cell","tableCell","tab","trimLines","last","trimLine","handlers","ignore","defaultFootnoteBackContent","rereferenceIndex","defaultFootnoteBackLabel","referenceIndex","footer","footnoteBackContent","footnoteBackLabel","footnoteLabel","footnoteLabelTagName","footnoteLabelProperties","listItems","backReferences","counts","tailTail","createState","definitionById","footnoteById","footnoteCounts","defaultHandlers","applyData","patch","wrap","handle","shallow","defaultUnknownHandler","trimMarkdownSpaceStart","hName","hChildren","hProperties","toHast","foot","remarkRehype","destination","hastTree","squeezeParagraphs","remarkUnlinkProtocols","proto","bail","hasOwn","toStr","defineProperty","gOPD","isArray","isPlainObject","obj","hasOwnConstructor","hasIsPrototypeOf","setProperty","getProperty","extend","src","copyIsArray","clone","deep","prototype","trough","fns","pipeline","run","middlewareIndex","middelware","middleware","wrapped","fnExpectsCallback","done","exception","then","minpath","basename","dirname","extname","join","path","assertPath","seenNonSlash","firstNonSlashEnd","extnameIndex","unmatchedSlash","startPart","startDot","preDotState","segments","joined","absolute","normalizeString","allowAboveRoot","lastSegmentLength","lastSlash","dots","lastSlashIndex","minproc","cwd","fileUrlOrPath","urlToPath","getPathFromURLPosix","pathname","third","order","VFile","isUint8Array","assertNonEmpty","assertPart","stem","part","CallableInstance","apply","Processor","attacher","assertUnfrozen","transformer","realFile","vfile","assertParser","assertCompiler","executor","parseTree","realDone","compileTree","compileResult","looksLikeAValue","complete","assertDone","assertNode","transformers","outputTree","resultingTree","attachers","namespace","addPlugin","addList","addPreset","add","plugin","plugins","entryIndex","primary","currentPrimary","isPlainObj","unified","frozen","asyncName","looksLikeAVFile","URL_PATTERN","isPublic","getCurrentUser","getSharingToken","Fragment","renderList","reference","NcReferenceList","ccount","code2","propertiesFactory","typeFactory","index2","checkAsRecord","nodeAsRecord","looksLikeANode","list2","replace2","inConstruct","notInConstruct","gfmAutolinkLiteralFromMarkdown","transformGfmAutolinkLiterals","enterLiteralAutolink","enterLiteralAutolinkValue","exitLiteralAutolink","exitLiteralAutolinkEmail","exitLiteralAutolinkHttp","exitLiteralAutolinkWww","gfmAutolinkLiteralToMarkdown","findUrl","findEmail","protocol","domain2","path2","isCorrectDomain","parts","splitUrl","atext","trailExec","trail2","closingParenIndex","openingParens","closingParens","email","footnoteReferencePeek","enterFootnoteCallString","enterFootnoteCall","enterFootnoteDefinitionLabelString","enterFootnoteDefinition","exitFootnoteCallString","exitFootnoteCall","exitFootnoteDefinitionLabelString","exitFootnoteDefinition","tracker","exit2","subexit","gfmFootnoteFromMarkdown","gfmFootnoteToMarkdown","firstLineBlank","footnoteDefinition","mapAll","mapExceptFirst","blank","constructsWithoutStrikethrough","handleDelete","peekDelete","gfmStrikethroughFromMarkdown","enterStrikethrough","exitStrikethrough","gfmStrikethroughToMarkdown","defaultStringLength","markdownTable","stringLength","alignments","cellMatrix","sizeMatrix","longestCellByColumn","mostCellsPerRow","rowIndex","row2","sizes2","columnIndex2","columnIndex","toAlignment","row","sizes","map$1","patternInScope","pattern","listInScope","none","_1","longestStreak","substring","expected","formatCodeAsIndented","checkFence","code$1","exit3","value2","checkQuote","quote","checkEmphasis","encodeCharacterReference","encodeInfo","outside","outsideKind","insideKind","emphasisPeek","betweenHead","betweenTail","formatHeadingAsSetext","literalWithBreak","node2","EXIT","rank","subexit2","htmlPeek","imagePeek","imageReferencePeek","alt","inlineCodePeek","formatLinkAsAutolink","linkPeek","linkReferencePeek","text2","checkBullet","checkBulletOther","bullet","bulletOther","checkBulletOrdered","checkRule","bulletCurrent","useDifferentMarker","firstListItem","checkListItemIndent","listItemIndent","map2","phrasing","checkStrong","strongPeek","text$1","checkRuleRepetition","repetition","gfmTableFromMarkdown","enterTable","enterCell","enterRow","exitCodeText","exitTable","gfmTableToMarkdown","padding","alignDelimiters","around","inlineCodeWithTable","handleTable","handleTableCell","handleTableRow","serializeData","handleTableAsData","handleTableRowAsData","matrix","gfmTaskListItemFromMarkdown","exitCheck","exitParagraphWithTaskListItem","gfmTaskListItemToMarkdown","listItemWithTaskListItem","firstParaghraph","sibling","checkable","checkbox","gfmFromMarkdown","gfmToMarkdown","wwwPrefix","tokenizeWwwPrefix","domain","tokenizeDomain","tokenizePath","trail","tokenizeTrail","emailDomainDotTrail","tokenizeEmailDomainDotTrail","wwwAutolink","tokenizeWwwAutolink","previousWww","protocolAutolink","tokenizeProtocolAutolink","previousProtocol","emailAutolink","tokenizeEmailAutolink","previousEmail","gfmAutolinkLiteral","ok2","dot","gfmAtext","previousUnbalanced","emailDomain","emailDomainAfter","emailDomainDot","wwwStart","wwwAfter","protocolStart","protocolPrefixInside","protocolSlashesInside","afterProtocol","protocolAfter","wwwPrefixInside","wwwPrefixAfter","underscoreInLastSegment","underscoreInLastLastSegment","domainInside","domainAfter","domainAtPunctuation","sizeClose","pathInside","pathAtPunctuation","trailCharacterReferenceStart","trailBracketAfter","trailCharacterReferenceInside","constructs2","indent","gfmFootnote","tokenizeDefinitionStart","tokenizeDefinitionContinuation","gfmFootnoteDefinitionEnd","tokenizeGfmFootnoteCall","tokenizePotentialGfmFootnoteCall","resolveToPotentialGfmFootnoteCall","call","replacement","callStart","callData","callEscape","labelAtMarker","whitespaceAfter","gfmStrikethrough","single","tokenizeStrikethrough","resolveAllStrikethrough","previous2","EditMap","addImplementation","vecs","editMap","at","gfmTableAlign","inDelimiterRow","alignIndex","gfmTable","tokenizeTable","resolveTable","sizeB","bodyRowStart","headRowBefore","headRowStart","headRowBreak","headDelimiterStart","headRowData","headRowEscape","headDelimiterBefore","headDelimiterValueBefore","headDelimiterCellBefore","headDelimiterNok","headDelimiterLeftAlignmentAfter","headDelimiterCellAfter","headDelimiterFiller","headDelimiterRightAlignmentAfter","bodyRowBreak","bodyRowData","bodyRowEscape","inFirstCellAwaitingPipe","rowKind","lastCell","afterHeadAwaitingFirstBodyRow","lastTableEnd","currentTable","currentBody","currentCell","flushTableEnd","flushCell","range","rowEnd","previousCell","groupName","valueName","getPoint","relatedStart","relatedEnd","valueToken","tableBody","exits","related","side","tasklistCheck","tokenizeTasklistCheck","gfmTaskListItem","spaceThenNonSpace","gfm","remarkGfm","micromarkExtensions","fromMarkdownExtensions","toMarkdownExtensions","NcIconSvgWrapper","isTextNode$1","transformPlaceholders","ast","ancestors","placeholders","matches","u","component","remarkPlaceholder","isCodeNode","remarkStripCode","SKIP","isTextNode","remarkUnescape","LINK_PROTOCOLS","rehypeHighlight","importRehypeHighlightLibrary","module","__vitePreload","createElementId","argumentId","argument","h","renderedMarkdown","remarkAutolink","remark2rehype","rehype2react","parseUrl","processor","nestedNode","inputNode","labelParts","nestedNodeIndex","propsToForward","inputComponent","NcCheckboxRadioSwitch","NcRichTextExternalLink","placeholder","NcRichText"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141],"sources":["../node_modules/@nextcloud/vue/dist/chunks/useCopy-PckLYUAU.mjs","../node_modules/@nextcloud/vue/dist/chunks/customPickerElements-Cu7bLbap.mjs","../node_modules/@nextcloud/vue/dist/chunks/referencePickerModal-B4bsiMOy.mjs","../node_modules/mdast-util-to-string/lib/index.js","../node_modules/@ungap/structured-clone/esm/types.js","../node_modules/@ungap/structured-clone/esm/deserialize.js","../node_modules/@ungap/structured-clone/esm/serialize.js","../node_modules/@ungap/structured-clone/esm/index.js","../node_modules/hast-util-is-element/lib/index.js","../node_modules/is-absolute-url/index.js","../node_modules/space-separated-tokens/index.js","../node_modules/unist-util-visit/lib/index.js","../node_modules/rehype-external-links/lib/index.js","../node_modules/comma-separated-tokens/index.js","../node_modules/estree-util-is-identifier-name/lib/index.js","../node_modules/hast-util-whitespace/lib/index.js","../node_modules/property-information/lib/util/schema.js","../node_modules/property-information/lib/util/merge.js","../node_modules/property-information/lib/normalize.js","../node_modules/property-information/lib/util/info.js","../node_modules/property-information/lib/util/types.js","../node_modules/property-information/lib/util/defined-info.js","../node_modules/property-information/lib/util/create.js","../node_modules/property-information/lib/aria.js","../node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/property-information/lib/html.js","../node_modules/property-information/lib/svg.js","../node_modules/property-information/lib/xlink.js","../node_modules/property-information/lib/xmlns.js","../node_modules/property-information/lib/xml.js","../node_modules/property-information/lib/hast-to-react.js","../node_modules/property-information/lib/find.js","../node_modules/property-information/index.js","../node_modules/inline-style-parser/index.js","../node_modules/style-to-object/cjs/index.js","../node_modules/style-to-js/cjs/utilities.js","../node_modules/style-to-js/cjs/index.js","../node_modules/unist-util-position/lib/index.js","../node_modules/unist-util-stringify-position/lib/index.js","../node_modules/vfile-message/lib/index.js","../node_modules/hast-util-to-jsx-runtime/lib/index.js","../node_modules/rehype-react/lib/index.js","../node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js","../node_modules/mdast-util-find-and-replace/lib/index.js","../node_modules/mdast-util-newline-to-break/lib/index.js","../node_modules/remark-breaks/lib/index.js","../node_modules/decode-named-character-reference/index.dom.js","../node_modules/micromark-util-chunked/index.js","../node_modules/micromark-util-combine-extensions/index.js","../node_modules/micromark-util-decode-numeric-character-reference/index.js","../node_modules/micromark-util-normalize-identifier/index.js","../node_modules/micromark-util-character/index.js","../node_modules/micromark-util-sanitize-uri/index.js","../node_modules/micromark-factory-space/index.js","../node_modules/micromark/lib/initialize/content.js","../node_modules/micromark/lib/initialize/document.js","../node_modules/micromark-util-classify-character/index.js","../node_modules/micromark-util-resolve-all/index.js","../node_modules/micromark-core-commonmark/lib/attention.js","../node_modules/micromark-core-commonmark/lib/autolink.js","../node_modules/micromark-core-commonmark/lib/blank-line.js","../node_modules/micromark-core-commonmark/lib/block-quote.js","../node_modules/micromark-core-commonmark/lib/character-escape.js","../node_modules/micromark-core-commonmark/lib/character-reference.js","../node_modules/micromark-core-commonmark/lib/code-fenced.js","../node_modules/micromark-core-commonmark/lib/code-indented.js","../node_modules/micromark-core-commonmark/lib/code-text.js","../node_modules/micromark-util-subtokenize/lib/splice-buffer.js","../node_modules/micromark-util-subtokenize/index.js","../node_modules/micromark-core-commonmark/lib/content.js","../node_modules/micromark-factory-destination/index.js","../node_modules/micromark-factory-label/index.js","../node_modules/micromark-factory-title/index.js","../node_modules/micromark-factory-whitespace/index.js","../node_modules/micromark-core-commonmark/lib/definition.js","../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../node_modules/micromark-core-commonmark/lib/heading-atx.js","../node_modules/micromark-util-html-tag-name/index.js","../node_modules/micromark-core-commonmark/lib/html-flow.js","../node_modules/micromark-core-commonmark/lib/html-text.js","../node_modules/micromark-core-commonmark/lib/label-end.js","../node_modules/micromark-core-commonmark/lib/label-start-image.js","../node_modules/micromark-core-commonmark/lib/label-start-link.js","../node_modules/micromark-core-commonmark/lib/line-ending.js","../node_modules/micromark-core-commonmark/lib/thematic-break.js","../node_modules/micromark-core-commonmark/lib/list.js","../node_modules/micromark-core-commonmark/lib/setext-underline.js","../node_modules/micromark/lib/initialize/flow.js","../node_modules/micromark/lib/initialize/text.js","../node_modules/micromark/lib/constructs.js","../node_modules/micromark/lib/create-tokenizer.js","../node_modules/micromark/lib/parse.js","../node_modules/micromark/lib/postprocess.js","../node_modules/micromark/lib/preprocess.js","../node_modules/micromark-util-decode-string/index.js","../node_modules/mdast-util-from-markdown/lib/index.js","../node_modules/remark-parse/lib/index.js","../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../node_modules/mdast-util-to-hast/lib/handlers/break.js","../node_modules/mdast-util-to-hast/lib/handlers/code.js","../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../node_modules/mdast-util-to-hast/lib/handlers/html.js","../node_modules/mdast-util-to-hast/lib/revert.js","../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/image.js","../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/link.js","../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../node_modules/mdast-util-to-hast/lib/handlers/list.js","../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../node_modules/mdast-util-to-hast/lib/handlers/root.js","../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../node_modules/mdast-util-to-hast/lib/handlers/table.js","../node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../node_modules/trim-lines/index.js","../node_modules/mdast-util-to-hast/lib/handlers/text.js","../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../node_modules/mdast-util-to-hast/lib/handlers/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/mdast-util-to-hast/lib/state.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/remark-rehype/lib/index.js","../node_modules/mdast-squeeze-paragraphs/lib/index.js","../node_modules/remark-unlink-protocols/lib/index.js","../node_modules/bail/index.js","../node_modules/extend/index.js","../node_modules/is-plain-obj/index.js","../node_modules/trough/lib/index.js","../node_modules/vfile/lib/minpath.browser.js","../node_modules/vfile/lib/minproc.browser.js","../node_modules/vfile/lib/minurl.shared.js","../node_modules/vfile/lib/minurl.browser.js","../node_modules/vfile/lib/index.js","../node_modules/unified/lib/callable-instance.js","../node_modules/unified/lib/index.js","../node_modules/@nextcloud/vue/dist/chunks/NcRichText-BOBQq7Od.mjs"],"sourcesContent":["import { d as mdiCheck, e as mdiContentCopy } from \"./mdi-CpchYUUV.mjs\";\nimport { ref, computed, toValue } from \"vue\";\nimport { r as register, e as t22, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nregister(t22);\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst DELAY = 2e3;\nfunction useCopy(content) {\n const isCopied = ref(false);\n const icon = computed(() => isCopied.value ? mdiCheck : mdiContentCopy);\n const altText = computed(() => isCopied.value ? t(\"Copied\") : t(\"Copy to clipboard\"));\n async function copy() {\n if (isCopied.value) {\n return;\n }\n const value = toValue(content);\n try {\n await navigator.clipboard.writeText(value);\n } catch {\n prompt(\"\", value);\n }\n isCopied.value = true;\n setTimeout(() => {\n isCopied.value = false;\n }, DELAY);\n }\n return {\n isCopied,\n copy,\n icon,\n altText\n };\n}\nexport {\n useCopy as u\n};\n//# sourceMappingURL=useCopy-PckLYUAU.mjs.map\n","import { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nwindow._vue_richtext_widgets ??= {};\nwindow._registerWidget ??= (id, callback, onDestroy, props) => {\n registerWidget(id, callback, onDestroy, props);\n};\nfunction registerWidget(id, callback, onDestroy = () => {\n}, props) {\n const propsWithDefaults = {\n hasInteractiveView: true,\n fullWidth: false,\n ...props\n };\n if (window._vue_richtext_widgets[id]) {\n logger.error(`[ReferencePicker]: Widget for id ${id} already registered`);\n return;\n }\n window._vue_richtext_widgets[id] = {\n id,\n callback,\n onDestroy,\n ...propsWithDefaults\n };\n}\nfunction renderWidget(el, options) {\n const { richObjectType, richObject, accessible, interactive } = options;\n if (richObjectType === \"open-graph\") {\n return;\n }\n if (!window._vue_richtext_widgets[richObjectType]) {\n logger.error(\"Widget for rich object type \" + richObjectType + \" not registered\");\n return;\n }\n window._vue_richtext_widgets[richObjectType].callback(el, { richObjectType, richObject, accessible, interactive });\n}\nfunction destroyWidget(richObjectType, el) {\n if (richObjectType === \"open-graph\") {\n return;\n }\n if (!window._vue_richtext_widgets[richObjectType]) {\n return;\n }\n window._vue_richtext_widgets[richObjectType].onDestroy(el);\n}\nfunction isWidgetRegistered(id) {\n return !!window._vue_richtext_widgets[id];\n}\nfunction hasInteractiveView(id) {\n return !!window._vue_richtext_widgets[id]?.hasInteractiveView;\n}\nfunction hasFullWidth(id) {\n return !!window._vue_richtext_widgets[id]?.fullWidth;\n}\nwindow._vue_richtext_custom_picker_elements ??= {};\nwindow._registerCustomPickerElement ??= registerCustomPickerElement;\nclass NcCustomPickerRenderResult {\n element;\n object;\n /**\n * @param element - The HTML element\n * @param object - The object\n */\n constructor(element, object) {\n this.element = element;\n this.object = object;\n }\n}\nfunction isCustomPickerElementRegistered(id) {\n return !!window._vue_richtext_custom_picker_elements[id];\n}\nfunction getCustomPickerElementSize(id) {\n const size = window._vue_richtext_custom_picker_elements[id]?.size;\n if (size && [\"small\", \"normal\", \"large\", \"full\"].includes(size)) {\n return size;\n }\n return null;\n}\nfunction registerCustomPickerElement(id, callback, onDestroy = () => {\n}, size = \"large\") {\n if (window._vue_richtext_custom_picker_elements[id]) {\n logger.error(`Custom reference picker element for id ${id} already registered`);\n return;\n }\n window._vue_richtext_custom_picker_elements[id] = {\n id,\n callback,\n onDestroy,\n size\n };\n}\nfunction renderCustomPickerElement(el, options) {\n const { providerId, accessible } = options;\n if (!window._vue_richtext_custom_picker_elements[providerId]) {\n logger.error(`Custom reference picker element for reference provider ID ${providerId} not registered`);\n return;\n }\n return window._vue_richtext_custom_picker_elements[providerId].callback(el, { providerId, accessible });\n}\nfunction destroyCustomPickerElement(providerId, el, renderResult) {\n if (!window._vue_richtext_custom_picker_elements[providerId]) {\n return;\n }\n window._vue_richtext_custom_picker_elements[providerId].onDestroy(el, renderResult);\n}\nexport {\n NcCustomPickerRenderResult as N,\n destroyWidget as a,\n isWidgetRegistered as b,\n registerWidget as c,\n destroyCustomPickerElement as d,\n renderCustomPickerElement as e,\n renderWidget as f,\n getCustomPickerElementSize as g,\n hasInteractiveView as h,\n isCustomPickerElementRegistered as i,\n hasFullWidth as j,\n registerCustomPickerElement as r\n};\n//# sourceMappingURL=customPickerElements-Cu7bLbap.mjs.map\n","import '../assets/referencePickerModal-Dod7nzta.css';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, resolveComponent, createVNode, withCtx, defineComponent, inject, ref, useTemplateRef, nextTick, computed, watch, onBeforeUnmount, normalizeClass, createBlock, resolveDynamicComponent, normalizeStyle, createTextVNode, unref, withKeys, withModifiers, createApp } from \"vue\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { I as IconClose } from \"./Close-CuhcJnX2.mjs\";\nimport { e as renderCustomPickerElement, d as destroyCustomPickerElement, i as isCustomPickerElementRegistered, j as hasFullWidth, b as isWidgetRegistered, h as hasInteractiveView, f as renderWidget, a as destroyWidget, g as getCustomPickerElementSize } from \"./customPickerElements-Cu7bLbap.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { loadState } from \"@nextcloud/initial-state\";\nimport { imagePath, generateOcsUrl } from \"@nextcloud/router\";\nimport { r as register, W as t8, a as t, X as t46, Y as t41, Z as t24, _ as t25, q as t43, $ as t32, A as t19, a0 as t12 } from \"./_l10n-CG4CuN3H.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { N as NcEmptyContent } from \"./NcEmptyContent-CGAPqk4S.mjs\";\nimport { _ as _sfc_main$a } from \"./NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs\";\nimport { N as NcSelect } from \"./NcSelect-BOFzoCwK.mjs\";\nimport debounce from \"debounce\";\nimport { useElementSize, useIntersectionObserver } from \"@vueuse/core\";\nimport { routerKey, RouterLink } from \"vue-router\";\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { g as getRoute } from \"./autolink-BT8u-IL-.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-BOVpFVQz.mjs\";\nimport { _ as _sfc_main$b } from \"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r.mjs\";\nimport { I as IconDotsHorizontal } from \"./NcActions-CUmcZ3C3.mjs\";\nimport { N as NcModal } from \"./NcModal-DUWLRm_F.mjs\";\nconst _sfc_main$9 = {\n name: \"ArrowLeftIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$9 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$7 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$6 = { d: \"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\" };\nconst _hoisted_4$5 = { key: 0 };\nfunction _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon arrow-left-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$6, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$5, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$7))\n ], 16, _hoisted_1$9);\n}\nconst ArrowLeftIcon = /* @__PURE__ */ _export_sfc(_sfc_main$9, [[\"render\", _sfc_render$8]]);\nconst _sfc_main$8 = {\n name: \"NcCustomPickerElement\",\n props: {\n /**\n * The reference provider\n */\n provider: {\n type: Object,\n required: true\n }\n },\n emits: [\n \"cancel\",\n \"submit\"\n ],\n data() {\n return {\n isRegistered: isCustomPickerElementRegistered(this.provider.id),\n renderResult: null\n };\n },\n mounted() {\n if (this.isRegistered) {\n this.renderElement();\n }\n },\n beforeUnmount() {\n if (this.isRegistered) {\n destroyCustomPickerElement(this.provider.id, this.$el, this.renderResult);\n }\n },\n methods: {\n renderElement() {\n if (this.$refs.domElement) {\n this.$refs.domElement.innerHTML = \"\";\n }\n const renderFunctionResult = renderCustomPickerElement(this.$refs.domElement, { providerId: this.provider.id, accessible: false });\n Promise.resolve(renderFunctionResult).then((result) => {\n this.renderResult = result;\n if (this.renderResult.object?._isVue && this.renderResult.object?.$on) {\n this.renderResult.object.$on(\"submit\", this.onSubmit);\n this.renderResult.object.$on(\"cancel\", this.onCancel);\n }\n this.renderResult.element.addEventListener(\"submit\", (e) => {\n this.onSubmit(e.detail);\n });\n this.renderResult.element.addEventListener(\"cancel\", this.onCancel);\n });\n },\n onSubmit(value) {\n this.$emit(\"submit\", value);\n },\n onCancel() {\n this.$emit(\"cancel\");\n }\n }\n};\nconst _hoisted_1$8 = { ref: \"domElement\" };\nfunction _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$8, null, 512);\n}\nconst NcCustomPickerElement = /* @__PURE__ */ _export_sfc(_sfc_main$8, [[\"render\", _sfc_render$7], [\"__scopeId\", \"data-v-e408867a\"]]);\nconst _sfc_main$7 = {\n name: \"LinkVariantIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$7 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$6 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$5 = { d: \"M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z\" };\nconst _hoisted_4$4 = { key: 0 };\nfunction _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon link-variant-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$5, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$6))\n ], 16, _hoisted_1$7);\n}\nconst LinkVariantIcon = /* @__PURE__ */ _export_sfc(_sfc_main$7, [[\"render\", _sfc_render$6]]);\nregister(t8);\nconst anyLinkProviderId = \"any-link\";\nconst anyLinkProvider = {\n id: anyLinkProviderId,\n title: t(\"Any link\"),\n order: 0,\n icon_url: imagePath(\"core\", \"filetypes/link.svg\")\n};\nwindow._vue_richtext_reference_providers ??= loadState(\"core\", \"reference-provider-list\", []);\nwindow._vue_richtext_reference_provider_timestamps ??= loadState(\"core\", \"reference-provider-timestamps\", {});\nfunction getProvider(providerId) {\n if (providerId === anyLinkProviderId) {\n return anyLinkProvider;\n }\n return getProviders().find((p) => p.id === providerId);\n}\nfunction getProviders() {\n return window._vue_richtext_reference_providers.filter((p) => {\n const keep = !!p.search_providers_ids && p.search_providers_ids.length > 0 || isCustomPickerElementRegistered(p.id);\n if (!keep) {\n logger.debug(`[smart picker] ${p.id} reference provider is discoverable but does not have any related search provider or custom picker component registered`);\n }\n return keep;\n });\n}\nfunction sortProviders(providerList) {\n const timestamps = window._vue_richtext_reference_provider_timestamps;\n return providerList.sort((a, b) => {\n return a.order === b.order ? 0 : a.order > b.order ? 1 : -1;\n }).sort((a, b) => {\n const ta = timestamps[a.id];\n const tb = timestamps[b.id];\n return ta === tb ? 0 : tb === void 0 ? -1 : ta === void 0 ? 1 : ta > tb ? -1 : 1;\n });\n}\nfunction searchProvider(query, limit) {\n const providers = getProviders();\n const escapedQuery = query.replace(/[/\\-\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n const regexp = new RegExp(escapedQuery, \"i\");\n const sortedProviders = sortProviders(providers);\n const filteredSortedProviders = sortedProviders.filter((p) => {\n return p.title.match(regexp);\n });\n const searchResult = limit ? filteredSortedProviders.slice(0, limit) : filteredSortedProviders;\n if (query === \"\" || searchResult.length === 0) {\n searchResult.push(anyLinkProvider);\n }\n return searchResult;\n}\nasync function touchProvider(providerId) {\n const timestamp = Math.floor(Date.now() / 1e3);\n const url = generateOcsUrl(\"references/provider/{providerId}\", { providerId });\n await axios.put(url, { timestamp });\n window._vue_richtext_reference_provider_timestamps[providerId] = timestamp;\n}\nregister(t41, t46);\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction isUrl(str) {\n try {\n return Boolean(new URL(str));\n } catch {\n return false;\n }\n}\nconst _sfc_main$6 = {\n name: \"NcProviderList\",\n components: {\n NcSelect,\n NcHighlight: _sfc_main$a,\n NcEmptyContent,\n LinkVariantIcon\n },\n emits: [\n \"selectProvider\",\n \"submit\"\n ],\n data() {\n return {\n selectedProvider: null,\n query: \"\",\n multiselectPlaceholder: t(\"Select provider\"),\n providerIconAlt: t(\"Provider icon\")\n };\n },\n computed: {\n options() {\n const result = [];\n if (this.query !== \"\" && isUrl(this.query)) {\n result.push({\n id: this.query,\n title: this.query,\n isLink: true\n });\n }\n result.push(...searchProvider(this.query));\n return result;\n }\n },\n methods: {\n focus() {\n setTimeout(() => {\n this.$refs[\"provider-select\"]?.$el?.querySelector(\"#provider-select-input\")?.focus();\n }, 300);\n },\n onProviderSelected(p) {\n if (p !== null) {\n if (p.isLink) {\n this.$emit(\"submit\", p.title);\n } else {\n this.$emit(\"selectProvider\", p);\n }\n this.selectedProvider = null;\n }\n },\n onSearch(query) {\n this.query = query;\n }\n }\n};\nconst _hoisted_1$6 = { class: \"provider-list\" };\nconst _hoisted_2$5 = {\n key: 0,\n class: \"provider\"\n};\nconst _hoisted_3$4 = {\n key: 1,\n class: \"provider\"\n};\nconst _hoisted_4$3 = [\"src\", \"alt\"];\nfunction _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_LinkVariantIcon = resolveComponent(\"LinkVariantIcon\");\n const _component_NcHighlight = resolveComponent(\"NcHighlight\");\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$6, [\n createVNode(_component_NcSelect, {\n ref: \"provider-select\",\n modelValue: $data.selectedProvider,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event) => $data.selectedProvider = $event),\n $options.onProviderSelected\n ],\n class: \"provider-list--select\",\n inputId: \"provider-select-input\",\n label: \"title\",\n placeholder: $data.multiselectPlaceholder,\n options: $options.options,\n appendToBody: false,\n clearSearchOnSelect: true,\n clearSearchOnBlur: () => false,\n filterable: false,\n onSearch: $options.onSearch\n }, {\n option: withCtx((option) => [\n option.isLink ? (openBlock(), createElementBlock(\"div\", _hoisted_2$5, [\n createVNode(_component_LinkVariantIcon, {\n class: \"link-icon\",\n size: 20\n }),\n createElementVNode(\"span\", null, toDisplayString(option.title), 1)\n ])) : (openBlock(), createElementBlock(\"div\", _hoisted_3$4, [\n createElementVNode(\"img\", {\n class: \"provider-icon\",\n src: option.icon_url,\n alt: $data.providerIconAlt\n }, null, 8, _hoisted_4$3),\n createVNode(_component_NcHighlight, {\n class: \"option-text\",\n search: $data.query,\n text: option.title\n }, null, 8, [\"search\", \"text\"])\n ]))\n ]),\n _: 1\n }, 8, [\"modelValue\", \"placeholder\", \"options\", \"onSearch\", \"onUpdate:modelValue\"]),\n createVNode(_component_NcEmptyContent, { class: \"provider-list--empty-content\" }, {\n icon: withCtx(() => [\n createVNode(_component_LinkVariantIcon)\n ]),\n _: 1\n })\n ]);\n}\nconst NcProviderList = /* @__PURE__ */ _export_sfc(_sfc_main$6, [[\"render\", _sfc_render$5], [\"__scopeId\", \"data-v-ea81d3af\"]]);\nregister(t24);\nconst _hoisted_1$5 = [\"src\"];\nconst _hoisted_2$4 = { class: \"widget-default--details\" };\nconst _hoisted_3$3 = { class: \"widget-default--name\" };\nconst _hoisted_4$2 = { class: \"widget-default--link\" };\nconst IDLE_TIMEOUT = 3 * 60 * 1e3;\nconst _sfc_main$5 = /* @__PURE__ */ defineComponent({\n __name: \"NcReferenceWidget\",\n props: {\n reference: {},\n interactive: { type: Boolean, default: true },\n interactiveOptIn: { type: Boolean, default: false }\n },\n setup(__props) {\n const props = __props;\n const router = inject(routerKey, null);\n const isVisible = ref(false);\n const customWidget = useTemplateRef(\"customWidget\");\n const widgetRoot = useTemplateRef(\"widgetRoot\");\n const { width } = useElementSize(widgetRoot);\n useIntersectionObserver(widgetRoot, ([entry]) => {\n nextTick(() => {\n isVisible.value = entry.isIntersecting;\n });\n });\n const showInteractive = ref(false);\n const rendered = ref(false);\n let idleTimeout = null;\n const isInteractive = computed(() => {\n return !props.interactiveOptIn && props.interactive || showInteractive.value;\n });\n const referenceHasFullWidth = computed(() => {\n return hasFullWidth(props.reference.richObjectType);\n });\n const hasCustomWidget = computed(() => {\n return isWidgetRegistered(props.reference.richObjectType);\n });\n const referenceHasInteractiveView = computed(() => {\n return hasCustomWidget.value && hasInteractiveView(props.reference.richObjectType);\n });\n const noAccess = computed(() => {\n return !props.reference.accessible;\n });\n const numberOfLines = computed(() => {\n const lineCountOffsets = [450, 550, 650, Infinity];\n return lineCountOffsets.findIndex((max) => width.value < max);\n });\n const descriptionStyle = computed(() => {\n if (numberOfLines.value === 0) {\n return {\n display: \"none\"\n };\n }\n const lineClamp = numberOfLines.value;\n return {\n lineClamp,\n webkitLineClamp: lineClamp\n };\n });\n const compactLink = computed(() => {\n const link = props.reference.openGraphObject.link;\n if (!link) {\n return \"\";\n }\n if (link.startsWith(\"https://\")) {\n return link.substring(8);\n }\n if (link.startsWith(\"http://\")) {\n return link.substring(7);\n }\n return link;\n });\n const route = computed(() => {\n return getRoute(router, props.reference.openGraphObject.link);\n });\n const referenceWidgetLinkComponent = computed(() => {\n return route.value ? RouterLink : \"a\";\n });\n const referenceWidgetLinkProps = computed(() => {\n return route.value ? { to: route.value } : { href: props.reference.openGraphObject.link, target: \"_blank\" };\n });\n watch(isVisible, (val) => {\n if (!val) {\n idleTimeout = setTimeout(() => {\n if (!isVisible.value) {\n destroyReferenceWidget();\n }\n }, IDLE_TIMEOUT);\n return;\n }\n if (idleTimeout) {\n clearTimeout(idleTimeout);\n idleTimeout = null;\n }\n if (!rendered.value) {\n renderReferenceWidget();\n }\n }, { immediate: true });\n onBeforeUnmount(() => {\n destroyReferenceWidget();\n });\n function enableInteractive() {\n showInteractive.value = true;\n renderReferenceWidget();\n }\n function renderReferenceWidget() {\n if (!customWidget.value) {\n return;\n }\n if (props.reference.richObjectType === \"open-graph\") {\n return;\n }\n customWidget.value.innerHTML = \"\";\n const widget = document.createElement(\"div\");\n widget.style.width = \"100%\";\n customWidget.value.appendChild(widget);\n nextTick(() => {\n renderWidget(widget, {\n ...props.reference,\n interactive: isInteractive.value\n });\n rendered.value = true;\n });\n }\n function destroyReferenceWidget() {\n if (rendered.value && widgetRoot.value) {\n destroyWidget(props.reference.richObjectType, widgetRoot.value);\n rendered.value = false;\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref_key: \"widgetRoot\",\n ref: widgetRoot,\n class: normalizeClass({ \"toggle-interactive\": referenceHasInteractiveView.value && !isInteractive.value })\n }, [\n __props.reference && hasCustomWidget.value ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n ref_key: \"customWidget\",\n ref: customWidget,\n class: normalizeClass([\"widget-custom\", { \"full-width\": referenceHasFullWidth.value }])\n }, null, 2)) : !noAccess.value && __props.reference && __props.reference.openGraphObject && !hasCustomWidget.value ? (openBlock(), createBlock(resolveDynamicComponent(referenceWidgetLinkComponent.value), mergeProps({ key: 1 }, referenceWidgetLinkProps.value, {\n rel: \"noopener noreferrer\",\n class: \"widget-default\"\n }), {\n default: withCtx(() => [\n __props.reference.openGraphObject.thumb ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"widget-default--image\",\n src: __props.reference.openGraphObject.thumb\n }, null, 8, _hoisted_1$5)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_2$4, [\n createElementVNode(\"p\", _hoisted_3$3, toDisplayString(__props.reference.openGraphObject.name), 1),\n createElementVNode(\"p\", {\n class: \"widget-default--description\",\n style: normalizeStyle(descriptionStyle.value)\n }, toDisplayString(__props.reference.openGraphObject.description), 5),\n createElementVNode(\"p\", _hoisted_4$2, toDisplayString(compactLink.value), 1)\n ])\n ]),\n _: 1\n }, 16)) : createCommentVNode(\"\", true),\n __props.interactiveOptIn && referenceHasInteractiveView.value && !isInteractive.value ? (openBlock(), createBlock(NcButton, {\n key: 2,\n class: \"toggle-interactive--button\",\n onClick: enableInteractive\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Enable interactive view\")), 1)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcReferenceWidget = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"__scopeId\", \"data-v-b0ec9f0b\"]]);\nregister(t25);\nconst _sfc_main$4 = {\n name: \"NcRawLinkInput\",\n components: {\n LinkVariantIcon,\n NcEmptyContent,\n NcLoadingIcon,\n NcReferenceWidget,\n NcTextField: _sfc_main$b\n },\n props: {\n /**\n * The reference provider\n */\n provider: {\n type: Object,\n required: true\n }\n },\n emits: [\n \"submit\"\n ],\n data() {\n return {\n inputValue: \"\",\n loading: false,\n reference: null,\n abortController: null,\n inputPlaceholder: t(\"Enter link\")\n };\n },\n computed: {\n isLinkValid() {\n return isUrl(this.inputValue);\n },\n debouncedUpdateReference() {\n return debounce(this.updateReference, 500);\n }\n },\n methods: {\n focus() {\n this.$refs[\"url-input\"].$el.getElementsByTagName(\"input\")[0]?.focus();\n },\n onSubmit(e) {\n const value = e.target.value;\n if (this.isLinkValid) {\n this.$emit(\"submit\", value);\n }\n },\n onClear() {\n this.inputValue = \"\";\n this.reference = null;\n },\n onInput() {\n this.reference = null;\n if (this.abortController) {\n this.abortController.abort();\n }\n if (this.isLinkValid) {\n this.debouncedUpdateReference();\n }\n },\n updateReference() {\n this.loading = true;\n this.abortController = new AbortController();\n axios.get(generateOcsUrl(\"references/resolve\", 2) + \"?reference=\" + encodeURIComponent(this.inputValue), {\n signal: this.abortController.signal\n }).then((response) => {\n this.reference = response.data.ocs.data.references[this.inputValue];\n }).catch((error) => {\n logger.error(\"[NcRawLinkInput] Failed to update reference\", { error });\n }).then(() => {\n this.loading = false;\n });\n }\n }\n};\nconst _hoisted_1$4 = { class: \"raw-link\" };\nconst _hoisted_2$3 = { class: \"input-wrapper\" };\nconst _hoisted_3$2 = [\"src\"];\nfunction _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_LinkVariantIcon = resolveComponent(\"LinkVariantIcon\");\n const _component_NcTextField = resolveComponent(\"NcTextField\");\n const _component_NcReferenceWidget = resolveComponent(\"NcReferenceWidget\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$4, [\n createElementVNode(\"div\", _hoisted_2$3, [\n createVNode(_component_NcTextField, {\n ref: \"url-input\",\n modelValue: $data.inputValue,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event) => $data.inputValue = $event),\n $options.onInput\n ],\n showTrailingButton: $data.inputValue !== \"\",\n label: $data.inputPlaceholder,\n onTrailingButtonClick: $options.onClear,\n onKeyup: withKeys($options.onSubmit, [\"enter\"])\n }, {\n default: withCtx(() => [\n $data.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, {\n key: 0,\n size: 16\n })) : (openBlock(), createBlock(_component_LinkVariantIcon, {\n key: 1,\n size: 16\n }))\n ]),\n _: 1\n }, 8, [\"modelValue\", \"showTrailingButton\", \"label\", \"onTrailingButtonClick\", \"onUpdate:modelValue\", \"onKeyup\"])\n ]),\n $data.reference !== null ? (openBlock(), createBlock(_component_NcReferenceWidget, {\n key: 0,\n class: \"reference-widget\",\n reference: $data.reference\n }, null, 8, [\"reference\"])) : (openBlock(), createBlock(_component_NcEmptyContent, {\n key: 1,\n class: \"raw-link--empty-content\"\n }, {\n icon: withCtx(() => [\n $props.provider.icon_url ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"provider-icon\",\n src: $props.provider.icon_url\n }, null, 8, _hoisted_3$2)) : (openBlock(), createBlock(_component_LinkVariantIcon, { key: 1 }))\n ]),\n _: 1\n }))\n ]);\n}\nconst NcRawLinkInput = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$4], [\"__scopeId\", \"data-v-918730b9\"]]);\nconst _sfc_main$3 = {\n name: \"NcSearchResult\",\n components: {\n NcHighlight: _sfc_main$a\n },\n props: {\n /**\n * Unified search result entry\n */\n entry: {\n type: Object,\n required: true\n },\n /**\n * The query that led to getting this result\n * Used to highlight the entry text\n */\n query: {\n type: String,\n required: true\n }\n }\n};\nconst _hoisted_1$3 = { class: \"result\" };\nconst _hoisted_2$2 = [\"src\"];\nconst _hoisted_3$1 = { class: \"result--content\" };\nconst _hoisted_4$1 = { class: \"result--content--name\" };\nconst _hoisted_5$1 = { class: \"result--content--subline\" };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcHighlight = resolveComponent(\"NcHighlight\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$3, [\n $props.entry.icon ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([{ [$props.entry.icon]: true, rounded: $props.entry.rounded }, \"result--icon-class\"])\n }, null, 2)) : (openBlock(), createElementBlock(\"img\", {\n key: 1,\n class: normalizeClass([\"result--image\", { rounded: $props.entry.rounded }]),\n src: $props.entry.thumbnailUrl\n }, null, 10, _hoisted_2$2)),\n createElementVNode(\"div\", _hoisted_3$1, [\n createElementVNode(\"span\", _hoisted_4$1, [\n createVNode(_component_NcHighlight, {\n search: $props.query,\n text: $props.entry.title\n }, null, 8, [\"search\", \"text\"])\n ]),\n createElementVNode(\"span\", _hoisted_5$1, [\n createVNode(_component_NcHighlight, {\n search: $props.query,\n text: $props.entry.subline\n }, null, 8, [\"search\", \"text\"])\n ])\n ])\n ]);\n}\nconst NcSearchResult = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3], [\"__scopeId\", \"data-v-059edcfb\"]]);\nregister(t32, t41, t43);\nconst LIMIT = 5;\nconst _sfc_main$2 = {\n name: \"NcSearch\",\n components: {\n LinkVariantIcon,\n DotsHorizontalIcon: IconDotsHorizontal,\n NcEmptyContent,\n NcSelect,\n NcSearchResult\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n /**\n * The selected reference provider\n */\n provider: {\n type: Object,\n required: true\n },\n showEmptyContent: {\n type: Boolean,\n default: true\n },\n /**\n * Placeholder of the search\n */\n searchPlaceholder: {\n type: String,\n default: null\n }\n },\n emits: [\n \"submit\"\n ],\n data() {\n return {\n searchQuery: \"\",\n selectedResult: null,\n resultsBySearchProvider: {},\n searching: false,\n searchingMoreOf: null,\n abortController: null,\n noOptionsText: t(\"Start typing to search\"),\n providerIconAlt: t(\"Provider icon\")\n };\n },\n computed: {\n mySearchPlaceholder() {\n return this.searchPlaceholder || t(\"Search\");\n },\n searchProviderIds() {\n return this.provider.search_providers_ids;\n },\n options() {\n if (this.searchQuery === \"\") {\n return [];\n }\n const options = [];\n if (isUrl(this.searchQuery)) {\n options.push(this.rawLinkEntry);\n }\n options.push(...this.formattedSearchResults);\n return options;\n },\n rawLinkEntry() {\n return {\n id: \"rawLinkEntry\",\n resourceUrl: this.searchQuery,\n isRawLink: true\n };\n },\n formattedSearchResults() {\n const results = [];\n this.searchProviderIds.forEach((pid) => {\n if (this.resultsBySearchProvider[pid].entries.length > 0) {\n if (this.searchProviderIds.length > 1 || this.resultsBySearchProvider[pid].entries.length > 1) {\n results.push({\n id: \"groupTitle-\" + pid,\n name: this.resultsBySearchProvider[pid].name,\n isCustomGroupTitle: true,\n providerId: pid\n });\n }\n const providerEntriesWithId = this.resultsBySearchProvider[pid].entries.map((entry, index) => {\n return {\n id: \"provider-\" + pid + \"-entry-\" + index,\n ...entry\n };\n });\n results.push(...providerEntriesWithId);\n if (this.resultsBySearchProvider[pid].isPaginated) {\n results.push({\n id: \"moreOf-\" + pid,\n name: this.resultsBySearchProvider[pid].name,\n isMore: true,\n providerId: pid,\n isLoading: this.searchingMoreOf === pid\n });\n }\n }\n });\n return results;\n },\n debouncedUpdateSearch() {\n return debounce(this.updateSearch, 500);\n }\n },\n mounted() {\n this.resetResults();\n },\n beforeUnmount() {\n this.cancelSearchRequests();\n },\n methods: {\n t,\n resetResults() {\n const resultsBySearchProvider = {};\n this.searchProviderIds.forEach((pid) => {\n resultsBySearchProvider[pid] = {\n entries: []\n };\n });\n this.resultsBySearchProvider = resultsBySearchProvider;\n },\n focus() {\n setTimeout(() => {\n this.$refs[\"search-select\"]?.$el?.querySelector(\"#search-select-input\")?.focus();\n }, 300);\n },\n cancelSearchRequests() {\n if (this.abortController) {\n this.abortController.abort();\n }\n },\n onSearchInput(query) {\n this.searchQuery = query;\n this.debouncedUpdateSearch();\n },\n onSelectResultSelected(item) {\n if (item !== null) {\n if (item.resourceUrl) {\n this.cancelSearchRequests();\n this.$emit(\"submit\", item.resourceUrl);\n } else if (item.isMore) {\n this.searchMoreOf(item.providerId).then(() => {\n this.selectedResult = null;\n });\n }\n }\n },\n searchMoreOf(searchProviderId) {\n this.searchingMoreOf = searchProviderId;\n this.cancelSearchRequests();\n return this.searchProviders(searchProviderId);\n },\n updateSearch() {\n this.cancelSearchRequests();\n this.resetResults();\n if (this.searchQuery === \"\") {\n this.searching = false;\n return;\n }\n return this.searchProviders();\n },\n searchProviders(searchProviderId = null) {\n this.abortController = new AbortController();\n this.searching = true;\n const searchPromises = searchProviderId === null ? [...this.searchProviderIds].map((pid) => {\n return this.searchOneProvider(pid);\n }) : [this.searchOneProvider(searchProviderId, this.resultsBySearchProvider[searchProviderId]?.cursor ?? null)];\n return Promise.allSettled(searchPromises).then((promises) => {\n const isOneCanceled = !!promises.find((p) => {\n return p.status === \"rejected\" && (p.reason.name === \"CanceledError\" || p.reason.code === \"ERR_CANCELED\");\n });\n if (!isOneCanceled) {\n this.searching = false;\n this.searchingMoreOf = null;\n }\n });\n },\n searchOneProvider(providerId, cursor = null) {\n const url = cursor === null ? generateOcsUrl(\"search/providers/{providerId}/search?term={term}&limit={limit}\", { providerId, term: this.searchQuery, limit: LIMIT }) : generateOcsUrl(\"search/providers/{providerId}/search?term={term}&limit={limit}&cursor={cursor}\", { providerId, term: this.searchQuery, limit: LIMIT, cursor });\n return axios.get(url, {\n signal: this.abortController.signal\n }).then((response) => {\n const data = response.data.ocs.data;\n this.resultsBySearchProvider[providerId].name = data.name;\n this.resultsBySearchProvider[providerId].cursor = data.cursor;\n this.resultsBySearchProvider[providerId].isPaginated = data.isPaginated;\n this.resultsBySearchProvider[providerId].entries.push(...data.entries);\n });\n }\n }\n};\nconst _hoisted_1$2 = {\n key: 0,\n class: \"custom-option\"\n};\nconst _hoisted_2$1 = { class: \"option-text\" };\nconst _hoisted_3 = {\n key: 2,\n class: \"custom-option group-name\"\n};\nconst _hoisted_4 = [\"src\"];\nconst _hoisted_5 = { class: \"option-text\" };\nconst _hoisted_6 = {\n key: 3,\n class: \"custom-option\"\n};\nconst _hoisted_7 = {\n key: 0,\n class: \"option-simple-icon icon-loading-small\"\n};\nconst _hoisted_8 = { class: \"option-text\" };\nconst _hoisted_9 = [\"alt\", \"src\"];\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_LinkVariantIcon = resolveComponent(\"LinkVariantIcon\");\n const _component_NcSearchResult = resolveComponent(\"NcSearchResult\");\n const _component_DotsHorizontalIcon = resolveComponent(\"DotsHorizontalIcon\");\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"smart-picker-search\", { \"with-empty-content\": $props.showEmptyContent }])\n }, [\n createVNode(_component_NcSelect, {\n ref: \"search-select\",\n modelValue: $data.selectedResult,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event) => $data.selectedResult = $event),\n $options.onSelectResultSelected\n ],\n class: \"smart-picker-search--select\",\n inputId: \"search-select-input\",\n label: \"name\",\n placeholder: $options.mySearchPlaceholder,\n options: $options.options,\n appendToBody: false,\n closeOnSelect: false,\n clearSearchOnSelect: false,\n clearSearchOnBlur: () => false,\n resetFocusOnOptionsChange: false,\n filterable: false,\n autoscroll: true,\n resetOnOptionsChange: false,\n loading: $data.searching,\n onSearch: $options.onSearchInput\n }, {\n option: withCtx((option) => [\n option.isRawLink ? (openBlock(), createElementBlock(\"div\", _hoisted_1$2, [\n createVNode(_component_LinkVariantIcon, {\n class: \"option-simple-icon\",\n size: 20\n }),\n createElementVNode(\"span\", _hoisted_2$1, toDisplayString($options.t(\"Raw link {options}\", { options: option.resourceUrl })), 1)\n ])) : option.resourceUrl ? (openBlock(), createBlock(_component_NcSearchResult, {\n key: 1,\n class: \"search-result\",\n entry: option,\n query: $data.searchQuery\n }, null, 8, [\"entry\", \"query\"])) : option.isCustomGroupTitle ? (openBlock(), createElementBlock(\"span\", _hoisted_3, [\n $props.provider.icon_url ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"provider-icon group-name-icon\",\n src: $props.provider.icon_url\n }, null, 8, _hoisted_4)) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_5, [\n createElementVNode(\"strong\", null, toDisplayString(option.name), 1)\n ])\n ])) : option.isMore ? (openBlock(), createElementBlock(\"span\", _hoisted_6, [\n option.isLoading ? (openBlock(), createElementBlock(\"span\", _hoisted_7)) : (openBlock(), createBlock(_component_DotsHorizontalIcon, {\n key: 1,\n class: \"option-simple-icon\",\n size: 20\n })),\n createElementVNode(\"span\", _hoisted_8, toDisplayString($options.t('Load more \"{options}\"', { options: option.name })), 1)\n ])) : createCommentVNode(\"\", true)\n ]),\n \"no-options\": withCtx(() => [\n createTextVNode(toDisplayString($data.noOptionsText), 1)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"placeholder\", \"options\", \"loading\", \"onSearch\", \"onUpdate:modelValue\"]),\n $props.showEmptyContent ? (openBlock(), createBlock(_component_NcEmptyContent, {\n key: 0,\n class: \"smart-picker-search--empty-content\"\n }, {\n icon: withCtx(() => [\n $props.provider.icon_url ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"provider-icon\",\n alt: $data.providerIconAlt,\n src: $props.provider.icon_url\n }, null, 8, _hoisted_9)) : (openBlock(), createBlock(_component_LinkVariantIcon, { key: 1 }))\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ], 2);\n}\nconst NcSearch = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2], [\"__scopeId\", \"data-v-af9d145f\"]]);\nconst MODES = {\n providerList: 1,\n standardLinkInput: 2,\n searchInput: 3,\n customElement: 4\n};\nconst _sfc_main$1 = {\n name: \"NcReferencePicker\",\n components: {\n NcCustomPickerElement,\n NcProviderList,\n NcRawLinkInput,\n NcSearch\n },\n props: {\n /**\n * Provider to select on creation\n * Default: null. Show the provider list\n */\n initialProvider: {\n type: Object,\n default: () => null\n },\n /**\n * Optional width in pixels\n * Default: 100%\n */\n width: {\n type: Number,\n default: null\n },\n /**\n * Focus on the provider list select input on creation\n * Default: true\n */\n focusOnCreate: {\n type: Boolean,\n default: true\n }\n },\n emits: [\n \"cancel\",\n \"cancelRawLink\",\n \"cancelSearch\",\n \"providerSelected\",\n \"submit\"\n ],\n data() {\n return {\n MODES,\n selectedProvider: this.initialProvider\n };\n },\n computed: {\n mode() {\n return this.selectedProvider === null ? MODES.providerList : isCustomPickerElementRegistered(this.selectedProvider.id) ? MODES.customElement : this.selectedProvider.search_providers_ids ? MODES.searchInput : MODES.standardLinkInput;\n },\n pickerWrapperStyle() {\n return {\n width: this.width ? this.width + \"px\" : void 0\n };\n }\n },\n mounted() {\n if (this.focusOnCreate) {\n if (this.initialProvider) {\n setTimeout(() => {\n this.$refs[\"url-input\"]?.focus();\n }, 300);\n } else {\n this.$nextTick(() => {\n this.$refs[\"provider-list\"]?.focus();\n });\n }\n }\n },\n methods: {\n onEscapePressed() {\n if (this.selectedProvider !== null) {\n this.deselectProvider();\n } else {\n this.cancelProviderSelection();\n }\n },\n onProviderSelected(provider) {\n this.selectedProvider = provider;\n this.$emit(\"providerSelected\", provider);\n this.$nextTick(() => {\n this.$refs[\"url-input\"]?.focus();\n });\n },\n cancelCustomElement() {\n this.deselectProvider();\n },\n cancelSearch() {\n this.$emit(\"cancelSearch\", this.selectedProvider?.title);\n this.deselectProvider();\n },\n cancelRawLinkInput() {\n this.$emit(\"cancelRawLink\", this.selectedProvider?.title);\n this.deselectProvider();\n },\n cancelProviderSelection() {\n this.$emit(\"cancel\");\n },\n submitLink(link) {\n if (this.selectedProvider !== null) {\n touchProvider(this.selectedProvider.id);\n }\n this.$emit(\"submit\", link);\n this.deselectProvider();\n },\n deselectProvider() {\n this.selectedProvider = null;\n this.$emit(\"providerSelected\", null);\n setTimeout(() => {\n this.$refs[\"provider-list\"]?.focus();\n }, 300);\n }\n }\n};\nconst _hoisted_1$1 = {\n key: 3,\n class: \"custom-element-wrapper\"\n};\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcProviderList = resolveComponent(\"NcProviderList\");\n const _component_NcRawLinkInput = resolveComponent(\"NcRawLinkInput\");\n const _component_NcSearch = resolveComponent(\"NcSearch\");\n const _component_NcCustomPickerElement = resolveComponent(\"NcCustomPickerElement\");\n return openBlock(), createElementBlock(\"div\", {\n class: \"reference-picker\",\n style: normalizeStyle($options.pickerWrapperStyle),\n tabindex: \"-1\",\n onKeydown: _cache[0] || (_cache[0] = withKeys(withModifiers((...args) => $options.onEscapePressed && $options.onEscapePressed(...args), [\"stop\", \"prevent\"]), [\"esc\"]))\n }, [\n $options.mode === $data.MODES.providerList ? (openBlock(), createBlock(_component_NcProviderList, {\n key: 0,\n ref: \"provider-list\",\n onSelectProvider: $options.onProviderSelected,\n onSubmit: $options.submitLink,\n onCancel: $options.cancelProviderSelection\n }, null, 8, [\"onSelectProvider\", \"onSubmit\", \"onCancel\"])) : $options.mode === $data.MODES.standardLinkInput ? (openBlock(), createBlock(_component_NcRawLinkInput, {\n key: 1,\n ref: \"url-input\",\n provider: $data.selectedProvider,\n onSubmit: $options.submitLink,\n onCancel: $options.cancelRawLinkInput\n }, null, 8, [\"provider\", \"onSubmit\", \"onCancel\"])) : $options.mode === $data.MODES.searchInput ? (openBlock(), createBlock(_component_NcSearch, {\n key: 2,\n ref: \"url-input\",\n provider: $data.selectedProvider,\n onCancel: $options.cancelSearch,\n onSubmit: $options.submitLink\n }, null, 8, [\"provider\", \"onCancel\", \"onSubmit\"])) : $options.mode === $data.MODES.customElement ? (openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n createVNode(_component_NcCustomPickerElement, {\n provider: $data.selectedProvider,\n class: \"custom-element\",\n onSubmit: $options.submitLink,\n onCancel: $options.cancelCustomElement\n }, null, 8, [\"provider\", \"onSubmit\", \"onCancel\"])\n ])) : createCommentVNode(\"\", true)\n ], 36);\n}\nconst NcReferencePicker = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-5e2e9195\"]]);\nregister(t12, t19);\nconst _sfc_main = {\n name: \"NcReferencePickerModal\",\n components: {\n NcReferencePicker,\n NcModal,\n NcButton,\n ArrowLeftIcon,\n CloseIcon: IconClose\n },\n props: {\n /**\n * Provider to select on creation\n * Show the provider list if no initial one is provided\n */\n initialProvider: {\n type: Object,\n default: () => null\n },\n /**\n * Focus on the input item on create\n */\n focusOnCreate: {\n type: Boolean,\n default: true\n },\n /**\n * If true, add the modal content to the Viewer trap elements via the event-bus\n */\n isInsideViewer: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"cancel\",\n \"submit\"\n ],\n data() {\n return {\n show: true,\n selectedProvider: this.initialProvider,\n backButtonTitle: t(\"Back to provider selection\"),\n closeButtonTitle: t(\"Close\"),\n closeButtonLabel: t(\"Close Smart Picker\")\n };\n },\n computed: {\n isProviderSelected() {\n return this.selectedProvider !== null;\n },\n showBackButton() {\n return this.initialProvider === null && this.isProviderSelected;\n },\n modalSize() {\n return this.isProviderSelected && isCustomPickerElementRegistered(this.selectedProvider.id) ? getCustomPickerElementSize(this.selectedProvider.id) ?? \"large\" : \"normal\";\n },\n showModalName() {\n return !this.isProviderSelected || !isCustomPickerElementRegistered(this.selectedProvider.id);\n },\n modalName() {\n return this.isProviderSelected ? this.selectedProvider.title : t(\"Smart Picker\");\n }\n },\n mounted() {\n if (this.isInsideViewer) {\n const elem = this.$refs.modal_content;\n emit(\"viewer:trapElements:changed\", elem);\n }\n },\n methods: {\n onCancel() {\n this.show = false;\n this.$emit(\"cancel\");\n },\n onSubmit(value) {\n this.show = false;\n this.$emit(\"submit\", value);\n },\n onProviderSelect(provider) {\n this.selectedProvider = provider;\n if (provider === null && this.initialProvider !== null) {\n this.onCancel();\n }\n },\n onBackClicked() {\n this.$refs.referencePicker.deselectProvider();\n }\n }\n};\nconst _hoisted_1 = {\n ref: \"modal_content\",\n class: \"reference-picker-modal--content\"\n};\nconst _hoisted_2 = { key: 1 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ArrowLeftIcon = resolveComponent(\"ArrowLeftIcon\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_CloseIcon = resolveComponent(\"CloseIcon\");\n const _component_NcReferencePicker = resolveComponent(\"NcReferencePicker\");\n const _component_NcModal = resolveComponent(\"NcModal\");\n return $data.show ? (openBlock(), createBlock(_component_NcModal, {\n key: 0,\n size: $options.modalSize,\n class: \"reference-picker-modal\",\n onClose: $options.onCancel\n }, {\n default: withCtx(() => [\n createElementVNode(\"div\", _hoisted_1, [\n $options.showBackButton ? (openBlock(), createBlock(_component_NcButton, {\n key: 0,\n \"aria-label\": $data.backButtonTitle,\n title: $data.backButtonTitle,\n class: \"back-button\",\n onClick: $options.onBackClicked\n }, {\n icon: withCtx(() => [\n createVNode(_component_ArrowLeftIcon)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"])) : createCommentVNode(\"\", true),\n createVNode(_component_NcButton, {\n class: \"close-button\",\n \"aria-label\": $data.closeButtonLabel,\n title: $data.closeButtonTitle,\n variant: \"tertiary\",\n onClick: $options.onCancel\n }, {\n icon: withCtx(() => [\n createVNode(_component_CloseIcon)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"]),\n $options.showModalName ? (openBlock(), createElementBlock(\"h2\", _hoisted_2, toDisplayString($options.modalName), 1)) : createCommentVNode(\"\", true),\n createVNode(_component_NcReferencePicker, {\n ref: \"referencePicker\",\n initialProvider: $props.initialProvider,\n focusOnCreate: $props.focusOnCreate,\n onProviderSelected: $options.onProviderSelect,\n onSubmit: $options.onSubmit,\n onCancel: $options.onCancel\n }, null, 8, [\"initialProvider\", \"focusOnCreate\", \"onProviderSelected\", \"onSubmit\", \"onCancel\"])\n ], 512)\n ]),\n _: 1\n }, 8, [\"size\", \"onClose\"])) : createCommentVNode(\"\", true);\n}\nconst NcReferencePickerModal = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-bf0a25ee\"]]);\nasync function getLinkWithPicker(providerId, isInsideViewer) {\n const modalId = \"referencePickerModal\";\n const modalElement = document.createElement(\"div\");\n modalElement.id = modalId;\n document.body.append(modalElement);\n const { promise, reject, resolve } = Promise.withResolvers();\n const initialProvider = providerId && getProvider(providerId) || null;\n const view = createApp(NcReferencePickerModal, {\n initialProvider,\n isInsideViewer,\n onCancel() {\n view.unmount();\n reject(new Error(\"User cancellation\"));\n },\n onSubmit(link) {\n view.unmount();\n resolve(link);\n }\n });\n view.mount(modalElement);\n return promise;\n}\nexport {\n NcReferencePicker as N,\n anyLinkProviderId as a,\n getProvider as b,\n getProviders as c,\n sortProviders as d,\n NcReferencePickerModal as e,\n NcReferenceWidget as f,\n getLinkWithPicker as g,\n NcSearch as h,\n searchProvider as s\n};\n//# sourceMappingURL=referencePickerModal-B4bsiMOy.mjs.map\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n * Whether to use `alt` for `image`s (default: `true`).\n * @property {boolean | null | undefined} [includeHtml=true]\n * Whether to use `value` of HTML (default: `true`).\n */\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the node’s plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} [value]\n * Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized `value`.\n */\nexport function toString(value, options) {\n const settings = options || emptyOptions\n const includeImageAlt =\n typeof settings.includeImageAlt === 'boolean'\n ? settings.includeImageAlt\n : true\n const includeHtml =\n typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true\n\n return one(value, includeImageAlt, includeHtml)\n}\n\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized node.\n */\nfunction one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if ('value' in value) {\n return value.type === 'html' && !includeHtml ? '' : value.value\n }\n\n if (includeImageAlt && 'alt' in value && value.alt) {\n return value.alt\n }\n\n if ('children' in value) {\n return all(value.children, includeImageAlt, includeHtml)\n }\n }\n\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml)\n }\n\n return ''\n}\n\n/**\n * Serialize a list of nodes.\n *\n * @param {Array} values\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized nodes.\n */\nfunction all(values, includeImageAlt, includeHtml) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml)\n }\n\n return result.join('')\n}\n\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n * Thing.\n * @returns {value is Nodes}\n * Whether `value` is a node.\n */\nfunction node(value) {\n return Boolean(value && typeof value === 'object')\n}\n","export const VOID = -1;\nexport const PRIMITIVE = 0;\nexport const ARRAY = 1;\nexport const OBJECT = 2;\nexport const DATE = 3;\nexport const REGEXP = 4;\nexport const MAP = 5;\nexport const SET = 6;\nexport const ERROR = 7;\nexport const BIGINT = 8;\n// export const SYMBOL = 9;\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst env = typeof self === 'object' ? self : globalThis;\n\nconst deserializer = ($, _) => {\n const as = (out, index) => {\n $.set(index, out);\n return out;\n };\n\n const unpair = index => {\n if ($.has(index))\n return $.get(index);\n\n const [type, value] = _[index];\n switch (type) {\n case PRIMITIVE:\n case VOID:\n return as(value, index);\n case ARRAY: {\n const arr = as([], index);\n for (const index of value)\n arr.push(unpair(index));\n return arr;\n }\n case OBJECT: {\n const object = as({}, index);\n for (const [key, index] of value)\n object[unpair(key)] = unpair(index);\n return object;\n }\n case DATE:\n return as(new Date(value), index);\n case REGEXP: {\n const {source, flags} = value;\n return as(new RegExp(source, flags), index);\n }\n case MAP: {\n const map = as(new Map, index);\n for (const [key, index] of value)\n map.set(unpair(key), unpair(index));\n return map;\n }\n case SET: {\n const set = as(new Set, index);\n for (const index of value)\n set.add(unpair(index));\n return set;\n }\n case ERROR: {\n const {name, message} = value;\n return as(new env[name](message), index);\n }\n case BIGINT:\n return as(BigInt(value), index);\n case 'BigInt':\n return as(Object(BigInt(value)), index);\n case 'ArrayBuffer':\n return as(new Uint8Array(value).buffer, value);\n case 'DataView': {\n const { buffer } = new Uint8Array(value);\n return as(new DataView(buffer), value);\n }\n }\n return as(new env[type](value), index);\n };\n\n return unpair;\n};\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns a deserialized value from a serialized array of Records.\n * @param {Record[]} serialized a previously serialized value.\n * @returns {any}\n */\nexport const deserialize = serialized => deserializer(new Map, serialized)(0);\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst EMPTY = '';\n\nconst {toString} = {};\nconst {keys} = Object;\n\nconst typeOf = value => {\n const type = typeof value;\n if (type !== 'object' || !value)\n return [PRIMITIVE, type];\n\n const asString = toString.call(value).slice(8, -1);\n switch (asString) {\n case 'Array':\n return [ARRAY, EMPTY];\n case 'Object':\n return [OBJECT, EMPTY];\n case 'Date':\n return [DATE, EMPTY];\n case 'RegExp':\n return [REGEXP, EMPTY];\n case 'Map':\n return [MAP, EMPTY];\n case 'Set':\n return [SET, EMPTY];\n case 'DataView':\n return [ARRAY, asString];\n }\n\n if (asString.includes('Array'))\n return [ARRAY, asString];\n\n if (asString.includes('Error'))\n return [ERROR, asString];\n\n return [OBJECT, asString];\n};\n\nconst shouldSkip = ([TYPE, type]) => (\n TYPE === PRIMITIVE &&\n (type === 'function' || type === 'symbol')\n);\n\nconst serializer = (strict, json, $, _) => {\n\n const as = (out, value) => {\n const index = _.push(out) - 1;\n $.set(value, index);\n return index;\n };\n\n const pair = value => {\n if ($.has(value))\n return $.get(value);\n\n let [TYPE, type] = typeOf(value);\n switch (TYPE) {\n case PRIMITIVE: {\n let entry = value;\n switch (type) {\n case 'bigint':\n TYPE = BIGINT;\n entry = value.toString();\n break;\n case 'function':\n case 'symbol':\n if (strict)\n throw new TypeError('unable to serialize ' + type);\n entry = null;\n break;\n case 'undefined':\n return as([VOID], value);\n }\n return as([TYPE, entry], value);\n }\n case ARRAY: {\n if (type) {\n let spread = value;\n if (type === 'DataView') {\n spread = new Uint8Array(value.buffer);\n }\n else if (type === 'ArrayBuffer') {\n spread = new Uint8Array(value);\n }\n return as([type, [...spread]], value);\n }\n\n const arr = [];\n const index = as([TYPE, arr], value);\n for (const entry of value)\n arr.push(pair(entry));\n return index;\n }\n case OBJECT: {\n if (type) {\n switch (type) {\n case 'BigInt':\n return as([type, value.toString()], value);\n case 'Boolean':\n case 'Number':\n case 'String':\n return as([type, value.valueOf()], value);\n }\n }\n\n if (json && ('toJSON' in value))\n return pair(value.toJSON());\n\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const key of keys(value)) {\n if (strict || !shouldSkip(typeOf(value[key])))\n entries.push([pair(key), pair(value[key])]);\n }\n return index;\n }\n case DATE:\n return as([TYPE, value.toISOString()], value);\n case REGEXP: {\n const {source, flags} = value;\n return as([TYPE, {source, flags}], value);\n }\n case MAP: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const [key, entry] of value) {\n if (strict || !(shouldSkip(typeOf(key)) || shouldSkip(typeOf(entry))))\n entries.push([pair(key), pair(entry)]);\n }\n return index;\n }\n case SET: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const entry of value) {\n if (strict || !shouldSkip(typeOf(entry)))\n entries.push(pair(entry));\n }\n return index;\n }\n }\n\n const {message} = value;\n return as([TYPE, {name: type, message}], value);\n };\n\n return pair;\n};\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} value a serializable value.\n * @param {{json?: boolean, lossy?: boolean}?} options an object with a `lossy` or `json` property that,\n * if `true`, will not throw errors on incompatible types, and behave more\n * like JSON stringify would behave. Symbol and Function will be discarded.\n * @returns {Record[]}\n */\n export const serialize = (value, {json, lossy} = {}) => {\n const _ = [];\n return serializer(!(json || lossy), !!json, new Map, _)(value), _;\n};\n","import {deserialize} from './deserialize.js';\nimport {serialize} from './serialize.js';\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} any a serializable value.\n * @param {{transfer?: any[], json?: boolean, lossy?: boolean}?} options an object with\n * a transfer option (ignored when polyfilled) and/or non standard fields that\n * fallback to the polyfill if present.\n * @returns {Record[]}\n */\nexport default typeof structuredClone === \"function\" ?\n /* c8 ignore start */\n (any, options) => (\n options && ('json' in options || 'lossy' in options) ?\n deserialize(serialize(any, options)) : structuredClone(any)\n ) :\n (any, options) => deserialize(serialize(any, options));\n /* c8 ignore stop */\n\nexport {deserialize, serialize};\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is an element.\n * @param {unknown} this\n * Context object (`this`) to call `test` with\n * @param {unknown} [element]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * Position of `element` in its parent.\n * @param {Parents | null | undefined} [parent]\n * Parent of `element`.\n * @returns {boolean}\n * Whether this is an element and passes a test.\n *\n * @typedef {Array | TestFunction | string | null | undefined} Test\n * Check for an arbitrary element.\n *\n * * when `string`, checks that the element has that tag name\n * * when `function`, see `TestFunction`\n * * when `Array`, checks if one of the subtests pass\n *\n * @callback TestFunction\n * Check if an element passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Element} element\n * An element.\n * @param {number | undefined} [index]\n * Position of `element` in its parent.\n * @param {Parents | undefined} [parent]\n * Parent of `element`.\n * @returns {boolean | undefined | void}\n * Whether this element passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `element` is an `Element` and whether it passes the given test.\n *\n * @param element\n * Thing to check, typically `element`.\n * @param test\n * Check for a specific element.\n * @param index\n * Position of `element` in its parent.\n * @param parent\n * Parent of `element`.\n * @param context\n * Context object (`this`) to call `test` with.\n * @returns\n * Whether `element` is an `Element` and passes a test.\n * @throws\n * When an incorrect `test`, `index`, or `parent` is given; there is no error\n * thrown when `element` is not a node or not an element.\n */\nexport const isElement =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((element: unknown, test: Condition, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & Predicate) &\n * ((element: unknown, test: Condition, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & {tagName: Condition}) &\n * ((element?: null | undefined) => false) &\n * ((element: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element) &\n * ((element: unknown, test?: Test, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [element]\n * @param {Test | undefined} [test]\n * @param {number | null | undefined} [index]\n * @param {Parents | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (element, test, index, parent, context) {\n const check = convertElement(test)\n\n if (\n index !== null &&\n index !== undefined &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite `index`')\n }\n\n if (\n parent !== null &&\n parent !== undefined &&\n (!parent.type || !parent.children)\n ) {\n throw new Error('Expected valid `parent`')\n }\n\n if (\n (index === null || index === undefined) !==\n (parent === null || parent === undefined)\n ) {\n throw new Error('Expected both `index` and `parent`')\n }\n\n return looksLikeAnElement(element)\n ? check.call(context, element, index, parent)\n : false\n }\n )\n\n/**\n * Generate a check from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * an `element`, `index`, and `parent`.\n *\n * @param test\n * A test for a specific element.\n * @returns\n * A check.\n */\nexport const convertElement =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((test: Condition) => (element: unknown, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & Predicate) &\n * ((test: Condition) => (element: unknown, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & {tagName: Condition}) &\n * ((test?: null | undefined) => (element?: unknown, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test | null | undefined} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return element\n }\n\n if (typeof test === 'string') {\n return tagNameFactory(test)\n }\n\n // Assume array.\n if (typeof test === 'object') {\n return anyFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or array as `test`')\n }\n )\n\n/**\n * Handle multiple tests.\n *\n * @param {Array} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n /** @type {Array} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convertElement(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn a string into a test for an element with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction tagNameFactory(check) {\n return castFactory(tagName)\n\n /**\n * @param {Element} element\n * @returns {boolean}\n */\n function tagName(element) {\n return element.tagName === check\n }\n}\n\n/**\n * Turn a custom test into a test for an element that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeAnElement(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\n/**\n * Make sure something is an element.\n *\n * @param {unknown} element\n * @returns {element is Element}\n */\nfunction element(element) {\n return Boolean(\n element &&\n typeof element === 'object' &&\n 'type' in element &&\n element.type === 'element' &&\n 'tagName' in element &&\n typeof element.tagName === 'string'\n )\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Element}\n */\nfunction looksLikeAnElement(value) {\n return (\n value !== null &&\n typeof value === 'object' &&\n 'type' in value &&\n 'tagName' in value\n )\n}\n","// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1\n// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\n\n// Windows paths like `c:\\`\nconst WINDOWS_PATH_REGEX = /^[a-zA-Z]:\\\\/;\n\nexport default function isAbsoluteUrl(url) {\n\tif (typeof url !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof url}\\``);\n\t}\n\n\tif (WINDOWS_PATH_REGEX.test(url)) {\n\t\treturn false;\n\t}\n\n\treturn ABSOLUTE_URL_REGEX.test(url);\n}\n","/**\n * Parse space-separated tokens to an array of strings.\n *\n * @param {string} value\n * Space-separated tokens.\n * @returns {Array}\n * List of tokens.\n */\nexport function parse(value) {\n const input = String(value || '').trim()\n return input ? input.split(/[ \\t\\n\\r\\f]+/g) : []\n}\n\n/**\n * Serialize an array of strings as space separated-tokens.\n *\n * @param {Array} values\n * List of tokens.\n * @returns {string}\n * Space-separated tokens.\n */\nexport function stringify(values) {\n return values.join(' ').trim()\n}\n","/**\n * @import {Node as UnistNode, Parent as UnistParent} from 'unist'\n * @import {VisitorResult} from 'unist-util-visit-parents'\n */\n\n/**\n * @typedef {Exclude | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n// To do: use types from `unist-util-visit-parents` when it’s released.\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate extends Value\n * ? Predicate\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends ReadonlyArray\n * ? MatchesOne\n * : MatchesOne\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent\n * | InternalAncestor, Max, Increment>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor>} BuildVisitorFromMatch\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Visited\n * Node type.\n * @template {UnistParent} Ancestor\n * Parent type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromMatch<\n * Matches,\n * Extract\n * >\n * )} BuildVisitorFromDescendants\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromDescendants<\n * InclusiveDescendant,\n * Check\n * >\n * )} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n * Node type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} testOrVisitor\n * `unist-util-is`-compatible test (optional, omit to pass a visitor).\n * @param {Visitor | boolean | null | undefined} [visitorOrReverse]\n * Handle each node (when test is omitted, pass `reverse`).\n * @param {boolean | null | undefined} [maybeReverse=false]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n /** @type {boolean | null | undefined} */\n let reverse\n /** @type {Test} */\n let test\n /** @type {Visitor} */\n let visitor\n\n if (\n typeof testOrVisitor === 'function' &&\n typeof visitorOrReverse !== 'function'\n ) {\n test = undefined\n visitor = testOrVisitor\n reverse = visitorOrReverse\n } else {\n // @ts-expect-error: assume the overload with test was given.\n test = testOrVisitor\n // @ts-expect-error: assume the overload with test was given.\n visitor = visitorOrReverse\n reverse = maybeReverse\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {UnistNode} node\n * @param {Array} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n const index = parent ? parent.children.indexOf(node) : undefined\n return visitor(node, index, parent)\n }\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-is-element').Test} Test\n */\n\n/**\n * @callback CreateContent\n * Create a target for the element.\n * @param {Element} element\n * Element to check.\n * @returns {Array | ElementContent | null | undefined}\n * Content to add.\n *\n * @callback CreateProperties\n * Create properties for an element.\n * @param {Element} element\n * Element to check.\n * @returns {Properties | null | undefined}\n * Properties to add.\n *\n * @callback CreateRel\n * Create a `rel` for the element.\n * @param {Element} element\n * Element to check.\n * @returns {Array | string | null | undefined}\n * `rel` to use.\n *\n * @callback CreateTarget\n * Create a `target` for the element.\n * @param {Element} element\n * Element to check.\n * @returns {Target | null | undefined}\n * `target` to use.\n *\n * @typedef Options\n * Configuration.\n * @property {Array | CreateContent | ElementContent | null | undefined} [content]\n * Content to insert at the end of external links (optional); will be\n * inserted in a `` element; useful for improving accessibility by\n * giving users advanced warning when opening a new window.\n * @property {CreateProperties | Properties | null | undefined} [contentProperties]\n * Properties to add to the `span` wrapping `content` (optional).\n * @property {CreateProperties | Properties | null | undefined} [properties]\n * Properties to add to the link itself (optional).\n * @property {Array | null | undefined} [protocols=['http', 'https']]\n * Protocols to check, such as `mailto` or `tel` (default: `['http',\n * 'https']`).\n * @property {Array | CreateRel | string | null | undefined} [rel=['nofollow']]\n * Link types to hint about the referenced documents (default:\n * `['nofollow']`); pass an empty array (`[]`) to not set `rel`s on links;\n * when using a `target`, add `noopener` and `noreferrer` to avoid\n * exploitation of the `window.opener` API.\n * @property {CreateTarget | Target | null | undefined} [target]\n * How to display referenced documents; the default (nothing) is to not set\n * `target`s on links.\n * @property {Test | null | undefined} [test]\n * Extra test to define which external link elements are modified (optional);\n * any test that can be given to `hast-util-is-element` is supported.\n *\n * @typedef {'_blank' | '_parent' | '_self' | '_top'} Target\n * Target.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {convertElement} from 'hast-util-is-element'\nimport isAbsoluteUrl from 'is-absolute-url'\nimport {parse} from 'space-separated-tokens'\nimport {visit} from 'unist-util-visit'\n\nconst defaultProtocols = ['http', 'https']\nconst defaultRel = ['nofollow']\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Automatically add `rel` (and `target`?) to external links.\n *\n * ###### Notes\n *\n * You should [likely not configure `target`][css-tricks].\n *\n * You should at least set `rel` to `['nofollow']`.\n * When using a `target`, add `noopener` and `noreferrer` to avoid exploitation\n * of the `window.opener` API.\n *\n * When using a `target`, you should set `content` to adhere to accessibility\n * guidelines by giving users advanced warning when opening a new window.\n *\n * [css-tricks]: https://css-tricks.com/use-target_blank/\n *\n * @param {Readonly | null | undefined} [options]\n * Configuration (optional).\n * @returns\n * Transform.\n */\nexport default function rehypeExternalLinks(options) {\n const settings = options || emptyOptions\n const protocols = settings.protocols || defaultProtocols\n const is = convertElement(settings.test)\n\n /**\n * Transform.\n *\n * @param {Root} tree\n * Tree.\n * @returns {undefined}\n * Nothing.\n */\n return function (tree) {\n visit(tree, 'element', function (node, index, parent) {\n if (\n node.tagName === 'a' &&\n typeof node.properties.href === 'string' &&\n is(node, index, parent)\n ) {\n const url = node.properties.href\n\n if (\n isAbsoluteUrl(url)\n ? protocols.includes(url.slice(0, url.indexOf(':')))\n : url.startsWith('//')\n ) {\n const contentRaw = createIfNeeded(settings.content, node)\n const content =\n contentRaw && !Array.isArray(contentRaw) ? [contentRaw] : contentRaw\n const relRaw = createIfNeeded(settings.rel, node) || defaultRel\n const rel = typeof relRaw === 'string' ? parse(relRaw) : relRaw\n const target = createIfNeeded(settings.target, node)\n\n const properties = createIfNeeded(settings.properties, node)\n\n if (properties) {\n Object.assign(node.properties, structuredClone(properties))\n }\n\n if (rel.length > 0) {\n node.properties.rel = [...rel]\n }\n\n if (target) {\n node.properties.target = target\n }\n\n if (content) {\n const properties =\n createIfNeeded(settings.contentProperties, node) || {}\n\n node.children.push({\n type: 'element',\n tagName: 'span',\n properties: structuredClone(properties),\n children: structuredClone(content)\n })\n }\n }\n }\n })\n }\n}\n\n/**\n * Call a function to get a return value or use the value.\n *\n * @template T\n * Type of value.\n * @param {T} value\n * Value.\n * @param {Element} element\n * Element.\n * @returns {T extends Function ? ReturnType : T}\n * Result.\n */\nfunction createIfNeeded(value, element) {\n return typeof value === 'function' ? value(element) : value\n}\n","/**\n * @typedef Options\n * Configuration for `stringify`.\n * @property {boolean} [padLeft=true]\n * Whether to pad a space before a token.\n * @property {boolean} [padRight=false]\n * Whether to pad a space after a token.\n */\n\n/**\n * @typedef {Options} StringifyOptions\n * Please use `StringifyOptions` instead.\n */\n\n/**\n * Parse comma-separated tokens to an array.\n *\n * @param {string} value\n * Comma-separated tokens.\n * @returns {Array}\n * List of tokens.\n */\nexport function parse(value) {\n /** @type {Array} */\n const tokens = []\n const input = String(value || '')\n let index = input.indexOf(',')\n let start = 0\n /** @type {boolean} */\n let end = false\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n const token = input.slice(start, index).trim()\n\n if (token || !end) {\n tokens.push(token)\n }\n\n start = index + 1\n index = input.indexOf(',', start)\n }\n\n return tokens\n}\n\n/**\n * Serialize an array of strings or numbers to comma-separated tokens.\n *\n * @param {Array} values\n * List of tokens.\n * @param {Options} [options]\n * Configuration for `stringify` (optional).\n * @returns {string}\n * Comma-separated tokens.\n */\nexport function stringify(values, options) {\n const settings = options || {}\n\n // Ensure the last empty entry is seen.\n const input = values[values.length - 1] === '' ? [...values, ''] : values\n\n return input\n .join(\n (settings.padRight ? ' ' : '') +\n ',' +\n (settings.padLeft === false ? '' : ' ')\n )\n .trim()\n}\n","/**\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [jsx=false]\n * Support JSX identifiers (default: `false`).\n */\n\nconst startRe = /[$_\\p{ID_Start}]/u\nconst contRe = /[$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst contReJsx = /[-$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst nameRe = /^[$_\\p{ID_Start}][$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\nconst nameReJsx = /^[$_\\p{ID_Start}][-$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Checks if the given code point can start an identifier.\n *\n * @param {number | undefined} code\n * Code point to check.\n * @returns {boolean}\n * Whether `code` can start an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function start(code) {\n return code ? startRe.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given code point can continue an identifier.\n *\n * @param {number | undefined} code\n * Code point to check.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {boolean}\n * Whether `code` can continue an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function cont(code, options) {\n const settings = options || emptyOptions\n const re = settings.jsx ? contReJsx : contRe\n return code ? re.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given value is a valid identifier name.\n *\n * @param {string} name\n * Identifier to check.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {boolean}\n * Whether `name` can be an identifier.\n */\nexport function name(name, options) {\n const settings = options || emptyOptions\n const re = settings.jsx ? nameReJsx : nameRe\n return re.test(name)\n}\n","/**\n * @typedef {import('hast').Nodes} Nodes\n */\n\n// HTML whitespace expression.\n// See .\nconst re = /[ \\t\\n\\f\\r]/g\n\n/**\n * Check if the given value is *inter-element whitespace*.\n *\n * @param {Nodes | string} thing\n * Thing to check (`Node` or `string`).\n * @returns {boolean}\n * Whether the `value` is inter-element whitespace (`boolean`): consisting of\n * zero or more of space, tab (`\\t`), line feed (`\\n`), carriage return\n * (`\\r`), or form feed (`\\f`); if a node is passed it must be a `Text` node,\n * whose `value` field is checked.\n */\nexport function whitespace(thing) {\n return typeof thing === 'object'\n ? thing.type === 'text'\n ? empty(thing.value)\n : false\n : empty(thing)\n}\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nfunction empty(value) {\n return value.replace(re, '') === ''\n}\n","/**\n * @import {Schema as SchemaType, Space} from 'property-information'\n */\n\n/** @type {SchemaType} */\nexport class Schema {\n /**\n * @param {SchemaType['property']} property\n * Property.\n * @param {SchemaType['normal']} normal\n * Normal.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Schema.\n */\n constructor(property, normal, space) {\n this.normal = normal\n this.property = property\n\n if (space) {\n this.space = space\n }\n }\n}\n\nSchema.prototype.normal = {}\nSchema.prototype.property = {}\nSchema.prototype.space = undefined\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {ReadonlyArray} definitions\n * Definitions.\n * @param {Space | undefined} [space]\n * Space.\n * @returns {Schema}\n * Schema.\n */\nexport function merge(definitions, space) {\n /** @type {Record} */\n const property = {}\n /** @type {Record} */\n const normal = {}\n\n for (const definition of definitions) {\n Object.assign(property, definition.property)\n Object.assign(normal, definition.normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * Get the cleaned case insensitive form of an attribute or property.\n *\n * @param {string} value\n * An attribute-like or property-like name.\n * @returns {string}\n * Value that can be used to look up the properly cased property on a\n * `Schema`.\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","/**\n * @import {Info as InfoType} from 'property-information'\n */\n\n/** @type {InfoType} */\nexport class Info {\n /**\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @returns\n * Info.\n */\n constructor(property, attribute) {\n this.attribute = attribute\n this.property = property\n }\n}\n\nInfo.prototype.attribute = ''\nInfo.prototype.booleanish = false\nInfo.prototype.boolean = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.defined = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.number = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.property = ''\nInfo.prototype.spaceSeparated = false\nInfo.prototype.space = undefined\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","/**\n * @import {Space} from 'property-information'\n */\n\nimport {Info} from './info.js'\nimport * as types from './types.js'\n\nconst checks = /** @type {ReadonlyArray} */ (\n Object.keys(types)\n)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @param {number | null | undefined} [mask]\n * Mask.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Info.\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @template {keyof DefinedInfo} Key\n * Key type.\n * @param {DefinedInfo} values\n * Info.\n * @param {Key} key\n * Key.\n * @param {DefinedInfo[Key]} value\n * Value.\n * @returns {undefined}\n * Nothing.\n */\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value\n }\n}\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\n/**\n * @typedef Definition\n * Definition of a schema.\n * @property {Record | undefined} [attributes]\n * Normalzed names to special attribute case.\n * @property {ReadonlyArray | undefined} [mustUseProperty]\n * Normalized names that must be set as properties.\n * @property {Record} properties\n * Property names to their types.\n * @property {Space | undefined} [space]\n * Space.\n * @property {Transform} transform\n * Transform a property name.\n */\n\n/**\n * @callback Transform\n * Transform.\n * @param {Record} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Attribute.\n */\n\nimport {normalize} from '../normalize.js'\nimport {DefinedInfo} from './defined-info.js'\nimport {Schema} from './schema.js'\n\n/**\n * @param {Definition} definition\n * Definition.\n * @returns {Schema}\n * Schema.\n */\nexport function create(definition) {\n /** @type {Record} */\n const properties = {}\n /** @type {Record} */\n const normals = {}\n\n for (const [property, value] of Object.entries(definition.properties)) {\n const info = new DefinedInfo(\n property,\n definition.transform(definition.attributes || {}, property),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(property)\n ) {\n info.mustUseProperty = true\n }\n\n properties[property] = info\n\n normals[normalize(property)] = property\n normals[normalize(info.attribute)] = property\n }\n\n return new Schema(properties, normals, definition.space)\n}\n","import {create} from './util/create.js'\nimport {booleanish, number, spaceSeparated} from './util/types.js'\n\nexport const aria = create({\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n },\n transform(_, property) {\n return property === 'role'\n ? property\n : 'aria-' + property.slice(4).toLowerCase()\n }\n})\n","/**\n * @param {Record} attributes\n * Attributes.\n * @param {string} attribute\n * Attribute.\n * @returns {string}\n * Transformed attribute.\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Transformed property.\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n booleanish,\n boolean,\n commaSeparated,\n number,\n overloadedBoolean,\n spaceSeparated\n} from './util/types.js'\n\nexport const html = create({\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: overloadedBoolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootClonable: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n writingSuggestions: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // ``. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // ``. List of URIs to archives\n axis: null, // `` and ``. Use `scope` on ``\n background: null, // ``. Use CSS `background-image` instead\n bgColor: null, // `` and table elements. Use CSS `background-color` instead\n border: number, // ``. Use CSS `border-width` instead,\n borderColor: null, // `
    `. Use CSS `border-color` instead,\n bottomMargin: number, // ``\n cellPadding: null, // `
    `\n cellSpacing: null, // `
    `\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // ``\n clear: null, // `
    `. Use CSS `clear` instead\n code: null, // ``\n codeBase: null, // ``\n codeType: null, // ``\n color: null, // `` and `
    `. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // ``\n event: null, // `\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code);\n buffer = '';\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In raw continuation, after ` | \n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase();\n if (htmlRawNames.includes(name)) {\n effects.consume(code);\n return continuationClose;\n }\n return continuation(code);\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n // Always the case.\n effects.consume(code);\n buffer += String.fromCharCode(code);\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code);\n return continuationClose;\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"htmlFlowData\");\n return continuationAfter(code);\n }\n effects.consume(code);\n return continuationClose;\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit(\"htmlFlow\");\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start;\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > |
    \n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return effects.attempt(blankLine, ok, nok);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiAlphanumeric, asciiAlpha, markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable | undefined} */\n let marker;\n /** @type {number} */\n let index;\n /** @type {State} */\n let returnState;\n return start;\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"htmlText\");\n effects.enter(\"htmlTextData\");\n effects.consume(code);\n return open;\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a c\n * ^\n * > | a c\n * ^\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === 47) {\n effects.consume(code);\n return tagCloseStart;\n }\n if (code === 63) {\n effects.consume(code);\n return instruction;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagOpen;\n }\n return nok(code);\n }\n\n /**\n * After ` | a c\n * ^\n * > | a c\n * ^\n * > | a &<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n return commentOpenInside;\n }\n if (code === 91) {\n effects.consume(code);\n index = 0;\n return cdataOpenInside;\n }\n if (asciiAlpha(code)) {\n effects.consume(code);\n return declaration;\n }\n return nok(code);\n }\n\n /**\n * In a comment, after ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return nok(code);\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 45) {\n effects.consume(code);\n return commentClose;\n }\n if (markdownLineEnding(code)) {\n returnState = comment;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return comment;\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return comment(code);\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62 ? end(code) : code === 45 ? commentClose(code) : comment(code);\n }\n\n /**\n * After ` | a &<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = \"CDATA[\";\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n return index === value.length ? cdata : cdataOpenInside;\n }\n return nok(code);\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a &<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataClose;\n }\n if (markdownLineEnding(code)) {\n returnState = cdata;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return cdata;\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code);\n }\n if (markdownLineEnding(code)) {\n returnState = declaration;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return declaration;\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 63) {\n effects.consume(code);\n return instructionClose;\n }\n if (markdownLineEnding(code)) {\n returnState = instruction;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return instruction;\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagClose;\n }\n return nok(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagClose;\n }\n return tagCloseBetween(code);\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagCloseBetween;\n }\n return end(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpen;\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code);\n return end;\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenBetween;\n }\n return end(code);\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n return tagOpenAttributeNameAfter(code);\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeNameAfter;\n }\n return tagOpenBetween(code);\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n if (code === 34 || code === 39) {\n effects.consume(code);\n marker = code;\n return tagOpenAttributeValueQuoted;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code);\n marker = undefined;\n return tagOpenAttributeValueQuotedAfter;\n }\n if (code === null) {\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueQuoted;\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 96) {\n return nok(code);\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code);\n effects.exit(\"htmlTextData\");\n effects.exit(\"htmlText\");\n return ok;\n }\n return nok(code);\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a \n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit(\"htmlTextData\");\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineEndingAfter;\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code) ? factorySpace(effects, lineEndingAfterPrefix, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : lineEndingAfterPrefix(code);\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter(\"htmlTextData\");\n return returnState(code);\n }\n}","/**\n * @import {\n * Construct,\n * Event,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n resolveAll: resolveAllLabelEnd,\n resolveTo: resolveToLabelEnd,\n tokenize: tokenizeLabelEnd\n};\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n};\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n};\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n};\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1;\n /** @type {Array} */\n const newEvents = [];\n while (++index < events.length) {\n const token = events[index][1];\n newEvents.push(events[index]);\n if (token.type === \"labelImage\" || token.type === \"labelLink\" || token.type === \"labelEnd\") {\n // Remove the marker.\n const offset = token.type === \"labelImage\" ? 4 : 2;\n token.type = \"data\";\n index += offset;\n }\n }\n\n // If the events are equal, we don't have to copy newEvents to events\n if (events.length !== newEvents.length) {\n splice(events, 0, events.length, newEvents);\n }\n return events;\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length;\n let offset = 0;\n /** @type {Token} */\n let token;\n /** @type {number | undefined} */\n let open;\n /** @type {number | undefined} */\n let close;\n /** @type {Array} */\n let media;\n\n // Find an opening.\n while (index--) {\n token = events[index][1];\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (token.type === \"link\" || token.type === \"labelLink\" && token._inactive) {\n break;\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === \"labelLink\") {\n token._inactive = true;\n }\n } else if (close) {\n if (events[index][0] === 'enter' && (token.type === \"labelImage\" || token.type === \"labelLink\") && !token._balanced) {\n open = index;\n if (token.type !== \"labelLink\") {\n offset = 2;\n break;\n }\n }\n } else if (token.type === \"labelEnd\") {\n close = index;\n }\n }\n const group = {\n type: events[open][1].type === \"labelLink\" ? \"link\" : \"image\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[events.length - 1][1].end\n }\n };\n const label = {\n type: \"label\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[close][1].end\n }\n };\n const text = {\n type: \"labelText\",\n start: {\n ...events[open + offset + 2][1].end\n },\n end: {\n ...events[close - 2][1].start\n }\n };\n media = [['enter', group, context], ['enter', label, context]];\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3));\n\n // Text open.\n media = push(media, [['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n media = push(media, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + offset + 4, close - 3), context));\n\n // Text close, marker close, label close.\n media = push(media, [['exit', text, context], events[close - 2], events[close - 1], ['exit', label, context]]);\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1));\n\n // Media close.\n media = push(media, [['exit', group, context]]);\n splice(events, open, events.length, media);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n /** @type {Token} */\n let labelStart;\n /** @type {boolean} */\n let defined;\n\n // Find an opening.\n while (index--) {\n if ((self.events[index][1].type === \"labelImage\" || self.events[index][1].type === \"labelLink\") && !self.events[index][1]._balanced) {\n labelStart = self.events[index][1];\n break;\n }\n }\n return start;\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code);\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code);\n }\n defined = self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })));\n effects.enter(\"labelEnd\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelEnd\");\n return after;\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(resourceConstruct, labelEndOk, defined ? labelEndOk : labelEndNok)(code);\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(referenceFullConstruct, labelEndOk, defined ? referenceNotFull : labelEndNok)(code);\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code);\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(referenceCollapsedConstruct, labelEndOk, labelEndNok)(code);\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code);\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true;\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart;\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter(\"resource\");\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n return resourceBefore;\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceOpen)(code) : resourceOpen(code);\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code);\n }\n return factoryDestination(effects, resourceDestinationAfter, resourceDestinationMissing, \"resourceDestination\", \"resourceDestinationLiteral\", \"resourceDestinationLiteralMarker\", \"resourceDestinationRaw\", \"resourceDestinationString\", 32)(code);\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceBetween)(code) : resourceEnd(code);\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code);\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(effects, resourceTitleAfter, nok, \"resourceTitle\", \"resourceTitleMarker\", \"resourceTitleString\")(code);\n }\n return resourceEnd(code);\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceEnd)(code) : resourceEnd(code);\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n effects.exit(\"resource\");\n return ok;\n }\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this;\n return referenceFull;\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(self, effects, referenceFullAfter, referenceFullMissing, \"reference\", \"referenceMarker\", \"referenceString\")(code);\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1))) ? ok(code) : nok(code);\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart;\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter(\"reference\");\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n return referenceCollapsedOpen;\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n effects.exit(\"reference\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartImage\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelImage\");\n effects.enter(\"labelImageMarker\");\n effects.consume(code);\n effects.exit(\"labelImageMarker\");\n return open;\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelImage\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n *

    !^a

    \n *

    !^a

    \n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartLink\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelLink\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelLink\");\n return after;\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start;\n\n /** @type {State} */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, ok, \"linePrefix\");\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0;\n /** @type {NonNullable} */\n let marker;\n return start;\n\n /**\n * Start of thematic break.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"thematicBreak\");\n // To do: parse indent like `markdown-rs`.\n return before(code);\n }\n\n /**\n * After optional whitespace, at marker.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n marker = code;\n return atBreak(code);\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.enter(\"thematicBreakSequence\");\n return sequence(code);\n }\n if (size >= 3 && (code === null || markdownLineEnding(code))) {\n effects.exit(\"thematicBreak\");\n return ok(code);\n }\n return nok(code);\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function sequence(code) {\n if (code === marker) {\n effects.consume(code);\n size++;\n return sequence;\n }\n effects.exit(\"thematicBreakSequence\");\n return markdownSpace(code) ? factorySpace(effects, atBreak, \"whitespace\")(code) : atBreak(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * Exiter,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiDigit, markdownSpace } from 'micromark-util-character';\nimport { blankLine } from './blank-line.js';\nimport { thematicBreak } from './thematic-break.js';\n\n/** @type {Construct} */\nexport const list = {\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd,\n name: 'list',\n tokenize: tokenizeListStart\n};\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n partial: true,\n tokenize: tokenizeListItemPrefixWhitespace\n};\n\n/** @type {Construct} */\nconst indentConstruct = {\n partial: true,\n tokenize: tokenizeIndent\n};\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this;\n const tail = self.events[self.events.length - 1];\n let initialSize = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n let size = 0;\n return start;\n\n /** @type {State} */\n function start(code) {\n const kind = self.containerState.type || (code === 42 || code === 43 || code === 45 ? \"listUnordered\" : \"listOrdered\");\n if (kind === \"listUnordered\" ? !self.containerState.marker || code === self.containerState.marker : asciiDigit(code)) {\n if (!self.containerState.type) {\n self.containerState.type = kind;\n effects.enter(kind, {\n _container: true\n });\n }\n if (kind === \"listUnordered\") {\n effects.enter(\"listItemPrefix\");\n return code === 42 || code === 45 ? effects.check(thematicBreak, nok, atMarker)(code) : atMarker(code);\n }\n if (!self.interrupt || code === 49) {\n effects.enter(\"listItemPrefix\");\n effects.enter(\"listItemValue\");\n return inside(code);\n }\n }\n return nok(code);\n }\n\n /** @type {State} */\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code);\n return inside;\n }\n if ((!self.interrupt || size < 2) && (self.containerState.marker ? code === self.containerState.marker : code === 41 || code === 46)) {\n effects.exit(\"listItemValue\");\n return atMarker(code);\n }\n return nok(code);\n }\n\n /**\n * @type {State}\n **/\n function atMarker(code) {\n effects.enter(\"listItemMarker\");\n effects.consume(code);\n effects.exit(\"listItemMarker\");\n self.containerState.marker = self.containerState.marker || code;\n return effects.check(blankLine,\n // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank, effects.attempt(listItemPrefixWhitespaceConstruct, endOfPrefix, otherPrefix));\n }\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.initialBlankLine = true;\n initialSize++;\n return endOfPrefix(code);\n }\n\n /** @type {State} */\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter(\"listItemPrefixWhitespace\");\n effects.consume(code);\n effects.exit(\"listItemPrefixWhitespace\");\n return endOfPrefix;\n }\n return nok(code);\n }\n\n /** @type {State} */\n function endOfPrefix(code) {\n self.containerState.size = initialSize + self.sliceSerialize(effects.exit(\"listItemPrefix\"), true).length;\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this;\n self.containerState._closeFlow = undefined;\n return effects.check(blankLine, onBlank, notBlank);\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.furtherBlankLines = self.containerState.furtherBlankLines || self.containerState.initialBlankLine;\n\n // We have a blank line.\n // Still, try to consume at most the items size.\n return factorySpace(effects, ok, \"listItemIndent\", self.containerState.size + 1)(code);\n }\n\n /** @type {State} */\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return notInCurrentItem(code);\n }\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code);\n }\n\n /** @type {State} */\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true;\n // As we’re closing flow, we’re no longer interrupting.\n self.interrupt = undefined;\n // Always populated by defaults.\n\n return factorySpace(effects, effects.attempt(list, ok, nok), \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this;\n return factorySpace(effects, afterPrefix, \"listItemIndent\", self.containerState.size + 1);\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"listItemIndent\" && tail[2].sliceSerialize(tail[1], true).length === self.containerState.size ? ok(code) : nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Exiter}\n */\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type);\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this;\n\n // Always populated by defaults.\n\n return factorySpace(effects, afterPrefix, \"listItemPrefixWhitespace\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4 + 1);\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return !markdownSpace(code) && tail && tail[1].type === \"listItemPrefixWhitespace\" ? ok(code) : nok(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n resolveTo: resolveToSetextUnderline,\n tokenize: tokenizeSetextUnderline\n};\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n // To do: resolve like `markdown-rs`.\n let index = events.length;\n /** @type {number | undefined} */\n let content;\n /** @type {number | undefined} */\n let text;\n /** @type {number | undefined} */\n let definition;\n\n // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === \"content\") {\n content = index;\n break;\n }\n if (events[index][1].type === \"paragraph\") {\n text = index;\n }\n }\n // Exit\n else {\n if (events[index][1].type === \"content\") {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1);\n }\n if (!definition && events[index][1].type === \"definition\") {\n definition = index;\n }\n }\n }\n const heading = {\n type: \"setextHeading\",\n start: {\n ...events[content][1].start\n },\n end: {\n ...events[events.length - 1][1].end\n }\n };\n\n // Change the paragraph to setext heading text.\n events[text][1].type = \"setextHeadingText\";\n\n // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n if (definition) {\n events.splice(text, 0, ['enter', heading, context]);\n events.splice(definition + 1, 0, ['exit', events[content][1], context]);\n events[content][1].end = {\n ...events[definition][1].end\n };\n } else {\n events[content][1] = heading;\n }\n\n // Add the heading exit at the end.\n events.push(['exit', heading, context]);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable} */\n let marker;\n return start;\n\n /**\n * At start of heading (setext) underline.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n let index = self.events.length;\n /** @type {boolean | undefined} */\n let paragraph;\n // Find an opening.\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (self.events[index][1].type !== \"lineEnding\" && self.events[index][1].type !== \"linePrefix\" && self.events[index][1].type !== \"content\") {\n paragraph = self.events[index][1].type === \"paragraph\";\n break;\n }\n }\n\n // To do: handle lazy/pierce like `markdown-rs`.\n // To do: parse indent like `markdown-rs`.\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter(\"setextHeadingLine\");\n marker = code;\n return before(code);\n }\n return nok(code);\n }\n\n /**\n * After optional whitespace, at `-` or `=`.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter(\"setextHeadingLineSequence\");\n return inside(code);\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n effects.exit(\"setextHeadingLineSequence\");\n return markdownSpace(code) ? factorySpace(effects, after, \"lineSuffix\")(code) : after(code);\n }\n\n /**\n * After sequence, after optional whitespace.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"setextHeadingLine\");\n return ok(code);\n }\n return nok(code);\n }\n}","/**\n * @import {\n * InitialConstruct,\n * Initializer,\n * State,\n * TokenizeContext\n * } from 'micromark-util-types'\n */\n\nimport { blankLine, content } from 'micromark-core-commonmark';\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n};\n\n/**\n * @this {TokenizeContext}\n * Self.\n * @type {Initializer}\n * Initializer.\n */\nfunction initializeFlow(effects) {\n const self = this;\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine, atBlankEnding,\n // Try to parse initial flow (essentially, only code).\n effects.attempt(this.parser.constructs.flowInitial, afterConstruct, factorySpace(effects, effects.attempt(this.parser.constructs.flow, afterConstruct, effects.attempt(content, afterConstruct)), \"linePrefix\")));\n return initial;\n\n /** @type {State} */\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"lineEndingBlank\");\n effects.consume(code);\n effects.exit(\"lineEndingBlank\");\n self.currentConstruct = undefined;\n return initial;\n }\n\n /** @type {State} */\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n self.currentConstruct = undefined;\n return initial;\n }\n}","/**\n * @import {\n * Code,\n * InitialConstruct,\n * Initializer,\n * Resolver,\n * State,\n * TokenizeContext\n * } from 'micromark-util-types'\n */\n\nexport const resolver = {\n resolveAll: createResolver()\n};\nexport const string = initializeFactory('string');\nexport const text = initializeFactory('text');\n\n/**\n * @param {'string' | 'text'} field\n * Field.\n * @returns {InitialConstruct}\n * Construct.\n */\nfunction initializeFactory(field) {\n return {\n resolveAll: createResolver(field === 'text' ? resolveAllLineSuffixes : undefined),\n tokenize: initializeText\n };\n\n /**\n * @this {TokenizeContext}\n * Context.\n * @type {Initializer}\n */\n function initializeText(effects) {\n const self = this;\n const constructs = this.parser.constructs[field];\n const text = effects.attempt(constructs, start, notText);\n return start;\n\n /** @type {State} */\n function start(code) {\n return atBreak(code) ? text(code) : notText(code);\n }\n\n /** @type {State} */\n function notText(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"data\");\n effects.consume(code);\n return data;\n }\n\n /** @type {State} */\n function data(code) {\n if (atBreak(code)) {\n effects.exit(\"data\");\n return text(code);\n }\n\n // Data.\n effects.consume(code);\n return data;\n }\n\n /**\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether the code is a break.\n */\n function atBreak(code) {\n if (code === null) {\n return true;\n }\n const list = constructs[code];\n let index = -1;\n if (list) {\n // Always populated by defaults.\n\n while (++index < list.length) {\n const item = list[index];\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true;\n }\n }\n }\n return false;\n }\n }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n * Resolver.\n * @returns {Resolver}\n * Resolver.\n */\nfunction createResolver(extraResolver) {\n return resolveAllText;\n\n /** @type {Resolver} */\n function resolveAllText(events, context) {\n let index = -1;\n /** @type {number | undefined} */\n let enter;\n\n // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === \"data\") {\n enter = index;\n index++;\n }\n } else if (!events[index] || events[index][1].type !== \"data\") {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return extraResolver ? extraResolver(events, context) : events;\n }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0; // Skip first.\n\n while (++eventIndex <= events.length) {\n if ((eventIndex === events.length || events[eventIndex][1].type === \"lineEnding\") && events[eventIndex - 1][1].type === \"data\") {\n const data = events[eventIndex - 1][1];\n const chunks = context.sliceStream(data);\n let index = chunks.length;\n let bufferIndex = -1;\n let size = 0;\n /** @type {boolean | undefined} */\n let tabs;\n while (index--) {\n const chunk = chunks[index];\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length;\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++;\n bufferIndex--;\n }\n if (bufferIndex) break;\n bufferIndex = -1;\n }\n // Number\n else if (chunk === -2) {\n tabs = true;\n size++;\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++;\n break;\n }\n }\n\n // Allow final trailing whitespace.\n if (context._contentTypeTextTrailing && eventIndex === events.length) {\n size = 0;\n }\n if (size) {\n const token = {\n type: eventIndex === events.length || tabs || size < 2 ? \"lineSuffix\" : \"hardBreakTrailing\",\n start: {\n _bufferIndex: index ? bufferIndex : data.start._bufferIndex + bufferIndex,\n _index: data.start._index + index,\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size\n },\n end: {\n ...data.end\n }\n };\n data.end = {\n ...token.start\n };\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token);\n } else {\n events.splice(eventIndex, 0, ['enter', token, context], ['exit', token, context]);\n eventIndex += 2;\n }\n }\n eventIndex++;\n }\n }\n return events;\n}","/**\n * @import {Extension} from 'micromark-util-types'\n */\n\nimport { attention, autolink, blockQuote, characterEscape, characterReference, codeFenced, codeIndented, codeText, definition, hardBreakEscape, headingAtx, htmlFlow, htmlText, labelEnd, labelStartImage, labelStartLink, lineEnding, list, setextUnderline, thematicBreak } from 'micromark-core-commonmark';\nimport { resolver as resolveText } from './initialize/text.js';\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n};\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n};\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n};\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n};\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n};\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n};\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n};\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n};\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n};","/**\n * @import {\n * Chunk,\n * Code,\n * ConstructRecord,\n * Construct,\n * Effects,\n * InitialConstruct,\n * ParseContext,\n * Point,\n * State,\n * TokenizeContext,\n * Token\n * } from 'micromark-util-types'\n */\n\n/**\n * @callback Restore\n * Restore the state.\n * @returns {undefined}\n * Nothing.\n *\n * @typedef Info\n * Info.\n * @property {Restore} restore\n * Restore.\n * @property {number} from\n * From.\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * Construct.\n * @param {Info} info\n * Info.\n * @returns {undefined}\n * Nothing.\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * Parser.\n * @param {InitialConstruct} initialize\n * Construct.\n * @param {Omit | undefined} [from]\n * Point (optional).\n * @returns {TokenizeContext}\n * Context.\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = {\n _bufferIndex: -1,\n _index: 0,\n line: from && from.line || 1,\n column: from && from.column || 1,\n offset: from && from.offset || 0\n };\n /** @type {Record} */\n const columnStart = {};\n /** @type {Array} */\n const resolveAllConstructs = [];\n /** @type {Array} */\n let chunks = [];\n /** @type {Array} */\n let stack = [];\n /** @type {boolean | undefined} */\n let consumed = true;\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n consume,\n enter,\n exit,\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n };\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n code: null,\n containerState: {},\n defineSkip,\n events: [],\n now,\n parser,\n previous: null,\n sliceSerialize,\n sliceStream,\n write\n };\n\n /**\n * The state function.\n *\n * @type {State | undefined}\n */\n let state = initialize.tokenize.call(context, effects);\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode;\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize);\n }\n return context;\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice);\n main();\n\n // Exit if we’re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return [];\n }\n addResult(initialize, 0);\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context);\n return context.events;\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs);\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token);\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n } = point;\n return {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n };\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column;\n accountForPotentialSkip();\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {undefined}\n * Nothing.\n */\n function main() {\n /** @type {number} */\n let chunkIndex;\n while (point._index < chunks.length) {\n const chunk = chunks[point._index];\n\n // If we’re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index;\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0;\n }\n while (point._index === chunkIndex && point._bufferIndex < chunk.length) {\n go(chunk.charCodeAt(point._bufferIndex));\n }\n } else {\n go(chunk);\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * Code.\n * @returns {undefined}\n * Nothing.\n */\n function go(code) {\n consumed = undefined;\n expectedCode = code;\n state = state(code);\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++;\n point.column = 1;\n point.offset += code === -3 ? 2 : 1;\n accountForPotentialSkip();\n } else if (code !== -1) {\n point.column++;\n point.offset++;\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++;\n } else {\n point._bufferIndex++;\n\n // At end of string chunk.\n if (point._bufferIndex ===\n // Points w/ non-negative `_bufferIndex` reference\n // strings.\n /** @type {string} */\n chunks[point._index].length) {\n point._bufferIndex = -1;\n point._index++;\n }\n }\n\n // Expose the previous character.\n context.previous = code;\n\n // Mark as consumed.\n consumed = true;\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {};\n token.type = type;\n token.start = now();\n context.events.push(['enter', token, context]);\n stack.push(token);\n return token;\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop();\n token.end = now();\n context.events.push(['exit', token, context]);\n return token;\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from);\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore();\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * Callback.\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n * Fields.\n */\n function constructFactory(onreturn, fields) {\n return hook;\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array | ConstructRecord | Construct} constructs\n * Constructs.\n * @param {State} returnState\n * State.\n * @param {State | undefined} [bogusState]\n * State.\n * @returns {State}\n * State.\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {ReadonlyArray} */\n let listOfConstructs;\n /** @type {number} */\n let constructIndex;\n /** @type {Construct} */\n let currentConstruct;\n /** @type {Info} */\n let info;\n return Array.isArray(constructs) ? /* c8 ignore next 1 */\n handleListOfConstructs(constructs) : 'tokenize' in constructs ?\n // Looks like a construct.\n handleListOfConstructs([(/** @type {Construct} */constructs)]) : handleMapOfConstructs(constructs);\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleMapOfConstructs(map) {\n return start;\n\n /** @type {State} */\n function start(code) {\n const left = code !== null && map[code];\n const all = code !== null && map.null;\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(left) ? left : left ? [left] : []), ...(Array.isArray(all) ? all : all ? [all] : [])];\n return handleListOfConstructs(list)(code);\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {ReadonlyArray} list\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list;\n constructIndex = 0;\n if (list.length === 0) {\n return bogusState;\n }\n return handleConstruct(list[constructIndex]);\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * Construct.\n * @returns {State}\n * State.\n */\n function handleConstruct(construct) {\n return start;\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store();\n currentConstruct = construct;\n if (!construct.partial) {\n context.currentConstruct = construct;\n }\n\n // Always populated by defaults.\n\n if (construct.name && context.parser.constructs.disable.null.includes(construct.name)) {\n return nok(code);\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context, effects, ok, nok)(code);\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true;\n onreturn(currentConstruct, info);\n return returnState;\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true;\n info.restore();\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex]);\n }\n return bogusState;\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * Construct.\n * @param {number} from\n * From.\n * @returns {undefined}\n * Nothing.\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct);\n }\n if (construct.resolve) {\n splice(context.events, from, context.events.length - from, construct.resolve(context.events.slice(from), context));\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context);\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n * Info.\n */\n function store() {\n const startPoint = now();\n const startPrevious = context.previous;\n const startCurrentConstruct = context.currentConstruct;\n const startEventsIndex = context.events.length;\n const startStack = Array.from(stack);\n return {\n from: startEventsIndex,\n restore\n };\n\n /**\n * Restore state.\n *\n * @returns {undefined}\n * Nothing.\n */\n function restore() {\n point = startPoint;\n context.previous = startPrevious;\n context.currentConstruct = startCurrentConstruct;\n context.events.length = startEventsIndex;\n stack = startStack;\n accountForPotentialSkip();\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {undefined}\n * Nothing.\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line];\n point.offset += columnStart[point.line] - 1;\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {ReadonlyArray} chunks\n * Chunks.\n * @param {Pick} token\n * Token.\n * @returns {Array}\n * Chunks.\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index;\n const startBufferIndex = token.start._bufferIndex;\n const endIndex = token.end._index;\n const endBufferIndex = token.end._bufferIndex;\n /** @type {Array} */\n let view;\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)];\n } else {\n view = chunks.slice(startIndex, endIndex);\n if (startBufferIndex > -1) {\n const head = view[0];\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex);\n /* c8 ignore next 4 -- used to be used, no longer */\n } else {\n view.shift();\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex));\n }\n }\n return view;\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {ReadonlyArray} chunks\n * Chunks.\n * @param {boolean | undefined} [expandTabs=false]\n * Whether to expand tabs (default: `false`).\n * @returns {string}\n * Result.\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1;\n /** @type {Array} */\n const result = [];\n /** @type {boolean | undefined} */\n let atTab;\n while (++index < chunks.length) {\n const chunk = chunks[index];\n /** @type {string} */\n let value;\n if (typeof chunk === 'string') {\n value = chunk;\n } else switch (chunk) {\n case -5:\n {\n value = \"\\r\";\n break;\n }\n case -4:\n {\n value = \"\\n\";\n break;\n }\n case -3:\n {\n value = \"\\r\" + \"\\n\";\n break;\n }\n case -2:\n {\n value = expandTabs ? \" \" : \"\\t\";\n break;\n }\n case -1:\n {\n if (!expandTabs && atTab) continue;\n value = \" \";\n break;\n }\n default:\n {\n // Currently only replacement character.\n value = String.fromCharCode(chunk);\n }\n }\n atTab = chunk === -2;\n result.push(value);\n }\n return result.join('');\n}","/**\n * @import {\n * Create,\n * FullNormalizedExtension,\n * InitialConstruct,\n * ParseContext,\n * ParseOptions\n * } from 'micromark-util-types'\n */\n\nimport { combineExtensions } from 'micromark-util-combine-extensions';\nimport { content } from './initialize/content.js';\nimport { document } from './initialize/document.js';\nimport { flow } from './initialize/flow.js';\nimport { string, text } from './initialize/text.js';\nimport * as defaultConstructs from './constructs.js';\nimport { createTokenizer } from './create-tokenizer.js';\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * Configuration (optional).\n * @returns {ParseContext}\n * Parser.\n */\nexport function parse(options) {\n const settings = options || {};\n const constructs = /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])]);\n\n /** @type {ParseContext} */\n const parser = {\n constructs,\n content: create(content),\n defined: [],\n document: create(document),\n flow: create(flow),\n lazy: {},\n string: create(string),\n text: create(text)\n };\n return parser;\n\n /**\n * @param {InitialConstruct} initial\n * Construct to start with.\n * @returns {Create}\n * Create a tokenizer.\n */\n function create(initial) {\n return creator;\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from);\n }\n }\n}","/**\n * @import {Event} from 'micromark-util-types'\n */\n\nimport { subtokenize } from 'micromark-util-subtokenize';\n\n/**\n * @param {Array} events\n * Events.\n * @returns {Array}\n * Events.\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events;\n}","/**\n * @import {Chunk, Code, Encoding, Value} from 'micromark-util-types'\n */\n\n/**\n * @callback Preprocessor\n * Preprocess a value.\n * @param {Value} value\n * Value.\n * @param {Encoding | null | undefined} [encoding]\n * Encoding when `value` is a typed array (optional).\n * @param {boolean | null | undefined} [end=false]\n * Whether this is the last chunk (default: `false`).\n * @returns {Array}\n * Chunks.\n */\n\nconst search = /[\\0\\t\\n\\r]/g;\n\n/**\n * @returns {Preprocessor}\n * Preprocess a value.\n */\nexport function preprocess() {\n let column = 1;\n let buffer = '';\n /** @type {boolean | undefined} */\n let start = true;\n /** @type {boolean | undefined} */\n let atCarriageReturn;\n return preprocessor;\n\n /** @type {Preprocessor} */\n // eslint-disable-next-line complexity\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\n const chunks = [];\n /** @type {RegExpMatchArray | null} */\n let match;\n /** @type {number} */\n let next;\n /** @type {number} */\n let startPosition;\n /** @type {number} */\n let endPosition;\n /** @type {Code} */\n let code;\n value = buffer + (typeof value === 'string' ? value.toString() : new TextDecoder(encoding || undefined).decode(value));\n startPosition = 0;\n buffer = '';\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++;\n }\n start = undefined;\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition;\n match = search.exec(value);\n endPosition = match && match.index !== undefined ? match.index : value.length;\n code = value.charCodeAt(endPosition);\n if (!match) {\n buffer = value.slice(startPosition);\n break;\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3);\n atCarriageReturn = undefined;\n } else {\n if (atCarriageReturn) {\n chunks.push(-5);\n atCarriageReturn = undefined;\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition));\n column += endPosition - startPosition;\n }\n switch (code) {\n case 0:\n {\n chunks.push(65533);\n column++;\n break;\n }\n case 9:\n {\n next = Math.ceil(column / 4) * 4;\n chunks.push(-2);\n while (column++ < next) chunks.push(-1);\n break;\n }\n case 10:\n {\n chunks.push(-4);\n column = 1;\n break;\n }\n default:\n {\n atCarriageReturn = true;\n column = 1;\n }\n }\n }\n startPosition = endPosition + 1;\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5);\n if (buffer) chunks.push(buffer);\n chunks.push(null);\n }\n return chunks;\n }\n}","import { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nconst characterEscapeOrReference = /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi;\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode);\n}\n\n/**\n * @param {string} $0\n * Match.\n * @param {string} $1\n * Character escape.\n * @param {string} $2\n * Character reference.\n * @returns {string}\n * Decoded value\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1;\n }\n\n // Reference.\n const head = $2.charCodeAt(0);\n if (head === 35) {\n const head = $2.charCodeAt(1);\n const hex = head === 120 || head === 88;\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10);\n }\n return decodeNamedCharacterReference($2) || $0;\n}","/**\n * @import {\n * Break,\n * Blockquote,\n * Code,\n * Definition,\n * Emphasis,\n * Heading,\n * Html,\n * Image,\n * InlineCode,\n * Link,\n * ListItem,\n * List,\n * Nodes,\n * Paragraph,\n * PhrasingContent,\n * ReferenceType,\n * Root,\n * Strong,\n * Text,\n * ThematicBreak\n * } from 'mdast'\n * @import {\n * Encoding,\n * Event,\n * Token,\n * Value\n * } from 'micromark-util-types'\n * @import {Point} from 'unist'\n * @import {\n * CompileContext,\n * CompileData,\n * Config,\n * Extension,\n * Handle,\n * OnEnterError,\n * Options\n * } from './types.js'\n */\n\nimport { toString } from 'mdast-util-to-string';\nimport { parse, postprocess, preprocess } from 'micromark';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nimport { decodeString } from 'micromark-util-decode-string';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { stringifyPosition } from 'unist-util-stringify-position';\nconst own = {}.hasOwnProperty;\n\n/**\n * Turn markdown into a syntax tree.\n *\n * @overload\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @overload\n * @param {Value} value\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @param {Value} value\n * Markdown to parse.\n * @param {Encoding | Options | null | undefined} [encoding]\n * Character encoding for when `value` is `Buffer`.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {Root}\n * mdast tree.\n */\nexport function fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding;\n encoding = undefined;\n }\n return compiler(options)(postprocess(parse(options).document().write(preprocess()(value, encoding, true))));\n}\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n characterReference: onexitcharacterreference,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n };\n configure(config, (options || {}).mdastExtensions || []);\n\n /** @type {CompileData} */\n const data = {};\n return compile;\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n };\n /** @type {Omit} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n data\n };\n /** @type {Array} */\n const listStack = [];\n let index = -1;\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (events[index][1].type === \"listOrdered\" || events[index][1].type === \"listUnordered\") {\n if (events[index][0] === 'enter') {\n listStack.push(index);\n } else {\n const tail = listStack.pop();\n index = prepareList(events, tail, index);\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n const handler = config[events[index][0]];\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(Object.assign({\n sliceSerialize: events[index][2].sliceSerialize\n }, context), events[index][1]);\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1];\n const handler = tail[1] || defaultOnError;\n handler.call(context, undefined, tail[0]);\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(events.length > 0 ? events[0][1].start : {\n line: 1,\n column: 1,\n offset: 0\n }),\n end: point(events.length > 0 ? events[events.length - 2][1].end : {\n line: 1,\n column: 1,\n offset: 0\n })\n };\n\n // Call transforms.\n index = -1;\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree;\n }\n return tree;\n }\n\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1;\n let containerBalance = -1;\n let listSpread = false;\n /** @type {Token | undefined} */\n let listItem;\n /** @type {number | undefined} */\n let lineIndex;\n /** @type {number | undefined} */\n let firstBlankLineIndex;\n /** @type {boolean | undefined} */\n let atMarker;\n while (++index <= length) {\n const event = events[index];\n switch (event[1].type) {\n case \"listUnordered\":\n case \"listOrdered\":\n case \"blockQuote\":\n {\n if (event[0] === 'enter') {\n containerBalance++;\n } else {\n containerBalance--;\n }\n atMarker = undefined;\n break;\n }\n case \"lineEndingBlank\":\n {\n if (event[0] === 'enter') {\n if (listItem && !atMarker && !containerBalance && !firstBlankLineIndex) {\n firstBlankLineIndex = index;\n }\n atMarker = undefined;\n }\n break;\n }\n case \"linePrefix\":\n case \"listItemValue\":\n case \"listItemMarker\":\n case \"listItemPrefix\":\n case \"listItemPrefixWhitespace\":\n {\n // Empty.\n\n break;\n }\n default:\n {\n atMarker = undefined;\n }\n }\n if (!containerBalance && event[0] === 'enter' && event[1].type === \"listItemPrefix\" || containerBalance === -1 && event[0] === 'exit' && (event[1].type === \"listUnordered\" || event[1].type === \"listOrdered\")) {\n if (listItem) {\n let tailIndex = index;\n lineIndex = undefined;\n while (tailIndex--) {\n const tailEvent = events[tailIndex];\n if (tailEvent[1].type === \"lineEnding\" || tailEvent[1].type === \"lineEndingBlank\") {\n if (tailEvent[0] === 'exit') continue;\n if (lineIndex) {\n events[lineIndex][1].type = \"lineEndingBlank\";\n listSpread = true;\n }\n tailEvent[1].type = \"lineEnding\";\n lineIndex = tailIndex;\n } else if (tailEvent[1].type === \"linePrefix\" || tailEvent[1].type === \"blockQuotePrefix\" || tailEvent[1].type === \"blockQuotePrefixWhitespace\" || tailEvent[1].type === \"blockQuoteMarker\" || tailEvent[1].type === \"listItemIndent\") {\n // Empty\n } else {\n break;\n }\n }\n if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) {\n listItem._spread = true;\n }\n\n // Fix position.\n listItem.end = Object.assign({}, lineIndex ? events[lineIndex][1].start : event[1].end);\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]]);\n index++;\n length++;\n }\n\n // Create a new list item.\n if (event[1].type === \"listItemPrefix\") {\n /** @type {Token} */\n const item = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n };\n listItem = item;\n events.splice(index, 0, ['enter', item, event[2]]);\n index++;\n length++;\n firstBlankLineIndex = undefined;\n atMarker = true;\n }\n }\n }\n events[start][1]._spread = listSpread;\n return length;\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Nodes} create\n * Create a node.\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function open(token) {\n enter.call(this, create(token), token);\n if (and) and.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['buffer']}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n });\n }\n\n /**\n * @type {CompileContext['enter']}\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1];\n /** @type {Array} */\n const siblings = parent.children;\n siblings.push(node);\n this.stack.push(node);\n this.tokenStack.push([token, errorHandler || undefined]);\n node.position = {\n start: point(token.start),\n // @ts-expect-error: `end` will be patched later.\n end: undefined\n };\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function close(token) {\n if (and) and.call(this, token);\n exit.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['exit']}\n */\n function exit(token, onExitError) {\n const node = this.stack.pop();\n const open = this.tokenStack.pop();\n if (!open) {\n throw new Error('Cannot close `' + token.type + '` (' + stringifyPosition({\n start: token.start,\n end: token.end\n }) + '): it’s not open');\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0]);\n } else {\n const handler = open[1] || defaultOnError;\n handler.call(this, token, open[0]);\n }\n }\n node.position.end = point(token.end);\n }\n\n /**\n * @type {CompileContext['resume']}\n */\n function resume() {\n return toString(this.stack.pop());\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n this.data.expectingFirstListItemValue = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (this.data.expectingFirstListItemValue) {\n const ancestor = this.stack[this.stack.length - 2];\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10);\n this.data.expectingFirstListItemValue = undefined;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.lang = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.meta = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (this.data.flowCodeInside) return;\n this.buffer();\n this.data.flowCodeInside = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '');\n this.data.flowCodeInside = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '');\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.label = label;\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1];\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length;\n node.depth = depth;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n this.data.setextHeadingSlurpLineEnding = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1];\n node.depth = this.sliceSerialize(token).codePointAt(0) === 61 ? 1 : 2;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n this.data.setextHeadingSlurpLineEnding = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1];\n /** @type {Array} */\n const siblings = node.children;\n let tail = siblings[siblings.length - 1];\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text();\n tail.position = {\n start: point(token.start),\n // @ts-expect-error: we’ll add `end` later.\n end: undefined\n };\n siblings.push(tail);\n }\n this.stack.push(tail);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop();\n tail.value += this.sliceSerialize(token);\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1];\n // If we’re at a hard break, include the line ending in there.\n if (this.data.atHardBreak) {\n const tail = context.children[context.children.length - 1];\n tail.position.end = point(token.end);\n this.data.atHardBreak = undefined;\n return;\n }\n if (!this.data.setextHeadingSlurpLineEnding && config.canContainEols.includes(context.type)) {\n onenterdata.call(this, token);\n onexitdata.call(this, token);\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n this.data.atHardBreak = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token);\n const ancestor = this.stack[this.stack.length - 2];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string);\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1];\n const value = this.resume();\n const node = this.stack[this.stack.length - 1];\n // Assume a reference.\n this.data.inReference = true;\n if (node.type === 'link') {\n /** @type {Array} */\n const children = fragment.children;\n node.children = children;\n } else {\n node.alt = value;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n this.data.inReference = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n this.data.referenceType = 'collapsed';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label;\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n this.data.referenceType = 'full';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n this.data.characterReferenceType = token.type;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token);\n const type = this.data.characterReferenceType;\n /** @type {string} */\n let value;\n if (type) {\n value = decodeNumericCharacterReference(data, type === \"characterReferenceMarkerNumeric\" ? 10 : 16);\n this.data.characterReferenceType = undefined;\n } else {\n const result = decodeNamedCharacterReference(data);\n value = result;\n }\n const tail = this.stack[this.stack.length - 1];\n tail.value += value;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreference(token) {\n const tail = this.stack.pop();\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = this.sliceSerialize(token);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = 'mailto:' + this.sliceSerialize(token);\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n };\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n };\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n };\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n };\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n };\n }\n\n /** @returns {Heading} */\n function heading() {\n return {\n type: 'heading',\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: []\n };\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n };\n }\n\n /** @returns {Html} */\n function html() {\n return {\n type: 'html',\n value: ''\n };\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n };\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n };\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n };\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n };\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n };\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n };\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n };\n}\n\n/**\n * @param {Config} combined\n * @param {Array | Extension>} extensions\n * @returns {undefined}\n */\nfunction configure(combined, extensions) {\n let index = -1;\n while (++index < extensions.length) {\n const value = extensions[index];\n if (Array.isArray(value)) {\n configure(combined, value);\n } else {\n extension(combined, value);\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {undefined}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key;\n for (key in extension) {\n if (own.call(extension, key)) {\n switch (key) {\n case 'canContainEols':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'transforms':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'enter':\n case 'exit':\n {\n const right = extension[key];\n if (right) {\n Object.assign(combined[key], right);\n }\n break;\n }\n // No default\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error('Cannot close `' + left.type + '` (' + stringifyPosition({\n start: left.start,\n end: left.end\n }) + '): a different token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is open');\n } else {\n throw new Error('Cannot close document, a token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is still open');\n }\n}","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} FromMarkdownOptions\n * @typedef {import('unified').Parser} Parser\n * @typedef {import('unified').Processor} Processor\n */\n\n/**\n * @typedef {Omit} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * Aadd support for parsing from markdown.\n *\n * @param {Readonly | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkParse(options) {\n /** @type {Processor} */\n // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n const self = this\n\n self.parser = parser\n\n /**\n * @type {Parser}\n */\n function parser(doc) {\n return fromMarkdown(doc, {\n ...self.data('settings'),\n ...options,\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n }\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Blockquote} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element, Text} from 'hast'\n * @import {Break} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Code} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n /** @type {Properties} */\n const properties = {}\n // Someone can write `js python ruby`.\n const language = node.lang ? node.lang.split(/\\s+/) : []\n\n // GH/CM still drop the non-first languages.\n if (language.length > 0) {\n properties.className = ['language-' + language[0]]\n }\n\n // Create ``.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `
    `.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Delete} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Delete} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strikethrough(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'del',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Emphasis} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Emphasis} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function emphasis(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'em',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {FootnoteReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {FootnoteReference} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnoteReference(state, node) {\n  const clobberPrefix =\n    typeof state.options.clobberPrefix === 'string'\n      ? state.options.clobberPrefix\n      : 'user-content-'\n  const id = String(node.identifier).toUpperCase()\n  const safeId = normalizeUri(id.toLowerCase())\n  const index = state.footnoteOrder.indexOf(id)\n  /** @type {number} */\n  let counter\n\n  let reuseCounter = state.footnoteCounts.get(id)\n\n  if (reuseCounter === undefined) {\n    reuseCounter = 0\n    state.footnoteOrder.push(id)\n    counter = state.footnoteOrder.length\n  } else {\n    counter = index + 1\n  }\n\n  reuseCounter += 1\n  state.footnoteCounts.set(id, reuseCounter)\n\n  /** @type {Element} */\n  const link = {\n    type: 'element',\n    tagName: 'a',\n    properties: {\n      href: '#' + clobberPrefix + 'fn-' + safeId,\n      id:\n        clobberPrefix +\n        'fnref-' +\n        safeId +\n        (reuseCounter > 1 ? '-' + reuseCounter : ''),\n      dataFootnoteRef: true,\n      ariaDescribedBy: ['footnote-label']\n    },\n    children: [{type: 'text', value: String(counter)}]\n  }\n  state.patch(node, link)\n\n  /** @type {Element} */\n  const sup = {\n    type: 'element',\n    tagName: 'sup',\n    properties: {},\n    children: [link]\n  }\n  state.patch(node, sup)\n  return state.applyData(node, sup)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Heading} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Heading} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function heading(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'h' + node.depth,\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Html} from 'mdast'\n * @import {State} from '../state.js'\n * @import {Raw} from '../../index.js'\n */\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n *   Info passed around.\n * @param {Html} node\n *   mdast node.\n * @returns {Element | Raw | undefined}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.options.allowDangerousHtml) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  return undefined\n}\n","/**\n * @import {ElementContent} from 'hast'\n * @import {Reference, Nodes} from 'mdast'\n * @import {State} from './state.js'\n */\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Extract} node\n *   Reference node (image, link).\n * @returns {Array}\n *   hast content.\n */\nexport function revert(state, node) {\n  const subtype = node.referenceType\n  let suffix = ']'\n\n  if (subtype === 'collapsed') {\n    suffix += '[]'\n  } else if (subtype === 'full') {\n    suffix += '[' + (node.label || node.identifier) + ']'\n  }\n\n  if (node.type === 'imageReference') {\n    return [{type: 'text', value: '![' + node.alt + suffix}]\n  }\n\n  const contents = state.all(node)\n  const head = contents[0]\n\n  if (head && head.type === 'text') {\n    head.value = '[' + head.value\n  } else {\n    contents.unshift({type: 'text', value: '['})\n  }\n\n  const tail = contents[contents.length - 1]\n\n  if (tail && tail.type === 'text') {\n    tail.value += suffix\n  } else {\n    contents.push({type: 'text', value: suffix})\n  }\n\n  return contents\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {ImageReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ImageReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(definition.url || ''), alt: node.alt}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Image} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Image} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function image(state, node) {\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, Text} from 'hast'\n * @import {InlineCode} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {InlineCode} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function inlineCode(state, node) {\n  /** @type {Text} */\n  const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n  state.patch(node, text)\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'code',\n    properties: {},\n    children: [text]\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {LinkReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {LinkReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(definition.url || '')}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Link} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Link} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function link(state, node) {\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(node.url)}\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {ListItem, Parents} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ListItem} node\n *   mdast node.\n * @param {Parents | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function listItem(state, node, parent) {\n  const results = state.all(node)\n  const loose = parent ? listLoose(parent) : listItemLoose(node)\n  /** @type {Properties} */\n  const properties = {}\n  /** @type {Array} */\n  const children = []\n\n  if (typeof node.checked === 'boolean') {\n    const head = results[0]\n    /** @type {Element} */\n    let paragraph\n\n    if (head && head.type === 'element' && head.tagName === 'p') {\n      paragraph = head\n    } else {\n      paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n      results.unshift(paragraph)\n    }\n\n    if (paragraph.children.length > 0) {\n      paragraph.children.unshift({type: 'text', value: ' '})\n    }\n\n    paragraph.children.unshift({\n      type: 'element',\n      tagName: 'input',\n      properties: {type: 'checkbox', checked: node.checked, disabled: true},\n      children: []\n    })\n\n    // According to github-markdown-css, this class hides bullet.\n    // See: .\n    properties.className = ['task-list-item']\n  }\n\n  let index = -1\n\n  while (++index < results.length) {\n    const child = results[index]\n\n    // Add eols before nodes, except if this is a loose, first paragraph.\n    if (\n      loose ||\n      index !== 0 ||\n      child.type !== 'element' ||\n      child.tagName !== 'p'\n    ) {\n      children.push({type: 'text', value: '\\n'})\n    }\n\n    if (child.type === 'element' && child.tagName === 'p' && !loose) {\n      children.push(...child.children)\n    } else {\n      children.push(child)\n    }\n  }\n\n  const tail = results[results.length - 1]\n\n  // Add a final eol.\n  if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n    children.push({type: 'text', value: '\\n'})\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'li', properties, children}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n  let loose = false\n  if (node.type === 'list') {\n    loose = node.spread || false\n    const children = node.children\n    let index = -1\n\n    while (!loose && ++index < children.length) {\n      loose = listItemLoose(children[index])\n    }\n  }\n\n  return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n  const spread = node.spread\n\n  return spread === null || spread === undefined\n    ? node.children.length > 1\n    : spread\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {List} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {List} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function list(state, node) {\n  /** @type {Properties} */\n  const properties = {}\n  const results = state.all(node)\n  let index = -1\n\n  if (typeof node.start === 'number' && node.start !== 1) {\n    properties.start = node.start\n  }\n\n  // Like GitHub, add a class for custom styling.\n  while (++index < results.length) {\n    const child = results[index]\n\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\n      properties.className = ['contains-task-list']\n      break\n    }\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: node.ordered ? 'ol' : 'ul',\n    properties,\n    children: state.wrap(results, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Paragraph} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Paragraph} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function paragraph(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'p',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Parents as HastParents, Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastRoot} node\n *   mdast node.\n * @returns {HastParents}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Strong} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Strong} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strong(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'strong',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Table} from 'mdast'\n * @import {Element} from 'hast'\n * @import {State} from '../state.js'\n */\n\nimport {pointEnd, pointStart} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Table} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function table(state, node) {\n  const rows = state.all(node)\n  const firstRow = rows.shift()\n  /** @type {Array} */\n  const tableContent = []\n\n  if (firstRow) {\n    /** @type {Element} */\n    const head = {\n      type: 'element',\n      tagName: 'thead',\n      properties: {},\n      children: state.wrap([firstRow], true)\n    }\n    state.patch(node.children[0], head)\n    tableContent.push(head)\n  }\n\n  if (rows.length > 0) {\n    /** @type {Element} */\n    const body = {\n      type: 'element',\n      tagName: 'tbody',\n      properties: {},\n      children: state.wrap(rows, true)\n    }\n\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start && end) body.position = {start, end}\n    tableContent.push(body)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'table',\n    properties: {},\n    children: state.wrap(tableContent, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, ElementContent, Properties} from 'hast'\n * @import {Parents, TableRow} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableRow} node\n *   mdast node.\n * @param {Parents | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function tableRow(state, node, parent) {\n  const siblings = parent ? parent.children : undefined\n  // Generate a body row when without parent.\n  const rowIndex = siblings ? siblings.indexOf(node) : 1\n  const tagName = rowIndex === 0 ? 'th' : 'td'\n  // To do: option to use `style`?\n  const align = parent && parent.type === 'table' ? parent.align : undefined\n  const length = align ? align.length : node.children.length\n  let cellIndex = -1\n  /** @type {Array} */\n  const cells = []\n\n  while (++cellIndex < length) {\n    // Note: can also be undefined.\n    const cell = node.children[cellIndex]\n    /** @type {Properties} */\n    const properties = {}\n    const alignValue = align ? align[cellIndex] : undefined\n\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(cell, result)\n    }\n\n    cells.push(result)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'tr',\n    properties: {},\n    children: state.wrap(cells, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {TableCell} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableCell} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function tableCell(state, node) {\n  // Note: this function is normally not called: see `table-row` for how rows\n  // and their cells are compiled.\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'td', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n *   Value to trim.\n * @returns {string}\n *   Trimmed value.\n */\nexport function trimLines(value) {\n  const source = String(value)\n  const search = /\\r?\\n|\\r/g\n  let match = search.exec(source)\n  let last = 0\n  /** @type {Array} */\n  const lines = []\n\n  while (match) {\n    lines.push(\n      trimLine(source.slice(last, match.index), last > 0, true),\n      match[0]\n    )\n\n    last = match.index + match[0].length\n    match = search.exec(source)\n  }\n\n  lines.push(trimLine(source.slice(last), last > 0, false))\n\n  return lines.join('')\n}\n\n/**\n * @param {string} value\n *   Line to trim.\n * @param {boolean} start\n *   Whether to trim the start of the line.\n * @param {boolean} end\n *   Whether to trim the end of the line.\n * @returns {string}\n *   Trimmed line.\n */\nfunction trimLine(value, start, end) {\n  let startIndex = 0\n  let endIndex = value.length\n\n  if (start) {\n    let code = value.codePointAt(startIndex)\n\n    while (code === tab || code === space) {\n      startIndex++\n      code = value.codePointAt(startIndex)\n    }\n  }\n\n  if (end) {\n    let code = value.codePointAt(endIndex - 1)\n\n    while (code === tab || code === space) {\n      endIndex--\n      code = value.codePointAt(endIndex - 1)\n    }\n  }\n\n  return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","/**\n * @import {Element as HastElement, Text as HastText} from 'hast'\n * @import {Text as MdastText} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastText} node\n *   mdast node.\n * @returns {HastElement | HastText}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {ThematicBreak} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ThematicBreak} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function thematicBreak(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'hr',\n    properties: {},\n    children: []\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Handlers} from '../state.js'\n */\n\nimport {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n *\n * @satisfies {Handlers}\n */\nexport const handlers = {\n  blockquote,\n  break: hardBreak,\n  code,\n  delete: strikethrough,\n  emphasis,\n  footnoteReference,\n  heading,\n  html,\n  imageReference,\n  image,\n  inlineCode,\n  linkReference,\n  link,\n  listItem,\n  list,\n  paragraph,\n  // @ts-expect-error: root is different, but hard to type.\n  root,\n  strong,\n  table,\n  tableCell,\n  tableRow,\n  text,\n  thematicBreak,\n  toml: ignore,\n  yaml: ignore,\n  definition: ignore,\n  footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n  return undefined\n}\n","/**\n * @import {ElementContent, Element} from 'hast'\n * @import {State} from './state.js'\n */\n\n/**\n * @callback FootnoteBackContentTemplate\n *   Generate content for the backreference dynamically.\n *\n *   For the following markdown:\n *\n *   ```markdown\n *   Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n *   [^remark]: things about remark\n *   [^micromark]: things about micromark\n *   ```\n *\n *   This function will be called with:\n *\n *   *  `0` and `0` for the backreference from `things about micromark` to\n *      `alpha`, as it is the first used definition, and the first call to it\n *   *  `0` and `1` for the backreference from `things about micromark` to\n *      `bravo`, as it is the first used definition, and the second call to it\n *   *  `1` and `0` for the backreference from `things about remark` to\n *      `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {Array | ElementContent | string}\n *   Content for the backreference when linking back from definitions to their\n *   reference.\n *\n * @callback FootnoteBackLabelTemplate\n *   Generate a back label dynamically.\n *\n *   For the following markdown:\n *\n *   ```markdown\n *   Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n *   [^remark]: things about remark\n *   [^micromark]: things about micromark\n *   ```\n *\n *   This function will be called with:\n *\n *   *  `0` and `0` for the backreference from `things about micromark` to\n *      `alpha`, as it is the first used definition, and the first call to it\n *   *  `0` and `1` for the backreference from `things about micromark` to\n *      `bravo`, as it is the first used definition, and the second call to it\n *   *  `1` and `0` for the backreference from `things about remark` to\n *      `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {string}\n *   Back label to use when linking back from definitions to their reference.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {Array}\n *   Content.\n */\nexport function defaultFootnoteBackContent(_, rereferenceIndex) {\n  /** @type {Array} */\n  const result = [{type: 'text', value: '↩'}]\n\n  if (rereferenceIndex > 1) {\n    result.push({\n      type: 'element',\n      tagName: 'sup',\n      properties: {},\n      children: [{type: 'text', value: String(rereferenceIndex)}]\n    })\n  }\n\n  return result\n}\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {string}\n *   Label.\n */\nexport function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n  return (\n    'Back to reference ' +\n    (referenceIndex + 1) +\n    (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n  )\n}\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n *   Info passed around.\n * @returns {Element | undefined}\n *   `section` element or `undefined`.\n */\n// eslint-disable-next-line complexity\nexport function footer(state) {\n  const clobberPrefix =\n    typeof state.options.clobberPrefix === 'string'\n      ? state.options.clobberPrefix\n      : 'user-content-'\n  const footnoteBackContent =\n    state.options.footnoteBackContent || defaultFootnoteBackContent\n  const footnoteBackLabel =\n    state.options.footnoteBackLabel || defaultFootnoteBackLabel\n  const footnoteLabel = state.options.footnoteLabel || 'Footnotes'\n  const footnoteLabelTagName = state.options.footnoteLabelTagName || 'h2'\n  const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n    className: ['sr-only']\n  }\n  /** @type {Array} */\n  const listItems = []\n  let referenceIndex = -1\n\n  while (++referenceIndex < state.footnoteOrder.length) {\n    const definition = state.footnoteById.get(\n      state.footnoteOrder[referenceIndex]\n    )\n\n    if (!definition) {\n      continue\n    }\n\n    const content = state.all(definition)\n    const id = String(definition.identifier).toUpperCase()\n    const safeId = normalizeUri(id.toLowerCase())\n    let rereferenceIndex = 0\n    /** @type {Array} */\n    const backReferences = []\n    const counts = state.footnoteCounts.get(id)\n\n    // eslint-disable-next-line no-unmodified-loop-condition\n    while (counts !== undefined && ++rereferenceIndex <= counts) {\n      if (backReferences.length > 0) {\n        backReferences.push({type: 'text', value: ' '})\n      }\n\n      let children =\n        typeof footnoteBackContent === 'string'\n          ? footnoteBackContent\n          : footnoteBackContent(referenceIndex, rereferenceIndex)\n\n      if (typeof children === 'string') {\n        children = {type: 'text', value: children}\n      }\n\n      backReferences.push({\n        type: 'element',\n        tagName: 'a',\n        properties: {\n          href:\n            '#' +\n            clobberPrefix +\n            'fnref-' +\n            safeId +\n            (rereferenceIndex > 1 ? '-' + rereferenceIndex : ''),\n          dataFootnoteBackref: '',\n          ariaLabel:\n            typeof footnoteBackLabel === 'string'\n              ? footnoteBackLabel\n              : footnoteBackLabel(referenceIndex, rereferenceIndex),\n          className: ['data-footnote-backref']\n        },\n        children: Array.isArray(children) ? children : [children]\n      })\n    }\n\n    const tail = content[content.length - 1]\n\n    if (tail && tail.type === 'element' && tail.tagName === 'p') {\n      const tailTail = tail.children[tail.children.length - 1]\n      if (tailTail && tailTail.type === 'text') {\n        tailTail.value += ' '\n      } else {\n        tail.children.push({type: 'text', value: ' '})\n      }\n\n      tail.children.push(...backReferences)\n    } else {\n      content.push(...backReferences)\n    }\n\n    /** @type {Element} */\n    const listItem = {\n      type: 'element',\n      tagName: 'li',\n      properties: {id: clobberPrefix + 'fn-' + safeId},\n      children: state.wrap(content, true)\n    }\n\n    state.patch(definition, listItem)\n\n    listItems.push(listItem)\n  }\n\n  if (listItems.length === 0) {\n    return\n  }\n\n  return {\n    type: 'element',\n    tagName: 'section',\n    properties: {dataFootnotes: true, className: ['footnotes']},\n    children: [\n      {\n        type: 'element',\n        tagName: footnoteLabelTagName,\n        properties: {\n          ...structuredClone(footnoteLabelProperties),\n          id: 'footnote-label'\n        },\n        children: [{type: 'text', value: footnoteLabel}]\n      },\n      {type: 'text', value: '\\n'},\n      {\n        type: 'element',\n        tagName: 'ol',\n        properties: {},\n        children: state.wrap(listItems, true)\n      },\n      {type: 'text', value: '\\n'}\n    ]\n  }\n}\n","/**\n * @import {\n *   ElementContent as HastElementContent,\n *   Element as HastElement,\n *   Nodes as HastNodes,\n *   Properties as HastProperties,\n *   RootContent as HastRootContent,\n *   Text as HastText\n * } from 'hast'\n * @import {\n *   Definition as MdastDefinition,\n *   FootnoteDefinition as MdastFootnoteDefinition,\n *   Nodes as MdastNodes,\n *   Parents as MdastParents\n * } from 'mdast'\n * @import {VFile} from 'vfile'\n * @import {\n *   FootnoteBackContentTemplate,\n *   FootnoteBackLabelTemplate\n * } from './footer.js'\n */\n\n/**\n * @callback Handler\n *   Handle a node.\n * @param {State} state\n *   Info passed around.\n * @param {any} node\n *   mdast node to handle.\n * @param {MdastParents | undefined} parent\n *   Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n *   hast node.\n *\n * @typedef {Partial>} Handlers\n *   Handle nodes.\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n *   Whether to persist raw HTML in markdown in the hast tree (default:\n *   `false`).\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` property on footnotes to prevent them from\n *   *clobbering* (default: `'user-content-'`).\n *\n *   Pass `''` for trusted markdown and when you are careful with\n *   polyfilling.\n *   You could pass a different prefix.\n *\n *   DOM clobbering is this:\n *\n *   ```html\n *   

    \n * \n * ```\n *\n * The above example shows that elements are made available by browsers, by\n * their ID, on the `window` object.\n * This is a security risk because you might be expecting some other variable\n * at that place.\n * It can also break polyfills.\n * Using a prefix solves these problems.\n * @property {VFile | null | undefined} [file]\n * Corresponding virtual file representing the input document (optional).\n * @property {FootnoteBackContentTemplate | string | null | undefined} [footnoteBackContent]\n * Content of the backreference back to references (default: `defaultFootnoteBackContent`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackContent(_, rereferenceIndex) {\n * const result = [{type: 'text', value: '↩'}]\n *\n * if (rereferenceIndex > 1) {\n * result.push({\n * type: 'element',\n * tagName: 'sup',\n * properties: {},\n * children: [{type: 'text', value: String(rereferenceIndex)}]\n * })\n * }\n *\n * return result\n * }\n * ```\n *\n * This content is used in the `a` element of each backreference (the `↩`\n * links).\n * @property {FootnoteBackLabelTemplate | string | null | undefined} [footnoteBackLabel]\n * Label to describe the backreference back to references (default:\n * `defaultFootnoteBackLabel`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n * return (\n * 'Back to reference ' +\n * (referenceIndex + 1) +\n * (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n * )\n * }\n * ```\n *\n * Change it when the markdown is not in English.\n *\n * This label is used in the `ariaLabel` property on each backreference\n * (the `↩` links).\n * It affects users of assistive technology.\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n * Change it when the markdown is not in English.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (default: `{className:\n * ['sr-only']}`).\n *\n * Change it to show the label and add other properties.\n *\n * This label is typically hidden visually (assuming an `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass an empty string.\n * You can also add different properties.\n *\n * > **Note**: `id: 'footnote-label'` is always added, because footnote\n * > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n * Change it to match your document structure.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes (optional).\n * @property {Array | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed)\n * (optional).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes (optional).\n *\n * @typedef State\n * Info passed around.\n * @property {(node: MdastNodes) => Array} all\n * Transform the children of an mdast parent to hast.\n * @property {(from: MdastNodes, to: Type) => HastElement | Type} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {Map} definitionById\n * Definitions by their identifier.\n * @property {Map} footnoteById\n * Footnote definitions by their identifier.\n * @property {Map} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Array} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {(node: MdastNodes, parent: MdastParents | undefined) => Array | HastElementContent | undefined} one\n * Transform an mdast node to hast.\n * @property {Options} options\n * Configuration.\n * @property {(from: MdastNodes, node: HastNodes) => undefined} patch\n * Copy a node’s positional info.\n * @property {(nodes: Array, loose?: boolean | undefined) => Array} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {visit} from 'unist-util-visit'\nimport {position} from 'unist-util-position'\nimport {handlers as defaultHandlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || emptyOptions\n /** @type {Map} */\n const definitionById = new Map()\n /** @type {Map} */\n const footnoteById = new Map()\n /** @type {Map} */\n const footnoteCounts = new Map()\n /** @type {Handlers} */\n // @ts-expect-error: the root handler returns a root.\n // Hard to type.\n const handlers = {...defaultHandlers, ...settings.handlers}\n\n /** @type {State} */\n const state = {\n all,\n applyData,\n definitionById,\n footnoteById,\n footnoteCounts,\n footnoteOrder: [],\n handlers,\n one,\n options: settings,\n patch,\n wrap\n }\n\n visit(tree, function (node) {\n if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n const map = node.type === 'definition' ? definitionById : footnoteById\n const id = String(node.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: .\n if (!map.has(id)) {\n // @ts-expect-error: node type matches map.\n map.set(id, node)\n }\n }\n })\n\n return state\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | undefined} [parent]\n * Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n * Resulting hast node.\n */\n function one(node, parent) {\n const type = node.type\n const handle = state.handlers[type]\n\n if (own.call(state.handlers, type) && handle) {\n return handle(state, node, parent)\n }\n\n if (state.options.passThrough && state.options.passThrough.includes(type)) {\n if ('children' in node) {\n const {children, ...shallow} = node\n const result = structuredClone(shallow)\n // @ts-expect-error: TS doesn’t understand…\n result.children = state.all(node)\n // @ts-expect-error: TS doesn’t understand…\n return result\n }\n\n // @ts-expect-error: it’s custom.\n return structuredClone(node)\n }\n\n const unknown = state.options.unknownHandler || defaultUnknownHandler\n\n return unknown(state, node, parent)\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array}\n * Resulting hast nodes.\n */\n function all(parent) {\n /** @type {Array} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = state.one(nodes[index], parent)\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = trimMarkdownSpaceStart(result.value)\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = trimMarkdownSpaceStart(head.value)\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {HastElement | Type}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {HastElement | Type} */\n let result = to\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName\n const hChildren = from.data.hChildren\n const hProperties = from.data.hProperties\n\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent of `hName` is to create an element, but likely also to keep\n // the content around (otherwise: pass `hChildren`).\n else {\n /** @type {Array} */\n // @ts-expect-error: assume no doctypes in `root`.\n const children = 'children' in result ? result.children : [result]\n result = {type: 'element', tagName: hName, properties: {}, children}\n }\n }\n\n if (result.type === 'element' && hProperties) {\n Object.assign(result.properties, structuredClone(hProperties))\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n result.children = hChildren\n }\n }\n\n return result\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastElement | HastText}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastElement | HastText} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: state.all(node)\n }\n\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastRootContent} Type\n * Node type.\n * @param {Array} nodes\n * List of nodes to wrap.\n * @param {boolean | undefined} [loose=false]\n * Whether to add line endings at start and end (default: `false`).\n * @returns {Array}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n\n/**\n * Trim spaces and tabs at the start of `value`.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Result.\n */\nfunction trimMarkdownSpaceStart(value) {\n let index = 0\n let code = value.charCodeAt(index)\n\n while (code === 9 || code === 32) {\n index++\n code = value.charCodeAt(index)\n }\n\n return value.slice(index)\n}\n","/**\n * @import {Nodes as HastNodes} from 'hast'\n * @import {Nodes as MdastNodes} from 'mdast'\n * @import {Options} from './state.js'\n */\n\nimport {ok as assert} from 'devlop'\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

    \n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
    ` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {HastNodes}\n * hast tree.\n */\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, undefined)\n const foot = footer(state)\n /** @type {HastNodes} */\n const result = Array.isArray(node)\n ? {type: 'root', children: node}\n : node || {type: 'root', children: []}\n\n if (foot) {\n // If there’s a footer, there were definitions, meaning block\n // content.\n // So `result` is a parent node.\n assert('children' in result)\n result.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n return result\n}\n","/**\n * @import {Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {Options as ToHastOptions} from 'mdast-util-to-hast'\n * @import {Processor} from 'unified'\n * @import {VFile} from 'vfile'\n */\n\n/**\n * @typedef {Omit} Options\n *\n * @callback TransformBridge\n * Bridge-mode.\n *\n * Runs the destination with the new hast tree.\n * Discards result.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {Promise}\n * Nothing.\n *\n * @callback TransformMutate\n * Mutate-mode.\n *\n * Further transformers run on the hast tree.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {HastRoot}\n * Tree (hast).\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n/**\n * Turn markdown into HTML.\n *\n * ##### Notes\n *\n * ###### Signature\n *\n * * if a processor is given,\n * runs the (rehype) plugins used on it with a hast tree,\n * then discards the result (*bridge mode*)\n * * otherwise,\n * returns a hast tree,\n * the plugins used after `remarkRehype` are rehype plugins (*mutate mode*)\n *\n * > 👉 **Note**:\n * > It’s highly unlikely that you want to pass a `processor`.\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most plugins ignore `raw` nodes but two notable ones don’t:\n *\n * * `rehype-stringify` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful if\n * you completely trust authors\n * * `rehype-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc);\n * this is a heavy task as it needs a full HTML parser,\n * but it is the only way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark,\n * which we follow by default.\n * They are supported by GitHub,\n * so footnotes can be enabled in markdown with `remark-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes,\n * which is hidden for sighted users but shown to assistive technology.\n * When your page is not in English,\n * you must define translated values.\n *\n * Back references use ARIA attributes,\n * but the section label itself uses a heading that is hidden with an\n * `sr-only` class.\n * To show it to sighted users,\n * define different attributes in `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem,\n * as it links footnote calls to footnote definitions on the page through `id`\n * attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

    \n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * *Example: headings (DOM clobbering)* in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value`\n * (and doesn’t have `data.hName`, `data.hProperties`, or `data.hChildren`,\n * see later),\n * create a hast `text` node\n * * otherwise,\n * create a `
    ` element (which could be changed with `data.hName`),\n * with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @overload\n * @param {Processor} processor\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformBridge}\n *\n * @overload\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformMutate}\n *\n * @overload\n * @param {Readonly | Processor | null | undefined} [destination]\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformBridge | TransformMutate}\n *\n * @param {Readonly | Processor | null | undefined} [destination]\n * Processor or configuration (optional).\n * @param {Readonly | null | undefined} [options]\n * When a processor was given,\n * configuration (optional).\n * @returns {TransformBridge | TransformMutate}\n * Transform.\n */\nexport default function remarkRehype(destination, options) {\n if (destination && 'run' in destination) {\n /**\n * @type {TransformBridge}\n */\n return async function (tree, file) {\n // Cast because root in -> root out.\n const hastTree = /** @type {HastRoot} */ (\n toHast(tree, {file, ...options})\n )\n await destination.run(hastTree, file)\n }\n }\n\n /**\n * @type {TransformMutate}\n */\n return function (tree, file) {\n // Cast because root in -> root out.\n // To do: in the future, disallow ` || options` fallback.\n // With `unified-engine`, `destination` can be `undefined` but\n // `options` will be the file set.\n // We should not pass that as `options`.\n return /** @type {HastRoot} */ (\n toHast(tree, {file, ...(destination || options)})\n )\n }\n}\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n */\n\nimport {visit} from 'unist-util-visit'\n\n/**\n * Remove empty paragraphs in `tree`.\n *\n * @param {Nodes} tree\n * Tree to change.\n * @returns {undefined}\n * Nothing.\n */\nexport function squeezeParagraphs(tree) {\n visit(tree, function (node, index, parent) {\n if (\n index !== undefined &&\n parent &&\n node.type === 'paragraph' &&\n node.children.every(function (child) {\n return child.type === 'text' && /^\\s*$/.test(child.value)\n })\n ) {\n parent.children.splice(index, 1)\n return index\n }\n })\n}\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: MIT\n */\n\n/**\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Root} Root\n */\n\nimport {squeezeParagraphs} from 'mdast-squeeze-paragraphs'\nimport {visit} from 'unist-util-visit'\n\n/**\n * Only keep links with the given protocols.\n *\n * @param {object} options Options\n * @param {string[]} options.except - Protocols to exclude. Defauls to `['http', 'https']`.\n * @returns\n * Transform.\n */\nexport default function remarkUnlinkProtocols(\n options = {except: ['http', 'https']}\n) {\n /**\n * Transform.\n *\n * @param {Root} tree\n * Tree.\n * @returns {undefined}\n * Nothing.\n */\n return function (tree) {\n /** @type {Map} */\n const definitions = new Map()\n\n // Find definitions to look up linkReferences.\n visit(tree, 'definition', function (node, index, parent) {\n definitions.set(node.identifier, node.url)\n if (parent && typeof index === 'number') {\n const url = node.url\n if (\n url &&\n url.includes(':') &&\n !options.except.some((proto) => url.startsWith(`${proto}:`))\n ) {\n parent.children.splice(index, 1)\n return index\n }\n }\n })\n\n visit(tree, function (node, index, parent) {\n if (\n parent &&\n typeof index === 'number' &&\n (node.type === 'link' || node.type === 'linkReference')\n ) {\n const url =\n node.type === 'link' ? node.url : definitions.get(node.identifier)\n if (\n url &&\n url.includes(':') &&\n !options.except.some((proto) => url.startsWith(`${proto}:`))\n ) {\n parent.children.splice(index, 1, ...node.children)\n return index\n }\n }\n })\n\n squeezeParagraphs(tree)\n }\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array) => void} Callback\n * Callback.\n *\n * @typedef {(...input: Array) => any} Middleware\n * Ware.\n *\n * @typedef Pipeline\n * Pipeline.\n * @property {Run} run\n * Run the pipeline.\n * @property {Use} use\n * Add middleware.\n *\n * @typedef {(...input: Array) => void} Run\n * Call all middleware.\n *\n * Calls `done` on completion with either an error or the output of the\n * last middleware.\n *\n * > 👉 **Note**: as the length of input defines whether async functions get a\n * > `next` function,\n * > it’s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n * Pipeline.\n */\nexport function trough() {\n /** @type {Array} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error | null | undefined} error\n * @param {Array} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n * returns a promise that is rejected,\n * or calls the given `done` function with an error,\n * `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n * that value is the main output value\n * * if `middleware` calls `done`,\n * all non-nullish values except for the first one (the error) overwrite the\n * output values\n *\n * @param {Middleware} middleware\n * Function to wrap.\n * @param {Callback} callback\n * Callback called with the output of `middleware`.\n * @returns {Run}\n * Wrapped middleware.\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result && result.then && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n *\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","// A derivative work based on:\n// .\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// .\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const minpath = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | null | undefined} [extname]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, extname) {\n if (extname !== undefined && typeof extname !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (\n extname === undefined ||\n extname.length === 0 ||\n extname.length > path.length\n ) {\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (extname === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extnameIndex = extname.length - 1\n\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extnameIndex > -1) {\n // Try to match the explicit extension.\n if (path.codePointAt(index) === extname.codePointAt(extnameIndex--)) {\n if (extnameIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extnameIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.codePointAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.codePointAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.codePointAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.codePointAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.codePointAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.codePointAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.codePointAt(result.length - 1) !== 46 /* `.` */ ||\n result.codePointAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const minproc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: \nexport function isUrl(fileUrlOrPath) {\n return Boolean(\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n 'href' in fileUrlOrPath &&\n fileUrlOrPath.href &&\n 'protocol' in fileUrlOrPath &&\n fileUrlOrPath.protocol &&\n // @ts-expect-error: indexing is fine.\n fileUrlOrPath.auth === undefined\n )\n}\n","import {isUrl} from './minurl.shared.js'\n\nexport {isUrl} from './minurl.shared.js'\n\n// See: \n\n/**\n * @param {URL | string} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.codePointAt(index) === 37 /* `%` */ &&\n pathname.codePointAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.codePointAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n","/**\n * @import {Node, Point, Position} from 'unist'\n * @import {Options as MessageOptions} from 'vfile-message'\n * @import {Compatible, Data, Map, Options, Value} from 'vfile'\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {minpath} from '#minpath'\nimport {minproc} from '#minproc'\nimport {urlToPath, isUrl} from '#minurl'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n */\nconst order = /** @type {const} */ ([\n 'history',\n 'path',\n 'basename',\n 'stem',\n 'extname',\n 'dirname'\n])\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (isUrl(value)) {\n options = {path: value}\n } else if (typeof value === 'string' || isUint8Array(value)) {\n options = {value}\n } else {\n options = value\n }\n\n /* eslint-disable no-unused-expressions */\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n // Prevent calling `cwd` (which could be expensive) if it’s not needed;\n // the empty string will be overridden in the next block.\n this.cwd = 'cwd' in options ? '' : minproc.cwd()\n\n /**\n * Place to store custom info (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of file paths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array}\n */\n this.history = []\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array}\n */\n this.messages = []\n\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const field = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n field in options &&\n options[field] !== undefined &&\n options[field] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[field] = field === 'history' ? [...options[field]] : options[field]\n }\n }\n\n /** @type {string} */\n let field\n\n // Set non-path related properties.\n for (field in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(field)) {\n // @ts-expect-error: fine to set other things.\n this[field] = options[field]\n }\n }\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\n */\n get basename() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path)\n : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = minpath.join(this.dirname || '', basename)\n }\n\n /**\n * Get the parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\n */\n get dirname() {\n return typeof this.path === 'string'\n ? minpath.dirname(this.path)\n : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = minpath.join(dirname || '', this.basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\n */\n get extname() {\n return typeof this.path === 'string'\n ? minpath.extname(this.path)\n : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.codePointAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = minpath.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */\n get stem() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = minpath.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = true\n\n throw message\n }\n\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = undefined\n\n return message\n }\n\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(causeOrReason, optionsOrParentOrPlace, origin) {\n const message = new VFileMessage(\n // @ts-expect-error: the overloads are fine.\n causeOrReason,\n optionsOrParentOrPlace,\n origin\n )\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > .\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n if (this.value === undefined) {\n return ''\n }\n\n if (typeof this.value === 'string') {\n return this.value\n }\n\n const decoder = new TextDecoder(encoding || undefined)\n return decoder.decode(this.value)\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {undefined}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(minpath.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + minpath.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","export const CallableInstance =\n /**\n * @type {new , Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n (\n /** @type {unknown} */\n (\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array) => unknown}\n */\n function (property) {\n const self = this\n const constr = self.constructor\n const proto = /** @type {Record} */ (\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n constr.prototype\n )\n const value = proto[property]\n /** @type {(...parameters: Array) => unknown} */\n const apply = function () {\n return value.apply(apply, arguments)\n }\n\n Object.setPrototypeOf(apply, proto)\n\n // Not needed for us in `unified`: we only call this on the `copy`\n // function,\n // and we don't need to add its fields (`length`, `name`)\n // over.\n // See also: GH-246.\n // const names = Object.getOwnPropertyNames(value)\n //\n // for (const p of names) {\n // const descriptor = Object.getOwnPropertyDescriptor(value, p)\n // if (descriptor) Object.defineProperty(apply, p, descriptor)\n // }\n\n return apply\n }\n )\n )\n","/**\n * @typedef {import('trough').Pipeline} Pipeline\n *\n * @typedef {import('unist').Node} Node\n *\n * @typedef {import('vfile').Compatible} Compatible\n * @typedef {import('vfile').Value} Value\n *\n * @typedef {import('../index.js').CompileResultMap} CompileResultMap\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Settings} Settings\n */\n\n/**\n * @typedef {CompileResultMap[keyof CompileResultMap]} CompileResults\n * Acceptable results from compilers.\n *\n * To register custom results, add them to\n * {@linkcode CompileResultMap}.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the compiler receives (default: `Node`).\n * @template {CompileResults} [Result=CompileResults]\n * The thing that the compiler yields (default: `CompileResults`).\n * @callback Compiler\n * A **compiler** handles the compiling of a syntax tree to something else\n * (in most cases, text) (TypeScript type).\n *\n * It is used in the stringify phase and called with a {@linkcode Node}\n * and {@linkcode VFile} representation of the document to compile.\n * It should return the textual representation of the given tree (typically\n * `string`).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n * @param {Tree} tree\n * Tree to compile.\n * @param {VFile} file\n * File associated with `tree`.\n * @returns {Result}\n * New content: compiled text (`string` or `Uint8Array`, for `file.value`) or\n * something else (for `file.result`).\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the parser yields (default: `Node`)\n * @callback Parser\n * A **parser** handles the parsing of text to a syntax tree.\n *\n * It is used in the parse phase and is called with a `string` and\n * {@linkcode VFile} of the document to parse.\n * It must return the syntax tree representation of the given file\n * ({@linkcode Node}).\n * @param {string} document\n * Document to parse.\n * @param {VFile} file\n * File associated with `document`.\n * @returns {Tree}\n * Node representing the given file.\n */\n\n/**\n * @typedef {(\n * Plugin, any, any> |\n * PluginTuple, any, any> |\n * Preset\n * )} Pluggable\n * Union of the different ways to add plugins and settings.\n */\n\n/**\n * @typedef {Array} PluggableList\n * List of plugins and presets.\n */\n\n// Note: we can’t use `callback` yet as it messes up `this`:\n// .\n/**\n * @template {Array} [PluginParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=Node]\n * Value that is expected as input (default: `Node`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=Input]\n * Value that is yielded as output (default: `Input`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * (this: Processor, ...parameters: PluginParameters) =>\n * Input extends string ? // Parser.\n * Output extends Node | undefined ? undefined | void : never :\n * Output extends CompileResults ? // Compiler.\n * Input extends Node | undefined ? undefined | void : never :\n * Transformer<\n * Input extends Node ? Input : Node,\n * Output extends Node ? Output : Node\n * > | undefined | void\n * )} Plugin\n * Single plugin.\n *\n * Plugins configure the processors they are applied on in the following\n * ways:\n *\n * * they change the processor, such as the parser, the compiler, or by\n * configuring data\n * * they specify how to handle trees and files\n *\n * In practice, they are functions that can receive options and configure the\n * processor (`this`).\n *\n * > **Note**: plugins are called when the processor is *frozen*, not when\n * > they are applied.\n */\n\n/**\n * Tuple of a plugin and its configuration.\n *\n * The first item is a plugin, the rest are its parameters.\n *\n * @template {Array} [TupleParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=undefined]\n * Value that is expected as input (optional).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=undefined] (optional).\n * Value that is yielded as output.\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * [\n * plugin: Plugin,\n * ...parameters: TupleParameters\n * ]\n * )} PluginTuple\n */\n\n/**\n * @typedef Preset\n * Sharable configuration.\n *\n * They can contain plugins and settings.\n * @property {PluggableList | undefined} [plugins]\n * List of plugins and presets (optional).\n * @property {Settings | undefined} [settings]\n * Shared settings for parsers and compilers (optional).\n */\n\n/**\n * @template {VFile} [File=VFile]\n * The file that the callback receives (default: `VFile`).\n * @callback ProcessCallback\n * Callback called when the process is done.\n *\n * Called with either an error or a result.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {File | undefined} [file]\n * Processed file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The tree that the callback receives (default: `Node`).\n * @callback RunCallback\n * Callback called when transformers are done.\n *\n * Called with either an error or results.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {Tree | undefined} [tree]\n * Transformed tree (optional).\n * @param {VFile | undefined} [file]\n * File (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Output=Node]\n * Node type that the transformer yields (default: `Node`).\n * @callback TransformCallback\n * Callback passed to transforms.\n *\n * If the signature of a `transformer` accepts a third argument, the\n * transformer may perform asynchronous operations, and must call it.\n * @param {Error | undefined} [error]\n * Fatal error to stop the process (optional).\n * @param {Output | undefined} [tree]\n * New, changed, tree (optional).\n * @param {VFile | undefined} [file]\n * New, changed, file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Input=Node]\n * Node type that the transformer expects (default: `Node`).\n * @template {Node} [Output=Input]\n * Node type that the transformer yields (default: `Input`).\n * @callback Transformer\n * Transformers handle syntax trees and files.\n *\n * They are functions that are called each time a syntax tree and file are\n * passed through the run phase.\n * When an error occurs in them (either because it’s thrown, returned,\n * rejected, or passed to `next`), the process stops.\n *\n * The run phase is handled by [`trough`][trough], see its documentation for\n * the exact semantics of these functions.\n *\n * > **Note**: you should likely ignore `next`: don’t accept it.\n * > it supports callback-style async work.\n * > But promises are likely easier to reason about.\n *\n * [trough]: https://github.com/wooorm/trough#function-fninput-next\n * @param {Input} tree\n * Tree to handle.\n * @param {VFile} file\n * File to handle.\n * @param {TransformCallback} next\n * Callback.\n * @returns {(\n * Promise |\n * Promise | // For some reason this is needed separately.\n * Output |\n * Error |\n * undefined |\n * void\n * )}\n * If you accept `next`, nothing.\n * Otherwise:\n *\n * * `Error` — fatal error to stop the process\n * * `Promise` or `undefined` — the next transformer keeps using\n * same tree\n * * `Promise` or `Node` — new, changed, tree\n */\n\n/**\n * @template {Node | undefined} ParseTree\n * Output of `parse`.\n * @template {Node | undefined} HeadTree\n * Input for `run`.\n * @template {Node | undefined} TailTree\n * Output for `run`.\n * @template {Node | undefined} CompileTree\n * Input of `stringify`.\n * @template {CompileResults | undefined} CompileResult\n * Output of `stringify`.\n * @template {Node | string | undefined} Input\n * Input of plugin.\n * @template Output\n * Output of plugin (optional).\n * @typedef {(\n * Input extends string\n * ? Output extends Node | undefined\n * ? // Parser.\n * Processor<\n * Output extends undefined ? ParseTree : Output,\n * HeadTree,\n * TailTree,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : Output extends CompileResults\n * ? Input extends Node | undefined\n * ? // Compiler.\n * Processor<\n * ParseTree,\n * HeadTree,\n * TailTree,\n * Input extends undefined ? CompileTree : Input,\n * Output extends undefined ? CompileResult : Output\n * >\n * : // Unknown.\n * Processor\n * : Input extends Node | undefined\n * ? Output extends Node | undefined\n * ? // Transform.\n * Processor<\n * ParseTree,\n * HeadTree extends undefined ? Input : HeadTree,\n * Output extends undefined ? TailTree : Output,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : // Unknown.\n * Processor\n * )} UsePlugin\n * Create a processor based on the input/output of a {@link Plugin plugin}.\n */\n\n/**\n * @template {CompileResults | undefined} Result\n * Node type that the transformer yields.\n * @typedef {(\n * Result extends Value | undefined ?\n * VFile :\n * VFile & {result: Result}\n * )} VFileWithOutput\n * Type to generate a {@linkcode VFile} corresponding to a compiler result.\n *\n * If a result that is not acceptable on a `VFile` is used, that will\n * be stored on the `result` field of {@linkcode VFile}.\n */\n\nimport {bail} from 'bail'\nimport extend from 'extend'\nimport {ok as assert} from 'devlop'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\nimport {CallableInstance} from './callable-instance.js'\n\n// To do: next major: drop `Compiler`, `Parser`: prefer lowercase.\n\n// To do: we could start yielding `never` in TS when a parser is missing and\n// `parse` is called.\n// Currently, we allow directly setting `processor.parser`, which is untyped.\n\nconst own = {}.hasOwnProperty\n\n/**\n * @template {Node | undefined} [ParseTree=undefined]\n * Output of `parse` (optional).\n * @template {Node | undefined} [HeadTree=undefined]\n * Input for `run` (optional).\n * @template {Node | undefined} [TailTree=undefined]\n * Output for `run` (optional).\n * @template {Node | undefined} [CompileTree=undefined]\n * Input of `stringify` (optional).\n * @template {CompileResults | undefined} [CompileResult=undefined]\n * Output of `stringify` (optional).\n * @extends {CallableInstance<[], Processor>}\n */\nexport class Processor extends CallableInstance {\n /**\n * Create a processor.\n */\n constructor() {\n // If `Processor()` is called (w/o new), `copy` is called instead.\n super('copy')\n\n /**\n * Compiler to use (deprecated).\n *\n * @deprecated\n * Use `compiler` instead.\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.Compiler = undefined\n\n /**\n * Parser to use (deprecated).\n *\n * @deprecated\n * Use `parser` instead.\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.Parser = undefined\n\n // Note: the following fields are considered private.\n // However, they are needed for tests, and TSC generates an untyped\n // `private freezeIndex` field for, which trips `type-coverage` up.\n // Instead, we use `@deprecated` to visualize that they shouldn’t be used.\n /**\n * Internal list of configured plugins.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Array>>}\n */\n this.attachers = []\n\n /**\n * Compiler to use.\n *\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.compiler = undefined\n\n /**\n * Internal state to track where we are while freezing.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {number}\n */\n this.freezeIndex = -1\n\n /**\n * Internal state to track whether we’re frozen.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {boolean | undefined}\n */\n this.frozen = undefined\n\n /**\n * Internal state.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Data}\n */\n this.namespace = {}\n\n /**\n * Parser to use.\n *\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.parser = undefined\n\n /**\n * Internal list of configured transformers.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Pipeline}\n */\n this.transformers = trough()\n }\n\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor}\n * New *unfrozen* processor ({@linkcode Processor}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n // Cast as the type parameters will be the same after attaching.\n const destination =\n /** @type {Processor} */ (\n new Processor()\n )\n let index = -1\n\n while (++index < this.attachers.length) {\n const attacher = this.attachers[index]\n destination.use(...attacher)\n }\n\n destination.data(extend(true, {}, this.namespace))\n\n return destination\n }\n\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > **Note**: to register custom data in TypeScript, augment the\n * > {@linkcode Data} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', this.frozen)\n this.namespace[key] = value\n return this\n }\n\n // Get `key`.\n return (own.call(this.namespace, key) && this.namespace[key]) || undefined\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', this.frozen)\n this.namespace = key\n return this\n }\n\n // Get space.\n return this.namespace\n }\n\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor}\n * The current processor.\n */\n freeze() {\n if (this.frozen) {\n return this\n }\n\n // Cast so that we can type plugins easier.\n // Plugins are supposed to be usable on different processors, not just on\n // this exact processor.\n const self = /** @type {Processor} */ (/** @type {unknown} */ (this))\n\n while (++this.freezeIndex < this.attachers.length) {\n const [attacher, ...options] = this.attachers[this.freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n const transformer = attacher.call(self, ...options)\n\n if (typeof transformer === 'function') {\n this.transformers.use(transformer)\n }\n }\n\n this.frozen = true\n this.freezeIndex = Number.POSITIVE_INFINITY\n\n return this\n }\n\n /**\n * Parse text to a syntax tree.\n *\n * > **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(file) {\n this.freeze()\n const realFile = vfile(file)\n const parser = this.parser || this.Parser\n assertParser('parse', parser)\n return parser(String(realFile), realFile)\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * > **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback> | undefined} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(file, done) {\n const self = this\n\n this.freeze()\n assertParser('process', this.parser || this.Parser)\n assertCompiler('process', this.compiler || this.Compiler)\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {((file: VFileWithOutput) => undefined | void) | undefined} resolve\n * @param {(error: Error | undefined) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n const realFile = vfile(file)\n // Assume `ParseTree` (the result of the parser) matches `HeadTree` (the\n // input of the first transform).\n const parseTree =\n /** @type {HeadTree extends undefined ? Node : HeadTree} */ (\n /** @type {unknown} */ (self.parse(realFile))\n )\n\n self.run(parseTree, realFile, function (error, tree, file) {\n if (error || !tree || !file) {\n return realDone(error)\n }\n\n // Assume `TailTree` (the output of the last transform) matches\n // `CompileTree` (the input of the compiler).\n const compileTree =\n /** @type {CompileTree extends undefined ? Node : CompileTree} */ (\n /** @type {unknown} */ (tree)\n )\n\n const compileResult = self.stringify(compileTree, file)\n\n if (looksLikeAValue(compileResult)) {\n file.value = compileResult\n } else {\n file.result = compileResult\n }\n\n realDone(error, /** @type {VFileWithOutput} */ (file))\n })\n\n /**\n * @param {Error | undefined} error\n * @param {VFileWithOutput | undefined} [file]\n * @returns {undefined}\n */\n function realDone(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, file)\n }\n }\n }\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(file) {\n /** @type {boolean} */\n let complete = false\n /** @type {VFileWithOutput | undefined} */\n let result\n\n this.freeze()\n assertParser('processSync', this.parser || this.Parser)\n assertCompiler('processSync', this.compiler || this.Compiler)\n\n this.process(file, realDone)\n assertDone('processSync', 'process', complete)\n assert(result, 'we either bailed on an error or have a tree')\n\n return result\n\n /**\n * @type {ProcessCallback>}\n */\n function realDone(error, file) {\n complete = true\n bail(error)\n result = file\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * > **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(tree, file, done) {\n assertNode(tree)\n this.freeze()\n\n const transformers = this.transformers\n\n if (!done && typeof file === 'function') {\n done = file\n file = undefined\n }\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {(\n * ((tree: TailTree extends undefined ? Node : TailTree) => undefined | void) |\n * undefined\n * )} resolve\n * @param {(error: Error) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n assert(\n typeof file !== 'function',\n '`file` can’t be a `done` anymore, we checked'\n )\n const realFile = vfile(file)\n transformers.run(tree, realFile, realDone)\n\n /**\n * @param {Error | undefined} error\n * @param {Node} outputTree\n * @param {VFile} file\n * @returns {undefined}\n */\n function realDone(error, outputTree, file) {\n const resultingTree =\n /** @type {TailTree extends undefined ? Node : TailTree} */ (\n outputTree || tree\n )\n\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(resultingTree)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, resultingTree, file)\n }\n }\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(tree, file) {\n /** @type {boolean} */\n let complete = false\n /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */\n let result\n\n this.run(tree, file, realDone)\n\n assertDone('runSync', 'run', complete)\n assert(result, 'we either bailed on an error or have a tree')\n return result\n\n /**\n * @type {RunCallback}\n */\n function realDone(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * Compile a syntax tree.\n *\n * > **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(tree, file) {\n this.freeze()\n const realFile = vfile(file)\n const compiler = this.compiler || this.Compiler\n assertCompiler('stringify', compiler)\n assertNode(tree)\n\n return compiler(tree, realFile)\n }\n\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor}\n *\n * @overload\n * @param {Plugin} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor}\n * Current processor.\n */\n use(value, ...parameters) {\n const attachers = this.attachers\n const namespace = this.namespace\n\n assertUnfrozen('use', this.frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, parameters)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n return this\n\n /**\n * @param {Pluggable} value\n * @returns {undefined}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value, [])\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...parameters] =\n /** @type {PluginTuple>} */ (value)\n addPlugin(plugin, parameters)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {undefined}\n */\n function addPreset(result) {\n if (!('plugins' in result) && !('settings' in result)) {\n throw new Error(\n 'Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither'\n )\n }\n\n addList(result.plugins)\n\n if (result.settings) {\n namespace.settings = extend(true, namespace.settings, result.settings)\n }\n }\n\n /**\n * @param {PluggableList | null | undefined} plugins\n * @returns {undefined}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {Array} parameters\n * @returns {undefined}\n */\n function addPlugin(plugin, parameters) {\n let index = -1\n let entryIndex = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entryIndex = index\n break\n }\n }\n\n if (entryIndex === -1) {\n attachers.push([plugin, ...parameters])\n }\n // Only set if there was at least a `primary` value, otherwise we’d change\n // `arguments.length`.\n else if (parameters.length > 0) {\n let [primary, ...rest] = parameters\n const currentPrimary = attachers[entryIndex][1]\n if (isPlainObj(currentPrimary) && isPlainObj(primary)) {\n primary = extend(true, currentPrimary, primary)\n }\n\n attachers[entryIndex] = [plugin, primary, ...rest]\n }\n }\n }\n}\n\n// Note: this returns a *callable* instance.\n// That’s why it’s documented as a function.\n/**\n * Create a new processor.\n *\n * @example\n * This example shows how a new processor can be created (from `remark`) and linked\n * to **stdin**(4) and **stdout**(4).\n *\n * ```js\n * import process from 'node:process'\n * import concatStream from 'concat-stream'\n * import {remark} from 'remark'\n *\n * process.stdin.pipe(\n * concatStream(function (buf) {\n * process.stdout.write(String(remark().processSync(buf)))\n * })\n * )\n * ```\n *\n * @returns\n * New *unfrozen* processor (`processor`).\n *\n * This processor is configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\nexport const unified = new Processor().freeze()\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is Value}\n */\nfunction looksLikeAValue(value) {\n return typeof value === 'string' || isUint8Array(value)\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","import '../assets/NcRichText-BTu-LT3p.css';\nimport { toString } from \"mdast-util-to-string\";\nimport rehypeExternalLinks from \"rehype-external-links\";\nimport rehype2react from \"rehype-react\";\nimport breaks from \"remark-breaks\";\nimport remarkParse from \"remark-parse\";\nimport remark2rehype from \"remark-rehype\";\nimport remarkUnlinkProtocols from \"remark-unlink-protocols\";\nimport { unified } from \"unified\";\nimport { resolveComponent, openBlock, createElementBlock, normalizeClass, Fragment, renderList, createBlock, createCommentVNode, defineComponent, unref, withCtx, createVNode, ref, h } from \"vue\";\nimport { RouterLink } from \"vue-router\";\nimport { N as NcCheckboxRadioSwitch } from \"./NcCheckboxRadioSwitch-D8Dfv4iw.mjs\";\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport { getSharingToken } from \"@nextcloud/sharing/public\";\nimport { f as NcReferenceWidget } from \"./referencePickerModal-B4bsiMOy.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { U as URL_PATTERN, g as getRoute, N as NcRichTextExternalLink, p as parseUrl, r as remarkAutolink } from \"./autolink-BT8u-IL-.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { u as useCopy } from \"./useCopy-PckLYUAU.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { u } from \"unist-builder\";\nimport { visitParents, EXIT, SKIP } from \"unist-util-visit-parents\";\nconst _sfc_main$2 = {\n name: \"NcReferenceList\",\n components: {\n NcReferenceWidget\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n text: {\n type: String,\n default: \"\"\n },\n referenceData: {\n type: Array,\n default: null\n },\n limit: {\n type: Number,\n default: 1\n },\n displayFallback: {\n type: Boolean,\n default: false\n },\n interactive: {\n type: Boolean,\n default: true\n },\n interactiveOptIn: {\n type: Boolean,\n default: false\n }\n },\n emits: [\"loaded\"],\n data() {\n return {\n references: null,\n loading: true\n };\n },\n computed: {\n isVisible() {\n return this.loading || this.displayedReferences.length !== 0;\n },\n values() {\n if (this.referenceData) {\n return this.referenceData;\n }\n if (this.displayFallback && !this.loading && !this.references) {\n return [this.fallbackReference];\n }\n return this.references ? Object.values(this.references) : [];\n },\n firstReference() {\n return this.values[0] ?? null;\n },\n displayedReferences() {\n return this.values.filter(Boolean).slice(0, this.limit);\n },\n fallbackReference() {\n return {\n accessible: true,\n openGraphObject: {\n id: this.text,\n link: this.text,\n name: this.text\n },\n richObjectType: \"open-graph\"\n };\n }\n },\n watch: {\n text: \"fetch\"\n },\n mounted() {\n this.fetch();\n },\n methods: {\n fetch() {\n this.loading = true;\n if (this.referenceData) {\n this.references = null;\n this.loading = false;\n return;\n }\n if (!new RegExp(URL_PATTERN).exec(this.text)) {\n this.references = null;\n this.loading = false;\n return;\n }\n this.resolve().then((response) => {\n this.references = response.data.ocs.data.references;\n this.loading = false;\n this.$emit(\"loaded\");\n }).catch((error) => {\n logger.error(\"[NcReferenceList] Failed to extract references\", { error });\n this.loading = false;\n this.$emit(\"loaded\");\n });\n },\n resolve() {\n const match = new RegExp(URL_PATTERN).exec(this.text.trim());\n const isPublic = getCurrentUser() === null;\n if (this.limit === 1 && match) {\n return isPublic ? axios.get(generateOcsUrl(\"references/resolvePublic\") + `?reference=${encodeURIComponent(match[0])}&sharingToken=${getSharingToken()}`) : axios.get(generateOcsUrl(\"references/resolve\") + `?reference=${encodeURIComponent(match[0])}`);\n }\n return isPublic ? axios.post(generateOcsUrl(\"references/extractPublic\"), {\n text: this.text,\n resolve: true,\n limit: this.limit,\n sharingToken: getSharingToken()\n }) : axios.post(generateOcsUrl(\"references/extract\"), {\n text: this.text,\n resolve: true,\n limit: this.limit\n });\n }\n }\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcReferenceWidget = resolveComponent(\"NcReferenceWidget\");\n return $options.isVisible ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"widgets--list\", { \"icon-loading\": $data.loading }])\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.displayedReferences, (reference) => {\n return openBlock(), createBlock(_component_NcReferenceWidget, {\n key: reference.openGraphObject?.id,\n reference,\n interactive: $props.interactive,\n interactiveOptIn: $props.interactiveOptIn\n }, null, 8, [\"reference\", \"interactive\", \"interactiveOptIn\"]);\n }), 128))\n ], 2)) : createCommentVNode(\"\", true);\n}\nconst NcReferenceList = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-9cde5a6a\"]]);\nfunction ccount(value, character) {\n const source = String(value);\n if (typeof character !== \"string\") {\n throw new TypeError(\"Expected character\");\n }\n let count = 0;\n let index = source.indexOf(character);\n while (index !== -1) {\n count++;\n index = source.indexOf(character, index + character.length);\n }\n return count;\n}\nfunction ok$1() {\n}\nconst asciiAlpha = regexCheck(/[A-Za-z]/);\nconst asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/);\nfunction asciiControl(code2) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code2 !== null && (code2 < 32 || code2 === 127)\n );\n}\nfunction markdownLineEnding(code2) {\n return code2 !== null && code2 < -2;\n}\nfunction markdownLineEndingOrSpace(code2) {\n return code2 !== null && (code2 < 0 || code2 === 32);\n}\nfunction markdownSpace(code2) {\n return code2 === -2 || code2 === -1 || code2 === 32;\n}\nconst unicodePunctuation = regexCheck(new RegExp(\"\\\\p{P}|\\\\p{S}\", \"u\"));\nconst unicodeWhitespace = regexCheck(/\\s/);\nfunction regexCheck(regex) {\n return check;\n function check(code2) {\n return code2 !== null && code2 > -1 && regex.test(String.fromCharCode(code2));\n }\n}\nfunction escapeStringRegexp(string) {\n if (typeof string !== \"string\") {\n throw new TypeError(\"Expected a string\");\n }\n return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\").replace(/-/g, \"\\\\x2d\");\n}\nconst convert = (\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n (function(test) {\n if (test === null || test === void 0) {\n return ok;\n }\n if (typeof test === \"function\") {\n return castFactory(test);\n }\n if (typeof test === \"object\") {\n return Array.isArray(test) ? anyFactory(test) : (\n // Cast because `ReadonlyArray` goes into the above but `isArray`\n // narrows to `Array`.\n propertiesFactory(\n /** @type {Props} */\n test\n )\n );\n }\n if (typeof test === \"string\") {\n return typeFactory(test);\n }\n throw new Error(\"Expected function, string, or object as test\");\n })\n);\nfunction anyFactory(tests) {\n const checks = [];\n let index = -1;\n while (++index < tests.length) {\n checks[index] = convert(tests[index]);\n }\n return castFactory(any);\n function any(...parameters) {\n let index2 = -1;\n while (++index2 < checks.length) {\n if (checks[index2].apply(this, parameters)) return true;\n }\n return false;\n }\n}\nfunction propertiesFactory(check) {\n const checkAsRecord = (\n /** @type {Record} */\n check\n );\n return castFactory(all);\n function all(node) {\n const nodeAsRecord = (\n /** @type {Record} */\n /** @type {unknown} */\n node\n );\n let key;\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false;\n }\n return true;\n }\n}\nfunction typeFactory(check) {\n return castFactory(type);\n function type(node) {\n return node && node.type === check;\n }\n}\nfunction castFactory(testFunction) {\n return check;\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) && testFunction.call(\n this,\n value,\n typeof index === \"number\" ? index : void 0,\n parent || void 0\n )\n );\n }\n}\nfunction ok() {\n return true;\n}\nfunction looksLikeANode(value) {\n return value !== null && typeof value === \"object\" && \"type\" in value;\n}\nfunction findAndReplace(tree, list2, options) {\n const settings = options || {};\n const ignored = convert(settings.ignore || []);\n const pairs = toPairs(list2);\n let pairIndex = -1;\n while (++pairIndex < pairs.length) {\n visitParents(tree, \"text\", visitor);\n }\n function visitor(node, parents) {\n let index = -1;\n let grandparent;\n while (++index < parents.length) {\n const parent = parents[index];\n const siblings = grandparent ? grandparent.children : void 0;\n if (ignored(\n parent,\n siblings ? siblings.indexOf(parent) : void 0,\n grandparent\n )) {\n return;\n }\n grandparent = parent;\n }\n if (grandparent) {\n return handler(node, parents);\n }\n }\n function handler(node, parents) {\n const parent = parents[parents.length - 1];\n const find = pairs[pairIndex][0];\n const replace2 = pairs[pairIndex][1];\n let start = 0;\n const siblings = parent.children;\n const index = siblings.indexOf(node);\n let change = false;\n let nodes = [];\n find.lastIndex = 0;\n let match = find.exec(node.value);\n while (match) {\n const position = match.index;\n const matchObject = {\n index: match.index,\n input: match.input,\n stack: [...parents, node]\n };\n let value = replace2(...match, matchObject);\n if (typeof value === \"string\") {\n value = value.length > 0 ? { type: \"text\", value } : void 0;\n }\n if (value === false) {\n find.lastIndex = position + 1;\n } else {\n if (start !== position) {\n nodes.push({\n type: \"text\",\n value: node.value.slice(start, position)\n });\n }\n if (Array.isArray(value)) {\n nodes.push(...value);\n } else if (value) {\n nodes.push(value);\n }\n start = position + match[0].length;\n change = true;\n }\n if (!find.global) {\n break;\n }\n match = find.exec(node.value);\n }\n if (change) {\n if (start < node.value.length) {\n nodes.push({ type: \"text\", value: node.value.slice(start) });\n }\n parent.children.splice(index, 1, ...nodes);\n } else {\n nodes = [node];\n }\n return index + nodes.length;\n }\n}\nfunction toPairs(tupleOrList) {\n const result = [];\n if (!Array.isArray(tupleOrList)) {\n throw new TypeError(\"Expected find and replace tuple or list of tuples\");\n }\n const list2 = !tupleOrList[0] || Array.isArray(tupleOrList[0]) ? tupleOrList : [tupleOrList];\n let index = -1;\n while (++index < list2.length) {\n const tuple = list2[index];\n result.push([toExpression(tuple[0]), toFunction(tuple[1])]);\n }\n return result;\n}\nfunction toExpression(find) {\n return typeof find === \"string\" ? new RegExp(escapeStringRegexp(find), \"g\") : find;\n}\nfunction toFunction(replace2) {\n return typeof replace2 === \"function\" ? replace2 : function() {\n return replace2;\n };\n}\nconst inConstruct = \"phrasing\";\nconst notInConstruct = [\"autolink\", \"link\", \"image\", \"label\"];\nfunction gfmAutolinkLiteralFromMarkdown() {\n return {\n transforms: [transformGfmAutolinkLiterals],\n enter: {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n },\n exit: {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n }\n };\n}\nfunction gfmAutolinkLiteralToMarkdown() {\n return {\n unsafe: [\n {\n character: \"@\",\n before: \"[+\\\\-.\\\\w]\",\n after: \"[\\\\-.\\\\w]\",\n inConstruct,\n notInConstruct\n },\n {\n character: \".\",\n before: \"[Ww]\",\n after: \"[\\\\-.\\\\w]\",\n inConstruct,\n notInConstruct\n },\n {\n character: \":\",\n before: \"[ps]\",\n after: \"\\\\/\",\n inConstruct,\n notInConstruct\n }\n ]\n };\n}\nfunction enterLiteralAutolink(token) {\n this.enter({ type: \"link\", title: null, url: \"\", children: [] }, token);\n}\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token);\n}\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token);\n}\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token);\n const node = this.stack[this.stack.length - 1];\n ok$1(node.type === \"link\");\n node.url = \"http://\" + this.sliceSerialize(token);\n}\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token);\n}\nfunction exitLiteralAutolink(token) {\n this.exit(token);\n}\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n [/([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/g, findEmail]\n ],\n { ignore: [\"link\", \"linkReference\"] }\n );\n}\nfunction findUrl(_, protocol, domain2, path2, match) {\n let prefix = \"\";\n if (!previous(match)) {\n return false;\n }\n if (/^w/i.test(protocol)) {\n domain2 = protocol + domain2;\n protocol = \"\";\n prefix = \"http://\";\n }\n if (!isCorrectDomain(domain2)) {\n return false;\n }\n const parts = splitUrl(domain2 + path2);\n if (!parts[0]) return false;\n const result = {\n type: \"link\",\n title: null,\n url: prefix + protocol + parts[0],\n children: [{ type: \"text\", value: protocol + parts[0] }]\n };\n if (parts[1]) {\n return [result, { type: \"text\", value: parts[1] }];\n }\n return result;\n}\nfunction findEmail(_, atext, label, match) {\n if (\n // Not an expected previous character.\n !previous(match, true) || // Label ends in not allowed character.\n /[-\\d_]$/.test(label)\n ) {\n return false;\n }\n return {\n type: \"link\",\n title: null,\n url: \"mailto:\" + atext + \"@\" + label,\n children: [{ type: \"text\", value: atext + \"@\" + label }]\n };\n}\nfunction isCorrectDomain(domain2) {\n const parts = domain2.split(\".\");\n if (parts.length < 2 || parts[parts.length - 1] && (/_/.test(parts[parts.length - 1]) || !/[a-zA-Z\\d]/.test(parts[parts.length - 1])) || parts[parts.length - 2] && (/_/.test(parts[parts.length - 2]) || !/[a-zA-Z\\d]/.test(parts[parts.length - 2]))) {\n return false;\n }\n return true;\n}\nfunction splitUrl(url) {\n const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url);\n if (!trailExec) {\n return [url, void 0];\n }\n url = url.slice(0, trailExec.index);\n let trail2 = trailExec[0];\n let closingParenIndex = trail2.indexOf(\")\");\n const openingParens = ccount(url, \"(\");\n let closingParens = ccount(url, \")\");\n while (closingParenIndex !== -1 && openingParens > closingParens) {\n url += trail2.slice(0, closingParenIndex + 1);\n trail2 = trail2.slice(closingParenIndex + 1);\n closingParenIndex = trail2.indexOf(\")\");\n closingParens++;\n }\n return [url, trail2];\n}\nfunction previous(match, email) {\n const code2 = match.input.charCodeAt(match.index - 1);\n return (match.index === 0 || unicodeWhitespace(code2) || unicodePunctuation(code2)) && (!email || code2 !== 47);\n}\nfunction normalizeIdentifier(value) {\n return value.replace(/[\\t\\n\\r ]+/g, \" \").replace(/^ | $/g, \"\").toLowerCase().toUpperCase();\n}\nfootnoteReference.peek = footnoteReferencePeek;\nfunction enterFootnoteCallString() {\n this.buffer();\n}\nfunction enterFootnoteCall(token) {\n this.enter({ type: \"footnoteReference\", identifier: \"\", label: \"\" }, token);\n}\nfunction enterFootnoteDefinitionLabelString() {\n this.buffer();\n}\nfunction enterFootnoteDefinition(token) {\n this.enter(\n { type: \"footnoteDefinition\", identifier: \"\", label: \"\", children: [] },\n token\n );\n}\nfunction exitFootnoteCallString(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n ok$1(node.type === \"footnoteReference\");\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase();\n node.label = label;\n}\nfunction exitFootnoteCall(token) {\n this.exit(token);\n}\nfunction exitFootnoteDefinitionLabelString(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n ok$1(node.type === \"footnoteDefinition\");\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase();\n node.label = label;\n}\nfunction exitFootnoteDefinition(token) {\n this.exit(token);\n}\nfunction footnoteReferencePeek() {\n return \"[\";\n}\nfunction footnoteReference(node, _, state, info) {\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[^\");\n const exit2 = state.enter(\"footnoteReference\");\n const subexit = state.enter(\"reference\");\n value += tracker.move(\n state.safe(state.associationId(node), { after: \"]\", before: value })\n );\n subexit();\n exit2();\n value += tracker.move(\"]\");\n return value;\n}\nfunction gfmFootnoteFromMarkdown() {\n return {\n enter: {\n gfmFootnoteCallString: enterFootnoteCallString,\n gfmFootnoteCall: enterFootnoteCall,\n gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n gfmFootnoteDefinition: enterFootnoteDefinition\n },\n exit: {\n gfmFootnoteCallString: exitFootnoteCallString,\n gfmFootnoteCall: exitFootnoteCall,\n gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n gfmFootnoteDefinition: exitFootnoteDefinition\n }\n };\n}\nfunction gfmFootnoteToMarkdown(options) {\n let firstLineBlank = false;\n if (options && options.firstLineBlank) {\n firstLineBlank = true;\n }\n return {\n handlers: { footnoteDefinition, footnoteReference },\n // This is on by default already.\n unsafe: [{ character: \"[\", inConstruct: [\"label\", \"phrasing\", \"reference\"] }]\n };\n function footnoteDefinition(node, _, state, info) {\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[^\");\n const exit2 = state.enter(\"footnoteDefinition\");\n const subexit = state.enter(\"label\");\n value += tracker.move(\n state.safe(state.associationId(node), { before: value, after: \"]\" })\n );\n subexit();\n value += tracker.move(\"]:\");\n if (node.children && node.children.length > 0) {\n tracker.shift(4);\n value += tracker.move(\n (firstLineBlank ? \"\\n\" : \" \") + state.indentLines(\n state.containerFlow(node, tracker.current()),\n firstLineBlank ? mapAll : mapExceptFirst\n )\n );\n }\n exit2();\n return value;\n }\n}\nfunction mapExceptFirst(line, index, blank) {\n return index === 0 ? line : mapAll(line, index, blank);\n}\nfunction mapAll(line, index, blank) {\n return (blank ? \"\" : \" \") + line;\n}\nconst constructsWithoutStrikethrough = [\n \"autolink\",\n \"destinationLiteral\",\n \"destinationRaw\",\n \"reference\",\n \"titleQuote\",\n \"titleApostrophe\"\n];\nhandleDelete.peek = peekDelete;\nfunction gfmStrikethroughFromMarkdown() {\n return {\n canContainEols: [\"delete\"],\n enter: { strikethrough: enterStrikethrough },\n exit: { strikethrough: exitStrikethrough }\n };\n}\nfunction gfmStrikethroughToMarkdown() {\n return {\n unsafe: [\n {\n character: \"~\",\n inConstruct: \"phrasing\",\n notInConstruct: constructsWithoutStrikethrough\n }\n ],\n handlers: { delete: handleDelete }\n };\n}\nfunction enterStrikethrough(token) {\n this.enter({ type: \"delete\", children: [] }, token);\n}\nfunction exitStrikethrough(token) {\n this.exit(token);\n}\nfunction handleDelete(node, _, state, info) {\n const tracker = state.createTracker(info);\n const exit2 = state.enter(\"strikethrough\");\n let value = tracker.move(\"~~\");\n value += state.containerPhrasing(node, {\n ...tracker.current(),\n before: value,\n after: \"~\"\n });\n value += tracker.move(\"~~\");\n exit2();\n return value;\n}\nfunction peekDelete() {\n return \"~\";\n}\nfunction defaultStringLength(value) {\n return value.length;\n}\nfunction markdownTable(table, options) {\n const settings = options || {};\n const align = (settings.align || []).concat();\n const stringLength = settings.stringLength || defaultStringLength;\n const alignments = [];\n const cellMatrix = [];\n const sizeMatrix = [];\n const longestCellByColumn = [];\n let mostCellsPerRow = 0;\n let rowIndex = -1;\n while (++rowIndex < table.length) {\n const row2 = [];\n const sizes2 = [];\n let columnIndex2 = -1;\n if (table[rowIndex].length > mostCellsPerRow) {\n mostCellsPerRow = table[rowIndex].length;\n }\n while (++columnIndex2 < table[rowIndex].length) {\n const cell = serialize(table[rowIndex][columnIndex2]);\n if (settings.alignDelimiters !== false) {\n const size = stringLength(cell);\n sizes2[columnIndex2] = size;\n if (longestCellByColumn[columnIndex2] === void 0 || size > longestCellByColumn[columnIndex2]) {\n longestCellByColumn[columnIndex2] = size;\n }\n }\n row2.push(cell);\n }\n cellMatrix[rowIndex] = row2;\n sizeMatrix[rowIndex] = sizes2;\n }\n let columnIndex = -1;\n if (typeof align === \"object\" && \"length\" in align) {\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = toAlignment(align[columnIndex]);\n }\n } else {\n const code2 = toAlignment(align);\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = code2;\n }\n }\n columnIndex = -1;\n const row = [];\n const sizes = [];\n while (++columnIndex < mostCellsPerRow) {\n const code2 = alignments[columnIndex];\n let before = \"\";\n let after = \"\";\n if (code2 === 99) {\n before = \":\";\n after = \":\";\n } else if (code2 === 108) {\n before = \":\";\n } else if (code2 === 114) {\n after = \":\";\n }\n let size = settings.alignDelimiters === false ? 1 : Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n );\n const cell = before + \"-\".repeat(size) + after;\n if (settings.alignDelimiters !== false) {\n size = before.length + size + after.length;\n if (size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size;\n }\n sizes[columnIndex] = size;\n }\n row[columnIndex] = cell;\n }\n cellMatrix.splice(1, 0, row);\n sizeMatrix.splice(1, 0, sizes);\n rowIndex = -1;\n const lines = [];\n while (++rowIndex < cellMatrix.length) {\n const row2 = cellMatrix[rowIndex];\n const sizes2 = sizeMatrix[rowIndex];\n columnIndex = -1;\n const line = [];\n while (++columnIndex < mostCellsPerRow) {\n const cell = row2[columnIndex] || \"\";\n let before = \"\";\n let after = \"\";\n if (settings.alignDelimiters !== false) {\n const size = longestCellByColumn[columnIndex] - (sizes2[columnIndex] || 0);\n const code2 = alignments[columnIndex];\n if (code2 === 114) {\n before = \" \".repeat(size);\n } else if (code2 === 99) {\n if (size % 2) {\n before = \" \".repeat(size / 2 + 0.5);\n after = \" \".repeat(size / 2 - 0.5);\n } else {\n before = \" \".repeat(size / 2);\n after = before;\n }\n } else {\n after = \" \".repeat(size);\n }\n }\n if (settings.delimiterStart !== false && !columnIndex) {\n line.push(\"|\");\n }\n if (settings.padding !== false && // Don’t add the opening space if we’re not aligning and the cell is\n // empty: there will be a closing space.\n !(settings.alignDelimiters === false && cell === \"\") && (settings.delimiterStart !== false || columnIndex)) {\n line.push(\" \");\n }\n if (settings.alignDelimiters !== false) {\n line.push(before);\n }\n line.push(cell);\n if (settings.alignDelimiters !== false) {\n line.push(after);\n }\n if (settings.padding !== false) {\n line.push(\" \");\n }\n if (settings.delimiterEnd !== false || columnIndex !== mostCellsPerRow - 1) {\n line.push(\"|\");\n }\n }\n lines.push(\n settings.delimiterEnd === false ? line.join(\"\").replace(/ +$/, \"\") : line.join(\"\")\n );\n }\n return lines.join(\"\\n\");\n}\nfunction serialize(value) {\n return value === null || value === void 0 ? \"\" : String(value);\n}\nfunction toAlignment(value) {\n const code2 = typeof value === \"string\" ? value.codePointAt(0) : 0;\n return code2 === 67 || code2 === 99 ? 99 : code2 === 76 || code2 === 108 ? 108 : code2 === 82 || code2 === 114 ? 114 : 0;\n}\nfunction blockquote(node, _, state, info) {\n const exit2 = state.enter(\"blockquote\");\n const tracker = state.createTracker(info);\n tracker.move(\"> \");\n tracker.shift(2);\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map$1\n );\n exit2();\n return value;\n}\nfunction map$1(line, _, blank) {\n return \">\" + (blank ? \"\" : \" \") + line;\n}\nfunction patternInScope(stack, pattern) {\n return listInScope(stack, pattern.inConstruct, true) && !listInScope(stack, pattern.notInConstruct, false);\n}\nfunction listInScope(stack, list2, none) {\n if (typeof list2 === \"string\") {\n list2 = [list2];\n }\n if (!list2 || list2.length === 0) {\n return none;\n }\n let index = -1;\n while (++index < list2.length) {\n if (stack.includes(list2[index])) {\n return true;\n }\n }\n return false;\n}\nfunction hardBreak(_, _1, state, info) {\n let index = -1;\n while (++index < state.unsafe.length) {\n if (state.unsafe[index].character === \"\\n\" && patternInScope(state.stack, state.unsafe[index])) {\n return /[ \\t]/.test(info.before) ? \"\" : \" \";\n }\n }\n return \"\\\\\\n\";\n}\nfunction longestStreak(value, substring) {\n const source = String(value);\n let index = source.indexOf(substring);\n let expected = index;\n let count = 0;\n let max = 0;\n if (typeof substring !== \"string\") {\n throw new TypeError(\"Expected substring\");\n }\n while (index !== -1) {\n if (index === expected) {\n if (++count > max) {\n max = count;\n }\n } else {\n count = 1;\n }\n expected = index + substring.length;\n index = source.indexOf(substring, expected);\n }\n return max;\n}\nfunction formatCodeAsIndented(node, state) {\n return Boolean(\n state.options.fences === false && node.value && // If there’s no info…\n !node.lang && // And there’s a non-whitespace character…\n /[^ \\r\\n]/.test(node.value) && // And the value doesn’t start or end in a blank…\n !/^[\\t ]*(?:[\\r\\n]|$)|(?:^|[\\r\\n])[\\t ]*$/.test(node.value)\n );\n}\nfunction checkFence(state) {\n const marker = state.options.fence || \"`\";\n if (marker !== \"`\" && marker !== \"~\") {\n throw new Error(\n \"Cannot serialize code with `\" + marker + \"` for `options.fence`, expected `` ` `` or `~`\"\n );\n }\n return marker;\n}\nfunction code$1(node, _, state, info) {\n const marker = checkFence(state);\n const raw = node.value || \"\";\n const suffix = marker === \"`\" ? \"GraveAccent\" : \"Tilde\";\n if (formatCodeAsIndented(node, state)) {\n const exit3 = state.enter(\"codeIndented\");\n const value2 = state.indentLines(raw, map);\n exit3();\n return value2;\n }\n const tracker = state.createTracker(info);\n const sequence = marker.repeat(Math.max(longestStreak(raw, marker) + 1, 3));\n const exit2 = state.enter(\"codeFenced\");\n let value = tracker.move(sequence);\n if (node.lang) {\n const subexit = state.enter(`codeFencedLang${suffix}`);\n value += tracker.move(\n state.safe(node.lang, {\n before: value,\n after: \" \",\n encode: [\"`\"],\n ...tracker.current()\n })\n );\n subexit();\n }\n if (node.lang && node.meta) {\n const subexit = state.enter(`codeFencedMeta${suffix}`);\n value += tracker.move(\" \");\n value += tracker.move(\n state.safe(node.meta, {\n before: value,\n after: \"\\n\",\n encode: [\"`\"],\n ...tracker.current()\n })\n );\n subexit();\n }\n value += tracker.move(\"\\n\");\n if (raw) {\n value += tracker.move(raw + \"\\n\");\n }\n value += tracker.move(sequence);\n exit2();\n return value;\n}\nfunction map(line, _, blank) {\n return (blank ? \"\" : \" \") + line;\n}\nfunction checkQuote(state) {\n const marker = state.options.quote || '\"';\n if (marker !== '\"' && marker !== \"'\") {\n throw new Error(\n \"Cannot serialize title with `\" + marker + \"` for `options.quote`, expected `\\\"`, or `'`\"\n );\n }\n return marker;\n}\nfunction definition(node, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const exit2 = state.enter(\"definition\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[\");\n value += tracker.move(\n state.safe(state.associationId(node), {\n before: value,\n after: \"]\",\n ...tracker.current()\n })\n );\n value += tracker.move(\"]: \");\n subexit();\n if (\n // If there’s no url, or…\n !node.url || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? \" \" : \"\\n\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n exit2();\n return value;\n}\nfunction checkEmphasis(state) {\n const marker = state.options.emphasis || \"*\";\n if (marker !== \"*\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize emphasis with `\" + marker + \"` for `options.emphasis`, expected `*`, or `_`\"\n );\n }\n return marker;\n}\nfunction encodeCharacterReference(code2) {\n return \"&#x\" + code2.toString(16).toUpperCase() + \";\";\n}\nfunction classifyCharacter(code2) {\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return 1;\n }\n if (unicodePunctuation(code2)) {\n return 2;\n }\n}\nfunction encodeInfo(outside, inside, marker) {\n const outsideKind = classifyCharacter(outside);\n const insideKind = classifyCharacter(inside);\n if (outsideKind === void 0) {\n return insideKind === void 0 ? (\n // Letter inside:\n // we have to encode *both* letters for `_` as it is looser.\n // it already forms for `*` (and GFMs `~`).\n marker === \"_\" ? { inside: true, outside: true } : { inside: false, outside: false }\n ) : insideKind === 1 ? (\n // Whitespace inside: encode both (letter, whitespace).\n { inside: true, outside: true }\n ) : (\n // Punctuation inside: encode outer (letter)\n { inside: false, outside: true }\n );\n }\n if (outsideKind === 1) {\n return insideKind === void 0 ? (\n // Letter inside: already forms.\n { inside: false, outside: false }\n ) : insideKind === 1 ? (\n // Whitespace inside: encode both (whitespace).\n { inside: true, outside: true }\n ) : (\n // Punctuation inside: already forms.\n { inside: false, outside: false }\n );\n }\n return insideKind === void 0 ? (\n // Letter inside: already forms.\n { inside: false, outside: false }\n ) : insideKind === 1 ? (\n // Whitespace inside: encode inner (whitespace).\n { inside: true, outside: false }\n ) : (\n // Punctuation inside: already forms.\n { inside: false, outside: false }\n );\n}\nemphasis.peek = emphasisPeek;\nfunction emphasis(node, _, state, info) {\n const marker = checkEmphasis(state);\n const exit2 = state.enter(\"emphasis\");\n const tracker = state.createTracker(info);\n const before = tracker.move(marker);\n let between = tracker.move(\n state.containerPhrasing(node, {\n after: marker,\n before,\n ...tracker.current()\n })\n );\n const betweenHead = between.charCodeAt(0);\n const open = encodeInfo(\n info.before.charCodeAt(info.before.length - 1),\n betweenHead,\n marker\n );\n if (open.inside) {\n between = encodeCharacterReference(betweenHead) + between.slice(1);\n }\n const betweenTail = between.charCodeAt(between.length - 1);\n const close = encodeInfo(info.after.charCodeAt(0), betweenTail, marker);\n if (close.inside) {\n between = between.slice(0, -1) + encodeCharacterReference(betweenTail);\n }\n const after = tracker.move(marker);\n exit2();\n state.attentionEncodeSurroundingInfo = {\n after: close.outside,\n before: open.outside\n };\n return before + between + after;\n}\nfunction emphasisPeek(_, _1, state) {\n return state.options.emphasis || \"*\";\n}\nfunction visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n let reverse;\n let test;\n let visitor;\n if (typeof testOrVisitor === \"function\" && typeof visitorOrReverse !== \"function\") {\n test = void 0;\n visitor = testOrVisitor;\n reverse = visitorOrReverse;\n } else {\n test = testOrVisitor;\n visitor = visitorOrReverse;\n reverse = maybeReverse;\n }\n visitParents(tree, test, overload, reverse);\n function overload(node, parents) {\n const parent = parents[parents.length - 1];\n const index = parent ? parent.children.indexOf(node) : void 0;\n return visitor(node, index, parent);\n }\n}\nfunction formatHeadingAsSetext(node, state) {\n let literalWithBreak = false;\n visit(node, function(node2) {\n if (\"value\" in node2 && /\\r?\\n|\\r/.test(node2.value) || node2.type === \"break\") {\n literalWithBreak = true;\n return EXIT;\n }\n });\n return Boolean(\n (!node.depth || node.depth < 3) && toString(node) && (state.options.setext || literalWithBreak)\n );\n}\nfunction heading(node, _, state, info) {\n const rank = Math.max(Math.min(6, node.depth || 1), 1);\n const tracker = state.createTracker(info);\n if (formatHeadingAsSetext(node, state)) {\n const exit3 = state.enter(\"headingSetext\");\n const subexit2 = state.enter(\"phrasing\");\n const value2 = state.containerPhrasing(node, {\n ...tracker.current(),\n before: \"\\n\",\n after: \"\\n\"\n });\n subexit2();\n exit3();\n return value2 + \"\\n\" + (rank === 1 ? \"=\" : \"-\").repeat(\n // The whole size…\n value2.length - // Minus the position of the character after the last EOL (or\n // 0 if there is none)…\n (Math.max(value2.lastIndexOf(\"\\r\"), value2.lastIndexOf(\"\\n\")) + 1)\n );\n }\n const sequence = \"#\".repeat(rank);\n const exit2 = state.enter(\"headingAtx\");\n const subexit = state.enter(\"phrasing\");\n tracker.move(sequence + \" \");\n let value = state.containerPhrasing(node, {\n before: \"# \",\n after: \"\\n\",\n ...tracker.current()\n });\n if (/^[\\t ]/.test(value)) {\n value = encodeCharacterReference(value.charCodeAt(0)) + value.slice(1);\n }\n value = value ? sequence + \" \" + value : sequence;\n if (state.options.closeAtx) {\n value += \" \" + sequence;\n }\n subexit();\n exit2();\n return value;\n}\nhtml.peek = htmlPeek;\nfunction html(node) {\n return node.value || \"\";\n}\nfunction htmlPeek() {\n return \"<\";\n}\nimage.peek = imagePeek;\nfunction image(node, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const exit2 = state.enter(\"image\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"![\");\n value += tracker.move(\n state.safe(node.alt, { before: value, after: \"]\", ...tracker.current() })\n );\n value += tracker.move(\"](\");\n subexit();\n if (\n // If there’s no url but there is a title…\n !node.url && node.title || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? \" \" : \")\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n value += tracker.move(\")\");\n exit2();\n return value;\n}\nfunction imagePeek() {\n return \"!\";\n}\nimageReference.peek = imageReferencePeek;\nfunction imageReference(node, _, state, info) {\n const type = node.referenceType;\n const exit2 = state.enter(\"imageReference\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"![\");\n const alt = state.safe(node.alt, {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n value += tracker.move(alt + \"][\");\n subexit();\n const stack = state.stack;\n state.stack = [];\n subexit = state.enter(\"reference\");\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n subexit();\n state.stack = stack;\n exit2();\n if (type === \"full\" || !alt || alt !== reference) {\n value += tracker.move(reference + \"]\");\n } else if (type === \"shortcut\") {\n value = value.slice(0, -1);\n } else {\n value += tracker.move(\"]\");\n }\n return value;\n}\nfunction imageReferencePeek() {\n return \"!\";\n}\ninlineCode.peek = inlineCodePeek;\nfunction inlineCode(node, _, state) {\n let value = node.value || \"\";\n let sequence = \"`\";\n let index = -1;\n while (new RegExp(\"(^|[^`])\" + sequence + \"([^`]|$)\").test(value)) {\n sequence += \"`\";\n }\n if (/[^ \\r\\n]/.test(value) && (/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value) || /^`|`$/.test(value))) {\n value = \" \" + value + \" \";\n }\n while (++index < state.unsafe.length) {\n const pattern = state.unsafe[index];\n const expression = state.compilePattern(pattern);\n let match;\n if (!pattern.atBreak) continue;\n while (match = expression.exec(value)) {\n let position = match.index;\n if (value.charCodeAt(position) === 10 && value.charCodeAt(position - 1) === 13) {\n position--;\n }\n value = value.slice(0, position) + \" \" + value.slice(match.index + 1);\n }\n }\n return sequence + value + sequence;\n}\nfunction inlineCodePeek() {\n return \"`\";\n}\nfunction formatLinkAsAutolink(node, state) {\n const raw = toString(node);\n return Boolean(\n !state.options.resourceLink && // If there’s a url…\n node.url && // And there’s a no title…\n !node.title && // And the content of `node` is a single text node…\n node.children && node.children.length === 1 && node.children[0].type === \"text\" && // And if the url is the same as the content…\n (raw === node.url || \"mailto:\" + raw === node.url) && // And that starts w/ a protocol…\n /^[a-z][a-z+.-]+:/i.test(node.url) && // And that doesn’t contain ASCII control codes (character escapes and\n // references don’t work), space, or angle brackets…\n !/[\\0- <>\\u007F]/.test(node.url)\n );\n}\nlink.peek = linkPeek;\nfunction link(node, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const tracker = state.createTracker(info);\n let exit2;\n let subexit;\n if (formatLinkAsAutolink(node, state)) {\n const stack = state.stack;\n state.stack = [];\n exit2 = state.enter(\"autolink\");\n let value2 = tracker.move(\"<\");\n value2 += tracker.move(\n state.containerPhrasing(node, {\n before: value2,\n after: \">\",\n ...tracker.current()\n })\n );\n value2 += tracker.move(\">\");\n exit2();\n state.stack = stack;\n return value2;\n }\n exit2 = state.enter(\"link\");\n subexit = state.enter(\"label\");\n let value = tracker.move(\"[\");\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: \"](\",\n ...tracker.current()\n })\n );\n value += tracker.move(\"](\");\n subexit();\n if (\n // If there’s no url but there is a title…\n !node.url && node.title || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? \" \" : \")\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n value += tracker.move(\")\");\n exit2();\n return value;\n}\nfunction linkPeek(node, _, state) {\n return formatLinkAsAutolink(node, state) ? \"<\" : \"[\";\n}\nlinkReference.peek = linkReferencePeek;\nfunction linkReference(node, _, state, info) {\n const type = node.referenceType;\n const exit2 = state.enter(\"linkReference\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[\");\n const text2 = state.containerPhrasing(node, {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n value += tracker.move(text2 + \"][\");\n subexit();\n const stack = state.stack;\n state.stack = [];\n subexit = state.enter(\"reference\");\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n subexit();\n state.stack = stack;\n exit2();\n if (type === \"full\" || !text2 || text2 !== reference) {\n value += tracker.move(reference + \"]\");\n } else if (type === \"shortcut\") {\n value = value.slice(0, -1);\n } else {\n value += tracker.move(\"]\");\n }\n return value;\n}\nfunction linkReferencePeek() {\n return \"[\";\n}\nfunction checkBullet(state) {\n const marker = state.options.bullet || \"*\";\n if (marker !== \"*\" && marker !== \"+\" && marker !== \"-\") {\n throw new Error(\n \"Cannot serialize items with `\" + marker + \"` for `options.bullet`, expected `*`, `+`, or `-`\"\n );\n }\n return marker;\n}\nfunction checkBulletOther(state) {\n const bullet = checkBullet(state);\n const bulletOther = state.options.bulletOther;\n if (!bulletOther) {\n return bullet === \"*\" ? \"-\" : \"*\";\n }\n if (bulletOther !== \"*\" && bulletOther !== \"+\" && bulletOther !== \"-\") {\n throw new Error(\n \"Cannot serialize items with `\" + bulletOther + \"` for `options.bulletOther`, expected `*`, `+`, or `-`\"\n );\n }\n if (bulletOther === bullet) {\n throw new Error(\n \"Expected `bullet` (`\" + bullet + \"`) and `bulletOther` (`\" + bulletOther + \"`) to be different\"\n );\n }\n return bulletOther;\n}\nfunction checkBulletOrdered(state) {\n const marker = state.options.bulletOrdered || \".\";\n if (marker !== \".\" && marker !== \")\") {\n throw new Error(\n \"Cannot serialize items with `\" + marker + \"` for `options.bulletOrdered`, expected `.` or `)`\"\n );\n }\n return marker;\n}\nfunction checkRule(state) {\n const marker = state.options.rule || \"*\";\n if (marker !== \"*\" && marker !== \"-\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize rules with `\" + marker + \"` for `options.rule`, expected `*`, `-`, or `_`\"\n );\n }\n return marker;\n}\nfunction list(node, parent, state, info) {\n const exit2 = state.enter(\"list\");\n const bulletCurrent = state.bulletCurrent;\n let bullet = node.ordered ? checkBulletOrdered(state) : checkBullet(state);\n const bulletOther = node.ordered ? bullet === \".\" ? \")\" : \".\" : checkBulletOther(state);\n let useDifferentMarker = parent && state.bulletLastUsed ? bullet === state.bulletLastUsed : false;\n if (!node.ordered) {\n const firstListItem = node.children ? node.children[0] : void 0;\n if (\n // Bullet could be used as a thematic break marker:\n (bullet === \"*\" || bullet === \"-\") && // Empty first list item:\n firstListItem && (!firstListItem.children || !firstListItem.children[0]) && // Directly in two other list items:\n state.stack[state.stack.length - 1] === \"list\" && state.stack[state.stack.length - 2] === \"listItem\" && state.stack[state.stack.length - 3] === \"list\" && state.stack[state.stack.length - 4] === \"listItem\" && // That are each the first child.\n state.indexStack[state.indexStack.length - 1] === 0 && state.indexStack[state.indexStack.length - 2] === 0 && state.indexStack[state.indexStack.length - 3] === 0\n ) {\n useDifferentMarker = true;\n }\n if (checkRule(state) === bullet && firstListItem) {\n let index = -1;\n while (++index < node.children.length) {\n const item = node.children[index];\n if (item && item.type === \"listItem\" && item.children && item.children[0] && item.children[0].type === \"thematicBreak\") {\n useDifferentMarker = true;\n break;\n }\n }\n }\n }\n if (useDifferentMarker) {\n bullet = bulletOther;\n }\n state.bulletCurrent = bullet;\n const value = state.containerFlow(node, info);\n state.bulletLastUsed = bullet;\n state.bulletCurrent = bulletCurrent;\n exit2();\n return value;\n}\nfunction checkListItemIndent(state) {\n const style = state.options.listItemIndent || \"one\";\n if (style !== \"tab\" && style !== \"one\" && style !== \"mixed\") {\n throw new Error(\n \"Cannot serialize items with `\" + style + \"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`\"\n );\n }\n return style;\n}\nfunction listItem(node, parent, state, info) {\n const listItemIndent = checkListItemIndent(state);\n let bullet = state.bulletCurrent || checkBullet(state);\n if (parent && parent.type === \"list\" && parent.ordered) {\n bullet = (typeof parent.start === \"number\" && parent.start > -1 ? parent.start : 1) + (state.options.incrementListMarker === false ? 0 : parent.children.indexOf(node)) + bullet;\n }\n let size = bullet.length + 1;\n if (listItemIndent === \"tab\" || listItemIndent === \"mixed\" && (parent && parent.type === \"list\" && parent.spread || node.spread)) {\n size = Math.ceil(size / 4) * 4;\n }\n const tracker = state.createTracker(info);\n tracker.move(bullet + \" \".repeat(size - bullet.length));\n tracker.shift(size);\n const exit2 = state.enter(\"listItem\");\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map2\n );\n exit2();\n return value;\n function map2(line, index, blank) {\n if (index) {\n return (blank ? \"\" : \" \".repeat(size)) + line;\n }\n return (blank ? bullet : bullet + \" \".repeat(size - bullet.length)) + line;\n }\n}\nfunction paragraph(node, _, state, info) {\n const exit2 = state.enter(\"paragraph\");\n const subexit = state.enter(\"phrasing\");\n const value = state.containerPhrasing(node, info);\n subexit();\n exit2();\n return value;\n}\nconst phrasing = (\n /** @type {(node?: unknown) => node is Exclude} */\n convert([\n \"break\",\n \"delete\",\n \"emphasis\",\n // To do: next major: removed since footnotes were added to GFM.\n \"footnote\",\n \"footnoteReference\",\n \"image\",\n \"imageReference\",\n \"inlineCode\",\n // Enabled by `mdast-util-math`:\n \"inlineMath\",\n \"link\",\n \"linkReference\",\n // Enabled by `mdast-util-mdx`:\n \"mdxJsxTextElement\",\n // Enabled by `mdast-util-mdx`:\n \"mdxTextExpression\",\n \"strong\",\n \"text\",\n // Enabled by `mdast-util-directive`:\n \"textDirective\"\n ])\n);\nfunction root(node, _, state, info) {\n const hasPhrasing = node.children.some(function(d) {\n return phrasing(d);\n });\n const container = hasPhrasing ? state.containerPhrasing : state.containerFlow;\n return container.call(state, node, info);\n}\nfunction checkStrong(state) {\n const marker = state.options.strong || \"*\";\n if (marker !== \"*\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize strong with `\" + marker + \"` for `options.strong`, expected `*`, or `_`\"\n );\n }\n return marker;\n}\nstrong.peek = strongPeek;\nfunction strong(node, _, state, info) {\n const marker = checkStrong(state);\n const exit2 = state.enter(\"strong\");\n const tracker = state.createTracker(info);\n const before = tracker.move(marker + marker);\n let between = tracker.move(\n state.containerPhrasing(node, {\n after: marker,\n before,\n ...tracker.current()\n })\n );\n const betweenHead = between.charCodeAt(0);\n const open = encodeInfo(\n info.before.charCodeAt(info.before.length - 1),\n betweenHead,\n marker\n );\n if (open.inside) {\n between = encodeCharacterReference(betweenHead) + between.slice(1);\n }\n const betweenTail = between.charCodeAt(between.length - 1);\n const close = encodeInfo(info.after.charCodeAt(0), betweenTail, marker);\n if (close.inside) {\n between = between.slice(0, -1) + encodeCharacterReference(betweenTail);\n }\n const after = tracker.move(marker + marker);\n exit2();\n state.attentionEncodeSurroundingInfo = {\n after: close.outside,\n before: open.outside\n };\n return before + between + after;\n}\nfunction strongPeek(_, _1, state) {\n return state.options.strong || \"*\";\n}\nfunction text$1(node, _, state, info) {\n return state.safe(node.value, info);\n}\nfunction checkRuleRepetition(state) {\n const repetition = state.options.ruleRepetition || 3;\n if (repetition < 3) {\n throw new Error(\n \"Cannot serialize rules with repetition `\" + repetition + \"` for `options.ruleRepetition`, expected `3` or more\"\n );\n }\n return repetition;\n}\nfunction thematicBreak(_, _1, state) {\n const value = (checkRule(state) + (state.options.ruleSpaces ? \" \" : \"\")).repeat(checkRuleRepetition(state));\n return state.options.ruleSpaces ? value.slice(0, -1) : value;\n}\nconst handle = {\n blockquote,\n break: hardBreak,\n code: code$1,\n definition,\n emphasis,\n hardBreak,\n heading,\n html,\n image,\n imageReference,\n inlineCode,\n link,\n linkReference,\n list,\n listItem,\n paragraph,\n root,\n strong,\n text: text$1,\n thematicBreak\n};\nfunction gfmTableFromMarkdown() {\n return {\n enter: {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n },\n exit: {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n }\n };\n}\nfunction enterTable(token) {\n const align = token._align;\n this.enter(\n {\n type: \"table\",\n align: align.map(function(d) {\n return d === \"none\" ? null : d;\n }),\n children: []\n },\n token\n );\n this.data.inTable = true;\n}\nfunction exitTable(token) {\n this.exit(token);\n this.data.inTable = void 0;\n}\nfunction enterRow(token) {\n this.enter({ type: \"tableRow\", children: [] }, token);\n}\nfunction exit(token) {\n this.exit(token);\n}\nfunction enterCell(token) {\n this.enter({ type: \"tableCell\", children: [] }, token);\n}\nfunction exitCodeText(token) {\n let value = this.resume();\n if (this.data.inTable) {\n value = value.replace(/\\\\([\\\\|])/g, replace);\n }\n const node = this.stack[this.stack.length - 1];\n ok$1(node.type === \"inlineCode\");\n node.value = value;\n this.exit(token);\n}\nfunction replace($0, $1) {\n return $1 === \"|\" ? $1 : $0;\n}\nfunction gfmTableToMarkdown(options) {\n const settings = options || {};\n const padding = settings.tableCellPadding;\n const alignDelimiters = settings.tablePipeAlign;\n const stringLength = settings.stringLength;\n const around = padding ? \" \" : \"|\";\n return {\n unsafe: [\n { character: \"\\r\", inConstruct: \"tableCell\" },\n { character: \"\\n\", inConstruct: \"tableCell\" },\n // A pipe, when followed by a tab or space (padding), or a dash or colon\n // (unpadded delimiter row), could result in a table.\n { atBreak: true, character: \"|\", after: \"[\t :-]\" },\n // A pipe in a cell must be encoded.\n { character: \"|\", inConstruct: \"tableCell\" },\n // A colon must be followed by a dash, in which case it could start a\n // delimiter row.\n { atBreak: true, character: \":\", after: \"-\" },\n // A delimiter row can also start with a dash, when followed by more\n // dashes, a colon, or a pipe.\n // This is a stricter version than the built in check for lists, thematic\n // breaks, and setex heading underlines though:\n // \n { atBreak: true, character: \"-\", after: \"[:|-]\" }\n ],\n handlers: {\n inlineCode: inlineCodeWithTable,\n table: handleTable,\n tableCell: handleTableCell,\n tableRow: handleTableRow\n }\n };\n function handleTable(node, _, state, info) {\n return serializeData(handleTableAsData(node, state, info), node.align);\n }\n function handleTableRow(node, _, state, info) {\n const row = handleTableRowAsData(node, state, info);\n const value = serializeData([row]);\n return value.slice(0, value.indexOf(\"\\n\"));\n }\n function handleTableCell(node, _, state, info) {\n const exit2 = state.enter(\"tableCell\");\n const subexit = state.enter(\"phrasing\");\n const value = state.containerPhrasing(node, {\n ...info,\n before: around,\n after: around\n });\n subexit();\n exit2();\n return value;\n }\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align,\n // @ts-expect-error: `markdown-table` types should support `null`.\n alignDelimiters,\n // @ts-expect-error: `markdown-table` types should support `null`.\n padding,\n // @ts-expect-error: `markdown-table` types should support `null`.\n stringLength\n });\n }\n function handleTableAsData(node, state, info) {\n const children = node.children;\n let index = -1;\n const result = [];\n const subexit = state.enter(\"table\");\n while (++index < children.length) {\n result[index] = handleTableRowAsData(children[index], state, info);\n }\n subexit();\n return result;\n }\n function handleTableRowAsData(node, state, info) {\n const children = node.children;\n let index = -1;\n const result = [];\n const subexit = state.enter(\"tableRow\");\n while (++index < children.length) {\n result[index] = handleTableCell(children[index], node, state, info);\n }\n subexit();\n return result;\n }\n function inlineCodeWithTable(node, parent, state) {\n let value = handle.inlineCode(node, parent, state);\n if (state.stack.includes(\"tableCell\")) {\n value = value.replace(/\\|/g, \"\\\\$&\");\n }\n return value;\n }\n}\nfunction gfmTaskListItemFromMarkdown() {\n return {\n exit: {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n }\n };\n}\nfunction gfmTaskListItemToMarkdown() {\n return {\n unsafe: [{ atBreak: true, character: \"-\", after: \"[:|-]\" }],\n handlers: { listItem: listItemWithTaskListItem }\n };\n}\nfunction exitCheck(token) {\n const node = this.stack[this.stack.length - 2];\n ok$1(node.type === \"listItem\");\n node.checked = token.type === \"taskListCheckValueChecked\";\n}\nfunction exitParagraphWithTaskListItem(token) {\n const parent = this.stack[this.stack.length - 2];\n if (parent && parent.type === \"listItem\" && typeof parent.checked === \"boolean\") {\n const node = this.stack[this.stack.length - 1];\n ok$1(node.type === \"paragraph\");\n const head = node.children[0];\n if (head && head.type === \"text\") {\n const siblings = parent.children;\n let index = -1;\n let firstParaghraph;\n while (++index < siblings.length) {\n const sibling = siblings[index];\n if (sibling.type === \"paragraph\") {\n firstParaghraph = sibling;\n break;\n }\n }\n if (firstParaghraph === node) {\n head.value = head.value.slice(1);\n if (head.value.length === 0) {\n node.children.shift();\n } else if (node.position && head.position && typeof head.position.start.offset === \"number\") {\n head.position.start.column++;\n head.position.start.offset++;\n node.position.start = Object.assign({}, head.position.start);\n }\n }\n }\n }\n this.exit(token);\n}\nfunction listItemWithTaskListItem(node, parent, state, info) {\n const head = node.children[0];\n const checkable = typeof node.checked === \"boolean\" && head && head.type === \"paragraph\";\n const checkbox = \"[\" + (node.checked ? \"x\" : \" \") + \"] \";\n const tracker = state.createTracker(info);\n if (checkable) {\n tracker.move(checkbox);\n }\n let value = handle.listItem(node, parent, state, {\n ...info,\n ...tracker.current()\n });\n if (checkable) {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check);\n }\n return value;\n function check($0) {\n return $0 + checkbox;\n }\n}\nfunction gfmFromMarkdown() {\n return [\n gfmAutolinkLiteralFromMarkdown(),\n gfmFootnoteFromMarkdown(),\n gfmStrikethroughFromMarkdown(),\n gfmTableFromMarkdown(),\n gfmTaskListItemFromMarkdown()\n ];\n}\nfunction gfmToMarkdown(options) {\n return {\n extensions: [\n gfmAutolinkLiteralToMarkdown(),\n gfmFootnoteToMarkdown(options),\n gfmStrikethroughToMarkdown(),\n gfmTableToMarkdown(options),\n gfmTaskListItemToMarkdown()\n ]\n };\n}\nfunction splice(list2, start, remove, items) {\n const end = list2.length;\n let chunkStart = 0;\n let parameters;\n if (start < 0) {\n start = -start > end ? 0 : end + start;\n } else {\n start = start > end ? end : start;\n }\n remove = remove > 0 ? remove : 0;\n if (items.length < 1e4) {\n parameters = Array.from(items);\n parameters.unshift(start, remove);\n list2.splice(...parameters);\n } else {\n if (remove) list2.splice(start, remove);\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 1e4);\n parameters.unshift(start, 0);\n list2.splice(...parameters);\n chunkStart += 1e4;\n start += 1e4;\n }\n }\n}\nconst hasOwnProperty = {}.hasOwnProperty;\nfunction combineExtensions(extensions) {\n const all = {};\n let index = -1;\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index]);\n }\n return all;\n}\nfunction syntaxExtension(all, extension) {\n let hook;\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : void 0;\n const left = maybe || (all[hook] = {});\n const right = extension[hook];\n let code2;\n if (right) {\n for (code2 in right) {\n if (!hasOwnProperty.call(left, code2)) left[code2] = [];\n const value = right[code2];\n constructs(\n // @ts-expect-error Looks like a list.\n left[code2],\n Array.isArray(value) ? value : value ? [value] : []\n );\n }\n }\n }\n}\nfunction constructs(existing, list2) {\n let index = -1;\n const before = [];\n while (++index < list2.length) {\n (list2[index].add === \"after\" ? existing : before).push(list2[index]);\n }\n splice(existing, 0, 0, before);\n}\nconst wwwPrefix = {\n tokenize: tokenizeWwwPrefix,\n partial: true\n};\nconst domain = {\n tokenize: tokenizeDomain,\n partial: true\n};\nconst path = {\n tokenize: tokenizePath,\n partial: true\n};\nconst trail = {\n tokenize: tokenizeTrail,\n partial: true\n};\nconst emailDomainDotTrail = {\n tokenize: tokenizeEmailDomainDotTrail,\n partial: true\n};\nconst wwwAutolink = {\n name: \"wwwAutolink\",\n tokenize: tokenizeWwwAutolink,\n previous: previousWww\n};\nconst protocolAutolink = {\n name: \"protocolAutolink\",\n tokenize: tokenizeProtocolAutolink,\n previous: previousProtocol\n};\nconst emailAutolink = {\n name: \"emailAutolink\",\n tokenize: tokenizeEmailAutolink,\n previous: previousEmail\n};\nconst text = {};\nfunction gfmAutolinkLiteral() {\n return {\n text\n };\n}\nlet code = 48;\nwhile (code < 123) {\n text[code] = emailAutolink;\n code++;\n if (code === 58) code = 65;\n else if (code === 91) code = 97;\n}\ntext[43] = emailAutolink;\ntext[45] = emailAutolink;\ntext[46] = emailAutolink;\ntext[95] = emailAutolink;\ntext[72] = [emailAutolink, protocolAutolink];\ntext[104] = [emailAutolink, protocolAutolink];\ntext[87] = [emailAutolink, wwwAutolink];\ntext[119] = [emailAutolink, wwwAutolink];\nfunction tokenizeEmailAutolink(effects, ok2, nok) {\n const self = this;\n let dot;\n let data;\n return start;\n function start(code2) {\n if (!gfmAtext(code2) || !previousEmail.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code2);\n }\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkEmail\");\n return atext(code2);\n }\n function atext(code2) {\n if (gfmAtext(code2)) {\n effects.consume(code2);\n return atext;\n }\n if (code2 === 64) {\n effects.consume(code2);\n return emailDomain;\n }\n return nok(code2);\n }\n function emailDomain(code2) {\n if (code2 === 46) {\n return effects.check(emailDomainDotTrail, emailDomainAfter, emailDomainDot)(code2);\n }\n if (code2 === 45 || code2 === 95 || asciiAlphanumeric(code2)) {\n data = true;\n effects.consume(code2);\n return emailDomain;\n }\n return emailDomainAfter(code2);\n }\n function emailDomainDot(code2) {\n effects.consume(code2);\n dot = true;\n return emailDomain;\n }\n function emailDomainAfter(code2) {\n if (data && dot && asciiAlpha(self.previous)) {\n effects.exit(\"literalAutolinkEmail\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n return nok(code2);\n }\n}\nfunction tokenizeWwwAutolink(effects, ok2, nok) {\n const self = this;\n return wwwStart;\n function wwwStart(code2) {\n if (code2 !== 87 && code2 !== 119 || !previousWww.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code2);\n }\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkWww\");\n return effects.check(wwwPrefix, effects.attempt(domain, effects.attempt(path, wwwAfter), nok), nok)(code2);\n }\n function wwwAfter(code2) {\n effects.exit(\"literalAutolinkWww\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n}\nfunction tokenizeProtocolAutolink(effects, ok2, nok) {\n const self = this;\n let buffer = \"\";\n let seen = false;\n return protocolStart;\n function protocolStart(code2) {\n if ((code2 === 72 || code2 === 104) && previousProtocol.call(self, self.previous) && !previousUnbalanced(self.events)) {\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkHttp\");\n buffer += String.fromCodePoint(code2);\n effects.consume(code2);\n return protocolPrefixInside;\n }\n return nok(code2);\n }\n function protocolPrefixInside(code2) {\n if (asciiAlpha(code2) && buffer.length < 5) {\n buffer += String.fromCodePoint(code2);\n effects.consume(code2);\n return protocolPrefixInside;\n }\n if (code2 === 58) {\n const protocol = buffer.toLowerCase();\n if (protocol === \"http\" || protocol === \"https\") {\n effects.consume(code2);\n return protocolSlashesInside;\n }\n }\n return nok(code2);\n }\n function protocolSlashesInside(code2) {\n if (code2 === 47) {\n effects.consume(code2);\n if (seen) {\n return afterProtocol;\n }\n seen = true;\n return protocolSlashesInside;\n }\n return nok(code2);\n }\n function afterProtocol(code2) {\n return code2 === null || asciiControl(code2) || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2) || unicodePunctuation(code2) ? nok(code2) : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code2);\n }\n function protocolAfter(code2) {\n effects.exit(\"literalAutolinkHttp\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n}\nfunction tokenizeWwwPrefix(effects, ok2, nok) {\n let size = 0;\n return wwwPrefixInside;\n function wwwPrefixInside(code2) {\n if ((code2 === 87 || code2 === 119) && size < 3) {\n size++;\n effects.consume(code2);\n return wwwPrefixInside;\n }\n if (code2 === 46 && size === 3) {\n effects.consume(code2);\n return wwwPrefixAfter;\n }\n return nok(code2);\n }\n function wwwPrefixAfter(code2) {\n return code2 === null ? nok(code2) : ok2(code2);\n }\n}\nfunction tokenizeDomain(effects, ok2, nok) {\n let underscoreInLastSegment;\n let underscoreInLastLastSegment;\n let seen;\n return domainInside;\n function domainInside(code2) {\n if (code2 === 46 || code2 === 95) {\n return effects.check(trail, domainAfter, domainAtPunctuation)(code2);\n }\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2) || code2 !== 45 && unicodePunctuation(code2)) {\n return domainAfter(code2);\n }\n seen = true;\n effects.consume(code2);\n return domainInside;\n }\n function domainAtPunctuation(code2) {\n if (code2 === 95) {\n underscoreInLastSegment = true;\n } else {\n underscoreInLastLastSegment = underscoreInLastSegment;\n underscoreInLastSegment = void 0;\n }\n effects.consume(code2);\n return domainInside;\n }\n function domainAfter(code2) {\n if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) {\n return nok(code2);\n }\n return ok2(code2);\n }\n}\nfunction tokenizePath(effects, ok2) {\n let sizeOpen = 0;\n let sizeClose = 0;\n return pathInside;\n function pathInside(code2) {\n if (code2 === 40) {\n sizeOpen++;\n effects.consume(code2);\n return pathInside;\n }\n if (code2 === 41 && sizeClose < sizeOpen) {\n return pathAtPunctuation(code2);\n }\n if (code2 === 33 || code2 === 34 || code2 === 38 || code2 === 39 || code2 === 41 || code2 === 42 || code2 === 44 || code2 === 46 || code2 === 58 || code2 === 59 || code2 === 60 || code2 === 63 || code2 === 93 || code2 === 95 || code2 === 126) {\n return effects.check(trail, ok2, pathAtPunctuation)(code2);\n }\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return ok2(code2);\n }\n effects.consume(code2);\n return pathInside;\n }\n function pathAtPunctuation(code2) {\n if (code2 === 41) {\n sizeClose++;\n }\n effects.consume(code2);\n return pathInside;\n }\n}\nfunction tokenizeTrail(effects, ok2, nok) {\n return trail2;\n function trail2(code2) {\n if (code2 === 33 || code2 === 34 || code2 === 39 || code2 === 41 || code2 === 42 || code2 === 44 || code2 === 46 || code2 === 58 || code2 === 59 || code2 === 63 || code2 === 95 || code2 === 126) {\n effects.consume(code2);\n return trail2;\n }\n if (code2 === 38) {\n effects.consume(code2);\n return trailCharacterReferenceStart;\n }\n if (code2 === 93) {\n effects.consume(code2);\n return trailBracketAfter;\n }\n if (\n // `<` is an end.\n code2 === 60 || // So is whitespace.\n code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)\n ) {\n return ok2(code2);\n }\n return nok(code2);\n }\n function trailBracketAfter(code2) {\n if (code2 === null || code2 === 40 || code2 === 91 || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return ok2(code2);\n }\n return trail2(code2);\n }\n function trailCharacterReferenceStart(code2) {\n return asciiAlpha(code2) ? trailCharacterReferenceInside(code2) : nok(code2);\n }\n function trailCharacterReferenceInside(code2) {\n if (code2 === 59) {\n effects.consume(code2);\n return trail2;\n }\n if (asciiAlpha(code2)) {\n effects.consume(code2);\n return trailCharacterReferenceInside;\n }\n return nok(code2);\n }\n}\nfunction tokenizeEmailDomainDotTrail(effects, ok2, nok) {\n return start;\n function start(code2) {\n effects.consume(code2);\n return after;\n }\n function after(code2) {\n return asciiAlphanumeric(code2) ? nok(code2) : ok2(code2);\n }\n}\nfunction previousWww(code2) {\n return code2 === null || code2 === 40 || code2 === 42 || code2 === 95 || code2 === 91 || code2 === 93 || code2 === 126 || markdownLineEndingOrSpace(code2);\n}\nfunction previousProtocol(code2) {\n return !asciiAlpha(code2);\n}\nfunction previousEmail(code2) {\n return !(code2 === 47 || gfmAtext(code2));\n}\nfunction gfmAtext(code2) {\n return code2 === 43 || code2 === 45 || code2 === 46 || code2 === 95 || asciiAlphanumeric(code2);\n}\nfunction previousUnbalanced(events) {\n let index = events.length;\n let result = false;\n while (index--) {\n const token = events[index][1];\n if ((token.type === \"labelLink\" || token.type === \"labelImage\") && !token._balanced) {\n result = true;\n break;\n }\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false;\n break;\n }\n }\n if (events.length > 0 && !result) {\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true;\n }\n return result;\n}\nfunction resolveAll(constructs2, events, context) {\n const called = [];\n let index = -1;\n while (++index < constructs2.length) {\n const resolve = constructs2[index].resolveAll;\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context);\n called.push(resolve);\n }\n }\n return events;\n}\nfunction factorySpace(effects, ok2, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY;\n let size = 0;\n return start;\n function start(code2) {\n if (markdownSpace(code2)) {\n effects.enter(type);\n return prefix(code2);\n }\n return ok2(code2);\n }\n function prefix(code2) {\n if (markdownSpace(code2) && size++ < limit) {\n effects.consume(code2);\n return prefix;\n }\n effects.exit(type);\n return ok2(code2);\n }\n}\nconst blankLine = {\n partial: true,\n tokenize: tokenizeBlankLine\n};\nfunction tokenizeBlankLine(effects, ok2, nok) {\n return start;\n function start(code2) {\n return markdownSpace(code2) ? factorySpace(effects, after, \"linePrefix\")(code2) : after(code2);\n }\n function after(code2) {\n return code2 === null || markdownLineEnding(code2) ? ok2(code2) : nok(code2);\n }\n}\nconst indent = {\n tokenize: tokenizeIndent,\n partial: true\n};\nfunction gfmFootnote() {\n return {\n document: {\n [91]: {\n name: \"gfmFootnoteDefinition\",\n tokenize: tokenizeDefinitionStart,\n continuation: {\n tokenize: tokenizeDefinitionContinuation\n },\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [91]: {\n name: \"gfmFootnoteCall\",\n tokenize: tokenizeGfmFootnoteCall\n },\n [93]: {\n name: \"gfmPotentialFootnoteCall\",\n add: \"after\",\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n };\n}\nfunction tokenizePotentialGfmFootnoteCall(effects, ok2, nok) {\n const self = this;\n let index = self.events.length;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let labelStart;\n while (index--) {\n const token = self.events[index][1];\n if (token.type === \"labelImage\") {\n labelStart = token;\n break;\n }\n if (token.type === \"gfmFootnoteCall\" || token.type === \"labelLink\" || token.type === \"label\" || token.type === \"image\" || token.type === \"link\") {\n break;\n }\n }\n return start;\n function start(code2) {\n if (!labelStart || !labelStart._balanced) {\n return nok(code2);\n }\n const id = normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n }));\n if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) {\n return nok(code2);\n }\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return ok2(code2);\n }\n}\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length;\n while (index--) {\n if (events[index][1].type === \"labelImage\" && events[index][0] === \"enter\") {\n events[index][1];\n break;\n }\n }\n events[index + 1][1].type = \"data\";\n events[index + 3][1].type = \"gfmFootnoteCallLabelMarker\";\n const call = {\n type: \"gfmFootnoteCall\",\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n const marker = {\n type: \"gfmFootnoteCallMarker\",\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n };\n marker.end.column++;\n marker.end.offset++;\n marker.end._bufferIndex++;\n const string = {\n type: \"gfmFootnoteCallString\",\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n };\n const chunk = {\n type: \"chunkString\",\n contentType: \"string\",\n start: Object.assign({}, string.start),\n end: Object.assign({}, string.end)\n };\n const replacement = [\n // Take the `labelImageMarker` (now `data`, the `!`)\n events[index + 1],\n events[index + 2],\n [\"enter\", call, context],\n // The `[`\n events[index + 3],\n events[index + 4],\n // The `^`.\n [\"enter\", marker, context],\n [\"exit\", marker, context],\n // Everything in between.\n [\"enter\", string, context],\n [\"enter\", chunk, context],\n [\"exit\", chunk, context],\n [\"exit\", string, context],\n // The ending (`]`, properly parsed and labelled).\n events[events.length - 2],\n events[events.length - 1],\n [\"exit\", call, context]\n ];\n events.splice(index, events.length - index + 1, ...replacement);\n return events;\n}\nfunction tokenizeGfmFootnoteCall(effects, ok2, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let size = 0;\n let data;\n return start;\n function start(code2) {\n effects.enter(\"gfmFootnoteCall\");\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return callStart;\n }\n function callStart(code2) {\n if (code2 !== 94) return nok(code2);\n effects.enter(\"gfmFootnoteCallMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallMarker\");\n effects.enter(\"gfmFootnoteCallString\");\n effects.enter(\"chunkString\").contentType = \"string\";\n return callData;\n }\n function callData(code2) {\n if (\n // Too long.\n size > 999 || // Closing brace with nothing.\n code2 === 93 && !data || // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code2 === null || code2 === 91 || markdownLineEndingOrSpace(code2)\n ) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.exit(\"chunkString\");\n const token = effects.exit(\"gfmFootnoteCallString\");\n if (!defined.includes(normalizeIdentifier(self.sliceSerialize(token)))) {\n return nok(code2);\n }\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n effects.exit(\"gfmFootnoteCall\");\n return ok2;\n }\n if (!markdownLineEndingOrSpace(code2)) {\n data = true;\n }\n size++;\n effects.consume(code2);\n return code2 === 92 ? callEscape : callData;\n }\n function callEscape(code2) {\n if (code2 === 91 || code2 === 92 || code2 === 93) {\n effects.consume(code2);\n size++;\n return callData;\n }\n return callData(code2);\n }\n}\nfunction tokenizeDefinitionStart(effects, ok2, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let identifier;\n let size = 0;\n let data;\n return start;\n function start(code2) {\n effects.enter(\"gfmFootnoteDefinition\")._container = true;\n effects.enter(\"gfmFootnoteDefinitionLabel\");\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n return labelAtMarker;\n }\n function labelAtMarker(code2) {\n if (code2 === 94) {\n effects.enter(\"gfmFootnoteDefinitionMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionMarker\");\n effects.enter(\"gfmFootnoteDefinitionLabelString\");\n effects.enter(\"chunkString\").contentType = \"string\";\n return labelInside;\n }\n return nok(code2);\n }\n function labelInside(code2) {\n if (\n // Too long.\n size > 999 || // Closing brace with nothing.\n code2 === 93 && !data || // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code2 === null || code2 === 91 || markdownLineEndingOrSpace(code2)\n ) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.exit(\"chunkString\");\n const token = effects.exit(\"gfmFootnoteDefinitionLabelString\");\n identifier = normalizeIdentifier(self.sliceSerialize(token));\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n effects.exit(\"gfmFootnoteDefinitionLabel\");\n return labelAfter;\n }\n if (!markdownLineEndingOrSpace(code2)) {\n data = true;\n }\n size++;\n effects.consume(code2);\n return code2 === 92 ? labelEscape : labelInside;\n }\n function labelEscape(code2) {\n if (code2 === 91 || code2 === 92 || code2 === 93) {\n effects.consume(code2);\n size++;\n return labelInside;\n }\n return labelInside(code2);\n }\n function labelAfter(code2) {\n if (code2 === 58) {\n effects.enter(\"definitionMarker\");\n effects.consume(code2);\n effects.exit(\"definitionMarker\");\n if (!defined.includes(identifier)) {\n defined.push(identifier);\n }\n return factorySpace(effects, whitespaceAfter, \"gfmFootnoteDefinitionWhitespace\");\n }\n return nok(code2);\n }\n function whitespaceAfter(code2) {\n return ok2(code2);\n }\n}\nfunction tokenizeDefinitionContinuation(effects, ok2, nok) {\n return effects.check(blankLine, ok2, effects.attempt(indent, ok2, nok));\n}\nfunction gfmFootnoteDefinitionEnd(effects) {\n effects.exit(\"gfmFootnoteDefinition\");\n}\nfunction tokenizeIndent(effects, ok2, nok) {\n const self = this;\n return factorySpace(effects, afterPrefix, \"gfmFootnoteDefinitionIndent\", 4 + 1);\n function afterPrefix(code2) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"gfmFootnoteDefinitionIndent\" && tail[2].sliceSerialize(tail[1], true).length === 4 ? ok2(code2) : nok(code2);\n }\n}\nfunction gfmStrikethrough(options) {\n const options_ = options || {};\n let single = options_.singleTilde;\n const tokenizer = {\n name: \"strikethrough\",\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n };\n if (single === null || single === void 0) {\n single = true;\n }\n return {\n text: {\n [126]: tokenizer\n },\n insideSpan: {\n null: [tokenizer]\n },\n attentionMarkers: {\n null: [126]\n }\n };\n function resolveAllStrikethrough(events, context) {\n let index = -1;\n while (++index < events.length) {\n if (events[index][0] === \"enter\" && events[index][1].type === \"strikethroughSequenceTemporary\" && events[index][1]._close) {\n let open = index;\n while (open--) {\n if (events[open][0] === \"exit\" && events[open][1].type === \"strikethroughSequenceTemporary\" && events[open][1]._open && // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset === events[open][1].end.offset - events[open][1].start.offset) {\n events[index][1].type = \"strikethroughSequence\";\n events[open][1].type = \"strikethroughSequence\";\n const strikethrough = {\n type: \"strikethrough\",\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n };\n const text2 = {\n type: \"strikethroughText\",\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n };\n const nextEvents = [[\"enter\", strikethrough, context], [\"enter\", events[open][1], context], [\"exit\", events[open][1], context], [\"enter\", text2, context]];\n const insideSpan = context.parser.constructs.insideSpan.null;\n if (insideSpan) {\n splice(nextEvents, nextEvents.length, 0, resolveAll(insideSpan, events.slice(open + 1, index), context));\n }\n splice(nextEvents, nextEvents.length, 0, [[\"exit\", text2, context], [\"enter\", events[index][1], context], [\"exit\", events[index][1], context], [\"exit\", strikethrough, context]]);\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - 2;\n break;\n }\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === \"strikethroughSequenceTemporary\") {\n events[index][1].type = \"data\";\n }\n }\n return events;\n }\n function tokenizeStrikethrough(effects, ok2, nok) {\n const previous2 = this.previous;\n const events = this.events;\n let size = 0;\n return start;\n function start(code2) {\n if (previous2 === 126 && events[events.length - 1][1].type !== \"characterEscape\") {\n return nok(code2);\n }\n effects.enter(\"strikethroughSequenceTemporary\");\n return more(code2);\n }\n function more(code2) {\n const before = classifyCharacter(previous2);\n if (code2 === 126) {\n if (size > 1) return nok(code2);\n effects.consume(code2);\n size++;\n return more;\n }\n if (size < 2 && !single) return nok(code2);\n const token = effects.exit(\"strikethroughSequenceTemporary\");\n const after = classifyCharacter(code2);\n token._open = !after || after === 2 && Boolean(before);\n token._close = !before || before === 2 && Boolean(after);\n return ok2(code2);\n }\n }\n}\nclass EditMap {\n /**\n * Create a new edit map.\n */\n constructor() {\n this.map = [];\n }\n /**\n * Create an edit: a remove and/or add at a certain place.\n *\n * @param {number} index\n * @param {number} remove\n * @param {Array} add\n * @returns {undefined}\n */\n add(index, remove, add) {\n addImplementation(this, index, remove, add);\n }\n // To do: add this when moving to `micromark`.\n // /**\n // * Create an edit: but insert `add` before existing additions.\n // *\n // * @param {number} index\n // * @param {number} remove\n // * @param {Array} add\n // * @returns {undefined}\n // */\n // addBefore(index, remove, add) {\n // addImplementation(this, index, remove, add, true)\n // }\n /**\n * Done, change the events.\n *\n * @param {Array} events\n * @returns {undefined}\n */\n consume(events) {\n this.map.sort(function(a, b) {\n return a[0] - b[0];\n });\n if (this.map.length === 0) {\n return;\n }\n let index = this.map.length;\n const vecs = [];\n while (index > 0) {\n index -= 1;\n vecs.push(events.slice(this.map[index][0] + this.map[index][1]), this.map[index][2]);\n events.length = this.map[index][0];\n }\n vecs.push(events.slice());\n events.length = 0;\n let slice = vecs.pop();\n while (slice) {\n for (const element of slice) {\n events.push(element);\n }\n slice = vecs.pop();\n }\n this.map.length = 0;\n }\n}\nfunction addImplementation(editMap, at, remove, add) {\n let index = 0;\n if (remove === 0 && add.length === 0) {\n return;\n }\n while (index < editMap.map.length) {\n if (editMap.map[index][0] === at) {\n editMap.map[index][1] += remove;\n editMap.map[index][2].push(...add);\n return;\n }\n index += 1;\n }\n editMap.map.push([at, remove, add]);\n}\nfunction gfmTableAlign(events, index) {\n let inDelimiterRow = false;\n const align = [];\n while (index < events.length) {\n const event = events[index];\n if (inDelimiterRow) {\n if (event[0] === \"enter\") {\n if (event[1].type === \"tableContent\") {\n align.push(events[index + 1][1].type === \"tableDelimiterMarker\" ? \"left\" : \"none\");\n }\n } else if (event[1].type === \"tableContent\") {\n if (events[index - 1][1].type === \"tableDelimiterMarker\") {\n const alignIndex = align.length - 1;\n align[alignIndex] = align[alignIndex] === \"left\" ? \"center\" : \"right\";\n }\n } else if (event[1].type === \"tableDelimiterRow\") {\n break;\n }\n } else if (event[0] === \"enter\" && event[1].type === \"tableDelimiterRow\") {\n inDelimiterRow = true;\n }\n index += 1;\n }\n return align;\n}\nfunction gfmTable() {\n return {\n flow: {\n null: {\n name: \"table\",\n tokenize: tokenizeTable,\n resolveAll: resolveTable\n }\n }\n };\n}\nfunction tokenizeTable(effects, ok2, nok) {\n const self = this;\n let size = 0;\n let sizeB = 0;\n let seen;\n return start;\n function start(code2) {\n let index = self.events.length - 1;\n while (index > -1) {\n const type = self.events[index][1].type;\n if (type === \"lineEnding\" || // Note: markdown-rs uses `whitespace` instead of `linePrefix`\n type === \"linePrefix\") index--;\n else break;\n }\n const tail = index > -1 ? self.events[index][1].type : null;\n const next = tail === \"tableHead\" || tail === \"tableRow\" ? bodyRowStart : headRowBefore;\n if (next === bodyRowStart && self.parser.lazy[self.now().line]) {\n return nok(code2);\n }\n return next(code2);\n }\n function headRowBefore(code2) {\n effects.enter(\"tableHead\");\n effects.enter(\"tableRow\");\n return headRowStart(code2);\n }\n function headRowStart(code2) {\n if (code2 === 124) {\n return headRowBreak(code2);\n }\n seen = true;\n sizeB += 1;\n return headRowBreak(code2);\n }\n function headRowBreak(code2) {\n if (code2 === null) {\n return nok(code2);\n }\n if (markdownLineEnding(code2)) {\n if (sizeB > 1) {\n sizeB = 0;\n self.interrupt = true;\n effects.exit(\"tableRow\");\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return headDelimiterStart;\n }\n return nok(code2);\n }\n if (markdownSpace(code2)) {\n return factorySpace(effects, headRowBreak, \"whitespace\")(code2);\n }\n sizeB += 1;\n if (seen) {\n seen = false;\n size += 1;\n }\n if (code2 === 124) {\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n seen = true;\n return headRowBreak;\n }\n effects.enter(\"data\");\n return headRowData(code2);\n }\n function headRowData(code2) {\n if (code2 === null || code2 === 124 || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"data\");\n return headRowBreak(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? headRowEscape : headRowData;\n }\n function headRowEscape(code2) {\n if (code2 === 92 || code2 === 124) {\n effects.consume(code2);\n return headRowData;\n }\n return headRowData(code2);\n }\n function headDelimiterStart(code2) {\n self.interrupt = false;\n if (self.parser.lazy[self.now().line]) {\n return nok(code2);\n }\n effects.enter(\"tableDelimiterRow\");\n seen = false;\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterBefore, \"linePrefix\", self.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4)(code2);\n }\n return headDelimiterBefore(code2);\n }\n function headDelimiterBefore(code2) {\n if (code2 === 45 || code2 === 58) {\n return headDelimiterValueBefore(code2);\n }\n if (code2 === 124) {\n seen = true;\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n return headDelimiterCellBefore;\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterCellBefore(code2) {\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterValueBefore, \"whitespace\")(code2);\n }\n return headDelimiterValueBefore(code2);\n }\n function headDelimiterValueBefore(code2) {\n if (code2 === 58) {\n sizeB += 1;\n seen = true;\n effects.enter(\"tableDelimiterMarker\");\n effects.consume(code2);\n effects.exit(\"tableDelimiterMarker\");\n return headDelimiterLeftAlignmentAfter;\n }\n if (code2 === 45) {\n sizeB += 1;\n return headDelimiterLeftAlignmentAfter(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n return headDelimiterCellAfter(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterLeftAlignmentAfter(code2) {\n if (code2 === 45) {\n effects.enter(\"tableDelimiterFiller\");\n return headDelimiterFiller(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterFiller(code2) {\n if (code2 === 45) {\n effects.consume(code2);\n return headDelimiterFiller;\n }\n if (code2 === 58) {\n seen = true;\n effects.exit(\"tableDelimiterFiller\");\n effects.enter(\"tableDelimiterMarker\");\n effects.consume(code2);\n effects.exit(\"tableDelimiterMarker\");\n return headDelimiterRightAlignmentAfter;\n }\n effects.exit(\"tableDelimiterFiller\");\n return headDelimiterRightAlignmentAfter(code2);\n }\n function headDelimiterRightAlignmentAfter(code2) {\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterCellAfter, \"whitespace\")(code2);\n }\n return headDelimiterCellAfter(code2);\n }\n function headDelimiterCellAfter(code2) {\n if (code2 === 124) {\n return headDelimiterBefore(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n if (!seen || size !== sizeB) {\n return headDelimiterNok(code2);\n }\n effects.exit(\"tableDelimiterRow\");\n effects.exit(\"tableHead\");\n return ok2(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterNok(code2) {\n return nok(code2);\n }\n function bodyRowStart(code2) {\n effects.enter(\"tableRow\");\n return bodyRowBreak(code2);\n }\n function bodyRowBreak(code2) {\n if (code2 === 124) {\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n return bodyRowBreak;\n }\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"tableRow\");\n return ok2(code2);\n }\n if (markdownSpace(code2)) {\n return factorySpace(effects, bodyRowBreak, \"whitespace\")(code2);\n }\n effects.enter(\"data\");\n return bodyRowData(code2);\n }\n function bodyRowData(code2) {\n if (code2 === null || code2 === 124 || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"data\");\n return bodyRowBreak(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? bodyRowEscape : bodyRowData;\n }\n function bodyRowEscape(code2) {\n if (code2 === 92 || code2 === 124) {\n effects.consume(code2);\n return bodyRowData;\n }\n return bodyRowData(code2);\n }\n}\nfunction resolveTable(events, context) {\n let index = -1;\n let inFirstCellAwaitingPipe = true;\n let rowKind = 0;\n let lastCell = [0, 0, 0, 0];\n let cell = [0, 0, 0, 0];\n let afterHeadAwaitingFirstBodyRow = false;\n let lastTableEnd = 0;\n let currentTable;\n let currentBody;\n let currentCell;\n const map2 = new EditMap();\n while (++index < events.length) {\n const event = events[index];\n const token = event[1];\n if (event[0] === \"enter\") {\n if (token.type === \"tableHead\") {\n afterHeadAwaitingFirstBodyRow = false;\n if (lastTableEnd !== 0) {\n flushTableEnd(map2, context, lastTableEnd, currentTable, currentBody);\n currentBody = void 0;\n lastTableEnd = 0;\n }\n currentTable = {\n type: \"table\",\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map2.add(index, 0, [[\"enter\", currentTable, context]]);\n } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n inFirstCellAwaitingPipe = true;\n currentCell = void 0;\n lastCell = [0, 0, 0, 0];\n cell = [0, index + 1, 0, 0];\n if (afterHeadAwaitingFirstBodyRow) {\n afterHeadAwaitingFirstBodyRow = false;\n currentBody = {\n type: \"tableBody\",\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map2.add(index, 0, [[\"enter\", currentBody, context]]);\n }\n rowKind = token.type === \"tableDelimiterRow\" ? 2 : currentBody ? 3 : 1;\n } else if (rowKind && (token.type === \"data\" || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n inFirstCellAwaitingPipe = false;\n if (cell[2] === 0) {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map2, context, lastCell, rowKind, void 0, currentCell);\n lastCell = [0, 0, 0, 0];\n }\n cell[2] = index;\n }\n } else if (token.type === \"tableCellDivider\") {\n if (inFirstCellAwaitingPipe) {\n inFirstCellAwaitingPipe = false;\n } else {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map2, context, lastCell, rowKind, void 0, currentCell);\n }\n lastCell = cell;\n cell = [lastCell[1], index, 0, 0];\n }\n }\n } else if (token.type === \"tableHead\") {\n afterHeadAwaitingFirstBodyRow = true;\n lastTableEnd = index;\n } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n lastTableEnd = index;\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map2, context, lastCell, rowKind, index, currentCell);\n } else if (cell[1] !== 0) {\n currentCell = flushCell(map2, context, cell, rowKind, index, currentCell);\n }\n rowKind = 0;\n } else if (rowKind && (token.type === \"data\" || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n cell[3] = index;\n }\n }\n if (lastTableEnd !== 0) {\n flushTableEnd(map2, context, lastTableEnd, currentTable, currentBody);\n }\n map2.consume(context.events);\n index = -1;\n while (++index < context.events.length) {\n const event = context.events[index];\n if (event[0] === \"enter\" && event[1].type === \"table\") {\n event[1]._align = gfmTableAlign(context.events, index);\n }\n }\n return events;\n}\nfunction flushCell(map2, context, range, rowKind, rowEnd, previousCell) {\n const groupName = rowKind === 1 ? \"tableHeader\" : rowKind === 2 ? \"tableDelimiter\" : \"tableData\";\n const valueName = \"tableContent\";\n if (range[0] !== 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, range[0]));\n map2.add(range[0], 0, [[\"exit\", previousCell, context]]);\n }\n const now = getPoint(context.events, range[1]);\n previousCell = {\n type: groupName,\n start: Object.assign({}, now),\n // Note: correct end is set later.\n end: Object.assign({}, now)\n };\n map2.add(range[1], 0, [[\"enter\", previousCell, context]]);\n if (range[2] !== 0) {\n const relatedStart = getPoint(context.events, range[2]);\n const relatedEnd = getPoint(context.events, range[3]);\n const valueToken = {\n type: valueName,\n start: Object.assign({}, relatedStart),\n end: Object.assign({}, relatedEnd)\n };\n map2.add(range[2], 0, [[\"enter\", valueToken, context]]);\n if (rowKind !== 2) {\n const start = context.events[range[2]];\n const end = context.events[range[3]];\n start[1].end = Object.assign({}, end[1].end);\n start[1].type = \"chunkText\";\n start[1].contentType = \"text\";\n if (range[3] > range[2] + 1) {\n const a = range[2] + 1;\n const b = range[3] - range[2] - 1;\n map2.add(a, b, []);\n }\n }\n map2.add(range[3] + 1, 0, [[\"exit\", valueToken, context]]);\n }\n if (rowEnd !== void 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, rowEnd));\n map2.add(rowEnd, 0, [[\"exit\", previousCell, context]]);\n previousCell = void 0;\n }\n return previousCell;\n}\nfunction flushTableEnd(map2, context, index, table, tableBody) {\n const exits = [];\n const related = getPoint(context.events, index);\n if (tableBody) {\n tableBody.end = Object.assign({}, related);\n exits.push([\"exit\", tableBody, context]);\n }\n table.end = Object.assign({}, related);\n exits.push([\"exit\", table, context]);\n map2.add(index + 1, 0, exits);\n}\nfunction getPoint(events, index) {\n const event = events[index];\n const side = event[0] === \"enter\" ? \"start\" : \"end\";\n return event[1][side];\n}\nconst tasklistCheck = {\n name: \"tasklistCheck\",\n tokenize: tokenizeTasklistCheck\n};\nfunction gfmTaskListItem() {\n return {\n text: {\n [91]: tasklistCheck\n }\n };\n}\nfunction tokenizeTasklistCheck(effects, ok2, nok) {\n const self = this;\n return open;\n function open(code2) {\n if (\n // Exit if there’s stuff before.\n self.previous !== null || // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem\n ) {\n return nok(code2);\n }\n effects.enter(\"taskListCheck\");\n effects.enter(\"taskListCheckMarker\");\n effects.consume(code2);\n effects.exit(\"taskListCheckMarker\");\n return inside;\n }\n function inside(code2) {\n if (markdownLineEndingOrSpace(code2)) {\n effects.enter(\"taskListCheckValueUnchecked\");\n effects.consume(code2);\n effects.exit(\"taskListCheckValueUnchecked\");\n return close;\n }\n if (code2 === 88 || code2 === 120) {\n effects.enter(\"taskListCheckValueChecked\");\n effects.consume(code2);\n effects.exit(\"taskListCheckValueChecked\");\n return close;\n }\n return nok(code2);\n }\n function close(code2) {\n if (code2 === 93) {\n effects.enter(\"taskListCheckMarker\");\n effects.consume(code2);\n effects.exit(\"taskListCheckMarker\");\n effects.exit(\"taskListCheck\");\n return after;\n }\n return nok(code2);\n }\n function after(code2) {\n if (markdownLineEnding(code2)) {\n return ok2(code2);\n }\n if (markdownSpace(code2)) {\n return effects.check({\n tokenize: spaceThenNonSpace\n }, ok2, nok)(code2);\n }\n return nok(code2);\n }\n}\nfunction spaceThenNonSpace(effects, ok2, nok) {\n return factorySpace(effects, after, \"whitespace\");\n function after(code2) {\n return code2 === null ? nok(code2) : ok2(code2);\n }\n}\nfunction gfm(options) {\n return combineExtensions([\n gfmAutolinkLiteral(),\n gfmFootnote(),\n gfmStrikethrough(options),\n gfmTable(),\n gfmTaskListItem()\n ]);\n}\nconst emptyOptions = {};\nfunction remarkGfm(options) {\n const self = (\n /** @type {Processor} */\n this\n );\n const settings = options || emptyOptions;\n const data = self.data();\n const micromarkExtensions = data.micromarkExtensions || (data.micromarkExtensions = []);\n const fromMarkdownExtensions = data.fromMarkdownExtensions || (data.fromMarkdownExtensions = []);\n const toMarkdownExtensions = data.toMarkdownExtensions || (data.toMarkdownExtensions = []);\n micromarkExtensions.push(gfm(settings));\n fromMarkdownExtensions.push(gfmFromMarkdown());\n toMarkdownExtensions.push(gfmToMarkdown(settings));\n}\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"NcRichTextCopyButton\",\n props: {\n contentId: {}\n },\n setup(__props) {\n const { copy, icon, altText } = useCopy(() => document.getElementById(__props.contentId).textContent);\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcButton, {\n variant: \"tertiary\",\n size: \"small\",\n \"aria-label\": unref(altText),\n title: unref(altText),\n onClick: unref(copy)\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: unref(icon),\n inline: \"\"\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"]);\n };\n }\n});\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction isTextNode$1(node) {\n return node.type === \"text\";\n}\nconst transformPlaceholders = function(ast) {\n visitParents(ast, isTextNode$1, (node, ancestors) => {\n const parent = ancestors.at(-1);\n const index = parent.children.indexOf(node);\n const placeholders = node.value.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map((entry) => {\n const matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);\n if (!matches) {\n return u(\"text\", entry);\n }\n const [, component] = matches;\n return u(\"element\", {\n tagName: `#${component}`,\n children: []\n });\n });\n parent.children.splice(index, 1, ...placeholders);\n });\n};\nconst remarkPlaceholder = () => transformPlaceholders;\n/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction isCodeNode(node) {\n return [\"code\", \"inlineCode\"].includes(node.type);\n}\nconst remarkStripCode = function() {\n return function(tree) {\n visitParents(tree, isCodeNode, (node, ancestors) => {\n const parent = ancestors.at(-1);\n const index = parent.children.indexOf(node);\n parent.children.splice(index, 1, {\n ...node,\n value: \"\"\n });\n return [SKIP, index + 1];\n });\n };\n};\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction isTextNode(node) {\n return [\"text\", \"code\", \"inlineCode\"].includes(node.type);\n}\nconst remarkUnescape = function() {\n return function(tree) {\n visitParents(tree, isTextNode, (node, ancestors) => {\n const parent = ancestors.at(-1);\n const index = parent.children.indexOf(node);\n parent.children.splice(index, 1, {\n ...node,\n value: node.value.replace(/</gmi, \"<\").replace(/>/gmi, \">\")\n });\n return [SKIP, index + 1];\n });\n };\n};\nconst LINK_PROTOCOLS = [\"http\", \"https\", \"mailto\", \"tel\"];\nconst rehypeHighlight = ref(null);\nasync function importRehypeHighlightLibrary() {\n const module = await import(\"rehype-highlight\");\n rehypeHighlight.value = module.default;\n}\nconst _sfc_main = {\n name: \"NcRichText\",\n components: {\n NcReferenceList\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n /**\n * The main text\n */\n text: {\n type: String,\n default: \"\"\n },\n arguments: {\n type: Object,\n default: () => {\n return {};\n }\n },\n referenceLimit: {\n type: Number,\n default: 0\n },\n referenceInteractive: {\n type: Boolean,\n default: true\n },\n referenceInteractiveOptIn: {\n type: Boolean,\n default: false\n },\n /** Provide data upfront to avoid extra http request */\n references: {\n type: Array,\n default: null\n },\n /** Provide basic Markdown syntax */\n useMarkdown: {\n type: Boolean,\n default: false\n },\n /** Provide GitHub Flavored Markdown syntax */\n useExtendedMarkdown: {\n type: Boolean,\n default: false\n },\n /** Provide event from rendered markdown inputs */\n interactive: {\n type: Boolean,\n default: false\n },\n /**\n * Automatically convert link-like text to markdown links\n */\n autolink: {\n type: Boolean,\n default: true\n }\n },\n emits: [\n \"interactTodo\"\n ],\n data() {\n return {\n parentId: createElementId()\n };\n },\n methods: {\n renderPlaintext() {\n const placeholders = this.text.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map((entry) => {\n const matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);\n if (!matches) {\n return this.prepareTextNode(entry);\n }\n const argumentId = matches[1];\n const argument = this.arguments[argumentId];\n if (typeof argument === \"object\") {\n const { component, props } = argument;\n return h(typeof component === \"string\" ? resolveComponent(component) : component, {\n ...props,\n class: \"rich-text--component\"\n });\n }\n if (argument) {\n return h(\"span\", { class: \"rich-text--fallback\" }, argument);\n }\n return entry;\n });\n return h(\"div\", { class: \"rich-text--wrapper\" }, [\n h(\"div\", {}, placeholders.flat()),\n this.referenceLimit > 0 ? h(\"div\", { class: \"rich-text--reference-widget\" }, [\n h(NcReferenceList, {\n text: this.text,\n referenceData: this.references,\n interactive: this.referenceInteractive,\n interactiveOptIn: this.referenceInteractiveOptIn\n })\n ]) : null\n ]);\n },\n renderMarkdown() {\n const renderedMarkdown = unified().use(remarkParse).use(remarkAutolink, {\n autolink: this.autolink,\n useMarkdown: this.useMarkdown,\n useExtendedMarkdown: this.useExtendedMarkdown\n }).use(remarkUnescape).use(this.useExtendedMarkdown ? remarkGfm : void 0).use(breaks).use(remarkUnlinkProtocols, { except: LINK_PROTOCOLS }).use(remark2rehype, {\n handlers: {\n component(toHast, node) {\n return toHast(node, node.component, { value: node.value });\n }\n }\n }).use(this.useExtendedMarkdown ? rehypeHighlight.value : void 0).use(remarkPlaceholder).use(rehypeExternalLinks, {\n target: \"_blank\",\n rel: [\"noopener noreferrer\"]\n }).use(rehype2react, {\n Fragment,\n jsx: this.createElement,\n jsxs: this.createElement,\n elementAttributeNameCase: \"html\",\n prefix: false\n }).processSync(this.text.replace(/<[^>]+>/g, (match) => match.replace(/\")).result;\n return h(\"div\", { class: \"rich-text--wrapper rich-text--wrapper-markdown\" }, [\n renderedMarkdown,\n this.referenceLimit > 0 ? h(\"div\", { class: \"rich-text--reference-widget\" }, [\n h(NcReferenceList, {\n text: this.prepareReferenceSource(this.text),\n referenceData: this.references,\n interactive: this.referenceInteractive,\n interactiveOptIn: this.referenceInteractiveOptIn\n })\n ]) : null\n ]);\n },\n /**\n * Render plain text nodes\n *\n * @param {string} text - Content of the node\n */\n prepareTextNode(text2) {\n if (this.autolink) {\n text2 = parseUrl(text2);\n }\n if (Array.isArray(text2)) {\n return text2.map((entry) => {\n if (typeof entry === \"string\") {\n return entry;\n }\n const { component, props } = entry;\n return h(component, {\n ...props,\n class: \"rich-text--component\"\n });\n });\n }\n return text2;\n },\n /**\n * Strip content of inline code and code blocks for reference widgets\n * (e.g. ignore fenced links from being added as reference)\n *\n * @param {string} text - Content of the node\n */\n prepareReferenceSource(text2) {\n if (!this.useMarkdown && !this.useExtendedMarkdown) {\n return text2;\n }\n const processor = unified();\n processor.compiler = (tree) => toString(tree);\n return processor.use(remarkParse).use(remarkStripCode).processSync(text2.replace(/\\s/g, \" \")).value;\n },\n createElement(type, props, key) {\n if (key) {\n props.key = key;\n }\n const children = props.children ?? [];\n delete props.children;\n if (!String(type).startsWith(\"#\")) {\n if ([\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"].includes(String(type))) {\n type = `h${Math.min(+String(type)[1] + 3, 6)}`;\n }\n let nestedNode = null;\n if (this.useExtendedMarkdown) {\n if (String(type) === \"code\" && !rehypeHighlight.value && props?.class?.includes(\"language\")) {\n importRehypeHighlightLibrary();\n }\n if (String(type) === \"pre\" && children && String(children.type) === \"code\") {\n const id = this.parentId + \"-code-block-\" + createElementId();\n return h(\"p\", { class: \"rich-text__code-block\" }, [\n h(type, { ...props, id }, children),\n h(_sfc_main$1, { class: \"rich-text__code-block-button\", contentId: id })\n ]);\n }\n if (String(type) === \"li\" && Array.isArray(children) && children.length !== 0 && children[0].type === \"input\" && children[0].props.type === \"checkbox\") {\n const [inputNode, , ...labelParts] = children;\n const nestedNodeIndex = labelParts.findIndex((child) => [\"ul\", \"ol\", \"li\", \"blockquote\", \"pre\"].includes(child.type));\n if (nestedNodeIndex !== -1) {\n nestedNode = labelParts[nestedNodeIndex];\n labelParts.splice(nestedNodeIndex);\n }\n const id = this.parentId + \"-markdown-input-\" + createElementId();\n const propsToForward = { ...inputNode.props };\n delete propsToForward.checked;\n const inputComponent = h(NcCheckboxRadioSwitch, {\n ...propsToForward,\n modelValue: inputNode.props.checked,\n id,\n disabled: !this.interactive,\n \"onUpdate:modelValue\": () => {\n this.$emit(\"interactTodo\", id);\n }\n }, { default: () => labelParts });\n return h(type, props, [inputComponent, nestedNode]);\n }\n }\n if (String(type) === \"a\") {\n const route = getRoute(this.$router, props.href);\n if (route) {\n delete props.href;\n delete props.target;\n return h(RouterLink, {\n ...props,\n to: route\n }, { default: () => children });\n }\n const isAllowedScheme = /^(https?:\\/\\/|tel:|mailto:)/.test(props.href);\n if (isAllowedScheme) {\n props.href = props.href.trim();\n return h(NcRichTextExternalLink, props, children);\n } else {\n delete props.href;\n delete props.target;\n return h(\"span\", props, children);\n }\n }\n return h(type, props, children);\n }\n const placeholder = this.arguments[type.slice(1)];\n if (!placeholder) {\n return h(\"span\", { ...props, class: \"rich-text--fallback\" }, [`{${type.slice(1)}}`]);\n }\n if (!placeholder.component) {\n return h(\"span\", { ...props }, [placeholder]);\n }\n return h(\n typeof placeholder.component === \"string\" ? resolveComponent(placeholder.component) : placeholder.component,\n {\n ...props,\n ...placeholder.props,\n class: \"rich-text--component\"\n },\n { default: () => children }\n );\n }\n },\n render() {\n return this.useMarkdown || this.useExtendedMarkdown ? this.renderMarkdown() : this.renderPlaintext();\n }\n};\nconst NcRichText = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-76a4a548\"]]);\nexport {\n NcRichText as N,\n NcReferenceList as a\n};\n//# sourceMappingURL=NcRichText-BOBQq7Od.mjs.map\n"],"file":"index-C_wPY1fR.chunk.mjs"} \ No newline at end of file +{"version":3,"mappings":"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","names":["register","t22","DELAY","useCopy","content","isCopied","ref","icon","computed","mdiCheck","mdiContentCopy","altText","t","copy","value","toValue","id","callback","onDestroy","props","registerWidget","propsWithDefaults","logger","renderWidget","el","options","richObjectType","richObject","accessible","interactive","destroyWidget","isWidgetRegistered","hasInteractiveView","hasFullWidth","registerCustomPickerElement","NcCustomPickerRenderResult","element","object","isCustomPickerElementRegistered","getCustomPickerElementSize","size","renderCustomPickerElement","providerId","destroyCustomPickerElement","renderResult","_sfc_main$9","_hoisted_1$9","_hoisted_2$7","_hoisted_3$6","_hoisted_4$5","_sfc_render$8","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","mergeProps","$event","createElementVNode","toDisplayString","createCommentVNode","ArrowLeftIcon","_export_sfc","_sfc_main$8","renderFunctionResult","result","e","_hoisted_1$8","_sfc_render$7","NcCustomPickerElement","_sfc_main$7","_hoisted_1$7","_hoisted_2$6","_hoisted_3$5","_hoisted_4$4","_sfc_render$6","LinkVariantIcon","t8","anyLinkProviderId","anyLinkProvider","imagePath","loadState","getProvider","getProviders","p","keep","sortProviders","providerList","timestamps","a","b","ta","tb","searchProvider","query","limit","providers","escapedQuery","regexp","filteredSortedProviders","searchResult","touchProvider","timestamp","url","generateOcsUrl","axios","t41","t46","isUrl","str","_sfc_main$6","NcSelect","_sfc_main$a","NcEmptyContent","_hoisted_1$6","_hoisted_2$5","_hoisted_3$4","_hoisted_4$3","_sfc_render$5","_component_LinkVariantIcon","resolveComponent","_component_NcHighlight","_component_NcSelect","_component_NcEmptyContent","createVNode","withCtx","option","NcProviderList","t24","_hoisted_1$5","_hoisted_2$4","_hoisted_3$3","_hoisted_4$2","IDLE_TIMEOUT","_sfc_main$5","defineComponent","__props","router","inject","routerKey","isVisible","customWidget","useTemplateRef","widgetRoot","width","useElementSize","useIntersectionObserver","entry","nextTick","showInteractive","rendered","idleTimeout","isInteractive","referenceHasFullWidth","hasCustomWidget","referenceHasInteractiveView","noAccess","numberOfLines","max","descriptionStyle","lineClamp","compactLink","link","route","getRoute","referenceWidgetLinkComponent","RouterLink","referenceWidgetLinkProps","watch","val","destroyReferenceWidget","renderReferenceWidget","onBeforeUnmount","enableInteractive","widget","normalizeClass","createBlock","resolveDynamicComponent","normalizeStyle","NcButton","createTextVNode","unref","NcReferenceWidget","t25","_sfc_main$4","NcLoadingIcon","_sfc_main$b","debounce","response","error","_hoisted_1$4","_hoisted_2$3","_hoisted_3$2","_sfc_render$4","_component_NcLoadingIcon","_component_NcTextField","_component_NcReferenceWidget","withKeys","NcRawLinkInput","_sfc_main$3","_hoisted_1$3","_hoisted_2$2","_hoisted_3$1","_hoisted_4$1","_hoisted_5$1","_sfc_render$3","NcSearchResult","t32","t43","LIMIT","_sfc_main$2","IconDotsHorizontal","results","pid","providerEntriesWithId","index","resultsBySearchProvider","item","searchProviderId","searchPromises","promises","cursor","data","_hoisted_1$2","_hoisted_2$1","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_sfc_render$2","_component_NcSearchResult","_component_DotsHorizontalIcon","NcSearch","MODES","_sfc_main$1","provider","_hoisted_1$1","_sfc_render$1","_component_NcProviderList","_component_NcRawLinkInput","_component_NcSearch","_component_NcCustomPickerElement","withModifiers","args","NcReferencePicker","t12","t19","_sfc_main","NcModal","IconClose","elem","emit","_hoisted_1","_hoisted_2","_sfc_render","_component_ArrowLeftIcon","_component_NcButton","_component_CloseIcon","_component_NcReferencePicker","_component_NcModal","NcReferencePickerModal","getLinkWithPicker","isInsideViewer","modalId","modalElement","promise","reject","resolve","initialProvider","view","createApp","emptyOptions","toString","settings","includeImageAlt","includeHtml","one","node","all","values","VOID","PRIMITIVE","ARRAY","OBJECT","DATE","REGEXP","MAP","SET","ERROR","BIGINT","env","deserializer","$","_","as","out","unpair","type","arr","key","source","flags","map","set","name","message","buffer","deserialize","serialized","EMPTY","keys","typeOf","asString","shouldSkip","TYPE","serializer","strict","json","pair","spread","entries","serialize","lossy","structuredClone$1","any","convertElement","test","tagNameFactory","anyFactory","castFactory","tests","checks","parameters","check","tagName","testFunction","parent","looksLikeAnElement","ABSOLUTE_URL_REGEX","WINDOWS_PATH_REGEX","isAbsoluteUrl","parse","input","stringify","visit","tree","testOrVisitor","visitorOrReverse","maybeReverse","reverse","visitor","visitParents","overload","parents","defaultProtocols","defaultRel","rehypeExternalLinks","protocols","is","contentRaw","createIfNeeded","relRaw","rel","target","properties","structuredClone","nameRe","nameReJsx","re","whitespace","thing","empty","Schema","property","normal","space","merge","definitions","definition","normalize","Info","attribute","powers","boolean","increment","booleanish","overloadedBoolean","number","spaceSeparated","commaSeparated","commaOrSpaceSeparated","types","DefinedInfo","mask","mark","create","normals","info","aria","caseSensitiveTransform","attributes","caseInsensitiveTransform","html","svg","xlink","xmlns","xml","hastToReact","cap","dash","valid","find","schema","Type","rest","camelcase","dashes","kebab","$0","htmlBase","svgBase","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","NEWLINE","FORWARD_SLASH","ASTERISK","EMPTY_STRING","TYPE_COMMENT","TYPE_DECLARATION","inlineStyleParser","style","lineno","column","updatePosition","lines","i","position","start","Position","msg","err","match","m","comments","rules","c","comment","pos","declaration","prop","ret","trim","declarations","decls","decl","__importDefault","this","mod","cjs","StyleToObject","inline_style_parser_1","require$$0","iterator","styleObject","hasIterator","utilities","CUSTOM_PROPERTY_REGEX","HYPHEN_REGEX","NO_HYPHEN_REGEX","VENDOR_PREFIX_REGEX","MS_VENDOR_PREFIX_REGEX","skipCamelCase","capitalize","character","trimHyphen","prefix","camelCase","style_to_object_1","utilities_1","require$$1","StyleToJS","output","pointEnd","point","pointStart","end","stringifyPosition","VFileMessage","causeOrReason","optionsOrParentOrPlace","origin","reason","legacyCause","own","emptyMap","tableElements","tableCellElement","docs","toJsxRuntime","filePath","developmentCreate","productionCreate","state","mdxExpression","mdxJsxElement","mdxEsm","root","text","parentSchema","findComponentFromName","createElementProps","children","createChildren","child","addNode","addChildren","expression","assert","crashEstree","createJsxElementProps","jsx","jsxs","fn","jsxDEV","isStaticChildren","alignValue","createProperty","objectExpression","countsByName","count","commas","spaces","parseStyle","transformStylesToCssCasing","styleToJs","cause","allowExpression","identifiers","isIdentifierName","place","domCasing","cssCasing","from","transformStyleToCssCasing","to","toDash","rehypeReact","self","compiler","file","escapeStringRegexp","string","findAndReplace","list","ignored","convert","pairs","toPairs","pairIndex","grandparent","siblings","handler","replace","change","nodes","matchObject","tupleOrList","tuple","toExpression","toFunction","escape","newlineToBreak","remarkBreaks","decodeNamedCharacterReference","characterReference","splice","remove","items","chunkStart","push","hasOwnProperty","combineExtensions","extensions","syntaxExtension","extension","hook","left","right","code","constructs","existing","before","decodeNumericCharacterReference","base","normalizeIdentifier","asciiAlpha","regexCheck","asciiAlphanumeric","asciiAtext","asciiControl","asciiDigit","asciiHexDigit","asciiPunctuation","markdownLineEnding","markdownLineEndingOrSpace","markdownSpace","unicodePunctuation","unicodeWhitespace","regex","normalizeUri","skip","next","factorySpace","effects","ok","initializeContent","contentStart","afterContentStartConstruct","paragraphInitial","previous","lineStart","token","document","initializeDocument","containerConstruct","tokenizeContainer","stack","continued","childFlow","childToken","lineStartOffset","documentContinue","checkNewContainers","closeFlow","indexBeforeExits","indexBeforeFlow","exitContainers","documentContinued","flowStart","thereIsANewContainer","thereIsNoNewContainer","containerContinue","flowContinue","writeToChild","endOfFile","stream","seen","nok","classifyCharacter","resolveAll","events","context","called","attention","resolveAllAttention","tokenizeAttention","open","group","openingSequence","closingSequence","use","nextEvents","offset","movePoint","attentionMarkers","marker","inside","after","close","autolink","tokenizeAutolink","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","blankLine","tokenizeBlankLine","blockQuote","tokenizeBlockQuoteContinuation","exit","tokenizeBlockQuoteStart","contStart","contBefore","characterEscape","tokenizeCharacterEscape","tokenizeCharacterReference","numeric","nonLazyContinuation","tokenizeNonLazyContinuation","codeFenced","tokenizeCodeFenced","closeStart","tokenizeCloseStart","initialPrefix","sizeOpen","beforeSequenceOpen","tail","sequenceOpen","infoBefore","atNonLazyBreak","metaBefore","meta","contentBefore","beforeContentChunk","contentChunk","startBefore","beforeSequenceClose","sequenceClose","sequenceCloseAfter","codeIndented","tokenizeCodeIndented","furtherStart","tokenizeFurtherStart","afterPrefix","atBreak","codeText","resolveCodeText","tokenizeCodeText","tailExitIndex","headEnterIndex","enter","between","SpliceBuffer","initial","stop","deleteCount","removed","chunkedPush","n","subtokenize","eventsArray","jumps","event","lineIndex","otherIndex","otherEvent","subevents","more","subcontent","eventIndex","startPosition","startPositions","tokenizer","childEvents","gaps","current","adjust","breaks","slice","resolveContent","tokenizeContent","continuationConstruct","tokenizeContinuation","chunkInside","contentEnd","contentContinue","startLookahead","prefixed","factoryDestination","literalType","literalMarkerType","rawType","stringType","balance","enclosedBefore","raw","enclosed","enclosedEscape","rawEscape","factoryLabel","markerType","labelInside","labelEscape","factoryTitle","begin","factoryWhitespace","tokenizeDefinition","titleBefore","tokenizeTitleBefore","identifier","labelAfter","markerAfter","destinationBefore","destinationAfter","afterWhitespace","beforeMarker","titleAfter","titleAfterOptionalWhitespace","hardBreakEscape","tokenizeHardBreakEscape","headingAtx","resolveHeadingAtx","tokenizeHeadingAtx","sequenceFurther","htmlBlockNames","htmlRawNames","htmlFlow","resolveToHtmlFlow","tokenizeHtmlFlow","blankLineBefore","tokenizeBlankLineBefore","nonLazyContinuationStart","tokenizeNonLazyContinuationStart","closingTag","markerB","declarationOpen","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","continuation","slash","basicSelfClosing","completeClosingTagAfter","completeAttributeNameBefore","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCdataInside","continuationAfter","continuationStart","continuationStartNonLazy","continuationBefore","continuationRawEndTag","htmlText","tokenizeHtmlText","returnState","instruction","tagOpen","commentEnd","commentClose","lineEndingBefore","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","lineEndingAfter","lineEndingAfterPrefix","labelEnd","resolveAllLabelEnd","resolveToLabelEnd","tokenizeLabelEnd","resourceConstruct","tokenizeResource","referenceFullConstruct","tokenizeReferenceFull","referenceCollapsedConstruct","tokenizeReferenceCollapsed","newEvents","media","label","labelStart","defined","labelEndNok","labelEndOk","referenceNotFull","resourceStart","resourceBefore","resourceOpen","resourceEnd","resourceDestinationAfter","resourceDestinationMissing","resourceBetween","resourceTitleAfter","referenceFull","referenceFullAfter","referenceFullMissing","referenceCollapsedStart","referenceCollapsedOpen","labelStartImage","tokenizeLabelStartImage","labelStartLink","tokenizeLabelStartLink","lineEnding","tokenizeLineEnding","thematicBreak","tokenizeThematicBreak","sequence","tokenizeListContinuation","tokenizeListEnd","tokenizeListStart","listItemPrefixWhitespaceConstruct","tokenizeListItemPrefixWhitespace","indentConstruct","tokenizeIndent","initialSize","kind","atMarker","onBlank","endOfPrefix","otherPrefix","notBlank","notInCurrentItem","setextUnderline","resolveToSetextUnderline","tokenizeSetextUnderline","heading","paragraph","flow","initializeFlow","atBlankEnding","afterConstruct","resolver","createResolver","initializeFactory","field","resolveAllLineSuffixes","initializeText","notText","extraResolver","resolveAllText","chunks","bufferIndex","tabs","chunk","contentInitial","flowInitial","insideSpan","resolveText","disable","createTokenizer","parser","initialize","columnStart","resolveAllConstructs","constructFactory","onsuccessfulconstruct","onsuccessfulcheck","consume","defineSkip","now","sliceSerialize","sliceStream","write","main","addResult","expandTabs","serializeChunks","sliceChunks","_bufferIndex","_index","line","accountForPotentialSkip","chunkIndex","go","fields","construct","onreturn","bogusState","listOfConstructs","constructIndex","currentConstruct","handleListOfConstructs","handleMapOfConstructs","handleConstruct","store","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","restore","startIndex","startBufferIndex","endIndex","endBufferIndex","head","atTab","defaultConstructs","creator","postprocess","search","preprocess","atCarriageReturn","preprocessor","encoding","endPosition","characterEscapeOrReference","decodeString","decode","$1","$2","hex","fromMarkdown","config","opener","onenterdata","codeFlow","emphasis","hardBreak","image","listItem","onenterlistitemvalue","onenterlistordered","onenterreference","strong","closer","onexitatxheadingsequence","onexitautolinkemail","onexitautolinkprotocol","onexitdata","onexitcharacterreferencemarker","onexitcharacterreferencevalue","onexitcharacterreference","onexitcodefenced","onexitcodefencedfence","onexitcodefencedfenceinfo","onexitcodefencedfencemeta","onexitcodeindented","onexitcodetext","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexithardbreak","onexithtmlflow","onexithtmltext","onexitimage","onexitlabel","onexitlabeltext","onexitlineending","onexitlink","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","onexitresource","onexitsetextheading","onexitsetextheadinglinesequence","onexitsetextheadingtext","configure","compile","resume","listStack","prepareList","defaultOnError","length","containerBalance","listSpread","firstBlankLineIndex","tailIndex","tailEvent","and","errorHandler","onExitError","ancestor","depth","referenceType","fragment","d","combined","remarkParse","doc","blockquote","language","strikethrough","footnoteReference","clobberPrefix","safeId","counter","reuseCounter","sup","revert","subtype","suffix","contents","imageReference","inlineCode","linkReference","loose","listLoose","listItemLoose","table","rows","firstRow","tableContent","body","tableRow","align","cellIndex","cells","cell","tableCell","tab","trimLines","last","trimLine","handlers","ignore","defaultFootnoteBackContent","rereferenceIndex","defaultFootnoteBackLabel","referenceIndex","footer","footnoteBackContent","footnoteBackLabel","footnoteLabel","footnoteLabelTagName","footnoteLabelProperties","listItems","backReferences","counts","tailTail","createState","definitionById","footnoteById","footnoteCounts","defaultHandlers","applyData","patch","wrap","handle","shallow","defaultUnknownHandler","trimMarkdownSpaceStart","hName","hChildren","hProperties","toHast","foot","remarkRehype","destination","hastTree","squeezeParagraphs","remarkUnlinkProtocols","proto","bail","hasOwn","toStr","defineProperty","gOPD","isArray","isPlainObject","obj","hasOwnConstructor","hasIsPrototypeOf","setProperty","getProperty","extend","src","copyIsArray","clone","deep","prototype","trough","fns","pipeline","run","middlewareIndex","middelware","middleware","wrapped","fnExpectsCallback","done","exception","then","minpath","basename","dirname","extname","join","path","assertPath","seenNonSlash","firstNonSlashEnd","extnameIndex","unmatchedSlash","startPart","startDot","preDotState","segments","joined","absolute","normalizeString","allowAboveRoot","lastSegmentLength","lastSlash","dots","lastSlashIndex","minproc","cwd","fileUrlOrPath","urlToPath","getPathFromURLPosix","pathname","third","order","VFile","isUint8Array","assertNonEmpty","assertPart","stem","part","CallableInstance","apply","Processor","attacher","assertUnfrozen","transformer","realFile","vfile","assertParser","assertCompiler","executor","parseTree","realDone","compileTree","compileResult","looksLikeAValue","complete","assertDone","assertNode","transformers","outputTree","resultingTree","attachers","namespace","addPlugin","addList","addPreset","add","plugin","plugins","entryIndex","primary","currentPrimary","isPlainObj","unified","frozen","asyncName","looksLikeAVFile","URL_PATTERN","isPublic","getCurrentUser","getSharingToken","Fragment","renderList","reference","NcReferenceList","ccount","code2","propertiesFactory","typeFactory","index2","checkAsRecord","nodeAsRecord","looksLikeANode","list2","replace2","inConstruct","notInConstruct","gfmAutolinkLiteralFromMarkdown","transformGfmAutolinkLiterals","enterLiteralAutolink","enterLiteralAutolinkValue","exitLiteralAutolink","exitLiteralAutolinkEmail","exitLiteralAutolinkHttp","exitLiteralAutolinkWww","gfmAutolinkLiteralToMarkdown","findUrl","findEmail","protocol","domain2","path2","isCorrectDomain","parts","splitUrl","atext","trailExec","trail2","closingParenIndex","openingParens","closingParens","email","footnoteReferencePeek","enterFootnoteCallString","enterFootnoteCall","enterFootnoteDefinitionLabelString","enterFootnoteDefinition","exitFootnoteCallString","exitFootnoteCall","exitFootnoteDefinitionLabelString","exitFootnoteDefinition","tracker","exit2","subexit","gfmFootnoteFromMarkdown","gfmFootnoteToMarkdown","firstLineBlank","footnoteDefinition","mapAll","mapExceptFirst","blank","constructsWithoutStrikethrough","handleDelete","peekDelete","gfmStrikethroughFromMarkdown","enterStrikethrough","exitStrikethrough","gfmStrikethroughToMarkdown","defaultStringLength","markdownTable","stringLength","alignments","cellMatrix","sizeMatrix","longestCellByColumn","mostCellsPerRow","rowIndex","row2","sizes2","columnIndex2","columnIndex","toAlignment","row","sizes","map$1","patternInScope","pattern","listInScope","none","_1","longestStreak","substring","expected","formatCodeAsIndented","checkFence","code$1","exit3","value2","checkQuote","quote","checkEmphasis","encodeCharacterReference","encodeInfo","outside","outsideKind","insideKind","emphasisPeek","betweenHead","betweenTail","formatHeadingAsSetext","literalWithBreak","node2","EXIT","rank","subexit2","htmlPeek","imagePeek","imageReferencePeek","alt","inlineCodePeek","formatLinkAsAutolink","linkPeek","linkReferencePeek","text2","checkBullet","checkBulletOther","bullet","bulletOther","checkBulletOrdered","checkRule","bulletCurrent","useDifferentMarker","firstListItem","checkListItemIndent","listItemIndent","map2","phrasing","checkStrong","strongPeek","text$1","checkRuleRepetition","repetition","gfmTableFromMarkdown","enterTable","enterCell","enterRow","exitCodeText","exitTable","gfmTableToMarkdown","padding","alignDelimiters","around","inlineCodeWithTable","handleTable","handleTableCell","handleTableRow","serializeData","handleTableAsData","handleTableRowAsData","matrix","gfmTaskListItemFromMarkdown","exitCheck","exitParagraphWithTaskListItem","gfmTaskListItemToMarkdown","listItemWithTaskListItem","firstParaghraph","sibling","checkable","checkbox","gfmFromMarkdown","gfmToMarkdown","wwwPrefix","tokenizeWwwPrefix","domain","tokenizeDomain","tokenizePath","trail","tokenizeTrail","emailDomainDotTrail","tokenizeEmailDomainDotTrail","wwwAutolink","tokenizeWwwAutolink","previousWww","protocolAutolink","tokenizeProtocolAutolink","previousProtocol","emailAutolink","tokenizeEmailAutolink","previousEmail","gfmAutolinkLiteral","ok2","dot","gfmAtext","previousUnbalanced","emailDomain","emailDomainAfter","emailDomainDot","wwwStart","wwwAfter","protocolStart","protocolPrefixInside","protocolSlashesInside","afterProtocol","protocolAfter","wwwPrefixInside","wwwPrefixAfter","underscoreInLastSegment","underscoreInLastLastSegment","domainInside","domainAfter","domainAtPunctuation","sizeClose","pathInside","pathAtPunctuation","trailCharacterReferenceStart","trailBracketAfter","trailCharacterReferenceInside","constructs2","indent","gfmFootnote","tokenizeDefinitionStart","tokenizeDefinitionContinuation","gfmFootnoteDefinitionEnd","tokenizeGfmFootnoteCall","tokenizePotentialGfmFootnoteCall","resolveToPotentialGfmFootnoteCall","call","replacement","callStart","callData","callEscape","labelAtMarker","whitespaceAfter","gfmStrikethrough","single","tokenizeStrikethrough","resolveAllStrikethrough","previous2","EditMap","addImplementation","vecs","editMap","at","gfmTableAlign","inDelimiterRow","alignIndex","gfmTable","tokenizeTable","resolveTable","sizeB","bodyRowStart","headRowBefore","headRowStart","headRowBreak","headDelimiterStart","headRowData","headRowEscape","headDelimiterBefore","headDelimiterValueBefore","headDelimiterCellBefore","headDelimiterNok","headDelimiterLeftAlignmentAfter","headDelimiterCellAfter","headDelimiterFiller","headDelimiterRightAlignmentAfter","bodyRowBreak","bodyRowData","bodyRowEscape","inFirstCellAwaitingPipe","rowKind","lastCell","afterHeadAwaitingFirstBodyRow","lastTableEnd","currentTable","currentBody","currentCell","flushTableEnd","flushCell","range","rowEnd","previousCell","groupName","valueName","getPoint","relatedStart","relatedEnd","valueToken","tableBody","exits","related","side","tasklistCheck","tokenizeTasklistCheck","gfmTaskListItem","spaceThenNonSpace","gfm","remarkGfm","micromarkExtensions","fromMarkdownExtensions","toMarkdownExtensions","NcIconSvgWrapper","isTextNode$1","transformPlaceholders","ast","ancestors","placeholders","matches","u","component","remarkPlaceholder","isCodeNode","remarkStripCode","SKIP","isTextNode","remarkUnescape","LINK_PROTOCOLS","rehypeHighlight","importRehypeHighlightLibrary","module","__vitePreload","createElementId","argumentId","argument","h","renderedMarkdown","remarkAutolink","remark2rehype","rehype2react","parseUrl","processor","nestedNode","inputNode","labelParts","nestedNodeIndex","propsToForward","inputComponent","NcCheckboxRadioSwitch","NcRichTextExternalLink","placeholder","NcRichText"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141],"sources":["../node_modules/@nextcloud/vue/dist/chunks/useCopy-PckLYUAU.mjs","../node_modules/@nextcloud/vue/dist/chunks/customPickerElements-Cu7bLbap.mjs","../node_modules/@nextcloud/vue/dist/chunks/referencePickerModal-B4bsiMOy.mjs","../node_modules/mdast-util-to-string/lib/index.js","../node_modules/@ungap/structured-clone/esm/types.js","../node_modules/@ungap/structured-clone/esm/deserialize.js","../node_modules/@ungap/structured-clone/esm/serialize.js","../node_modules/@ungap/structured-clone/esm/index.js","../node_modules/hast-util-is-element/lib/index.js","../node_modules/is-absolute-url/index.js","../node_modules/space-separated-tokens/index.js","../node_modules/unist-util-visit/lib/index.js","../node_modules/rehype-external-links/lib/index.js","../node_modules/comma-separated-tokens/index.js","../node_modules/estree-util-is-identifier-name/lib/index.js","../node_modules/hast-util-whitespace/lib/index.js","../node_modules/property-information/lib/util/schema.js","../node_modules/property-information/lib/util/merge.js","../node_modules/property-information/lib/normalize.js","../node_modules/property-information/lib/util/info.js","../node_modules/property-information/lib/util/types.js","../node_modules/property-information/lib/util/defined-info.js","../node_modules/property-information/lib/util/create.js","../node_modules/property-information/lib/aria.js","../node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/property-information/lib/html.js","../node_modules/property-information/lib/svg.js","../node_modules/property-information/lib/xlink.js","../node_modules/property-information/lib/xmlns.js","../node_modules/property-information/lib/xml.js","../node_modules/property-information/lib/hast-to-react.js","../node_modules/property-information/lib/find.js","../node_modules/property-information/index.js","../node_modules/inline-style-parser/index.js","../node_modules/style-to-object/cjs/index.js","../node_modules/style-to-js/cjs/utilities.js","../node_modules/style-to-js/cjs/index.js","../node_modules/unist-util-position/lib/index.js","../node_modules/unist-util-stringify-position/lib/index.js","../node_modules/vfile-message/lib/index.js","../node_modules/hast-util-to-jsx-runtime/lib/index.js","../node_modules/rehype-react/lib/index.js","../node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js","../node_modules/mdast-util-find-and-replace/lib/index.js","../node_modules/mdast-util-newline-to-break/lib/index.js","../node_modules/remark-breaks/lib/index.js","../node_modules/decode-named-character-reference/index.dom.js","../node_modules/micromark-util-chunked/index.js","../node_modules/micromark-util-combine-extensions/index.js","../node_modules/micromark-util-decode-numeric-character-reference/index.js","../node_modules/micromark-util-normalize-identifier/index.js","../node_modules/micromark-util-character/index.js","../node_modules/micromark-util-sanitize-uri/index.js","../node_modules/micromark-factory-space/index.js","../node_modules/micromark/lib/initialize/content.js","../node_modules/micromark/lib/initialize/document.js","../node_modules/micromark-util-classify-character/index.js","../node_modules/micromark-util-resolve-all/index.js","../node_modules/micromark-core-commonmark/lib/attention.js","../node_modules/micromark-core-commonmark/lib/autolink.js","../node_modules/micromark-core-commonmark/lib/blank-line.js","../node_modules/micromark-core-commonmark/lib/block-quote.js","../node_modules/micromark-core-commonmark/lib/character-escape.js","../node_modules/micromark-core-commonmark/lib/character-reference.js","../node_modules/micromark-core-commonmark/lib/code-fenced.js","../node_modules/micromark-core-commonmark/lib/code-indented.js","../node_modules/micromark-core-commonmark/lib/code-text.js","../node_modules/micromark-util-subtokenize/lib/splice-buffer.js","../node_modules/micromark-util-subtokenize/index.js","../node_modules/micromark-core-commonmark/lib/content.js","../node_modules/micromark-factory-destination/index.js","../node_modules/micromark-factory-label/index.js","../node_modules/micromark-factory-title/index.js","../node_modules/micromark-factory-whitespace/index.js","../node_modules/micromark-core-commonmark/lib/definition.js","../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../node_modules/micromark-core-commonmark/lib/heading-atx.js","../node_modules/micromark-util-html-tag-name/index.js","../node_modules/micromark-core-commonmark/lib/html-flow.js","../node_modules/micromark-core-commonmark/lib/html-text.js","../node_modules/micromark-core-commonmark/lib/label-end.js","../node_modules/micromark-core-commonmark/lib/label-start-image.js","../node_modules/micromark-core-commonmark/lib/label-start-link.js","../node_modules/micromark-core-commonmark/lib/line-ending.js","../node_modules/micromark-core-commonmark/lib/thematic-break.js","../node_modules/micromark-core-commonmark/lib/list.js","../node_modules/micromark-core-commonmark/lib/setext-underline.js","../node_modules/micromark/lib/initialize/flow.js","../node_modules/micromark/lib/initialize/text.js","../node_modules/micromark/lib/constructs.js","../node_modules/micromark/lib/create-tokenizer.js","../node_modules/micromark/lib/parse.js","../node_modules/micromark/lib/postprocess.js","../node_modules/micromark/lib/preprocess.js","../node_modules/micromark-util-decode-string/index.js","../node_modules/mdast-util-from-markdown/lib/index.js","../node_modules/remark-parse/lib/index.js","../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../node_modules/mdast-util-to-hast/lib/handlers/break.js","../node_modules/mdast-util-to-hast/lib/handlers/code.js","../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../node_modules/mdast-util-to-hast/lib/handlers/html.js","../node_modules/mdast-util-to-hast/lib/revert.js","../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/image.js","../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/link.js","../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../node_modules/mdast-util-to-hast/lib/handlers/list.js","../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../node_modules/mdast-util-to-hast/lib/handlers/root.js","../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../node_modules/mdast-util-to-hast/lib/handlers/table.js","../node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../node_modules/trim-lines/index.js","../node_modules/mdast-util-to-hast/lib/handlers/text.js","../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../node_modules/mdast-util-to-hast/lib/handlers/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/mdast-util-to-hast/lib/state.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/remark-rehype/lib/index.js","../node_modules/mdast-squeeze-paragraphs/lib/index.js","../node_modules/remark-unlink-protocols/lib/index.js","../node_modules/bail/index.js","../node_modules/extend/index.js","../node_modules/is-plain-obj/index.js","../node_modules/trough/lib/index.js","../node_modules/vfile/lib/minpath.browser.js","../node_modules/vfile/lib/minproc.browser.js","../node_modules/vfile/lib/minurl.shared.js","../node_modules/vfile/lib/minurl.browser.js","../node_modules/vfile/lib/index.js","../node_modules/unified/lib/callable-instance.js","../node_modules/unified/lib/index.js","../node_modules/@nextcloud/vue/dist/chunks/NcRichText-BOBQq7Od.mjs"],"sourcesContent":["import { d as mdiCheck, e as mdiContentCopy } from \"./mdi-CpchYUUV.mjs\";\nimport { ref, computed, toValue } from \"vue\";\nimport { r as register, e as t22, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nregister(t22);\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst DELAY = 2e3;\nfunction useCopy(content) {\n const isCopied = ref(false);\n const icon = computed(() => isCopied.value ? mdiCheck : mdiContentCopy);\n const altText = computed(() => isCopied.value ? t(\"Copied\") : t(\"Copy to clipboard\"));\n async function copy() {\n if (isCopied.value) {\n return;\n }\n const value = toValue(content);\n try {\n await navigator.clipboard.writeText(value);\n } catch {\n prompt(\"\", value);\n }\n isCopied.value = true;\n setTimeout(() => {\n isCopied.value = false;\n }, DELAY);\n }\n return {\n isCopied,\n copy,\n icon,\n altText\n };\n}\nexport {\n useCopy as u\n};\n//# sourceMappingURL=useCopy-PckLYUAU.mjs.map\n","import { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nwindow._vue_richtext_widgets ??= {};\nwindow._registerWidget ??= (id, callback, onDestroy, props) => {\n registerWidget(id, callback, onDestroy, props);\n};\nfunction registerWidget(id, callback, onDestroy = () => {\n}, props) {\n const propsWithDefaults = {\n hasInteractiveView: true,\n fullWidth: false,\n ...props\n };\n if (window._vue_richtext_widgets[id]) {\n logger.error(`[ReferencePicker]: Widget for id ${id} already registered`);\n return;\n }\n window._vue_richtext_widgets[id] = {\n id,\n callback,\n onDestroy,\n ...propsWithDefaults\n };\n}\nfunction renderWidget(el, options) {\n const { richObjectType, richObject, accessible, interactive } = options;\n if (richObjectType === \"open-graph\") {\n return;\n }\n if (!window._vue_richtext_widgets[richObjectType]) {\n logger.error(\"Widget for rich object type \" + richObjectType + \" not registered\");\n return;\n }\n window._vue_richtext_widgets[richObjectType].callback(el, { richObjectType, richObject, accessible, interactive });\n}\nfunction destroyWidget(richObjectType, el) {\n if (richObjectType === \"open-graph\") {\n return;\n }\n if (!window._vue_richtext_widgets[richObjectType]) {\n return;\n }\n window._vue_richtext_widgets[richObjectType].onDestroy(el);\n}\nfunction isWidgetRegistered(id) {\n return !!window._vue_richtext_widgets[id];\n}\nfunction hasInteractiveView(id) {\n return !!window._vue_richtext_widgets[id]?.hasInteractiveView;\n}\nfunction hasFullWidth(id) {\n return !!window._vue_richtext_widgets[id]?.fullWidth;\n}\nwindow._vue_richtext_custom_picker_elements ??= {};\nwindow._registerCustomPickerElement ??= registerCustomPickerElement;\nclass NcCustomPickerRenderResult {\n element;\n object;\n /**\n * @param element - The HTML element\n * @param object - The object\n */\n constructor(element, object) {\n this.element = element;\n this.object = object;\n }\n}\nfunction isCustomPickerElementRegistered(id) {\n return !!window._vue_richtext_custom_picker_elements[id];\n}\nfunction getCustomPickerElementSize(id) {\n const size = window._vue_richtext_custom_picker_elements[id]?.size;\n if (size && [\"small\", \"normal\", \"large\", \"full\"].includes(size)) {\n return size;\n }\n return null;\n}\nfunction registerCustomPickerElement(id, callback, onDestroy = () => {\n}, size = \"large\") {\n if (window._vue_richtext_custom_picker_elements[id]) {\n logger.error(`Custom reference picker element for id ${id} already registered`);\n return;\n }\n window._vue_richtext_custom_picker_elements[id] = {\n id,\n callback,\n onDestroy,\n size\n };\n}\nfunction renderCustomPickerElement(el, options) {\n const { providerId, accessible } = options;\n if (!window._vue_richtext_custom_picker_elements[providerId]) {\n logger.error(`Custom reference picker element for reference provider ID ${providerId} not registered`);\n return;\n }\n return window._vue_richtext_custom_picker_elements[providerId].callback(el, { providerId, accessible });\n}\nfunction destroyCustomPickerElement(providerId, el, renderResult) {\n if (!window._vue_richtext_custom_picker_elements[providerId]) {\n return;\n }\n window._vue_richtext_custom_picker_elements[providerId].onDestroy(el, renderResult);\n}\nexport {\n NcCustomPickerRenderResult as N,\n destroyWidget as a,\n isWidgetRegistered as b,\n registerWidget as c,\n destroyCustomPickerElement as d,\n renderCustomPickerElement as e,\n renderWidget as f,\n getCustomPickerElementSize as g,\n hasInteractiveView as h,\n isCustomPickerElementRegistered as i,\n hasFullWidth as j,\n registerCustomPickerElement as r\n};\n//# sourceMappingURL=customPickerElements-Cu7bLbap.mjs.map\n","import '../assets/referencePickerModal-Dod7nzta.css';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, resolveComponent, createVNode, withCtx, defineComponent, inject, ref, useTemplateRef, nextTick, computed, watch, onBeforeUnmount, normalizeClass, createBlock, resolveDynamicComponent, normalizeStyle, createTextVNode, unref, withKeys, withModifiers, createApp } from \"vue\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { I as IconClose } from \"./Close-CuhcJnX2.mjs\";\nimport { e as renderCustomPickerElement, d as destroyCustomPickerElement, i as isCustomPickerElementRegistered, j as hasFullWidth, b as isWidgetRegistered, h as hasInteractiveView, f as renderWidget, a as destroyWidget, g as getCustomPickerElementSize } from \"./customPickerElements-Cu7bLbap.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { loadState } from \"@nextcloud/initial-state\";\nimport { imagePath, generateOcsUrl } from \"@nextcloud/router\";\nimport { r as register, W as t8, a as t, X as t46, Y as t41, Z as t24, _ as t25, q as t43, $ as t32, A as t19, a0 as t12 } from \"./_l10n-CG4CuN3H.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { N as NcEmptyContent } from \"./NcEmptyContent-CGAPqk4S.mjs\";\nimport { _ as _sfc_main$a } from \"./NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs\";\nimport { N as NcSelect } from \"./NcSelect-BOFzoCwK.mjs\";\nimport debounce from \"debounce\";\nimport { useElementSize, useIntersectionObserver } from \"@vueuse/core\";\nimport { routerKey, RouterLink } from \"vue-router\";\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { g as getRoute } from \"./autolink-BT8u-IL-.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-BOVpFVQz.mjs\";\nimport { _ as _sfc_main$b } from \"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r.mjs\";\nimport { I as IconDotsHorizontal } from \"./NcActions-CUmcZ3C3.mjs\";\nimport { N as NcModal } from \"./NcModal-DUWLRm_F.mjs\";\nconst _sfc_main$9 = {\n name: \"ArrowLeftIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$9 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$7 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$6 = { d: \"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\" };\nconst _hoisted_4$5 = { key: 0 };\nfunction _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon arrow-left-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$6, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$5, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$7))\n ], 16, _hoisted_1$9);\n}\nconst ArrowLeftIcon = /* @__PURE__ */ _export_sfc(_sfc_main$9, [[\"render\", _sfc_render$8]]);\nconst _sfc_main$8 = {\n name: \"NcCustomPickerElement\",\n props: {\n /**\n * The reference provider\n */\n provider: {\n type: Object,\n required: true\n }\n },\n emits: [\n \"cancel\",\n \"submit\"\n ],\n data() {\n return {\n isRegistered: isCustomPickerElementRegistered(this.provider.id),\n renderResult: null\n };\n },\n mounted() {\n if (this.isRegistered) {\n this.renderElement();\n }\n },\n beforeUnmount() {\n if (this.isRegistered) {\n destroyCustomPickerElement(this.provider.id, this.$el, this.renderResult);\n }\n },\n methods: {\n renderElement() {\n if (this.$refs.domElement) {\n this.$refs.domElement.innerHTML = \"\";\n }\n const renderFunctionResult = renderCustomPickerElement(this.$refs.domElement, { providerId: this.provider.id, accessible: false });\n Promise.resolve(renderFunctionResult).then((result) => {\n this.renderResult = result;\n if (this.renderResult.object?._isVue && this.renderResult.object?.$on) {\n this.renderResult.object.$on(\"submit\", this.onSubmit);\n this.renderResult.object.$on(\"cancel\", this.onCancel);\n }\n this.renderResult.element.addEventListener(\"submit\", (e) => {\n this.onSubmit(e.detail);\n });\n this.renderResult.element.addEventListener(\"cancel\", this.onCancel);\n });\n },\n onSubmit(value) {\n this.$emit(\"submit\", value);\n },\n onCancel() {\n this.$emit(\"cancel\");\n }\n }\n};\nconst _hoisted_1$8 = { ref: \"domElement\" };\nfunction _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$8, null, 512);\n}\nconst NcCustomPickerElement = /* @__PURE__ */ _export_sfc(_sfc_main$8, [[\"render\", _sfc_render$7], [\"__scopeId\", \"data-v-e408867a\"]]);\nconst _sfc_main$7 = {\n name: \"LinkVariantIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$7 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$6 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$5 = { d: \"M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z\" };\nconst _hoisted_4$4 = { key: 0 };\nfunction _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon link-variant-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$5, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$6))\n ], 16, _hoisted_1$7);\n}\nconst LinkVariantIcon = /* @__PURE__ */ _export_sfc(_sfc_main$7, [[\"render\", _sfc_render$6]]);\nregister(t8);\nconst anyLinkProviderId = \"any-link\";\nconst anyLinkProvider = {\n id: anyLinkProviderId,\n title: t(\"Any link\"),\n order: 0,\n icon_url: imagePath(\"core\", \"filetypes/link.svg\")\n};\nwindow._vue_richtext_reference_providers ??= loadState(\"core\", \"reference-provider-list\", []);\nwindow._vue_richtext_reference_provider_timestamps ??= loadState(\"core\", \"reference-provider-timestamps\", {});\nfunction getProvider(providerId) {\n if (providerId === anyLinkProviderId) {\n return anyLinkProvider;\n }\n return getProviders().find((p) => p.id === providerId);\n}\nfunction getProviders() {\n return window._vue_richtext_reference_providers.filter((p) => {\n const keep = !!p.search_providers_ids && p.search_providers_ids.length > 0 || isCustomPickerElementRegistered(p.id);\n if (!keep) {\n logger.debug(`[smart picker] ${p.id} reference provider is discoverable but does not have any related search provider or custom picker component registered`);\n }\n return keep;\n });\n}\nfunction sortProviders(providerList) {\n const timestamps = window._vue_richtext_reference_provider_timestamps;\n return providerList.sort((a, b) => {\n return a.order === b.order ? 0 : a.order > b.order ? 1 : -1;\n }).sort((a, b) => {\n const ta = timestamps[a.id];\n const tb = timestamps[b.id];\n return ta === tb ? 0 : tb === void 0 ? -1 : ta === void 0 ? 1 : ta > tb ? -1 : 1;\n });\n}\nfunction searchProvider(query, limit) {\n const providers = getProviders();\n const escapedQuery = query.replace(/[/\\-\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n const regexp = new RegExp(escapedQuery, \"i\");\n const sortedProviders = sortProviders(providers);\n const filteredSortedProviders = sortedProviders.filter((p) => {\n return p.title.match(regexp);\n });\n const searchResult = limit ? filteredSortedProviders.slice(0, limit) : filteredSortedProviders;\n if (query === \"\" || searchResult.length === 0) {\n searchResult.push(anyLinkProvider);\n }\n return searchResult;\n}\nasync function touchProvider(providerId) {\n const timestamp = Math.floor(Date.now() / 1e3);\n const url = generateOcsUrl(\"references/provider/{providerId}\", { providerId });\n await axios.put(url, { timestamp });\n window._vue_richtext_reference_provider_timestamps[providerId] = timestamp;\n}\nregister(t41, t46);\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction isUrl(str) {\n try {\n return Boolean(new URL(str));\n } catch {\n return false;\n }\n}\nconst _sfc_main$6 = {\n name: \"NcProviderList\",\n components: {\n NcSelect,\n NcHighlight: _sfc_main$a,\n NcEmptyContent,\n LinkVariantIcon\n },\n emits: [\n \"selectProvider\",\n \"submit\"\n ],\n data() {\n return {\n selectedProvider: null,\n query: \"\",\n multiselectPlaceholder: t(\"Select provider\"),\n providerIconAlt: t(\"Provider icon\")\n };\n },\n computed: {\n options() {\n const result = [];\n if (this.query !== \"\" && isUrl(this.query)) {\n result.push({\n id: this.query,\n title: this.query,\n isLink: true\n });\n }\n result.push(...searchProvider(this.query));\n return result;\n }\n },\n methods: {\n focus() {\n setTimeout(() => {\n this.$refs[\"provider-select\"]?.$el?.querySelector(\"#provider-select-input\")?.focus();\n }, 300);\n },\n onProviderSelected(p) {\n if (p !== null) {\n if (p.isLink) {\n this.$emit(\"submit\", p.title);\n } else {\n this.$emit(\"selectProvider\", p);\n }\n this.selectedProvider = null;\n }\n },\n onSearch(query) {\n this.query = query;\n }\n }\n};\nconst _hoisted_1$6 = { class: \"provider-list\" };\nconst _hoisted_2$5 = {\n key: 0,\n class: \"provider\"\n};\nconst _hoisted_3$4 = {\n key: 1,\n class: \"provider\"\n};\nconst _hoisted_4$3 = [\"src\", \"alt\"];\nfunction _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_LinkVariantIcon = resolveComponent(\"LinkVariantIcon\");\n const _component_NcHighlight = resolveComponent(\"NcHighlight\");\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$6, [\n createVNode(_component_NcSelect, {\n ref: \"provider-select\",\n modelValue: $data.selectedProvider,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event) => $data.selectedProvider = $event),\n $options.onProviderSelected\n ],\n class: \"provider-list--select\",\n inputId: \"provider-select-input\",\n label: \"title\",\n placeholder: $data.multiselectPlaceholder,\n options: $options.options,\n appendToBody: false,\n clearSearchOnSelect: true,\n clearSearchOnBlur: () => false,\n filterable: false,\n onSearch: $options.onSearch\n }, {\n option: withCtx((option) => [\n option.isLink ? (openBlock(), createElementBlock(\"div\", _hoisted_2$5, [\n createVNode(_component_LinkVariantIcon, {\n class: \"link-icon\",\n size: 20\n }),\n createElementVNode(\"span\", null, toDisplayString(option.title), 1)\n ])) : (openBlock(), createElementBlock(\"div\", _hoisted_3$4, [\n createElementVNode(\"img\", {\n class: \"provider-icon\",\n src: option.icon_url,\n alt: $data.providerIconAlt\n }, null, 8, _hoisted_4$3),\n createVNode(_component_NcHighlight, {\n class: \"option-text\",\n search: $data.query,\n text: option.title\n }, null, 8, [\"search\", \"text\"])\n ]))\n ]),\n _: 1\n }, 8, [\"modelValue\", \"placeholder\", \"options\", \"onSearch\", \"onUpdate:modelValue\"]),\n createVNode(_component_NcEmptyContent, { class: \"provider-list--empty-content\" }, {\n icon: withCtx(() => [\n createVNode(_component_LinkVariantIcon)\n ]),\n _: 1\n })\n ]);\n}\nconst NcProviderList = /* @__PURE__ */ _export_sfc(_sfc_main$6, [[\"render\", _sfc_render$5], [\"__scopeId\", \"data-v-ea81d3af\"]]);\nregister(t24);\nconst _hoisted_1$5 = [\"src\"];\nconst _hoisted_2$4 = { class: \"widget-default--details\" };\nconst _hoisted_3$3 = { class: \"widget-default--name\" };\nconst _hoisted_4$2 = { class: \"widget-default--link\" };\nconst IDLE_TIMEOUT = 3 * 60 * 1e3;\nconst _sfc_main$5 = /* @__PURE__ */ defineComponent({\n __name: \"NcReferenceWidget\",\n props: {\n reference: {},\n interactive: { type: Boolean, default: true },\n interactiveOptIn: { type: Boolean, default: false }\n },\n setup(__props) {\n const props = __props;\n const router = inject(routerKey, null);\n const isVisible = ref(false);\n const customWidget = useTemplateRef(\"customWidget\");\n const widgetRoot = useTemplateRef(\"widgetRoot\");\n const { width } = useElementSize(widgetRoot);\n useIntersectionObserver(widgetRoot, ([entry]) => {\n nextTick(() => {\n isVisible.value = entry.isIntersecting;\n });\n });\n const showInteractive = ref(false);\n const rendered = ref(false);\n let idleTimeout = null;\n const isInteractive = computed(() => {\n return !props.interactiveOptIn && props.interactive || showInteractive.value;\n });\n const referenceHasFullWidth = computed(() => {\n return hasFullWidth(props.reference.richObjectType);\n });\n const hasCustomWidget = computed(() => {\n return isWidgetRegistered(props.reference.richObjectType);\n });\n const referenceHasInteractiveView = computed(() => {\n return hasCustomWidget.value && hasInteractiveView(props.reference.richObjectType);\n });\n const noAccess = computed(() => {\n return !props.reference.accessible;\n });\n const numberOfLines = computed(() => {\n const lineCountOffsets = [450, 550, 650, Infinity];\n return lineCountOffsets.findIndex((max) => width.value < max);\n });\n const descriptionStyle = computed(() => {\n if (numberOfLines.value === 0) {\n return {\n display: \"none\"\n };\n }\n const lineClamp = numberOfLines.value;\n return {\n lineClamp,\n webkitLineClamp: lineClamp\n };\n });\n const compactLink = computed(() => {\n const link = props.reference.openGraphObject.link;\n if (!link) {\n return \"\";\n }\n if (link.startsWith(\"https://\")) {\n return link.substring(8);\n }\n if (link.startsWith(\"http://\")) {\n return link.substring(7);\n }\n return link;\n });\n const route = computed(() => {\n return getRoute(router, props.reference.openGraphObject.link);\n });\n const referenceWidgetLinkComponent = computed(() => {\n return route.value ? RouterLink : \"a\";\n });\n const referenceWidgetLinkProps = computed(() => {\n return route.value ? { to: route.value } : { href: props.reference.openGraphObject.link, target: \"_blank\" };\n });\n watch(isVisible, (val) => {\n if (!val) {\n idleTimeout = setTimeout(() => {\n if (!isVisible.value) {\n destroyReferenceWidget();\n }\n }, IDLE_TIMEOUT);\n return;\n }\n if (idleTimeout) {\n clearTimeout(idleTimeout);\n idleTimeout = null;\n }\n if (!rendered.value) {\n renderReferenceWidget();\n }\n }, { immediate: true });\n onBeforeUnmount(() => {\n destroyReferenceWidget();\n });\n function enableInteractive() {\n showInteractive.value = true;\n renderReferenceWidget();\n }\n function renderReferenceWidget() {\n if (!customWidget.value) {\n return;\n }\n if (props.reference.richObjectType === \"open-graph\") {\n return;\n }\n customWidget.value.innerHTML = \"\";\n const widget = document.createElement(\"div\");\n widget.style.width = \"100%\";\n customWidget.value.appendChild(widget);\n nextTick(() => {\n renderWidget(widget, {\n ...props.reference,\n interactive: isInteractive.value\n });\n rendered.value = true;\n });\n }\n function destroyReferenceWidget() {\n if (rendered.value && widgetRoot.value) {\n destroyWidget(props.reference.richObjectType, widgetRoot.value);\n rendered.value = false;\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref_key: \"widgetRoot\",\n ref: widgetRoot,\n class: normalizeClass({ \"toggle-interactive\": referenceHasInteractiveView.value && !isInteractive.value })\n }, [\n __props.reference && hasCustomWidget.value ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n ref_key: \"customWidget\",\n ref: customWidget,\n class: normalizeClass([\"widget-custom\", { \"full-width\": referenceHasFullWidth.value }])\n }, null, 2)) : !noAccess.value && __props.reference && __props.reference.openGraphObject && !hasCustomWidget.value ? (openBlock(), createBlock(resolveDynamicComponent(referenceWidgetLinkComponent.value), mergeProps({ key: 1 }, referenceWidgetLinkProps.value, {\n rel: \"noopener noreferrer\",\n class: \"widget-default\"\n }), {\n default: withCtx(() => [\n __props.reference.openGraphObject.thumb ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"widget-default--image\",\n src: __props.reference.openGraphObject.thumb\n }, null, 8, _hoisted_1$5)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_2$4, [\n createElementVNode(\"p\", _hoisted_3$3, toDisplayString(__props.reference.openGraphObject.name), 1),\n createElementVNode(\"p\", {\n class: \"widget-default--description\",\n style: normalizeStyle(descriptionStyle.value)\n }, toDisplayString(__props.reference.openGraphObject.description), 5),\n createElementVNode(\"p\", _hoisted_4$2, toDisplayString(compactLink.value), 1)\n ])\n ]),\n _: 1\n }, 16)) : createCommentVNode(\"\", true),\n __props.interactiveOptIn && referenceHasInteractiveView.value && !isInteractive.value ? (openBlock(), createBlock(NcButton, {\n key: 2,\n class: \"toggle-interactive--button\",\n onClick: enableInteractive\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Enable interactive view\")), 1)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcReferenceWidget = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"__scopeId\", \"data-v-b0ec9f0b\"]]);\nregister(t25);\nconst _sfc_main$4 = {\n name: \"NcRawLinkInput\",\n components: {\n LinkVariantIcon,\n NcEmptyContent,\n NcLoadingIcon,\n NcReferenceWidget,\n NcTextField: _sfc_main$b\n },\n props: {\n /**\n * The reference provider\n */\n provider: {\n type: Object,\n required: true\n }\n },\n emits: [\n \"submit\"\n ],\n data() {\n return {\n inputValue: \"\",\n loading: false,\n reference: null,\n abortController: null,\n inputPlaceholder: t(\"Enter link\")\n };\n },\n computed: {\n isLinkValid() {\n return isUrl(this.inputValue);\n },\n debouncedUpdateReference() {\n return debounce(this.updateReference, 500);\n }\n },\n methods: {\n focus() {\n this.$refs[\"url-input\"].$el.getElementsByTagName(\"input\")[0]?.focus();\n },\n onSubmit(e) {\n const value = e.target.value;\n if (this.isLinkValid) {\n this.$emit(\"submit\", value);\n }\n },\n onClear() {\n this.inputValue = \"\";\n this.reference = null;\n },\n onInput() {\n this.reference = null;\n if (this.abortController) {\n this.abortController.abort();\n }\n if (this.isLinkValid) {\n this.debouncedUpdateReference();\n }\n },\n updateReference() {\n this.loading = true;\n this.abortController = new AbortController();\n axios.get(generateOcsUrl(\"references/resolve\", 2) + \"?reference=\" + encodeURIComponent(this.inputValue), {\n signal: this.abortController.signal\n }).then((response) => {\n this.reference = response.data.ocs.data.references[this.inputValue];\n }).catch((error) => {\n logger.error(\"[NcRawLinkInput] Failed to update reference\", { error });\n }).then(() => {\n this.loading = false;\n });\n }\n }\n};\nconst _hoisted_1$4 = { class: \"raw-link\" };\nconst _hoisted_2$3 = { class: \"input-wrapper\" };\nconst _hoisted_3$2 = [\"src\"];\nfunction _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_LinkVariantIcon = resolveComponent(\"LinkVariantIcon\");\n const _component_NcTextField = resolveComponent(\"NcTextField\");\n const _component_NcReferenceWidget = resolveComponent(\"NcReferenceWidget\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$4, [\n createElementVNode(\"div\", _hoisted_2$3, [\n createVNode(_component_NcTextField, {\n ref: \"url-input\",\n modelValue: $data.inputValue,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event) => $data.inputValue = $event),\n $options.onInput\n ],\n showTrailingButton: $data.inputValue !== \"\",\n label: $data.inputPlaceholder,\n onTrailingButtonClick: $options.onClear,\n onKeyup: withKeys($options.onSubmit, [\"enter\"])\n }, {\n default: withCtx(() => [\n $data.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, {\n key: 0,\n size: 16\n })) : (openBlock(), createBlock(_component_LinkVariantIcon, {\n key: 1,\n size: 16\n }))\n ]),\n _: 1\n }, 8, [\"modelValue\", \"showTrailingButton\", \"label\", \"onTrailingButtonClick\", \"onUpdate:modelValue\", \"onKeyup\"])\n ]),\n $data.reference !== null ? (openBlock(), createBlock(_component_NcReferenceWidget, {\n key: 0,\n class: \"reference-widget\",\n reference: $data.reference\n }, null, 8, [\"reference\"])) : (openBlock(), createBlock(_component_NcEmptyContent, {\n key: 1,\n class: \"raw-link--empty-content\"\n }, {\n icon: withCtx(() => [\n $props.provider.icon_url ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"provider-icon\",\n src: $props.provider.icon_url\n }, null, 8, _hoisted_3$2)) : (openBlock(), createBlock(_component_LinkVariantIcon, { key: 1 }))\n ]),\n _: 1\n }))\n ]);\n}\nconst NcRawLinkInput = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$4], [\"__scopeId\", \"data-v-918730b9\"]]);\nconst _sfc_main$3 = {\n name: \"NcSearchResult\",\n components: {\n NcHighlight: _sfc_main$a\n },\n props: {\n /**\n * Unified search result entry\n */\n entry: {\n type: Object,\n required: true\n },\n /**\n * The query that led to getting this result\n * Used to highlight the entry text\n */\n query: {\n type: String,\n required: true\n }\n }\n};\nconst _hoisted_1$3 = { class: \"result\" };\nconst _hoisted_2$2 = [\"src\"];\nconst _hoisted_3$1 = { class: \"result--content\" };\nconst _hoisted_4$1 = { class: \"result--content--name\" };\nconst _hoisted_5$1 = { class: \"result--content--subline\" };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcHighlight = resolveComponent(\"NcHighlight\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$3, [\n $props.entry.icon ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([{ [$props.entry.icon]: true, rounded: $props.entry.rounded }, \"result--icon-class\"])\n }, null, 2)) : (openBlock(), createElementBlock(\"img\", {\n key: 1,\n class: normalizeClass([\"result--image\", { rounded: $props.entry.rounded }]),\n src: $props.entry.thumbnailUrl\n }, null, 10, _hoisted_2$2)),\n createElementVNode(\"div\", _hoisted_3$1, [\n createElementVNode(\"span\", _hoisted_4$1, [\n createVNode(_component_NcHighlight, {\n search: $props.query,\n text: $props.entry.title\n }, null, 8, [\"search\", \"text\"])\n ]),\n createElementVNode(\"span\", _hoisted_5$1, [\n createVNode(_component_NcHighlight, {\n search: $props.query,\n text: $props.entry.subline\n }, null, 8, [\"search\", \"text\"])\n ])\n ])\n ]);\n}\nconst NcSearchResult = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3], [\"__scopeId\", \"data-v-059edcfb\"]]);\nregister(t32, t41, t43);\nconst LIMIT = 5;\nconst _sfc_main$2 = {\n name: \"NcSearch\",\n components: {\n LinkVariantIcon,\n DotsHorizontalIcon: IconDotsHorizontal,\n NcEmptyContent,\n NcSelect,\n NcSearchResult\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n /**\n * The selected reference provider\n */\n provider: {\n type: Object,\n required: true\n },\n showEmptyContent: {\n type: Boolean,\n default: true\n },\n /**\n * Placeholder of the search\n */\n searchPlaceholder: {\n type: String,\n default: null\n }\n },\n emits: [\n \"submit\"\n ],\n data() {\n return {\n searchQuery: \"\",\n selectedResult: null,\n resultsBySearchProvider: {},\n searching: false,\n searchingMoreOf: null,\n abortController: null,\n noOptionsText: t(\"Start typing to search\"),\n providerIconAlt: t(\"Provider icon\")\n };\n },\n computed: {\n mySearchPlaceholder() {\n return this.searchPlaceholder || t(\"Search\");\n },\n searchProviderIds() {\n return this.provider.search_providers_ids;\n },\n options() {\n if (this.searchQuery === \"\") {\n return [];\n }\n const options = [];\n if (isUrl(this.searchQuery)) {\n options.push(this.rawLinkEntry);\n }\n options.push(...this.formattedSearchResults);\n return options;\n },\n rawLinkEntry() {\n return {\n id: \"rawLinkEntry\",\n resourceUrl: this.searchQuery,\n isRawLink: true\n };\n },\n formattedSearchResults() {\n const results = [];\n this.searchProviderIds.forEach((pid) => {\n if (this.resultsBySearchProvider[pid].entries.length > 0) {\n if (this.searchProviderIds.length > 1 || this.resultsBySearchProvider[pid].entries.length > 1) {\n results.push({\n id: \"groupTitle-\" + pid,\n name: this.resultsBySearchProvider[pid].name,\n isCustomGroupTitle: true,\n providerId: pid\n });\n }\n const providerEntriesWithId = this.resultsBySearchProvider[pid].entries.map((entry, index) => {\n return {\n id: \"provider-\" + pid + \"-entry-\" + index,\n ...entry\n };\n });\n results.push(...providerEntriesWithId);\n if (this.resultsBySearchProvider[pid].isPaginated) {\n results.push({\n id: \"moreOf-\" + pid,\n name: this.resultsBySearchProvider[pid].name,\n isMore: true,\n providerId: pid,\n isLoading: this.searchingMoreOf === pid\n });\n }\n }\n });\n return results;\n },\n debouncedUpdateSearch() {\n return debounce(this.updateSearch, 500);\n }\n },\n mounted() {\n this.resetResults();\n },\n beforeUnmount() {\n this.cancelSearchRequests();\n },\n methods: {\n t,\n resetResults() {\n const resultsBySearchProvider = {};\n this.searchProviderIds.forEach((pid) => {\n resultsBySearchProvider[pid] = {\n entries: []\n };\n });\n this.resultsBySearchProvider = resultsBySearchProvider;\n },\n focus() {\n setTimeout(() => {\n this.$refs[\"search-select\"]?.$el?.querySelector(\"#search-select-input\")?.focus();\n }, 300);\n },\n cancelSearchRequests() {\n if (this.abortController) {\n this.abortController.abort();\n }\n },\n onSearchInput(query) {\n this.searchQuery = query;\n this.debouncedUpdateSearch();\n },\n onSelectResultSelected(item) {\n if (item !== null) {\n if (item.resourceUrl) {\n this.cancelSearchRequests();\n this.$emit(\"submit\", item.resourceUrl);\n } else if (item.isMore) {\n this.searchMoreOf(item.providerId).then(() => {\n this.selectedResult = null;\n });\n }\n }\n },\n searchMoreOf(searchProviderId) {\n this.searchingMoreOf = searchProviderId;\n this.cancelSearchRequests();\n return this.searchProviders(searchProviderId);\n },\n updateSearch() {\n this.cancelSearchRequests();\n this.resetResults();\n if (this.searchQuery === \"\") {\n this.searching = false;\n return;\n }\n return this.searchProviders();\n },\n searchProviders(searchProviderId = null) {\n this.abortController = new AbortController();\n this.searching = true;\n const searchPromises = searchProviderId === null ? [...this.searchProviderIds].map((pid) => {\n return this.searchOneProvider(pid);\n }) : [this.searchOneProvider(searchProviderId, this.resultsBySearchProvider[searchProviderId]?.cursor ?? null)];\n return Promise.allSettled(searchPromises).then((promises) => {\n const isOneCanceled = !!promises.find((p) => {\n return p.status === \"rejected\" && (p.reason.name === \"CanceledError\" || p.reason.code === \"ERR_CANCELED\");\n });\n if (!isOneCanceled) {\n this.searching = false;\n this.searchingMoreOf = null;\n }\n });\n },\n searchOneProvider(providerId, cursor = null) {\n const url = cursor === null ? generateOcsUrl(\"search/providers/{providerId}/search?term={term}&limit={limit}\", { providerId, term: this.searchQuery, limit: LIMIT }) : generateOcsUrl(\"search/providers/{providerId}/search?term={term}&limit={limit}&cursor={cursor}\", { providerId, term: this.searchQuery, limit: LIMIT, cursor });\n return axios.get(url, {\n signal: this.abortController.signal\n }).then((response) => {\n const data = response.data.ocs.data;\n this.resultsBySearchProvider[providerId].name = data.name;\n this.resultsBySearchProvider[providerId].cursor = data.cursor;\n this.resultsBySearchProvider[providerId].isPaginated = data.isPaginated;\n this.resultsBySearchProvider[providerId].entries.push(...data.entries);\n });\n }\n }\n};\nconst _hoisted_1$2 = {\n key: 0,\n class: \"custom-option\"\n};\nconst _hoisted_2$1 = { class: \"option-text\" };\nconst _hoisted_3 = {\n key: 2,\n class: \"custom-option group-name\"\n};\nconst _hoisted_4 = [\"src\"];\nconst _hoisted_5 = { class: \"option-text\" };\nconst _hoisted_6 = {\n key: 3,\n class: \"custom-option\"\n};\nconst _hoisted_7 = {\n key: 0,\n class: \"option-simple-icon icon-loading-small\"\n};\nconst _hoisted_8 = { class: \"option-text\" };\nconst _hoisted_9 = [\"alt\", \"src\"];\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_LinkVariantIcon = resolveComponent(\"LinkVariantIcon\");\n const _component_NcSearchResult = resolveComponent(\"NcSearchResult\");\n const _component_DotsHorizontalIcon = resolveComponent(\"DotsHorizontalIcon\");\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"smart-picker-search\", { \"with-empty-content\": $props.showEmptyContent }])\n }, [\n createVNode(_component_NcSelect, {\n ref: \"search-select\",\n modelValue: $data.selectedResult,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event) => $data.selectedResult = $event),\n $options.onSelectResultSelected\n ],\n class: \"smart-picker-search--select\",\n inputId: \"search-select-input\",\n label: \"name\",\n placeholder: $options.mySearchPlaceholder,\n options: $options.options,\n appendToBody: false,\n closeOnSelect: false,\n clearSearchOnSelect: false,\n clearSearchOnBlur: () => false,\n resetFocusOnOptionsChange: false,\n filterable: false,\n autoscroll: true,\n resetOnOptionsChange: false,\n loading: $data.searching,\n onSearch: $options.onSearchInput\n }, {\n option: withCtx((option) => [\n option.isRawLink ? (openBlock(), createElementBlock(\"div\", _hoisted_1$2, [\n createVNode(_component_LinkVariantIcon, {\n class: \"option-simple-icon\",\n size: 20\n }),\n createElementVNode(\"span\", _hoisted_2$1, toDisplayString($options.t(\"Raw link {options}\", { options: option.resourceUrl })), 1)\n ])) : option.resourceUrl ? (openBlock(), createBlock(_component_NcSearchResult, {\n key: 1,\n class: \"search-result\",\n entry: option,\n query: $data.searchQuery\n }, null, 8, [\"entry\", \"query\"])) : option.isCustomGroupTitle ? (openBlock(), createElementBlock(\"span\", _hoisted_3, [\n $props.provider.icon_url ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"provider-icon group-name-icon\",\n src: $props.provider.icon_url\n }, null, 8, _hoisted_4)) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_5, [\n createElementVNode(\"strong\", null, toDisplayString(option.name), 1)\n ])\n ])) : option.isMore ? (openBlock(), createElementBlock(\"span\", _hoisted_6, [\n option.isLoading ? (openBlock(), createElementBlock(\"span\", _hoisted_7)) : (openBlock(), createBlock(_component_DotsHorizontalIcon, {\n key: 1,\n class: \"option-simple-icon\",\n size: 20\n })),\n createElementVNode(\"span\", _hoisted_8, toDisplayString($options.t('Load more \"{options}\"', { options: option.name })), 1)\n ])) : createCommentVNode(\"\", true)\n ]),\n \"no-options\": withCtx(() => [\n createTextVNode(toDisplayString($data.noOptionsText), 1)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"placeholder\", \"options\", \"loading\", \"onSearch\", \"onUpdate:modelValue\"]),\n $props.showEmptyContent ? (openBlock(), createBlock(_component_NcEmptyContent, {\n key: 0,\n class: \"smart-picker-search--empty-content\"\n }, {\n icon: withCtx(() => [\n $props.provider.icon_url ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"provider-icon\",\n alt: $data.providerIconAlt,\n src: $props.provider.icon_url\n }, null, 8, _hoisted_9)) : (openBlock(), createBlock(_component_LinkVariantIcon, { key: 1 }))\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ], 2);\n}\nconst NcSearch = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2], [\"__scopeId\", \"data-v-af9d145f\"]]);\nconst MODES = {\n providerList: 1,\n standardLinkInput: 2,\n searchInput: 3,\n customElement: 4\n};\nconst _sfc_main$1 = {\n name: \"NcReferencePicker\",\n components: {\n NcCustomPickerElement,\n NcProviderList,\n NcRawLinkInput,\n NcSearch\n },\n props: {\n /**\n * Provider to select on creation\n * Default: null. Show the provider list\n */\n initialProvider: {\n type: Object,\n default: () => null\n },\n /**\n * Optional width in pixels\n * Default: 100%\n */\n width: {\n type: Number,\n default: null\n },\n /**\n * Focus on the provider list select input on creation\n * Default: true\n */\n focusOnCreate: {\n type: Boolean,\n default: true\n }\n },\n emits: [\n \"cancel\",\n \"cancelRawLink\",\n \"cancelSearch\",\n \"providerSelected\",\n \"submit\"\n ],\n data() {\n return {\n MODES,\n selectedProvider: this.initialProvider\n };\n },\n computed: {\n mode() {\n return this.selectedProvider === null ? MODES.providerList : isCustomPickerElementRegistered(this.selectedProvider.id) ? MODES.customElement : this.selectedProvider.search_providers_ids ? MODES.searchInput : MODES.standardLinkInput;\n },\n pickerWrapperStyle() {\n return {\n width: this.width ? this.width + \"px\" : void 0\n };\n }\n },\n mounted() {\n if (this.focusOnCreate) {\n if (this.initialProvider) {\n setTimeout(() => {\n this.$refs[\"url-input\"]?.focus();\n }, 300);\n } else {\n this.$nextTick(() => {\n this.$refs[\"provider-list\"]?.focus();\n });\n }\n }\n },\n methods: {\n onEscapePressed() {\n if (this.selectedProvider !== null) {\n this.deselectProvider();\n } else {\n this.cancelProviderSelection();\n }\n },\n onProviderSelected(provider) {\n this.selectedProvider = provider;\n this.$emit(\"providerSelected\", provider);\n this.$nextTick(() => {\n this.$refs[\"url-input\"]?.focus();\n });\n },\n cancelCustomElement() {\n this.deselectProvider();\n },\n cancelSearch() {\n this.$emit(\"cancelSearch\", this.selectedProvider?.title);\n this.deselectProvider();\n },\n cancelRawLinkInput() {\n this.$emit(\"cancelRawLink\", this.selectedProvider?.title);\n this.deselectProvider();\n },\n cancelProviderSelection() {\n this.$emit(\"cancel\");\n },\n submitLink(link) {\n if (this.selectedProvider !== null) {\n touchProvider(this.selectedProvider.id);\n }\n this.$emit(\"submit\", link);\n this.deselectProvider();\n },\n deselectProvider() {\n this.selectedProvider = null;\n this.$emit(\"providerSelected\", null);\n setTimeout(() => {\n this.$refs[\"provider-list\"]?.focus();\n }, 300);\n }\n }\n};\nconst _hoisted_1$1 = {\n key: 3,\n class: \"custom-element-wrapper\"\n};\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcProviderList = resolveComponent(\"NcProviderList\");\n const _component_NcRawLinkInput = resolveComponent(\"NcRawLinkInput\");\n const _component_NcSearch = resolveComponent(\"NcSearch\");\n const _component_NcCustomPickerElement = resolveComponent(\"NcCustomPickerElement\");\n return openBlock(), createElementBlock(\"div\", {\n class: \"reference-picker\",\n style: normalizeStyle($options.pickerWrapperStyle),\n tabindex: \"-1\",\n onKeydown: _cache[0] || (_cache[0] = withKeys(withModifiers((...args) => $options.onEscapePressed && $options.onEscapePressed(...args), [\"stop\", \"prevent\"]), [\"esc\"]))\n }, [\n $options.mode === $data.MODES.providerList ? (openBlock(), createBlock(_component_NcProviderList, {\n key: 0,\n ref: \"provider-list\",\n onSelectProvider: $options.onProviderSelected,\n onSubmit: $options.submitLink,\n onCancel: $options.cancelProviderSelection\n }, null, 8, [\"onSelectProvider\", \"onSubmit\", \"onCancel\"])) : $options.mode === $data.MODES.standardLinkInput ? (openBlock(), createBlock(_component_NcRawLinkInput, {\n key: 1,\n ref: \"url-input\",\n provider: $data.selectedProvider,\n onSubmit: $options.submitLink,\n onCancel: $options.cancelRawLinkInput\n }, null, 8, [\"provider\", \"onSubmit\", \"onCancel\"])) : $options.mode === $data.MODES.searchInput ? (openBlock(), createBlock(_component_NcSearch, {\n key: 2,\n ref: \"url-input\",\n provider: $data.selectedProvider,\n onCancel: $options.cancelSearch,\n onSubmit: $options.submitLink\n }, null, 8, [\"provider\", \"onCancel\", \"onSubmit\"])) : $options.mode === $data.MODES.customElement ? (openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n createVNode(_component_NcCustomPickerElement, {\n provider: $data.selectedProvider,\n class: \"custom-element\",\n onSubmit: $options.submitLink,\n onCancel: $options.cancelCustomElement\n }, null, 8, [\"provider\", \"onSubmit\", \"onCancel\"])\n ])) : createCommentVNode(\"\", true)\n ], 36);\n}\nconst NcReferencePicker = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-5e2e9195\"]]);\nregister(t12, t19);\nconst _sfc_main = {\n name: \"NcReferencePickerModal\",\n components: {\n NcReferencePicker,\n NcModal,\n NcButton,\n ArrowLeftIcon,\n CloseIcon: IconClose\n },\n props: {\n /**\n * Provider to select on creation\n * Show the provider list if no initial one is provided\n */\n initialProvider: {\n type: Object,\n default: () => null\n },\n /**\n * Focus on the input item on create\n */\n focusOnCreate: {\n type: Boolean,\n default: true\n },\n /**\n * If true, add the modal content to the Viewer trap elements via the event-bus\n */\n isInsideViewer: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"cancel\",\n \"submit\"\n ],\n data() {\n return {\n show: true,\n selectedProvider: this.initialProvider,\n backButtonTitle: t(\"Back to provider selection\"),\n closeButtonTitle: t(\"Close\"),\n closeButtonLabel: t(\"Close Smart Picker\")\n };\n },\n computed: {\n isProviderSelected() {\n return this.selectedProvider !== null;\n },\n showBackButton() {\n return this.initialProvider === null && this.isProviderSelected;\n },\n modalSize() {\n return this.isProviderSelected && isCustomPickerElementRegistered(this.selectedProvider.id) ? getCustomPickerElementSize(this.selectedProvider.id) ?? \"large\" : \"normal\";\n },\n showModalName() {\n return !this.isProviderSelected || !isCustomPickerElementRegistered(this.selectedProvider.id);\n },\n modalName() {\n return this.isProviderSelected ? this.selectedProvider.title : t(\"Smart Picker\");\n }\n },\n mounted() {\n if (this.isInsideViewer) {\n const elem = this.$refs.modal_content;\n emit(\"viewer:trapElements:changed\", elem);\n }\n },\n methods: {\n onCancel() {\n this.show = false;\n this.$emit(\"cancel\");\n },\n onSubmit(value) {\n this.show = false;\n this.$emit(\"submit\", value);\n },\n onProviderSelect(provider) {\n this.selectedProvider = provider;\n if (provider === null && this.initialProvider !== null) {\n this.onCancel();\n }\n },\n onBackClicked() {\n this.$refs.referencePicker.deselectProvider();\n }\n }\n};\nconst _hoisted_1 = {\n ref: \"modal_content\",\n class: \"reference-picker-modal--content\"\n};\nconst _hoisted_2 = { key: 1 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ArrowLeftIcon = resolveComponent(\"ArrowLeftIcon\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_CloseIcon = resolveComponent(\"CloseIcon\");\n const _component_NcReferencePicker = resolveComponent(\"NcReferencePicker\");\n const _component_NcModal = resolveComponent(\"NcModal\");\n return $data.show ? (openBlock(), createBlock(_component_NcModal, {\n key: 0,\n size: $options.modalSize,\n class: \"reference-picker-modal\",\n onClose: $options.onCancel\n }, {\n default: withCtx(() => [\n createElementVNode(\"div\", _hoisted_1, [\n $options.showBackButton ? (openBlock(), createBlock(_component_NcButton, {\n key: 0,\n \"aria-label\": $data.backButtonTitle,\n title: $data.backButtonTitle,\n class: \"back-button\",\n onClick: $options.onBackClicked\n }, {\n icon: withCtx(() => [\n createVNode(_component_ArrowLeftIcon)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"])) : createCommentVNode(\"\", true),\n createVNode(_component_NcButton, {\n class: \"close-button\",\n \"aria-label\": $data.closeButtonLabel,\n title: $data.closeButtonTitle,\n variant: \"tertiary\",\n onClick: $options.onCancel\n }, {\n icon: withCtx(() => [\n createVNode(_component_CloseIcon)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"]),\n $options.showModalName ? (openBlock(), createElementBlock(\"h2\", _hoisted_2, toDisplayString($options.modalName), 1)) : createCommentVNode(\"\", true),\n createVNode(_component_NcReferencePicker, {\n ref: \"referencePicker\",\n initialProvider: $props.initialProvider,\n focusOnCreate: $props.focusOnCreate,\n onProviderSelected: $options.onProviderSelect,\n onSubmit: $options.onSubmit,\n onCancel: $options.onCancel\n }, null, 8, [\"initialProvider\", \"focusOnCreate\", \"onProviderSelected\", \"onSubmit\", \"onCancel\"])\n ], 512)\n ]),\n _: 1\n }, 8, [\"size\", \"onClose\"])) : createCommentVNode(\"\", true);\n}\nconst NcReferencePickerModal = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-bf0a25ee\"]]);\nasync function getLinkWithPicker(providerId, isInsideViewer) {\n const modalId = \"referencePickerModal\";\n const modalElement = document.createElement(\"div\");\n modalElement.id = modalId;\n document.body.append(modalElement);\n const { promise, reject, resolve } = Promise.withResolvers();\n const initialProvider = providerId && getProvider(providerId) || null;\n const view = createApp(NcReferencePickerModal, {\n initialProvider,\n isInsideViewer,\n onCancel() {\n view.unmount();\n reject(new Error(\"User cancellation\"));\n },\n onSubmit(link) {\n view.unmount();\n resolve(link);\n }\n });\n view.mount(modalElement);\n return promise;\n}\nexport {\n NcReferencePicker as N,\n anyLinkProviderId as a,\n getProvider as b,\n getProviders as c,\n sortProviders as d,\n NcReferencePickerModal as e,\n NcReferenceWidget as f,\n getLinkWithPicker as g,\n NcSearch as h,\n searchProvider as s\n};\n//# sourceMappingURL=referencePickerModal-B4bsiMOy.mjs.map\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n * Whether to use `alt` for `image`s (default: `true`).\n * @property {boolean | null | undefined} [includeHtml=true]\n * Whether to use `value` of HTML (default: `true`).\n */\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the node’s plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} [value]\n * Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized `value`.\n */\nexport function toString(value, options) {\n const settings = options || emptyOptions\n const includeImageAlt =\n typeof settings.includeImageAlt === 'boolean'\n ? settings.includeImageAlt\n : true\n const includeHtml =\n typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true\n\n return one(value, includeImageAlt, includeHtml)\n}\n\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized node.\n */\nfunction one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if ('value' in value) {\n return value.type === 'html' && !includeHtml ? '' : value.value\n }\n\n if (includeImageAlt && 'alt' in value && value.alt) {\n return value.alt\n }\n\n if ('children' in value) {\n return all(value.children, includeImageAlt, includeHtml)\n }\n }\n\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml)\n }\n\n return ''\n}\n\n/**\n * Serialize a list of nodes.\n *\n * @param {Array} values\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized nodes.\n */\nfunction all(values, includeImageAlt, includeHtml) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml)\n }\n\n return result.join('')\n}\n\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n * Thing.\n * @returns {value is Nodes}\n * Whether `value` is a node.\n */\nfunction node(value) {\n return Boolean(value && typeof value === 'object')\n}\n","export const VOID = -1;\nexport const PRIMITIVE = 0;\nexport const ARRAY = 1;\nexport const OBJECT = 2;\nexport const DATE = 3;\nexport const REGEXP = 4;\nexport const MAP = 5;\nexport const SET = 6;\nexport const ERROR = 7;\nexport const BIGINT = 8;\n// export const SYMBOL = 9;\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst env = typeof self === 'object' ? self : globalThis;\n\nconst deserializer = ($, _) => {\n const as = (out, index) => {\n $.set(index, out);\n return out;\n };\n\n const unpair = index => {\n if ($.has(index))\n return $.get(index);\n\n const [type, value] = _[index];\n switch (type) {\n case PRIMITIVE:\n case VOID:\n return as(value, index);\n case ARRAY: {\n const arr = as([], index);\n for (const index of value)\n arr.push(unpair(index));\n return arr;\n }\n case OBJECT: {\n const object = as({}, index);\n for (const [key, index] of value)\n object[unpair(key)] = unpair(index);\n return object;\n }\n case DATE:\n return as(new Date(value), index);\n case REGEXP: {\n const {source, flags} = value;\n return as(new RegExp(source, flags), index);\n }\n case MAP: {\n const map = as(new Map, index);\n for (const [key, index] of value)\n map.set(unpair(key), unpair(index));\n return map;\n }\n case SET: {\n const set = as(new Set, index);\n for (const index of value)\n set.add(unpair(index));\n return set;\n }\n case ERROR: {\n const {name, message} = value;\n return as(new env[name](message), index);\n }\n case BIGINT:\n return as(BigInt(value), index);\n case 'BigInt':\n return as(Object(BigInt(value)), index);\n case 'ArrayBuffer':\n return as(new Uint8Array(value).buffer, value);\n case 'DataView': {\n const { buffer } = new Uint8Array(value);\n return as(new DataView(buffer), value);\n }\n }\n return as(new env[type](value), index);\n };\n\n return unpair;\n};\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns a deserialized value from a serialized array of Records.\n * @param {Record[]} serialized a previously serialized value.\n * @returns {any}\n */\nexport const deserialize = serialized => deserializer(new Map, serialized)(0);\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst EMPTY = '';\n\nconst {toString} = {};\nconst {keys} = Object;\n\nconst typeOf = value => {\n const type = typeof value;\n if (type !== 'object' || !value)\n return [PRIMITIVE, type];\n\n const asString = toString.call(value).slice(8, -1);\n switch (asString) {\n case 'Array':\n return [ARRAY, EMPTY];\n case 'Object':\n return [OBJECT, EMPTY];\n case 'Date':\n return [DATE, EMPTY];\n case 'RegExp':\n return [REGEXP, EMPTY];\n case 'Map':\n return [MAP, EMPTY];\n case 'Set':\n return [SET, EMPTY];\n case 'DataView':\n return [ARRAY, asString];\n }\n\n if (asString.includes('Array'))\n return [ARRAY, asString];\n\n if (asString.includes('Error'))\n return [ERROR, asString];\n\n return [OBJECT, asString];\n};\n\nconst shouldSkip = ([TYPE, type]) => (\n TYPE === PRIMITIVE &&\n (type === 'function' || type === 'symbol')\n);\n\nconst serializer = (strict, json, $, _) => {\n\n const as = (out, value) => {\n const index = _.push(out) - 1;\n $.set(value, index);\n return index;\n };\n\n const pair = value => {\n if ($.has(value))\n return $.get(value);\n\n let [TYPE, type] = typeOf(value);\n switch (TYPE) {\n case PRIMITIVE: {\n let entry = value;\n switch (type) {\n case 'bigint':\n TYPE = BIGINT;\n entry = value.toString();\n break;\n case 'function':\n case 'symbol':\n if (strict)\n throw new TypeError('unable to serialize ' + type);\n entry = null;\n break;\n case 'undefined':\n return as([VOID], value);\n }\n return as([TYPE, entry], value);\n }\n case ARRAY: {\n if (type) {\n let spread = value;\n if (type === 'DataView') {\n spread = new Uint8Array(value.buffer);\n }\n else if (type === 'ArrayBuffer') {\n spread = new Uint8Array(value);\n }\n return as([type, [...spread]], value);\n }\n\n const arr = [];\n const index = as([TYPE, arr], value);\n for (const entry of value)\n arr.push(pair(entry));\n return index;\n }\n case OBJECT: {\n if (type) {\n switch (type) {\n case 'BigInt':\n return as([type, value.toString()], value);\n case 'Boolean':\n case 'Number':\n case 'String':\n return as([type, value.valueOf()], value);\n }\n }\n\n if (json && ('toJSON' in value))\n return pair(value.toJSON());\n\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const key of keys(value)) {\n if (strict || !shouldSkip(typeOf(value[key])))\n entries.push([pair(key), pair(value[key])]);\n }\n return index;\n }\n case DATE:\n return as([TYPE, value.toISOString()], value);\n case REGEXP: {\n const {source, flags} = value;\n return as([TYPE, {source, flags}], value);\n }\n case MAP: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const [key, entry] of value) {\n if (strict || !(shouldSkip(typeOf(key)) || shouldSkip(typeOf(entry))))\n entries.push([pair(key), pair(entry)]);\n }\n return index;\n }\n case SET: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const entry of value) {\n if (strict || !shouldSkip(typeOf(entry)))\n entries.push(pair(entry));\n }\n return index;\n }\n }\n\n const {message} = value;\n return as([TYPE, {name: type, message}], value);\n };\n\n return pair;\n};\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} value a serializable value.\n * @param {{json?: boolean, lossy?: boolean}?} options an object with a `lossy` or `json` property that,\n * if `true`, will not throw errors on incompatible types, and behave more\n * like JSON stringify would behave. Symbol and Function will be discarded.\n * @returns {Record[]}\n */\n export const serialize = (value, {json, lossy} = {}) => {\n const _ = [];\n return serializer(!(json || lossy), !!json, new Map, _)(value), _;\n};\n","import {deserialize} from './deserialize.js';\nimport {serialize} from './serialize.js';\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} any a serializable value.\n * @param {{transfer?: any[], json?: boolean, lossy?: boolean}?} options an object with\n * a transfer option (ignored when polyfilled) and/or non standard fields that\n * fallback to the polyfill if present.\n * @returns {Record[]}\n */\nexport default typeof structuredClone === \"function\" ?\n /* c8 ignore start */\n (any, options) => (\n options && ('json' in options || 'lossy' in options) ?\n deserialize(serialize(any, options)) : structuredClone(any)\n ) :\n (any, options) => deserialize(serialize(any, options));\n /* c8 ignore stop */\n\nexport {deserialize, serialize};\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is an element.\n * @param {unknown} this\n * Context object (`this`) to call `test` with\n * @param {unknown} [element]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * Position of `element` in its parent.\n * @param {Parents | null | undefined} [parent]\n * Parent of `element`.\n * @returns {boolean}\n * Whether this is an element and passes a test.\n *\n * @typedef {Array | TestFunction | string | null | undefined} Test\n * Check for an arbitrary element.\n *\n * * when `string`, checks that the element has that tag name\n * * when `function`, see `TestFunction`\n * * when `Array`, checks if one of the subtests pass\n *\n * @callback TestFunction\n * Check if an element passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Element} element\n * An element.\n * @param {number | undefined} [index]\n * Position of `element` in its parent.\n * @param {Parents | undefined} [parent]\n * Parent of `element`.\n * @returns {boolean | undefined | void}\n * Whether this element passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `element` is an `Element` and whether it passes the given test.\n *\n * @param element\n * Thing to check, typically `element`.\n * @param test\n * Check for a specific element.\n * @param index\n * Position of `element` in its parent.\n * @param parent\n * Parent of `element`.\n * @param context\n * Context object (`this`) to call `test` with.\n * @returns\n * Whether `element` is an `Element` and passes a test.\n * @throws\n * When an incorrect `test`, `index`, or `parent` is given; there is no error\n * thrown when `element` is not a node or not an element.\n */\nexport const isElement =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((element: unknown, test: Condition, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & Predicate) &\n * ((element: unknown, test: Condition, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & {tagName: Condition}) &\n * ((element?: null | undefined) => false) &\n * ((element: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element) &\n * ((element: unknown, test?: Test, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [element]\n * @param {Test | undefined} [test]\n * @param {number | null | undefined} [index]\n * @param {Parents | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (element, test, index, parent, context) {\n const check = convertElement(test)\n\n if (\n index !== null &&\n index !== undefined &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite `index`')\n }\n\n if (\n parent !== null &&\n parent !== undefined &&\n (!parent.type || !parent.children)\n ) {\n throw new Error('Expected valid `parent`')\n }\n\n if (\n (index === null || index === undefined) !==\n (parent === null || parent === undefined)\n ) {\n throw new Error('Expected both `index` and `parent`')\n }\n\n return looksLikeAnElement(element)\n ? check.call(context, element, index, parent)\n : false\n }\n )\n\n/**\n * Generate a check from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * an `element`, `index`, and `parent`.\n *\n * @param test\n * A test for a specific element.\n * @returns\n * A check.\n */\nexport const convertElement =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((test: Condition) => (element: unknown, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & Predicate) &\n * ((test: Condition) => (element: unknown, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & {tagName: Condition}) &\n * ((test?: null | undefined) => (element?: unknown, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test | null | undefined} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return element\n }\n\n if (typeof test === 'string') {\n return tagNameFactory(test)\n }\n\n // Assume array.\n if (typeof test === 'object') {\n return anyFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or array as `test`')\n }\n )\n\n/**\n * Handle multiple tests.\n *\n * @param {Array} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n /** @type {Array} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convertElement(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn a string into a test for an element with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction tagNameFactory(check) {\n return castFactory(tagName)\n\n /**\n * @param {Element} element\n * @returns {boolean}\n */\n function tagName(element) {\n return element.tagName === check\n }\n}\n\n/**\n * Turn a custom test into a test for an element that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeAnElement(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\n/**\n * Make sure something is an element.\n *\n * @param {unknown} element\n * @returns {element is Element}\n */\nfunction element(element) {\n return Boolean(\n element &&\n typeof element === 'object' &&\n 'type' in element &&\n element.type === 'element' &&\n 'tagName' in element &&\n typeof element.tagName === 'string'\n )\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Element}\n */\nfunction looksLikeAnElement(value) {\n return (\n value !== null &&\n typeof value === 'object' &&\n 'type' in value &&\n 'tagName' in value\n )\n}\n","// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1\n// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\n\n// Windows paths like `c:\\`\nconst WINDOWS_PATH_REGEX = /^[a-zA-Z]:\\\\/;\n\nexport default function isAbsoluteUrl(url) {\n\tif (typeof url !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof url}\\``);\n\t}\n\n\tif (WINDOWS_PATH_REGEX.test(url)) {\n\t\treturn false;\n\t}\n\n\treturn ABSOLUTE_URL_REGEX.test(url);\n}\n","/**\n * Parse space-separated tokens to an array of strings.\n *\n * @param {string} value\n * Space-separated tokens.\n * @returns {Array}\n * List of tokens.\n */\nexport function parse(value) {\n const input = String(value || '').trim()\n return input ? input.split(/[ \\t\\n\\r\\f]+/g) : []\n}\n\n/**\n * Serialize an array of strings as space separated-tokens.\n *\n * @param {Array} values\n * List of tokens.\n * @returns {string}\n * Space-separated tokens.\n */\nexport function stringify(values) {\n return values.join(' ').trim()\n}\n","/**\n * @import {Node as UnistNode, Parent as UnistParent} from 'unist'\n * @import {VisitorResult} from 'unist-util-visit-parents'\n */\n\n/**\n * @typedef {Exclude | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n// To do: use types from `unist-util-visit-parents` when it’s released.\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate extends Value\n * ? Predicate\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends ReadonlyArray\n * ? MatchesOne\n * : MatchesOne\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent\n * | InternalAncestor, Max, Increment>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor>} BuildVisitorFromMatch\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Visited\n * Node type.\n * @template {UnistParent} Ancestor\n * Parent type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromMatch<\n * Matches,\n * Extract\n * >\n * )} BuildVisitorFromDescendants\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromDescendants<\n * InclusiveDescendant,\n * Check\n * >\n * )} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n * Node type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} testOrVisitor\n * `unist-util-is`-compatible test (optional, omit to pass a visitor).\n * @param {Visitor | boolean | null | undefined} [visitorOrReverse]\n * Handle each node (when test is omitted, pass `reverse`).\n * @param {boolean | null | undefined} [maybeReverse=false]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n /** @type {boolean | null | undefined} */\n let reverse\n /** @type {Test} */\n let test\n /** @type {Visitor} */\n let visitor\n\n if (\n typeof testOrVisitor === 'function' &&\n typeof visitorOrReverse !== 'function'\n ) {\n test = undefined\n visitor = testOrVisitor\n reverse = visitorOrReverse\n } else {\n // @ts-expect-error: assume the overload with test was given.\n test = testOrVisitor\n // @ts-expect-error: assume the overload with test was given.\n visitor = visitorOrReverse\n reverse = maybeReverse\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {UnistNode} node\n * @param {Array} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n const index = parent ? parent.children.indexOf(node) : undefined\n return visitor(node, index, parent)\n }\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-is-element').Test} Test\n */\n\n/**\n * @callback CreateContent\n * Create a target for the element.\n * @param {Element} element\n * Element to check.\n * @returns {Array | ElementContent | null | undefined}\n * Content to add.\n *\n * @callback CreateProperties\n * Create properties for an element.\n * @param {Element} element\n * Element to check.\n * @returns {Properties | null | undefined}\n * Properties to add.\n *\n * @callback CreateRel\n * Create a `rel` for the element.\n * @param {Element} element\n * Element to check.\n * @returns {Array | string | null | undefined}\n * `rel` to use.\n *\n * @callback CreateTarget\n * Create a `target` for the element.\n * @param {Element} element\n * Element to check.\n * @returns {Target | null | undefined}\n * `target` to use.\n *\n * @typedef Options\n * Configuration.\n * @property {Array | CreateContent | ElementContent | null | undefined} [content]\n * Content to insert at the end of external links (optional); will be\n * inserted in a `` element; useful for improving accessibility by\n * giving users advanced warning when opening a new window.\n * @property {CreateProperties | Properties | null | undefined} [contentProperties]\n * Properties to add to the `span` wrapping `content` (optional).\n * @property {CreateProperties | Properties | null | undefined} [properties]\n * Properties to add to the link itself (optional).\n * @property {Array | null | undefined} [protocols=['http', 'https']]\n * Protocols to check, such as `mailto` or `tel` (default: `['http',\n * 'https']`).\n * @property {Array | CreateRel | string | null | undefined} [rel=['nofollow']]\n * Link types to hint about the referenced documents (default:\n * `['nofollow']`); pass an empty array (`[]`) to not set `rel`s on links;\n * when using a `target`, add `noopener` and `noreferrer` to avoid\n * exploitation of the `window.opener` API.\n * @property {CreateTarget | Target | null | undefined} [target]\n * How to display referenced documents; the default (nothing) is to not set\n * `target`s on links.\n * @property {Test | null | undefined} [test]\n * Extra test to define which external link elements are modified (optional);\n * any test that can be given to `hast-util-is-element` is supported.\n *\n * @typedef {'_blank' | '_parent' | '_self' | '_top'} Target\n * Target.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {convertElement} from 'hast-util-is-element'\nimport isAbsoluteUrl from 'is-absolute-url'\nimport {parse} from 'space-separated-tokens'\nimport {visit} from 'unist-util-visit'\n\nconst defaultProtocols = ['http', 'https']\nconst defaultRel = ['nofollow']\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Automatically add `rel` (and `target`?) to external links.\n *\n * ###### Notes\n *\n * You should [likely not configure `target`][css-tricks].\n *\n * You should at least set `rel` to `['nofollow']`.\n * When using a `target`, add `noopener` and `noreferrer` to avoid exploitation\n * of the `window.opener` API.\n *\n * When using a `target`, you should set `content` to adhere to accessibility\n * guidelines by giving users advanced warning when opening a new window.\n *\n * [css-tricks]: https://css-tricks.com/use-target_blank/\n *\n * @param {Readonly | null | undefined} [options]\n * Configuration (optional).\n * @returns\n * Transform.\n */\nexport default function rehypeExternalLinks(options) {\n const settings = options || emptyOptions\n const protocols = settings.protocols || defaultProtocols\n const is = convertElement(settings.test)\n\n /**\n * Transform.\n *\n * @param {Root} tree\n * Tree.\n * @returns {undefined}\n * Nothing.\n */\n return function (tree) {\n visit(tree, 'element', function (node, index, parent) {\n if (\n node.tagName === 'a' &&\n typeof node.properties.href === 'string' &&\n is(node, index, parent)\n ) {\n const url = node.properties.href\n\n if (\n isAbsoluteUrl(url)\n ? protocols.includes(url.slice(0, url.indexOf(':')))\n : url.startsWith('//')\n ) {\n const contentRaw = createIfNeeded(settings.content, node)\n const content =\n contentRaw && !Array.isArray(contentRaw) ? [contentRaw] : contentRaw\n const relRaw = createIfNeeded(settings.rel, node) || defaultRel\n const rel = typeof relRaw === 'string' ? parse(relRaw) : relRaw\n const target = createIfNeeded(settings.target, node)\n\n const properties = createIfNeeded(settings.properties, node)\n\n if (properties) {\n Object.assign(node.properties, structuredClone(properties))\n }\n\n if (rel.length > 0) {\n node.properties.rel = [...rel]\n }\n\n if (target) {\n node.properties.target = target\n }\n\n if (content) {\n const properties =\n createIfNeeded(settings.contentProperties, node) || {}\n\n node.children.push({\n type: 'element',\n tagName: 'span',\n properties: structuredClone(properties),\n children: structuredClone(content)\n })\n }\n }\n }\n })\n }\n}\n\n/**\n * Call a function to get a return value or use the value.\n *\n * @template T\n * Type of value.\n * @param {T} value\n * Value.\n * @param {Element} element\n * Element.\n * @returns {T extends Function ? ReturnType : T}\n * Result.\n */\nfunction createIfNeeded(value, element) {\n return typeof value === 'function' ? value(element) : value\n}\n","/**\n * @typedef Options\n * Configuration for `stringify`.\n * @property {boolean} [padLeft=true]\n * Whether to pad a space before a token.\n * @property {boolean} [padRight=false]\n * Whether to pad a space after a token.\n */\n\n/**\n * @typedef {Options} StringifyOptions\n * Please use `StringifyOptions` instead.\n */\n\n/**\n * Parse comma-separated tokens to an array.\n *\n * @param {string} value\n * Comma-separated tokens.\n * @returns {Array}\n * List of tokens.\n */\nexport function parse(value) {\n /** @type {Array} */\n const tokens = []\n const input = String(value || '')\n let index = input.indexOf(',')\n let start = 0\n /** @type {boolean} */\n let end = false\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n const token = input.slice(start, index).trim()\n\n if (token || !end) {\n tokens.push(token)\n }\n\n start = index + 1\n index = input.indexOf(',', start)\n }\n\n return tokens\n}\n\n/**\n * Serialize an array of strings or numbers to comma-separated tokens.\n *\n * @param {Array} values\n * List of tokens.\n * @param {Options} [options]\n * Configuration for `stringify` (optional).\n * @returns {string}\n * Comma-separated tokens.\n */\nexport function stringify(values, options) {\n const settings = options || {}\n\n // Ensure the last empty entry is seen.\n const input = values[values.length - 1] === '' ? [...values, ''] : values\n\n return input\n .join(\n (settings.padRight ? ' ' : '') +\n ',' +\n (settings.padLeft === false ? '' : ' ')\n )\n .trim()\n}\n","/**\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [jsx=false]\n * Support JSX identifiers (default: `false`).\n */\n\nconst startRe = /[$_\\p{ID_Start}]/u\nconst contRe = /[$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst contReJsx = /[-$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst nameRe = /^[$_\\p{ID_Start}][$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\nconst nameReJsx = /^[$_\\p{ID_Start}][-$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Checks if the given code point can start an identifier.\n *\n * @param {number | undefined} code\n * Code point to check.\n * @returns {boolean}\n * Whether `code` can start an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function start(code) {\n return code ? startRe.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given code point can continue an identifier.\n *\n * @param {number | undefined} code\n * Code point to check.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {boolean}\n * Whether `code` can continue an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function cont(code, options) {\n const settings = options || emptyOptions\n const re = settings.jsx ? contReJsx : contRe\n return code ? re.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given value is a valid identifier name.\n *\n * @param {string} name\n * Identifier to check.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {boolean}\n * Whether `name` can be an identifier.\n */\nexport function name(name, options) {\n const settings = options || emptyOptions\n const re = settings.jsx ? nameReJsx : nameRe\n return re.test(name)\n}\n","/**\n * @typedef {import('hast').Nodes} Nodes\n */\n\n// HTML whitespace expression.\n// See .\nconst re = /[ \\t\\n\\f\\r]/g\n\n/**\n * Check if the given value is *inter-element whitespace*.\n *\n * @param {Nodes | string} thing\n * Thing to check (`Node` or `string`).\n * @returns {boolean}\n * Whether the `value` is inter-element whitespace (`boolean`): consisting of\n * zero or more of space, tab (`\\t`), line feed (`\\n`), carriage return\n * (`\\r`), or form feed (`\\f`); if a node is passed it must be a `Text` node,\n * whose `value` field is checked.\n */\nexport function whitespace(thing) {\n return typeof thing === 'object'\n ? thing.type === 'text'\n ? empty(thing.value)\n : false\n : empty(thing)\n}\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nfunction empty(value) {\n return value.replace(re, '') === ''\n}\n","/**\n * @import {Schema as SchemaType, Space} from 'property-information'\n */\n\n/** @type {SchemaType} */\nexport class Schema {\n /**\n * @param {SchemaType['property']} property\n * Property.\n * @param {SchemaType['normal']} normal\n * Normal.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Schema.\n */\n constructor(property, normal, space) {\n this.normal = normal\n this.property = property\n\n if (space) {\n this.space = space\n }\n }\n}\n\nSchema.prototype.normal = {}\nSchema.prototype.property = {}\nSchema.prototype.space = undefined\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {ReadonlyArray} definitions\n * Definitions.\n * @param {Space | undefined} [space]\n * Space.\n * @returns {Schema}\n * Schema.\n */\nexport function merge(definitions, space) {\n /** @type {Record} */\n const property = {}\n /** @type {Record} */\n const normal = {}\n\n for (const definition of definitions) {\n Object.assign(property, definition.property)\n Object.assign(normal, definition.normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * Get the cleaned case insensitive form of an attribute or property.\n *\n * @param {string} value\n * An attribute-like or property-like name.\n * @returns {string}\n * Value that can be used to look up the properly cased property on a\n * `Schema`.\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","/**\n * @import {Info as InfoType} from 'property-information'\n */\n\n/** @type {InfoType} */\nexport class Info {\n /**\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @returns\n * Info.\n */\n constructor(property, attribute) {\n this.attribute = attribute\n this.property = property\n }\n}\n\nInfo.prototype.attribute = ''\nInfo.prototype.booleanish = false\nInfo.prototype.boolean = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.defined = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.number = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.property = ''\nInfo.prototype.spaceSeparated = false\nInfo.prototype.space = undefined\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","/**\n * @import {Space} from 'property-information'\n */\n\nimport {Info} from './info.js'\nimport * as types from './types.js'\n\nconst checks = /** @type {ReadonlyArray} */ (\n Object.keys(types)\n)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @param {number | null | undefined} [mask]\n * Mask.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Info.\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @template {keyof DefinedInfo} Key\n * Key type.\n * @param {DefinedInfo} values\n * Info.\n * @param {Key} key\n * Key.\n * @param {DefinedInfo[Key]} value\n * Value.\n * @returns {undefined}\n * Nothing.\n */\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value\n }\n}\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\n/**\n * @typedef Definition\n * Definition of a schema.\n * @property {Record | undefined} [attributes]\n * Normalzed names to special attribute case.\n * @property {ReadonlyArray | undefined} [mustUseProperty]\n * Normalized names that must be set as properties.\n * @property {Record} properties\n * Property names to their types.\n * @property {Space | undefined} [space]\n * Space.\n * @property {Transform} transform\n * Transform a property name.\n */\n\n/**\n * @callback Transform\n * Transform.\n * @param {Record} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Attribute.\n */\n\nimport {normalize} from '../normalize.js'\nimport {DefinedInfo} from './defined-info.js'\nimport {Schema} from './schema.js'\n\n/**\n * @param {Definition} definition\n * Definition.\n * @returns {Schema}\n * Schema.\n */\nexport function create(definition) {\n /** @type {Record} */\n const properties = {}\n /** @type {Record} */\n const normals = {}\n\n for (const [property, value] of Object.entries(definition.properties)) {\n const info = new DefinedInfo(\n property,\n definition.transform(definition.attributes || {}, property),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(property)\n ) {\n info.mustUseProperty = true\n }\n\n properties[property] = info\n\n normals[normalize(property)] = property\n normals[normalize(info.attribute)] = property\n }\n\n return new Schema(properties, normals, definition.space)\n}\n","import {create} from './util/create.js'\nimport {booleanish, number, spaceSeparated} from './util/types.js'\n\nexport const aria = create({\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n },\n transform(_, property) {\n return property === 'role'\n ? property\n : 'aria-' + property.slice(4).toLowerCase()\n }\n})\n","/**\n * @param {Record} attributes\n * Attributes.\n * @param {string} attribute\n * Attribute.\n * @returns {string}\n * Transformed attribute.\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Transformed property.\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n booleanish,\n boolean,\n commaSeparated,\n number,\n overloadedBoolean,\n spaceSeparated\n} from './util/types.js'\n\nexport const html = create({\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: overloadedBoolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootClonable: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n writingSuggestions: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // ``. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // ``. List of URIs to archives\n axis: null, // `
    ` and ``. Use `scope` on ``\n background: null, // ``. Use CSS `background-image` instead\n bgColor: null, // `` and table elements. Use CSS `background-color` instead\n border: number, // ``. Use CSS `border-width` instead,\n borderColor: null, // `
    `. Use CSS `border-color` instead,\n bottomMargin: number, // ``\n cellPadding: null, // `
    `\n cellSpacing: null, // `
    `\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // ``\n clear: null, // `
    `. Use CSS `clear` instead\n code: null, // ``\n codeBase: null, // ``\n codeType: null, // ``\n color: null, // `` and `
    `. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // ``\n event: null, // `\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code);\n buffer = '';\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In raw continuation, after ` | \n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase();\n if (htmlRawNames.includes(name)) {\n effects.consume(code);\n return continuationClose;\n }\n return continuation(code);\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n // Always the case.\n effects.consume(code);\n buffer += String.fromCharCode(code);\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code);\n return continuationClose;\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"htmlFlowData\");\n return continuationAfter(code);\n }\n effects.consume(code);\n return continuationClose;\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit(\"htmlFlow\");\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start;\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > |
    \n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return effects.attempt(blankLine, ok, nok);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiAlphanumeric, asciiAlpha, markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable | undefined} */\n let marker;\n /** @type {number} */\n let index;\n /** @type {State} */\n let returnState;\n return start;\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"htmlText\");\n effects.enter(\"htmlTextData\");\n effects.consume(code);\n return open;\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a c\n * ^\n * > | a c\n * ^\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === 47) {\n effects.consume(code);\n return tagCloseStart;\n }\n if (code === 63) {\n effects.consume(code);\n return instruction;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagOpen;\n }\n return nok(code);\n }\n\n /**\n * After ` | a c\n * ^\n * > | a c\n * ^\n * > | a &<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n return commentOpenInside;\n }\n if (code === 91) {\n effects.consume(code);\n index = 0;\n return cdataOpenInside;\n }\n if (asciiAlpha(code)) {\n effects.consume(code);\n return declaration;\n }\n return nok(code);\n }\n\n /**\n * In a comment, after ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return nok(code);\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 45) {\n effects.consume(code);\n return commentClose;\n }\n if (markdownLineEnding(code)) {\n returnState = comment;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return comment;\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return comment(code);\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62 ? end(code) : code === 45 ? commentClose(code) : comment(code);\n }\n\n /**\n * After ` | a &<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = \"CDATA[\";\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n return index === value.length ? cdata : cdataOpenInside;\n }\n return nok(code);\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a &<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataClose;\n }\n if (markdownLineEnding(code)) {\n returnState = cdata;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return cdata;\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code);\n }\n if (markdownLineEnding(code)) {\n returnState = declaration;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return declaration;\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 63) {\n effects.consume(code);\n return instructionClose;\n }\n if (markdownLineEnding(code)) {\n returnState = instruction;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return instruction;\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagClose;\n }\n return nok(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagClose;\n }\n return tagCloseBetween(code);\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagCloseBetween;\n }\n return end(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpen;\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code);\n return end;\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenBetween;\n }\n return end(code);\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n return tagOpenAttributeNameAfter(code);\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeNameAfter;\n }\n return tagOpenBetween(code);\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n if (code === 34 || code === 39) {\n effects.consume(code);\n marker = code;\n return tagOpenAttributeValueQuoted;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code);\n marker = undefined;\n return tagOpenAttributeValueQuotedAfter;\n }\n if (code === null) {\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueQuoted;\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 96) {\n return nok(code);\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code);\n effects.exit(\"htmlTextData\");\n effects.exit(\"htmlText\");\n return ok;\n }\n return nok(code);\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a \n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit(\"htmlTextData\");\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineEndingAfter;\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code) ? factorySpace(effects, lineEndingAfterPrefix, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : lineEndingAfterPrefix(code);\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter(\"htmlTextData\");\n return returnState(code);\n }\n}","/**\n * @import {\n * Construct,\n * Event,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n resolveAll: resolveAllLabelEnd,\n resolveTo: resolveToLabelEnd,\n tokenize: tokenizeLabelEnd\n};\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n};\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n};\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n};\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1;\n /** @type {Array} */\n const newEvents = [];\n while (++index < events.length) {\n const token = events[index][1];\n newEvents.push(events[index]);\n if (token.type === \"labelImage\" || token.type === \"labelLink\" || token.type === \"labelEnd\") {\n // Remove the marker.\n const offset = token.type === \"labelImage\" ? 4 : 2;\n token.type = \"data\";\n index += offset;\n }\n }\n\n // If the events are equal, we don't have to copy newEvents to events\n if (events.length !== newEvents.length) {\n splice(events, 0, events.length, newEvents);\n }\n return events;\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length;\n let offset = 0;\n /** @type {Token} */\n let token;\n /** @type {number | undefined} */\n let open;\n /** @type {number | undefined} */\n let close;\n /** @type {Array} */\n let media;\n\n // Find an opening.\n while (index--) {\n token = events[index][1];\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (token.type === \"link\" || token.type === \"labelLink\" && token._inactive) {\n break;\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === \"labelLink\") {\n token._inactive = true;\n }\n } else if (close) {\n if (events[index][0] === 'enter' && (token.type === \"labelImage\" || token.type === \"labelLink\") && !token._balanced) {\n open = index;\n if (token.type !== \"labelLink\") {\n offset = 2;\n break;\n }\n }\n } else if (token.type === \"labelEnd\") {\n close = index;\n }\n }\n const group = {\n type: events[open][1].type === \"labelLink\" ? \"link\" : \"image\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[events.length - 1][1].end\n }\n };\n const label = {\n type: \"label\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[close][1].end\n }\n };\n const text = {\n type: \"labelText\",\n start: {\n ...events[open + offset + 2][1].end\n },\n end: {\n ...events[close - 2][1].start\n }\n };\n media = [['enter', group, context], ['enter', label, context]];\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3));\n\n // Text open.\n media = push(media, [['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n media = push(media, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + offset + 4, close - 3), context));\n\n // Text close, marker close, label close.\n media = push(media, [['exit', text, context], events[close - 2], events[close - 1], ['exit', label, context]]);\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1));\n\n // Media close.\n media = push(media, [['exit', group, context]]);\n splice(events, open, events.length, media);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n /** @type {Token} */\n let labelStart;\n /** @type {boolean} */\n let defined;\n\n // Find an opening.\n while (index--) {\n if ((self.events[index][1].type === \"labelImage\" || self.events[index][1].type === \"labelLink\") && !self.events[index][1]._balanced) {\n labelStart = self.events[index][1];\n break;\n }\n }\n return start;\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code);\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code);\n }\n defined = self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })));\n effects.enter(\"labelEnd\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelEnd\");\n return after;\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(resourceConstruct, labelEndOk, defined ? labelEndOk : labelEndNok)(code);\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(referenceFullConstruct, labelEndOk, defined ? referenceNotFull : labelEndNok)(code);\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code);\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(referenceCollapsedConstruct, labelEndOk, labelEndNok)(code);\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code);\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true;\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart;\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter(\"resource\");\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n return resourceBefore;\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceOpen)(code) : resourceOpen(code);\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code);\n }\n return factoryDestination(effects, resourceDestinationAfter, resourceDestinationMissing, \"resourceDestination\", \"resourceDestinationLiteral\", \"resourceDestinationLiteralMarker\", \"resourceDestinationRaw\", \"resourceDestinationString\", 32)(code);\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceBetween)(code) : resourceEnd(code);\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code);\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(effects, resourceTitleAfter, nok, \"resourceTitle\", \"resourceTitleMarker\", \"resourceTitleString\")(code);\n }\n return resourceEnd(code);\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceEnd)(code) : resourceEnd(code);\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n effects.exit(\"resource\");\n return ok;\n }\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this;\n return referenceFull;\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(self, effects, referenceFullAfter, referenceFullMissing, \"reference\", \"referenceMarker\", \"referenceString\")(code);\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1))) ? ok(code) : nok(code);\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart;\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter(\"reference\");\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n return referenceCollapsedOpen;\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n effects.exit(\"reference\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartImage\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelImage\");\n effects.enter(\"labelImageMarker\");\n effects.consume(code);\n effects.exit(\"labelImageMarker\");\n return open;\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelImage\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n *

    !^a

    \n *

    !^a

    \n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartLink\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelLink\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelLink\");\n return after;\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start;\n\n /** @type {State} */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, ok, \"linePrefix\");\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0;\n /** @type {NonNullable} */\n let marker;\n return start;\n\n /**\n * Start of thematic break.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"thematicBreak\");\n // To do: parse indent like `markdown-rs`.\n return before(code);\n }\n\n /**\n * After optional whitespace, at marker.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n marker = code;\n return atBreak(code);\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.enter(\"thematicBreakSequence\");\n return sequence(code);\n }\n if (size >= 3 && (code === null || markdownLineEnding(code))) {\n effects.exit(\"thematicBreak\");\n return ok(code);\n }\n return nok(code);\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function sequence(code) {\n if (code === marker) {\n effects.consume(code);\n size++;\n return sequence;\n }\n effects.exit(\"thematicBreakSequence\");\n return markdownSpace(code) ? factorySpace(effects, atBreak, \"whitespace\")(code) : atBreak(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * Exiter,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiDigit, markdownSpace } from 'micromark-util-character';\nimport { blankLine } from './blank-line.js';\nimport { thematicBreak } from './thematic-break.js';\n\n/** @type {Construct} */\nexport const list = {\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd,\n name: 'list',\n tokenize: tokenizeListStart\n};\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n partial: true,\n tokenize: tokenizeListItemPrefixWhitespace\n};\n\n/** @type {Construct} */\nconst indentConstruct = {\n partial: true,\n tokenize: tokenizeIndent\n};\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this;\n const tail = self.events[self.events.length - 1];\n let initialSize = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n let size = 0;\n return start;\n\n /** @type {State} */\n function start(code) {\n const kind = self.containerState.type || (code === 42 || code === 43 || code === 45 ? \"listUnordered\" : \"listOrdered\");\n if (kind === \"listUnordered\" ? !self.containerState.marker || code === self.containerState.marker : asciiDigit(code)) {\n if (!self.containerState.type) {\n self.containerState.type = kind;\n effects.enter(kind, {\n _container: true\n });\n }\n if (kind === \"listUnordered\") {\n effects.enter(\"listItemPrefix\");\n return code === 42 || code === 45 ? effects.check(thematicBreak, nok, atMarker)(code) : atMarker(code);\n }\n if (!self.interrupt || code === 49) {\n effects.enter(\"listItemPrefix\");\n effects.enter(\"listItemValue\");\n return inside(code);\n }\n }\n return nok(code);\n }\n\n /** @type {State} */\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code);\n return inside;\n }\n if ((!self.interrupt || size < 2) && (self.containerState.marker ? code === self.containerState.marker : code === 41 || code === 46)) {\n effects.exit(\"listItemValue\");\n return atMarker(code);\n }\n return nok(code);\n }\n\n /**\n * @type {State}\n **/\n function atMarker(code) {\n effects.enter(\"listItemMarker\");\n effects.consume(code);\n effects.exit(\"listItemMarker\");\n self.containerState.marker = self.containerState.marker || code;\n return effects.check(blankLine,\n // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank, effects.attempt(listItemPrefixWhitespaceConstruct, endOfPrefix, otherPrefix));\n }\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.initialBlankLine = true;\n initialSize++;\n return endOfPrefix(code);\n }\n\n /** @type {State} */\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter(\"listItemPrefixWhitespace\");\n effects.consume(code);\n effects.exit(\"listItemPrefixWhitespace\");\n return endOfPrefix;\n }\n return nok(code);\n }\n\n /** @type {State} */\n function endOfPrefix(code) {\n self.containerState.size = initialSize + self.sliceSerialize(effects.exit(\"listItemPrefix\"), true).length;\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this;\n self.containerState._closeFlow = undefined;\n return effects.check(blankLine, onBlank, notBlank);\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.furtherBlankLines = self.containerState.furtherBlankLines || self.containerState.initialBlankLine;\n\n // We have a blank line.\n // Still, try to consume at most the items size.\n return factorySpace(effects, ok, \"listItemIndent\", self.containerState.size + 1)(code);\n }\n\n /** @type {State} */\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return notInCurrentItem(code);\n }\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code);\n }\n\n /** @type {State} */\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true;\n // As we’re closing flow, we’re no longer interrupting.\n self.interrupt = undefined;\n // Always populated by defaults.\n\n return factorySpace(effects, effects.attempt(list, ok, nok), \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this;\n return factorySpace(effects, afterPrefix, \"listItemIndent\", self.containerState.size + 1);\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"listItemIndent\" && tail[2].sliceSerialize(tail[1], true).length === self.containerState.size ? ok(code) : nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Exiter}\n */\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type);\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this;\n\n // Always populated by defaults.\n\n return factorySpace(effects, afterPrefix, \"listItemPrefixWhitespace\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4 + 1);\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return !markdownSpace(code) && tail && tail[1].type === \"listItemPrefixWhitespace\" ? ok(code) : nok(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n resolveTo: resolveToSetextUnderline,\n tokenize: tokenizeSetextUnderline\n};\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n // To do: resolve like `markdown-rs`.\n let index = events.length;\n /** @type {number | undefined} */\n let content;\n /** @type {number | undefined} */\n let text;\n /** @type {number | undefined} */\n let definition;\n\n // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === \"content\") {\n content = index;\n break;\n }\n if (events[index][1].type === \"paragraph\") {\n text = index;\n }\n }\n // Exit\n else {\n if (events[index][1].type === \"content\") {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1);\n }\n if (!definition && events[index][1].type === \"definition\") {\n definition = index;\n }\n }\n }\n const heading = {\n type: \"setextHeading\",\n start: {\n ...events[content][1].start\n },\n end: {\n ...events[events.length - 1][1].end\n }\n };\n\n // Change the paragraph to setext heading text.\n events[text][1].type = \"setextHeadingText\";\n\n // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n if (definition) {\n events.splice(text, 0, ['enter', heading, context]);\n events.splice(definition + 1, 0, ['exit', events[content][1], context]);\n events[content][1].end = {\n ...events[definition][1].end\n };\n } else {\n events[content][1] = heading;\n }\n\n // Add the heading exit at the end.\n events.push(['exit', heading, context]);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable} */\n let marker;\n return start;\n\n /**\n * At start of heading (setext) underline.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n let index = self.events.length;\n /** @type {boolean | undefined} */\n let paragraph;\n // Find an opening.\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (self.events[index][1].type !== \"lineEnding\" && self.events[index][1].type !== \"linePrefix\" && self.events[index][1].type !== \"content\") {\n paragraph = self.events[index][1].type === \"paragraph\";\n break;\n }\n }\n\n // To do: handle lazy/pierce like `markdown-rs`.\n // To do: parse indent like `markdown-rs`.\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter(\"setextHeadingLine\");\n marker = code;\n return before(code);\n }\n return nok(code);\n }\n\n /**\n * After optional whitespace, at `-` or `=`.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter(\"setextHeadingLineSequence\");\n return inside(code);\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n effects.exit(\"setextHeadingLineSequence\");\n return markdownSpace(code) ? factorySpace(effects, after, \"lineSuffix\")(code) : after(code);\n }\n\n /**\n * After sequence, after optional whitespace.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"setextHeadingLine\");\n return ok(code);\n }\n return nok(code);\n }\n}","/**\n * @import {\n * InitialConstruct,\n * Initializer,\n * State,\n * TokenizeContext\n * } from 'micromark-util-types'\n */\n\nimport { blankLine, content } from 'micromark-core-commonmark';\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n};\n\n/**\n * @this {TokenizeContext}\n * Self.\n * @type {Initializer}\n * Initializer.\n */\nfunction initializeFlow(effects) {\n const self = this;\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine, atBlankEnding,\n // Try to parse initial flow (essentially, only code).\n effects.attempt(this.parser.constructs.flowInitial, afterConstruct, factorySpace(effects, effects.attempt(this.parser.constructs.flow, afterConstruct, effects.attempt(content, afterConstruct)), \"linePrefix\")));\n return initial;\n\n /** @type {State} */\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"lineEndingBlank\");\n effects.consume(code);\n effects.exit(\"lineEndingBlank\");\n self.currentConstruct = undefined;\n return initial;\n }\n\n /** @type {State} */\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n self.currentConstruct = undefined;\n return initial;\n }\n}","/**\n * @import {\n * Code,\n * InitialConstruct,\n * Initializer,\n * Resolver,\n * State,\n * TokenizeContext\n * } from 'micromark-util-types'\n */\n\nexport const resolver = {\n resolveAll: createResolver()\n};\nexport const string = initializeFactory('string');\nexport const text = initializeFactory('text');\n\n/**\n * @param {'string' | 'text'} field\n * Field.\n * @returns {InitialConstruct}\n * Construct.\n */\nfunction initializeFactory(field) {\n return {\n resolveAll: createResolver(field === 'text' ? resolveAllLineSuffixes : undefined),\n tokenize: initializeText\n };\n\n /**\n * @this {TokenizeContext}\n * Context.\n * @type {Initializer}\n */\n function initializeText(effects) {\n const self = this;\n const constructs = this.parser.constructs[field];\n const text = effects.attempt(constructs, start, notText);\n return start;\n\n /** @type {State} */\n function start(code) {\n return atBreak(code) ? text(code) : notText(code);\n }\n\n /** @type {State} */\n function notText(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"data\");\n effects.consume(code);\n return data;\n }\n\n /** @type {State} */\n function data(code) {\n if (atBreak(code)) {\n effects.exit(\"data\");\n return text(code);\n }\n\n // Data.\n effects.consume(code);\n return data;\n }\n\n /**\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether the code is a break.\n */\n function atBreak(code) {\n if (code === null) {\n return true;\n }\n const list = constructs[code];\n let index = -1;\n if (list) {\n // Always populated by defaults.\n\n while (++index < list.length) {\n const item = list[index];\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true;\n }\n }\n }\n return false;\n }\n }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n * Resolver.\n * @returns {Resolver}\n * Resolver.\n */\nfunction createResolver(extraResolver) {\n return resolveAllText;\n\n /** @type {Resolver} */\n function resolveAllText(events, context) {\n let index = -1;\n /** @type {number | undefined} */\n let enter;\n\n // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === \"data\") {\n enter = index;\n index++;\n }\n } else if (!events[index] || events[index][1].type !== \"data\") {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return extraResolver ? extraResolver(events, context) : events;\n }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0; // Skip first.\n\n while (++eventIndex <= events.length) {\n if ((eventIndex === events.length || events[eventIndex][1].type === \"lineEnding\") && events[eventIndex - 1][1].type === \"data\") {\n const data = events[eventIndex - 1][1];\n const chunks = context.sliceStream(data);\n let index = chunks.length;\n let bufferIndex = -1;\n let size = 0;\n /** @type {boolean | undefined} */\n let tabs;\n while (index--) {\n const chunk = chunks[index];\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length;\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++;\n bufferIndex--;\n }\n if (bufferIndex) break;\n bufferIndex = -1;\n }\n // Number\n else if (chunk === -2) {\n tabs = true;\n size++;\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++;\n break;\n }\n }\n\n // Allow final trailing whitespace.\n if (context._contentTypeTextTrailing && eventIndex === events.length) {\n size = 0;\n }\n if (size) {\n const token = {\n type: eventIndex === events.length || tabs || size < 2 ? \"lineSuffix\" : \"hardBreakTrailing\",\n start: {\n _bufferIndex: index ? bufferIndex : data.start._bufferIndex + bufferIndex,\n _index: data.start._index + index,\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size\n },\n end: {\n ...data.end\n }\n };\n data.end = {\n ...token.start\n };\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token);\n } else {\n events.splice(eventIndex, 0, ['enter', token, context], ['exit', token, context]);\n eventIndex += 2;\n }\n }\n eventIndex++;\n }\n }\n return events;\n}","/**\n * @import {Extension} from 'micromark-util-types'\n */\n\nimport { attention, autolink, blockQuote, characterEscape, characterReference, codeFenced, codeIndented, codeText, definition, hardBreakEscape, headingAtx, htmlFlow, htmlText, labelEnd, labelStartImage, labelStartLink, lineEnding, list, setextUnderline, thematicBreak } from 'micromark-core-commonmark';\nimport { resolver as resolveText } from './initialize/text.js';\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n};\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n};\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n};\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n};\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n};\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n};\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n};\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n};\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n};","/**\n * @import {\n * Chunk,\n * Code,\n * ConstructRecord,\n * Construct,\n * Effects,\n * InitialConstruct,\n * ParseContext,\n * Point,\n * State,\n * TokenizeContext,\n * Token\n * } from 'micromark-util-types'\n */\n\n/**\n * @callback Restore\n * Restore the state.\n * @returns {undefined}\n * Nothing.\n *\n * @typedef Info\n * Info.\n * @property {Restore} restore\n * Restore.\n * @property {number} from\n * From.\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * Construct.\n * @param {Info} info\n * Info.\n * @returns {undefined}\n * Nothing.\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * Parser.\n * @param {InitialConstruct} initialize\n * Construct.\n * @param {Omit | undefined} [from]\n * Point (optional).\n * @returns {TokenizeContext}\n * Context.\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = {\n _bufferIndex: -1,\n _index: 0,\n line: from && from.line || 1,\n column: from && from.column || 1,\n offset: from && from.offset || 0\n };\n /** @type {Record} */\n const columnStart = {};\n /** @type {Array} */\n const resolveAllConstructs = [];\n /** @type {Array} */\n let chunks = [];\n /** @type {Array} */\n let stack = [];\n /** @type {boolean | undefined} */\n let consumed = true;\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n consume,\n enter,\n exit,\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n };\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n code: null,\n containerState: {},\n defineSkip,\n events: [],\n now,\n parser,\n previous: null,\n sliceSerialize,\n sliceStream,\n write\n };\n\n /**\n * The state function.\n *\n * @type {State | undefined}\n */\n let state = initialize.tokenize.call(context, effects);\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode;\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize);\n }\n return context;\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice);\n main();\n\n // Exit if we’re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return [];\n }\n addResult(initialize, 0);\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context);\n return context.events;\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs);\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token);\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n } = point;\n return {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n };\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column;\n accountForPotentialSkip();\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {undefined}\n * Nothing.\n */\n function main() {\n /** @type {number} */\n let chunkIndex;\n while (point._index < chunks.length) {\n const chunk = chunks[point._index];\n\n // If we’re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index;\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0;\n }\n while (point._index === chunkIndex && point._bufferIndex < chunk.length) {\n go(chunk.charCodeAt(point._bufferIndex));\n }\n } else {\n go(chunk);\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * Code.\n * @returns {undefined}\n * Nothing.\n */\n function go(code) {\n consumed = undefined;\n expectedCode = code;\n state = state(code);\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++;\n point.column = 1;\n point.offset += code === -3 ? 2 : 1;\n accountForPotentialSkip();\n } else if (code !== -1) {\n point.column++;\n point.offset++;\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++;\n } else {\n point._bufferIndex++;\n\n // At end of string chunk.\n if (point._bufferIndex ===\n // Points w/ non-negative `_bufferIndex` reference\n // strings.\n /** @type {string} */\n chunks[point._index].length) {\n point._bufferIndex = -1;\n point._index++;\n }\n }\n\n // Expose the previous character.\n context.previous = code;\n\n // Mark as consumed.\n consumed = true;\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {};\n token.type = type;\n token.start = now();\n context.events.push(['enter', token, context]);\n stack.push(token);\n return token;\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop();\n token.end = now();\n context.events.push(['exit', token, context]);\n return token;\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from);\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore();\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * Callback.\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n * Fields.\n */\n function constructFactory(onreturn, fields) {\n return hook;\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array | ConstructRecord | Construct} constructs\n * Constructs.\n * @param {State} returnState\n * State.\n * @param {State | undefined} [bogusState]\n * State.\n * @returns {State}\n * State.\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {ReadonlyArray} */\n let listOfConstructs;\n /** @type {number} */\n let constructIndex;\n /** @type {Construct} */\n let currentConstruct;\n /** @type {Info} */\n let info;\n return Array.isArray(constructs) ? /* c8 ignore next 1 */\n handleListOfConstructs(constructs) : 'tokenize' in constructs ?\n // Looks like a construct.\n handleListOfConstructs([(/** @type {Construct} */constructs)]) : handleMapOfConstructs(constructs);\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleMapOfConstructs(map) {\n return start;\n\n /** @type {State} */\n function start(code) {\n const left = code !== null && map[code];\n const all = code !== null && map.null;\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(left) ? left : left ? [left] : []), ...(Array.isArray(all) ? all : all ? [all] : [])];\n return handleListOfConstructs(list)(code);\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {ReadonlyArray} list\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list;\n constructIndex = 0;\n if (list.length === 0) {\n return bogusState;\n }\n return handleConstruct(list[constructIndex]);\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * Construct.\n * @returns {State}\n * State.\n */\n function handleConstruct(construct) {\n return start;\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store();\n currentConstruct = construct;\n if (!construct.partial) {\n context.currentConstruct = construct;\n }\n\n // Always populated by defaults.\n\n if (construct.name && context.parser.constructs.disable.null.includes(construct.name)) {\n return nok(code);\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context, effects, ok, nok)(code);\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true;\n onreturn(currentConstruct, info);\n return returnState;\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true;\n info.restore();\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex]);\n }\n return bogusState;\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * Construct.\n * @param {number} from\n * From.\n * @returns {undefined}\n * Nothing.\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct);\n }\n if (construct.resolve) {\n splice(context.events, from, context.events.length - from, construct.resolve(context.events.slice(from), context));\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context);\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n * Info.\n */\n function store() {\n const startPoint = now();\n const startPrevious = context.previous;\n const startCurrentConstruct = context.currentConstruct;\n const startEventsIndex = context.events.length;\n const startStack = Array.from(stack);\n return {\n from: startEventsIndex,\n restore\n };\n\n /**\n * Restore state.\n *\n * @returns {undefined}\n * Nothing.\n */\n function restore() {\n point = startPoint;\n context.previous = startPrevious;\n context.currentConstruct = startCurrentConstruct;\n context.events.length = startEventsIndex;\n stack = startStack;\n accountForPotentialSkip();\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {undefined}\n * Nothing.\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line];\n point.offset += columnStart[point.line] - 1;\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {ReadonlyArray} chunks\n * Chunks.\n * @param {Pick} token\n * Token.\n * @returns {Array}\n * Chunks.\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index;\n const startBufferIndex = token.start._bufferIndex;\n const endIndex = token.end._index;\n const endBufferIndex = token.end._bufferIndex;\n /** @type {Array} */\n let view;\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)];\n } else {\n view = chunks.slice(startIndex, endIndex);\n if (startBufferIndex > -1) {\n const head = view[0];\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex);\n /* c8 ignore next 4 -- used to be used, no longer */\n } else {\n view.shift();\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex));\n }\n }\n return view;\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {ReadonlyArray} chunks\n * Chunks.\n * @param {boolean | undefined} [expandTabs=false]\n * Whether to expand tabs (default: `false`).\n * @returns {string}\n * Result.\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1;\n /** @type {Array} */\n const result = [];\n /** @type {boolean | undefined} */\n let atTab;\n while (++index < chunks.length) {\n const chunk = chunks[index];\n /** @type {string} */\n let value;\n if (typeof chunk === 'string') {\n value = chunk;\n } else switch (chunk) {\n case -5:\n {\n value = \"\\r\";\n break;\n }\n case -4:\n {\n value = \"\\n\";\n break;\n }\n case -3:\n {\n value = \"\\r\" + \"\\n\";\n break;\n }\n case -2:\n {\n value = expandTabs ? \" \" : \"\\t\";\n break;\n }\n case -1:\n {\n if (!expandTabs && atTab) continue;\n value = \" \";\n break;\n }\n default:\n {\n // Currently only replacement character.\n value = String.fromCharCode(chunk);\n }\n }\n atTab = chunk === -2;\n result.push(value);\n }\n return result.join('');\n}","/**\n * @import {\n * Create,\n * FullNormalizedExtension,\n * InitialConstruct,\n * ParseContext,\n * ParseOptions\n * } from 'micromark-util-types'\n */\n\nimport { combineExtensions } from 'micromark-util-combine-extensions';\nimport { content } from './initialize/content.js';\nimport { document } from './initialize/document.js';\nimport { flow } from './initialize/flow.js';\nimport { string, text } from './initialize/text.js';\nimport * as defaultConstructs from './constructs.js';\nimport { createTokenizer } from './create-tokenizer.js';\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * Configuration (optional).\n * @returns {ParseContext}\n * Parser.\n */\nexport function parse(options) {\n const settings = options || {};\n const constructs = /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])]);\n\n /** @type {ParseContext} */\n const parser = {\n constructs,\n content: create(content),\n defined: [],\n document: create(document),\n flow: create(flow),\n lazy: {},\n string: create(string),\n text: create(text)\n };\n return parser;\n\n /**\n * @param {InitialConstruct} initial\n * Construct to start with.\n * @returns {Create}\n * Create a tokenizer.\n */\n function create(initial) {\n return creator;\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from);\n }\n }\n}","/**\n * @import {Event} from 'micromark-util-types'\n */\n\nimport { subtokenize } from 'micromark-util-subtokenize';\n\n/**\n * @param {Array} events\n * Events.\n * @returns {Array}\n * Events.\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events;\n}","/**\n * @import {Chunk, Code, Encoding, Value} from 'micromark-util-types'\n */\n\n/**\n * @callback Preprocessor\n * Preprocess a value.\n * @param {Value} value\n * Value.\n * @param {Encoding | null | undefined} [encoding]\n * Encoding when `value` is a typed array (optional).\n * @param {boolean | null | undefined} [end=false]\n * Whether this is the last chunk (default: `false`).\n * @returns {Array}\n * Chunks.\n */\n\nconst search = /[\\0\\t\\n\\r]/g;\n\n/**\n * @returns {Preprocessor}\n * Preprocess a value.\n */\nexport function preprocess() {\n let column = 1;\n let buffer = '';\n /** @type {boolean | undefined} */\n let start = true;\n /** @type {boolean | undefined} */\n let atCarriageReturn;\n return preprocessor;\n\n /** @type {Preprocessor} */\n // eslint-disable-next-line complexity\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\n const chunks = [];\n /** @type {RegExpMatchArray | null} */\n let match;\n /** @type {number} */\n let next;\n /** @type {number} */\n let startPosition;\n /** @type {number} */\n let endPosition;\n /** @type {Code} */\n let code;\n value = buffer + (typeof value === 'string' ? value.toString() : new TextDecoder(encoding || undefined).decode(value));\n startPosition = 0;\n buffer = '';\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++;\n }\n start = undefined;\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition;\n match = search.exec(value);\n endPosition = match && match.index !== undefined ? match.index : value.length;\n code = value.charCodeAt(endPosition);\n if (!match) {\n buffer = value.slice(startPosition);\n break;\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3);\n atCarriageReturn = undefined;\n } else {\n if (atCarriageReturn) {\n chunks.push(-5);\n atCarriageReturn = undefined;\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition));\n column += endPosition - startPosition;\n }\n switch (code) {\n case 0:\n {\n chunks.push(65533);\n column++;\n break;\n }\n case 9:\n {\n next = Math.ceil(column / 4) * 4;\n chunks.push(-2);\n while (column++ < next) chunks.push(-1);\n break;\n }\n case 10:\n {\n chunks.push(-4);\n column = 1;\n break;\n }\n default:\n {\n atCarriageReturn = true;\n column = 1;\n }\n }\n }\n startPosition = endPosition + 1;\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5);\n if (buffer) chunks.push(buffer);\n chunks.push(null);\n }\n return chunks;\n }\n}","import { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nconst characterEscapeOrReference = /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi;\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode);\n}\n\n/**\n * @param {string} $0\n * Match.\n * @param {string} $1\n * Character escape.\n * @param {string} $2\n * Character reference.\n * @returns {string}\n * Decoded value\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1;\n }\n\n // Reference.\n const head = $2.charCodeAt(0);\n if (head === 35) {\n const head = $2.charCodeAt(1);\n const hex = head === 120 || head === 88;\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10);\n }\n return decodeNamedCharacterReference($2) || $0;\n}","/**\n * @import {\n * Break,\n * Blockquote,\n * Code,\n * Definition,\n * Emphasis,\n * Heading,\n * Html,\n * Image,\n * InlineCode,\n * Link,\n * ListItem,\n * List,\n * Nodes,\n * Paragraph,\n * PhrasingContent,\n * ReferenceType,\n * Root,\n * Strong,\n * Text,\n * ThematicBreak\n * } from 'mdast'\n * @import {\n * Encoding,\n * Event,\n * Token,\n * Value\n * } from 'micromark-util-types'\n * @import {Point} from 'unist'\n * @import {\n * CompileContext,\n * CompileData,\n * Config,\n * Extension,\n * Handle,\n * OnEnterError,\n * Options\n * } from './types.js'\n */\n\nimport { toString } from 'mdast-util-to-string';\nimport { parse, postprocess, preprocess } from 'micromark';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nimport { decodeString } from 'micromark-util-decode-string';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { stringifyPosition } from 'unist-util-stringify-position';\nconst own = {}.hasOwnProperty;\n\n/**\n * Turn markdown into a syntax tree.\n *\n * @overload\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @overload\n * @param {Value} value\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @param {Value} value\n * Markdown to parse.\n * @param {Encoding | Options | null | undefined} [encoding]\n * Character encoding for when `value` is `Buffer`.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {Root}\n * mdast tree.\n */\nexport function fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding;\n encoding = undefined;\n }\n return compiler(options)(postprocess(parse(options).document().write(preprocess()(value, encoding, true))));\n}\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n characterReference: onexitcharacterreference,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n };\n configure(config, (options || {}).mdastExtensions || []);\n\n /** @type {CompileData} */\n const data = {};\n return compile;\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n };\n /** @type {Omit} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n data\n };\n /** @type {Array} */\n const listStack = [];\n let index = -1;\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (events[index][1].type === \"listOrdered\" || events[index][1].type === \"listUnordered\") {\n if (events[index][0] === 'enter') {\n listStack.push(index);\n } else {\n const tail = listStack.pop();\n index = prepareList(events, tail, index);\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n const handler = config[events[index][0]];\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(Object.assign({\n sliceSerialize: events[index][2].sliceSerialize\n }, context), events[index][1]);\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1];\n const handler = tail[1] || defaultOnError;\n handler.call(context, undefined, tail[0]);\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(events.length > 0 ? events[0][1].start : {\n line: 1,\n column: 1,\n offset: 0\n }),\n end: point(events.length > 0 ? events[events.length - 2][1].end : {\n line: 1,\n column: 1,\n offset: 0\n })\n };\n\n // Call transforms.\n index = -1;\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree;\n }\n return tree;\n }\n\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1;\n let containerBalance = -1;\n let listSpread = false;\n /** @type {Token | undefined} */\n let listItem;\n /** @type {number | undefined} */\n let lineIndex;\n /** @type {number | undefined} */\n let firstBlankLineIndex;\n /** @type {boolean | undefined} */\n let atMarker;\n while (++index <= length) {\n const event = events[index];\n switch (event[1].type) {\n case \"listUnordered\":\n case \"listOrdered\":\n case \"blockQuote\":\n {\n if (event[0] === 'enter') {\n containerBalance++;\n } else {\n containerBalance--;\n }\n atMarker = undefined;\n break;\n }\n case \"lineEndingBlank\":\n {\n if (event[0] === 'enter') {\n if (listItem && !atMarker && !containerBalance && !firstBlankLineIndex) {\n firstBlankLineIndex = index;\n }\n atMarker = undefined;\n }\n break;\n }\n case \"linePrefix\":\n case \"listItemValue\":\n case \"listItemMarker\":\n case \"listItemPrefix\":\n case \"listItemPrefixWhitespace\":\n {\n // Empty.\n\n break;\n }\n default:\n {\n atMarker = undefined;\n }\n }\n if (!containerBalance && event[0] === 'enter' && event[1].type === \"listItemPrefix\" || containerBalance === -1 && event[0] === 'exit' && (event[1].type === \"listUnordered\" || event[1].type === \"listOrdered\")) {\n if (listItem) {\n let tailIndex = index;\n lineIndex = undefined;\n while (tailIndex--) {\n const tailEvent = events[tailIndex];\n if (tailEvent[1].type === \"lineEnding\" || tailEvent[1].type === \"lineEndingBlank\") {\n if (tailEvent[0] === 'exit') continue;\n if (lineIndex) {\n events[lineIndex][1].type = \"lineEndingBlank\";\n listSpread = true;\n }\n tailEvent[1].type = \"lineEnding\";\n lineIndex = tailIndex;\n } else if (tailEvent[1].type === \"linePrefix\" || tailEvent[1].type === \"blockQuotePrefix\" || tailEvent[1].type === \"blockQuotePrefixWhitespace\" || tailEvent[1].type === \"blockQuoteMarker\" || tailEvent[1].type === \"listItemIndent\") {\n // Empty\n } else {\n break;\n }\n }\n if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) {\n listItem._spread = true;\n }\n\n // Fix position.\n listItem.end = Object.assign({}, lineIndex ? events[lineIndex][1].start : event[1].end);\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]]);\n index++;\n length++;\n }\n\n // Create a new list item.\n if (event[1].type === \"listItemPrefix\") {\n /** @type {Token} */\n const item = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n };\n listItem = item;\n events.splice(index, 0, ['enter', item, event[2]]);\n index++;\n length++;\n firstBlankLineIndex = undefined;\n atMarker = true;\n }\n }\n }\n events[start][1]._spread = listSpread;\n return length;\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Nodes} create\n * Create a node.\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function open(token) {\n enter.call(this, create(token), token);\n if (and) and.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['buffer']}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n });\n }\n\n /**\n * @type {CompileContext['enter']}\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1];\n /** @type {Array} */\n const siblings = parent.children;\n siblings.push(node);\n this.stack.push(node);\n this.tokenStack.push([token, errorHandler || undefined]);\n node.position = {\n start: point(token.start),\n // @ts-expect-error: `end` will be patched later.\n end: undefined\n };\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function close(token) {\n if (and) and.call(this, token);\n exit.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['exit']}\n */\n function exit(token, onExitError) {\n const node = this.stack.pop();\n const open = this.tokenStack.pop();\n if (!open) {\n throw new Error('Cannot close `' + token.type + '` (' + stringifyPosition({\n start: token.start,\n end: token.end\n }) + '): it’s not open');\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0]);\n } else {\n const handler = open[1] || defaultOnError;\n handler.call(this, token, open[0]);\n }\n }\n node.position.end = point(token.end);\n }\n\n /**\n * @type {CompileContext['resume']}\n */\n function resume() {\n return toString(this.stack.pop());\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n this.data.expectingFirstListItemValue = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (this.data.expectingFirstListItemValue) {\n const ancestor = this.stack[this.stack.length - 2];\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10);\n this.data.expectingFirstListItemValue = undefined;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.lang = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.meta = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (this.data.flowCodeInside) return;\n this.buffer();\n this.data.flowCodeInside = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '');\n this.data.flowCodeInside = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '');\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.label = label;\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1];\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length;\n node.depth = depth;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n this.data.setextHeadingSlurpLineEnding = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1];\n node.depth = this.sliceSerialize(token).codePointAt(0) === 61 ? 1 : 2;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n this.data.setextHeadingSlurpLineEnding = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1];\n /** @type {Array} */\n const siblings = node.children;\n let tail = siblings[siblings.length - 1];\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text();\n tail.position = {\n start: point(token.start),\n // @ts-expect-error: we’ll add `end` later.\n end: undefined\n };\n siblings.push(tail);\n }\n this.stack.push(tail);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop();\n tail.value += this.sliceSerialize(token);\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1];\n // If we’re at a hard break, include the line ending in there.\n if (this.data.atHardBreak) {\n const tail = context.children[context.children.length - 1];\n tail.position.end = point(token.end);\n this.data.atHardBreak = undefined;\n return;\n }\n if (!this.data.setextHeadingSlurpLineEnding && config.canContainEols.includes(context.type)) {\n onenterdata.call(this, token);\n onexitdata.call(this, token);\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n this.data.atHardBreak = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token);\n const ancestor = this.stack[this.stack.length - 2];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string);\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1];\n const value = this.resume();\n const node = this.stack[this.stack.length - 1];\n // Assume a reference.\n this.data.inReference = true;\n if (node.type === 'link') {\n /** @type {Array} */\n const children = fragment.children;\n node.children = children;\n } else {\n node.alt = value;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n this.data.inReference = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n this.data.referenceType = 'collapsed';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label;\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n this.data.referenceType = 'full';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n this.data.characterReferenceType = token.type;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token);\n const type = this.data.characterReferenceType;\n /** @type {string} */\n let value;\n if (type) {\n value = decodeNumericCharacterReference(data, type === \"characterReferenceMarkerNumeric\" ? 10 : 16);\n this.data.characterReferenceType = undefined;\n } else {\n const result = decodeNamedCharacterReference(data);\n value = result;\n }\n const tail = this.stack[this.stack.length - 1];\n tail.value += value;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreference(token) {\n const tail = this.stack.pop();\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = this.sliceSerialize(token);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = 'mailto:' + this.sliceSerialize(token);\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n };\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n };\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n };\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n };\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n };\n }\n\n /** @returns {Heading} */\n function heading() {\n return {\n type: 'heading',\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: []\n };\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n };\n }\n\n /** @returns {Html} */\n function html() {\n return {\n type: 'html',\n value: ''\n };\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n };\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n };\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n };\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n };\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n };\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n };\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n };\n}\n\n/**\n * @param {Config} combined\n * @param {Array | Extension>} extensions\n * @returns {undefined}\n */\nfunction configure(combined, extensions) {\n let index = -1;\n while (++index < extensions.length) {\n const value = extensions[index];\n if (Array.isArray(value)) {\n configure(combined, value);\n } else {\n extension(combined, value);\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {undefined}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key;\n for (key in extension) {\n if (own.call(extension, key)) {\n switch (key) {\n case 'canContainEols':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'transforms':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'enter':\n case 'exit':\n {\n const right = extension[key];\n if (right) {\n Object.assign(combined[key], right);\n }\n break;\n }\n // No default\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error('Cannot close `' + left.type + '` (' + stringifyPosition({\n start: left.start,\n end: left.end\n }) + '): a different token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is open');\n } else {\n throw new Error('Cannot close document, a token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is still open');\n }\n}","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} FromMarkdownOptions\n * @typedef {import('unified').Parser} Parser\n * @typedef {import('unified').Processor} Processor\n */\n\n/**\n * @typedef {Omit} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * Aadd support for parsing from markdown.\n *\n * @param {Readonly | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkParse(options) {\n /** @type {Processor} */\n // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n const self = this\n\n self.parser = parser\n\n /**\n * @type {Parser}\n */\n function parser(doc) {\n return fromMarkdown(doc, {\n ...self.data('settings'),\n ...options,\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n }\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Blockquote} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element, Text} from 'hast'\n * @import {Break} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Code} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n /** @type {Properties} */\n const properties = {}\n // Someone can write `js python ruby`.\n const language = node.lang ? node.lang.split(/\\s+/) : []\n\n // GH/CM still drop the non-first languages.\n if (language.length > 0) {\n properties.className = ['language-' + language[0]]\n }\n\n // Create ``.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `
    `.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Delete} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Delete} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strikethrough(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'del',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Emphasis} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Emphasis} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function emphasis(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'em',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {FootnoteReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {FootnoteReference} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnoteReference(state, node) {\n  const clobberPrefix =\n    typeof state.options.clobberPrefix === 'string'\n      ? state.options.clobberPrefix\n      : 'user-content-'\n  const id = String(node.identifier).toUpperCase()\n  const safeId = normalizeUri(id.toLowerCase())\n  const index = state.footnoteOrder.indexOf(id)\n  /** @type {number} */\n  let counter\n\n  let reuseCounter = state.footnoteCounts.get(id)\n\n  if (reuseCounter === undefined) {\n    reuseCounter = 0\n    state.footnoteOrder.push(id)\n    counter = state.footnoteOrder.length\n  } else {\n    counter = index + 1\n  }\n\n  reuseCounter += 1\n  state.footnoteCounts.set(id, reuseCounter)\n\n  /** @type {Element} */\n  const link = {\n    type: 'element',\n    tagName: 'a',\n    properties: {\n      href: '#' + clobberPrefix + 'fn-' + safeId,\n      id:\n        clobberPrefix +\n        'fnref-' +\n        safeId +\n        (reuseCounter > 1 ? '-' + reuseCounter : ''),\n      dataFootnoteRef: true,\n      ariaDescribedBy: ['footnote-label']\n    },\n    children: [{type: 'text', value: String(counter)}]\n  }\n  state.patch(node, link)\n\n  /** @type {Element} */\n  const sup = {\n    type: 'element',\n    tagName: 'sup',\n    properties: {},\n    children: [link]\n  }\n  state.patch(node, sup)\n  return state.applyData(node, sup)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Heading} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Heading} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function heading(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'h' + node.depth,\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Html} from 'mdast'\n * @import {State} from '../state.js'\n * @import {Raw} from '../../index.js'\n */\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n *   Info passed around.\n * @param {Html} node\n *   mdast node.\n * @returns {Element | Raw | undefined}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.options.allowDangerousHtml) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  return undefined\n}\n","/**\n * @import {ElementContent} from 'hast'\n * @import {Reference, Nodes} from 'mdast'\n * @import {State} from './state.js'\n */\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Extract} node\n *   Reference node (image, link).\n * @returns {Array}\n *   hast content.\n */\nexport function revert(state, node) {\n  const subtype = node.referenceType\n  let suffix = ']'\n\n  if (subtype === 'collapsed') {\n    suffix += '[]'\n  } else if (subtype === 'full') {\n    suffix += '[' + (node.label || node.identifier) + ']'\n  }\n\n  if (node.type === 'imageReference') {\n    return [{type: 'text', value: '![' + node.alt + suffix}]\n  }\n\n  const contents = state.all(node)\n  const head = contents[0]\n\n  if (head && head.type === 'text') {\n    head.value = '[' + head.value\n  } else {\n    contents.unshift({type: 'text', value: '['})\n  }\n\n  const tail = contents[contents.length - 1]\n\n  if (tail && tail.type === 'text') {\n    tail.value += suffix\n  } else {\n    contents.push({type: 'text', value: suffix})\n  }\n\n  return contents\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {ImageReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ImageReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(definition.url || ''), alt: node.alt}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Image} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Image} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function image(state, node) {\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, Text} from 'hast'\n * @import {InlineCode} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {InlineCode} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function inlineCode(state, node) {\n  /** @type {Text} */\n  const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n  state.patch(node, text)\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'code',\n    properties: {},\n    children: [text]\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {LinkReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {LinkReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(definition.url || '')}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Link} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Link} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function link(state, node) {\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(node.url)}\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {ListItem, Parents} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ListItem} node\n *   mdast node.\n * @param {Parents | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function listItem(state, node, parent) {\n  const results = state.all(node)\n  const loose = parent ? listLoose(parent) : listItemLoose(node)\n  /** @type {Properties} */\n  const properties = {}\n  /** @type {Array} */\n  const children = []\n\n  if (typeof node.checked === 'boolean') {\n    const head = results[0]\n    /** @type {Element} */\n    let paragraph\n\n    if (head && head.type === 'element' && head.tagName === 'p') {\n      paragraph = head\n    } else {\n      paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n      results.unshift(paragraph)\n    }\n\n    if (paragraph.children.length > 0) {\n      paragraph.children.unshift({type: 'text', value: ' '})\n    }\n\n    paragraph.children.unshift({\n      type: 'element',\n      tagName: 'input',\n      properties: {type: 'checkbox', checked: node.checked, disabled: true},\n      children: []\n    })\n\n    // According to github-markdown-css, this class hides bullet.\n    // See: .\n    properties.className = ['task-list-item']\n  }\n\n  let index = -1\n\n  while (++index < results.length) {\n    const child = results[index]\n\n    // Add eols before nodes, except if this is a loose, first paragraph.\n    if (\n      loose ||\n      index !== 0 ||\n      child.type !== 'element' ||\n      child.tagName !== 'p'\n    ) {\n      children.push({type: 'text', value: '\\n'})\n    }\n\n    if (child.type === 'element' && child.tagName === 'p' && !loose) {\n      children.push(...child.children)\n    } else {\n      children.push(child)\n    }\n  }\n\n  const tail = results[results.length - 1]\n\n  // Add a final eol.\n  if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n    children.push({type: 'text', value: '\\n'})\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'li', properties, children}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n  let loose = false\n  if (node.type === 'list') {\n    loose = node.spread || false\n    const children = node.children\n    let index = -1\n\n    while (!loose && ++index < children.length) {\n      loose = listItemLoose(children[index])\n    }\n  }\n\n  return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n  const spread = node.spread\n\n  return spread === null || spread === undefined\n    ? node.children.length > 1\n    : spread\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {List} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {List} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function list(state, node) {\n  /** @type {Properties} */\n  const properties = {}\n  const results = state.all(node)\n  let index = -1\n\n  if (typeof node.start === 'number' && node.start !== 1) {\n    properties.start = node.start\n  }\n\n  // Like GitHub, add a class for custom styling.\n  while (++index < results.length) {\n    const child = results[index]\n\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\n      properties.className = ['contains-task-list']\n      break\n    }\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: node.ordered ? 'ol' : 'ul',\n    properties,\n    children: state.wrap(results, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Paragraph} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Paragraph} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function paragraph(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'p',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Parents as HastParents, Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastRoot} node\n *   mdast node.\n * @returns {HastParents}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Strong} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Strong} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strong(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'strong',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Table} from 'mdast'\n * @import {Element} from 'hast'\n * @import {State} from '../state.js'\n */\n\nimport {pointEnd, pointStart} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Table} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function table(state, node) {\n  const rows = state.all(node)\n  const firstRow = rows.shift()\n  /** @type {Array} */\n  const tableContent = []\n\n  if (firstRow) {\n    /** @type {Element} */\n    const head = {\n      type: 'element',\n      tagName: 'thead',\n      properties: {},\n      children: state.wrap([firstRow], true)\n    }\n    state.patch(node.children[0], head)\n    tableContent.push(head)\n  }\n\n  if (rows.length > 0) {\n    /** @type {Element} */\n    const body = {\n      type: 'element',\n      tagName: 'tbody',\n      properties: {},\n      children: state.wrap(rows, true)\n    }\n\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start && end) body.position = {start, end}\n    tableContent.push(body)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'table',\n    properties: {},\n    children: state.wrap(tableContent, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, ElementContent, Properties} from 'hast'\n * @import {Parents, TableRow} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableRow} node\n *   mdast node.\n * @param {Parents | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function tableRow(state, node, parent) {\n  const siblings = parent ? parent.children : undefined\n  // Generate a body row when without parent.\n  const rowIndex = siblings ? siblings.indexOf(node) : 1\n  const tagName = rowIndex === 0 ? 'th' : 'td'\n  // To do: option to use `style`?\n  const align = parent && parent.type === 'table' ? parent.align : undefined\n  const length = align ? align.length : node.children.length\n  let cellIndex = -1\n  /** @type {Array} */\n  const cells = []\n\n  while (++cellIndex < length) {\n    // Note: can also be undefined.\n    const cell = node.children[cellIndex]\n    /** @type {Properties} */\n    const properties = {}\n    const alignValue = align ? align[cellIndex] : undefined\n\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(cell, result)\n    }\n\n    cells.push(result)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'tr',\n    properties: {},\n    children: state.wrap(cells, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {TableCell} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableCell} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function tableCell(state, node) {\n  // Note: this function is normally not called: see `table-row` for how rows\n  // and their cells are compiled.\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'td', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n *   Value to trim.\n * @returns {string}\n *   Trimmed value.\n */\nexport function trimLines(value) {\n  const source = String(value)\n  const search = /\\r?\\n|\\r/g\n  let match = search.exec(source)\n  let last = 0\n  /** @type {Array} */\n  const lines = []\n\n  while (match) {\n    lines.push(\n      trimLine(source.slice(last, match.index), last > 0, true),\n      match[0]\n    )\n\n    last = match.index + match[0].length\n    match = search.exec(source)\n  }\n\n  lines.push(trimLine(source.slice(last), last > 0, false))\n\n  return lines.join('')\n}\n\n/**\n * @param {string} value\n *   Line to trim.\n * @param {boolean} start\n *   Whether to trim the start of the line.\n * @param {boolean} end\n *   Whether to trim the end of the line.\n * @returns {string}\n *   Trimmed line.\n */\nfunction trimLine(value, start, end) {\n  let startIndex = 0\n  let endIndex = value.length\n\n  if (start) {\n    let code = value.codePointAt(startIndex)\n\n    while (code === tab || code === space) {\n      startIndex++\n      code = value.codePointAt(startIndex)\n    }\n  }\n\n  if (end) {\n    let code = value.codePointAt(endIndex - 1)\n\n    while (code === tab || code === space) {\n      endIndex--\n      code = value.codePointAt(endIndex - 1)\n    }\n  }\n\n  return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","/**\n * @import {Element as HastElement, Text as HastText} from 'hast'\n * @import {Text as MdastText} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastText} node\n *   mdast node.\n * @returns {HastElement | HastText}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {ThematicBreak} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ThematicBreak} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function thematicBreak(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'hr',\n    properties: {},\n    children: []\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Handlers} from '../state.js'\n */\n\nimport {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n *\n * @satisfies {Handlers}\n */\nexport const handlers = {\n  blockquote,\n  break: hardBreak,\n  code,\n  delete: strikethrough,\n  emphasis,\n  footnoteReference,\n  heading,\n  html,\n  imageReference,\n  image,\n  inlineCode,\n  linkReference,\n  link,\n  listItem,\n  list,\n  paragraph,\n  // @ts-expect-error: root is different, but hard to type.\n  root,\n  strong,\n  table,\n  tableCell,\n  tableRow,\n  text,\n  thematicBreak,\n  toml: ignore,\n  yaml: ignore,\n  definition: ignore,\n  footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n  return undefined\n}\n","/**\n * @import {ElementContent, Element} from 'hast'\n * @import {State} from './state.js'\n */\n\n/**\n * @callback FootnoteBackContentTemplate\n *   Generate content for the backreference dynamically.\n *\n *   For the following markdown:\n *\n *   ```markdown\n *   Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n *   [^remark]: things about remark\n *   [^micromark]: things about micromark\n *   ```\n *\n *   This function will be called with:\n *\n *   *  `0` and `0` for the backreference from `things about micromark` to\n *      `alpha`, as it is the first used definition, and the first call to it\n *   *  `0` and `1` for the backreference from `things about micromark` to\n *      `bravo`, as it is the first used definition, and the second call to it\n *   *  `1` and `0` for the backreference from `things about remark` to\n *      `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {Array | ElementContent | string}\n *   Content for the backreference when linking back from definitions to their\n *   reference.\n *\n * @callback FootnoteBackLabelTemplate\n *   Generate a back label dynamically.\n *\n *   For the following markdown:\n *\n *   ```markdown\n *   Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n *   [^remark]: things about remark\n *   [^micromark]: things about micromark\n *   ```\n *\n *   This function will be called with:\n *\n *   *  `0` and `0` for the backreference from `things about micromark` to\n *      `alpha`, as it is the first used definition, and the first call to it\n *   *  `0` and `1` for the backreference from `things about micromark` to\n *      `bravo`, as it is the first used definition, and the second call to it\n *   *  `1` and `0` for the backreference from `things about remark` to\n *      `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {string}\n *   Back label to use when linking back from definitions to their reference.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {Array}\n *   Content.\n */\nexport function defaultFootnoteBackContent(_, rereferenceIndex) {\n  /** @type {Array} */\n  const result = [{type: 'text', value: '↩'}]\n\n  if (rereferenceIndex > 1) {\n    result.push({\n      type: 'element',\n      tagName: 'sup',\n      properties: {},\n      children: [{type: 'text', value: String(rereferenceIndex)}]\n    })\n  }\n\n  return result\n}\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {string}\n *   Label.\n */\nexport function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n  return (\n    'Back to reference ' +\n    (referenceIndex + 1) +\n    (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n  )\n}\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n *   Info passed around.\n * @returns {Element | undefined}\n *   `section` element or `undefined`.\n */\n// eslint-disable-next-line complexity\nexport function footer(state) {\n  const clobberPrefix =\n    typeof state.options.clobberPrefix === 'string'\n      ? state.options.clobberPrefix\n      : 'user-content-'\n  const footnoteBackContent =\n    state.options.footnoteBackContent || defaultFootnoteBackContent\n  const footnoteBackLabel =\n    state.options.footnoteBackLabel || defaultFootnoteBackLabel\n  const footnoteLabel = state.options.footnoteLabel || 'Footnotes'\n  const footnoteLabelTagName = state.options.footnoteLabelTagName || 'h2'\n  const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n    className: ['sr-only']\n  }\n  /** @type {Array} */\n  const listItems = []\n  let referenceIndex = -1\n\n  while (++referenceIndex < state.footnoteOrder.length) {\n    const definition = state.footnoteById.get(\n      state.footnoteOrder[referenceIndex]\n    )\n\n    if (!definition) {\n      continue\n    }\n\n    const content = state.all(definition)\n    const id = String(definition.identifier).toUpperCase()\n    const safeId = normalizeUri(id.toLowerCase())\n    let rereferenceIndex = 0\n    /** @type {Array} */\n    const backReferences = []\n    const counts = state.footnoteCounts.get(id)\n\n    // eslint-disable-next-line no-unmodified-loop-condition\n    while (counts !== undefined && ++rereferenceIndex <= counts) {\n      if (backReferences.length > 0) {\n        backReferences.push({type: 'text', value: ' '})\n      }\n\n      let children =\n        typeof footnoteBackContent === 'string'\n          ? footnoteBackContent\n          : footnoteBackContent(referenceIndex, rereferenceIndex)\n\n      if (typeof children === 'string') {\n        children = {type: 'text', value: children}\n      }\n\n      backReferences.push({\n        type: 'element',\n        tagName: 'a',\n        properties: {\n          href:\n            '#' +\n            clobberPrefix +\n            'fnref-' +\n            safeId +\n            (rereferenceIndex > 1 ? '-' + rereferenceIndex : ''),\n          dataFootnoteBackref: '',\n          ariaLabel:\n            typeof footnoteBackLabel === 'string'\n              ? footnoteBackLabel\n              : footnoteBackLabel(referenceIndex, rereferenceIndex),\n          className: ['data-footnote-backref']\n        },\n        children: Array.isArray(children) ? children : [children]\n      })\n    }\n\n    const tail = content[content.length - 1]\n\n    if (tail && tail.type === 'element' && tail.tagName === 'p') {\n      const tailTail = tail.children[tail.children.length - 1]\n      if (tailTail && tailTail.type === 'text') {\n        tailTail.value += ' '\n      } else {\n        tail.children.push({type: 'text', value: ' '})\n      }\n\n      tail.children.push(...backReferences)\n    } else {\n      content.push(...backReferences)\n    }\n\n    /** @type {Element} */\n    const listItem = {\n      type: 'element',\n      tagName: 'li',\n      properties: {id: clobberPrefix + 'fn-' + safeId},\n      children: state.wrap(content, true)\n    }\n\n    state.patch(definition, listItem)\n\n    listItems.push(listItem)\n  }\n\n  if (listItems.length === 0) {\n    return\n  }\n\n  return {\n    type: 'element',\n    tagName: 'section',\n    properties: {dataFootnotes: true, className: ['footnotes']},\n    children: [\n      {\n        type: 'element',\n        tagName: footnoteLabelTagName,\n        properties: {\n          ...structuredClone(footnoteLabelProperties),\n          id: 'footnote-label'\n        },\n        children: [{type: 'text', value: footnoteLabel}]\n      },\n      {type: 'text', value: '\\n'},\n      {\n        type: 'element',\n        tagName: 'ol',\n        properties: {},\n        children: state.wrap(listItems, true)\n      },\n      {type: 'text', value: '\\n'}\n    ]\n  }\n}\n","/**\n * @import {\n *   ElementContent as HastElementContent,\n *   Element as HastElement,\n *   Nodes as HastNodes,\n *   Properties as HastProperties,\n *   RootContent as HastRootContent,\n *   Text as HastText\n * } from 'hast'\n * @import {\n *   Definition as MdastDefinition,\n *   FootnoteDefinition as MdastFootnoteDefinition,\n *   Nodes as MdastNodes,\n *   Parents as MdastParents\n * } from 'mdast'\n * @import {VFile} from 'vfile'\n * @import {\n *   FootnoteBackContentTemplate,\n *   FootnoteBackLabelTemplate\n * } from './footer.js'\n */\n\n/**\n * @callback Handler\n *   Handle a node.\n * @param {State} state\n *   Info passed around.\n * @param {any} node\n *   mdast node to handle.\n * @param {MdastParents | undefined} parent\n *   Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n *   hast node.\n *\n * @typedef {Partial>} Handlers\n *   Handle nodes.\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n *   Whether to persist raw HTML in markdown in the hast tree (default:\n *   `false`).\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` property on footnotes to prevent them from\n *   *clobbering* (default: `'user-content-'`).\n *\n *   Pass `''` for trusted markdown and when you are careful with\n *   polyfilling.\n *   You could pass a different prefix.\n *\n *   DOM clobbering is this:\n *\n *   ```html\n *   

    \n * \n * ```\n *\n * The above example shows that elements are made available by browsers, by\n * their ID, on the `window` object.\n * This is a security risk because you might be expecting some other variable\n * at that place.\n * It can also break polyfills.\n * Using a prefix solves these problems.\n * @property {VFile | null | undefined} [file]\n * Corresponding virtual file representing the input document (optional).\n * @property {FootnoteBackContentTemplate | string | null | undefined} [footnoteBackContent]\n * Content of the backreference back to references (default: `defaultFootnoteBackContent`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackContent(_, rereferenceIndex) {\n * const result = [{type: 'text', value: '↩'}]\n *\n * if (rereferenceIndex > 1) {\n * result.push({\n * type: 'element',\n * tagName: 'sup',\n * properties: {},\n * children: [{type: 'text', value: String(rereferenceIndex)}]\n * })\n * }\n *\n * return result\n * }\n * ```\n *\n * This content is used in the `a` element of each backreference (the `↩`\n * links).\n * @property {FootnoteBackLabelTemplate | string | null | undefined} [footnoteBackLabel]\n * Label to describe the backreference back to references (default:\n * `defaultFootnoteBackLabel`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n * return (\n * 'Back to reference ' +\n * (referenceIndex + 1) +\n * (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n * )\n * }\n * ```\n *\n * Change it when the markdown is not in English.\n *\n * This label is used in the `ariaLabel` property on each backreference\n * (the `↩` links).\n * It affects users of assistive technology.\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n * Change it when the markdown is not in English.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (default: `{className:\n * ['sr-only']}`).\n *\n * Change it to show the label and add other properties.\n *\n * This label is typically hidden visually (assuming an `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass an empty string.\n * You can also add different properties.\n *\n * > **Note**: `id: 'footnote-label'` is always added, because footnote\n * > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n * Change it to match your document structure.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes (optional).\n * @property {Array | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed)\n * (optional).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes (optional).\n *\n * @typedef State\n * Info passed around.\n * @property {(node: MdastNodes) => Array} all\n * Transform the children of an mdast parent to hast.\n * @property {(from: MdastNodes, to: Type) => HastElement | Type} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {Map} definitionById\n * Definitions by their identifier.\n * @property {Map} footnoteById\n * Footnote definitions by their identifier.\n * @property {Map} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Array} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {(node: MdastNodes, parent: MdastParents | undefined) => Array | HastElementContent | undefined} one\n * Transform an mdast node to hast.\n * @property {Options} options\n * Configuration.\n * @property {(from: MdastNodes, node: HastNodes) => undefined} patch\n * Copy a node’s positional info.\n * @property {(nodes: Array, loose?: boolean | undefined) => Array} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {visit} from 'unist-util-visit'\nimport {position} from 'unist-util-position'\nimport {handlers as defaultHandlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || emptyOptions\n /** @type {Map} */\n const definitionById = new Map()\n /** @type {Map} */\n const footnoteById = new Map()\n /** @type {Map} */\n const footnoteCounts = new Map()\n /** @type {Handlers} */\n // @ts-expect-error: the root handler returns a root.\n // Hard to type.\n const handlers = {...defaultHandlers, ...settings.handlers}\n\n /** @type {State} */\n const state = {\n all,\n applyData,\n definitionById,\n footnoteById,\n footnoteCounts,\n footnoteOrder: [],\n handlers,\n one,\n options: settings,\n patch,\n wrap\n }\n\n visit(tree, function (node) {\n if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n const map = node.type === 'definition' ? definitionById : footnoteById\n const id = String(node.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: .\n if (!map.has(id)) {\n // @ts-expect-error: node type matches map.\n map.set(id, node)\n }\n }\n })\n\n return state\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | undefined} [parent]\n * Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n * Resulting hast node.\n */\n function one(node, parent) {\n const type = node.type\n const handle = state.handlers[type]\n\n if (own.call(state.handlers, type) && handle) {\n return handle(state, node, parent)\n }\n\n if (state.options.passThrough && state.options.passThrough.includes(type)) {\n if ('children' in node) {\n const {children, ...shallow} = node\n const result = structuredClone(shallow)\n // @ts-expect-error: TS doesn’t understand…\n result.children = state.all(node)\n // @ts-expect-error: TS doesn’t understand…\n return result\n }\n\n // @ts-expect-error: it’s custom.\n return structuredClone(node)\n }\n\n const unknown = state.options.unknownHandler || defaultUnknownHandler\n\n return unknown(state, node, parent)\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array}\n * Resulting hast nodes.\n */\n function all(parent) {\n /** @type {Array} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = state.one(nodes[index], parent)\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = trimMarkdownSpaceStart(result.value)\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = trimMarkdownSpaceStart(head.value)\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {HastElement | Type}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {HastElement | Type} */\n let result = to\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName\n const hChildren = from.data.hChildren\n const hProperties = from.data.hProperties\n\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent of `hName` is to create an element, but likely also to keep\n // the content around (otherwise: pass `hChildren`).\n else {\n /** @type {Array} */\n // @ts-expect-error: assume no doctypes in `root`.\n const children = 'children' in result ? result.children : [result]\n result = {type: 'element', tagName: hName, properties: {}, children}\n }\n }\n\n if (result.type === 'element' && hProperties) {\n Object.assign(result.properties, structuredClone(hProperties))\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n result.children = hChildren\n }\n }\n\n return result\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastElement | HastText}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastElement | HastText} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: state.all(node)\n }\n\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastRootContent} Type\n * Node type.\n * @param {Array} nodes\n * List of nodes to wrap.\n * @param {boolean | undefined} [loose=false]\n * Whether to add line endings at start and end (default: `false`).\n * @returns {Array}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n\n/**\n * Trim spaces and tabs at the start of `value`.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Result.\n */\nfunction trimMarkdownSpaceStart(value) {\n let index = 0\n let code = value.charCodeAt(index)\n\n while (code === 9 || code === 32) {\n index++\n code = value.charCodeAt(index)\n }\n\n return value.slice(index)\n}\n","/**\n * @import {Nodes as HastNodes} from 'hast'\n * @import {Nodes as MdastNodes} from 'mdast'\n * @import {Options} from './state.js'\n */\n\nimport {ok as assert} from 'devlop'\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

    \n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
    ` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {HastNodes}\n * hast tree.\n */\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, undefined)\n const foot = footer(state)\n /** @type {HastNodes} */\n const result = Array.isArray(node)\n ? {type: 'root', children: node}\n : node || {type: 'root', children: []}\n\n if (foot) {\n // If there’s a footer, there were definitions, meaning block\n // content.\n // So `result` is a parent node.\n assert('children' in result)\n result.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n return result\n}\n","/**\n * @import {Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {Options as ToHastOptions} from 'mdast-util-to-hast'\n * @import {Processor} from 'unified'\n * @import {VFile} from 'vfile'\n */\n\n/**\n * @typedef {Omit} Options\n *\n * @callback TransformBridge\n * Bridge-mode.\n *\n * Runs the destination with the new hast tree.\n * Discards result.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {Promise}\n * Nothing.\n *\n * @callback TransformMutate\n * Mutate-mode.\n *\n * Further transformers run on the hast tree.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {HastRoot}\n * Tree (hast).\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n/**\n * Turn markdown into HTML.\n *\n * ##### Notes\n *\n * ###### Signature\n *\n * * if a processor is given,\n * runs the (rehype) plugins used on it with a hast tree,\n * then discards the result (*bridge mode*)\n * * otherwise,\n * returns a hast tree,\n * the plugins used after `remarkRehype` are rehype plugins (*mutate mode*)\n *\n * > 👉 **Note**:\n * > It’s highly unlikely that you want to pass a `processor`.\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most plugins ignore `raw` nodes but two notable ones don’t:\n *\n * * `rehype-stringify` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful if\n * you completely trust authors\n * * `rehype-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc);\n * this is a heavy task as it needs a full HTML parser,\n * but it is the only way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark,\n * which we follow by default.\n * They are supported by GitHub,\n * so footnotes can be enabled in markdown with `remark-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes,\n * which is hidden for sighted users but shown to assistive technology.\n * When your page is not in English,\n * you must define translated values.\n *\n * Back references use ARIA attributes,\n * but the section label itself uses a heading that is hidden with an\n * `sr-only` class.\n * To show it to sighted users,\n * define different attributes in `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem,\n * as it links footnote calls to footnote definitions on the page through `id`\n * attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

    \n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * *Example: headings (DOM clobbering)* in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value`\n * (and doesn’t have `data.hName`, `data.hProperties`, or `data.hChildren`,\n * see later),\n * create a hast `text` node\n * * otherwise,\n * create a `
    ` element (which could be changed with `data.hName`),\n * with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @overload\n * @param {Processor} processor\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformBridge}\n *\n * @overload\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformMutate}\n *\n * @overload\n * @param {Readonly | Processor | null | undefined} [destination]\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformBridge | TransformMutate}\n *\n * @param {Readonly | Processor | null | undefined} [destination]\n * Processor or configuration (optional).\n * @param {Readonly | null | undefined} [options]\n * When a processor was given,\n * configuration (optional).\n * @returns {TransformBridge | TransformMutate}\n * Transform.\n */\nexport default function remarkRehype(destination, options) {\n if (destination && 'run' in destination) {\n /**\n * @type {TransformBridge}\n */\n return async function (tree, file) {\n // Cast because root in -> root out.\n const hastTree = /** @type {HastRoot} */ (\n toHast(tree, {file, ...options})\n )\n await destination.run(hastTree, file)\n }\n }\n\n /**\n * @type {TransformMutate}\n */\n return function (tree, file) {\n // Cast because root in -> root out.\n // To do: in the future, disallow ` || options` fallback.\n // With `unified-engine`, `destination` can be `undefined` but\n // `options` will be the file set.\n // We should not pass that as `options`.\n return /** @type {HastRoot} */ (\n toHast(tree, {file, ...(destination || options)})\n )\n }\n}\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n */\n\nimport {visit} from 'unist-util-visit'\n\n/**\n * Remove empty paragraphs in `tree`.\n *\n * @param {Nodes} tree\n * Tree to change.\n * @returns {undefined}\n * Nothing.\n */\nexport function squeezeParagraphs(tree) {\n visit(tree, function (node, index, parent) {\n if (\n index !== undefined &&\n parent &&\n node.type === 'paragraph' &&\n node.children.every(function (child) {\n return child.type === 'text' && /^\\s*$/.test(child.value)\n })\n ) {\n parent.children.splice(index, 1)\n return index\n }\n })\n}\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: MIT\n */\n\n/**\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Root} Root\n */\n\nimport {squeezeParagraphs} from 'mdast-squeeze-paragraphs'\nimport {visit} from 'unist-util-visit'\n\n/**\n * Only keep links with the given protocols.\n *\n * @param {object} options Options\n * @param {string[]} options.except - Protocols to exclude. Defauls to `['http', 'https']`.\n * @returns\n * Transform.\n */\nexport default function remarkUnlinkProtocols(\n options = {except: ['http', 'https']}\n) {\n /**\n * Transform.\n *\n * @param {Root} tree\n * Tree.\n * @returns {undefined}\n * Nothing.\n */\n return function (tree) {\n /** @type {Map} */\n const definitions = new Map()\n\n // Find definitions to look up linkReferences.\n visit(tree, 'definition', function (node, index, parent) {\n definitions.set(node.identifier, node.url)\n if (parent && typeof index === 'number') {\n const url = node.url\n if (\n url &&\n url.includes(':') &&\n !options.except.some((proto) => url.startsWith(`${proto}:`))\n ) {\n parent.children.splice(index, 1)\n return index\n }\n }\n })\n\n visit(tree, function (node, index, parent) {\n if (\n parent &&\n typeof index === 'number' &&\n (node.type === 'link' || node.type === 'linkReference')\n ) {\n const url =\n node.type === 'link' ? node.url : definitions.get(node.identifier)\n if (\n url &&\n url.includes(':') &&\n !options.except.some((proto) => url.startsWith(`${proto}:`))\n ) {\n parent.children.splice(index, 1, ...node.children)\n return index\n }\n }\n })\n\n squeezeParagraphs(tree)\n }\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array) => void} Callback\n * Callback.\n *\n * @typedef {(...input: Array) => any} Middleware\n * Ware.\n *\n * @typedef Pipeline\n * Pipeline.\n * @property {Run} run\n * Run the pipeline.\n * @property {Use} use\n * Add middleware.\n *\n * @typedef {(...input: Array) => void} Run\n * Call all middleware.\n *\n * Calls `done` on completion with either an error or the output of the\n * last middleware.\n *\n * > 👉 **Note**: as the length of input defines whether async functions get a\n * > `next` function,\n * > it’s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n * Pipeline.\n */\nexport function trough() {\n /** @type {Array} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error | null | undefined} error\n * @param {Array} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n * returns a promise that is rejected,\n * or calls the given `done` function with an error,\n * `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n * that value is the main output value\n * * if `middleware` calls `done`,\n * all non-nullish values except for the first one (the error) overwrite the\n * output values\n *\n * @param {Middleware} middleware\n * Function to wrap.\n * @param {Callback} callback\n * Callback called with the output of `middleware`.\n * @returns {Run}\n * Wrapped middleware.\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result && result.then && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n *\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","// A derivative work based on:\n// .\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// .\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const minpath = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | null | undefined} [extname]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, extname) {\n if (extname !== undefined && typeof extname !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (\n extname === undefined ||\n extname.length === 0 ||\n extname.length > path.length\n ) {\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (extname === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extnameIndex = extname.length - 1\n\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extnameIndex > -1) {\n // Try to match the explicit extension.\n if (path.codePointAt(index) === extname.codePointAt(extnameIndex--)) {\n if (extnameIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extnameIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.codePointAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.codePointAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.codePointAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.codePointAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.codePointAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.codePointAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.codePointAt(result.length - 1) !== 46 /* `.` */ ||\n result.codePointAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const minproc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: \nexport function isUrl(fileUrlOrPath) {\n return Boolean(\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n 'href' in fileUrlOrPath &&\n fileUrlOrPath.href &&\n 'protocol' in fileUrlOrPath &&\n fileUrlOrPath.protocol &&\n // @ts-expect-error: indexing is fine.\n fileUrlOrPath.auth === undefined\n )\n}\n","import {isUrl} from './minurl.shared.js'\n\nexport {isUrl} from './minurl.shared.js'\n\n// See: \n\n/**\n * @param {URL | string} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.codePointAt(index) === 37 /* `%` */ &&\n pathname.codePointAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.codePointAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n","/**\n * @import {Node, Point, Position} from 'unist'\n * @import {Options as MessageOptions} from 'vfile-message'\n * @import {Compatible, Data, Map, Options, Value} from 'vfile'\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {minpath} from '#minpath'\nimport {minproc} from '#minproc'\nimport {urlToPath, isUrl} from '#minurl'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n */\nconst order = /** @type {const} */ ([\n 'history',\n 'path',\n 'basename',\n 'stem',\n 'extname',\n 'dirname'\n])\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (isUrl(value)) {\n options = {path: value}\n } else if (typeof value === 'string' || isUint8Array(value)) {\n options = {value}\n } else {\n options = value\n }\n\n /* eslint-disable no-unused-expressions */\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n // Prevent calling `cwd` (which could be expensive) if it’s not needed;\n // the empty string will be overridden in the next block.\n this.cwd = 'cwd' in options ? '' : minproc.cwd()\n\n /**\n * Place to store custom info (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of file paths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array}\n */\n this.history = []\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array}\n */\n this.messages = []\n\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const field = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n field in options &&\n options[field] !== undefined &&\n options[field] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[field] = field === 'history' ? [...options[field]] : options[field]\n }\n }\n\n /** @type {string} */\n let field\n\n // Set non-path related properties.\n for (field in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(field)) {\n // @ts-expect-error: fine to set other things.\n this[field] = options[field]\n }\n }\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\n */\n get basename() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path)\n : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = minpath.join(this.dirname || '', basename)\n }\n\n /**\n * Get the parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\n */\n get dirname() {\n return typeof this.path === 'string'\n ? minpath.dirname(this.path)\n : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = minpath.join(dirname || '', this.basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\n */\n get extname() {\n return typeof this.path === 'string'\n ? minpath.extname(this.path)\n : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.codePointAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = minpath.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */\n get stem() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = minpath.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = true\n\n throw message\n }\n\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = undefined\n\n return message\n }\n\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(causeOrReason, optionsOrParentOrPlace, origin) {\n const message = new VFileMessage(\n // @ts-expect-error: the overloads are fine.\n causeOrReason,\n optionsOrParentOrPlace,\n origin\n )\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > .\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n if (this.value === undefined) {\n return ''\n }\n\n if (typeof this.value === 'string') {\n return this.value\n }\n\n const decoder = new TextDecoder(encoding || undefined)\n return decoder.decode(this.value)\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {undefined}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(minpath.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + minpath.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","export const CallableInstance =\n /**\n * @type {new , Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n (\n /** @type {unknown} */\n (\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array) => unknown}\n */\n function (property) {\n const self = this\n const constr = self.constructor\n const proto = /** @type {Record} */ (\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n constr.prototype\n )\n const value = proto[property]\n /** @type {(...parameters: Array) => unknown} */\n const apply = function () {\n return value.apply(apply, arguments)\n }\n\n Object.setPrototypeOf(apply, proto)\n\n // Not needed for us in `unified`: we only call this on the `copy`\n // function,\n // and we don't need to add its fields (`length`, `name`)\n // over.\n // See also: GH-246.\n // const names = Object.getOwnPropertyNames(value)\n //\n // for (const p of names) {\n // const descriptor = Object.getOwnPropertyDescriptor(value, p)\n // if (descriptor) Object.defineProperty(apply, p, descriptor)\n // }\n\n return apply\n }\n )\n )\n","/**\n * @typedef {import('trough').Pipeline} Pipeline\n *\n * @typedef {import('unist').Node} Node\n *\n * @typedef {import('vfile').Compatible} Compatible\n * @typedef {import('vfile').Value} Value\n *\n * @typedef {import('../index.js').CompileResultMap} CompileResultMap\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Settings} Settings\n */\n\n/**\n * @typedef {CompileResultMap[keyof CompileResultMap]} CompileResults\n * Acceptable results from compilers.\n *\n * To register custom results, add them to\n * {@linkcode CompileResultMap}.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the compiler receives (default: `Node`).\n * @template {CompileResults} [Result=CompileResults]\n * The thing that the compiler yields (default: `CompileResults`).\n * @callback Compiler\n * A **compiler** handles the compiling of a syntax tree to something else\n * (in most cases, text) (TypeScript type).\n *\n * It is used in the stringify phase and called with a {@linkcode Node}\n * and {@linkcode VFile} representation of the document to compile.\n * It should return the textual representation of the given tree (typically\n * `string`).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n * @param {Tree} tree\n * Tree to compile.\n * @param {VFile} file\n * File associated with `tree`.\n * @returns {Result}\n * New content: compiled text (`string` or `Uint8Array`, for `file.value`) or\n * something else (for `file.result`).\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the parser yields (default: `Node`)\n * @callback Parser\n * A **parser** handles the parsing of text to a syntax tree.\n *\n * It is used in the parse phase and is called with a `string` and\n * {@linkcode VFile} of the document to parse.\n * It must return the syntax tree representation of the given file\n * ({@linkcode Node}).\n * @param {string} document\n * Document to parse.\n * @param {VFile} file\n * File associated with `document`.\n * @returns {Tree}\n * Node representing the given file.\n */\n\n/**\n * @typedef {(\n * Plugin, any, any> |\n * PluginTuple, any, any> |\n * Preset\n * )} Pluggable\n * Union of the different ways to add plugins and settings.\n */\n\n/**\n * @typedef {Array} PluggableList\n * List of plugins and presets.\n */\n\n// Note: we can’t use `callback` yet as it messes up `this`:\n// .\n/**\n * @template {Array} [PluginParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=Node]\n * Value that is expected as input (default: `Node`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=Input]\n * Value that is yielded as output (default: `Input`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * (this: Processor, ...parameters: PluginParameters) =>\n * Input extends string ? // Parser.\n * Output extends Node | undefined ? undefined | void : never :\n * Output extends CompileResults ? // Compiler.\n * Input extends Node | undefined ? undefined | void : never :\n * Transformer<\n * Input extends Node ? Input : Node,\n * Output extends Node ? Output : Node\n * > | undefined | void\n * )} Plugin\n * Single plugin.\n *\n * Plugins configure the processors they are applied on in the following\n * ways:\n *\n * * they change the processor, such as the parser, the compiler, or by\n * configuring data\n * * they specify how to handle trees and files\n *\n * In practice, they are functions that can receive options and configure the\n * processor (`this`).\n *\n * > **Note**: plugins are called when the processor is *frozen*, not when\n * > they are applied.\n */\n\n/**\n * Tuple of a plugin and its configuration.\n *\n * The first item is a plugin, the rest are its parameters.\n *\n * @template {Array} [TupleParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=undefined]\n * Value that is expected as input (optional).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=undefined] (optional).\n * Value that is yielded as output.\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * [\n * plugin: Plugin,\n * ...parameters: TupleParameters\n * ]\n * )} PluginTuple\n */\n\n/**\n * @typedef Preset\n * Sharable configuration.\n *\n * They can contain plugins and settings.\n * @property {PluggableList | undefined} [plugins]\n * List of plugins and presets (optional).\n * @property {Settings | undefined} [settings]\n * Shared settings for parsers and compilers (optional).\n */\n\n/**\n * @template {VFile} [File=VFile]\n * The file that the callback receives (default: `VFile`).\n * @callback ProcessCallback\n * Callback called when the process is done.\n *\n * Called with either an error or a result.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {File | undefined} [file]\n * Processed file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The tree that the callback receives (default: `Node`).\n * @callback RunCallback\n * Callback called when transformers are done.\n *\n * Called with either an error or results.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {Tree | undefined} [tree]\n * Transformed tree (optional).\n * @param {VFile | undefined} [file]\n * File (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Output=Node]\n * Node type that the transformer yields (default: `Node`).\n * @callback TransformCallback\n * Callback passed to transforms.\n *\n * If the signature of a `transformer` accepts a third argument, the\n * transformer may perform asynchronous operations, and must call it.\n * @param {Error | undefined} [error]\n * Fatal error to stop the process (optional).\n * @param {Output | undefined} [tree]\n * New, changed, tree (optional).\n * @param {VFile | undefined} [file]\n * New, changed, file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Input=Node]\n * Node type that the transformer expects (default: `Node`).\n * @template {Node} [Output=Input]\n * Node type that the transformer yields (default: `Input`).\n * @callback Transformer\n * Transformers handle syntax trees and files.\n *\n * They are functions that are called each time a syntax tree and file are\n * passed through the run phase.\n * When an error occurs in them (either because it’s thrown, returned,\n * rejected, or passed to `next`), the process stops.\n *\n * The run phase is handled by [`trough`][trough], see its documentation for\n * the exact semantics of these functions.\n *\n * > **Note**: you should likely ignore `next`: don’t accept it.\n * > it supports callback-style async work.\n * > But promises are likely easier to reason about.\n *\n * [trough]: https://github.com/wooorm/trough#function-fninput-next\n * @param {Input} tree\n * Tree to handle.\n * @param {VFile} file\n * File to handle.\n * @param {TransformCallback} next\n * Callback.\n * @returns {(\n * Promise |\n * Promise | // For some reason this is needed separately.\n * Output |\n * Error |\n * undefined |\n * void\n * )}\n * If you accept `next`, nothing.\n * Otherwise:\n *\n * * `Error` — fatal error to stop the process\n * * `Promise` or `undefined` — the next transformer keeps using\n * same tree\n * * `Promise` or `Node` — new, changed, tree\n */\n\n/**\n * @template {Node | undefined} ParseTree\n * Output of `parse`.\n * @template {Node | undefined} HeadTree\n * Input for `run`.\n * @template {Node | undefined} TailTree\n * Output for `run`.\n * @template {Node | undefined} CompileTree\n * Input of `stringify`.\n * @template {CompileResults | undefined} CompileResult\n * Output of `stringify`.\n * @template {Node | string | undefined} Input\n * Input of plugin.\n * @template Output\n * Output of plugin (optional).\n * @typedef {(\n * Input extends string\n * ? Output extends Node | undefined\n * ? // Parser.\n * Processor<\n * Output extends undefined ? ParseTree : Output,\n * HeadTree,\n * TailTree,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : Output extends CompileResults\n * ? Input extends Node | undefined\n * ? // Compiler.\n * Processor<\n * ParseTree,\n * HeadTree,\n * TailTree,\n * Input extends undefined ? CompileTree : Input,\n * Output extends undefined ? CompileResult : Output\n * >\n * : // Unknown.\n * Processor\n * : Input extends Node | undefined\n * ? Output extends Node | undefined\n * ? // Transform.\n * Processor<\n * ParseTree,\n * HeadTree extends undefined ? Input : HeadTree,\n * Output extends undefined ? TailTree : Output,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : // Unknown.\n * Processor\n * )} UsePlugin\n * Create a processor based on the input/output of a {@link Plugin plugin}.\n */\n\n/**\n * @template {CompileResults | undefined} Result\n * Node type that the transformer yields.\n * @typedef {(\n * Result extends Value | undefined ?\n * VFile :\n * VFile & {result: Result}\n * )} VFileWithOutput\n * Type to generate a {@linkcode VFile} corresponding to a compiler result.\n *\n * If a result that is not acceptable on a `VFile` is used, that will\n * be stored on the `result` field of {@linkcode VFile}.\n */\n\nimport {bail} from 'bail'\nimport extend from 'extend'\nimport {ok as assert} from 'devlop'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\nimport {CallableInstance} from './callable-instance.js'\n\n// To do: next major: drop `Compiler`, `Parser`: prefer lowercase.\n\n// To do: we could start yielding `never` in TS when a parser is missing and\n// `parse` is called.\n// Currently, we allow directly setting `processor.parser`, which is untyped.\n\nconst own = {}.hasOwnProperty\n\n/**\n * @template {Node | undefined} [ParseTree=undefined]\n * Output of `parse` (optional).\n * @template {Node | undefined} [HeadTree=undefined]\n * Input for `run` (optional).\n * @template {Node | undefined} [TailTree=undefined]\n * Output for `run` (optional).\n * @template {Node | undefined} [CompileTree=undefined]\n * Input of `stringify` (optional).\n * @template {CompileResults | undefined} [CompileResult=undefined]\n * Output of `stringify` (optional).\n * @extends {CallableInstance<[], Processor>}\n */\nexport class Processor extends CallableInstance {\n /**\n * Create a processor.\n */\n constructor() {\n // If `Processor()` is called (w/o new), `copy` is called instead.\n super('copy')\n\n /**\n * Compiler to use (deprecated).\n *\n * @deprecated\n * Use `compiler` instead.\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.Compiler = undefined\n\n /**\n * Parser to use (deprecated).\n *\n * @deprecated\n * Use `parser` instead.\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.Parser = undefined\n\n // Note: the following fields are considered private.\n // However, they are needed for tests, and TSC generates an untyped\n // `private freezeIndex` field for, which trips `type-coverage` up.\n // Instead, we use `@deprecated` to visualize that they shouldn’t be used.\n /**\n * Internal list of configured plugins.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Array>>}\n */\n this.attachers = []\n\n /**\n * Compiler to use.\n *\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.compiler = undefined\n\n /**\n * Internal state to track where we are while freezing.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {number}\n */\n this.freezeIndex = -1\n\n /**\n * Internal state to track whether we’re frozen.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {boolean | undefined}\n */\n this.frozen = undefined\n\n /**\n * Internal state.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Data}\n */\n this.namespace = {}\n\n /**\n * Parser to use.\n *\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.parser = undefined\n\n /**\n * Internal list of configured transformers.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Pipeline}\n */\n this.transformers = trough()\n }\n\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor}\n * New *unfrozen* processor ({@linkcode Processor}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n // Cast as the type parameters will be the same after attaching.\n const destination =\n /** @type {Processor} */ (\n new Processor()\n )\n let index = -1\n\n while (++index < this.attachers.length) {\n const attacher = this.attachers[index]\n destination.use(...attacher)\n }\n\n destination.data(extend(true, {}, this.namespace))\n\n return destination\n }\n\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > **Note**: to register custom data in TypeScript, augment the\n * > {@linkcode Data} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', this.frozen)\n this.namespace[key] = value\n return this\n }\n\n // Get `key`.\n return (own.call(this.namespace, key) && this.namespace[key]) || undefined\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', this.frozen)\n this.namespace = key\n return this\n }\n\n // Get space.\n return this.namespace\n }\n\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor}\n * The current processor.\n */\n freeze() {\n if (this.frozen) {\n return this\n }\n\n // Cast so that we can type plugins easier.\n // Plugins are supposed to be usable on different processors, not just on\n // this exact processor.\n const self = /** @type {Processor} */ (/** @type {unknown} */ (this))\n\n while (++this.freezeIndex < this.attachers.length) {\n const [attacher, ...options] = this.attachers[this.freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n const transformer = attacher.call(self, ...options)\n\n if (typeof transformer === 'function') {\n this.transformers.use(transformer)\n }\n }\n\n this.frozen = true\n this.freezeIndex = Number.POSITIVE_INFINITY\n\n return this\n }\n\n /**\n * Parse text to a syntax tree.\n *\n * > **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(file) {\n this.freeze()\n const realFile = vfile(file)\n const parser = this.parser || this.Parser\n assertParser('parse', parser)\n return parser(String(realFile), realFile)\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * > **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback> | undefined} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(file, done) {\n const self = this\n\n this.freeze()\n assertParser('process', this.parser || this.Parser)\n assertCompiler('process', this.compiler || this.Compiler)\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {((file: VFileWithOutput) => undefined | void) | undefined} resolve\n * @param {(error: Error | undefined) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n const realFile = vfile(file)\n // Assume `ParseTree` (the result of the parser) matches `HeadTree` (the\n // input of the first transform).\n const parseTree =\n /** @type {HeadTree extends undefined ? Node : HeadTree} */ (\n /** @type {unknown} */ (self.parse(realFile))\n )\n\n self.run(parseTree, realFile, function (error, tree, file) {\n if (error || !tree || !file) {\n return realDone(error)\n }\n\n // Assume `TailTree` (the output of the last transform) matches\n // `CompileTree` (the input of the compiler).\n const compileTree =\n /** @type {CompileTree extends undefined ? Node : CompileTree} */ (\n /** @type {unknown} */ (tree)\n )\n\n const compileResult = self.stringify(compileTree, file)\n\n if (looksLikeAValue(compileResult)) {\n file.value = compileResult\n } else {\n file.result = compileResult\n }\n\n realDone(error, /** @type {VFileWithOutput} */ (file))\n })\n\n /**\n * @param {Error | undefined} error\n * @param {VFileWithOutput | undefined} [file]\n * @returns {undefined}\n */\n function realDone(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, file)\n }\n }\n }\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(file) {\n /** @type {boolean} */\n let complete = false\n /** @type {VFileWithOutput | undefined} */\n let result\n\n this.freeze()\n assertParser('processSync', this.parser || this.Parser)\n assertCompiler('processSync', this.compiler || this.Compiler)\n\n this.process(file, realDone)\n assertDone('processSync', 'process', complete)\n assert(result, 'we either bailed on an error or have a tree')\n\n return result\n\n /**\n * @type {ProcessCallback>}\n */\n function realDone(error, file) {\n complete = true\n bail(error)\n result = file\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * > **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(tree, file, done) {\n assertNode(tree)\n this.freeze()\n\n const transformers = this.transformers\n\n if (!done && typeof file === 'function') {\n done = file\n file = undefined\n }\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {(\n * ((tree: TailTree extends undefined ? Node : TailTree) => undefined | void) |\n * undefined\n * )} resolve\n * @param {(error: Error) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n assert(\n typeof file !== 'function',\n '`file` can’t be a `done` anymore, we checked'\n )\n const realFile = vfile(file)\n transformers.run(tree, realFile, realDone)\n\n /**\n * @param {Error | undefined} error\n * @param {Node} outputTree\n * @param {VFile} file\n * @returns {undefined}\n */\n function realDone(error, outputTree, file) {\n const resultingTree =\n /** @type {TailTree extends undefined ? Node : TailTree} */ (\n outputTree || tree\n )\n\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(resultingTree)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, resultingTree, file)\n }\n }\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(tree, file) {\n /** @type {boolean} */\n let complete = false\n /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */\n let result\n\n this.run(tree, file, realDone)\n\n assertDone('runSync', 'run', complete)\n assert(result, 'we either bailed on an error or have a tree')\n return result\n\n /**\n * @type {RunCallback}\n */\n function realDone(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * Compile a syntax tree.\n *\n * > **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(tree, file) {\n this.freeze()\n const realFile = vfile(file)\n const compiler = this.compiler || this.Compiler\n assertCompiler('stringify', compiler)\n assertNode(tree)\n\n return compiler(tree, realFile)\n }\n\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor}\n *\n * @overload\n * @param {Plugin} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor}\n * Current processor.\n */\n use(value, ...parameters) {\n const attachers = this.attachers\n const namespace = this.namespace\n\n assertUnfrozen('use', this.frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, parameters)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n return this\n\n /**\n * @param {Pluggable} value\n * @returns {undefined}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value, [])\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...parameters] =\n /** @type {PluginTuple>} */ (value)\n addPlugin(plugin, parameters)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {undefined}\n */\n function addPreset(result) {\n if (!('plugins' in result) && !('settings' in result)) {\n throw new Error(\n 'Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither'\n )\n }\n\n addList(result.plugins)\n\n if (result.settings) {\n namespace.settings = extend(true, namespace.settings, result.settings)\n }\n }\n\n /**\n * @param {PluggableList | null | undefined} plugins\n * @returns {undefined}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {Array} parameters\n * @returns {undefined}\n */\n function addPlugin(plugin, parameters) {\n let index = -1\n let entryIndex = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entryIndex = index\n break\n }\n }\n\n if (entryIndex === -1) {\n attachers.push([plugin, ...parameters])\n }\n // Only set if there was at least a `primary` value, otherwise we’d change\n // `arguments.length`.\n else if (parameters.length > 0) {\n let [primary, ...rest] = parameters\n const currentPrimary = attachers[entryIndex][1]\n if (isPlainObj(currentPrimary) && isPlainObj(primary)) {\n primary = extend(true, currentPrimary, primary)\n }\n\n attachers[entryIndex] = [plugin, primary, ...rest]\n }\n }\n }\n}\n\n// Note: this returns a *callable* instance.\n// That’s why it’s documented as a function.\n/**\n * Create a new processor.\n *\n * @example\n * This example shows how a new processor can be created (from `remark`) and linked\n * to **stdin**(4) and **stdout**(4).\n *\n * ```js\n * import process from 'node:process'\n * import concatStream from 'concat-stream'\n * import {remark} from 'remark'\n *\n * process.stdin.pipe(\n * concatStream(function (buf) {\n * process.stdout.write(String(remark().processSync(buf)))\n * })\n * )\n * ```\n *\n * @returns\n * New *unfrozen* processor (`processor`).\n *\n * This processor is configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\nexport const unified = new Processor().freeze()\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is Value}\n */\nfunction looksLikeAValue(value) {\n return typeof value === 'string' || isUint8Array(value)\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","import '../assets/NcRichText-BTu-LT3p.css';\nimport { toString } from \"mdast-util-to-string\";\nimport rehypeExternalLinks from \"rehype-external-links\";\nimport rehype2react from \"rehype-react\";\nimport breaks from \"remark-breaks\";\nimport remarkParse from \"remark-parse\";\nimport remark2rehype from \"remark-rehype\";\nimport remarkUnlinkProtocols from \"remark-unlink-protocols\";\nimport { unified } from \"unified\";\nimport { resolveComponent, openBlock, createElementBlock, normalizeClass, Fragment, renderList, createBlock, createCommentVNode, defineComponent, unref, withCtx, createVNode, ref, h } from \"vue\";\nimport { RouterLink } from \"vue-router\";\nimport { N as NcCheckboxRadioSwitch } from \"./NcCheckboxRadioSwitch-D8Dfv4iw.mjs\";\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport { getSharingToken } from \"@nextcloud/sharing/public\";\nimport { f as NcReferenceWidget } from \"./referencePickerModal-B4bsiMOy.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { U as URL_PATTERN, g as getRoute, N as NcRichTextExternalLink, p as parseUrl, r as remarkAutolink } from \"./autolink-BT8u-IL-.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { u as useCopy } from \"./useCopy-PckLYUAU.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { u } from \"unist-builder\";\nimport { visitParents, EXIT, SKIP } from \"unist-util-visit-parents\";\nconst _sfc_main$2 = {\n name: \"NcReferenceList\",\n components: {\n NcReferenceWidget\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n text: {\n type: String,\n default: \"\"\n },\n referenceData: {\n type: Array,\n default: null\n },\n limit: {\n type: Number,\n default: 1\n },\n displayFallback: {\n type: Boolean,\n default: false\n },\n interactive: {\n type: Boolean,\n default: true\n },\n interactiveOptIn: {\n type: Boolean,\n default: false\n }\n },\n emits: [\"loaded\"],\n data() {\n return {\n references: null,\n loading: true\n };\n },\n computed: {\n isVisible() {\n return this.loading || this.displayedReferences.length !== 0;\n },\n values() {\n if (this.referenceData) {\n return this.referenceData;\n }\n if (this.displayFallback && !this.loading && !this.references) {\n return [this.fallbackReference];\n }\n return this.references ? Object.values(this.references) : [];\n },\n firstReference() {\n return this.values[0] ?? null;\n },\n displayedReferences() {\n return this.values.filter(Boolean).slice(0, this.limit);\n },\n fallbackReference() {\n return {\n accessible: true,\n openGraphObject: {\n id: this.text,\n link: this.text,\n name: this.text\n },\n richObjectType: \"open-graph\"\n };\n }\n },\n watch: {\n text: \"fetch\"\n },\n mounted() {\n this.fetch();\n },\n methods: {\n fetch() {\n this.loading = true;\n if (this.referenceData) {\n this.references = null;\n this.loading = false;\n return;\n }\n if (!new RegExp(URL_PATTERN).exec(this.text)) {\n this.references = null;\n this.loading = false;\n return;\n }\n this.resolve().then((response) => {\n this.references = response.data.ocs.data.references;\n this.loading = false;\n this.$emit(\"loaded\");\n }).catch((error) => {\n logger.error(\"[NcReferenceList] Failed to extract references\", { error });\n this.loading = false;\n this.$emit(\"loaded\");\n });\n },\n resolve() {\n const match = new RegExp(URL_PATTERN).exec(this.text.trim());\n const isPublic = getCurrentUser() === null;\n if (this.limit === 1 && match) {\n return isPublic ? axios.get(generateOcsUrl(\"references/resolvePublic\") + `?reference=${encodeURIComponent(match[0])}&sharingToken=${getSharingToken()}`) : axios.get(generateOcsUrl(\"references/resolve\") + `?reference=${encodeURIComponent(match[0])}`);\n }\n return isPublic ? axios.post(generateOcsUrl(\"references/extractPublic\"), {\n text: this.text,\n resolve: true,\n limit: this.limit,\n sharingToken: getSharingToken()\n }) : axios.post(generateOcsUrl(\"references/extract\"), {\n text: this.text,\n resolve: true,\n limit: this.limit\n });\n }\n }\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcReferenceWidget = resolveComponent(\"NcReferenceWidget\");\n return $options.isVisible ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"widgets--list\", { \"icon-loading\": $data.loading }])\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.displayedReferences, (reference) => {\n return openBlock(), createBlock(_component_NcReferenceWidget, {\n key: reference.openGraphObject?.id,\n reference,\n interactive: $props.interactive,\n interactiveOptIn: $props.interactiveOptIn\n }, null, 8, [\"reference\", \"interactive\", \"interactiveOptIn\"]);\n }), 128))\n ], 2)) : createCommentVNode(\"\", true);\n}\nconst NcReferenceList = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-9cde5a6a\"]]);\nfunction ccount(value, character) {\n const source = String(value);\n if (typeof character !== \"string\") {\n throw new TypeError(\"Expected character\");\n }\n let count = 0;\n let index = source.indexOf(character);\n while (index !== -1) {\n count++;\n index = source.indexOf(character, index + character.length);\n }\n return count;\n}\nfunction ok$1() {\n}\nconst asciiAlpha = regexCheck(/[A-Za-z]/);\nconst asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/);\nfunction asciiControl(code2) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code2 !== null && (code2 < 32 || code2 === 127)\n );\n}\nfunction markdownLineEnding(code2) {\n return code2 !== null && code2 < -2;\n}\nfunction markdownLineEndingOrSpace(code2) {\n return code2 !== null && (code2 < 0 || code2 === 32);\n}\nfunction markdownSpace(code2) {\n return code2 === -2 || code2 === -1 || code2 === 32;\n}\nconst unicodePunctuation = regexCheck(new RegExp(\"\\\\p{P}|\\\\p{S}\", \"u\"));\nconst unicodeWhitespace = regexCheck(/\\s/);\nfunction regexCheck(regex) {\n return check;\n function check(code2) {\n return code2 !== null && code2 > -1 && regex.test(String.fromCharCode(code2));\n }\n}\nfunction escapeStringRegexp(string) {\n if (typeof string !== \"string\") {\n throw new TypeError(\"Expected a string\");\n }\n return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\").replace(/-/g, \"\\\\x2d\");\n}\nconst convert = (\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n (function(test) {\n if (test === null || test === void 0) {\n return ok;\n }\n if (typeof test === \"function\") {\n return castFactory(test);\n }\n if (typeof test === \"object\") {\n return Array.isArray(test) ? anyFactory(test) : (\n // Cast because `ReadonlyArray` goes into the above but `isArray`\n // narrows to `Array`.\n propertiesFactory(\n /** @type {Props} */\n test\n )\n );\n }\n if (typeof test === \"string\") {\n return typeFactory(test);\n }\n throw new Error(\"Expected function, string, or object as test\");\n })\n);\nfunction anyFactory(tests) {\n const checks = [];\n let index = -1;\n while (++index < tests.length) {\n checks[index] = convert(tests[index]);\n }\n return castFactory(any);\n function any(...parameters) {\n let index2 = -1;\n while (++index2 < checks.length) {\n if (checks[index2].apply(this, parameters)) return true;\n }\n return false;\n }\n}\nfunction propertiesFactory(check) {\n const checkAsRecord = (\n /** @type {Record} */\n check\n );\n return castFactory(all);\n function all(node) {\n const nodeAsRecord = (\n /** @type {Record} */\n /** @type {unknown} */\n node\n );\n let key;\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false;\n }\n return true;\n }\n}\nfunction typeFactory(check) {\n return castFactory(type);\n function type(node) {\n return node && node.type === check;\n }\n}\nfunction castFactory(testFunction) {\n return check;\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) && testFunction.call(\n this,\n value,\n typeof index === \"number\" ? index : void 0,\n parent || void 0\n )\n );\n }\n}\nfunction ok() {\n return true;\n}\nfunction looksLikeANode(value) {\n return value !== null && typeof value === \"object\" && \"type\" in value;\n}\nfunction findAndReplace(tree, list2, options) {\n const settings = options || {};\n const ignored = convert(settings.ignore || []);\n const pairs = toPairs(list2);\n let pairIndex = -1;\n while (++pairIndex < pairs.length) {\n visitParents(tree, \"text\", visitor);\n }\n function visitor(node, parents) {\n let index = -1;\n let grandparent;\n while (++index < parents.length) {\n const parent = parents[index];\n const siblings = grandparent ? grandparent.children : void 0;\n if (ignored(\n parent,\n siblings ? siblings.indexOf(parent) : void 0,\n grandparent\n )) {\n return;\n }\n grandparent = parent;\n }\n if (grandparent) {\n return handler(node, parents);\n }\n }\n function handler(node, parents) {\n const parent = parents[parents.length - 1];\n const find = pairs[pairIndex][0];\n const replace2 = pairs[pairIndex][1];\n let start = 0;\n const siblings = parent.children;\n const index = siblings.indexOf(node);\n let change = false;\n let nodes = [];\n find.lastIndex = 0;\n let match = find.exec(node.value);\n while (match) {\n const position = match.index;\n const matchObject = {\n index: match.index,\n input: match.input,\n stack: [...parents, node]\n };\n let value = replace2(...match, matchObject);\n if (typeof value === \"string\") {\n value = value.length > 0 ? { type: \"text\", value } : void 0;\n }\n if (value === false) {\n find.lastIndex = position + 1;\n } else {\n if (start !== position) {\n nodes.push({\n type: \"text\",\n value: node.value.slice(start, position)\n });\n }\n if (Array.isArray(value)) {\n nodes.push(...value);\n } else if (value) {\n nodes.push(value);\n }\n start = position + match[0].length;\n change = true;\n }\n if (!find.global) {\n break;\n }\n match = find.exec(node.value);\n }\n if (change) {\n if (start < node.value.length) {\n nodes.push({ type: \"text\", value: node.value.slice(start) });\n }\n parent.children.splice(index, 1, ...nodes);\n } else {\n nodes = [node];\n }\n return index + nodes.length;\n }\n}\nfunction toPairs(tupleOrList) {\n const result = [];\n if (!Array.isArray(tupleOrList)) {\n throw new TypeError(\"Expected find and replace tuple or list of tuples\");\n }\n const list2 = !tupleOrList[0] || Array.isArray(tupleOrList[0]) ? tupleOrList : [tupleOrList];\n let index = -1;\n while (++index < list2.length) {\n const tuple = list2[index];\n result.push([toExpression(tuple[0]), toFunction(tuple[1])]);\n }\n return result;\n}\nfunction toExpression(find) {\n return typeof find === \"string\" ? new RegExp(escapeStringRegexp(find), \"g\") : find;\n}\nfunction toFunction(replace2) {\n return typeof replace2 === \"function\" ? replace2 : function() {\n return replace2;\n };\n}\nconst inConstruct = \"phrasing\";\nconst notInConstruct = [\"autolink\", \"link\", \"image\", \"label\"];\nfunction gfmAutolinkLiteralFromMarkdown() {\n return {\n transforms: [transformGfmAutolinkLiterals],\n enter: {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n },\n exit: {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n }\n };\n}\nfunction gfmAutolinkLiteralToMarkdown() {\n return {\n unsafe: [\n {\n character: \"@\",\n before: \"[+\\\\-.\\\\w]\",\n after: \"[\\\\-.\\\\w]\",\n inConstruct,\n notInConstruct\n },\n {\n character: \".\",\n before: \"[Ww]\",\n after: \"[\\\\-.\\\\w]\",\n inConstruct,\n notInConstruct\n },\n {\n character: \":\",\n before: \"[ps]\",\n after: \"\\\\/\",\n inConstruct,\n notInConstruct\n }\n ]\n };\n}\nfunction enterLiteralAutolink(token) {\n this.enter({ type: \"link\", title: null, url: \"\", children: [] }, token);\n}\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token);\n}\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token);\n}\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token);\n const node = this.stack[this.stack.length - 1];\n ok$1(node.type === \"link\");\n node.url = \"http://\" + this.sliceSerialize(token);\n}\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token);\n}\nfunction exitLiteralAutolink(token) {\n this.exit(token);\n}\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n [/([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/g, findEmail]\n ],\n { ignore: [\"link\", \"linkReference\"] }\n );\n}\nfunction findUrl(_, protocol, domain2, path2, match) {\n let prefix = \"\";\n if (!previous(match)) {\n return false;\n }\n if (/^w/i.test(protocol)) {\n domain2 = protocol + domain2;\n protocol = \"\";\n prefix = \"http://\";\n }\n if (!isCorrectDomain(domain2)) {\n return false;\n }\n const parts = splitUrl(domain2 + path2);\n if (!parts[0]) return false;\n const result = {\n type: \"link\",\n title: null,\n url: prefix + protocol + parts[0],\n children: [{ type: \"text\", value: protocol + parts[0] }]\n };\n if (parts[1]) {\n return [result, { type: \"text\", value: parts[1] }];\n }\n return result;\n}\nfunction findEmail(_, atext, label, match) {\n if (\n // Not an expected previous character.\n !previous(match, true) || // Label ends in not allowed character.\n /[-\\d_]$/.test(label)\n ) {\n return false;\n }\n return {\n type: \"link\",\n title: null,\n url: \"mailto:\" + atext + \"@\" + label,\n children: [{ type: \"text\", value: atext + \"@\" + label }]\n };\n}\nfunction isCorrectDomain(domain2) {\n const parts = domain2.split(\".\");\n if (parts.length < 2 || parts[parts.length - 1] && (/_/.test(parts[parts.length - 1]) || !/[a-zA-Z\\d]/.test(parts[parts.length - 1])) || parts[parts.length - 2] && (/_/.test(parts[parts.length - 2]) || !/[a-zA-Z\\d]/.test(parts[parts.length - 2]))) {\n return false;\n }\n return true;\n}\nfunction splitUrl(url) {\n const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url);\n if (!trailExec) {\n return [url, void 0];\n }\n url = url.slice(0, trailExec.index);\n let trail2 = trailExec[0];\n let closingParenIndex = trail2.indexOf(\")\");\n const openingParens = ccount(url, \"(\");\n let closingParens = ccount(url, \")\");\n while (closingParenIndex !== -1 && openingParens > closingParens) {\n url += trail2.slice(0, closingParenIndex + 1);\n trail2 = trail2.slice(closingParenIndex + 1);\n closingParenIndex = trail2.indexOf(\")\");\n closingParens++;\n }\n return [url, trail2];\n}\nfunction previous(match, email) {\n const code2 = match.input.charCodeAt(match.index - 1);\n return (match.index === 0 || unicodeWhitespace(code2) || unicodePunctuation(code2)) && (!email || code2 !== 47);\n}\nfunction normalizeIdentifier(value) {\n return value.replace(/[\\t\\n\\r ]+/g, \" \").replace(/^ | $/g, \"\").toLowerCase().toUpperCase();\n}\nfootnoteReference.peek = footnoteReferencePeek;\nfunction enterFootnoteCallString() {\n this.buffer();\n}\nfunction enterFootnoteCall(token) {\n this.enter({ type: \"footnoteReference\", identifier: \"\", label: \"\" }, token);\n}\nfunction enterFootnoteDefinitionLabelString() {\n this.buffer();\n}\nfunction enterFootnoteDefinition(token) {\n this.enter(\n { type: \"footnoteDefinition\", identifier: \"\", label: \"\", children: [] },\n token\n );\n}\nfunction exitFootnoteCallString(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n ok$1(node.type === \"footnoteReference\");\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase();\n node.label = label;\n}\nfunction exitFootnoteCall(token) {\n this.exit(token);\n}\nfunction exitFootnoteDefinitionLabelString(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n ok$1(node.type === \"footnoteDefinition\");\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase();\n node.label = label;\n}\nfunction exitFootnoteDefinition(token) {\n this.exit(token);\n}\nfunction footnoteReferencePeek() {\n return \"[\";\n}\nfunction footnoteReference(node, _, state, info) {\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[^\");\n const exit2 = state.enter(\"footnoteReference\");\n const subexit = state.enter(\"reference\");\n value += tracker.move(\n state.safe(state.associationId(node), { after: \"]\", before: value })\n );\n subexit();\n exit2();\n value += tracker.move(\"]\");\n return value;\n}\nfunction gfmFootnoteFromMarkdown() {\n return {\n enter: {\n gfmFootnoteCallString: enterFootnoteCallString,\n gfmFootnoteCall: enterFootnoteCall,\n gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n gfmFootnoteDefinition: enterFootnoteDefinition\n },\n exit: {\n gfmFootnoteCallString: exitFootnoteCallString,\n gfmFootnoteCall: exitFootnoteCall,\n gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n gfmFootnoteDefinition: exitFootnoteDefinition\n }\n };\n}\nfunction gfmFootnoteToMarkdown(options) {\n let firstLineBlank = false;\n if (options && options.firstLineBlank) {\n firstLineBlank = true;\n }\n return {\n handlers: { footnoteDefinition, footnoteReference },\n // This is on by default already.\n unsafe: [{ character: \"[\", inConstruct: [\"label\", \"phrasing\", \"reference\"] }]\n };\n function footnoteDefinition(node, _, state, info) {\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[^\");\n const exit2 = state.enter(\"footnoteDefinition\");\n const subexit = state.enter(\"label\");\n value += tracker.move(\n state.safe(state.associationId(node), { before: value, after: \"]\" })\n );\n subexit();\n value += tracker.move(\"]:\");\n if (node.children && node.children.length > 0) {\n tracker.shift(4);\n value += tracker.move(\n (firstLineBlank ? \"\\n\" : \" \") + state.indentLines(\n state.containerFlow(node, tracker.current()),\n firstLineBlank ? mapAll : mapExceptFirst\n )\n );\n }\n exit2();\n return value;\n }\n}\nfunction mapExceptFirst(line, index, blank) {\n return index === 0 ? line : mapAll(line, index, blank);\n}\nfunction mapAll(line, index, blank) {\n return (blank ? \"\" : \" \") + line;\n}\nconst constructsWithoutStrikethrough = [\n \"autolink\",\n \"destinationLiteral\",\n \"destinationRaw\",\n \"reference\",\n \"titleQuote\",\n \"titleApostrophe\"\n];\nhandleDelete.peek = peekDelete;\nfunction gfmStrikethroughFromMarkdown() {\n return {\n canContainEols: [\"delete\"],\n enter: { strikethrough: enterStrikethrough },\n exit: { strikethrough: exitStrikethrough }\n };\n}\nfunction gfmStrikethroughToMarkdown() {\n return {\n unsafe: [\n {\n character: \"~\",\n inConstruct: \"phrasing\",\n notInConstruct: constructsWithoutStrikethrough\n }\n ],\n handlers: { delete: handleDelete }\n };\n}\nfunction enterStrikethrough(token) {\n this.enter({ type: \"delete\", children: [] }, token);\n}\nfunction exitStrikethrough(token) {\n this.exit(token);\n}\nfunction handleDelete(node, _, state, info) {\n const tracker = state.createTracker(info);\n const exit2 = state.enter(\"strikethrough\");\n let value = tracker.move(\"~~\");\n value += state.containerPhrasing(node, {\n ...tracker.current(),\n before: value,\n after: \"~\"\n });\n value += tracker.move(\"~~\");\n exit2();\n return value;\n}\nfunction peekDelete() {\n return \"~\";\n}\nfunction defaultStringLength(value) {\n return value.length;\n}\nfunction markdownTable(table, options) {\n const settings = options || {};\n const align = (settings.align || []).concat();\n const stringLength = settings.stringLength || defaultStringLength;\n const alignments = [];\n const cellMatrix = [];\n const sizeMatrix = [];\n const longestCellByColumn = [];\n let mostCellsPerRow = 0;\n let rowIndex = -1;\n while (++rowIndex < table.length) {\n const row2 = [];\n const sizes2 = [];\n let columnIndex2 = -1;\n if (table[rowIndex].length > mostCellsPerRow) {\n mostCellsPerRow = table[rowIndex].length;\n }\n while (++columnIndex2 < table[rowIndex].length) {\n const cell = serialize(table[rowIndex][columnIndex2]);\n if (settings.alignDelimiters !== false) {\n const size = stringLength(cell);\n sizes2[columnIndex2] = size;\n if (longestCellByColumn[columnIndex2] === void 0 || size > longestCellByColumn[columnIndex2]) {\n longestCellByColumn[columnIndex2] = size;\n }\n }\n row2.push(cell);\n }\n cellMatrix[rowIndex] = row2;\n sizeMatrix[rowIndex] = sizes2;\n }\n let columnIndex = -1;\n if (typeof align === \"object\" && \"length\" in align) {\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = toAlignment(align[columnIndex]);\n }\n } else {\n const code2 = toAlignment(align);\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = code2;\n }\n }\n columnIndex = -1;\n const row = [];\n const sizes = [];\n while (++columnIndex < mostCellsPerRow) {\n const code2 = alignments[columnIndex];\n let before = \"\";\n let after = \"\";\n if (code2 === 99) {\n before = \":\";\n after = \":\";\n } else if (code2 === 108) {\n before = \":\";\n } else if (code2 === 114) {\n after = \":\";\n }\n let size = settings.alignDelimiters === false ? 1 : Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n );\n const cell = before + \"-\".repeat(size) + after;\n if (settings.alignDelimiters !== false) {\n size = before.length + size + after.length;\n if (size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size;\n }\n sizes[columnIndex] = size;\n }\n row[columnIndex] = cell;\n }\n cellMatrix.splice(1, 0, row);\n sizeMatrix.splice(1, 0, sizes);\n rowIndex = -1;\n const lines = [];\n while (++rowIndex < cellMatrix.length) {\n const row2 = cellMatrix[rowIndex];\n const sizes2 = sizeMatrix[rowIndex];\n columnIndex = -1;\n const line = [];\n while (++columnIndex < mostCellsPerRow) {\n const cell = row2[columnIndex] || \"\";\n let before = \"\";\n let after = \"\";\n if (settings.alignDelimiters !== false) {\n const size = longestCellByColumn[columnIndex] - (sizes2[columnIndex] || 0);\n const code2 = alignments[columnIndex];\n if (code2 === 114) {\n before = \" \".repeat(size);\n } else if (code2 === 99) {\n if (size % 2) {\n before = \" \".repeat(size / 2 + 0.5);\n after = \" \".repeat(size / 2 - 0.5);\n } else {\n before = \" \".repeat(size / 2);\n after = before;\n }\n } else {\n after = \" \".repeat(size);\n }\n }\n if (settings.delimiterStart !== false && !columnIndex) {\n line.push(\"|\");\n }\n if (settings.padding !== false && // Don’t add the opening space if we’re not aligning and the cell is\n // empty: there will be a closing space.\n !(settings.alignDelimiters === false && cell === \"\") && (settings.delimiterStart !== false || columnIndex)) {\n line.push(\" \");\n }\n if (settings.alignDelimiters !== false) {\n line.push(before);\n }\n line.push(cell);\n if (settings.alignDelimiters !== false) {\n line.push(after);\n }\n if (settings.padding !== false) {\n line.push(\" \");\n }\n if (settings.delimiterEnd !== false || columnIndex !== mostCellsPerRow - 1) {\n line.push(\"|\");\n }\n }\n lines.push(\n settings.delimiterEnd === false ? line.join(\"\").replace(/ +$/, \"\") : line.join(\"\")\n );\n }\n return lines.join(\"\\n\");\n}\nfunction serialize(value) {\n return value === null || value === void 0 ? \"\" : String(value);\n}\nfunction toAlignment(value) {\n const code2 = typeof value === \"string\" ? value.codePointAt(0) : 0;\n return code2 === 67 || code2 === 99 ? 99 : code2 === 76 || code2 === 108 ? 108 : code2 === 82 || code2 === 114 ? 114 : 0;\n}\nfunction blockquote(node, _, state, info) {\n const exit2 = state.enter(\"blockquote\");\n const tracker = state.createTracker(info);\n tracker.move(\"> \");\n tracker.shift(2);\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map$1\n );\n exit2();\n return value;\n}\nfunction map$1(line, _, blank) {\n return \">\" + (blank ? \"\" : \" \") + line;\n}\nfunction patternInScope(stack, pattern) {\n return listInScope(stack, pattern.inConstruct, true) && !listInScope(stack, pattern.notInConstruct, false);\n}\nfunction listInScope(stack, list2, none) {\n if (typeof list2 === \"string\") {\n list2 = [list2];\n }\n if (!list2 || list2.length === 0) {\n return none;\n }\n let index = -1;\n while (++index < list2.length) {\n if (stack.includes(list2[index])) {\n return true;\n }\n }\n return false;\n}\nfunction hardBreak(_, _1, state, info) {\n let index = -1;\n while (++index < state.unsafe.length) {\n if (state.unsafe[index].character === \"\\n\" && patternInScope(state.stack, state.unsafe[index])) {\n return /[ \\t]/.test(info.before) ? \"\" : \" \";\n }\n }\n return \"\\\\\\n\";\n}\nfunction longestStreak(value, substring) {\n const source = String(value);\n let index = source.indexOf(substring);\n let expected = index;\n let count = 0;\n let max = 0;\n if (typeof substring !== \"string\") {\n throw new TypeError(\"Expected substring\");\n }\n while (index !== -1) {\n if (index === expected) {\n if (++count > max) {\n max = count;\n }\n } else {\n count = 1;\n }\n expected = index + substring.length;\n index = source.indexOf(substring, expected);\n }\n return max;\n}\nfunction formatCodeAsIndented(node, state) {\n return Boolean(\n state.options.fences === false && node.value && // If there’s no info…\n !node.lang && // And there’s a non-whitespace character…\n /[^ \\r\\n]/.test(node.value) && // And the value doesn’t start or end in a blank…\n !/^[\\t ]*(?:[\\r\\n]|$)|(?:^|[\\r\\n])[\\t ]*$/.test(node.value)\n );\n}\nfunction checkFence(state) {\n const marker = state.options.fence || \"`\";\n if (marker !== \"`\" && marker !== \"~\") {\n throw new Error(\n \"Cannot serialize code with `\" + marker + \"` for `options.fence`, expected `` ` `` or `~`\"\n );\n }\n return marker;\n}\nfunction code$1(node, _, state, info) {\n const marker = checkFence(state);\n const raw = node.value || \"\";\n const suffix = marker === \"`\" ? \"GraveAccent\" : \"Tilde\";\n if (formatCodeAsIndented(node, state)) {\n const exit3 = state.enter(\"codeIndented\");\n const value2 = state.indentLines(raw, map);\n exit3();\n return value2;\n }\n const tracker = state.createTracker(info);\n const sequence = marker.repeat(Math.max(longestStreak(raw, marker) + 1, 3));\n const exit2 = state.enter(\"codeFenced\");\n let value = tracker.move(sequence);\n if (node.lang) {\n const subexit = state.enter(`codeFencedLang${suffix}`);\n value += tracker.move(\n state.safe(node.lang, {\n before: value,\n after: \" \",\n encode: [\"`\"],\n ...tracker.current()\n })\n );\n subexit();\n }\n if (node.lang && node.meta) {\n const subexit = state.enter(`codeFencedMeta${suffix}`);\n value += tracker.move(\" \");\n value += tracker.move(\n state.safe(node.meta, {\n before: value,\n after: \"\\n\",\n encode: [\"`\"],\n ...tracker.current()\n })\n );\n subexit();\n }\n value += tracker.move(\"\\n\");\n if (raw) {\n value += tracker.move(raw + \"\\n\");\n }\n value += tracker.move(sequence);\n exit2();\n return value;\n}\nfunction map(line, _, blank) {\n return (blank ? \"\" : \" \") + line;\n}\nfunction checkQuote(state) {\n const marker = state.options.quote || '\"';\n if (marker !== '\"' && marker !== \"'\") {\n throw new Error(\n \"Cannot serialize title with `\" + marker + \"` for `options.quote`, expected `\\\"`, or `'`\"\n );\n }\n return marker;\n}\nfunction definition(node, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const exit2 = state.enter(\"definition\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[\");\n value += tracker.move(\n state.safe(state.associationId(node), {\n before: value,\n after: \"]\",\n ...tracker.current()\n })\n );\n value += tracker.move(\"]: \");\n subexit();\n if (\n // If there’s no url, or…\n !node.url || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? \" \" : \"\\n\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n exit2();\n return value;\n}\nfunction checkEmphasis(state) {\n const marker = state.options.emphasis || \"*\";\n if (marker !== \"*\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize emphasis with `\" + marker + \"` for `options.emphasis`, expected `*`, or `_`\"\n );\n }\n return marker;\n}\nfunction encodeCharacterReference(code2) {\n return \"&#x\" + code2.toString(16).toUpperCase() + \";\";\n}\nfunction classifyCharacter(code2) {\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return 1;\n }\n if (unicodePunctuation(code2)) {\n return 2;\n }\n}\nfunction encodeInfo(outside, inside, marker) {\n const outsideKind = classifyCharacter(outside);\n const insideKind = classifyCharacter(inside);\n if (outsideKind === void 0) {\n return insideKind === void 0 ? (\n // Letter inside:\n // we have to encode *both* letters for `_` as it is looser.\n // it already forms for `*` (and GFMs `~`).\n marker === \"_\" ? { inside: true, outside: true } : { inside: false, outside: false }\n ) : insideKind === 1 ? (\n // Whitespace inside: encode both (letter, whitespace).\n { inside: true, outside: true }\n ) : (\n // Punctuation inside: encode outer (letter)\n { inside: false, outside: true }\n );\n }\n if (outsideKind === 1) {\n return insideKind === void 0 ? (\n // Letter inside: already forms.\n { inside: false, outside: false }\n ) : insideKind === 1 ? (\n // Whitespace inside: encode both (whitespace).\n { inside: true, outside: true }\n ) : (\n // Punctuation inside: already forms.\n { inside: false, outside: false }\n );\n }\n return insideKind === void 0 ? (\n // Letter inside: already forms.\n { inside: false, outside: false }\n ) : insideKind === 1 ? (\n // Whitespace inside: encode inner (whitespace).\n { inside: true, outside: false }\n ) : (\n // Punctuation inside: already forms.\n { inside: false, outside: false }\n );\n}\nemphasis.peek = emphasisPeek;\nfunction emphasis(node, _, state, info) {\n const marker = checkEmphasis(state);\n const exit2 = state.enter(\"emphasis\");\n const tracker = state.createTracker(info);\n const before = tracker.move(marker);\n let between = tracker.move(\n state.containerPhrasing(node, {\n after: marker,\n before,\n ...tracker.current()\n })\n );\n const betweenHead = between.charCodeAt(0);\n const open = encodeInfo(\n info.before.charCodeAt(info.before.length - 1),\n betweenHead,\n marker\n );\n if (open.inside) {\n between = encodeCharacterReference(betweenHead) + between.slice(1);\n }\n const betweenTail = between.charCodeAt(between.length - 1);\n const close = encodeInfo(info.after.charCodeAt(0), betweenTail, marker);\n if (close.inside) {\n between = between.slice(0, -1) + encodeCharacterReference(betweenTail);\n }\n const after = tracker.move(marker);\n exit2();\n state.attentionEncodeSurroundingInfo = {\n after: close.outside,\n before: open.outside\n };\n return before + between + after;\n}\nfunction emphasisPeek(_, _1, state) {\n return state.options.emphasis || \"*\";\n}\nfunction visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n let reverse;\n let test;\n let visitor;\n if (typeof testOrVisitor === \"function\" && typeof visitorOrReverse !== \"function\") {\n test = void 0;\n visitor = testOrVisitor;\n reverse = visitorOrReverse;\n } else {\n test = testOrVisitor;\n visitor = visitorOrReverse;\n reverse = maybeReverse;\n }\n visitParents(tree, test, overload, reverse);\n function overload(node, parents) {\n const parent = parents[parents.length - 1];\n const index = parent ? parent.children.indexOf(node) : void 0;\n return visitor(node, index, parent);\n }\n}\nfunction formatHeadingAsSetext(node, state) {\n let literalWithBreak = false;\n visit(node, function(node2) {\n if (\"value\" in node2 && /\\r?\\n|\\r/.test(node2.value) || node2.type === \"break\") {\n literalWithBreak = true;\n return EXIT;\n }\n });\n return Boolean(\n (!node.depth || node.depth < 3) && toString(node) && (state.options.setext || literalWithBreak)\n );\n}\nfunction heading(node, _, state, info) {\n const rank = Math.max(Math.min(6, node.depth || 1), 1);\n const tracker = state.createTracker(info);\n if (formatHeadingAsSetext(node, state)) {\n const exit3 = state.enter(\"headingSetext\");\n const subexit2 = state.enter(\"phrasing\");\n const value2 = state.containerPhrasing(node, {\n ...tracker.current(),\n before: \"\\n\",\n after: \"\\n\"\n });\n subexit2();\n exit3();\n return value2 + \"\\n\" + (rank === 1 ? \"=\" : \"-\").repeat(\n // The whole size…\n value2.length - // Minus the position of the character after the last EOL (or\n // 0 if there is none)…\n (Math.max(value2.lastIndexOf(\"\\r\"), value2.lastIndexOf(\"\\n\")) + 1)\n );\n }\n const sequence = \"#\".repeat(rank);\n const exit2 = state.enter(\"headingAtx\");\n const subexit = state.enter(\"phrasing\");\n tracker.move(sequence + \" \");\n let value = state.containerPhrasing(node, {\n before: \"# \",\n after: \"\\n\",\n ...tracker.current()\n });\n if (/^[\\t ]/.test(value)) {\n value = encodeCharacterReference(value.charCodeAt(0)) + value.slice(1);\n }\n value = value ? sequence + \" \" + value : sequence;\n if (state.options.closeAtx) {\n value += \" \" + sequence;\n }\n subexit();\n exit2();\n return value;\n}\nhtml.peek = htmlPeek;\nfunction html(node) {\n return node.value || \"\";\n}\nfunction htmlPeek() {\n return \"<\";\n}\nimage.peek = imagePeek;\nfunction image(node, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const exit2 = state.enter(\"image\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"![\");\n value += tracker.move(\n state.safe(node.alt, { before: value, after: \"]\", ...tracker.current() })\n );\n value += tracker.move(\"](\");\n subexit();\n if (\n // If there’s no url but there is a title…\n !node.url && node.title || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? \" \" : \")\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n value += tracker.move(\")\");\n exit2();\n return value;\n}\nfunction imagePeek() {\n return \"!\";\n}\nimageReference.peek = imageReferencePeek;\nfunction imageReference(node, _, state, info) {\n const type = node.referenceType;\n const exit2 = state.enter(\"imageReference\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"![\");\n const alt = state.safe(node.alt, {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n value += tracker.move(alt + \"][\");\n subexit();\n const stack = state.stack;\n state.stack = [];\n subexit = state.enter(\"reference\");\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n subexit();\n state.stack = stack;\n exit2();\n if (type === \"full\" || !alt || alt !== reference) {\n value += tracker.move(reference + \"]\");\n } else if (type === \"shortcut\") {\n value = value.slice(0, -1);\n } else {\n value += tracker.move(\"]\");\n }\n return value;\n}\nfunction imageReferencePeek() {\n return \"!\";\n}\ninlineCode.peek = inlineCodePeek;\nfunction inlineCode(node, _, state) {\n let value = node.value || \"\";\n let sequence = \"`\";\n let index = -1;\n while (new RegExp(\"(^|[^`])\" + sequence + \"([^`]|$)\").test(value)) {\n sequence += \"`\";\n }\n if (/[^ \\r\\n]/.test(value) && (/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value) || /^`|`$/.test(value))) {\n value = \" \" + value + \" \";\n }\n while (++index < state.unsafe.length) {\n const pattern = state.unsafe[index];\n const expression = state.compilePattern(pattern);\n let match;\n if (!pattern.atBreak) continue;\n while (match = expression.exec(value)) {\n let position = match.index;\n if (value.charCodeAt(position) === 10 && value.charCodeAt(position - 1) === 13) {\n position--;\n }\n value = value.slice(0, position) + \" \" + value.slice(match.index + 1);\n }\n }\n return sequence + value + sequence;\n}\nfunction inlineCodePeek() {\n return \"`\";\n}\nfunction formatLinkAsAutolink(node, state) {\n const raw = toString(node);\n return Boolean(\n !state.options.resourceLink && // If there’s a url…\n node.url && // And there’s a no title…\n !node.title && // And the content of `node` is a single text node…\n node.children && node.children.length === 1 && node.children[0].type === \"text\" && // And if the url is the same as the content…\n (raw === node.url || \"mailto:\" + raw === node.url) && // And that starts w/ a protocol…\n /^[a-z][a-z+.-]+:/i.test(node.url) && // And that doesn’t contain ASCII control codes (character escapes and\n // references don’t work), space, or angle brackets…\n !/[\\0- <>\\u007F]/.test(node.url)\n );\n}\nlink.peek = linkPeek;\nfunction link(node, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const tracker = state.createTracker(info);\n let exit2;\n let subexit;\n if (formatLinkAsAutolink(node, state)) {\n const stack = state.stack;\n state.stack = [];\n exit2 = state.enter(\"autolink\");\n let value2 = tracker.move(\"<\");\n value2 += tracker.move(\n state.containerPhrasing(node, {\n before: value2,\n after: \">\",\n ...tracker.current()\n })\n );\n value2 += tracker.move(\">\");\n exit2();\n state.stack = stack;\n return value2;\n }\n exit2 = state.enter(\"link\");\n subexit = state.enter(\"label\");\n let value = tracker.move(\"[\");\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: \"](\",\n ...tracker.current()\n })\n );\n value += tracker.move(\"](\");\n subexit();\n if (\n // If there’s no url but there is a title…\n !node.url && node.title || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? \" \" : \")\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n value += tracker.move(\")\");\n exit2();\n return value;\n}\nfunction linkPeek(node, _, state) {\n return formatLinkAsAutolink(node, state) ? \"<\" : \"[\";\n}\nlinkReference.peek = linkReferencePeek;\nfunction linkReference(node, _, state, info) {\n const type = node.referenceType;\n const exit2 = state.enter(\"linkReference\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[\");\n const text2 = state.containerPhrasing(node, {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n value += tracker.move(text2 + \"][\");\n subexit();\n const stack = state.stack;\n state.stack = [];\n subexit = state.enter(\"reference\");\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n subexit();\n state.stack = stack;\n exit2();\n if (type === \"full\" || !text2 || text2 !== reference) {\n value += tracker.move(reference + \"]\");\n } else if (type === \"shortcut\") {\n value = value.slice(0, -1);\n } else {\n value += tracker.move(\"]\");\n }\n return value;\n}\nfunction linkReferencePeek() {\n return \"[\";\n}\nfunction checkBullet(state) {\n const marker = state.options.bullet || \"*\";\n if (marker !== \"*\" && marker !== \"+\" && marker !== \"-\") {\n throw new Error(\n \"Cannot serialize items with `\" + marker + \"` for `options.bullet`, expected `*`, `+`, or `-`\"\n );\n }\n return marker;\n}\nfunction checkBulletOther(state) {\n const bullet = checkBullet(state);\n const bulletOther = state.options.bulletOther;\n if (!bulletOther) {\n return bullet === \"*\" ? \"-\" : \"*\";\n }\n if (bulletOther !== \"*\" && bulletOther !== \"+\" && bulletOther !== \"-\") {\n throw new Error(\n \"Cannot serialize items with `\" + bulletOther + \"` for `options.bulletOther`, expected `*`, `+`, or `-`\"\n );\n }\n if (bulletOther === bullet) {\n throw new Error(\n \"Expected `bullet` (`\" + bullet + \"`) and `bulletOther` (`\" + bulletOther + \"`) to be different\"\n );\n }\n return bulletOther;\n}\nfunction checkBulletOrdered(state) {\n const marker = state.options.bulletOrdered || \".\";\n if (marker !== \".\" && marker !== \")\") {\n throw new Error(\n \"Cannot serialize items with `\" + marker + \"` for `options.bulletOrdered`, expected `.` or `)`\"\n );\n }\n return marker;\n}\nfunction checkRule(state) {\n const marker = state.options.rule || \"*\";\n if (marker !== \"*\" && marker !== \"-\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize rules with `\" + marker + \"` for `options.rule`, expected `*`, `-`, or `_`\"\n );\n }\n return marker;\n}\nfunction list(node, parent, state, info) {\n const exit2 = state.enter(\"list\");\n const bulletCurrent = state.bulletCurrent;\n let bullet = node.ordered ? checkBulletOrdered(state) : checkBullet(state);\n const bulletOther = node.ordered ? bullet === \".\" ? \")\" : \".\" : checkBulletOther(state);\n let useDifferentMarker = parent && state.bulletLastUsed ? bullet === state.bulletLastUsed : false;\n if (!node.ordered) {\n const firstListItem = node.children ? node.children[0] : void 0;\n if (\n // Bullet could be used as a thematic break marker:\n (bullet === \"*\" || bullet === \"-\") && // Empty first list item:\n firstListItem && (!firstListItem.children || !firstListItem.children[0]) && // Directly in two other list items:\n state.stack[state.stack.length - 1] === \"list\" && state.stack[state.stack.length - 2] === \"listItem\" && state.stack[state.stack.length - 3] === \"list\" && state.stack[state.stack.length - 4] === \"listItem\" && // That are each the first child.\n state.indexStack[state.indexStack.length - 1] === 0 && state.indexStack[state.indexStack.length - 2] === 0 && state.indexStack[state.indexStack.length - 3] === 0\n ) {\n useDifferentMarker = true;\n }\n if (checkRule(state) === bullet && firstListItem) {\n let index = -1;\n while (++index < node.children.length) {\n const item = node.children[index];\n if (item && item.type === \"listItem\" && item.children && item.children[0] && item.children[0].type === \"thematicBreak\") {\n useDifferentMarker = true;\n break;\n }\n }\n }\n }\n if (useDifferentMarker) {\n bullet = bulletOther;\n }\n state.bulletCurrent = bullet;\n const value = state.containerFlow(node, info);\n state.bulletLastUsed = bullet;\n state.bulletCurrent = bulletCurrent;\n exit2();\n return value;\n}\nfunction checkListItemIndent(state) {\n const style = state.options.listItemIndent || \"one\";\n if (style !== \"tab\" && style !== \"one\" && style !== \"mixed\") {\n throw new Error(\n \"Cannot serialize items with `\" + style + \"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`\"\n );\n }\n return style;\n}\nfunction listItem(node, parent, state, info) {\n const listItemIndent = checkListItemIndent(state);\n let bullet = state.bulletCurrent || checkBullet(state);\n if (parent && parent.type === \"list\" && parent.ordered) {\n bullet = (typeof parent.start === \"number\" && parent.start > -1 ? parent.start : 1) + (state.options.incrementListMarker === false ? 0 : parent.children.indexOf(node)) + bullet;\n }\n let size = bullet.length + 1;\n if (listItemIndent === \"tab\" || listItemIndent === \"mixed\" && (parent && parent.type === \"list\" && parent.spread || node.spread)) {\n size = Math.ceil(size / 4) * 4;\n }\n const tracker = state.createTracker(info);\n tracker.move(bullet + \" \".repeat(size - bullet.length));\n tracker.shift(size);\n const exit2 = state.enter(\"listItem\");\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map2\n );\n exit2();\n return value;\n function map2(line, index, blank) {\n if (index) {\n return (blank ? \"\" : \" \".repeat(size)) + line;\n }\n return (blank ? bullet : bullet + \" \".repeat(size - bullet.length)) + line;\n }\n}\nfunction paragraph(node, _, state, info) {\n const exit2 = state.enter(\"paragraph\");\n const subexit = state.enter(\"phrasing\");\n const value = state.containerPhrasing(node, info);\n subexit();\n exit2();\n return value;\n}\nconst phrasing = (\n /** @type {(node?: unknown) => node is Exclude} */\n convert([\n \"break\",\n \"delete\",\n \"emphasis\",\n // To do: next major: removed since footnotes were added to GFM.\n \"footnote\",\n \"footnoteReference\",\n \"image\",\n \"imageReference\",\n \"inlineCode\",\n // Enabled by `mdast-util-math`:\n \"inlineMath\",\n \"link\",\n \"linkReference\",\n // Enabled by `mdast-util-mdx`:\n \"mdxJsxTextElement\",\n // Enabled by `mdast-util-mdx`:\n \"mdxTextExpression\",\n \"strong\",\n \"text\",\n // Enabled by `mdast-util-directive`:\n \"textDirective\"\n ])\n);\nfunction root(node, _, state, info) {\n const hasPhrasing = node.children.some(function(d) {\n return phrasing(d);\n });\n const container = hasPhrasing ? state.containerPhrasing : state.containerFlow;\n return container.call(state, node, info);\n}\nfunction checkStrong(state) {\n const marker = state.options.strong || \"*\";\n if (marker !== \"*\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize strong with `\" + marker + \"` for `options.strong`, expected `*`, or `_`\"\n );\n }\n return marker;\n}\nstrong.peek = strongPeek;\nfunction strong(node, _, state, info) {\n const marker = checkStrong(state);\n const exit2 = state.enter(\"strong\");\n const tracker = state.createTracker(info);\n const before = tracker.move(marker + marker);\n let between = tracker.move(\n state.containerPhrasing(node, {\n after: marker,\n before,\n ...tracker.current()\n })\n );\n const betweenHead = between.charCodeAt(0);\n const open = encodeInfo(\n info.before.charCodeAt(info.before.length - 1),\n betweenHead,\n marker\n );\n if (open.inside) {\n between = encodeCharacterReference(betweenHead) + between.slice(1);\n }\n const betweenTail = between.charCodeAt(between.length - 1);\n const close = encodeInfo(info.after.charCodeAt(0), betweenTail, marker);\n if (close.inside) {\n between = between.slice(0, -1) + encodeCharacterReference(betweenTail);\n }\n const after = tracker.move(marker + marker);\n exit2();\n state.attentionEncodeSurroundingInfo = {\n after: close.outside,\n before: open.outside\n };\n return before + between + after;\n}\nfunction strongPeek(_, _1, state) {\n return state.options.strong || \"*\";\n}\nfunction text$1(node, _, state, info) {\n return state.safe(node.value, info);\n}\nfunction checkRuleRepetition(state) {\n const repetition = state.options.ruleRepetition || 3;\n if (repetition < 3) {\n throw new Error(\n \"Cannot serialize rules with repetition `\" + repetition + \"` for `options.ruleRepetition`, expected `3` or more\"\n );\n }\n return repetition;\n}\nfunction thematicBreak(_, _1, state) {\n const value = (checkRule(state) + (state.options.ruleSpaces ? \" \" : \"\")).repeat(checkRuleRepetition(state));\n return state.options.ruleSpaces ? value.slice(0, -1) : value;\n}\nconst handle = {\n blockquote,\n break: hardBreak,\n code: code$1,\n definition,\n emphasis,\n hardBreak,\n heading,\n html,\n image,\n imageReference,\n inlineCode,\n link,\n linkReference,\n list,\n listItem,\n paragraph,\n root,\n strong,\n text: text$1,\n thematicBreak\n};\nfunction gfmTableFromMarkdown() {\n return {\n enter: {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n },\n exit: {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n }\n };\n}\nfunction enterTable(token) {\n const align = token._align;\n this.enter(\n {\n type: \"table\",\n align: align.map(function(d) {\n return d === \"none\" ? null : d;\n }),\n children: []\n },\n token\n );\n this.data.inTable = true;\n}\nfunction exitTable(token) {\n this.exit(token);\n this.data.inTable = void 0;\n}\nfunction enterRow(token) {\n this.enter({ type: \"tableRow\", children: [] }, token);\n}\nfunction exit(token) {\n this.exit(token);\n}\nfunction enterCell(token) {\n this.enter({ type: \"tableCell\", children: [] }, token);\n}\nfunction exitCodeText(token) {\n let value = this.resume();\n if (this.data.inTable) {\n value = value.replace(/\\\\([\\\\|])/g, replace);\n }\n const node = this.stack[this.stack.length - 1];\n ok$1(node.type === \"inlineCode\");\n node.value = value;\n this.exit(token);\n}\nfunction replace($0, $1) {\n return $1 === \"|\" ? $1 : $0;\n}\nfunction gfmTableToMarkdown(options) {\n const settings = options || {};\n const padding = settings.tableCellPadding;\n const alignDelimiters = settings.tablePipeAlign;\n const stringLength = settings.stringLength;\n const around = padding ? \" \" : \"|\";\n return {\n unsafe: [\n { character: \"\\r\", inConstruct: \"tableCell\" },\n { character: \"\\n\", inConstruct: \"tableCell\" },\n // A pipe, when followed by a tab or space (padding), or a dash or colon\n // (unpadded delimiter row), could result in a table.\n { atBreak: true, character: \"|\", after: \"[\t :-]\" },\n // A pipe in a cell must be encoded.\n { character: \"|\", inConstruct: \"tableCell\" },\n // A colon must be followed by a dash, in which case it could start a\n // delimiter row.\n { atBreak: true, character: \":\", after: \"-\" },\n // A delimiter row can also start with a dash, when followed by more\n // dashes, a colon, or a pipe.\n // This is a stricter version than the built in check for lists, thematic\n // breaks, and setex heading underlines though:\n // \n { atBreak: true, character: \"-\", after: \"[:|-]\" }\n ],\n handlers: {\n inlineCode: inlineCodeWithTable,\n table: handleTable,\n tableCell: handleTableCell,\n tableRow: handleTableRow\n }\n };\n function handleTable(node, _, state, info) {\n return serializeData(handleTableAsData(node, state, info), node.align);\n }\n function handleTableRow(node, _, state, info) {\n const row = handleTableRowAsData(node, state, info);\n const value = serializeData([row]);\n return value.slice(0, value.indexOf(\"\\n\"));\n }\n function handleTableCell(node, _, state, info) {\n const exit2 = state.enter(\"tableCell\");\n const subexit = state.enter(\"phrasing\");\n const value = state.containerPhrasing(node, {\n ...info,\n before: around,\n after: around\n });\n subexit();\n exit2();\n return value;\n }\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align,\n // @ts-expect-error: `markdown-table` types should support `null`.\n alignDelimiters,\n // @ts-expect-error: `markdown-table` types should support `null`.\n padding,\n // @ts-expect-error: `markdown-table` types should support `null`.\n stringLength\n });\n }\n function handleTableAsData(node, state, info) {\n const children = node.children;\n let index = -1;\n const result = [];\n const subexit = state.enter(\"table\");\n while (++index < children.length) {\n result[index] = handleTableRowAsData(children[index], state, info);\n }\n subexit();\n return result;\n }\n function handleTableRowAsData(node, state, info) {\n const children = node.children;\n let index = -1;\n const result = [];\n const subexit = state.enter(\"tableRow\");\n while (++index < children.length) {\n result[index] = handleTableCell(children[index], node, state, info);\n }\n subexit();\n return result;\n }\n function inlineCodeWithTable(node, parent, state) {\n let value = handle.inlineCode(node, parent, state);\n if (state.stack.includes(\"tableCell\")) {\n value = value.replace(/\\|/g, \"\\\\$&\");\n }\n return value;\n }\n}\nfunction gfmTaskListItemFromMarkdown() {\n return {\n exit: {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n }\n };\n}\nfunction gfmTaskListItemToMarkdown() {\n return {\n unsafe: [{ atBreak: true, character: \"-\", after: \"[:|-]\" }],\n handlers: { listItem: listItemWithTaskListItem }\n };\n}\nfunction exitCheck(token) {\n const node = this.stack[this.stack.length - 2];\n ok$1(node.type === \"listItem\");\n node.checked = token.type === \"taskListCheckValueChecked\";\n}\nfunction exitParagraphWithTaskListItem(token) {\n const parent = this.stack[this.stack.length - 2];\n if (parent && parent.type === \"listItem\" && typeof parent.checked === \"boolean\") {\n const node = this.stack[this.stack.length - 1];\n ok$1(node.type === \"paragraph\");\n const head = node.children[0];\n if (head && head.type === \"text\") {\n const siblings = parent.children;\n let index = -1;\n let firstParaghraph;\n while (++index < siblings.length) {\n const sibling = siblings[index];\n if (sibling.type === \"paragraph\") {\n firstParaghraph = sibling;\n break;\n }\n }\n if (firstParaghraph === node) {\n head.value = head.value.slice(1);\n if (head.value.length === 0) {\n node.children.shift();\n } else if (node.position && head.position && typeof head.position.start.offset === \"number\") {\n head.position.start.column++;\n head.position.start.offset++;\n node.position.start = Object.assign({}, head.position.start);\n }\n }\n }\n }\n this.exit(token);\n}\nfunction listItemWithTaskListItem(node, parent, state, info) {\n const head = node.children[0];\n const checkable = typeof node.checked === \"boolean\" && head && head.type === \"paragraph\";\n const checkbox = \"[\" + (node.checked ? \"x\" : \" \") + \"] \";\n const tracker = state.createTracker(info);\n if (checkable) {\n tracker.move(checkbox);\n }\n let value = handle.listItem(node, parent, state, {\n ...info,\n ...tracker.current()\n });\n if (checkable) {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check);\n }\n return value;\n function check($0) {\n return $0 + checkbox;\n }\n}\nfunction gfmFromMarkdown() {\n return [\n gfmAutolinkLiteralFromMarkdown(),\n gfmFootnoteFromMarkdown(),\n gfmStrikethroughFromMarkdown(),\n gfmTableFromMarkdown(),\n gfmTaskListItemFromMarkdown()\n ];\n}\nfunction gfmToMarkdown(options) {\n return {\n extensions: [\n gfmAutolinkLiteralToMarkdown(),\n gfmFootnoteToMarkdown(options),\n gfmStrikethroughToMarkdown(),\n gfmTableToMarkdown(options),\n gfmTaskListItemToMarkdown()\n ]\n };\n}\nfunction splice(list2, start, remove, items) {\n const end = list2.length;\n let chunkStart = 0;\n let parameters;\n if (start < 0) {\n start = -start > end ? 0 : end + start;\n } else {\n start = start > end ? end : start;\n }\n remove = remove > 0 ? remove : 0;\n if (items.length < 1e4) {\n parameters = Array.from(items);\n parameters.unshift(start, remove);\n list2.splice(...parameters);\n } else {\n if (remove) list2.splice(start, remove);\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 1e4);\n parameters.unshift(start, 0);\n list2.splice(...parameters);\n chunkStart += 1e4;\n start += 1e4;\n }\n }\n}\nconst hasOwnProperty = {}.hasOwnProperty;\nfunction combineExtensions(extensions) {\n const all = {};\n let index = -1;\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index]);\n }\n return all;\n}\nfunction syntaxExtension(all, extension) {\n let hook;\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : void 0;\n const left = maybe || (all[hook] = {});\n const right = extension[hook];\n let code2;\n if (right) {\n for (code2 in right) {\n if (!hasOwnProperty.call(left, code2)) left[code2] = [];\n const value = right[code2];\n constructs(\n // @ts-expect-error Looks like a list.\n left[code2],\n Array.isArray(value) ? value : value ? [value] : []\n );\n }\n }\n }\n}\nfunction constructs(existing, list2) {\n let index = -1;\n const before = [];\n while (++index < list2.length) {\n (list2[index].add === \"after\" ? existing : before).push(list2[index]);\n }\n splice(existing, 0, 0, before);\n}\nconst wwwPrefix = {\n tokenize: tokenizeWwwPrefix,\n partial: true\n};\nconst domain = {\n tokenize: tokenizeDomain,\n partial: true\n};\nconst path = {\n tokenize: tokenizePath,\n partial: true\n};\nconst trail = {\n tokenize: tokenizeTrail,\n partial: true\n};\nconst emailDomainDotTrail = {\n tokenize: tokenizeEmailDomainDotTrail,\n partial: true\n};\nconst wwwAutolink = {\n name: \"wwwAutolink\",\n tokenize: tokenizeWwwAutolink,\n previous: previousWww\n};\nconst protocolAutolink = {\n name: \"protocolAutolink\",\n tokenize: tokenizeProtocolAutolink,\n previous: previousProtocol\n};\nconst emailAutolink = {\n name: \"emailAutolink\",\n tokenize: tokenizeEmailAutolink,\n previous: previousEmail\n};\nconst text = {};\nfunction gfmAutolinkLiteral() {\n return {\n text\n };\n}\nlet code = 48;\nwhile (code < 123) {\n text[code] = emailAutolink;\n code++;\n if (code === 58) code = 65;\n else if (code === 91) code = 97;\n}\ntext[43] = emailAutolink;\ntext[45] = emailAutolink;\ntext[46] = emailAutolink;\ntext[95] = emailAutolink;\ntext[72] = [emailAutolink, protocolAutolink];\ntext[104] = [emailAutolink, protocolAutolink];\ntext[87] = [emailAutolink, wwwAutolink];\ntext[119] = [emailAutolink, wwwAutolink];\nfunction tokenizeEmailAutolink(effects, ok2, nok) {\n const self = this;\n let dot;\n let data;\n return start;\n function start(code2) {\n if (!gfmAtext(code2) || !previousEmail.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code2);\n }\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkEmail\");\n return atext(code2);\n }\n function atext(code2) {\n if (gfmAtext(code2)) {\n effects.consume(code2);\n return atext;\n }\n if (code2 === 64) {\n effects.consume(code2);\n return emailDomain;\n }\n return nok(code2);\n }\n function emailDomain(code2) {\n if (code2 === 46) {\n return effects.check(emailDomainDotTrail, emailDomainAfter, emailDomainDot)(code2);\n }\n if (code2 === 45 || code2 === 95 || asciiAlphanumeric(code2)) {\n data = true;\n effects.consume(code2);\n return emailDomain;\n }\n return emailDomainAfter(code2);\n }\n function emailDomainDot(code2) {\n effects.consume(code2);\n dot = true;\n return emailDomain;\n }\n function emailDomainAfter(code2) {\n if (data && dot && asciiAlpha(self.previous)) {\n effects.exit(\"literalAutolinkEmail\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n return nok(code2);\n }\n}\nfunction tokenizeWwwAutolink(effects, ok2, nok) {\n const self = this;\n return wwwStart;\n function wwwStart(code2) {\n if (code2 !== 87 && code2 !== 119 || !previousWww.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code2);\n }\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkWww\");\n return effects.check(wwwPrefix, effects.attempt(domain, effects.attempt(path, wwwAfter), nok), nok)(code2);\n }\n function wwwAfter(code2) {\n effects.exit(\"literalAutolinkWww\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n}\nfunction tokenizeProtocolAutolink(effects, ok2, nok) {\n const self = this;\n let buffer = \"\";\n let seen = false;\n return protocolStart;\n function protocolStart(code2) {\n if ((code2 === 72 || code2 === 104) && previousProtocol.call(self, self.previous) && !previousUnbalanced(self.events)) {\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkHttp\");\n buffer += String.fromCodePoint(code2);\n effects.consume(code2);\n return protocolPrefixInside;\n }\n return nok(code2);\n }\n function protocolPrefixInside(code2) {\n if (asciiAlpha(code2) && buffer.length < 5) {\n buffer += String.fromCodePoint(code2);\n effects.consume(code2);\n return protocolPrefixInside;\n }\n if (code2 === 58) {\n const protocol = buffer.toLowerCase();\n if (protocol === \"http\" || protocol === \"https\") {\n effects.consume(code2);\n return protocolSlashesInside;\n }\n }\n return nok(code2);\n }\n function protocolSlashesInside(code2) {\n if (code2 === 47) {\n effects.consume(code2);\n if (seen) {\n return afterProtocol;\n }\n seen = true;\n return protocolSlashesInside;\n }\n return nok(code2);\n }\n function afterProtocol(code2) {\n return code2 === null || asciiControl(code2) || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2) || unicodePunctuation(code2) ? nok(code2) : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code2);\n }\n function protocolAfter(code2) {\n effects.exit(\"literalAutolinkHttp\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n}\nfunction tokenizeWwwPrefix(effects, ok2, nok) {\n let size = 0;\n return wwwPrefixInside;\n function wwwPrefixInside(code2) {\n if ((code2 === 87 || code2 === 119) && size < 3) {\n size++;\n effects.consume(code2);\n return wwwPrefixInside;\n }\n if (code2 === 46 && size === 3) {\n effects.consume(code2);\n return wwwPrefixAfter;\n }\n return nok(code2);\n }\n function wwwPrefixAfter(code2) {\n return code2 === null ? nok(code2) : ok2(code2);\n }\n}\nfunction tokenizeDomain(effects, ok2, nok) {\n let underscoreInLastSegment;\n let underscoreInLastLastSegment;\n let seen;\n return domainInside;\n function domainInside(code2) {\n if (code2 === 46 || code2 === 95) {\n return effects.check(trail, domainAfter, domainAtPunctuation)(code2);\n }\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2) || code2 !== 45 && unicodePunctuation(code2)) {\n return domainAfter(code2);\n }\n seen = true;\n effects.consume(code2);\n return domainInside;\n }\n function domainAtPunctuation(code2) {\n if (code2 === 95) {\n underscoreInLastSegment = true;\n } else {\n underscoreInLastLastSegment = underscoreInLastSegment;\n underscoreInLastSegment = void 0;\n }\n effects.consume(code2);\n return domainInside;\n }\n function domainAfter(code2) {\n if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) {\n return nok(code2);\n }\n return ok2(code2);\n }\n}\nfunction tokenizePath(effects, ok2) {\n let sizeOpen = 0;\n let sizeClose = 0;\n return pathInside;\n function pathInside(code2) {\n if (code2 === 40) {\n sizeOpen++;\n effects.consume(code2);\n return pathInside;\n }\n if (code2 === 41 && sizeClose < sizeOpen) {\n return pathAtPunctuation(code2);\n }\n if (code2 === 33 || code2 === 34 || code2 === 38 || code2 === 39 || code2 === 41 || code2 === 42 || code2 === 44 || code2 === 46 || code2 === 58 || code2 === 59 || code2 === 60 || code2 === 63 || code2 === 93 || code2 === 95 || code2 === 126) {\n return effects.check(trail, ok2, pathAtPunctuation)(code2);\n }\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return ok2(code2);\n }\n effects.consume(code2);\n return pathInside;\n }\n function pathAtPunctuation(code2) {\n if (code2 === 41) {\n sizeClose++;\n }\n effects.consume(code2);\n return pathInside;\n }\n}\nfunction tokenizeTrail(effects, ok2, nok) {\n return trail2;\n function trail2(code2) {\n if (code2 === 33 || code2 === 34 || code2 === 39 || code2 === 41 || code2 === 42 || code2 === 44 || code2 === 46 || code2 === 58 || code2 === 59 || code2 === 63 || code2 === 95 || code2 === 126) {\n effects.consume(code2);\n return trail2;\n }\n if (code2 === 38) {\n effects.consume(code2);\n return trailCharacterReferenceStart;\n }\n if (code2 === 93) {\n effects.consume(code2);\n return trailBracketAfter;\n }\n if (\n // `<` is an end.\n code2 === 60 || // So is whitespace.\n code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)\n ) {\n return ok2(code2);\n }\n return nok(code2);\n }\n function trailBracketAfter(code2) {\n if (code2 === null || code2 === 40 || code2 === 91 || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return ok2(code2);\n }\n return trail2(code2);\n }\n function trailCharacterReferenceStart(code2) {\n return asciiAlpha(code2) ? trailCharacterReferenceInside(code2) : nok(code2);\n }\n function trailCharacterReferenceInside(code2) {\n if (code2 === 59) {\n effects.consume(code2);\n return trail2;\n }\n if (asciiAlpha(code2)) {\n effects.consume(code2);\n return trailCharacterReferenceInside;\n }\n return nok(code2);\n }\n}\nfunction tokenizeEmailDomainDotTrail(effects, ok2, nok) {\n return start;\n function start(code2) {\n effects.consume(code2);\n return after;\n }\n function after(code2) {\n return asciiAlphanumeric(code2) ? nok(code2) : ok2(code2);\n }\n}\nfunction previousWww(code2) {\n return code2 === null || code2 === 40 || code2 === 42 || code2 === 95 || code2 === 91 || code2 === 93 || code2 === 126 || markdownLineEndingOrSpace(code2);\n}\nfunction previousProtocol(code2) {\n return !asciiAlpha(code2);\n}\nfunction previousEmail(code2) {\n return !(code2 === 47 || gfmAtext(code2));\n}\nfunction gfmAtext(code2) {\n return code2 === 43 || code2 === 45 || code2 === 46 || code2 === 95 || asciiAlphanumeric(code2);\n}\nfunction previousUnbalanced(events) {\n let index = events.length;\n let result = false;\n while (index--) {\n const token = events[index][1];\n if ((token.type === \"labelLink\" || token.type === \"labelImage\") && !token._balanced) {\n result = true;\n break;\n }\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false;\n break;\n }\n }\n if (events.length > 0 && !result) {\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true;\n }\n return result;\n}\nfunction resolveAll(constructs2, events, context) {\n const called = [];\n let index = -1;\n while (++index < constructs2.length) {\n const resolve = constructs2[index].resolveAll;\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context);\n called.push(resolve);\n }\n }\n return events;\n}\nfunction factorySpace(effects, ok2, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY;\n let size = 0;\n return start;\n function start(code2) {\n if (markdownSpace(code2)) {\n effects.enter(type);\n return prefix(code2);\n }\n return ok2(code2);\n }\n function prefix(code2) {\n if (markdownSpace(code2) && size++ < limit) {\n effects.consume(code2);\n return prefix;\n }\n effects.exit(type);\n return ok2(code2);\n }\n}\nconst blankLine = {\n partial: true,\n tokenize: tokenizeBlankLine\n};\nfunction tokenizeBlankLine(effects, ok2, nok) {\n return start;\n function start(code2) {\n return markdownSpace(code2) ? factorySpace(effects, after, \"linePrefix\")(code2) : after(code2);\n }\n function after(code2) {\n return code2 === null || markdownLineEnding(code2) ? ok2(code2) : nok(code2);\n }\n}\nconst indent = {\n tokenize: tokenizeIndent,\n partial: true\n};\nfunction gfmFootnote() {\n return {\n document: {\n [91]: {\n name: \"gfmFootnoteDefinition\",\n tokenize: tokenizeDefinitionStart,\n continuation: {\n tokenize: tokenizeDefinitionContinuation\n },\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [91]: {\n name: \"gfmFootnoteCall\",\n tokenize: tokenizeGfmFootnoteCall\n },\n [93]: {\n name: \"gfmPotentialFootnoteCall\",\n add: \"after\",\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n };\n}\nfunction tokenizePotentialGfmFootnoteCall(effects, ok2, nok) {\n const self = this;\n let index = self.events.length;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let labelStart;\n while (index--) {\n const token = self.events[index][1];\n if (token.type === \"labelImage\") {\n labelStart = token;\n break;\n }\n if (token.type === \"gfmFootnoteCall\" || token.type === \"labelLink\" || token.type === \"label\" || token.type === \"image\" || token.type === \"link\") {\n break;\n }\n }\n return start;\n function start(code2) {\n if (!labelStart || !labelStart._balanced) {\n return nok(code2);\n }\n const id = normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n }));\n if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) {\n return nok(code2);\n }\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return ok2(code2);\n }\n}\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length;\n while (index--) {\n if (events[index][1].type === \"labelImage\" && events[index][0] === \"enter\") {\n events[index][1];\n break;\n }\n }\n events[index + 1][1].type = \"data\";\n events[index + 3][1].type = \"gfmFootnoteCallLabelMarker\";\n const call = {\n type: \"gfmFootnoteCall\",\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n const marker = {\n type: \"gfmFootnoteCallMarker\",\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n };\n marker.end.column++;\n marker.end.offset++;\n marker.end._bufferIndex++;\n const string = {\n type: \"gfmFootnoteCallString\",\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n };\n const chunk = {\n type: \"chunkString\",\n contentType: \"string\",\n start: Object.assign({}, string.start),\n end: Object.assign({}, string.end)\n };\n const replacement = [\n // Take the `labelImageMarker` (now `data`, the `!`)\n events[index + 1],\n events[index + 2],\n [\"enter\", call, context],\n // The `[`\n events[index + 3],\n events[index + 4],\n // The `^`.\n [\"enter\", marker, context],\n [\"exit\", marker, context],\n // Everything in between.\n [\"enter\", string, context],\n [\"enter\", chunk, context],\n [\"exit\", chunk, context],\n [\"exit\", string, context],\n // The ending (`]`, properly parsed and labelled).\n events[events.length - 2],\n events[events.length - 1],\n [\"exit\", call, context]\n ];\n events.splice(index, events.length - index + 1, ...replacement);\n return events;\n}\nfunction tokenizeGfmFootnoteCall(effects, ok2, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let size = 0;\n let data;\n return start;\n function start(code2) {\n effects.enter(\"gfmFootnoteCall\");\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return callStart;\n }\n function callStart(code2) {\n if (code2 !== 94) return nok(code2);\n effects.enter(\"gfmFootnoteCallMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallMarker\");\n effects.enter(\"gfmFootnoteCallString\");\n effects.enter(\"chunkString\").contentType = \"string\";\n return callData;\n }\n function callData(code2) {\n if (\n // Too long.\n size > 999 || // Closing brace with nothing.\n code2 === 93 && !data || // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code2 === null || code2 === 91 || markdownLineEndingOrSpace(code2)\n ) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.exit(\"chunkString\");\n const token = effects.exit(\"gfmFootnoteCallString\");\n if (!defined.includes(normalizeIdentifier(self.sliceSerialize(token)))) {\n return nok(code2);\n }\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n effects.exit(\"gfmFootnoteCall\");\n return ok2;\n }\n if (!markdownLineEndingOrSpace(code2)) {\n data = true;\n }\n size++;\n effects.consume(code2);\n return code2 === 92 ? callEscape : callData;\n }\n function callEscape(code2) {\n if (code2 === 91 || code2 === 92 || code2 === 93) {\n effects.consume(code2);\n size++;\n return callData;\n }\n return callData(code2);\n }\n}\nfunction tokenizeDefinitionStart(effects, ok2, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let identifier;\n let size = 0;\n let data;\n return start;\n function start(code2) {\n effects.enter(\"gfmFootnoteDefinition\")._container = true;\n effects.enter(\"gfmFootnoteDefinitionLabel\");\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n return labelAtMarker;\n }\n function labelAtMarker(code2) {\n if (code2 === 94) {\n effects.enter(\"gfmFootnoteDefinitionMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionMarker\");\n effects.enter(\"gfmFootnoteDefinitionLabelString\");\n effects.enter(\"chunkString\").contentType = \"string\";\n return labelInside;\n }\n return nok(code2);\n }\n function labelInside(code2) {\n if (\n // Too long.\n size > 999 || // Closing brace with nothing.\n code2 === 93 && !data || // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code2 === null || code2 === 91 || markdownLineEndingOrSpace(code2)\n ) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.exit(\"chunkString\");\n const token = effects.exit(\"gfmFootnoteDefinitionLabelString\");\n identifier = normalizeIdentifier(self.sliceSerialize(token));\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n effects.exit(\"gfmFootnoteDefinitionLabel\");\n return labelAfter;\n }\n if (!markdownLineEndingOrSpace(code2)) {\n data = true;\n }\n size++;\n effects.consume(code2);\n return code2 === 92 ? labelEscape : labelInside;\n }\n function labelEscape(code2) {\n if (code2 === 91 || code2 === 92 || code2 === 93) {\n effects.consume(code2);\n size++;\n return labelInside;\n }\n return labelInside(code2);\n }\n function labelAfter(code2) {\n if (code2 === 58) {\n effects.enter(\"definitionMarker\");\n effects.consume(code2);\n effects.exit(\"definitionMarker\");\n if (!defined.includes(identifier)) {\n defined.push(identifier);\n }\n return factorySpace(effects, whitespaceAfter, \"gfmFootnoteDefinitionWhitespace\");\n }\n return nok(code2);\n }\n function whitespaceAfter(code2) {\n return ok2(code2);\n }\n}\nfunction tokenizeDefinitionContinuation(effects, ok2, nok) {\n return effects.check(blankLine, ok2, effects.attempt(indent, ok2, nok));\n}\nfunction gfmFootnoteDefinitionEnd(effects) {\n effects.exit(\"gfmFootnoteDefinition\");\n}\nfunction tokenizeIndent(effects, ok2, nok) {\n const self = this;\n return factorySpace(effects, afterPrefix, \"gfmFootnoteDefinitionIndent\", 4 + 1);\n function afterPrefix(code2) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"gfmFootnoteDefinitionIndent\" && tail[2].sliceSerialize(tail[1], true).length === 4 ? ok2(code2) : nok(code2);\n }\n}\nfunction gfmStrikethrough(options) {\n const options_ = options || {};\n let single = options_.singleTilde;\n const tokenizer = {\n name: \"strikethrough\",\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n };\n if (single === null || single === void 0) {\n single = true;\n }\n return {\n text: {\n [126]: tokenizer\n },\n insideSpan: {\n null: [tokenizer]\n },\n attentionMarkers: {\n null: [126]\n }\n };\n function resolveAllStrikethrough(events, context) {\n let index = -1;\n while (++index < events.length) {\n if (events[index][0] === \"enter\" && events[index][1].type === \"strikethroughSequenceTemporary\" && events[index][1]._close) {\n let open = index;\n while (open--) {\n if (events[open][0] === \"exit\" && events[open][1].type === \"strikethroughSequenceTemporary\" && events[open][1]._open && // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset === events[open][1].end.offset - events[open][1].start.offset) {\n events[index][1].type = \"strikethroughSequence\";\n events[open][1].type = \"strikethroughSequence\";\n const strikethrough = {\n type: \"strikethrough\",\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n };\n const text2 = {\n type: \"strikethroughText\",\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n };\n const nextEvents = [[\"enter\", strikethrough, context], [\"enter\", events[open][1], context], [\"exit\", events[open][1], context], [\"enter\", text2, context]];\n const insideSpan = context.parser.constructs.insideSpan.null;\n if (insideSpan) {\n splice(nextEvents, nextEvents.length, 0, resolveAll(insideSpan, events.slice(open + 1, index), context));\n }\n splice(nextEvents, nextEvents.length, 0, [[\"exit\", text2, context], [\"enter\", events[index][1], context], [\"exit\", events[index][1], context], [\"exit\", strikethrough, context]]);\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - 2;\n break;\n }\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === \"strikethroughSequenceTemporary\") {\n events[index][1].type = \"data\";\n }\n }\n return events;\n }\n function tokenizeStrikethrough(effects, ok2, nok) {\n const previous2 = this.previous;\n const events = this.events;\n let size = 0;\n return start;\n function start(code2) {\n if (previous2 === 126 && events[events.length - 1][1].type !== \"characterEscape\") {\n return nok(code2);\n }\n effects.enter(\"strikethroughSequenceTemporary\");\n return more(code2);\n }\n function more(code2) {\n const before = classifyCharacter(previous2);\n if (code2 === 126) {\n if (size > 1) return nok(code2);\n effects.consume(code2);\n size++;\n return more;\n }\n if (size < 2 && !single) return nok(code2);\n const token = effects.exit(\"strikethroughSequenceTemporary\");\n const after = classifyCharacter(code2);\n token._open = !after || after === 2 && Boolean(before);\n token._close = !before || before === 2 && Boolean(after);\n return ok2(code2);\n }\n }\n}\nclass EditMap {\n /**\n * Create a new edit map.\n */\n constructor() {\n this.map = [];\n }\n /**\n * Create an edit: a remove and/or add at a certain place.\n *\n * @param {number} index\n * @param {number} remove\n * @param {Array} add\n * @returns {undefined}\n */\n add(index, remove, add) {\n addImplementation(this, index, remove, add);\n }\n // To do: add this when moving to `micromark`.\n // /**\n // * Create an edit: but insert `add` before existing additions.\n // *\n // * @param {number} index\n // * @param {number} remove\n // * @param {Array} add\n // * @returns {undefined}\n // */\n // addBefore(index, remove, add) {\n // addImplementation(this, index, remove, add, true)\n // }\n /**\n * Done, change the events.\n *\n * @param {Array} events\n * @returns {undefined}\n */\n consume(events) {\n this.map.sort(function(a, b) {\n return a[0] - b[0];\n });\n if (this.map.length === 0) {\n return;\n }\n let index = this.map.length;\n const vecs = [];\n while (index > 0) {\n index -= 1;\n vecs.push(events.slice(this.map[index][0] + this.map[index][1]), this.map[index][2]);\n events.length = this.map[index][0];\n }\n vecs.push(events.slice());\n events.length = 0;\n let slice = vecs.pop();\n while (slice) {\n for (const element of slice) {\n events.push(element);\n }\n slice = vecs.pop();\n }\n this.map.length = 0;\n }\n}\nfunction addImplementation(editMap, at, remove, add) {\n let index = 0;\n if (remove === 0 && add.length === 0) {\n return;\n }\n while (index < editMap.map.length) {\n if (editMap.map[index][0] === at) {\n editMap.map[index][1] += remove;\n editMap.map[index][2].push(...add);\n return;\n }\n index += 1;\n }\n editMap.map.push([at, remove, add]);\n}\nfunction gfmTableAlign(events, index) {\n let inDelimiterRow = false;\n const align = [];\n while (index < events.length) {\n const event = events[index];\n if (inDelimiterRow) {\n if (event[0] === \"enter\") {\n if (event[1].type === \"tableContent\") {\n align.push(events[index + 1][1].type === \"tableDelimiterMarker\" ? \"left\" : \"none\");\n }\n } else if (event[1].type === \"tableContent\") {\n if (events[index - 1][1].type === \"tableDelimiterMarker\") {\n const alignIndex = align.length - 1;\n align[alignIndex] = align[alignIndex] === \"left\" ? \"center\" : \"right\";\n }\n } else if (event[1].type === \"tableDelimiterRow\") {\n break;\n }\n } else if (event[0] === \"enter\" && event[1].type === \"tableDelimiterRow\") {\n inDelimiterRow = true;\n }\n index += 1;\n }\n return align;\n}\nfunction gfmTable() {\n return {\n flow: {\n null: {\n name: \"table\",\n tokenize: tokenizeTable,\n resolveAll: resolveTable\n }\n }\n };\n}\nfunction tokenizeTable(effects, ok2, nok) {\n const self = this;\n let size = 0;\n let sizeB = 0;\n let seen;\n return start;\n function start(code2) {\n let index = self.events.length - 1;\n while (index > -1) {\n const type = self.events[index][1].type;\n if (type === \"lineEnding\" || // Note: markdown-rs uses `whitespace` instead of `linePrefix`\n type === \"linePrefix\") index--;\n else break;\n }\n const tail = index > -1 ? self.events[index][1].type : null;\n const next = tail === \"tableHead\" || tail === \"tableRow\" ? bodyRowStart : headRowBefore;\n if (next === bodyRowStart && self.parser.lazy[self.now().line]) {\n return nok(code2);\n }\n return next(code2);\n }\n function headRowBefore(code2) {\n effects.enter(\"tableHead\");\n effects.enter(\"tableRow\");\n return headRowStart(code2);\n }\n function headRowStart(code2) {\n if (code2 === 124) {\n return headRowBreak(code2);\n }\n seen = true;\n sizeB += 1;\n return headRowBreak(code2);\n }\n function headRowBreak(code2) {\n if (code2 === null) {\n return nok(code2);\n }\n if (markdownLineEnding(code2)) {\n if (sizeB > 1) {\n sizeB = 0;\n self.interrupt = true;\n effects.exit(\"tableRow\");\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return headDelimiterStart;\n }\n return nok(code2);\n }\n if (markdownSpace(code2)) {\n return factorySpace(effects, headRowBreak, \"whitespace\")(code2);\n }\n sizeB += 1;\n if (seen) {\n seen = false;\n size += 1;\n }\n if (code2 === 124) {\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n seen = true;\n return headRowBreak;\n }\n effects.enter(\"data\");\n return headRowData(code2);\n }\n function headRowData(code2) {\n if (code2 === null || code2 === 124 || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"data\");\n return headRowBreak(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? headRowEscape : headRowData;\n }\n function headRowEscape(code2) {\n if (code2 === 92 || code2 === 124) {\n effects.consume(code2);\n return headRowData;\n }\n return headRowData(code2);\n }\n function headDelimiterStart(code2) {\n self.interrupt = false;\n if (self.parser.lazy[self.now().line]) {\n return nok(code2);\n }\n effects.enter(\"tableDelimiterRow\");\n seen = false;\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterBefore, \"linePrefix\", self.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4)(code2);\n }\n return headDelimiterBefore(code2);\n }\n function headDelimiterBefore(code2) {\n if (code2 === 45 || code2 === 58) {\n return headDelimiterValueBefore(code2);\n }\n if (code2 === 124) {\n seen = true;\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n return headDelimiterCellBefore;\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterCellBefore(code2) {\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterValueBefore, \"whitespace\")(code2);\n }\n return headDelimiterValueBefore(code2);\n }\n function headDelimiterValueBefore(code2) {\n if (code2 === 58) {\n sizeB += 1;\n seen = true;\n effects.enter(\"tableDelimiterMarker\");\n effects.consume(code2);\n effects.exit(\"tableDelimiterMarker\");\n return headDelimiterLeftAlignmentAfter;\n }\n if (code2 === 45) {\n sizeB += 1;\n return headDelimiterLeftAlignmentAfter(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n return headDelimiterCellAfter(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterLeftAlignmentAfter(code2) {\n if (code2 === 45) {\n effects.enter(\"tableDelimiterFiller\");\n return headDelimiterFiller(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterFiller(code2) {\n if (code2 === 45) {\n effects.consume(code2);\n return headDelimiterFiller;\n }\n if (code2 === 58) {\n seen = true;\n effects.exit(\"tableDelimiterFiller\");\n effects.enter(\"tableDelimiterMarker\");\n effects.consume(code2);\n effects.exit(\"tableDelimiterMarker\");\n return headDelimiterRightAlignmentAfter;\n }\n effects.exit(\"tableDelimiterFiller\");\n return headDelimiterRightAlignmentAfter(code2);\n }\n function headDelimiterRightAlignmentAfter(code2) {\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterCellAfter, \"whitespace\")(code2);\n }\n return headDelimiterCellAfter(code2);\n }\n function headDelimiterCellAfter(code2) {\n if (code2 === 124) {\n return headDelimiterBefore(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n if (!seen || size !== sizeB) {\n return headDelimiterNok(code2);\n }\n effects.exit(\"tableDelimiterRow\");\n effects.exit(\"tableHead\");\n return ok2(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterNok(code2) {\n return nok(code2);\n }\n function bodyRowStart(code2) {\n effects.enter(\"tableRow\");\n return bodyRowBreak(code2);\n }\n function bodyRowBreak(code2) {\n if (code2 === 124) {\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n return bodyRowBreak;\n }\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"tableRow\");\n return ok2(code2);\n }\n if (markdownSpace(code2)) {\n return factorySpace(effects, bodyRowBreak, \"whitespace\")(code2);\n }\n effects.enter(\"data\");\n return bodyRowData(code2);\n }\n function bodyRowData(code2) {\n if (code2 === null || code2 === 124 || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"data\");\n return bodyRowBreak(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? bodyRowEscape : bodyRowData;\n }\n function bodyRowEscape(code2) {\n if (code2 === 92 || code2 === 124) {\n effects.consume(code2);\n return bodyRowData;\n }\n return bodyRowData(code2);\n }\n}\nfunction resolveTable(events, context) {\n let index = -1;\n let inFirstCellAwaitingPipe = true;\n let rowKind = 0;\n let lastCell = [0, 0, 0, 0];\n let cell = [0, 0, 0, 0];\n let afterHeadAwaitingFirstBodyRow = false;\n let lastTableEnd = 0;\n let currentTable;\n let currentBody;\n let currentCell;\n const map2 = new EditMap();\n while (++index < events.length) {\n const event = events[index];\n const token = event[1];\n if (event[0] === \"enter\") {\n if (token.type === \"tableHead\") {\n afterHeadAwaitingFirstBodyRow = false;\n if (lastTableEnd !== 0) {\n flushTableEnd(map2, context, lastTableEnd, currentTable, currentBody);\n currentBody = void 0;\n lastTableEnd = 0;\n }\n currentTable = {\n type: \"table\",\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map2.add(index, 0, [[\"enter\", currentTable, context]]);\n } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n inFirstCellAwaitingPipe = true;\n currentCell = void 0;\n lastCell = [0, 0, 0, 0];\n cell = [0, index + 1, 0, 0];\n if (afterHeadAwaitingFirstBodyRow) {\n afterHeadAwaitingFirstBodyRow = false;\n currentBody = {\n type: \"tableBody\",\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map2.add(index, 0, [[\"enter\", currentBody, context]]);\n }\n rowKind = token.type === \"tableDelimiterRow\" ? 2 : currentBody ? 3 : 1;\n } else if (rowKind && (token.type === \"data\" || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n inFirstCellAwaitingPipe = false;\n if (cell[2] === 0) {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map2, context, lastCell, rowKind, void 0, currentCell);\n lastCell = [0, 0, 0, 0];\n }\n cell[2] = index;\n }\n } else if (token.type === \"tableCellDivider\") {\n if (inFirstCellAwaitingPipe) {\n inFirstCellAwaitingPipe = false;\n } else {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map2, context, lastCell, rowKind, void 0, currentCell);\n }\n lastCell = cell;\n cell = [lastCell[1], index, 0, 0];\n }\n }\n } else if (token.type === \"tableHead\") {\n afterHeadAwaitingFirstBodyRow = true;\n lastTableEnd = index;\n } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n lastTableEnd = index;\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map2, context, lastCell, rowKind, index, currentCell);\n } else if (cell[1] !== 0) {\n currentCell = flushCell(map2, context, cell, rowKind, index, currentCell);\n }\n rowKind = 0;\n } else if (rowKind && (token.type === \"data\" || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n cell[3] = index;\n }\n }\n if (lastTableEnd !== 0) {\n flushTableEnd(map2, context, lastTableEnd, currentTable, currentBody);\n }\n map2.consume(context.events);\n index = -1;\n while (++index < context.events.length) {\n const event = context.events[index];\n if (event[0] === \"enter\" && event[1].type === \"table\") {\n event[1]._align = gfmTableAlign(context.events, index);\n }\n }\n return events;\n}\nfunction flushCell(map2, context, range, rowKind, rowEnd, previousCell) {\n const groupName = rowKind === 1 ? \"tableHeader\" : rowKind === 2 ? \"tableDelimiter\" : \"tableData\";\n const valueName = \"tableContent\";\n if (range[0] !== 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, range[0]));\n map2.add(range[0], 0, [[\"exit\", previousCell, context]]);\n }\n const now = getPoint(context.events, range[1]);\n previousCell = {\n type: groupName,\n start: Object.assign({}, now),\n // Note: correct end is set later.\n end: Object.assign({}, now)\n };\n map2.add(range[1], 0, [[\"enter\", previousCell, context]]);\n if (range[2] !== 0) {\n const relatedStart = getPoint(context.events, range[2]);\n const relatedEnd = getPoint(context.events, range[3]);\n const valueToken = {\n type: valueName,\n start: Object.assign({}, relatedStart),\n end: Object.assign({}, relatedEnd)\n };\n map2.add(range[2], 0, [[\"enter\", valueToken, context]]);\n if (rowKind !== 2) {\n const start = context.events[range[2]];\n const end = context.events[range[3]];\n start[1].end = Object.assign({}, end[1].end);\n start[1].type = \"chunkText\";\n start[1].contentType = \"text\";\n if (range[3] > range[2] + 1) {\n const a = range[2] + 1;\n const b = range[3] - range[2] - 1;\n map2.add(a, b, []);\n }\n }\n map2.add(range[3] + 1, 0, [[\"exit\", valueToken, context]]);\n }\n if (rowEnd !== void 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, rowEnd));\n map2.add(rowEnd, 0, [[\"exit\", previousCell, context]]);\n previousCell = void 0;\n }\n return previousCell;\n}\nfunction flushTableEnd(map2, context, index, table, tableBody) {\n const exits = [];\n const related = getPoint(context.events, index);\n if (tableBody) {\n tableBody.end = Object.assign({}, related);\n exits.push([\"exit\", tableBody, context]);\n }\n table.end = Object.assign({}, related);\n exits.push([\"exit\", table, context]);\n map2.add(index + 1, 0, exits);\n}\nfunction getPoint(events, index) {\n const event = events[index];\n const side = event[0] === \"enter\" ? \"start\" : \"end\";\n return event[1][side];\n}\nconst tasklistCheck = {\n name: \"tasklistCheck\",\n tokenize: tokenizeTasklistCheck\n};\nfunction gfmTaskListItem() {\n return {\n text: {\n [91]: tasklistCheck\n }\n };\n}\nfunction tokenizeTasklistCheck(effects, ok2, nok) {\n const self = this;\n return open;\n function open(code2) {\n if (\n // Exit if there’s stuff before.\n self.previous !== null || // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem\n ) {\n return nok(code2);\n }\n effects.enter(\"taskListCheck\");\n effects.enter(\"taskListCheckMarker\");\n effects.consume(code2);\n effects.exit(\"taskListCheckMarker\");\n return inside;\n }\n function inside(code2) {\n if (markdownLineEndingOrSpace(code2)) {\n effects.enter(\"taskListCheckValueUnchecked\");\n effects.consume(code2);\n effects.exit(\"taskListCheckValueUnchecked\");\n return close;\n }\n if (code2 === 88 || code2 === 120) {\n effects.enter(\"taskListCheckValueChecked\");\n effects.consume(code2);\n effects.exit(\"taskListCheckValueChecked\");\n return close;\n }\n return nok(code2);\n }\n function close(code2) {\n if (code2 === 93) {\n effects.enter(\"taskListCheckMarker\");\n effects.consume(code2);\n effects.exit(\"taskListCheckMarker\");\n effects.exit(\"taskListCheck\");\n return after;\n }\n return nok(code2);\n }\n function after(code2) {\n if (markdownLineEnding(code2)) {\n return ok2(code2);\n }\n if (markdownSpace(code2)) {\n return effects.check({\n tokenize: spaceThenNonSpace\n }, ok2, nok)(code2);\n }\n return nok(code2);\n }\n}\nfunction spaceThenNonSpace(effects, ok2, nok) {\n return factorySpace(effects, after, \"whitespace\");\n function after(code2) {\n return code2 === null ? nok(code2) : ok2(code2);\n }\n}\nfunction gfm(options) {\n return combineExtensions([\n gfmAutolinkLiteral(),\n gfmFootnote(),\n gfmStrikethrough(options),\n gfmTable(),\n gfmTaskListItem()\n ]);\n}\nconst emptyOptions = {};\nfunction remarkGfm(options) {\n const self = (\n /** @type {Processor} */\n this\n );\n const settings = options || emptyOptions;\n const data = self.data();\n const micromarkExtensions = data.micromarkExtensions || (data.micromarkExtensions = []);\n const fromMarkdownExtensions = data.fromMarkdownExtensions || (data.fromMarkdownExtensions = []);\n const toMarkdownExtensions = data.toMarkdownExtensions || (data.toMarkdownExtensions = []);\n micromarkExtensions.push(gfm(settings));\n fromMarkdownExtensions.push(gfmFromMarkdown());\n toMarkdownExtensions.push(gfmToMarkdown(settings));\n}\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"NcRichTextCopyButton\",\n props: {\n contentId: {}\n },\n setup(__props) {\n const { copy, icon, altText } = useCopy(() => document.getElementById(__props.contentId).textContent);\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcButton, {\n variant: \"tertiary\",\n size: \"small\",\n \"aria-label\": unref(altText),\n title: unref(altText),\n onClick: unref(copy)\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: unref(icon),\n inline: \"\"\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"]);\n };\n }\n});\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction isTextNode$1(node) {\n return node.type === \"text\";\n}\nconst transformPlaceholders = function(ast) {\n visitParents(ast, isTextNode$1, (node, ancestors) => {\n const parent = ancestors.at(-1);\n const index = parent.children.indexOf(node);\n const placeholders = node.value.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map((entry) => {\n const matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);\n if (!matches) {\n return u(\"text\", entry);\n }\n const [, component] = matches;\n return u(\"element\", {\n tagName: `#${component}`,\n children: []\n });\n });\n parent.children.splice(index, 1, ...placeholders);\n });\n};\nconst remarkPlaceholder = () => transformPlaceholders;\n/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction isCodeNode(node) {\n return [\"code\", \"inlineCode\"].includes(node.type);\n}\nconst remarkStripCode = function() {\n return function(tree) {\n visitParents(tree, isCodeNode, (node, ancestors) => {\n const parent = ancestors.at(-1);\n const index = parent.children.indexOf(node);\n parent.children.splice(index, 1, {\n ...node,\n value: \"\"\n });\n return [SKIP, index + 1];\n });\n };\n};\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction isTextNode(node) {\n return [\"text\", \"code\", \"inlineCode\"].includes(node.type);\n}\nconst remarkUnescape = function() {\n return function(tree) {\n visitParents(tree, isTextNode, (node, ancestors) => {\n const parent = ancestors.at(-1);\n const index = parent.children.indexOf(node);\n parent.children.splice(index, 1, {\n ...node,\n value: node.value.replace(/</gmi, \"<\").replace(/>/gmi, \">\")\n });\n return [SKIP, index + 1];\n });\n };\n};\nconst LINK_PROTOCOLS = [\"http\", \"https\", \"mailto\", \"tel\"];\nconst rehypeHighlight = ref(null);\nasync function importRehypeHighlightLibrary() {\n const module = await import(\"rehype-highlight\");\n rehypeHighlight.value = module.default;\n}\nconst _sfc_main = {\n name: \"NcRichText\",\n components: {\n NcReferenceList\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n /**\n * The main text\n */\n text: {\n type: String,\n default: \"\"\n },\n arguments: {\n type: Object,\n default: () => {\n return {};\n }\n },\n referenceLimit: {\n type: Number,\n default: 0\n },\n referenceInteractive: {\n type: Boolean,\n default: true\n },\n referenceInteractiveOptIn: {\n type: Boolean,\n default: false\n },\n /** Provide data upfront to avoid extra http request */\n references: {\n type: Array,\n default: null\n },\n /** Provide basic Markdown syntax */\n useMarkdown: {\n type: Boolean,\n default: false\n },\n /** Provide GitHub Flavored Markdown syntax */\n useExtendedMarkdown: {\n type: Boolean,\n default: false\n },\n /** Provide event from rendered markdown inputs */\n interactive: {\n type: Boolean,\n default: false\n },\n /**\n * Automatically convert link-like text to markdown links\n */\n autolink: {\n type: Boolean,\n default: true\n }\n },\n emits: [\n \"interactTodo\"\n ],\n data() {\n return {\n parentId: createElementId()\n };\n },\n methods: {\n renderPlaintext() {\n const placeholders = this.text.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map((entry) => {\n const matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);\n if (!matches) {\n return this.prepareTextNode(entry);\n }\n const argumentId = matches[1];\n const argument = this.arguments[argumentId];\n if (typeof argument === \"object\") {\n const { component, props } = argument;\n return h(typeof component === \"string\" ? resolveComponent(component) : component, {\n ...props,\n class: \"rich-text--component\"\n });\n }\n if (argument) {\n return h(\"span\", { class: \"rich-text--fallback\" }, argument);\n }\n return entry;\n });\n return h(\"div\", { class: \"rich-text--wrapper\" }, [\n h(\"div\", {}, placeholders.flat()),\n this.referenceLimit > 0 ? h(\"div\", { class: \"rich-text--reference-widget\" }, [\n h(NcReferenceList, {\n text: this.text,\n referenceData: this.references,\n interactive: this.referenceInteractive,\n interactiveOptIn: this.referenceInteractiveOptIn\n })\n ]) : null\n ]);\n },\n renderMarkdown() {\n const renderedMarkdown = unified().use(remarkParse).use(remarkAutolink, {\n autolink: this.autolink,\n useMarkdown: this.useMarkdown,\n useExtendedMarkdown: this.useExtendedMarkdown\n }).use(remarkUnescape).use(this.useExtendedMarkdown ? remarkGfm : void 0).use(breaks).use(remarkUnlinkProtocols, { except: LINK_PROTOCOLS }).use(remark2rehype, {\n handlers: {\n component(toHast, node) {\n return toHast(node, node.component, { value: node.value });\n }\n }\n }).use(this.useExtendedMarkdown ? rehypeHighlight.value : void 0).use(remarkPlaceholder).use(rehypeExternalLinks, {\n target: \"_blank\",\n rel: [\"noopener noreferrer\"]\n }).use(rehype2react, {\n Fragment,\n jsx: this.createElement,\n jsxs: this.createElement,\n elementAttributeNameCase: \"html\",\n prefix: false\n }).processSync(this.text.replace(/<[^>]+>/g, (match) => match.replace(/\")).result;\n return h(\"div\", { class: \"rich-text--wrapper rich-text--wrapper-markdown\" }, [\n renderedMarkdown,\n this.referenceLimit > 0 ? h(\"div\", { class: \"rich-text--reference-widget\" }, [\n h(NcReferenceList, {\n text: this.prepareReferenceSource(this.text),\n referenceData: this.references,\n interactive: this.referenceInteractive,\n interactiveOptIn: this.referenceInteractiveOptIn\n })\n ]) : null\n ]);\n },\n /**\n * Render plain text nodes\n *\n * @param {string} text - Content of the node\n */\n prepareTextNode(text2) {\n if (this.autolink) {\n text2 = parseUrl(text2);\n }\n if (Array.isArray(text2)) {\n return text2.map((entry) => {\n if (typeof entry === \"string\") {\n return entry;\n }\n const { component, props } = entry;\n return h(component, {\n ...props,\n class: \"rich-text--component\"\n });\n });\n }\n return text2;\n },\n /**\n * Strip content of inline code and code blocks for reference widgets\n * (e.g. ignore fenced links from being added as reference)\n *\n * @param {string} text - Content of the node\n */\n prepareReferenceSource(text2) {\n if (!this.useMarkdown && !this.useExtendedMarkdown) {\n return text2;\n }\n const processor = unified();\n processor.compiler = (tree) => toString(tree);\n return processor.use(remarkParse).use(remarkStripCode).processSync(text2.replace(/\\s/g, \" \")).value;\n },\n createElement(type, props, key) {\n if (key) {\n props.key = key;\n }\n const children = props.children ?? [];\n delete props.children;\n if (!String(type).startsWith(\"#\")) {\n if ([\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"].includes(String(type))) {\n type = `h${Math.min(+String(type)[1] + 3, 6)}`;\n }\n let nestedNode = null;\n if (this.useExtendedMarkdown) {\n if (String(type) === \"code\" && !rehypeHighlight.value && props?.class?.includes(\"language\")) {\n importRehypeHighlightLibrary();\n }\n if (String(type) === \"pre\" && children && String(children.type) === \"code\") {\n const id = this.parentId + \"-code-block-\" + createElementId();\n return h(\"p\", { class: \"rich-text__code-block\" }, [\n h(type, { ...props, id }, children),\n h(_sfc_main$1, { class: \"rich-text__code-block-button\", contentId: id })\n ]);\n }\n if (String(type) === \"li\" && Array.isArray(children) && children.length !== 0 && children[0].type === \"input\" && children[0].props.type === \"checkbox\") {\n const [inputNode, , ...labelParts] = children;\n const nestedNodeIndex = labelParts.findIndex((child) => [\"ul\", \"ol\", \"li\", \"blockquote\", \"pre\"].includes(child.type));\n if (nestedNodeIndex !== -1) {\n nestedNode = labelParts[nestedNodeIndex];\n labelParts.splice(nestedNodeIndex);\n }\n const id = this.parentId + \"-markdown-input-\" + createElementId();\n const propsToForward = { ...inputNode.props };\n delete propsToForward.checked;\n const inputComponent = h(NcCheckboxRadioSwitch, {\n ...propsToForward,\n modelValue: inputNode.props.checked,\n id,\n disabled: !this.interactive,\n \"onUpdate:modelValue\": () => {\n this.$emit(\"interactTodo\", id);\n }\n }, { default: () => labelParts });\n return h(type, props, [inputComponent, nestedNode]);\n }\n }\n if (String(type) === \"a\") {\n const route = getRoute(this.$router, props.href);\n if (route) {\n delete props.href;\n delete props.target;\n return h(RouterLink, {\n ...props,\n to: route\n }, { default: () => children });\n }\n const isAllowedScheme = /^(https?:\\/\\/|tel:|mailto:)/.test(props.href);\n if (isAllowedScheme) {\n props.href = props.href.trim();\n return h(NcRichTextExternalLink, props, children);\n } else {\n delete props.href;\n delete props.target;\n return h(\"span\", props, children);\n }\n }\n return h(type, props, children);\n }\n const placeholder = this.arguments[type.slice(1)];\n if (!placeholder) {\n return h(\"span\", { ...props, class: \"rich-text--fallback\" }, [`{${type.slice(1)}}`]);\n }\n if (!placeholder.component) {\n return h(\"span\", { ...props }, [placeholder]);\n }\n return h(\n typeof placeholder.component === \"string\" ? resolveComponent(placeholder.component) : placeholder.component,\n {\n ...props,\n ...placeholder.props,\n class: \"rich-text--component\"\n },\n { default: () => children }\n );\n }\n },\n render() {\n return this.useMarkdown || this.useExtendedMarkdown ? this.renderMarkdown() : this.renderPlaintext();\n }\n};\nconst NcRichText = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-76a4a548\"]]);\nexport {\n NcRichText as N,\n NcReferenceList as a\n};\n//# sourceMappingURL=NcRichText-BOBQq7Od.mjs.map\n"],"file":"index-BrjNu3x_.chunk.mjs"} \ No newline at end of file diff --git a/dist/index-C_wPY1fR.chunk.mjs.map.license b/dist/index-BrjNu3x_.chunk.mjs.map.license similarity index 100% rename from dist/index-C_wPY1fR.chunk.mjs.map.license rename to dist/index-BrjNu3x_.chunk.mjs.map.license diff --git a/dist/index-CMXcwXc6.chunk.mjs b/dist/index-CQct0mOs.chunk.mjs similarity index 99% rename from dist/index-CMXcwXc6.chunk.mjs rename to dist/index-CQct0mOs.chunk.mjs index 559285a8308..1a04c475a63 100644 --- a/dist/index-CMXcwXc6.chunk.mjs +++ b/dist/index-CQct0mOs.chunk.mjs @@ -1,2 +1,2 @@ -import{z as al,A as nl,n as rl,y as ll,B as ol,C as il,N as Ga,b as ul}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{k as sl,s as dl,t as cl}from"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import{b as Qe,x as Gt,D as tt,G as ct,E as va,z as pt,o as P,f as q,k as Oe,q as et,B as Be,u,m as Xe,$ as Bn,c as Se,w as he,T as ma,i as ie,I as Je,O as ut,h as W,C as Oa,af as or,y as De,l as Z,a6 as ba,v as H,ad as vl,av as En,g as ge,N as ka,F as _e,Q as mt,t as Ke,a9 as ml,ac as pl,K as hl,R as xa,j as _t,a2 as yl,a3 as fl,aw as gl,L as Ya,M as Ra,a7 as wl,n as ir,s as sn,p as zn}from"./Web-BwmPK40i.chunk.mjs";import{r as ur,D as bl,b as we,c as kl,E as _l,N as qt,_ as Dl}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{N as xl}from"./index-BOH7nBEM.chunk.mjs";import{b as Kt}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import"./index-B-dGqfIG.chunk.mjs";import"./public-C1mLBHT3.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";const sr=6048e5,Ml=864e5,Tl=6e4,dr=36e5,Pl=1e3,Vn=Symbol.for("constructDateFrom");function Ye(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&Vn in e?e[Vn](t):e instanceof Date?new e.constructor(t):new Date(t)}function ye(e,t){return Ye(t||e,e)}function vt(e,t,n){const a=ye(e,n?.in);return isNaN(t)?Ye(n?.in||e,NaN):(t&&a.setDate(a.getDate()+t),a)}function kt(e,t,n){const a=ye(e,n?.in);if(isNaN(t))return Ye(e,NaN);if(!t)return a;const r=a.getDate(),l=Ye(e,a.getTime());l.setMonth(a.getMonth()+t+1,0);const o=l.getDate();return r>=o?l:(a.setFullYear(l.getFullYear(),l.getMonth(),r),a)}function cr(e,t,n){const{years:a=0,months:r=0,weeks:l=0,days:o=0,hours:c=0,minutes:s=0,seconds:x=0}=t,m=ye(e,n?.in),p=r||a?kt(m,r+a*12):m,f=o||l?vt(p,o+l*7):p,k=s+c*60,Y=(x+k*60)*1e3;return Ye(e,+f+Y)}function Sl(e,t,n){return Ye(e,+ye(e)+t)}function $l(e,t,n){return Sl(e,t*dr)}let Al={};function Qt(){return Al}function Dt(e,t){const n=Qt(),a=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,r=ye(e,t?.in),l=r.getDay(),o=(l=l.getTime()?a+1:n.getTime()>=c.getTime()?a:a-1}function Ia(e){const t=ye(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function Ma(e,...t){const n=Ye.bind(null,t.find(a=>typeof a=="object"));return t.map(n)}function Ln(e,t){const n=ye(e,t?.in);return n.setHours(0,0,0,0),n}function mr(e,t,n){const[a,r]=Ma(n?.in,e,t),l=Ln(a),o=Ln(r),c=+l-Ia(l),s=+o-Ia(o);return Math.round((c-s)/Ml)}function Cl(e,t){const n=vr(e,t),a=Ye(e,0);return a.setFullYear(n,0,4),a.setHours(0,0,0,0),oa(a)}function Yl(e,t,n){return kt(e,t*3,n)}function fn(e,t,n){return kt(e,t*12,n)}function Hn(e,t){const n=+ye(e)-+ye(t);return n<0?-1:n>0?1:n}function pr(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function ga(e){return!(!pr(e)&&typeof e!="number"||isNaN(+ye(e)))}function Fn(e,t){const n=ye(e,t?.in);return Math.trunc(n.getMonth()/3)+1}function Rl(e,t,n){const[a,r]=Ma(n?.in,e,t);return a.getFullYear()-r.getFullYear()}function Il(e,t,n){const[a,r]=Ma(n?.in,e,t),l=Hn(a,r),o=Math.abs(Rl(a,r));a.setFullYear(1584),r.setFullYear(1584);const c=Hn(a,r)===-l,s=l*(o-+c);return s===0?0:s}function hr(e,t){const[n,a]=Ma(e,t.start,t.end);return{start:n,end:a}}function yr(e,t){const{start:n,end:a}=hr(t?.in,e);let r=+n>+a;const l=r?+n:+a,o=r?a:n;o.setHours(0,0,0,0);let c=1;const s=[];for(;+o<=l;)s.push(Ye(n,o)),o.setDate(o.getDate()+c),o.setHours(0,0,0,0);return r?s.reverse():s}function na(e,t){const n=ye(e,t?.in),a=n.getMonth(),r=a-a%3;return n.setMonth(r,1),n.setHours(0,0,0,0),n}function Nl(e,t){const{start:n,end:a}=hr(t?.in,e);let r=+n>+a;const l=r?+na(n):+na(a);let o=na(r?a:n),c=1;const s=[];for(;+o<=l;)s.push(Ye(n,o)),o=Yl(o,c);return r?s.reverse():s}function Ol(e,t){const n=ye(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function fr(e,t){const n=ye(e,t?.in),a=n.getFullYear();return n.setFullYear(a+1,0,0),n.setHours(23,59,59,999),n}function ra(e,t){const n=ye(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function gr(e,t){const n=Qt(),a=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,r=ye(e,t?.in),l=r.getDay(),o=(l{let a;const r=Bl[e];return typeof r=="string"?a=r:t===1?a=r.one:a=r.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+a:a+" ago":a};function Qa(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const zl={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},Vl={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},Ll={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},Hl={date:Qa({formats:zl,defaultWidth:"full"}),time:Qa({formats:Vl,defaultWidth:"full"}),dateTime:Qa({formats:Ll,defaultWidth:"full"})},Fl={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},ql=(e,t,n,a)=>Fl[e];function ha(e){return(t,n)=>{const a=n?.context?String(n.context):"standalone";let r;if(a==="formatting"&&e.formattingValues){const o=e.defaultFormattingWidth||e.defaultWidth,c=n?.width?String(n.width):o;r=e.formattingValues[c]||e.formattingValues[o]}else{const o=e.defaultWidth,c=n?.width?String(n.width):e.defaultWidth;r=e.values[c]||e.values[o]}const l=e.argumentCallback?e.argumentCallback(t):t;return r[l]}}const Ul={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},jl={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},Wl={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},Xl={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},Gl={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},Ql={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},Zl=(e,t)=>{const n=Number(e),a=n%100;if(a>20||a<10)switch(a%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},Kl={ordinalNumber:Zl,era:ha({values:Ul,defaultWidth:"wide"}),quarter:ha({values:jl,defaultWidth:"wide",argumentCallback:e=>e-1}),month:ha({values:Wl,defaultWidth:"wide"}),day:ha({values:Xl,defaultWidth:"wide"}),dayPeriod:ha({values:Gl,defaultWidth:"wide",formattingValues:Ql,defaultFormattingWidth:"wide"})};function ya(e){return(t,n={})=>{const a=n.width,r=a&&e.matchPatterns[a]||e.matchPatterns[e.defaultMatchWidth],l=t.match(r);if(!l)return null;const o=l[0],c=a&&e.parsePatterns[a]||e.parsePatterns[e.defaultParseWidth],s=Array.isArray(c)?eo(c,p=>p.test(o)):Jl(c,p=>p.test(o));let x;x=e.valueCallback?e.valueCallback(s):s,x=n.valueCallback?n.valueCallback(x):x;const m=t.slice(o.length);return{value:x,rest:m}}}function Jl(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function eo(e,t){for(let n=0;n{const a=t.match(e.matchPattern);if(!a)return null;const r=a[0],l=t.match(e.parsePattern);if(!l)return null;let o=e.valueCallback?e.valueCallback(l[0]):l[0];o=n.valueCallback?n.valueCallback(o):o;const c=t.slice(r.length);return{value:o,rest:c}}}const ao=/^(\d+)(th|st|nd|rd)?/i,no=/\d+/i,ro={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},lo={any:[/^b/i,/^(a|c)/i]},oo={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},io={any:[/1/i,/2/i,/3/i,/4/i]},uo={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},so={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},co={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},vo={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},mo={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},po={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},ho={ordinalNumber:to({matchPattern:ao,parsePattern:no,valueCallback:e=>parseInt(e,10)}),era:ya({matchPatterns:ro,defaultMatchWidth:"wide",parsePatterns:lo,defaultParseWidth:"any"}),quarter:ya({matchPatterns:oo,defaultMatchWidth:"wide",parsePatterns:io,defaultParseWidth:"any",valueCallback:e=>e+1}),month:ya({matchPatterns:uo,defaultMatchWidth:"wide",parsePatterns:so,defaultParseWidth:"any"}),day:ya({matchPatterns:co,defaultMatchWidth:"wide",parsePatterns:vo,defaultParseWidth:"any"}),dayPeriod:ya({matchPatterns:mo,defaultMatchWidth:"any",parsePatterns:po,defaultParseWidth:"any"})},wr={code:"en-US",formatDistance:El,formatLong:Hl,formatRelative:ql,localize:Kl,match:ho,options:{weekStartsOn:0,firstWeekContainsDate:1}};function yo(e,t){const n=ye(e,t?.in);return mr(n,ra(n))+1}function gn(e,t){const n=ye(e,t?.in),a=+oa(n)-+Cl(n);return Math.round(a/sr)+1}function wn(e,t){const n=ye(e,t?.in),a=n.getFullYear(),r=Qt(),l=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,o=Ye(t?.in||e,0);o.setFullYear(a+1,0,l),o.setHours(0,0,0,0);const c=Dt(o,t),s=Ye(t?.in||e,0);s.setFullYear(a,0,l),s.setHours(0,0,0,0);const x=Dt(s,t);return+n>=+c?a+1:+n>=+x?a:a-1}function fo(e,t){const n=Qt(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,r=wn(e,t),l=Ye(t?.in||e,0);return l.setFullYear(r,0,a),l.setHours(0,0,0,0),Dt(l,t)}function bn(e,t){const n=ye(e,t?.in),a=+Dt(n,t)-+fo(n,t);return Math.round(a/sr)+1}function Ce(e,t){const n=e<0?"-":"",a=Math.abs(e).toString().padStart(t,"0");return n+a}const Nt={y(e,t){const n=e.getFullYear(),a=n>0?n:1-n;return Ce(t==="yy"?a%100:a,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):Ce(n+1,2)},d(e,t){return Ce(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];default:return n==="am"?"a.m.":"p.m."}},h(e,t){return Ce(e.getHours()%12||12,t.length)},H(e,t){return Ce(e.getHours(),t.length)},m(e,t){return Ce(e.getMinutes(),t.length)},s(e,t){return Ce(e.getSeconds(),t.length)},S(e,t){const n=t.length,a=e.getMilliseconds(),r=Math.trunc(a*Math.pow(10,n-3));return Ce(r,t.length)}},Jt={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},Un={G:function(e,t,n){const a=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(a,{width:"abbreviated"});case"GGGGG":return n.era(a,{width:"narrow"});default:return n.era(a,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const a=e.getFullYear(),r=a>0?a:1-a;return n.ordinalNumber(r,{unit:"year"})}return Nt.y(e,t)},Y:function(e,t,n,a){const r=wn(e,a),l=r>0?r:1-r;if(t==="YY"){const o=l%100;return Ce(o,2)}return t==="Yo"?n.ordinalNumber(l,{unit:"year"}):Ce(l,t.length)},R:function(e,t){const n=vr(e);return Ce(n,t.length)},u:function(e,t){const n=e.getFullYear();return Ce(n,t.length)},Q:function(e,t,n){const a=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(a);case"QQ":return Ce(a,2);case"Qo":return n.ordinalNumber(a,{unit:"quarter"});case"QQQ":return n.quarter(a,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(a,{width:"narrow",context:"formatting"});default:return n.quarter(a,{width:"wide",context:"formatting"})}},q:function(e,t,n){const a=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(a);case"qq":return Ce(a,2);case"qo":return n.ordinalNumber(a,{unit:"quarter"});case"qqq":return n.quarter(a,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(a,{width:"narrow",context:"standalone"});default:return n.quarter(a,{width:"wide",context:"standalone"})}},M:function(e,t,n){const a=e.getMonth();switch(t){case"M":case"MM":return Nt.M(e,t);case"Mo":return n.ordinalNumber(a+1,{unit:"month"});case"MMM":return n.month(a,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(a,{width:"narrow",context:"formatting"});default:return n.month(a,{width:"wide",context:"formatting"})}},L:function(e,t,n){const a=e.getMonth();switch(t){case"L":return String(a+1);case"LL":return Ce(a+1,2);case"Lo":return n.ordinalNumber(a+1,{unit:"month"});case"LLL":return n.month(a,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(a,{width:"narrow",context:"standalone"});default:return n.month(a,{width:"wide",context:"standalone"})}},w:function(e,t,n,a){const r=bn(e,a);return t==="wo"?n.ordinalNumber(r,{unit:"week"}):Ce(r,t.length)},I:function(e,t,n){const a=gn(e);return t==="Io"?n.ordinalNumber(a,{unit:"week"}):Ce(a,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):Nt.d(e,t)},D:function(e,t,n){const a=yo(e);return t==="Do"?n.ordinalNumber(a,{unit:"dayOfYear"}):Ce(a,t.length)},E:function(e,t,n){const a=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(a,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(a,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},e:function(e,t,n,a){const r=e.getDay(),l=(r-a.weekStartsOn+8)%7||7;switch(t){case"e":return String(l);case"ee":return Ce(l,2);case"eo":return n.ordinalNumber(l,{unit:"day"});case"eee":return n.day(r,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(r,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},c:function(e,t,n,a){const r=e.getDay(),l=(r-a.weekStartsOn+8)%7||7;switch(t){case"c":return String(l);case"cc":return Ce(l,t.length);case"co":return n.ordinalNumber(l,{unit:"day"});case"ccc":return n.day(r,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(r,{width:"narrow",context:"standalone"});case"cccccc":return n.day(r,{width:"short",context:"standalone"});default:return n.day(r,{width:"wide",context:"standalone"})}},i:function(e,t,n){const a=e.getDay(),r=a===0?7:a;switch(t){case"i":return String(r);case"ii":return Ce(r,t.length);case"io":return n.ordinalNumber(r,{unit:"day"});case"iii":return n.day(a,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(a,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},a:function(e,t,n){const a=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(e,t,n){const a=e.getHours();let r;switch(a===12?r=Jt.noon:a===0?r=Jt.midnight:r=a/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},B:function(e,t,n){const a=e.getHours();let r;switch(a>=17?r=Jt.evening:a>=12?r=Jt.afternoon:a>=4?r=Jt.morning:r=Jt.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let a=e.getHours()%12;return a===0&&(a=12),n.ordinalNumber(a,{unit:"hour"})}return Nt.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):Nt.H(e,t)},K:function(e,t,n){const a=e.getHours()%12;return t==="Ko"?n.ordinalNumber(a,{unit:"hour"}):Ce(a,t.length)},k:function(e,t,n){let a=e.getHours();return a===0&&(a=24),t==="ko"?n.ordinalNumber(a,{unit:"hour"}):Ce(a,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):Nt.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):Nt.s(e,t)},S:function(e,t){return Nt.S(e,t)},X:function(e,t,n){const a=e.getTimezoneOffset();if(a===0)return"Z";switch(t){case"X":return Wn(a);case"XXXX":case"XX":return Ut(a);default:return Ut(a,":")}},x:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"x":return Wn(a);case"xxxx":case"xx":return Ut(a);default:return Ut(a,":")}},O:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+jn(a,":");default:return"GMT"+Ut(a,":")}},z:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+jn(a,":");default:return"GMT"+Ut(a,":")}},t:function(e,t,n){const a=Math.trunc(+e/1e3);return Ce(a,t.length)},T:function(e,t,n){return Ce(+e,t.length)}};function jn(e,t=""){const n=e>0?"-":"+",a=Math.abs(e),r=Math.trunc(a/60),l=a%60;return l===0?n+String(r):n+String(r)+t+Ce(l,2)}function Wn(e,t){return e%60===0?(e>0?"-":"+")+Ce(Math.abs(e)/60,2):Ut(e,t)}function Ut(e,t=""){const n=e>0?"-":"+",a=Math.abs(e),r=Ce(Math.trunc(a/60),2),l=Ce(a%60,2);return n+r+t+l}const Xn=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},br=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},go=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],a=n[1],r=n[2];if(!r)return Xn(e,t);let l;switch(a){case"P":l=t.dateTime({width:"short"});break;case"PP":l=t.dateTime({width:"medium"});break;case"PPP":l=t.dateTime({width:"long"});break;default:l=t.dateTime({width:"full"});break}return l.replace("{{date}}",Xn(a,t)).replace("{{time}}",br(r,t))},dn={p:br,P:go},wo=/^D+$/,bo=/^Y+$/,ko=["D","DD","YY","YYYY"];function kr(e){return wo.test(e)}function _r(e){return bo.test(e)}function cn(e,t,n){const a=_o(e,t,n);if(console.warn(a),ko.includes(e))throw new RangeError(a)}function _o(e,t,n){const a=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${a} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const Do=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,xo=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Mo=/^'([^]*?)'?$/,To=/''/g,Po=/[a-zA-Z]/;function St(e,t,n){const a=Qt(),r=n?.locale??a.locale??wr,l=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,o=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??a.weekStartsOn??a.locale?.options?.weekStartsOn??0,c=ye(e,n?.in);if(!ga(c))throw new RangeError("Invalid time value");let s=t.match(xo).map(m=>{const p=m[0];if(p==="p"||p==="P"){const f=dn[p];return f(m,r.formatLong)}return m}).join("").match(Do).map(m=>{if(m==="''")return{isToken:!1,value:"'"};const p=m[0];if(p==="'")return{isToken:!1,value:So(m)};if(Un[p])return{isToken:!0,value:m};if(p.match(Po))throw new RangeError("Format string contains an unescaped latin alphabet character `"+p+"`");return{isToken:!1,value:m}});r.localize.preprocessor&&(s=r.localize.preprocessor(c,s));const x={firstWeekContainsDate:l,weekStartsOn:o,locale:r};return s.map(m=>{if(!m.isToken)return m.value;const p=m.value;(!n?.useAdditionalWeekYearTokens&&_r(p)||!n?.useAdditionalDayOfYearTokens&&kr(p))&&cn(p,t,String(e));const f=Un[p[0]];return f(c,p,r.localize,x)}).join("")}function So(e){const t=e.match(Mo);return t?t[1].replace(To,"'"):e}function $o(e,t){return ye(e,t?.in).getDay()}function Ao(e,t){const n=ye(e,t?.in),a=n.getFullYear(),r=n.getMonth(),l=Ye(n,0);return l.setFullYear(a,r+1,0),l.setHours(0,0,0,0),l.getDate()}function Co(){return Object.assign({},Qt())}function Yt(e,t){return ye(e,t?.in).getHours()}function Yo(e,t){const n=ye(e,t?.in).getDay();return n===0?7:n}function Vt(e,t){return ye(e,t?.in).getMinutes()}function Te(e,t){return ye(e,t?.in).getMonth()}function ia(e){return ye(e).getSeconds()}function be(e,t){return ye(e,t?.in).getFullYear()}function Xt(e,t){return+ye(e)>+ye(t)}function ua(e,t){return+ye(e)<+ye(t)}function aa(e,t){return+ye(e)==+ye(t)}function Ro(e,t){const n=Io(t)?new t(0):Ye(t,0);return n.setFullYear(e.getFullYear(),e.getMonth(),e.getDate()),n.setHours(e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()),n}function Io(e){return typeof e=="function"&&e.prototype?.constructor===e}const No=10;class Dr{subPriority=0;validate(t,n){return!0}}class Oo extends Dr{constructor(t,n,a,r,l){super(),this.value=t,this.validateValue=n,this.setValue=a,this.priority=r,l&&(this.subPriority=l)}validate(t,n){return this.validateValue(t,this.value,n)}set(t,n,a){return this.setValue(t,n,this.value,a)}}class Bo extends Dr{priority=No;subPriority=-1;constructor(t,n){super(),this.context=t||(a=>Ye(n,a))}set(t,n){return n.timestampIsSet?t:Ye(t,Ro(t,this.context))}}class Ae{run(t,n,a,r){const l=this.parse(t,n,a,r);return l?{setter:new Oo(l.value,this.validate,this.set,this.priority,this.subPriority),rest:l.rest}:null}validate(t,n,a){return!0}}class Eo extends Ae{priority=140;parse(t,n,a){switch(n){case"G":case"GG":case"GGG":return a.era(t,{width:"abbreviated"})||a.era(t,{width:"narrow"});case"GGGGG":return a.era(t,{width:"narrow"});default:return a.era(t,{width:"wide"})||a.era(t,{width:"abbreviated"})||a.era(t,{width:"narrow"})}}set(t,n,a){return n.era=a,t.setFullYear(a,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["R","u","t","T"]}const Ue={month:/^(1[0-2]|0?\d)/,date:/^(3[0-1]|[0-2]?\d)/,dayOfYear:/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,week:/^(5[0-3]|[0-4]?\d)/,hour23h:/^(2[0-3]|[0-1]?\d)/,hour24h:/^(2[0-4]|[0-1]?\d)/,hour11h:/^(1[0-1]|0?\d)/,hour12h:/^(1[0-2]|0?\d)/,minute:/^[0-5]?\d/,second:/^[0-5]?\d/,singleDigit:/^\d/,twoDigits:/^\d{1,2}/,threeDigits:/^\d{1,3}/,fourDigits:/^\d{1,4}/,anyDigitsSigned:/^-?\d+/,singleDigitSigned:/^-?\d/,twoDigitsSigned:/^-?\d{1,2}/,threeDigitsSigned:/^-?\d{1,3}/,fourDigitsSigned:/^-?\d{1,4}/},Tt={basicOptionalMinutes:/^([+-])(\d{2})(\d{2})?|Z/,basic:/^([+-])(\d{2})(\d{2})|Z/,basicOptionalSeconds:/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,extended:/^([+-])(\d{2}):(\d{2})|Z/,extendedOptionalSeconds:/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/};function je(e,t){return e&&{value:t(e.value),rest:e.rest}}function ze(e,t){const n=t.match(e);return n?{value:parseInt(n[0],10),rest:t.slice(n[0].length)}:null}function Pt(e,t){const n=t.match(e);if(!n)return null;if(n[0]==="Z")return{value:0,rest:t.slice(1)};const a=n[1]==="+"?1:-1,r=n[2]?parseInt(n[2],10):0,l=n[3]?parseInt(n[3],10):0,o=n[5]?parseInt(n[5],10):0;return{value:a*(r*dr+l*Tl+o*Pl),rest:t.slice(n[0].length)}}function xr(e){return ze(Ue.anyDigitsSigned,e)}function Le(e,t){switch(e){case 1:return ze(Ue.singleDigit,t);case 2:return ze(Ue.twoDigits,t);case 3:return ze(Ue.threeDigits,t);case 4:return ze(Ue.fourDigits,t);default:return ze(new RegExp("^\\d{1,"+e+"}"),t)}}function Mr(e,t){switch(e){case 1:return ze(Ue.singleDigitSigned,t);case 2:return ze(Ue.twoDigitsSigned,t);case 3:return ze(Ue.threeDigitsSigned,t);case 4:return ze(Ue.fourDigitsSigned,t);default:return ze(new RegExp("^-?\\d{1,"+e+"}"),t)}}function kn(e){switch(e){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;default:return 0}}function Tr(e,t){const n=t>0,a=n?t:1-t;let r;if(a<=50)r=e||100;else{const l=a+50,o=Math.trunc(l/100)*100,c=e>=l%100;r=e+o-(c?100:0)}return n?r:1-r}function Pr(e){return e%400===0||e%4===0&&e%100!==0}class zo extends Ae{priority=130;incompatibleTokens=["Y","R","u","w","I","i","e","c","t","T"];parse(t,n,a){const r=l=>({year:l,isTwoDigitYear:n==="yy"});switch(n){case"y":return je(Le(4,t),r);case"yo":return je(a.ordinalNumber(t,{unit:"year"}),r);default:return je(Le(n.length,t),r)}}validate(t,n){return n.isTwoDigitYear||n.year>0}set(t,n,a){const r=t.getFullYear();if(a.isTwoDigitYear){const o=Tr(a.year,r);return t.setFullYear(o,0,1),t.setHours(0,0,0,0),t}const l=!("era"in n)||n.era===1?a.year:1-a.year;return t.setFullYear(l,0,1),t.setHours(0,0,0,0),t}}class Vo extends Ae{priority=130;parse(t,n,a){const r=l=>({year:l,isTwoDigitYear:n==="YY"});switch(n){case"Y":return je(Le(4,t),r);case"Yo":return je(a.ordinalNumber(t,{unit:"year"}),r);default:return je(Le(n.length,t),r)}}validate(t,n){return n.isTwoDigitYear||n.year>0}set(t,n,a,r){const l=wn(t,r);if(a.isTwoDigitYear){const c=Tr(a.year,l);return t.setFullYear(c,0,r.firstWeekContainsDate),t.setHours(0,0,0,0),Dt(t,r)}const o=!("era"in n)||n.era===1?a.year:1-a.year;return t.setFullYear(o,0,r.firstWeekContainsDate),t.setHours(0,0,0,0),Dt(t,r)}incompatibleTokens=["y","R","u","Q","q","M","L","I","d","D","i","t","T"]}class Lo extends Ae{priority=130;parse(t,n){return Mr(n==="R"?4:n.length,t)}set(t,n,a){const r=Ye(t,0);return r.setFullYear(a,0,4),r.setHours(0,0,0,0),oa(r)}incompatibleTokens=["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]}class Ho extends Ae{priority=130;parse(t,n){return Mr(n==="u"?4:n.length,t)}set(t,n,a){return t.setFullYear(a,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["G","y","Y","R","w","I","i","e","c","t","T"]}class Fo extends Ae{priority=120;parse(t,n,a){switch(n){case"Q":case"QQ":return Le(n.length,t);case"Qo":return a.ordinalNumber(t,{unit:"quarter"});case"QQQ":return a.quarter(t,{width:"abbreviated",context:"formatting"})||a.quarter(t,{width:"narrow",context:"formatting"});case"QQQQQ":return a.quarter(t,{width:"narrow",context:"formatting"});default:return a.quarter(t,{width:"wide",context:"formatting"})||a.quarter(t,{width:"abbreviated",context:"formatting"})||a.quarter(t,{width:"narrow",context:"formatting"})}}validate(t,n){return n>=1&&n<=4}set(t,n,a){return t.setMonth((a-1)*3,1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"]}class qo extends Ae{priority=120;parse(t,n,a){switch(n){case"q":case"qq":return Le(n.length,t);case"qo":return a.ordinalNumber(t,{unit:"quarter"});case"qqq":return a.quarter(t,{width:"abbreviated",context:"standalone"})||a.quarter(t,{width:"narrow",context:"standalone"});case"qqqqq":return a.quarter(t,{width:"narrow",context:"standalone"});default:return a.quarter(t,{width:"wide",context:"standalone"})||a.quarter(t,{width:"abbreviated",context:"standalone"})||a.quarter(t,{width:"narrow",context:"standalone"})}}validate(t,n){return n>=1&&n<=4}set(t,n,a){return t.setMonth((a-1)*3,1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"]}class Uo extends Ae{incompatibleTokens=["Y","R","q","Q","L","w","I","D","i","e","c","t","T"];priority=110;parse(t,n,a){const r=l=>l-1;switch(n){case"M":return je(ze(Ue.month,t),r);case"MM":return je(Le(2,t),r);case"Mo":return je(a.ordinalNumber(t,{unit:"month"}),r);case"MMM":return a.month(t,{width:"abbreviated",context:"formatting"})||a.month(t,{width:"narrow",context:"formatting"});case"MMMMM":return a.month(t,{width:"narrow",context:"formatting"});default:return a.month(t,{width:"wide",context:"formatting"})||a.month(t,{width:"abbreviated",context:"formatting"})||a.month(t,{width:"narrow",context:"formatting"})}}validate(t,n){return n>=0&&n<=11}set(t,n,a){return t.setMonth(a,1),t.setHours(0,0,0,0),t}}class jo extends Ae{priority=110;parse(t,n,a){const r=l=>l-1;switch(n){case"L":return je(ze(Ue.month,t),r);case"LL":return je(Le(2,t),r);case"Lo":return je(a.ordinalNumber(t,{unit:"month"}),r);case"LLL":return a.month(t,{width:"abbreviated",context:"standalone"})||a.month(t,{width:"narrow",context:"standalone"});case"LLLLL":return a.month(t,{width:"narrow",context:"standalone"});default:return a.month(t,{width:"wide",context:"standalone"})||a.month(t,{width:"abbreviated",context:"standalone"})||a.month(t,{width:"narrow",context:"standalone"})}}validate(t,n){return n>=0&&n<=11}set(t,n,a){return t.setMonth(a,1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","w","I","D","i","e","c","t","T"]}function Wo(e,t,n){const a=ye(e,n?.in),r=bn(a,n)-t;return a.setDate(a.getDate()-r*7),ye(a,n?.in)}class Xo extends Ae{priority=100;parse(t,n,a){switch(n){case"w":return ze(Ue.week,t);case"wo":return a.ordinalNumber(t,{unit:"week"});default:return Le(n.length,t)}}validate(t,n){return n>=1&&n<=53}set(t,n,a,r){return Dt(Wo(t,a,r),r)}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","i","t","T"]}function Go(e,t,n){const a=ye(e,n?.in),r=gn(a,n)-t;return a.setDate(a.getDate()-r*7),a}class Qo extends Ae{priority=100;parse(t,n,a){switch(n){case"I":return ze(Ue.week,t);case"Io":return a.ordinalNumber(t,{unit:"week"});default:return Le(n.length,t)}}validate(t,n){return n>=1&&n<=53}set(t,n,a){return oa(Go(t,a))}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"]}const Zo=[31,28,31,30,31,30,31,31,30,31,30,31],Ko=[31,29,31,30,31,30,31,31,30,31,30,31];class Jo extends Ae{priority=90;subPriority=1;parse(t,n,a){switch(n){case"d":return ze(Ue.date,t);case"do":return a.ordinalNumber(t,{unit:"date"});default:return Le(n.length,t)}}validate(t,n){const a=t.getFullYear(),r=Pr(a),l=t.getMonth();return r?n>=1&&n<=Ko[l]:n>=1&&n<=Zo[l]}set(t,n,a){return t.setDate(a),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","w","I","D","i","e","c","t","T"]}class ei extends Ae{priority=90;subpriority=1;parse(t,n,a){switch(n){case"D":case"DD":return ze(Ue.dayOfYear,t);case"Do":return a.ordinalNumber(t,{unit:"date"});default:return Le(n.length,t)}}validate(t,n){const a=t.getFullYear();return Pr(a)?n>=1&&n<=366:n>=1&&n<=365}set(t,n,a){return t.setMonth(0,a),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"]}function _n(e,t,n){const a=Qt(),r=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??a.weekStartsOn??a.locale?.options?.weekStartsOn??0,l=ye(e,n?.in),o=l.getDay(),c=(t%7+7)%7,s=7-r,x=t<0||t>6?t-(o+s)%7:(c+s)%7-(o+s)%7;return vt(l,x,n)}class ti extends Ae{priority=90;parse(t,n,a){switch(n){case"E":case"EE":case"EEE":return a.day(t,{width:"abbreviated",context:"formatting"})||a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"});case"EEEEE":return a.day(t,{width:"narrow",context:"formatting"});case"EEEEEE":return a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"});default:return a.day(t,{width:"wide",context:"formatting"})||a.day(t,{width:"abbreviated",context:"formatting"})||a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"})}}validate(t,n){return n>=0&&n<=6}set(t,n,a,r){return t=_n(t,a,r),t.setHours(0,0,0,0),t}incompatibleTokens=["D","i","e","c","t","T"]}class ai extends Ae{priority=90;parse(t,n,a,r){const l=o=>{const c=Math.floor((o-1)/7)*7;return(o+r.weekStartsOn+6)%7+c};switch(n){case"e":case"ee":return je(Le(n.length,t),l);case"eo":return je(a.ordinalNumber(t,{unit:"day"}),l);case"eee":return a.day(t,{width:"abbreviated",context:"formatting"})||a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"});case"eeeee":return a.day(t,{width:"narrow",context:"formatting"});case"eeeeee":return a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"});default:return a.day(t,{width:"wide",context:"formatting"})||a.day(t,{width:"abbreviated",context:"formatting"})||a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"})}}validate(t,n){return n>=0&&n<=6}set(t,n,a,r){return t=_n(t,a,r),t.setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"]}class ni extends Ae{priority=90;parse(t,n,a,r){const l=o=>{const c=Math.floor((o-1)/7)*7;return(o+r.weekStartsOn+6)%7+c};switch(n){case"c":case"cc":return je(Le(n.length,t),l);case"co":return je(a.ordinalNumber(t,{unit:"day"}),l);case"ccc":return a.day(t,{width:"abbreviated",context:"standalone"})||a.day(t,{width:"short",context:"standalone"})||a.day(t,{width:"narrow",context:"standalone"});case"ccccc":return a.day(t,{width:"narrow",context:"standalone"});case"cccccc":return a.day(t,{width:"short",context:"standalone"})||a.day(t,{width:"narrow",context:"standalone"});default:return a.day(t,{width:"wide",context:"standalone"})||a.day(t,{width:"abbreviated",context:"standalone"})||a.day(t,{width:"short",context:"standalone"})||a.day(t,{width:"narrow",context:"standalone"})}}validate(t,n){return n>=0&&n<=6}set(t,n,a,r){return t=_n(t,a,r),t.setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"]}function ri(e,t,n){const a=ye(e,n?.in),r=Yo(a,n),l=t-r;return vt(a,l,n)}class li extends Ae{priority=90;parse(t,n,a){const r=l=>l===0?7:l;switch(n){case"i":case"ii":return Le(n.length,t);case"io":return a.ordinalNumber(t,{unit:"day"});case"iii":return je(a.day(t,{width:"abbreviated",context:"formatting"})||a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"}),r);case"iiiii":return je(a.day(t,{width:"narrow",context:"formatting"}),r);case"iiiiii":return je(a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"}),r);default:return je(a.day(t,{width:"wide",context:"formatting"})||a.day(t,{width:"abbreviated",context:"formatting"})||a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"}),r)}}validate(t,n){return n>=1&&n<=7}set(t,n,a){return t=ri(t,a),t.setHours(0,0,0,0),t}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"]}class oi extends Ae{priority=80;parse(t,n,a){switch(n){case"a":case"aa":case"aaa":return a.dayPeriod(t,{width:"abbreviated",context:"formatting"})||a.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaaa":return a.dayPeriod(t,{width:"narrow",context:"formatting"});default:return a.dayPeriod(t,{width:"wide",context:"formatting"})||a.dayPeriod(t,{width:"abbreviated",context:"formatting"})||a.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,n,a){return t.setHours(kn(a),0,0,0),t}incompatibleTokens=["b","B","H","k","t","T"]}class ii extends Ae{priority=80;parse(t,n,a){switch(n){case"b":case"bb":case"bbb":return a.dayPeriod(t,{width:"abbreviated",context:"formatting"})||a.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbbb":return a.dayPeriod(t,{width:"narrow",context:"formatting"});default:return a.dayPeriod(t,{width:"wide",context:"formatting"})||a.dayPeriod(t,{width:"abbreviated",context:"formatting"})||a.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,n,a){return t.setHours(kn(a),0,0,0),t}incompatibleTokens=["a","B","H","k","t","T"]}class ui extends Ae{priority=80;parse(t,n,a){switch(n){case"B":case"BB":case"BBB":return a.dayPeriod(t,{width:"abbreviated",context:"formatting"})||a.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBBB":return a.dayPeriod(t,{width:"narrow",context:"formatting"});default:return a.dayPeriod(t,{width:"wide",context:"formatting"})||a.dayPeriod(t,{width:"abbreviated",context:"formatting"})||a.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,n,a){return t.setHours(kn(a),0,0,0),t}incompatibleTokens=["a","b","t","T"]}class si extends Ae{priority=70;parse(t,n,a){switch(n){case"h":return ze(Ue.hour12h,t);case"ho":return a.ordinalNumber(t,{unit:"hour"});default:return Le(n.length,t)}}validate(t,n){return n>=1&&n<=12}set(t,n,a){const r=t.getHours()>=12;return r&&a<12?t.setHours(a+12,0,0,0):!r&&a===12?t.setHours(0,0,0,0):t.setHours(a,0,0,0),t}incompatibleTokens=["H","K","k","t","T"]}class di extends Ae{priority=70;parse(t,n,a){switch(n){case"H":return ze(Ue.hour23h,t);case"Ho":return a.ordinalNumber(t,{unit:"hour"});default:return Le(n.length,t)}}validate(t,n){return n>=0&&n<=23}set(t,n,a){return t.setHours(a,0,0,0),t}incompatibleTokens=["a","b","h","K","k","t","T"]}class ci extends Ae{priority=70;parse(t,n,a){switch(n){case"K":return ze(Ue.hour11h,t);case"Ko":return a.ordinalNumber(t,{unit:"hour"});default:return Le(n.length,t)}}validate(t,n){return n>=0&&n<=11}set(t,n,a){return t.getHours()>=12&&a<12?t.setHours(a+12,0,0,0):t.setHours(a,0,0,0),t}incompatibleTokens=["h","H","k","t","T"]}class vi extends Ae{priority=70;parse(t,n,a){switch(n){case"k":return ze(Ue.hour24h,t);case"ko":return a.ordinalNumber(t,{unit:"hour"});default:return Le(n.length,t)}}validate(t,n){return n>=1&&n<=24}set(t,n,a){const r=a<=24?a%24:a;return t.setHours(r,0,0,0),t}incompatibleTokens=["a","b","h","H","K","t","T"]}class mi extends Ae{priority=60;parse(t,n,a){switch(n){case"m":return ze(Ue.minute,t);case"mo":return a.ordinalNumber(t,{unit:"minute"});default:return Le(n.length,t)}}validate(t,n){return n>=0&&n<=59}set(t,n,a){return t.setMinutes(a,0,0),t}incompatibleTokens=["t","T"]}class pi extends Ae{priority=50;parse(t,n,a){switch(n){case"s":return ze(Ue.second,t);case"so":return a.ordinalNumber(t,{unit:"second"});default:return Le(n.length,t)}}validate(t,n){return n>=0&&n<=59}set(t,n,a){return t.setSeconds(a,0),t}incompatibleTokens=["t","T"]}class hi extends Ae{priority=30;parse(t,n){const a=r=>Math.trunc(r*Math.pow(10,-n.length+3));return je(Le(n.length,t),a)}set(t,n,a){return t.setMilliseconds(a),t}incompatibleTokens=["t","T"]}class yi extends Ae{priority=10;parse(t,n){switch(n){case"X":return Pt(Tt.basicOptionalMinutes,t);case"XX":return Pt(Tt.basic,t);case"XXXX":return Pt(Tt.basicOptionalSeconds,t);case"XXXXX":return Pt(Tt.extendedOptionalSeconds,t);default:return Pt(Tt.extended,t)}}set(t,n,a){return n.timestampIsSet?t:Ye(t,t.getTime()-Ia(t)-a)}incompatibleTokens=["t","T","x"]}class fi extends Ae{priority=10;parse(t,n){switch(n){case"x":return Pt(Tt.basicOptionalMinutes,t);case"xx":return Pt(Tt.basic,t);case"xxxx":return Pt(Tt.basicOptionalSeconds,t);case"xxxxx":return Pt(Tt.extendedOptionalSeconds,t);default:return Pt(Tt.extended,t)}}set(t,n,a){return n.timestampIsSet?t:Ye(t,t.getTime()-Ia(t)-a)}incompatibleTokens=["t","T","X"]}class gi extends Ae{priority=40;parse(t){return xr(t)}set(t,n,a){return[Ye(t,a*1e3),{timestampIsSet:!0}]}incompatibleTokens="*"}class wi extends Ae{priority=20;parse(t){return xr(t)}set(t,n,a){return[Ye(t,a),{timestampIsSet:!0}]}incompatibleTokens="*"}const bi={G:new Eo,y:new zo,Y:new Vo,R:new Lo,u:new Ho,Q:new Fo,q:new qo,M:new Uo,L:new jo,w:new Xo,I:new Qo,d:new Jo,D:new ei,E:new ti,e:new ai,c:new ni,i:new li,a:new oi,b:new ii,B:new ui,h:new si,H:new di,K:new ci,k:new vi,m:new mi,s:new pi,S:new hi,X:new yi,x:new fi,t:new gi,T:new wi},ki=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,_i=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Di=/^'([^]*?)'?$/,xi=/''/g,Mi=/\S/,Ti=/[a-zA-Z]/;function vn(e,t,n,a){const r=()=>Ye(a?.in||n,NaN),l=Co(),o=a?.locale??l.locale??wr,c=a?.firstWeekContainsDate??a?.locale?.options?.firstWeekContainsDate??l.firstWeekContainsDate??l.locale?.options?.firstWeekContainsDate??1,s=a?.weekStartsOn??a?.locale?.options?.weekStartsOn??l.weekStartsOn??l.locale?.options?.weekStartsOn??0;if(!t)return e?r():ye(n,a?.in);const x={firstWeekContainsDate:c,weekStartsOn:s,locale:o},m=[new Bo(a?.in,n)],p=t.match(_i).map(T=>{const A=T[0];if(A in dn){const R=dn[A];return R(T,o.formatLong)}return T}).join("").match(ki),f=[];for(let T of p){!a?.useAdditionalWeekYearTokens&&_r(T)&&cn(T,t,e),!a?.useAdditionalDayOfYearTokens&&kr(T)&&cn(T,t,e);const A=T[0],R=bi[A];if(R){const{incompatibleTokens:_}=R;if(Array.isArray(_)){const j=f.find(I=>_.includes(I.token)||I.token===A);if(j)throw new RangeError(`The format string mustn't contain \`${j.fullToken}\` and \`${T}\` at the same time`)}else if(R.incompatibleTokens==="*"&&f.length>0)throw new RangeError(`The format string mustn't contain \`${T}\` and any other token at the same time`);f.push({token:A,fullToken:T});const B=R.run(e,T,o.match,x);if(!B)return r();m.push(B.setter),e=B.rest}else{if(A.match(Ti))throw new RangeError("Format string contains an unescaped latin alphabet character `"+A+"`");if(T==="''"?T="'":A==="'"&&(T=Pi(T)),e.indexOf(T)===0)e=e.slice(T.length);else return r()}}if(e.length>0&&Mi.test(e))return r();const k=m.map(T=>T.priority).sort((T,A)=>A-T).filter((T,A,R)=>R.indexOf(T)===A).map(T=>m.filter(A=>A.priority===T).sort((A,R)=>R.subPriority-A.subPriority)).map(T=>T[0]);let Y=ye(n,a?.in);if(isNaN(+Y))return r();const N={};for(const T of k){if(!T.validate(Y,x))return r();const A=T.set(Y,N,x);Array.isArray(A)?(Y=A[0],Object.assign(N,A[1])):Y=A}return Y}function Pi(e){return e.match(Di)[1].replace(xi,"'")}function Gn(e,t,n){const[a,r]=Ma(n?.in,e,t);return+na(a)==+na(r)}function Sr(e,t,n){return vt(e,-t,n)}function $r(e,t,n){const a=ye(e,n?.in),r=a.getFullYear(),l=a.getDate(),o=Ye(e,0);o.setFullYear(r,t,15),o.setHours(0,0,0,0);const c=Ao(o);return a.setMonth(t,Math.min(l,c)),a}function Re(e,t,n){let a=ye(e,n?.in);return isNaN(+a)?Ye(e,NaN):(t.year!=null&&a.setFullYear(t.year),t.month!=null&&(a=$r(a,t.month)),t.date!=null&&a.setDate(t.date),t.hours!=null&&a.setHours(t.hours),t.minutes!=null&&a.setMinutes(t.minutes),t.seconds!=null&&a.setSeconds(t.seconds),t.milliseconds!=null&&a.setMilliseconds(t.milliseconds),a)}function Si(e,t,n){const a=ye(e,n?.in);return a.setHours(t),a}function Ar(e,t,n){const a=ye(e,n?.in);return a.setMilliseconds(t),a}function $i(e,t,n){const a=ye(e,n?.in);return a.setMinutes(t),a}function Cr(e,t,n){const a=ye(e,n?.in);return a.setSeconds(t),a}function wt(e,t,n){const a=ye(e,n?.in);return isNaN(+a)?Ye(e,NaN):(a.setFullYear(t),a)}function sa(e,t,n){return kt(e,-t,n)}function Ai(e,t,n){const{years:a=0,months:r=0,weeks:l=0,days:o=0,hours:c=0,minutes:s=0,seconds:x=0}=t,m=sa(e,r+a*12,n),p=Sr(m,o+l*7,n),f=s+c*60,k=(x+f*60)*1e3;return Ye(e,+p-k)}function Yr(e,t,n){return fn(e,-t,n)}function pa(){const e=hl();return P(),q("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor","aria-hidden":"true",class:"dp__icon",role:"img",...e},[ge("path",{d:"M29.333 8c0-2.208-1.792-4-4-4h-18.667c-2.208 0-4 1.792-4 4v18.667c0 2.208 1.792 4 4 4h18.667c2.208 0 4-1.792 4-4v-18.667zM26.667 8v18.667c0 0.736-0.597 1.333-1.333 1.333 0 0-18.667 0-18.667 0-0.736 0-1.333-0.597-1.333-1.333 0 0 0-18.667 0-18.667 0-0.736 0.597-1.333 1.333-1.333 0 0 18.667 0 18.667 0 0.736 0 1.333 0.597 1.333 1.333z"}),ge("path",{d:"M20 2.667v5.333c0 0.736 0.597 1.333 1.333 1.333s1.333-0.597 1.333-1.333v-5.333c0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z"}),ge("path",{d:"M9.333 2.667v5.333c0 0.736 0.597 1.333 1.333 1.333s1.333-0.597 1.333-1.333v-5.333c0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z"}),ge("path",{d:"M4 14.667h24c0.736 0 1.333-0.597 1.333-1.333s-0.597-1.333-1.333-1.333h-24c-0.736 0-1.333 0.597-1.333 1.333s0.597 1.333 1.333 1.333z"})])}pa.compatConfig={MODE:3};function Rr(){return P(),q("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor","aria-hidden":"true",class:"dp__icon",role:"img"},[ge("path",{d:"M23.057 7.057l-16 16c-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0l16-16c0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0z"}),ge("path",{d:"M7.057 8.943l16 16c0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885l-16-16c-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885z"})])}Rr.compatConfig={MODE:3};function Dn(){return P(),q("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor","aria-hidden":"true",class:"dp__icon",role:"img"},[ge("path",{d:"M20.943 23.057l-7.057-7.057c0 0 7.057-7.057 7.057-7.057 0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0l-8 8c-0.521 0.521-0.521 1.365 0 1.885l8 8c0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885z"})])}Dn.compatConfig={MODE:3};function xn(){return P(),q("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor","aria-hidden":"true",class:"dp__icon",role:"img"},[ge("path",{d:"M12.943 24.943l8-8c0.521-0.521 0.521-1.365 0-1.885l-8-8c-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885l7.057 7.057c0 0-7.057 7.057-7.057 7.057-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0z"})])}xn.compatConfig={MODE:3};function Mn(){return P(),q("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor","aria-hidden":"true",class:"dp__icon",role:"img"},[ge("path",{d:"M16 1.333c-8.095 0-14.667 6.572-14.667 14.667s6.572 14.667 14.667 14.667c8.095 0 14.667-6.572 14.667-14.667s-6.572-14.667-14.667-14.667zM16 4c6.623 0 12 5.377 12 12s-5.377 12-12 12c-6.623 0-12-5.377-12-12s5.377-12 12-12z"}),ge("path",{d:"M14.667 8v8c0 0.505 0.285 0.967 0.737 1.193l5.333 2.667c0.658 0.329 1.46 0.062 1.789-0.596s0.062-1.46-0.596-1.789l-4.596-2.298c0 0 0-7.176 0-7.176 0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z"})])}Mn.compatConfig={MODE:3};function Tn(){return P(),q("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor","aria-hidden":"true",class:"dp__icon",role:"img"},[ge("path",{d:"M24.943 19.057l-8-8c-0.521-0.521-1.365-0.521-1.885 0l-8 8c-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0l7.057-7.057c0 0 7.057 7.057 7.057 7.057 0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885z"})])}Tn.compatConfig={MODE:3};function Pn(){return P(),q("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor","aria-hidden":"true",class:"dp__icon",role:"img"},[ge("path",{d:"M7.057 12.943l8 8c0.521 0.521 1.365 0.521 1.885 0l8-8c0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0l-7.057 7.057c0 0-7.057-7.057-7.057-7.057-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885z"})])}Pn.compatConfig={MODE:3};const st=(e,t)=>t?new Date(e.toLocaleString("en-US",{timeZone:t})):new Date(e),Sn=(e,t,n)=>mn(e,t,n)||U(),Ci=(e,t,n)=>{const a=t.dateInTz?st(new Date(e),t.dateInTz):U(e);return n?Ge(a,!0):a},mn=(e,t,n)=>{if(!e)return null;const a=n?Ge(U(e),!0):U(e);return t?t.exactMatch?Ci(e,t,n):st(a,t.timezone):a},Yi=e=>{const t=new Date(e.getFullYear(),0,1).getTimezoneOffset();return e.getTimezoneOffset(){if(!e)return 0;const n=new Date,a=new Date(n.toLocaleString("en-US",{timeZone:"UTC"})),r=new Date(n.toLocaleString("en-US",{timeZone:e})),l=(Yi(t??r)?r:t??r).getTimezoneOffset()/60;return(+a-+r)/(1e3*60*60)-l};var ft=(e=>(e.month="month",e.year="year",e))(ft||{}),gt=(e=>(e.top="top",e.bottom="bottom",e))(gt||{}),jt=(e=>(e.header="header",e.calendar="calendar",e.timePicker="timePicker",e))(jt||{}),rt=(e=>(e.month="month",e.year="year",e.calendar="calendar",e.time="time",e.minutes="minutes",e.hours="hours",e.seconds="seconds",e))(rt||{});const Ii=["timestamp","date","iso"];var lt=(e=>(e.up="up",e.down="down",e.left="left",e.right="right",e))(lt||{}),Ne=(e=>(e.arrowUp="ArrowUp",e.arrowDown="ArrowDown",e.arrowLeft="ArrowLeft",e.arrowRight="ArrowRight",e.enter="Enter",e.space=" ",e.esc="Escape",e.tab="Tab",e.home="Home",e.end="End",e.pageUp="PageUp",e.pageDown="PageDown",e))(Ne||{}),la=(e=>(e.MONTH_AND_YEAR="MM-yyyy",e.YEAR="yyyy",e.DATE="dd-MM-yyyy",e))(la||{});function Qn(e){return t=>{const n=new Intl.DateTimeFormat(e,{weekday:"short",timeZone:"UTC"}).format(new Date(`2017-01-0${t}T00:00:00+00:00`));return e==="ar"?n.slice(2,5):n.slice(0,2)}}function Ni(e){return t=>St(st(new Date(`2017-01-0${t}T00:00:00+00:00`),"UTC"),"EEEEEE",{locale:e})}const Oi=(e,t,n)=>{const a=[1,2,3,4,5,6,7];let r;if(e!==null)try{r=a.map(Ni(e))}catch{r=a.map(Qn(t))}else r=a.map(Qn(t));const l=r.slice(0,n),o=r.slice(n+1,r.length);return[r[n]].concat(...o).concat(...l)},$n=(e,t,n)=>{const a=[];for(let r=+e[0];r<=+e[1];r++)a.push({value:+r,text:Cn(r,t)});return n?a.reverse():a},Ir=(e,t,n)=>{const a=[1,2,3,4,5,6,7,8,9,10,11,12].map(l=>{const o=l<10?`0${l}`:l;return new Date(`2017-${o}-01T00:00:00+00:00`)});if(e!==null)try{const l=n==="long"?"LLLL":"LLL";return a.map((o,c)=>{const s=St(st(o,"UTC"),l,{locale:e});return{text:s.charAt(0).toUpperCase()+s.substring(1),value:c}})}catch{}const r=new Intl.DateTimeFormat(t,{month:n,timeZone:"UTC"});return a.map((l,o)=>{const c=r.format(l);return{text:c.charAt(0).toUpperCase()+c.substring(1),value:o}})},Bi=e=>[12,1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,4,5,6,7,8,9,10,11][e],We=e=>{const t=u(e);return t?.$el?t?.$el:t},Ei=e=>({type:"dot",...e??{}}),Nr=e=>Array.isArray(e)?!!e[0]&&!!e[1]:!1,An={prop:e=>`"${e}" prop must be enabled!`,dateArr:e=>`You need to use array as "model-value" binding in order to support "${e}"`},Ze=e=>e,Zn=e=>e===0?e:!e||isNaN(+e)?null:+e,Kn=e=>e===null,Or=e=>{if(e)return[...e.querySelectorAll("input, button, select, textarea, a[href]")][0]},zi=e=>{const t=[],n=a=>a.filter(r=>r);for(let a=0;a{const a=n!=null,r=t!=null;if(!a&&!r)return!1;const l=+n,o=+t;return a&&r?+e>l||+el:r?+ezi(e).map(n=>n.map(a=>{const{active:r,disabled:l,isBetween:o,highlighted:c}=t(a);return{...a,active:r,disabled:l,className:{dp__overlay_cell_active:r,dp__overlay_cell:!r,dp__overlay_cell_disabled:l,dp__overlay_cell_pad:!0,dp__overlay_cell_active_disabled:l&&r,dp__cell_in_between:o,"dp--highlighted":c}}})),Et=(e,t,n=!1)=>{e&&t.allowStopPropagation&&(n&&e.stopImmediatePropagation(),e.stopPropagation())},Vi=()=>["a[href]","area[href]","input:not([disabled]):not([type='hidden'])","select:not([disabled])","textarea:not([disabled])","button:not([disabled])","[tabindex]:not([tabindex='-1'])","[data-datepicker-instance]"].join(", ");function Li(e,t){let n=[...document.querySelectorAll(Vi())];n=n.filter(r=>!e.contains(r)||r.hasAttribute("data-datepicker-instance"));const a=n.indexOf(e);if(a>=0&&(t?a-1>=0:a+1<=n.length))return n[a+(t?-1:1)]}const pn=(e,t)=>e?.querySelector(`[data-dp-element="${t}"]`),Cn=(e,t)=>new Intl.NumberFormat(t,{useGrouping:!1,style:"decimal"}).format(e),Yn=(e,t)=>St(e,t??la.DATE),Za=e=>Array.isArray(e),Na=(e,t,n)=>t.get(Yn(e,n)),Hi=(e,t)=>e?t?t instanceof Map?!!Na(e,t):t(U(e)):!1:!0,ot=(e,t,n=!1,a)=>{if(e.key===Ne.enter||e.key===Ne.space)return n&&e.preventDefault(),t();if(a)return a(e)},Fi=()=>"ontouchstart"in window||navigator.maxTouchPoints>0,Br=(e,t)=>e?la.MONTH_AND_YEAR:t?la.YEAR:la.DATE,Er=e=>e<10?`0${e}`:e,Jn=(e,t,n,a,r,l)=>{const o=vn(e,t.slice(0,e.length),new Date,{locale:l});return ga(o)&&pr(o)?a||r?o:Re(o,{hours:+n.hours,minutes:+n?.minutes,seconds:+n?.seconds,milliseconds:0}):null},qi=(e,t,n,a,r,l)=>{const o=Array.isArray(n)?n[0]:n;if(typeof t=="string")return Jn(e,t,o,a,r,l);if(Array.isArray(t)){let c=null;for(const s of t)if(c=Jn(e,s,o,a,r,l),c)break;return c}return typeof t=="function"?t(e):null},U=e=>e?new Date(e):new Date,Ui=(e,t,n)=>{if(t){const r=(e.getMonth()+1).toString().padStart(2,"0"),l=e.getDate().toString().padStart(2,"0"),o=e.getHours().toString().padStart(2,"0"),c=e.getMinutes().toString().padStart(2,"0"),s=n?e.getSeconds().toString().padStart(2,"0"):"00";return`${e.getFullYear()}-${r}-${l}T${o}:${c}:${s}.000Z`}const a=Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds());return new Date(a).toISOString()},Ge=(e,t)=>{const n=U(JSON.parse(JSON.stringify(e))),a=Re(n,{hours:0,minutes:0,seconds:0,milliseconds:0});return t?Ol(a):a},zt=(e,t,n,a)=>{let r=e?U(e):U();return(t||t===0)&&(r=Si(r,+t)),(n||n===0)&&(r=$i(r,+n)),(a||a===0)&&(r=Cr(r,+a)),Ar(r,0)},Ve=(e,t)=>!e||!t?!1:ua(Ge(e),Ge(t)),Pe=(e,t)=>!e||!t?!1:aa(Ge(e),Ge(t)),qe=(e,t)=>!e||!t?!1:Xt(Ge(e),Ge(t)),Da=(e,t,n)=>e?.[0]&&e?.[1]?qe(n,e[0])&&Ve(n,e[1]):e?.[0]&&t?qe(n,e[0])&&Ve(n,t)||Ve(n,e[0])&&qe(n,t):!1,bt=e=>{const t=Re(new Date(e),{date:1});return Ge(t)},Ka=(e,t,n)=>t&&(n||n===0)?Object.fromEntries(["hours","minutes","seconds"].map(a=>a===t?[a,n]:[a,isNaN(+e[a])?void 0:+e[a]])):{hours:isNaN(+e.hours)?void 0:+e.hours,minutes:isNaN(+e.minutes)?void 0:+e.minutes,seconds:isNaN(+e.seconds)?void 0:+e.seconds},Wt=e=>({hours:Yt(e),minutes:Vt(e),seconds:ia(e)}),zr=(e,t)=>{if(t){const n=be(U(t));if(n>e)return 12;if(n===e)return Te(U(t))}},Vr=(e,t)=>{if(t){const n=be(U(t));return n{if(e)return be(U(e))},Lr=(e,t)=>{const n=qe(e,t)?t:e,a=qe(t,e)?t:e;return yr({start:n,end:a})},ji=e=>{const t=kt(e,1);return{month:Te(t),year:be(t)}},At=(e,t)=>{const n=Dt(e,{weekStartsOn:+t}),a=gr(e,{weekStartsOn:+t});return[n,a]},Hr=(e,t)=>{const n={hours:Yt(U()),minutes:Vt(U()),seconds:t?ia(U()):0};return Object.assign(n,e)},Bt=(e,t,n)=>[Re(U(e),{date:1}),Re(U(),{month:t,year:n,date:1})],Ct=(e,t,n)=>{let a=e?U(e):U();return(t||t===0)&&(a=$r(a,t)),n&&(a=wt(a,n)),a},Fr=(e,t,n,a,r)=>{if(!a||r&&!t||!r&&!n)return!1;const l=r?kt(e,1):sa(e,1),o=[Te(l),be(l)];return r?!Xi(...o,t):!Wi(...o,n)},Wi=(e,t,n)=>Ve(...Bt(n,e,t))||Pe(...Bt(n,e,t)),Xi=(e,t,n)=>qe(...Bt(n,e,t))||Pe(...Bt(n,e,t)),qr=(e,t,n,a,r,l,o)=>{if(typeof t=="function"&&!o)return t(e);const c=n?{locale:n}:void 0;return Array.isArray(e)?`${St(e[0],l,c)}${r&&!e[1]?"":a}${e[1]?St(e[1],l,c):""}`:St(e,l,c)},ea=e=>{if(e)return null;throw new Error(An.prop("partial-range"))},Aa=(e,t)=>{if(t)return e();throw new Error(An.prop("range"))},hn=e=>Array.isArray(e)?ga(e[0])&&(e[1]?ga(e[1]):!0):e?ga(e):!1,Gi=(e,t)=>Re(t??U(),{hours:+e.hours||0,minutes:+e.minutes||0,seconds:+e.seconds||0}),Ja=(e,t,n,a)=>{if(!e)return!0;if(a){const r=n==="max"?ua(e,t):Xt(e,t),l={seconds:0,milliseconds:0};return r||aa(Re(e,l),Re(t,l))}return n==="max"?e.getTime()<=t.getTime():e.getTime()>=t.getTime()},en=(e,t,n)=>e?Gi(e,t):U(n??t),er=(e,t,n,a,r)=>{if(Array.isArray(a)){const o=en(e,a[0],t),c=en(e,a[1],t);return Ja(a[0],o,n,!!t)&&Ja(a[1],c,n,!!t)&&r}const l=en(e,a,t);return Ja(a,l,n,!!t)&&r},tn=e=>Re(U(),Wt(e)),Qi=(e,t,n)=>{if(e instanceof Map){const a=`${Er(n+1)}-${t}`;return e.size?e.has(a):!1}return typeof e=="function"?e(Ge(Re(U(),{month:n,year:t}),!0)):!1},Zi=(e,t,n)=>{if(e instanceof Map){const a=`${Er(n+1)}-${t}`;return e.size?e.has(a):!0}return!0},Ur=(e,t,n)=>typeof e=="function"?e({month:t,year:n}):!!e.months.find(a=>a.month===t&&a.year===n),Rn=(e,t)=>typeof e=="function"?e(t):e.years.includes(t),yn=e=>`dp-${St(e,"yyyy-MM-dd")}`,tr=(e,t)=>{const n=Sr(Ge(t),e),a=vt(Ge(t),e);return{before:n,after:a}},jr=(e,t)=>t<+e[0]||t>+e[1],fa=xa({menuFocused:!1,shiftKeyInMenu:!1}),Wr=()=>{const e=n=>{fa.menuFocused=n},t=n=>{fa.shiftKeyInMenu!==n&&(fa.shiftKeyInMenu=n)};return{control:H(()=>({shiftKeyInMenu:fa.shiftKeyInMenu,menuFocused:fa.menuFocused})),setMenuFocused:e,setShiftKey:t}},Ie=xa({monthYear:[],calendar:[],time:[],actionRow:[],selectionGrid:[],timePicker:{0:[],1:[]},monthPicker:[]}),an=Z(null),Ca=Z(!1),nn=Z(!1),rn=Z(!1),ln=Z(!1),nt=Z(0),Fe=Z(0),Lt=()=>{const e=H(()=>Ca.value?[...Ie.selectionGrid,Ie.actionRow].filter(p=>p.length):nn.value?[...Ie.timePicker[0],...Ie.timePicker[1],ln.value?[]:[an.value],Ie.actionRow].filter(p=>p.length):rn.value?[...Ie.monthPicker,Ie.actionRow]:[Ie.monthYear,...Ie.calendar,Ie.time,Ie.actionRow].filter(p=>p.length)),t=p=>{nt.value=p?nt.value+1:nt.value-1;let f=null;e.value[Fe.value]&&(f=e.value[Fe.value][nt.value]),!f&&e.value[Fe.value+(p?1:-1)]?(Fe.value=Fe.value+(p?1:-1),nt.value=p?0:e.value[Fe.value].length-1):f||(nt.value=p?nt.value-1:nt.value+1)},n=p=>{Fe.value===0&&!p||Fe.value===e.value.length&&p||(Fe.value=p?Fe.value+1:Fe.value-1,e.value[Fe.value]?e.value[Fe.value]&&!e.value[Fe.value][nt.value]&&nt.value!==0&&(nt.value=e.value[Fe.value].length-1):Fe.value=p?Fe.value-1:Fe.value+1)},a=p=>{let f=null;e.value[Fe.value]&&(f=e.value[Fe.value][nt.value]),f?f.focus({preventScroll:!Ca.value}):nt.value=p?nt.value-1:nt.value+1},r=()=>{t(!0),a(!0)},l=()=>{t(!1),a(!1)},o=()=>{n(!1),a(!0)},c=()=>{n(!0),a(!0)},s=(p,f)=>{Ie[f]=p},x=(p,f)=>{Ie[f]=p},m=()=>{nt.value=0,Fe.value=0};return{buildMatrix:s,buildMultiLevelMatrix:x,setTimePickerBackRef:p=>{an.value=p},setSelectionGrid:p=>{Ca.value=p,m(),p||(Ie.selectionGrid=[])},setTimePicker:(p,f=!1)=>{nn.value=p,ln.value=f,m(),p||(Ie.timePicker[0]=[],Ie.timePicker[1]=[])},setTimePickerElements:(p,f=0)=>{Ie.timePicker[f]=p},arrowRight:r,arrowLeft:l,arrowUp:o,arrowDown:c,clearArrowNav:()=>{Ie.monthYear=[],Ie.calendar=[],Ie.time=[],Ie.actionRow=[],Ie.selectionGrid=[],Ie.timePicker[0]=[],Ie.timePicker[1]=[],Ca.value=!1,nn.value=!1,ln.value=!1,rn.value=!1,m(),an.value=null},setMonthPicker:p=>{rn.value=p,m()},refSets:Ie}},ar=e=>({menuAppearTop:"dp-menu-appear-top",menuAppearBottom:"dp-menu-appear-bottom",open:"dp-slide-down",close:"dp-slide-up",next:"calendar-next",previous:"calendar-prev",vNext:"dp-slide-up",vPrevious:"dp-slide-down",...e??{}}),Ki=e=>({toggleOverlay:"Toggle overlay",menu:"Datepicker menu",input:"Datepicker input",openTimePicker:"Open time picker",closeTimePicker:"Close time Picker",incrementValue:t=>`Increment ${t}`,decrementValue:t=>`Decrement ${t}`,openTpOverlay:t=>`Open ${t} overlay`,amPmButton:"Switch AM/PM mode",openYearsOverlay:"Open years overlay",openMonthsOverlay:"Open months overlay",nextMonth:"Next month",prevMonth:"Previous month",nextYear:"Next year",prevYear:"Previous year",day:void 0,weekDay:void 0,clearInput:"Clear value",calendarIcon:"Calendar icon",timePicker:"Time picker",monthPicker:t=>`Month picker${t?" overlay":""}`,yearPicker:t=>`Year picker${t?" overlay":""}`,timeOverlay:t=>`${t} overlay`,...e??{}}),nr=e=>e?typeof e=="boolean"?e?2:0:+e>=2?+e:2:0,Ji=e=>{const t=typeof e=="object"&&e,n={static:!0,solo:!1};if(!e)return{...n,count:nr(!1)};const a=t?e:{},r=t?a.count??!0:e,l=nr(r);return Object.assign(n,a,{count:l})},eu=(e,t,n)=>e||(typeof n=="string"?n:t),tu=e=>typeof e=="boolean"?e?ar({}):!1:ar(e),au=e=>{const t={enterSubmit:!0,tabSubmit:!0,openMenu:"open",selectOnFocus:!1,rangeSeparator:" - ",escClose:!0};return typeof e=="object"?{...t,...e??{},enabled:!0}:{...t,enabled:e}},nu=e=>({months:[],years:[],times:{hours:[],minutes:[],seconds:[]},...e??{}}),ru=e=>({showSelect:!0,showCancel:!0,showNow:!1,showPreview:!0,...e??{}}),lu=e=>{const t={input:!1};return typeof e=="object"?{...t,...e??{},enabled:!0}:{enabled:e,...t}},ou=e=>({allowStopPropagation:!0,closeOnScroll:!1,modeHeight:255,allowPreventDefault:!1,closeOnClearValue:!0,closeOnAutoApply:!0,noSwipe:!1,keepActionRow:!1,onClickOutside:void 0,tabOutClosesMenu:!0,arrowLeft:void 0,keepViewOnOffsetClick:!1,timeArrowHoldThreshold:0,shadowDom:!1,mobileBreakpoint:600,setDateOnMenuClose:!1,...e??{}}),iu=e=>{const t={dates:Array.isArray(e)?e.map(n=>U(n)):[],years:[],months:[],quarters:[],weeks:[],weekdays:[],options:{highlightDisabled:!1}};return typeof e=="function"?e:{...t,...e??{}}},uu=e=>typeof e=="object"?{type:e?.type??"local",hideOnOffsetDates:e?.hideOnOffsetDates??!1}:{type:e,hideOnOffsetDates:!1},su=e=>{const t={noDisabledRange:!1,showLastInRange:!0,minMaxRawRange:!1,partialRange:!0,disableTimeRangeValidation:!1,maxRange:void 0,minRange:void 0,autoRange:void 0,fixedStart:!1,fixedEnd:!1};return typeof e=="object"?{enabled:!0,...t,...e}:{enabled:e,...t}},du=e=>e?typeof e=="string"?{timezone:e,exactMatch:!1,dateInTz:void 0,emitTimezone:void 0,convertModel:!0}:{timezone:e.timezone,exactMatch:e.exactMatch??!1,dateInTz:e.dateInTz??void 0,emitTimezone:e.emitTimezone??void 0,convertModel:e.convertModel??!0}:{timezone:void 0,exactMatch:!1,emitTimezone:void 0},on=(e,t,n,a)=>new Map(e.map(r=>{const l=Sn(r,t,a);return[Yn(l,n),l]})),cu=(e,t)=>e.length?new Map(e.map(n=>{const a=Sn(n.date,t);return[Yn(a,la.DATE),n]})):null,vu=e=>{const t=Br(e.isMonthPicker,e.isYearPicker);return{minDate:mn(e.minDate,e.timezone,e.isSpecific),maxDate:mn(e.maxDate,e.timezone,e.isSpecific),disabledDates:Za(e.disabledDates)?on(e.disabledDates,e.timezone,t,e.isSpecific):e.disabledDates,allowedDates:Za(e.allowedDates)?on(e.allowedDates,e.timezone,t,e.isSpecific):null,highlight:typeof e.highlight=="object"&&Za(e.highlight?.dates)?on(e.highlight.dates,e.timezone,t):e.highlight,markers:cu(e.markers,e.timezone)}},mu=e=>typeof e=="boolean"?{enabled:e,dragSelect:!0,limit:null}:{enabled:!!e,limit:e.limit?+e.limit:null,dragSelect:e.dragSelect??!0},pu=e=>({...Object.fromEntries(Object.keys(e).map(t=>{const n=t,a=e[n],r=typeof e[n]=="string"?{[a]:!0}:Object.fromEntries(a.map(l=>[l,!0]));return[t,r]}))}),Ee=e=>{const t=()=>{const I=e.enableSeconds?":ss":"",y=e.enableMinutes?":mm":"";return e.is24?`HH${y}${I}`:`hh${y}${I} aa`},n=()=>e.format?e.format:e.monthPicker?"MM/yyyy":e.timePicker?t():e.weekPicker?`${T.value?.type==="iso"?"II":"ww"}-RR`:e.yearPicker?"yyyy":e.quarterPicker?"QQQ/yyyy":e.enableTimePicker?`MM/dd/yyyy, ${t()}`:"MM/dd/yyyy",a=I=>Hr(I,e.enableSeconds),r=()=>B.value.enabled?e.startTime&&Array.isArray(e.startTime)?[a(e.startTime[0]),a(e.startTime[1])]:null:e.startTime&&!Array.isArray(e.startTime)?a(e.startTime):null,l=H(()=>Ji(e.multiCalendars)),o=H(()=>r()),c=H(()=>Ki(e.ariaLabels)),s=H(()=>nu(e.filters)),x=H(()=>tu(e.transitions)),m=H(()=>ru(e.actionRow)),p=H(()=>eu(e.previewFormat,e.format,n())),f=H(()=>au(e.textInput)),k=H(()=>lu(e.inline)),Y=H(()=>ou(e.config)),N=H(()=>iu(e.highlight)),T=H(()=>uu(e.weekNumbers)),A=H(()=>du(e.timezone)),R=H(()=>mu(e.multiDates)),_=H(()=>vu({minDate:e.minDate,maxDate:e.maxDate,disabledDates:e.disabledDates,allowedDates:e.allowedDates,highlight:N.value,markers:e.markers,timezone:A.value,isSpecific:e.monthPicker||e.yearPicker||e.quarterPicker,isMonthPicker:e.monthPicker,isYearPicker:e.yearPicker})),B=H(()=>su(e.range)),j=H(()=>pu(e.ui));return{defaultedTransitions:x,defaultedMultiCalendars:l,defaultedStartTime:o,defaultedAriaLabels:c,defaultedFilters:s,defaultedActionRow:m,defaultedPreviewFormat:p,defaultedTextInput:f,defaultedInline:k,defaultedConfig:Y,defaultedHighlight:N,defaultedWeekNumbers:T,defaultedRange:B,propDates:_,defaultedTz:A,defaultedMultiDates:R,defaultedUI:j,getDefaultPattern:n,getDefaultStartTime:r,handleEventPropagation:I=>{Y.value.allowStopPropagation&&I.stopPropagation(),Y.value.allowPreventDefault&&I.preventDefault()}}},hu=(e,t,{isInputFocused:n,isTextInputDate:a})=>{const r=Z(),{defaultedTextInput:l,defaultedRange:o,defaultedTz:c,defaultedMultiDates:s,getDefaultPattern:x}=Ee(t),m=Z(""),p=ba(t,"format"),f=ba(t,"formatLocale");pt(r,()=>{typeof t.onInternalModelChange=="function"&&e("internal-model-change",r.value,v(!0))},{deep:!0}),pt(o,(d,X)=>{d.enabled!==X.enabled&&(r.value=null)}),pt(p,()=>{E()});const k=d=>c.value.timezone&&c.value.convertModel?st(d,c.value.timezone):d,Y=d=>{if(c.value.timezone&&c.value.convertModel){const X=Ri(c.value.timezone,d);return $l(d,X)}return d},N=(d,X,$e=!1)=>qr(d,t.format,t.formatLocale,l.value.rangeSeparator,t.modelAuto,X??x(),$e),T=d=>d?t.modelType?S(d):{hours:Yt(d),minutes:Vt(d),seconds:t.enableSeconds?ia(d):0}:null,A=d=>t.modelType?S(d):{month:Te(d),year:be(d)},R=d=>Array.isArray(d)?s.value.enabled?d.map(X=>_(X,wt(U(),X))):Aa(()=>[wt(U(),d[0]),d[1]?wt(U(),d[1]):ea(o.value.partialRange)],o.value.enabled):wt(U(),+d),_=(d,X)=>(typeof d=="string"||typeof d=="number")&&t.modelType?J(d):X,B=d=>Array.isArray(d)?[_(d[0],zt(null,+d[0].hours,+d[0].minutes,d[0].seconds)),_(d[1],zt(null,+d[1].hours,+d[1].minutes,d[1].seconds))]:_(d,zt(null,d.hours,d.minutes,d.seconds)),j=d=>{const X=Re(U(),{date:1});return Array.isArray(d)?s.value.enabled?d.map($e=>_($e,Ct(X,+$e.month,+$e.year))):Aa(()=>[_(d[0],Ct(X,+d[0].month,+d[0].year)),_(d[1],d[1]?Ct(X,+d[1].month,+d[1].year):ea(o.value.partialRange))],o.value.enabled):_(d,Ct(X,+d.month,+d.year))},I=d=>{if(Array.isArray(d))return d.map(X=>J(X));throw new Error(An.dateArr("multi-dates"))},y=d=>{if(Array.isArray(d)&&o.value.enabled){const X=d[0],$e=d[1];return[U(Array.isArray(X)?X[0]:null),Array.isArray($e)&&$e.length?U($e[0]):null]}return U(d[0])},V=d=>t.modelAuto?Array.isArray(d)?[J(d[0]),J(d[1])]:t.autoApply?[J(d)]:[J(d),null]:Array.isArray(d)?Aa(()=>d[1]?[J(d[0]),d[1]?J(d[1]):ea(o.value.partialRange)]:[J(d[0])],o.value.enabled):J(d),L=()=>{Array.isArray(r.value)&&o.value.enabled&&r.value.length===1&&r.value.push(ea(o.value.partialRange))},z=()=>{const d=r.value;return[S(d[0]),d[1]?S(d[1]):ea(o.value.partialRange)]},ne=()=>Array.isArray(r.value)?r.value[1]?z():S(Ze(r.value[0])):[],se=()=>(r.value||[]).map(d=>S(d)),fe=(d=!1)=>(d||L(),t.modelAuto?ne():s.value.enabled?se():Array.isArray(r.value)?Aa(()=>z(),o.value.enabled):S(Ze(r.value))),g=d=>!d||Array.isArray(d)&&!d.length?null:t.timePicker?B(Ze(d)):t.monthPicker?j(Ze(d)):t.yearPicker?R(Ze(d)):s.value.enabled?I(Ze(d)):t.weekPicker?y(Ze(d)):V(Ze(d)),D=d=>{if(a.value)return;const X=g(d);hn(Ze(X))?(r.value=Ze(X),E()):(r.value=null,m.value="")},w=()=>{const d=X=>St(X,l.value.format);return`${d(r.value[0])} ${l.value.rangeSeparator} ${r.value[1]?d(r.value[1]):""}`},F=()=>n.value&&r.value?Array.isArray(r.value)?w():St(r.value,l.value.format):N(r.value),te=()=>r.value?s.value.enabled?r.value.map(d=>N(d)).join("; "):l.value.enabled&&typeof l.value.format=="string"?F():N(r.value):"",E=()=>{!t.format||typeof t.format=="string"||l.value.enabled&&typeof l.value.format=="string"?m.value=te():m.value=t.format(r.value)},J=d=>{if(t.utc){const X=new Date(d);return t.utc==="preserve"?new Date(X.getTime()+X.getTimezoneOffset()*6e4):X}return t.modelType?Ii.includes(t.modelType)?k(new Date(d)):t.modelType==="format"&&(typeof t.format=="string"||!t.format)?k(vn(d,x(),new Date,{locale:f.value})):k(vn(d,t.modelType,new Date,{locale:f.value})):k(new Date(d))},S=d=>d?t.utc?Ui(d,t.utc==="preserve",t.enableSeconds):t.modelType?t.modelType==="timestamp"?+Y(d):t.modelType==="iso"?Y(d).toISOString():t.modelType==="format"&&(typeof t.format=="string"||!t.format)?N(Y(d)):N(Y(d),t.modelType,!0):Y(d):"",ue=(d,X=!1,$e=!1)=>{if($e)return d;if(e("update:model-value",d),c.value.emitTimezone&&X){const G=Array.isArray(d)?d.map(ke=>st(Ze(ke),c.value.emitTimezone)):st(Ze(d),c.value.emitTimezone);e("update:model-timezone-value",G)}},h=d=>Array.isArray(r.value)?s.value.enabled?r.value.map(X=>d(X)):[d(r.value[0]),r.value[1]?d(r.value[1]):ea(o.value.partialRange)]:d(Ze(r.value)),O=()=>{if(Array.isArray(r.value)){const d=At(r.value[0],t.weekStart),X=r.value[1]?At(r.value[1],t.weekStart):[];return[d.map($e=>U($e)),X.map($e=>U($e))]}return At(r.value,t.weekStart).map(d=>U(d))},M=(d,X)=>ue(Ze(h(d)),!1,X),re=d=>{const X=O();return d?X:e("update:model-value",O())},v=(d=!1)=>(d||E(),t.monthPicker?M(A,d):t.timePicker?M(T,d):t.yearPicker?M(be,d):t.weekPicker?re(d):ue(fe(d),!0,d));return{inputValue:m,internalModelValue:r,checkBeforeEmit:()=>r.value?o.value.enabled?o.value.partialRange?r.value.length>=1:r.value.length===2:!!r.value:!1,parseExternalModelValue:D,formatInputValue:E,emitModelValue:v}},yu=(e,t)=>{const{defaultedFilters:n,propDates:a}=Ee(e),{validateMonthYearInRange:r}=Ht(e),l=(m,p)=>{let f=m;return n.value.months.includes(Te(f))?(f=p?kt(m,1):sa(m,1),l(f,p)):f},o=(m,p)=>{let f=m;return n.value.years.includes(be(f))?(f=p?fn(m,1):Yr(m,1),o(f,p)):f},c=(m,p=!1)=>{const f=Re(U(),{month:e.month,year:e.year});let k=m?kt(f,1):sa(f,1);e.disableYearSelect&&(k=wt(k,e.year));let Y=Te(k),N=be(k);n.value.months.includes(Y)&&(k=l(k,m),Y=Te(k),N=be(k)),n.value.years.includes(N)&&(k=o(k,m),N=be(k)),r(Y,N,m,e.preventMinMaxNavigation)&&s(Y,N,p)},s=(m,p,f)=>{t("update-month-year",{month:m,year:p,fromNav:f})},x=H(()=>m=>Fr(Re(U(),{month:e.month,year:e.year}),a.value.maxDate,a.value.minDate,e.preventMinMaxNavigation,m));return{handleMonthYearChange:c,isDisabled:x,updateMonthYear:s}},Ba={multiCalendars:{type:[Boolean,Number,String,Object],default:void 0},modelValue:{type:[String,Date,Array,Object,Number],default:null},modelType:{type:String,default:null},position:{type:String,default:"center"},dark:{type:Boolean,default:!1},format:{type:[String,Function],default:()=>null},autoPosition:{type:[Boolean,String],default:!0},altPosition:{type:Function,default:null},transitions:{type:[Boolean,Object],default:!0},formatLocale:{type:Object,default:null},utc:{type:[Boolean,String],default:!1},ariaLabels:{type:Object,default:()=>({})},offset:{type:[Number,String],default:10},hideNavigation:{type:Array,default:()=>[]},timezone:{type:[String,Object],default:null},vertical:{type:Boolean,default:!1},disableMonthYearSelect:{type:Boolean,default:!1},disableYearSelect:{type:Boolean,default:!1},dayClass:{type:Function,default:null},yearRange:{type:Array,default:()=>[1900,2100]},enableTimePicker:{type:Boolean,default:!0},autoApply:{type:Boolean,default:!1},disabledDates:{type:[Array,Function],default:()=>[]},monthNameFormat:{type:String,default:"short"},startDate:{type:[Date,String],default:null},startTime:{type:[Object,Array],default:null},hideOffsetDates:{type:Boolean,default:!1},noToday:{type:Boolean,default:!1},disabledWeekDays:{type:Array,default:()=>[]},allowedDates:{type:Array,default:null},nowButtonLabel:{type:String,default:"Now"},markers:{type:Array,default:()=>[]},escClose:{type:Boolean,default:!0},spaceConfirm:{type:Boolean,default:!0},monthChangeOnArrows:{type:Boolean,default:!0},presetDates:{type:Array,default:()=>[]},flow:{type:Array,default:()=>[]},partialFlow:{type:Boolean,default:!1},preventMinMaxNavigation:{type:Boolean,default:!1},reverseYears:{type:Boolean,default:!1},weekPicker:{type:Boolean,default:!1},filters:{type:Object,default:()=>({})},arrowNavigation:{type:Boolean,default:!1},highlight:{type:[Function,Object],default:null},teleport:{type:[Boolean,String,Object],default:null},teleportCenter:{type:Boolean,default:!1},locale:{type:String,default:"en-Us"},weekNumName:{type:String,default:"W"},weekStart:{type:[Number,String],default:1},weekNumbers:{type:[String,Function,Object],default:null},monthChangeOnScroll:{type:[Boolean,String],default:!0},dayNames:{type:[Function,Array],default:null},monthPicker:{type:Boolean,default:!1},customProps:{type:Object,default:null},yearPicker:{type:Boolean,default:!1},modelAuto:{type:Boolean,default:!1},selectText:{type:String,default:"Select"},cancelText:{type:String,default:"Cancel"},previewFormat:{type:[String,Function],default:()=>""},multiDates:{type:[Object,Boolean],default:!1},ignoreTimeValidation:{type:Boolean,default:!1},minDate:{type:[Date,String],default:null},maxDate:{type:[Date,String],default:null},minTime:{type:Object,default:null},maxTime:{type:Object,default:null},name:{type:String,default:null},placeholder:{type:String,default:""},hideInputIcon:{type:Boolean,default:!1},clearable:{type:Boolean,default:!0},alwaysClearable:{type:Boolean,default:!1},state:{type:Boolean,default:null},required:{type:Boolean,default:!1},autocomplete:{type:String,default:"off"},timePicker:{type:Boolean,default:!1},enableSeconds:{type:Boolean,default:!1},is24:{type:Boolean,default:!0},noHoursOverlay:{type:Boolean,default:!1},noMinutesOverlay:{type:Boolean,default:!1},noSecondsOverlay:{type:Boolean,default:!1},hoursGridIncrement:{type:[String,Number],default:1},minutesGridIncrement:{type:[String,Number],default:5},secondsGridIncrement:{type:[String,Number],default:5},hoursIncrement:{type:[Number,String],default:1},minutesIncrement:{type:[Number,String],default:1},secondsIncrement:{type:[Number,String],default:1},range:{type:[Boolean,Object],default:!1},uid:{type:String,default:null},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},inline:{type:[Boolean,Object],default:!1},textInput:{type:[Boolean,Object],default:!1},sixWeeks:{type:[Boolean,String],default:!1},actionRow:{type:Object,default:()=>({})},focusStartDate:{type:Boolean,default:!1},disabledTimes:{type:[Function,Array],default:void 0},timePickerInline:{type:Boolean,default:!1},calendar:{type:Function,default:null},config:{type:Object,default:void 0},quarterPicker:{type:Boolean,default:!1},yearFirst:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},onInternalModelChange:{type:[Function,Object],default:null},enableMinutes:{type:Boolean,default:!0},ui:{type:Object,default:()=>({})}},xt={...Ba,shadow:{type:Boolean,default:!1},flowStep:{type:Number,default:0},internalModelValue:{type:[Date,Array],default:null},noOverlayFocus:{type:Boolean,default:!1},collapse:{type:Boolean,default:!1},menuWrapRef:{type:Object,default:null},getInputRect:{type:Function,default:()=>({})},isTextInputDate:{type:Boolean,default:!1},isMobile:{type:Boolean,default:void 0}},fu=["title"],gu=["disabled"],wu=Qe({compatConfig:{MODE:3},__name:"ActionRow",props:{menuMount:{type:Boolean,default:!1},calendarWidth:{type:Number,default:0},...xt},emits:["close-picker","select-date","select-now","invalid-select"],setup(e,{emit:t}){const n=t,a=e,{defaultedActionRow:r,defaultedPreviewFormat:l,defaultedMultiCalendars:o,defaultedTextInput:c,defaultedInline:s,defaultedRange:x,defaultedMultiDates:m}=Ee(a),{isTimeValid:p,isMonthValid:f}=Ht(a),{buildMatrix:k}=Lt(),Y=Z(null),N=Z(null),T=Z(!1),A=Z({}),R=Z(null),_=Z(null);tt(()=>{a.arrowNavigation&&k([We(Y),We(N)],"actionRow"),B(),window.addEventListener("resize",B)}),va(()=>{window.removeEventListener("resize",B)});const B=()=>{T.value=!1,setTimeout(()=>{const g=R.value?.getBoundingClientRect(),D=_.value?.getBoundingClientRect();g&&D&&(A.value.maxWidth=`${D.width-g.width-20}px`),T.value=!0},0)},j=H(()=>x.value.enabled&&!x.value.partialRange&&a.internalModelValue?a.internalModelValue.length===2:!0),I=H(()=>!p.value(a.internalModelValue)||!f.value(a.internalModelValue)||!j.value),y=()=>{const g=l.value;return a.timePicker||a.monthPicker,g(Ze(a.internalModelValue))},V=()=>{const g=a.internalModelValue;return o.value.count>0?`${L(g[0])} - ${L(g[1])}`:[L(g[0]),L(g[1])]},L=g=>qr(g,l.value,a.formatLocale,c.value.rangeSeparator,a.modelAuto,l.value),z=H(()=>!a.internalModelValue||!a.menuMount?"":typeof l.value=="string"?Array.isArray(a.internalModelValue)?a.internalModelValue.length===2&&a.internalModelValue[1]?V():m.value.enabled?a.internalModelValue.map(g=>`${L(g)}`):a.modelAuto?`${L(a.internalModelValue[0])}`:`${L(a.internalModelValue[0])} -`:L(a.internalModelValue):y()),ne=()=>m.value.enabled?"; ":" - ",se=H(()=>Array.isArray(z.value)?z.value.join(ne()):z.value),fe=()=>{p.value(a.internalModelValue)&&f.value(a.internalModelValue)&&j.value?n("select-date"):n("invalid-select")};return(g,D)=>(P(),q("div",{ref_key:"actionRowRef",ref:_,class:"dp__action_row"},[g.$slots["action-row"]?ie(g.$slots,"action-row",Je(Xe({key:0},{internalModelValue:g.internalModelValue,disabled:I.value,selectDate:()=>g.$emit("select-date"),closePicker:()=>g.$emit("close-picker")}))):(P(),q(_e,{key:1},[u(r).showPreview?(P(),q("div",{key:0,class:"dp__selection_preview",title:se.value,style:mt(A.value)},[g.$slots["action-preview"]&&T.value?ie(g.$slots,"action-preview",{key:0,value:g.internalModelValue}):W("",!0),!g.$slots["action-preview"]&&T.value?(P(),q(_e,{key:1},[_t(Ke(se.value),1)],64)):W("",!0)],12,fu)):W("",!0),ge("div",{ref_key:"actionBtnContainer",ref:R,class:"dp__action_buttons","data-dp-element":"action-row"},[g.$slots["action-buttons"]?ie(g.$slots,"action-buttons",{key:0,value:g.internalModelValue}):W("",!0),g.$slots["action-buttons"]?W("",!0):(P(),q(_e,{key:1},[!u(s).enabled&&u(r).showCancel?(P(),q("button",{key:0,ref_key:"cancelButtonRef",ref:Y,type:"button",class:"dp__action_button dp__action_cancel",onClick:D[0]||(D[0]=w=>g.$emit("close-picker")),onKeydown:D[1]||(D[1]=w=>u(ot)(w,()=>g.$emit("close-picker")))},Ke(g.cancelText),545)):W("",!0),u(r).showNow?(P(),q("button",{key:1,type:"button",class:"dp__action_button dp__action_cancel",onClick:D[2]||(D[2]=w=>g.$emit("select-now")),onKeydown:D[3]||(D[3]=w=>u(ot)(w,()=>g.$emit("select-now")))},Ke(g.nowButtonLabel),33)):W("",!0),u(r).showSelect?(P(),q("button",{key:2,ref_key:"selectButtonRef",ref:N,type:"button",class:"dp__action_button dp__action_select",disabled:I.value,"data-test-id":"select-button",onKeydown:D[4]||(D[4]=w=>u(ot)(w,()=>fe())),onClick:fe},Ke(g.selectText),41,gu)):W("",!0)],64))],512)],64))],512))}}),bu=["role","aria-label","tabindex"],ku={class:"dp__selection_grid_header"},_u=["aria-selected","aria-disabled","data-test-id","onClick","onKeydown","onMouseover"],Du=["aria-label"],Ta=Qe({__name:"SelectionOverlay",props:{items:{},type:{},isLast:{type:Boolean},arrowNavigation:{type:Boolean},skipButtonRef:{type:Boolean},headerRefs:{},hideNavigation:{},escClose:{type:Boolean},useRelative:{type:Boolean},height:{},textInput:{type:[Boolean,Object]},config:{},noOverlayFocus:{type:Boolean},focusValue:{},menuWrapRef:{},ariaLabels:{},overlayLabel:{}},emits:["selected","toggle","reset-flow","hover-value"],setup(e,{expose:t,emit:n}){const{setSelectionGrid:a,buildMultiLevelMatrix:r,setMonthPicker:l}=Lt(),o=n,c=e,{defaultedAriaLabels:s,defaultedTextInput:x,defaultedConfig:m,handleEventPropagation:p}=Ee(c),{hideNavigationButtons:f}=Va(),k=Z(!1),Y=Z(null),N=Z(null),T=Z([]),A=Z(),R=Z(null),_=Z(0),B=Z(null);gl(()=>{Y.value=null}),tt(()=>{ct().then(()=>se()),c.noOverlayFocus||I(),j(!0)}),va(()=>j(!1));const j=h=>{c.arrowNavigation&&(c.headerRefs?.length?l(h):a(h))},I=()=>{const h=We(N);h&&(x.value.enabled||(Y.value?Y.value?.focus({preventScroll:!0}):h.focus({preventScroll:!0})),k.value=h.clientHeight({dp__overlay:!0,"dp--overlay-absolute":!c.useRelative,"dp--overlay-relative":c.useRelative})),V=H(()=>c.useRelative?{height:`${c.height}px`,width:"var(--dp-menu-min-width)"}:void 0),L=H(()=>({dp__overlay_col:!0})),z=H(()=>({dp__btn:!0,dp__button:!0,dp__overlay_action:!0,dp__over_action_scroll:k.value,dp__button_bottom:c.isLast})),ne=H(()=>({dp__overlay_container:!0,dp__container_flex:c.items?.length<=6,dp__container_block:c.items?.length>6}));pt(()=>c.items,()=>se(!1),{deep:!0});const se=(h=!0)=>{ct().then(()=>{const O=We(Y),M=We(N),re=We(R),v=We(B),d=re?re.getBoundingClientRect().height:0;M&&(M.getBoundingClientRect().height?_.value=M.getBoundingClientRect().height-d:_.value=m.value.modeHeight-d),O&&v&&h&&(v.scrollTop=O.offsetTop-v.offsetTop-(_.value/2-O.getBoundingClientRect().height)-d)})},fe=h=>{h.disabled||o("selected",h.value)},g=()=>{o("toggle"),o("reset-flow")},D=h=>{c.escClose&&(g(),p(h))},w=(h,O,M,re)=>{h&&((O.active||O.value===c.focusValue)&&(Y.value=h),c.arrowNavigation&&(Array.isArray(T.value[M])?T.value[M][re]=h:T.value[M]=[h],F()))},F=()=>{const h=c.headerRefs?.length?[c.headerRefs].concat(T.value):T.value.concat([c.skipButtonRef?[]:[R.value]]);r(Ze(h),c.headerRefs?.length?"monthPicker":"selectionGrid")},te=h=>{c.arrowNavigation||Et(h,m.value,!0)},E=h=>{A.value=h,o("hover-value",h)},J=()=>{if(g(),!c.isLast){const h=pn(c.menuWrapRef??null,"action-row");h&&Or(h)?.focus()}},S=h=>{switch(h.key){case Ne.esc:return D(h);case Ne.arrowLeft:return te(h);case Ne.arrowRight:return te(h);case Ne.arrowUp:return te(h);case Ne.arrowDown:return te(h);default:return}},ue=h=>{if(h.key===Ne.enter)return g();if(h.key===Ne.tab)return J()};return t({focusGrid:I}),(h,O)=>(P(),q("div",{ref_key:"gridWrapRef",ref:N,class:De(y.value),style:mt(V.value),role:e.useRelative?void 0:"dialog","aria-label":e.overlayLabel,tabindex:e.useRelative?void 0:"0",onKeydown:S,onClick:O[0]||(O[0]=ka(()=>{},["prevent"]))},[ge("div",{ref_key:"containerRef",ref:B,class:De(ne.value),style:mt({"--dp-overlay-height":`${_.value}px`}),role:"grid"},[ge("div",ku,[ie(h.$slots,"header")]),h.$slots.overlay?ie(h.$slots,"overlay",{key:0}):(P(!0),q(_e,{key:1},Be(e.items,(M,re)=>(P(),q("div",{key:re,class:De(["dp__overlay_row",{dp__flex_row:e.items.length>=3}]),role:"row"},[(P(!0),q(_e,null,Be(M,(v,d)=>(P(),q("div",{key:v.value,ref_for:!0,ref:X=>w(X,v,re,d),role:"gridcell",class:De(L.value),"aria-selected":v.active||void 0,"aria-disabled":v.disabled||void 0,tabindex:"0","data-test-id":v.text,onClick:ka(X=>fe(v),["prevent"]),onKeydown:X=>u(ot)(X,()=>fe(v),!0),onMouseover:X=>E(v.value)},[ge("div",{class:De(v.className)},[h.$slots.item?ie(h.$slots,"item",{key:0,item:v}):W("",!0),h.$slots.item?W("",!0):(P(),q(_e,{key:1},[_t(Ke(v.text),1)],64))],2)],42,_u))),128))],2))),128))],6),h.$slots["button-icon"]?Ya((P(),q("button",{key:0,ref_key:"toggleButton",ref:R,type:"button","aria-label":u(s)?.toggleOverlay,class:De(z.value),tabindex:"0",onClick:g,onKeydown:ue},[ie(h.$slots,"button-icon")],42,Du)),[[Ra,!u(f)(e.hideNavigation,e.type)]]):W("",!0)],46,bu))}}),xu=["data-dp-mobile"],Ea=Qe({__name:"InstanceWrap",props:{multiCalendars:{},stretch:{type:Boolean},collapse:{type:Boolean},isMobile:{type:Boolean}},setup(e){const t=e,n=H(()=>t.multiCalendars>0?[...Array(t.multiCalendars).keys()]:[0]),a=H(()=>({dp__instance_calendar:t.multiCalendars>0}));return(r,l)=>(P(),q("div",{class:De({dp__menu_inner:!e.stretch,"dp--menu--inner-stretched":e.stretch,dp__flex_display:e.multiCalendars>0,"dp--flex-display-collapsed":e.collapse}),"data-dp-mobile":e.isMobile},[(P(!0),q(_e,null,Be(n.value,(o,c)=>(P(),q("div",{key:o,class:De(a.value)},[ie(r.$slots,"default",{instance:o,index:c})],2))),128))],10,xu))}}),Mu=["data-dp-element","aria-label","aria-disabled"],wa=Qe({compatConfig:{MODE:3},__name:"ArrowBtn",props:{ariaLabel:{},elName:{},disabled:{type:Boolean}},emits:["activate","set-ref"],setup(e,{emit:t}){const n=t,a=Z(null);return tt(()=>n("set-ref",a)),(r,l)=>(P(),q("button",{ref_key:"elRef",ref:a,type:"button","data-dp-element":e.elName,class:"dp__btn dp--arrow-btn-nav",tabindex:"0","aria-label":e.ariaLabel,"aria-disabled":e.disabled||void 0,onClick:l[0]||(l[0]=o=>n("activate")),onKeydown:l[1]||(l[1]=o=>u(ot)(o,()=>n("activate"),!0))},[ge("span",{class:De(["dp__inner_nav",{dp__inner_nav_disabled:e.disabled}])},[ie(r.$slots,"default")],2)],40,Mu))}}),Tu=["aria-label","data-test-id"],Xr=Qe({__name:"YearModePicker",props:{...xt,showYearPicker:{type:Boolean,default:!1},items:{type:Array,default:()=>[]},instance:{type:Number,default:0},year:{type:Number,default:0},isDisabled:{type:Function,default:()=>!1}},emits:["toggle-year-picker","year-select","handle-year"],setup(e,{emit:t}){const n=t,a=e,{showRightIcon:r,showLeftIcon:l}=Va(),{defaultedConfig:o,defaultedMultiCalendars:c,defaultedAriaLabels:s,defaultedTransitions:x,defaultedUI:m}=Ee(a),{showTransition:p,transitionName:f}=Pa(x),k=Z(!1),Y=H(()=>Cn(a.year,a.locale)),N=(R=!1,_)=>{k.value=!k.value,n("toggle-year-picker",{flow:R,show:_})},T=R=>{k.value=!1,n("year-select",R)},A=(R=!1)=>{n("handle-year",R)};return(R,_)=>(P(),q(_e,null,[ge("div",{class:De(["dp--year-mode-picker",{"dp--hidden-el":k.value}])},[u(l)(u(c),e.instance)?(P(),Se(wa,{key:0,ref:"mpPrevIconRef","aria-label":u(s)?.prevYear,disabled:e.isDisabled(!1),class:De(u(m)?.navBtnPrev),onActivate:_[0]||(_[0]=B=>A(!1))},{default:he(()=>[R.$slots["arrow-left"]?ie(R.$slots,"arrow-left",{key:0}):W("",!0),R.$slots["arrow-left"]?W("",!0):(P(),Se(u(Dn),{key:1}))]),_:3},8,["aria-label","disabled","class"])):W("",!0),ge("button",{ref:"mpYearButtonRef",class:"dp__btn dp--year-select",type:"button","aria-label":`${e.year}-${u(s)?.openYearsOverlay}`,"data-test-id":`year-mode-btn-${e.instance}`,onClick:_[1]||(_[1]=()=>N(!1)),onKeydown:_[2]||(_[2]=wl(()=>N(!1),["enter"]))},[R.$slots.year?ie(R.$slots,"year",{key:0,year:e.year,text:Y.value,value:e.year}):W("",!0),R.$slots.year?W("",!0):(P(),q(_e,{key:1},[_t(Ke(Y.value),1)],64))],40,Tu),u(r)(u(c),e.instance)?(P(),Se(wa,{key:1,ref:"mpNextIconRef","aria-label":u(s)?.nextYear,disabled:e.isDisabled(!0),class:De(u(m)?.navBtnNext),onActivate:_[3]||(_[3]=B=>A(!0))},{default:he(()=>[R.$slots["arrow-right"]?ie(R.$slots,"arrow-right",{key:0}):W("",!0),R.$slots["arrow-right"]?W("",!0):(P(),Se(u(xn),{key:1}))]),_:3},8,["aria-label","disabled","class"])):W("",!0)],2),Oe(ma,{name:u(f)(e.showYearPicker),css:u(p)},{default:he(()=>[e.showYearPicker?(P(),Se(Ta,{key:0,items:e.items,"text-input":R.textInput,"esc-close":R.escClose,config:R.config,"is-last":R.autoApply&&!u(o).keepActionRow,"hide-navigation":R.hideNavigation,"aria-labels":R.ariaLabels,"overlay-label":u(s)?.yearPicker?.(!0),type:"year",onToggle:N,onSelected:_[4]||(_[4]=B=>T(B))},et({"button-icon":he(()=>[R.$slots["calendar-icon"]?ie(R.$slots,"calendar-icon",{key:0}):W("",!0),R.$slots["calendar-icon"]?W("",!0):(P(),Se(u(pa),{key:1}))]),_:2},[R.$slots["year-overlay-value"]?{name:"item",fn:he(({item:B})=>[ie(R.$slots,"year-overlay-value",{text:B.text,value:B.value})]),key:"0"}:void 0]),1032,["items","text-input","esc-close","config","is-last","hide-navigation","aria-labels","overlay-label"])):W("",!0)]),_:3},8,["name","css"])],64))}}),In=(e,t,n)=>{if(t.value&&Array.isArray(t.value))if(t.value.some(a=>Pe(e,a))){const a=t.value.filter(r=>!Pe(r,e));t.value=a.length?a:null}else(n&&+n>t.value.length||!n)&&t.value.push(e);else t.value=[e]},Nn=(e,t,n)=>{let a=e.value?e.value.slice():[];return a.length===2&&a[1]!==null&&(a=[]),a.length?(Ve(t,a[0])?a.unshift(t):a[1]=t,n("range-end",t)):(a=[t],n("range-start",t)),a},za=(e,t,n,a)=>{e&&(e[0]&&e[1]&&n&&t("auto-apply"),e[0]&&!e[1]&&a&&n&&t("auto-apply"))},Gr=e=>{Array.isArray(e.value)&&e.value.length<=2&&e.range?e.modelValue.value=e.value.map(t=>st(U(t),e.timezone)):Array.isArray(e.value)||(e.modelValue.value=st(U(e.value),e.timezone))},Qr=(e,t,n,a)=>Array.isArray(t.value)&&(t.value.length===2||t.value.length===1&&a.value.partialRange)?a.value.fixedStart&&(qe(e,t.value[0])||Pe(e,t.value[0]))?[t.value[0],e]:a.value.fixedEnd&&(Ve(e,t.value[1])||Pe(e,t.value[1]))?[e,t.value[1]]:(n("invalid-fixed-range",e),t.value):[],Zr=({multiCalendars:e,range:t,highlight:n,propDates:a,calendars:r,modelValue:l,props:o,filters:c,year:s,month:x,emit:m})=>{const p=H(()=>$n(o.yearRange,o.locale,o.reverseYears)),f=Z([!1]),k=H(()=>(z,ne)=>{const se=Re(bt(new Date),{month:x.value(z),year:s.value(z)}),fe=ne?fr(se):ra(se);return Fr(fe,a.value.maxDate,a.value.minDate,o.preventMinMaxNavigation,ne)}),Y=()=>Array.isArray(l.value)&&e.value.solo&&l.value[1],N=()=>{for(let z=0;z{if(!z)return N();const ne=Re(U(),r.value[z]);return r.value[0].year=be(Yr(ne,e.value.count-1)),N()},A=(z,ne)=>{const se=Il(ne,z);return t.value.showLastInRange&&se>1?ne:z},R=z=>o.focusStartDate||e.value.solo?z[0]:z[1]?A(z[0],z[1]):z[0],_=()=>{if(l.value){const z=Array.isArray(l.value)?R(l.value):l.value;r.value[0]={month:Te(z),year:be(z)}}},B=()=>{_(),e.value.count&&N()};pt(l,(z,ne)=>{o.isTextInputDate&&JSON.stringify(z??{})!==JSON.stringify(ne??{})&&B()}),tt(()=>{B()});const j=(z,ne)=>{r.value[ne].year=z,m("update-month-year",{instance:ne,year:z,month:r.value[ne].month}),e.value.count&&!e.value.solo&&T(ne)},I=H(()=>z=>da(p.value,ne=>{const se=s.value(z)===ne.value,fe=_a(ne.value,ca(a.value.minDate),ca(a.value.maxDate))||c.value.years?.includes(s.value(z)),g=Rn(n.value,ne.value);return{active:se,disabled:fe,highlighted:g}})),y=(z,ne)=>{j(z,ne),L(ne)},V=(z,ne=!1)=>{if(!k.value(z,ne)){const se=ne?s.value(z)+1:s.value(z)-1;j(se,z)}},L=(z,ne=!1,se)=>{ne||m("reset-flow"),se!==void 0?f.value[z]=se:f.value[z]=!f.value[z],f.value[z]?m("overlay-toggle",{open:!0,overlay:rt.year}):(m("overlay-closed"),m("overlay-toggle",{open:!1,overlay:rt.year}))};return{isDisabled:k,groupedYears:I,showYearPicker:f,selectYear:j,toggleYearPicker:L,handleYearSelect:y,handleYear:V}},Pu=(e,t)=>{const{defaultedMultiCalendars:n,defaultedAriaLabels:a,defaultedTransitions:r,defaultedConfig:l,defaultedRange:o,defaultedHighlight:c,propDates:s,defaultedTz:x,defaultedFilters:m,defaultedMultiDates:p}=Ee(e),f=()=>{e.isTextInputDate&&B(be(U(e.startDate)),0)},{modelValue:k,year:Y,month:N,calendars:T}=Sa(e,t,f),A=H(()=>Ir(e.formatLocale,e.locale,e.monthNameFormat)),R=Z(null),{checkMinMaxRange:_}=Ht(e),{selectYear:B,groupedYears:j,showYearPicker:I,toggleYearPicker:y,handleYearSelect:V,handleYear:L,isDisabled:z}=Zr({modelValue:k,multiCalendars:n,range:o,highlight:c,calendars:T,year:Y,propDates:s,month:N,filters:m,props:e,emit:t});tt(()=>{e.startDate&&(k.value&&e.focusStartDate||!k.value)&&B(be(U(e.startDate)),0)});const ne=O=>O?{month:Te(O),year:be(O)}:{month:null,year:null},se=()=>k.value?Array.isArray(k.value)?k.value.map(O=>ne(O)):ne(k.value):ne(),fe=(O,M)=>{const re=T.value[O],v=se();return Array.isArray(v)?v.some(d=>d.year===re?.year&&d.month===M):re?.year===v.year&&M===v.month},g=(O,M,re)=>{const v=se();return Array.isArray(v)?Y.value(M)===v[re]?.year&&O===v[re]?.month:!1},D=(O,M)=>{if(o.value.enabled){const re=se();if(Array.isArray(k.value)&&Array.isArray(re)){const v=g(O,M,0)||g(O,M,1),d=Ct(bt(U()),O,Y.value(M));return Da(k.value,R.value,d)&&!v}return!1}return!1},w=H(()=>O=>da(A.value,M=>{const re=fe(O,M.value),v=_a(M.value,zr(Y.value(O),s.value.minDate),Vr(Y.value(O),s.value.maxDate))||Qi(s.value.disabledDates,Y.value(O),M.value)||m.value.months?.includes(M.value)||!Zi(s.value.allowedDates,Y.value(O),M.value)||jr(e.yearRange,Y.value(O)),d=D(M.value,O),X=Ur(c.value,M.value,Y.value(O));return{active:re,disabled:v,isBetween:d,highlighted:X}})),F=(O,M)=>Ct(bt(U()),O,Y.value(M)),te=(O,M)=>{const re=k.value?k.value:bt(new Date);k.value=Ct(re,O,Y.value(M)),t("auto-apply"),t("update-flow-step")},E=(O,M)=>{const re=F(O,M);o.value.fixedEnd||o.value.fixedStart?k.value=Qr(re,k,t,o):k.value?_(re,k.value)&&(k.value=Nn(k,F(O,M),t)):k.value=[F(O,M)],ct().then(()=>{za(k.value,t,e.autoApply,e.modelAuto)})},J=(O,M)=>{In(F(O,M),k,p.value.limit),t("auto-apply",!0)},S=(O,M)=>(T.value[M].month=O,h(M,T.value[M].year,O),p.value.enabled?J(O,M):o.value.enabled?E(O,M):te(O,M)),ue=(O,M)=>{B(O,M),h(M,O,null)},h=(O,M,re)=>{let v=re;if(!v&&v!==0){const d=se();v=Array.isArray(d)?d[O].month:d.month}t("update-month-year",{instance:O,year:M,month:v})};return{groupedMonths:w,groupedYears:j,year:Y,isDisabled:z,defaultedMultiCalendars:n,defaultedAriaLabels:a,defaultedTransitions:r,defaultedConfig:l,showYearPicker:I,modelValue:k,presetDate:(O,M)=>{Gr({value:O,modelValue:k,range:o.value.enabled,timezone:M?void 0:x.value.timezone}),t("auto-apply")},setHoverDate:(O,M)=>{R.value=F(O,M)},selectMonth:S,selectYear:ue,toggleYearPicker:y,handleYearSelect:V,handleYear:L,getModelMonthYear:se}},Su=Qe({compatConfig:{MODE:3},__name:"MonthPicker",props:{...xt},emits:["update:internal-model-value","overlay-closed","reset-flow","range-start","range-end","auto-apply","update-month-year","update-flow-step","mount","invalid-fixed-range","overlay-toggle"],setup(e,{expose:t,emit:n}){const a=n,r=Gt(),l=dt(r,"yearMode"),o=e;tt(()=>{o.shadow||a("mount",null)});const{groupedMonths:c,groupedYears:s,year:x,isDisabled:m,defaultedMultiCalendars:p,defaultedConfig:f,showYearPicker:k,modelValue:Y,presetDate:N,setHoverDate:T,selectMonth:A,selectYear:R,toggleYearPicker:_,handleYearSelect:B,handleYear:j,getModelMonthYear:I}=Pu(o,a);return t({getSidebarProps:()=>({modelValue:Y,year:x,getModelMonthYear:I,selectMonth:A,selectYear:R,handleYear:j}),presetDate:N,toggleYearPicker:y=>_(0,y)}),(y,V)=>(P(),Se(Ea,{"multi-calendars":u(p).count,collapse:y.collapse,stretch:"","is-mobile":y.isMobile},{default:he(({instance:L})=>[y.$slots["top-extra"]?ie(y.$slots,"top-extra",{key:0,value:y.internalModelValue}):W("",!0),y.$slots["month-year"]?ie(y.$slots,"month-year",Je(Xe({key:1},{year:u(x),months:u(c)(L),years:u(s)(L),selectMonth:u(A),selectYear:u(R),instance:L}))):(P(),Se(Ta,{key:2,items:u(c)(L),"arrow-navigation":y.arrowNavigation,"is-last":y.autoApply&&!u(f).keepActionRow,"esc-close":y.escClose,height:u(f).modeHeight,config:y.config,"no-overlay-focus":!!(y.noOverlayFocus||y.textInput),"use-relative":"",type:"month",onSelected:z=>u(A)(z,L),onHoverValue:z=>u(T)(z,L)},et({header:he(()=>[Oe(Xr,Xe(y.$props,{items:u(s)(L),instance:L,"show-year-picker":u(k)[L],year:u(x)(L),"is-disabled":z=>u(m)(L,z),onHandleYear:z=>u(j)(L,z),onYearSelect:z=>u(B)(z,L),onToggleYearPicker:z=>u(_)(L,z?.flow,z?.show)}),et({_:2},[Be(u(l),(z,ne)=>({name:z,fn:he(se=>[ie(y.$slots,z,Je(ut(se)))])}))]),1040,["items","instance","show-year-picker","year","is-disabled","onHandleYear","onYearSelect","onToggleYearPicker"])]),_:2},[y.$slots["month-overlay-value"]?{name:"item",fn:he(({item:z})=>[ie(y.$slots,"month-overlay-value",{text:z.text,value:z.value})]),key:"0"}:void 0]),1032,["items","arrow-navigation","is-last","esc-close","height","config","no-overlay-focus","onSelected","onHoverValue"]))]),_:3},8,["multi-calendars","collapse","is-mobile"]))}}),$u=(e,t)=>{const n=()=>{e.isTextInputDate&&(m.value=be(U(e.startDate)))},{modelValue:a}=Sa(e,t,n),r=Z(null),{defaultedHighlight:l,defaultedMultiDates:o,defaultedFilters:c,defaultedRange:s,propDates:x}=Ee(e),m=Z();tt(()=>{e.startDate&&(a.value&&e.focusStartDate||!a.value)&&(m.value=be(U(e.startDate)))});const p=A=>Array.isArray(a.value)?a.value.some(R=>be(R)===A):a.value?be(a.value)===A:!1,f=A=>s.value.enabled&&Array.isArray(a.value)?Da(a.value,r.value,T(A)):!1,k=A=>x.value.allowedDates instanceof Map?x.value.allowedDates.size?x.value.allowedDates.has(`${A}`):!1:!0,Y=A=>x.value.disabledDates instanceof Map?x.value.disabledDates.size?x.value.disabledDates.has(`${A}`):!1:typeof x.value.disabledDates=="function"?x.value.disabledDates(wt(Ge(ra(U())),A)):!0,N=H(()=>da($n(e.yearRange,e.locale,e.reverseYears),A=>{const R=p(A.value),_=_a(A.value,ca(x.value.minDate),ca(x.value.maxDate))||c.value.years.includes(A.value)||!k(A.value)||Y(A.value),B=f(A.value)&&!R,j=Rn(l.value,A.value);return{active:R,disabled:_,isBetween:B,highlighted:j}})),T=A=>wt(bt(ra(new Date)),A);return{groupedYears:N,modelValue:a,focusYear:m,setHoverValue:A=>{r.value=wt(bt(new Date),A)},selectYear:A=>{if(t("update-month-year",{instance:0,year:A}),o.value.enabled)return a.value?Array.isArray(a.value)&&((a.value?.map(R=>be(R))).includes(A)?a.value=a.value.filter(R=>be(R)!==A):a.value.push(wt(Ge(U()),A))):a.value=[wt(Ge(ra(U())),A)],t("auto-apply",!0);s.value.enabled?(a.value=Nn(a,T(A),t),ct().then(()=>{za(a.value,t,e.autoApply,e.modelAuto)})):(a.value=T(A),t("auto-apply"))}}},Au=Qe({compatConfig:{MODE:3},__name:"YearPicker",props:{...xt},emits:["update:internal-model-value","reset-flow","range-start","range-end","auto-apply","update-month-year"],setup(e,{expose:t,emit:n}){const a=n,r=e,{groupedYears:l,modelValue:o,focusYear:c,selectYear:s,setHoverValue:x}=$u(r,a),{defaultedConfig:m}=Ee(r);return t({getSidebarProps:()=>({modelValue:o,selectYear:s})}),(p,f)=>(P(),q("div",null,[p.$slots["top-extra"]?ie(p.$slots,"top-extra",{key:0,value:p.internalModelValue}):W("",!0),p.$slots["month-year"]?ie(p.$slots,"month-year",Je(Xe({key:1},{years:u(l),selectYear:u(s)}))):(P(),Se(Ta,{key:2,items:u(l),"is-last":p.autoApply&&!u(m).keepActionRow,height:u(m).modeHeight,config:p.config,"no-overlay-focus":!!(p.noOverlayFocus||p.textInput),"focus-value":u(c),type:"year","use-relative":"",onSelected:u(s),onHoverValue:u(x)},et({_:2},[p.$slots["year-overlay-value"]?{name:"item",fn:he(({item:k})=>[ie(p.$slots,"year-overlay-value",{text:k.text,value:k.value})]),key:"0"}:void 0]),1032,["items","is-last","height","config","no-overlay-focus","focus-value","onSelected","onHoverValue"]))]))}}),Cu={key:0,class:"dp__time_input"},Yu=["data-compact","data-collapsed"],Ru=["data-test-id","aria-label","onKeydown","onClick","onMousedown"],Iu=["aria-label","disabled","data-test-id","onKeydown","onClick"],Nu=["data-test-id","aria-label","onKeydown","onClick","onMousedown"],Ou={key:0},Bu=["aria-label","data-compact"],Eu=Qe({compatConfig:{MODE:3},__name:"TimeInput",props:{hours:{type:Number,default:0},minutes:{type:Number,default:0},seconds:{type:Number,default:0},closeTimePickerBtn:{type:Object,default:null},order:{type:Number,default:0},disabledTimesConfig:{type:Function,default:null},validateTime:{type:Function,default:()=>!1},...xt},emits:["set-hours","set-minutes","update:hours","update:minutes","update:seconds","reset-flow","mounted","overlay-closed","overlay-opened","am-pm-change"],setup(e,{expose:t,emit:n}){const a=n,r=e,{setTimePickerElements:l,setTimePickerBackRef:o}=Lt(),{defaultedAriaLabels:c,defaultedTransitions:s,defaultedFilters:x,defaultedConfig:m,defaultedRange:p,defaultedMultiCalendars:f}=Ee(r),{transitionName:k,showTransition:Y}=Pa(s),N=xa({hours:!1,minutes:!1,seconds:!1}),T=Z("AM"),A=Z(null),R=Z([]),_=Z(),B=Z(!1);tt(()=>{a("mounted")});const j=i=>Re(new Date,{hours:i.hours,minutes:i.minutes,seconds:r.enableSeconds?i.seconds:0,milliseconds:0}),I=H(()=>i=>E(i,r[i])||V(i,r[i])),y=H(()=>({hours:r.hours,minutes:r.minutes,seconds:r.seconds})),V=(i,le)=>p.value.enabled&&!p.value.disableTimeRangeValidation?!r.validateTime(i,le):!1,L=(i,le)=>{if(p.value.enabled&&!p.value.disableTimeRangeValidation){const C=le?+r[`${i}Increment`]:-+r[`${i}Increment`],xe=r[i]+C;return!r.validateTime(i,xe)}return!1},z=H(()=>i=>!O(+r[i]+ +r[`${i}Increment`],i)||L(i,!0)),ne=H(()=>i=>!O(+r[i]-+r[`${i}Increment`],i)||L(i,!1)),se=(i,le)=>cr(Re(U(),i),le),fe=(i,le)=>Ai(Re(U(),i),le),g=H(()=>({dp__time_col:!0,dp__time_col_block:!r.timePickerInline,dp__time_col_reg_block:!r.enableSeconds&&r.is24&&!r.timePickerInline,dp__time_col_reg_inline:!r.enableSeconds&&r.is24&&r.timePickerInline,dp__time_col_reg_with_button:!r.enableSeconds&&!r.is24,dp__time_col_sec:r.enableSeconds&&r.is24,dp__time_col_sec_with_button:r.enableSeconds&&!r.is24})),D=H(()=>r.timePickerInline&&p.value.enabled&&!f.value.count),w=H(()=>{const i=[{type:"hours"}];return r.enableMinutes&&i.push({type:"",separator:!0},{type:"minutes"}),r.enableSeconds&&i.push({type:"",separator:!0},{type:"seconds"}),i}),F=H(()=>w.value.filter(i=>!i.separator)),te=H(()=>i=>{if(i==="hours"){const le=$e(+r.hours);return{text:le<10?`0${le}`:`${le}`,value:le}}return{text:r[i]<10?`0${r[i]}`:`${r[i]}`,value:r[i]}}),E=(i,le)=>{if(!r.disabledTimesConfig)return!1;const C=r.disabledTimesConfig(r.order,i==="hours"?le:void 0);return C[i]?!!C[i]?.includes(le):!0},J=(i,le)=>le!=="hours"||T.value==="AM"?i:i+12,S=i=>{const le=r.is24?24:12,C=i==="hours"?le:60,xe=+r[`${i}GridIncrement`],me=i==="hours"&&!r.is24?xe:0,at=[];for(let He=me;He({active:!1,disabled:x.value.times[i].includes(He.value)||!O(He.value,i)||E(i,He.value)||V(i,He.value)}))},ue=i=>i>=0?i:59,h=i=>i>=0?i:23,O=(i,le)=>{const C=r.minTime?j(Ka(r.minTime)):null,xe=r.maxTime?j(Ka(r.maxTime)):null,me=j(Ka(y.value,le,le==="minutes"||le==="seconds"?ue(i):h(i)));return C&&xe?(ua(me,xe)||aa(me,xe))&&(Xt(me,C)||aa(me,C)):C?Xt(me,C)||aa(me,C):xe?ua(me,xe)||aa(me,xe):!0},M=i=>r[`no${i[0].toUpperCase()+i.slice(1)}Overlay`],re=i=>{M(i)||(N[i]=!N[i],N[i]?(B.value=!0,a("overlay-opened",i)):(B.value=!1,a("overlay-closed",i)))},v=i=>i==="hours"?Yt:i==="minutes"?Vt:ia,d=()=>{_.value&&clearTimeout(_.value)},X=(i,le=!0,C)=>{const xe=le?se:fe,me=le?+r[`${i}Increment`]:-+r[`${i}Increment`];O(+r[i]+me,i)&&a(`update:${i}`,v(i)(xe({[i]:+r[i]},{[i]:+r[`${i}Increment`]}))),!C?.keyboard&&m.value.timeArrowHoldThreshold&&(_.value=setTimeout(()=>{X(i,le)},m.value.timeArrowHoldThreshold))},$e=i=>r.is24?i:(i>=12?T.value="PM":T.value="AM",Bi(i)),G=()=>{T.value==="PM"?(T.value="AM",a("update:hours",r.hours-12)):(T.value="PM",a("update:hours",r.hours+12)),a("am-pm-change",T.value)},ke=i=>{N[i]=!0},K=(i,le,C)=>{if(i&&r.arrowNavigation){Array.isArray(R.value[le])?R.value[le][C]=i:R.value[le]=[i];const xe=R.value.reduce((me,at)=>at.map((He,ht)=>[...me[ht]||[],at[ht]]),[]);o(r.closeTimePickerBtn),A.value&&(xe[1]=xe[1].concat(A.value)),l(xe,r.order)}},ae=(i,le)=>(re(i),a(`update:${i}`,le));return t({openChildCmp:ke}),(i,le)=>i.disabled?W("",!0):(P(),q("div",Cu,[(P(!0),q(_e,null,Be(w.value,(C,xe)=>(P(),q("div",{key:xe,class:De(g.value),"data-compact":D.value&&!i.enableSeconds,"data-collapsed":D.value&&i.enableSeconds},[C.separator?(P(),q(_e,{key:0},[B.value?W("",!0):(P(),q(_e,{key:0},[_t(":")],64))],64)):(P(),q(_e,{key:1},[ge("button",{ref_for:!0,ref:me=>K(me,xe,0),type:"button",class:De({dp__btn:!0,dp__inc_dec_button:!i.timePickerInline,dp__inc_dec_button_inline:i.timePickerInline,dp__tp_inline_btn_top:i.timePickerInline,dp__inc_dec_button_disabled:z.value(C.type),"dp--hidden-el":B.value}),"data-test-id":`${C.type}-time-inc-btn-${r.order}`,"aria-label":u(c)?.incrementValue(C.type),tabindex:"0",onKeydown:me=>u(ot)(me,()=>X(C.type,!0,{keyboard:!0}),!0),onClick:me=>u(m).timeArrowHoldThreshold?void 0:X(C.type,!0),onMousedown:me=>u(m).timeArrowHoldThreshold?X(C.type,!0):void 0,onMouseup:d},[r.timePickerInline?(P(),q(_e,{key:1},[i.$slots["tp-inline-arrow-up"]?ie(i.$slots,"tp-inline-arrow-up",{key:0}):(P(),q(_e,{key:1},[le[2]||(le[2]=ge("span",{class:"dp__tp_inline_btn_bar dp__tp_btn_in_l"},null,-1)),le[3]||(le[3]=ge("span",{class:"dp__tp_inline_btn_bar dp__tp_btn_in_r"},null,-1))],64))],64)):(P(),q(_e,{key:0},[i.$slots["arrow-up"]?ie(i.$slots,"arrow-up",{key:0}):W("",!0),i.$slots["arrow-up"]?W("",!0):(P(),Se(u(Tn),{key:1}))],64))],42,Ru),ge("button",{ref_for:!0,ref:me=>K(me,xe,1),type:"button","aria-label":`${te.value(C.type).text}-${u(c)?.openTpOverlay(C.type)}`,class:De({dp__time_display:!0,dp__time_display_block:!i.timePickerInline,dp__time_display_inline:i.timePickerInline,"dp--time-invalid":I.value(C.type),"dp--time-overlay-btn":!I.value(C.type),"dp--hidden-el":B.value}),disabled:M(C.type),tabindex:"0","data-test-id":`${C.type}-toggle-overlay-btn-${r.order}`,onKeydown:me=>u(ot)(me,()=>re(C.type),!0),onClick:me=>re(C.type)},[i.$slots[C.type]?ie(i.$slots,C.type,{key:0,text:te.value(C.type).text,value:te.value(C.type).value}):W("",!0),i.$slots[C.type]?W("",!0):(P(),q(_e,{key:1},[_t(Ke(te.value(C.type).text),1)],64))],42,Iu),ge("button",{ref_for:!0,ref:me=>K(me,xe,2),type:"button",class:De({dp__btn:!0,dp__inc_dec_button:!i.timePickerInline,dp__inc_dec_button_inline:i.timePickerInline,dp__tp_inline_btn_bottom:i.timePickerInline,dp__inc_dec_button_disabled:ne.value(C.type),"dp--hidden-el":B.value}),"data-test-id":`${C.type}-time-dec-btn-${r.order}`,"aria-label":u(c)?.decrementValue(C.type),tabindex:"0",onKeydown:me=>u(ot)(me,()=>X(C.type,!1,{keyboard:!0}),!0),onClick:me=>u(m).timeArrowHoldThreshold?void 0:X(C.type,!1),onMousedown:me=>u(m).timeArrowHoldThreshold?X(C.type,!1):void 0,onMouseup:d},[r.timePickerInline?(P(),q(_e,{key:1},[i.$slots["tp-inline-arrow-down"]?ie(i.$slots,"tp-inline-arrow-down",{key:0}):(P(),q(_e,{key:1},[le[4]||(le[4]=ge("span",{class:"dp__tp_inline_btn_bar dp__tp_btn_in_l"},null,-1)),le[5]||(le[5]=ge("span",{class:"dp__tp_inline_btn_bar dp__tp_btn_in_r"},null,-1))],64))],64)):(P(),q(_e,{key:0},[i.$slots["arrow-down"]?ie(i.$slots,"arrow-down",{key:0}):W("",!0),i.$slots["arrow-down"]?W("",!0):(P(),Se(u(Pn),{key:1}))],64))],42,Nu)],64))],10,Yu))),128)),i.is24?W("",!0):(P(),q("div",Ou,[i.$slots["am-pm-button"]?ie(i.$slots,"am-pm-button",{key:0,toggle:G,value:T.value}):W("",!0),i.$slots["am-pm-button"]?W("",!0):(P(),q("button",{key:1,ref_key:"amPmButton",ref:A,type:"button",class:"dp__pm_am_button",role:"button","aria-label":u(c)?.amPmButton,tabindex:"0","data-compact":D.value,onClick:G,onKeydown:le[0]||(le[0]=C=>u(ot)(C,()=>G(),!0))},Ke(T.value),41,Bu))])),(P(!0),q(_e,null,Be(F.value,(C,xe)=>(P(),Se(ma,{key:xe,name:u(k)(N[C.type]),css:u(Y)},{default:he(()=>[N[C.type]?(P(),Se(Ta,{key:0,items:S(C.type),"is-last":i.autoApply&&!u(m).keepActionRow,"esc-close":i.escClose,type:C.type,"text-input":i.textInput,config:i.config,"arrow-navigation":i.arrowNavigation,"aria-labels":i.ariaLabels,"overlay-label":u(c).timeOverlay?.(C.type),onSelected:me=>ae(C.type,me),onToggle:me=>re(C.type),onResetFlow:le[1]||(le[1]=me=>i.$emit("reset-flow"))},et({"button-icon":he(()=>[i.$slots["clock-icon"]?ie(i.$slots,"clock-icon",{key:0}):W("",!0),i.$slots["clock-icon"]?W("",!0):(P(),Se(Oa(i.timePickerInline?u(pa):u(Mn)),{key:1}))]),_:2},[i.$slots[`${C.type}-overlay-value`]?{name:"item",fn:he(({item:me})=>[ie(i.$slots,`${C.type}-overlay-value`,{text:me.text,value:me.value})]),key:"0"}:void 0,i.$slots[`${C.type}-overlay-header`]?{name:"header",fn:he(()=>[ie(i.$slots,`${C.type}-overlay-header`,{toggle:()=>re(C.type)})]),key:"1"}:void 0]),1032,["items","is-last","esc-close","type","text-input","config","arrow-navigation","aria-labels","overlay-label","onSelected","onToggle"])):W("",!0)]),_:2},1032,["name","css"]))),128))]))}}),zu=["data-dp-mobile"],Vu=["aria-label","tabindex"],Lu=["role","aria-label","tabindex"],Hu=["aria-label"],Kr=Qe({compatConfig:{MODE:3},__name:"TimePicker",props:{hours:{type:[Number,Array],default:0},minutes:{type:[Number,Array],default:0},seconds:{type:[Number,Array],default:0},disabledTimesConfig:{type:Function,default:null},validateTime:{type:Function,default:()=>!1},...xt},emits:["update:hours","update:minutes","update:seconds","mount","reset-flow","overlay-opened","overlay-closed","am-pm-change"],setup(e,{expose:t,emit:n}){const a=n,r=e,{buildMatrix:l,setTimePicker:o}=Lt(),c=Gt(),{defaultedTransitions:s,defaultedAriaLabels:x,defaultedTextInput:m,defaultedConfig:p,defaultedRange:f}=Ee(r),{transitionName:k,showTransition:Y}=Pa(s),{hideNavigationButtons:N}=Va(),T=Z(null),A=Z(null),R=Z([]),_=Z(null),B=Z(!1);tt(()=>{a("mount"),!r.timePicker&&r.arrowNavigation?l([We(T.value)],"time"):o(!0,r.timePicker)});const j=H(()=>f.value.enabled&&r.modelAuto?Nr(r.internalModelValue):!0),I=Z(!1),y=E=>({hours:Array.isArray(r.hours)?r.hours[E]:r.hours,minutes:Array.isArray(r.minutes)?r.minutes[E]:r.minutes,seconds:Array.isArray(r.seconds)?r.seconds[E]:r.seconds}),V=H(()=>{const E=[];if(f.value.enabled)for(let J=0;J<2;J++)E.push(y(J));else E.push(y(0));return E}),L=(E,J=!1,S="")=>{J||a("reset-flow"),I.value=E,a(E?"overlay-opened":"overlay-closed",rt.time),r.arrowNavigation&&o(E),ct(()=>{S!==""&&R.value[0]&&R.value[0].openChildCmp(S)})},z=H(()=>({dp__btn:!0,dp__button:!0,dp__button_bottom:r.autoApply&&!p.value.keepActionRow})),ne=dt(c,"timePicker"),se=(E,J,S)=>f.value.enabled?J===0?[E,V.value[1][S]]:[V.value[0][S],E]:E,fe=E=>{a("update:hours",E)},g=E=>{a("update:minutes",E)},D=E=>{a("update:seconds",E)},w=()=>{if(_.value&&!m.value.enabled&&!r.noOverlayFocus){const E=Or(_.value);E&&E.focus({preventScroll:!0})}},F=E=>{B.value=!1,a("overlay-closed",E)},te=E=>{B.value=!0,a("overlay-opened",E)};return t({toggleTimePicker:L}),(E,J)=>(P(),q("div",{class:"dp--tp-wrap","data-dp-mobile":E.isMobile},[!E.timePicker&&!E.timePickerInline?Ya((P(),q("button",{key:0,ref_key:"openTimePickerBtn",ref:T,type:"button",class:De({...z.value,"dp--hidden-el":I.value}),"aria-label":u(x)?.openTimePicker,tabindex:E.noOverlayFocus?void 0:0,"data-test-id":"open-time-picker-btn",onKeydown:J[0]||(J[0]=S=>u(ot)(S,()=>L(!0))),onClick:J[1]||(J[1]=S=>L(!0))},[E.$slots["clock-icon"]?ie(E.$slots,"clock-icon",{key:0}):W("",!0),E.$slots["clock-icon"]?W("",!0):(P(),Se(u(Mn),{key:1}))],42,Vu)),[[Ra,!u(N)(E.hideNavigation,"time")]]):W("",!0),Oe(ma,{name:u(k)(I.value),css:u(Y)&&!E.timePickerInline},{default:he(()=>[I.value||E.timePicker||E.timePickerInline?(P(),q("div",{key:0,ref_key:"overlayRef",ref:_,role:E.timePickerInline?void 0:"dialog",class:De({dp__overlay:!E.timePickerInline,"dp--overlay-absolute":!r.timePicker&&!E.timePickerInline,"dp--overlay-relative":r.timePicker}),style:mt(E.timePicker?{height:`${u(p).modeHeight}px`}:void 0),"aria-label":u(x)?.timePicker,tabindex:E.timePickerInline?void 0:0},[ge("div",{class:De(E.timePickerInline?"dp__time_picker_inline_container":"dp__overlay_container dp__container_flex dp__time_picker_overlay_container"),style:{display:"flex"}},[E.$slots["time-picker-overlay"]?ie(E.$slots,"time-picker-overlay",{key:0,hours:e.hours,minutes:e.minutes,seconds:e.seconds,setHours:fe,setMinutes:g,setSeconds:D}):W("",!0),E.$slots["time-picker-overlay"]?W("",!0):(P(),q("div",{key:1,class:De(E.timePickerInline?"dp__flex":"dp__overlay_row dp__flex_row")},[(P(!0),q(_e,null,Be(V.value,(S,ue)=>Ya((P(),Se(Eu,Xe({key:ue},{ref_for:!0},{...E.$props,order:ue,hours:S.hours,minutes:S.minutes,seconds:S.seconds,closeTimePickerBtn:A.value,disabledTimesConfig:e.disabledTimesConfig,disabled:ue===0?u(f).fixedStart:u(f).fixedEnd},{ref_for:!0,ref_key:"timeInputRefs",ref:R,"validate-time":(h,O)=>e.validateTime(h,se(O,ue,h)),"onUpdate:hours":h=>fe(se(h,ue,"hours")),"onUpdate:minutes":h=>g(se(h,ue,"minutes")),"onUpdate:seconds":h=>D(se(h,ue,"seconds")),onMounted:w,onOverlayClosed:F,onOverlayOpened:te,onAmPmChange:J[2]||(J[2]=h=>E.$emit("am-pm-change",h))}),et({_:2},[Be(u(ne),(h,O)=>({name:h,fn:he(M=>[ie(E.$slots,h,Xe({ref_for:!0},M))])}))]),1040,["validate-time","onUpdate:hours","onUpdate:minutes","onUpdate:seconds"])),[[Ra,ue===0?!0:j.value]])),128))],2)),!E.timePicker&&!E.timePickerInline?Ya((P(),q("button",{key:2,ref_key:"closeTimePickerBtn",ref:A,type:"button",class:De({...z.value,"dp--hidden-el":B.value}),"aria-label":u(x)?.closeTimePicker,tabindex:"0",onKeydown:J[3]||(J[3]=S=>u(ot)(S,()=>L(!1))),onClick:J[4]||(J[4]=S=>L(!1))},[E.$slots["calendar-icon"]?ie(E.$slots,"calendar-icon",{key:0}):W("",!0),E.$slots["calendar-icon"]?W("",!0):(P(),Se(u(pa),{key:1}))],42,Hu)),[[Ra,!u(N)(E.hideNavigation,"time")]]):W("",!0)],2)],14,Lu)):W("",!0)]),_:3},8,["name","css"])],8,zu))}}),Jr=(e,t,n,a)=>{const{defaultedRange:r}=Ee(e),l=(_,B)=>Array.isArray(t[_])?t[_][B]:t[_],o=_=>e.enableSeconds?Array.isArray(t.seconds)?t.seconds[_]:t.seconds:0,c=(_,B)=>_?B!==void 0?zt(_,l("hours",B),l("minutes",B),o(B)):zt(_,t.hours,t.minutes,o()):Cr(U(),o(B)),s=(_,B)=>{t[_]=B},x=H(()=>e.modelAuto&&r.value.enabled?Array.isArray(n.value)?n.value.length>1:!1:r.value.enabled),m=(_,B)=>{const j=Object.fromEntries(Object.keys(t).map(I=>I===_?[I,B]:[I,t[I]].slice()));if(x.value&&!r.value.disableTimeRangeValidation){const I=V=>n.value?zt(n.value[V],j.hours[V],j.minutes[V],j.seconds[V]):null,y=V=>Ar(n.value[V],0);return!(Pe(I(0),I(1))&&(Xt(I(0),y(1))||ua(I(1),y(0))))}return!0},p=(_,B)=>{m(_,B)&&(s(_,B),a&&a())},f=_=>{p("hours",_)},k=_=>{p("minutes",_)},Y=_=>{p("seconds",_)},N=(_,B,j,I)=>{B&&f(_),!B&&!j&&k(_),j&&Y(_),n.value&&I(n.value)},T=_=>{if(_){const B=Array.isArray(_),j=B?[+_[0].hours,+_[1].hours]:+_.hours,I=B?[+_[0].minutes,+_[1].minutes]:+_.minutes,y=B?[+_[0].seconds,+_[1].seconds]:+_.seconds;s("hours",j),s("minutes",I),e.enableSeconds&&s("seconds",y)}},A=(_,B)=>{const j={hours:Array.isArray(t.hours)?t.hours[_]:t.hours,disabledArr:[]};return(B||B===0)&&(j.hours=B),Array.isArray(e.disabledTimes)&&(j.disabledArr=r.value.enabled&&Array.isArray(e.disabledTimes[_])?e.disabledTimes[_]:e.disabledTimes),j},R=H(()=>(_,B)=>{if(Array.isArray(e.disabledTimes)){const{disabledArr:j,hours:I}=A(_,B),y=j.filter(V=>+V.hours===I);return y[0]?.minutes==="*"?{hours:[I],minutes:void 0,seconds:void 0}:{hours:[],minutes:y?.map(V=>+V.minutes)??[],seconds:y?.map(V=>V.seconds?+V.seconds:void 0)??[]}}return{hours:[],minutes:[],seconds:[]}});return{setTime:s,updateHours:f,updateMinutes:k,updateSeconds:Y,getSetDateTime:c,updateTimeValues:N,getSecondsValue:o,assignStartTime:T,validateTime:m,disabledTimesConfig:R}},Fu=(e,t)=>{const n=()=>{e.isTextInputDate&&B()},{modelValue:a,time:r}=Sa(e,t,n),{defaultedStartTime:l,defaultedRange:o,defaultedTz:c}=Ee(e),{updateTimeValues:s,getSetDateTime:x,setTime:m,assignStartTime:p,disabledTimesConfig:f,validateTime:k}=Jr(e,r,a,Y);function Y(){t("update-flow-step")}const N=I=>{const{hours:y,minutes:V,seconds:L}=I;return{hours:+y,minutes:+V,seconds:L?+L:0}},T=()=>{if(e.startTime){if(Array.isArray(e.startTime)){const y=N(e.startTime[0]),V=N(e.startTime[1]);return[Re(U(),y),Re(U(),V)]}const I=N(e.startTime);return Re(U(),I)}return o.value.enabled?[null,null]:null},A=()=>{if(o.value.enabled){const[I,y]=T();a.value=[st(x(I,0),c.value.timezone),st(x(y,1),c.value.timezone)]}else a.value=st(x(T()),c.value.timezone)},R=I=>Array.isArray(I)?[Wt(U(I[0])),Wt(U(I[1]))]:[Wt(I??U())],_=(I,y,V)=>{m("hours",I),m("minutes",y),m("seconds",e.enableSeconds?V:0)},B=()=>{const[I,y]=R(a.value);return o.value.enabled?_([I.hours,y.hours],[I.minutes,y.minutes],[I.seconds,y.seconds]):_(I.hours,I.minutes,I.seconds)};tt(()=>{if(!e.shadow)return p(l.value),a.value?B():A()});const j=()=>{Array.isArray(a.value)?a.value=a.value.map((I,y)=>I&&x(I,y)):a.value=x(a.value),t("time-update")};return{modelValue:a,time:r,disabledTimesConfig:f,updateTime:(I,y=!0,V=!1)=>{s(I,y,V,j)},validateTime:k}},qu=Qe({compatConfig:{MODE:3},__name:"TimePickerSolo",props:{...xt},emits:["update:internal-model-value","time-update","am-pm-change","mount","reset-flow","update-flow-step","overlay-toggle"],setup(e,{expose:t,emit:n}){const a=n,r=e,l=Gt(),o=dt(l,"timePicker"),c=Z(null),{time:s,modelValue:x,disabledTimesConfig:m,updateTime:p,validateTime:f}=Fu(r,a);return tt(()=>{r.shadow||a("mount",null)}),t({getSidebarProps:()=>({modelValue:x,time:s,updateTime:p}),toggleTimePicker:(k,Y=!1,N="")=>{c.value?.toggleTimePicker(k,Y,N)}}),(k,Y)=>(P(),Se(Ea,{"multi-calendars":0,stretch:"","is-mobile":k.isMobile},{default:he(()=>[Oe(Kr,Xe({ref_key:"tpRef",ref:c},k.$props,{hours:u(s).hours,minutes:u(s).minutes,seconds:u(s).seconds,"internal-model-value":k.internalModelValue,"disabled-times-config":u(m),"validate-time":u(f),"onUpdate:hours":Y[0]||(Y[0]=N=>u(p)(N)),"onUpdate:minutes":Y[1]||(Y[1]=N=>u(p)(N,!1)),"onUpdate:seconds":Y[2]||(Y[2]=N=>u(p)(N,!1,!0)),onAmPmChange:Y[3]||(Y[3]=N=>k.$emit("am-pm-change",N)),onResetFlow:Y[4]||(Y[4]=N=>k.$emit("reset-flow")),onOverlayClosed:Y[5]||(Y[5]=N=>k.$emit("overlay-toggle",{open:!1,overlay:N})),onOverlayOpened:Y[6]||(Y[6]=N=>k.$emit("overlay-toggle",{open:!0,overlay:N}))}),et({_:2},[Be(u(o),(N,T)=>({name:N,fn:he(A=>[ie(k.$slots,N,Je(ut(A)))])}))]),1040,["hours","minutes","seconds","internal-model-value","disabled-times-config","validate-time"])]),_:3},8,["is-mobile"]))}}),Uu={class:"dp--header-wrap"},ju={key:0,class:"dp__month_year_wrap"},Wu={key:0},Xu={class:"dp__month_year_wrap"},Gu=["data-dp-element","aria-label","data-test-id","onClick","onKeydown"],Qu=Qe({compatConfig:{MODE:3},__name:"DpHeader",props:{month:{type:Number,default:0},year:{type:Number,default:0},instance:{type:Number,default:0},years:{type:Array,default:()=>[]},months:{type:Array,default:()=>[]},...xt},emits:["update-month-year","mount","reset-flow","overlay-closed","overlay-opened"],setup(e,{expose:t,emit:n}){const a=n,r=e,{defaultedTransitions:l,defaultedAriaLabels:o,defaultedMultiCalendars:c,defaultedFilters:s,defaultedConfig:x,defaultedHighlight:m,propDates:p,defaultedUI:f}=Ee(r),{transitionName:k,showTransition:Y}=Pa(l),{buildMatrix:N}=Lt(),{handleMonthYearChange:T,isDisabled:A,updateMonthYear:R}=yu(r,a),{showLeftIcon:_,showRightIcon:B}=Va(),j=Z(!1),I=Z(!1),y=Z(!1),V=Z([null,null,null,null]);tt(()=>{a("mount")});const L=h=>({get:()=>r[h],set:O=>{const M=h===ft.month?ft.year:ft.month;a("update-month-year",{[h]:O,[M]:r[M]}),h===ft.month?F(!0):te(!0)}}),z=H(L(ft.month)),ne=H(L(ft.year)),se=H(()=>h=>({month:r.month,year:r.year,items:h===ft.month?r.months:r.years,instance:r.instance,updateMonthYear:R,toggle:h===ft.month?F:te})),fe=H(()=>r.months.find(h=>h.value===r.month)||{text:"",value:0}),g=H(()=>da(r.months,h=>{const O=r.month===h.value,M=_a(h.value,zr(r.year,p.value.minDate),Vr(r.year,p.value.maxDate))||s.value.months.includes(h.value),re=Ur(m.value,h.value,r.year);return{active:O,disabled:M,highlighted:re}})),D=H(()=>da(r.years,h=>{const O=r.year===h.value,M=_a(h.value,ca(p.value.minDate),ca(p.value.maxDate))||s.value.years.includes(h.value),re=Rn(m.value,h.value);return{active:O,disabled:M,highlighted:re}})),w=(h,O,M)=>{M!==void 0?h.value=M:h.value=!h.value,h.value?(y.value=!0,a("overlay-opened",O)):(y.value=!1,a("overlay-closed",O))},F=(h=!1,O)=>{E(h),w(j,rt.month,O)},te=(h=!1,O)=>{E(h),w(I,rt.year,O)},E=h=>{h||a("reset-flow")},J=(h,O)=>{r.arrowNavigation&&(V.value[O]=We(h),N(V.value,"monthYear"))},S=H(()=>[{type:ft.month,index:1,toggle:F,modelValue:z.value,updateModelValue:h=>z.value=h,text:fe.value.text,showSelectionGrid:j.value,items:g.value,ariaLabel:o.value?.openMonthsOverlay,overlayLabel:o.value.monthPicker?.(!0)??void 0},{type:ft.year,index:2,toggle:te,modelValue:ne.value,updateModelValue:h=>ne.value=h,text:Cn(r.year,r.locale),showSelectionGrid:I.value,items:D.value,ariaLabel:o.value?.openYearsOverlay,overlayLabel:o.value.yearPicker?.(!0)??void 0}]),ue=H(()=>r.disableYearSelect?[S.value[0]]:r.yearFirst?[...S.value].reverse():S.value);return t({toggleMonthPicker:F,toggleYearPicker:te,handleMonthYearChange:T}),(h,O)=>(P(),q("div",Uu,[h.$slots["month-year"]?(P(),q("div",ju,[ie(h.$slots,"month-year",Je(ut({month:e.month,year:e.year,months:e.months,years:e.years,updateMonthYear:u(R),handleMonthYearChange:u(T),instance:e.instance,isDisabled:u(A)})))])):(P(),q(_e,{key:1},[h.$slots["top-extra"]?(P(),q("div",Wu,[ie(h.$slots,"top-extra",{value:h.internalModelValue})])):W("",!0),ge("div",Xu,[u(_)(u(c),e.instance)&&!h.vertical?(P(),Se(wa,{key:0,"aria-label":u(o)?.prevMonth,disabled:u(A)(!1),class:De(u(f)?.navBtnPrev),"el-name":"action-prev",onActivate:O[0]||(O[0]=M=>u(T)(!1,!0)),onSetRef:O[1]||(O[1]=M=>J(M,0))},{default:he(()=>[h.$slots["arrow-left"]?ie(h.$slots,"arrow-left",{key:0}):W("",!0),h.$slots["arrow-left"]?W("",!0):(P(),Se(u(Dn),{key:1}))]),_:3},8,["aria-label","disabled","class"])):W("",!0),ge("div",{class:De(["dp__month_year_wrap",{dp__year_disable_select:h.disableYearSelect}])},[(P(!0),q(_e,null,Be(ue.value,(M,re)=>(P(),q(_e,{key:M.type},[ge("button",{ref_for:!0,ref:v=>J(v,re+1),type:"button","data-dp-element":`overlay-${M.type}`,class:De(["dp__btn dp__month_year_select",{"dp--hidden-el":y.value}]),"aria-label":`${M.text}-${M.ariaLabel}`,"data-test-id":`${M.type}-toggle-overlay-${e.instance}`,onClick:M.toggle,onKeydown:v=>u(ot)(v,()=>M.toggle(),!0)},[h.$slots[M.type]?ie(h.$slots,M.type,{key:0,text:M.text,value:r[M.type]}):W("",!0),h.$slots[M.type]?W("",!0):(P(),q(_e,{key:1},[_t(Ke(M.text),1)],64))],42,Gu),Oe(ma,{name:u(k)(M.showSelectionGrid),css:u(Y)},{default:he(()=>[M.showSelectionGrid?(P(),Se(Ta,{key:0,items:M.items,"arrow-navigation":h.arrowNavigation,"hide-navigation":h.hideNavigation,"is-last":h.autoApply&&!u(x).keepActionRow,"skip-button-ref":!1,config:h.config,type:M.type,"header-refs":[],"esc-close":h.escClose,"menu-wrap-ref":h.menuWrapRef,"text-input":h.textInput,"aria-labels":h.ariaLabels,"overlay-label":M.overlayLabel,onSelected:M.updateModelValue,onToggle:M.toggle},et({"button-icon":he(()=>[h.$slots["calendar-icon"]?ie(h.$slots,"calendar-icon",{key:0}):W("",!0),h.$slots["calendar-icon"]?W("",!0):(P(),Se(u(pa),{key:1}))]),_:2},[h.$slots[`${M.type}-overlay-value`]?{name:"item",fn:he(({item:v})=>[ie(h.$slots,`${M.type}-overlay-value`,{text:v.text,value:v.value})]),key:"0"}:void 0,h.$slots[`${M.type}-overlay`]?{name:"overlay",fn:he(()=>[ie(h.$slots,`${M.type}-overlay`,Xe({ref_for:!0},se.value(M.type)))]),key:"1"}:void 0,h.$slots[`${M.type}-overlay-header`]?{name:"header",fn:he(()=>[ie(h.$slots,`${M.type}-overlay-header`,{toggle:M.toggle})]),key:"2"}:void 0]),1032,["items","arrow-navigation","hide-navigation","is-last","config","type","esc-close","menu-wrap-ref","text-input","aria-labels","overlay-label","onSelected","onToggle"])):W("",!0)]),_:2},1032,["name","css"])],64))),128))],2),u(_)(u(c),e.instance)&&h.vertical?(P(),Se(wa,{key:1,"aria-label":u(o)?.prevMonth,"el-name":"action-prev",disabled:u(A)(!1),class:De(u(f)?.navBtnPrev),onActivate:O[2]||(O[2]=M=>u(T)(!1,!0))},{default:he(()=>[h.$slots["arrow-up"]?ie(h.$slots,"arrow-up",{key:0}):W("",!0),h.$slots["arrow-up"]?W("",!0):(P(),Se(u(Tn),{key:1}))]),_:3},8,["aria-label","disabled","class"])):W("",!0),u(B)(u(c),e.instance)?(P(),Se(wa,{key:2,ref:"rightIcon","el-name":"action-next",disabled:u(A)(!0),"aria-label":u(o)?.nextMonth,class:De(u(f)?.navBtnNext),onActivate:O[3]||(O[3]=M=>u(T)(!0,!0)),onSetRef:O[4]||(O[4]=M=>J(M,h.disableYearSelect?2:3))},{default:he(()=>[h.$slots[h.vertical?"arrow-down":"arrow-right"]?ie(h.$slots,h.vertical?"arrow-down":"arrow-right",{key:0}):W("",!0),h.$slots[h.vertical?"arrow-down":"arrow-right"]?W("",!0):(P(),Se(Oa(h.vertical?u(Pn):u(xn)),{key:1}))]),_:3},8,["disabled","aria-label","class"])):W("",!0)])],64))]))}}),Zu={class:"dp__calendar_header",role:"row"},Ku={key:0,class:"dp__calendar_header_item",role:"gridcell"},Ju=["aria-label"],es={key:0,class:"dp__calendar_item dp__week_num",role:"gridcell"},ts={class:"dp__cell_inner"},as=["id","aria-selected","aria-disabled","aria-label","tabindex","data-test-id","onClick","onTouchend","onKeydown","onMouseenter","onMouseleave","onMousedown"],ns=Qe({compatConfig:{MODE:3},__name:"DpCalendar",props:{mappedDates:{type:Array,default:()=>[]},instance:{type:Number,default:0},month:{type:Number,default:0},year:{type:Number,default:0},...xt},emits:["select-date","set-hover-date","handle-scroll","mount","handle-swipe","handle-space","tooltip-open","tooltip-close"],setup(e,{expose:t,emit:n}){const a=n,r=e,{buildMultiLevelMatrix:l}=Lt(),{defaultedTransitions:o,defaultedConfig:c,defaultedAriaLabels:s,defaultedMultiCalendars:x,defaultedWeekNumbers:m,defaultedMultiDates:p,defaultedUI:f}=Ee(r),k=Z(null),Y=Z({bottom:"",left:"",transform:""}),N=Z([]),T=Z(null),A=Z(!0),R=Z(""),_=Z({startX:0,endX:0,startY:0,endY:0}),B=Z([]),j=Z({left:"50%"}),I=Z(!1),y=H(()=>r.calendar?r.calendar(r.mappedDates):r.mappedDates),V=H(()=>r.dayNames?Array.isArray(r.dayNames)?r.dayNames:r.dayNames(r.locale,+r.weekStart):Oi(r.formatLocale,r.locale,+r.weekStart));tt(()=>{a("mount",{cmp:"calendar",refs:N}),c.value.noSwipe||T.value&&(T.value.addEventListener("touchstart",J,{passive:!1}),T.value.addEventListener("touchend",S,{passive:!1}),T.value.addEventListener("touchmove",ue,{passive:!1})),r.monthChangeOnScroll&&T.value&&T.value.addEventListener("wheel",M,{passive:!1})}),va(()=>{c.value.noSwipe||T.value&&(T.value.removeEventListener("touchstart",J),T.value.removeEventListener("touchend",S),T.value.removeEventListener("touchmove",ue)),r.monthChangeOnScroll&&T.value&&T.value.removeEventListener("wheel",M)});const L=G=>G?r.vertical?"vNext":"next":r.vertical?"vPrevious":"previous",z=(G,ke)=>{if(r.transitions){const K=Ge(Ct(U(),r.month,r.year));R.value=qe(Ge(Ct(U(),G,ke)),K)?o.value[L(!0)]:o.value[L(!1)],A.value=!1,ct(()=>{A.value=!0})}},ne=H(()=>({...f.value.calendar??{}})),se=H(()=>G=>{const ke=Ei(G);return{dp__marker_dot:ke.type==="dot",dp__marker_line:ke.type==="line"}}),fe=H(()=>G=>Pe(G,k.value)),g=H(()=>({dp__calendar:!0,dp__calendar_next:x.value.count>0&&r.instance!==0})),D=H(()=>G=>r.hideOffsetDates?G.current:!0),w=async(G,ke)=>{const{width:K,height:ae}=G.getBoundingClientRect();k.value=ke.value;let i={left:`${K/2}px`},le=-50;if(await ct(),B.value[0]){const{left:C,width:xe}=B.value[0].getBoundingClientRect();C<0&&(i={left:"0"},le=0,j.value.left=`${K/2}px`),window.innerWidth{const ae=We(N.value[ke][K]);ae&&(G.marker?.customPosition&&G.marker?.tooltip?.length?Y.value=G.marker.customPosition(ae):await w(ae,G),a("tooltip-open",G.marker))},te=async(G,ke,K)=>{if(I.value&&p.value.enabled&&p.value.dragSelect)return a("select-date",G);if(a("set-hover-date",G),G.marker?.tooltip?.length){if(r.hideOffsetDates&&!G.current)return;await F(G,ke,K)}},E=G=>{k.value&&(k.value=null,Y.value=JSON.parse(JSON.stringify({bottom:"",left:"",transform:""})),a("tooltip-close",G.marker))},J=G=>{_.value.startX=G.changedTouches[0].screenX,_.value.startY=G.changedTouches[0].screenY},S=G=>{_.value.endX=G.changedTouches[0].screenX,_.value.endY=G.changedTouches[0].screenY,h()},ue=G=>{r.vertical&&!r.inline&&G.preventDefault()},h=()=>{const G=r.vertical?"Y":"X";Math.abs(_.value[`start${G}`]-_.value[`end${G}`])>10&&a("handle-swipe",_.value[`start${G}`]>_.value[`end${G}`]?"right":"left")},O=(G,ke,K)=>{G&&(Array.isArray(N.value[ke])?N.value[ke][K]=G:N.value[ke]=[G]),r.arrowNavigation&&l(N.value,"calendar")},M=G=>{r.monthChangeOnScroll&&(G.preventDefault(),a("handle-scroll",G))},re=G=>m.value.type==="local"?bn(G.value,{weekStartsOn:+r.weekStart}):m.value.type==="iso"?gn(G.value):typeof m.value.type=="function"?m.value.type(G.value):"",v=G=>{const ke=G[0];return m.value.hideOnOffsetDates?G.some(K=>K.current)?re(ke):"":re(ke)},d=(G,ke,K=!0)=>{!K&&Fi()||(!p.value.enabled||c.value.allowPreventDefault)&&(Et(G,c.value),a("select-date",ke))},X=G=>{Et(G,c.value)},$e=G=>{p.value.enabled&&p.value.dragSelect?(I.value=!0,a("select-date",G)):p.value.enabled&&a("select-date",G)};return t({triggerTransition:z}),(G,ke)=>(P(),q("div",{class:De(g.value)},[ge("div",{ref_key:"calendarWrapRef",ref:T,class:De(ne.value),role:"grid"},[ge("div",Zu,[G.weekNumbers?(P(),q("div",Ku,Ke(G.weekNumName),1)):W("",!0),(P(!0),q(_e,null,Be(V.value,(K,ae)=>(P(),q("div",{key:ae,class:"dp__calendar_header_item",role:"gridcell","data-test-id":"calendar-header","aria-label":u(s)?.weekDay?.(ae)},[G.$slots["calendar-header"]?ie(G.$slots,"calendar-header",{key:0,day:K,index:ae}):W("",!0),G.$slots["calendar-header"]?W("",!0):(P(),q(_e,{key:1},[_t(Ke(K),1)],64))],8,Ju))),128))]),ke[2]||(ke[2]=ge("div",{class:"dp__calendar_header_separator"},null,-1)),Oe(ma,{name:R.value,css:!!G.transitions},{default:he(()=>[A.value?(P(),q("div",{key:0,class:"dp__calendar",role:"rowgroup",onMouseleave:ke[1]||(ke[1]=K=>I.value=!1)},[(P(!0),q(_e,null,Be(y.value,(K,ae)=>(P(),q("div",{key:ae,class:"dp__calendar_row",role:"row"},[G.weekNumbers?(P(),q("div",es,[ge("div",ts,Ke(v(K.days)),1)])):W("",!0),(P(!0),q(_e,null,Be(K.days,(i,le)=>(P(),q("div",{id:u(yn)(i.value),ref_for:!0,ref:C=>O(C,ae,le),key:le+ae,role:"gridcell",class:"dp__calendar_item","aria-selected":(i.classData.dp__active_date||i.classData.dp__range_start||i.classData.dp__range_end)??void 0,"aria-disabled":i.classData.dp__cell_disabled||void 0,"aria-label":u(s)?.day?.(i),tabindex:!i.current&&G.hideOffsetDates?void 0:0,"data-test-id":u(yn)(i.value),onClick:ka(C=>d(C,i),["prevent"]),onTouchend:C=>d(C,i,!1),onKeydown:C=>u(ot)(C,()=>G.$emit("select-date",i)),onMouseenter:C=>te(i,ae,le),onMouseleave:C=>E(i),onMousedown:C=>$e(i),onMouseup:ke[0]||(ke[0]=C=>I.value=!1)},[ge("div",{class:De(["dp__cell_inner",i.classData])},[G.$slots.day&&D.value(i)?ie(G.$slots,"day",{key:0,day:+i.text,date:i.value}):W("",!0),G.$slots.day?W("",!0):(P(),q(_e,{key:1},[_t(Ke(i.text),1)],64)),i.marker&&D.value(i)?(P(),q(_e,{key:2},[G.$slots.marker?ie(G.$slots,"marker",{key:0,marker:i.marker,day:+i.text,date:i.value}):(P(),q("div",{key:1,class:De(se.value(i.marker)),style:mt(i.marker.color?{backgroundColor:i.marker.color}:{})},null,6))],64)):W("",!0),fe.value(i.value)?(P(),q("div",{key:3,ref_for:!0,ref_key:"activeTooltip",ref:B,class:"dp__marker_tooltip",style:mt(Y.value)},[i.marker?.tooltip?(P(),q("div",{key:0,class:"dp__tooltip_content",onClick:X},[(P(!0),q(_e,null,Be(i.marker.tooltip,(C,xe)=>(P(),q("div",{key:xe,class:"dp__tooltip_text"},[G.$slots["marker-tooltip"]?ie(G.$slots,"marker-tooltip",{key:0,tooltip:C,day:i.value}):W("",!0),G.$slots["marker-tooltip"]?W("",!0):(P(),q(_e,{key:1},[ge("div",{class:"dp__tooltip_mark",style:mt(C.color?{backgroundColor:C.color}:{})},null,4),ge("div",null,Ke(C.text),1)],64))]))),128)),ge("div",{class:"dp__arrow_bottom_tp",style:mt(j.value)},null,4)])):W("",!0)],4)):W("",!0)],2)],40,as))),128))]))),128))],32)):W("",!0)]),_:3},8,["name","css"])],2)],2))}}),rr=e=>Array.isArray(e),rs=(e,t,n,a)=>{const r=Z([]),l=Z(new Date),o=Z(),c=()=>S(e.isTextInputDate),{modelValue:s,calendars:x,time:m,today:p}=Sa(e,t,c),{defaultedMultiCalendars:f,defaultedStartTime:k,defaultedRange:Y,defaultedConfig:N,defaultedTz:T,propDates:A,defaultedMultiDates:R}=Ee(e),{validateMonthYearInRange:_,isDisabled:B,isDateRangeAllowed:j,checkMinMaxRange:I}=Ht(e),{updateTimeValues:y,getSetDateTime:V,setTime:L,assignStartTime:z,validateTime:ne,disabledTimesConfig:se}=Jr(e,m,s,a),fe=H(()=>b=>x.value[b]?x.value[b].month:0),g=H(()=>b=>x.value[b]?x.value[b].year:0),D=b=>!N.value.keepViewOnOffsetClick||b?!0:!o.value,w=(b,ee,ve,Me=!1)=>{D(Me)&&(x.value[b]||(x.value[b]={month:0,year:0}),x.value[b].month=Kn(ee)?x.value[b]?.month:ee,x.value[b].year=Kn(ve)?x.value[b]?.year:ve)},F=()=>{e.autoApply&&t("select-date")},te=()=>{k.value&&z(k.value)};tt(()=>{e.shadow||(s.value||(ke(),te()),S(!0),e.focusStartDate&&e.startDate&&ke())});const E=H(()=>e.flow?.length&&!e.partialFlow?e.flowStep===e.flow.length:!0),J=()=>{e.autoApply&&E.value&&t("auto-apply",e.partialFlow?e.flowStep!==e.flow.length:!1)},S=(b=!1)=>{if(s.value)return Array.isArray(s.value)?(r.value=s.value,d(b)):O(s.value,b);if(f.value.count&&b&&!e.startDate)return h(U(),b)},ue=()=>Array.isArray(s.value)&&Y.value.enabled?Te(s.value[0])===Te(s.value[1]??s.value[0]):!1,h=(b=new Date,ee=!1)=>{if((!f.value.count||!f.value.static||ee)&&w(0,Te(b),be(b)),f.value.count&&(!s.value||ue()||!f.value.solo)&&(!f.value.solo||ee))for(let ve=1;ve{h(b),L("hours",Yt(b)),L("minutes",Vt(b)),L("seconds",ia(b)),f.value.count&&ee&&G()},M=b=>{if(f.value.count){if(f.value.solo)return 0;const ee=Te(b[0]),ve=Te(b[1]);return Math.abs(ve-ee){b[1]&&Y.value.showLastInRange?h(b[M(b)],ee):h(b[0],ee);const ve=(Me,Q)=>[Me(b[0]),b[1]?Me(b[1]):m[Q][1]];L("hours",ve(Yt,"hours")),L("minutes",ve(Vt,"minutes")),L("seconds",ve(ia,"seconds"))},v=(b,ee)=>{if((Y.value.enabled||e.weekPicker)&&!R.value.enabled)return re(b,ee);if(R.value.enabled&&ee){const ve=b[b.length-1];return O(ve,ee)}},d=b=>{const ee=s.value;v(ee,b),f.value.count&&f.value.solo&&G()},X=(b,ee)=>{const ve=Re(U(),{month:fe.value(ee),year:g.value(ee)}),Me=b<0?kt(ve,1):sa(ve,1);_(Te(Me),be(Me),b<0,e.preventMinMaxNavigation)&&(w(ee,Te(Me),be(Me)),t("update-month-year",{instance:ee,month:Te(Me),year:be(Me)}),f.value.count&&!f.value.solo&&$e(ee),n())},$e=b=>{for(let ee=b-1;ee>=0;ee--){const ve=sa(Re(U(),{month:fe.value(ee+1),year:g.value(ee+1)}),1);w(ee,Te(ve),be(ve))}for(let ee=b+1;ee<=f.value.count-1;ee++){const ve=kt(Re(U(),{month:fe.value(ee-1),year:g.value(ee-1)}),1);w(ee,Te(ve),be(ve))}},G=()=>{if(Array.isArray(s.value)&&s.value.length===2){const b=U(U(s.value[1]?s.value[1]:kt(s.value[0],1))),[ee,ve]=[Te(s.value[0]),be(s.value[0])],[Me,Q]=[Te(s.value[1]),be(s.value[1])];(ee!==Me||ee===Me&&ve!==Q)&&f.value.solo&&w(1,Te(b),be(b))}else s.value&&!Array.isArray(s.value)&&(w(0,Te(s.value),be(s.value)),h(U()))},ke=()=>{e.startDate&&(w(0,Te(U(e.startDate)),be(U(e.startDate))),f.value.count&&$e(0))},K=(b,ee)=>{if(e.monthChangeOnScroll){const ve=new Date().getTime()-l.value.getTime(),Me=Math.abs(b.deltaY);let Q=500;Me>1&&(Q=100),Me>100&&(Q=0),ve>Q&&(l.value=new Date,X(e.monthChangeOnScroll!=="inverse"?-b.deltaY:b.deltaY,ee))}},ae=(b,ee,ve=!1)=>{e.monthChangeOnArrows&&e.vertical===ve&&i(b,ee)},i=(b,ee)=>{X(b==="right"?-1:1,ee)},le=b=>{if(A.value.markers)return Na(b.value,A.value.markers)},C=(b,ee)=>{switch(e.sixWeeks===!0?"append":e.sixWeeks){case"prepend":return[!0,!1];case"center":return[b==0,!0];case"fair":return[b==0||ee>b,!0];case"append":return[!1,!1];default:return[!1,!1]}},xe=(b,ee,ve,Me)=>{if(e.sixWeeks&&b.length<6){const Q=6-b.length,ce=(ee.getDay()+7-Me)%7,pe=6-(ve.getDay()+7-Me)%7,[$t,Mt]=C(ce,pe);for(let Ft=1;Ft<=Q;Ft++)if(Mt?!!(Ft%2)==$t:$t){const It=b[0].days[0],Xa=me(vt(It.value,-7),Te(ee));b.unshift({days:Xa})}else{const It=b[b.length-1],Xa=It.days[It.days.length-1],tl=me(vt(Xa.value,1),Te(ee));b.push({days:tl})}}return b},me=(b,ee)=>{const ve=U(b),Me=[];for(let Q=0;Q<7;Q++){const ce=vt(ve,Q),pe=Te(ce)!==ee;Me.push({text:e.hideOffsetDates&&pe?"":ce.getDate(),value:ce,current:!pe,classData:{}})}return Me},at=(b,ee)=>{const ve=[],Me=new Date(ee,b),Q=new Date(ee,b+1,0),ce=e.weekStart,pe=Dt(Me,{weekStartsOn:ce}),$t=Mt=>{const Ft=me(Mt,b);if(ve.push({days:Ft}),!ve[ve.length-1].days.some(It=>Pe(Ge(It.value),Ge(Q)))){const It=vt(Mt,7);$t(It)}};return $t(pe),xe(ve,Me,Q,ce)},He=b=>{const ee=zt(U(b.value),m.hours,m.minutes,Zt());t("date-update",ee),R.value.enabled?In(ee,s,R.value.limit):s.value=ee,a(),ct().then(()=>{J()})},ht=b=>Y.value.noDisabledRange?Lr(r.value[0],b).some(ee=>B(ee)):!1,$=()=>{r.value=s.value?s.value.slice():[],r.value.length===2&&!(Y.value.fixedStart||Y.value.fixedEnd)&&(r.value=[])},oe=(b,ee)=>{const ve=[U(b.value),vt(U(b.value),+Y.value.autoRange)];j(ve)?(ee&&de(b.value),r.value=ve):t("invalid-date",b.value)},de=b=>{const ee=Te(U(b)),ve=be(U(b));if(w(0,ee,ve),f.value.count>0)for(let Me=1;Me{if(ht(b.value)||!I(b.value,s.value,Y.value.fixedStart?0:1))return t("invalid-date",b.value);r.value=Qr(U(b.value),s,t,Y)},yt=(b,ee)=>{if($(),Y.value.autoRange)return oe(b,ee);if(Y.value.fixedStart||Y.value.fixedEnd)return Rt(b);r.value[0]?I(U(b.value),s.value)&&!ht(b.value)?Ve(U(b.value),U(r.value[0]))?(r.value.unshift(U(b.value)),t("range-end",r.value[0])):(r.value[1]=U(b.value),t("range-end",r.value[1])):(e.autoApply&&t("auto-apply-invalid",b.value),t("invalid-date",b.value)):(r.value[0]=U(b.value),t("range-start",r.value[0]))},Zt=(b=!0)=>e.enableSeconds?Array.isArray(m.seconds)?b?m.seconds[0]:m.seconds[1]:m.seconds:0,it=b=>{r.value[b]=zt(r.value[b],m.hours[b],m.minutes[b],Zt(b!==1))},La=()=>{r.value[0]&&r.value[1]&&+r.value?.[0]>+r.value?.[1]&&(r.value.reverse(),t("range-start",r.value[0]),t("range-end",r.value[1]))},Ha=()=>{r.value.length&&(r.value[0]&&!r.value[1]?it(0):(it(0),it(1),a()),La(),s.value=r.value.slice(),za(r.value,t,e.autoApply,e.modelAuto))},$a=(b,ee=!1)=>{if(B(b.value)||!b.current&&e.hideOffsetDates)return t("invalid-date",b.value);if(o.value=JSON.parse(JSON.stringify(b)),!Y.value.enabled)return He(b);rr(m.hours)&&rr(m.minutes)&&!R.value.enabled&&(yt(b,ee),Ha())},Fa=(b,ee)=>{w(b,ee.month,ee.year,!0),f.value.count&&!f.value.solo&&$e(b),t("update-month-year",{instance:b,month:ee.month,year:ee.year}),n(f.value.solo?b:void 0);const ve=e.flow?.length?e.flow[e.flowStep]:void 0;!ee.fromNav&&(ve===rt.month||ve===rt.year)&&a()},qa=(b,ee)=>{Gr({value:b,modelValue:s,range:Y.value.enabled,timezone:ee?void 0:T.value.timezone}),F(),e.multiCalendars&&ct().then(()=>S(!0))},Ua=()=>{const b=Sn(U(),T.value);!Y.value.enabled&&!R.value.enabled?s.value=b:s.value&&Array.isArray(s.value)&&s.value[0]?R.value.enabled?s.value=[...s.value,b]:s.value=Ve(b,s.value[0])?[b,s.value[0]]:[s.value[0],b]:s.value=[b],F()},ja=()=>{if(Array.isArray(s.value))if(R.value.enabled){const b=Wa();s.value[s.value.length-1]=V(b)}else s.value=s.value.map((b,ee)=>b&&V(b,ee));else s.value=V(s.value);t("time-update")},Wa=()=>Array.isArray(s.value)&&s.value.length?s.value[s.value.length-1]:null;return{calendars:x,modelValue:s,month:fe,year:g,time:m,disabledTimesConfig:se,today:p,validateTime:ne,getCalendarDays:at,getMarker:le,handleScroll:K,handleSwipe:i,handleArrow:ae,selectDate:$a,updateMonthYear:Fa,presetDate:qa,selectCurrentDate:Ua,updateTime:(b,ee=!0,ve=!1)=>{y(b,ee,ve,ja)},assignMonthAndYear:h,setStartTime:te}},ls={key:0},os=Qe({__name:"DatePicker",props:{...xt},emits:["tooltip-open","tooltip-close","mount","update:internal-model-value","update-flow-step","reset-flow","auto-apply","focus-menu","select-date","range-start","range-end","invalid-fixed-range","time-update","am-pm-change","time-picker-open","time-picker-close","recalculate-position","update-month-year","auto-apply-invalid","date-update","invalid-date","overlay-toggle"],setup(e,{expose:t,emit:n}){const a=n,r=e,{calendars:l,month:o,year:c,modelValue:s,time:x,disabledTimesConfig:m,today:p,validateTime:f,getCalendarDays:k,getMarker:Y,handleArrow:N,handleScroll:T,handleSwipe:A,selectDate:R,updateMonthYear:_,presetDate:B,selectCurrentDate:j,updateTime:I,assignMonthAndYear:y,setStartTime:V}=rs(r,a,ue,h),L=Gt(),{setHoverDate:z,getDayClassData:ne,clearHoverDate:se}=Ds(s,r),{defaultedMultiCalendars:fe}=Ee(r),g=Z([]),D=Z([]),w=Z(null),F=dt(L,"calendar"),te=dt(L,"monthYear"),E=dt(L,"timePicker"),J=K=>{r.shadow||a("mount",K)};pt(l,()=>{r.shadow||setTimeout(()=>{a("recalculate-position")},0)},{deep:!0}),pt(fe,(K,ae)=>{K.count-ae.count>0&&y()},{deep:!0});const S=H(()=>K=>k(o.value(K),c.value(K)).map(ae=>({...ae,days:ae.days.map(i=>(i.marker=Y(i),i.classData=ne(i),i))})));function ue(K){K||K===0?D.value[K]?.triggerTransition(o.value(K),c.value(K)):D.value.forEach((ae,i)=>ae.triggerTransition(o.value(i),c.value(i)))}function h(){a("update-flow-step")}const O=(K,ae=!1)=>{R(K,ae),r.spaceConfirm&&a("select-date")},M=(K,ae,i=0)=>{g.value[i]?.toggleMonthPicker(K,ae)},re=(K,ae,i=0)=>{g.value[i]?.toggleYearPicker(K,ae)},v=(K,ae,i)=>{w.value?.toggleTimePicker(K,ae,i)},d=(K,ae)=>{if(!r.range){const i=s.value?s.value:p,le=ae?new Date(ae):i,C=K?Dt(le,{weekStartsOn:1}):gr(le,{weekStartsOn:1});R({value:C,current:Te(le)===o.value(0),text:"",classData:{}}),document.getElementById(yn(C))?.focus()}},X=K=>{g.value[0]?.handleMonthYearChange(K,!0)},$e=K=>{_(0,{month:o.value(0),year:c.value(0)+(K?1:-1),fromNav:!0})},G=(K,ae)=>{K===rt.time&&a(`time-picker-${ae?"open":"close"}`),a("overlay-toggle",{open:ae,overlay:K})},ke=K=>{a("overlay-toggle",{open:!1,overlay:K}),a("focus-menu")};return t({clearHoverDate:se,presetDate:B,selectCurrentDate:j,toggleMonthPicker:M,toggleYearPicker:re,toggleTimePicker:v,handleArrow:N,updateMonthYear:_,getSidebarProps:()=>({modelValue:s,month:o,year:c,time:x,updateTime:I,updateMonthYear:_,selectDate:R,presetDate:B}),changeMonth:X,changeYear:$e,selectWeekDate:d,setStartTime:V}),(K,ae)=>(P(),q(_e,null,[Oe(Ea,{"multi-calendars":u(fe).count,collapse:K.collapse,"is-mobile":K.isMobile},{default:he(({instance:i,index:le})=>[K.disableMonthYearSelect?W("",!0):(P(),Se(Qu,Xe({key:0,ref:C=>{C&&(g.value[le]=C)},months:u(Ir)(K.formatLocale,K.locale,K.monthNameFormat),years:u($n)(K.yearRange,K.locale,K.reverseYears),month:u(o)(i),year:u(c)(i),instance:i},K.$props,{onMount:ae[0]||(ae[0]=C=>J(u(jt).header)),onResetFlow:ae[1]||(ae[1]=C=>K.$emit("reset-flow")),onUpdateMonthYear:C=>u(_)(i,C),onOverlayClosed:ke,onOverlayOpened:ae[2]||(ae[2]=C=>K.$emit("overlay-toggle",{open:!0,overlay:C}))}),et({_:2},[Be(u(te),(C,xe)=>({name:C,fn:he(me=>[ie(K.$slots,C,Je(ut(me)))])}))]),1040,["months","years","month","year","instance","onUpdateMonthYear"])),Oe(ns,Xe({ref:C=>{C&&(D.value[le]=C)},"mapped-dates":S.value(i),month:u(o)(i),year:u(c)(i),instance:i},K.$props,{onSelectDate:C=>u(R)(C,i!==1),onHandleSpace:C=>O(C,i!==1),onSetHoverDate:ae[3]||(ae[3]=C=>u(z)(C)),onHandleScroll:C=>u(T)(C,i),onHandleSwipe:C=>u(A)(C,i),onMount:ae[4]||(ae[4]=C=>J(u(jt).calendar)),onResetFlow:ae[5]||(ae[5]=C=>K.$emit("reset-flow")),onTooltipOpen:ae[6]||(ae[6]=C=>K.$emit("tooltip-open",C)),onTooltipClose:ae[7]||(ae[7]=C=>K.$emit("tooltip-close",C))}),et({_:2},[Be(u(F),(C,xe)=>({name:C,fn:he(me=>[ie(K.$slots,C,Je(ut({...me})))])}))]),1040,["mapped-dates","month","year","instance","onSelectDate","onHandleSpace","onHandleScroll","onHandleSwipe"])]),_:3},8,["multi-calendars","collapse","is-mobile"]),K.enableTimePicker?(P(),q("div",ls,[K.$slots["time-picker"]?ie(K.$slots,"time-picker",Je(Xe({key:0},{time:u(x),updateTime:u(I)}))):(P(),Se(Kr,Xe({key:1,ref_key:"timePickerRef",ref:w},K.$props,{hours:u(x).hours,minutes:u(x).minutes,seconds:u(x).seconds,"internal-model-value":K.internalModelValue,"disabled-times-config":u(m),"validate-time":u(f),onMount:ae[8]||(ae[8]=i=>J(u(jt).timePicker)),"onUpdate:hours":ae[9]||(ae[9]=i=>u(I)(i)),"onUpdate:minutes":ae[10]||(ae[10]=i=>u(I)(i,!1)),"onUpdate:seconds":ae[11]||(ae[11]=i=>u(I)(i,!1,!0)),onResetFlow:ae[12]||(ae[12]=i=>K.$emit("reset-flow")),onOverlayClosed:ae[13]||(ae[13]=i=>G(i,!1)),onOverlayOpened:ae[14]||(ae[14]=i=>G(i,!0)),onAmPmChange:ae[15]||(ae[15]=i=>K.$emit("am-pm-change",i))}),et({_:2},[Be(u(E),(i,le)=>({name:i,fn:he(C=>[ie(K.$slots,i,Je(ut(C)))])}))]),1040,["hours","minutes","seconds","internal-model-value","disabled-times-config","validate-time"]))])):W("",!0)],64))}}),is=(e,t)=>{const n=Z(),{defaultedMultiCalendars:a,defaultedConfig:r,defaultedHighlight:l,defaultedRange:o,propDates:c,defaultedFilters:s,defaultedMultiDates:x}=Ee(e),{modelValue:m,year:p,month:f,calendars:k}=Sa(e,t),{isDisabled:Y}=Ht(e),{selectYear:N,groupedYears:T,showYearPicker:A,isDisabled:R,toggleYearPicker:_,handleYearSelect:B,handleYear:j}=Zr({modelValue:m,multiCalendars:a,range:o,highlight:l,calendars:k,propDates:c,month:f,year:p,filters:s,props:e,emit:t}),I=(D,w)=>[D,w].map(F=>St(F,"MMMM",{locale:e.formatLocale})).join("-"),y=H(()=>D=>m.value?Array.isArray(m.value)?m.value.some(w=>Gn(D,w)):Gn(m.value,D):!1),V=D=>{if(o.value.enabled){if(Array.isArray(m.value)){const w=Pe(D,m.value[0])||Pe(D,m.value[1]);return Da(m.value,n.value,D)&&!w}return!1}return!1},L=(D,w)=>D.quarter===Fn(w)&&D.year===be(w),z=D=>typeof l.value=="function"?l.value({quarter:Fn(D),year:be(D)}):!!l.value.quarters.find(w=>L(w,D)),ne=H(()=>D=>{const w=Re(new Date,{year:p.value(D)});return Nl({start:ra(w),end:fr(w)}).map(F=>{const te=na(F),E=qn(F),J=Y(F),S=V(te),ue=z(te);return{text:I(te,E),value:te,active:y.value(te),highlighted:ue,disabled:J,isBetween:S}})}),se=D=>{In(D,m,x.value.limit),t("auto-apply",!0)},fe=D=>{m.value=Nn(m,D,t),za(m.value,t,e.autoApply,e.modelAuto)},g=D=>{m.value=D,t("auto-apply")};return{defaultedConfig:r,defaultedMultiCalendars:a,groupedYears:T,year:p,isDisabled:R,quarters:ne,showYearPicker:A,modelValue:m,setHoverDate:D=>{n.value=D},selectYear:N,selectQuarter:(D,w,F)=>{if(!F)return k.value[w].month=Te(qn(D)),x.value.enabled?se(D):o.value.enabled?fe(D):g(D)},toggleYearPicker:_,handleYearSelect:B,handleYear:j}},us={class:"dp--quarter-items"},ss=["data-test-id","disabled","onClick","onMouseover"],ds=Qe({compatConfig:{MODE:3},__name:"QuarterPicker",props:{...xt},emits:["update:internal-model-value","reset-flow","overlay-closed","auto-apply","range-start","range-end","overlay-toggle","update-month-year"],setup(e,{expose:t,emit:n}){const a=n,r=e,l=Gt(),o=dt(l,"yearMode"),{defaultedMultiCalendars:c,defaultedConfig:s,groupedYears:x,year:m,isDisabled:p,quarters:f,modelValue:k,showYearPicker:Y,setHoverDate:N,selectQuarter:T,toggleYearPicker:A,handleYearSelect:R,handleYear:_}=is(r,a);return t({getSidebarProps:()=>({modelValue:k,year:m,selectQuarter:T,handleYearSelect:R,handleYear:_})}),(B,j)=>(P(),Se(Ea,{"multi-calendars":u(c).count,collapse:B.collapse,stretch:"","is-mobile":B.isMobile},{default:he(({instance:I})=>[ge("div",{class:"dp-quarter-picker-wrap",style:mt({minHeight:`${u(s).modeHeight}px`})},[B.$slots["top-extra"]?ie(B.$slots,"top-extra",{key:0,value:B.internalModelValue}):W("",!0),ge("div",null,[Oe(Xr,Xe(B.$props,{items:u(x)(I),instance:I,"show-year-picker":u(Y)[I],year:u(m)(I),"is-disabled":y=>u(p)(I,y),onHandleYear:y=>u(_)(I,y),onYearSelect:y=>u(R)(y,I),onToggleYearPicker:y=>u(A)(I,y?.flow,y?.show)}),et({_:2},[Be(u(o),(y,V)=>({name:y,fn:he(L=>[ie(B.$slots,y,Je(ut(L)))])}))]),1040,["items","instance","show-year-picker","year","is-disabled","onHandleYear","onYearSelect","onToggleYearPicker"])]),ge("div",us,[(P(!0),q(_e,null,Be(u(f)(I),(y,V)=>(P(),q("div",{key:V},[ge("button",{type:"button",class:De(["dp--qr-btn",{"dp--qr-btn-active":y.active,"dp--qr-btn-between":y.isBetween,"dp--qr-btn-disabled":y.disabled,"dp--highlighted":y.highlighted}]),"data-test-id":y.value,disabled:y.disabled,onClick:L=>u(T)(y.value,I,y.disabled),onMouseover:L=>u(N)(y.value)},[B.$slots.quarter?ie(B.$slots,"quarter",{key:0,value:y.value,text:y.text}):(P(),q(_e,{key:1},[_t(Ke(y.text),1)],64))],42,ss)]))),128))])],4)]),_:3},8,["multi-calendars","collapse","is-mobile"]))}}),el=(e,t)=>{const n=Z(0);tt(()=>{a(),window.addEventListener("resize",a,{passive:!0})}),va(()=>{window.removeEventListener("resize",a)});const a=()=>{n.value=window.document.documentElement.clientWidth};return{isMobile:H(()=>n.value<=e.value.mobileBreakpoint&&!t?!0:void 0)}},cs=["id","tabindex","role","aria-label"],vs={key:0,class:"dp--menu-load-container"},ms={key:1,class:"dp--menu-header"},ps=["data-dp-mobile"],hs={key:0,class:"dp__sidebar_left"},ys=["data-dp-mobile"],fs=["data-test-id","data-dp-mobile","onClick","onKeydown"],gs={key:2,class:"dp__sidebar_right"},ws={key:3,class:"dp__action_extra"},lr=Qe({compatConfig:{MODE:3},__name:"DatepickerMenu",props:{...Ba,shadow:{type:Boolean,default:!1},openOnTop:{type:Boolean,default:!1},internalModelValue:{type:[Date,Array],default:null},noOverlayFocus:{type:Boolean,default:!1},collapse:{type:Boolean,default:!1},getInputRect:{type:Function,default:()=>({})},isTextInputDate:{type:Boolean,default:!1}},emits:["close-picker","select-date","auto-apply","time-update","flow-step","update-month-year","invalid-select","update:internal-model-value","recalculate-position","invalid-fixed-range","tooltip-open","tooltip-close","time-picker-open","time-picker-close","am-pm-change","range-start","range-end","auto-apply-invalid","date-update","invalid-date","overlay-toggle","menu-blur"],setup(e,{expose:t,emit:n}){const a=n,r=e,l=Z(null),o=H(()=>{const{openOnTop:$,...oe}=r;return{...oe,isMobile:T.value,flowStep:fe.value,menuWrapRef:l.value}}),{setMenuFocused:c,setShiftKey:s,control:x}=Wr(),m=Gt(),{defaultedTextInput:p,defaultedInline:f,defaultedConfig:k,defaultedUI:Y,handleEventPropagation:N}=Ee(r),{isMobile:T}=el(k,r.shadow),A=Z(null),R=Z(0),_=Z(null),B=Z(!1),j=Z(null),I=Z(!1),y=$=>{I.value=!0,k.value.allowPreventDefault&&$.preventDefault(),Et($,k.value,!0)};tt(()=>{if(!r.shadow){B.value=!0,V(),window.addEventListener("resize",V);const $=We(l);$&&!p.value.enabled&&!f.value.enabled&&(c(!0),J()),$&&($.addEventListener("pointerdown",y),$.addEventListener("mousedown",y))}document.addEventListener("mousedown",ht)}),va(()=>{window.removeEventListener("resize",V),document.removeEventListener("mousedown",ht);const $=We(l);$&&($.removeEventListener("pointerdown",y),$.removeEventListener("mousedown",y))});const V=()=>{const $=We(_);$&&(R.value=$.getBoundingClientRect().width)},{arrowRight:L,arrowLeft:z,arrowDown:ne,arrowUp:se}=Lt(),{flowStep:fe,updateFlowStep:g,childMount:D,resetFlow:w,handleFlow:F}=xs(r,a,j),te=H(()=>r.monthPicker?Su:r.yearPicker?Au:r.timePicker?qu:r.quarterPicker?ds:os),E=H(()=>{if(k.value.arrowLeft)return k.value.arrowLeft;const $=l.value?.getBoundingClientRect(),oe=r.getInputRect();return oe?.width=($?.right??0)&&oe?.width{const $=We(l);$&&$.focus({preventScroll:!0})},S=H(()=>j.value?.getSidebarProps()||{}),ue=()=>{r.openOnTop&&a("recalculate-position")},h=dt(m,"action"),O=H(()=>r.monthPicker||r.yearPicker?dt(m,"monthYear"):r.timePicker?dt(m,"timePicker"):dt(m,"shared")),M=H(()=>r.openOnTop?"dp__arrow_bottom":"dp__arrow_top"),re=H(()=>({dp__menu_disabled:r.disabled,dp__menu_readonly:r.readonly,"dp-menu-loading":r.loading})),v=H(()=>({dp__menu:!0,dp__menu_index:!f.value.enabled,dp__relative:f.value.enabled,...Y.value.menu??{}})),d=$=>{Et($,k.value,!0)},X=$=>{r.escClose&&(a("close-picker"),N($))},$e=$=>{if(r.arrowNavigation){if($===lt.up)return se();if($===lt.down)return ne();if($===lt.left)return z();if($===lt.right)return L()}else $===lt.left||$===lt.up?i("handleArrow",lt.left,0,$===lt.up):i("handleArrow",lt.right,0,$===lt.down)},G=$=>{s($.shiftKey),!r.disableMonthYearSelect&&$.code===Ne.tab&&$.target.classList.contains("dp__menu")&&x.value.shiftKeyInMenu&&($.preventDefault(),Et($,k.value,!0),a("close-picker"))},ke=()=>{J(),a("time-picker-close")},K=$=>{j.value?.toggleTimePicker(!1,!1),j.value?.toggleMonthPicker(!1,!1,$),j.value?.toggleYearPicker(!1,!1,$)},ae=($,oe=0)=>$==="month"?j.value?.toggleMonthPicker(!1,!0,oe):$==="year"?j.value?.toggleYearPicker(!1,!0,oe):$==="time"?j.value?.toggleTimePicker(!0,!1):K(oe),i=($,...oe)=>{j.value?.[$]&&j.value?.[$](...oe)},le=()=>{i("selectCurrentDate")},C=($,oe)=>{i("presetDate",ml($),oe)},xe=()=>{i("clearHoverDate")},me=($,oe)=>{i("updateMonthYear",$,oe)},at=($,oe)=>{$.preventDefault(),$e(oe)},He=$=>{if(G($),$.key===Ne.home||$.key===Ne.end)return i("selectWeekDate",$.key===Ne.home,$.target.getAttribute("id"));switch(($.key===Ne.pageUp||$.key===Ne.pageDown)&&($.shiftKey?(i("changeYear",$.key===Ne.pageUp),pn(l.value,"overlay-year")?.focus()):(i("changeMonth",$.key===Ne.pageUp),pn(l.value,$.key===Ne.pageUp?"action-prev":"action-next")?.focus()),$.target.getAttribute("id")&&l.value?.focus({preventScroll:!0})),$.key){case Ne.esc:return X($);case Ne.arrowLeft:return at($,lt.left);case Ne.arrowRight:return at($,lt.right);case Ne.arrowUp:return at($,lt.up);case Ne.arrowDown:return at($,lt.down);default:return}},ht=$=>{f.value.enabled&&!f.value.input&&!l.value?.contains($.target)&&I.value&&(I.value=!1,a("menu-blur"))};return t({updateMonthYear:me,switchView:ae,handleFlow:F,onValueCleared:()=>{j.value?.setStartTime?.()}}),($,oe)=>(P(),q("div",{id:$.uid?`dp-menu-${$.uid}`:void 0,ref_key:"dpMenuRef",ref:l,tabindex:u(f).enabled?void 0:"0",role:u(f).enabled?void 0:"dialog","aria-label":$.ariaLabels?.menu,class:De(v.value),style:mt({"--dp-arrow-left":E.value}),onMouseleave:xe,onClick:d,onKeydown:He},[($.disabled||$.readonly)&&u(f).enabled||$.loading?(P(),q("div",{key:0,class:De(re.value)},[$.loading?(P(),q("div",vs,[...oe[19]||(oe[19]=[ge("span",{class:"dp--menu-loader"},null,-1)])])):W("",!0)],2)):W("",!0),$.$slots["menu-header"]?(P(),q("div",ms,[ie($.$slots,"menu-header")])):W("",!0),!u(f).enabled&&!$.teleportCenter?(P(),q("div",{key:2,class:De(M.value)},null,2)):W("",!0),ge("div",{ref_key:"innerMenuRef",ref:_,class:De({dp__menu_content_wrapper:$.presetDates?.length||!!$.$slots["left-sidebar"]||!!$.$slots["right-sidebar"],"dp--menu-content-wrapper-collapsed":e.collapse&&($.presetDates?.length||!!$.$slots["left-sidebar"]||!!$.$slots["right-sidebar"])}),"data-dp-mobile":u(T),style:mt({"--dp-menu-width":`${R.value}px`})},[$.$slots["left-sidebar"]?(P(),q("div",hs,[ie($.$slots,"left-sidebar",Je(ut(S.value)))])):W("",!0),$.presetDates.length?(P(),q("div",{key:1,class:De({"dp--preset-dates-collapsed":e.collapse,"dp--preset-dates":!0}),"data-dp-mobile":u(T)},[(P(!0),q(_e,null,Be($.presetDates,(de,Rt)=>(P(),q(_e,{key:Rt},[de.slot?ie($.$slots,de.slot,{key:0,presetDate:C,label:de.label,value:de.value}):(P(),q("button",{key:1,type:"button",style:mt(de.style||{}),class:De(["dp__btn dp--preset-range",{"dp--preset-range-collapsed":e.collapse}]),"data-test-id":de.testId??void 0,"data-dp-mobile":u(T),onClick:ka(yt=>C(de.value,de.noTz),["prevent"]),onKeydown:yt=>u(ot)(yt,()=>C(de.value,de.noTz),!0)},Ke(de.label),47,fs))],64))),128))],10,ys)):W("",!0),ge("div",{ref_key:"calendarWrapperRef",ref:A,class:"dp__instance_calendar",role:"document"},[(P(),Se(Oa(te.value),Xe({ref_key:"dynCmpRef",ref:j},o.value,{"flow-step":u(fe),onMount:u(D),onUpdateFlowStep:u(g),onResetFlow:u(w),onFocusMenu:J,onSelectDate:oe[0]||(oe[0]=de=>$.$emit("select-date")),onDateUpdate:oe[1]||(oe[1]=de=>$.$emit("date-update",de)),onTooltipOpen:oe[2]||(oe[2]=de=>$.$emit("tooltip-open",de)),onTooltipClose:oe[3]||(oe[3]=de=>$.$emit("tooltip-close",de)),onAutoApply:oe[4]||(oe[4]=de=>$.$emit("auto-apply",de)),onRangeStart:oe[5]||(oe[5]=de=>$.$emit("range-start",de)),onRangeEnd:oe[6]||(oe[6]=de=>$.$emit("range-end",de)),onInvalidFixedRange:oe[7]||(oe[7]=de=>$.$emit("invalid-fixed-range",de)),onTimeUpdate:oe[8]||(oe[8]=de=>$.$emit("time-update")),onAmPmChange:oe[9]||(oe[9]=de=>$.$emit("am-pm-change",de)),onTimePickerOpen:oe[10]||(oe[10]=de=>$.$emit("time-picker-open",de)),onTimePickerClose:ke,onRecalculatePosition:ue,onUpdateMonthYear:oe[11]||(oe[11]=de=>$.$emit("update-month-year",de)),onAutoApplyInvalid:oe[12]||(oe[12]=de=>$.$emit("auto-apply-invalid",de)),onInvalidDate:oe[13]||(oe[13]=de=>$.$emit("invalid-date",de)),onOverlayToggle:oe[14]||(oe[14]=de=>$.$emit("overlay-toggle",de)),"onUpdate:internalModelValue":oe[15]||(oe[15]=de=>$.$emit("update:internal-model-value",de))}),et({_:2},[Be(O.value,(de,Rt)=>({name:de,fn:he(yt=>[ie($.$slots,de,Je(ut({...yt})))])}))]),1040,["flow-step","onMount","onUpdateFlowStep","onResetFlow"]))],512),$.$slots["right-sidebar"]?(P(),q("div",gs,[ie($.$slots,"right-sidebar",Je(ut(S.value)))])):W("",!0),$.$slots["action-extra"]?(P(),q("div",ws,[$.$slots["action-extra"]?ie($.$slots,"action-extra",{key:0,selectCurrentDate:le}):W("",!0)])):W("",!0)],14,ps),!$.autoApply||u(k).keepActionRow?(P(),Se(wu,Xe({key:3,"menu-mount":B.value},o.value,{"calendar-width":R.value,onClosePicker:oe[16]||(oe[16]=de=>$.$emit("close-picker")),onSelectDate:oe[17]||(oe[17]=de=>$.$emit("select-date")),onInvalidSelect:oe[18]||(oe[18]=de=>$.$emit("invalid-select")),onSelectNow:le}),et({_:2},[Be(u(h),(de,Rt)=>({name:de,fn:he(yt=>[ie($.$slots,de,Je(ut({...yt})))])}))]),1040,["menu-mount","calendar-width"])):W("",!0)],46,cs))}});var ta=(e=>(e.center="center",e.left="left",e.right="right",e))(ta||{});const bs=({menuRef:e,menuRefInner:t,inputRef:n,pickerWrapperRef:a,inline:r,emit:l,props:o,slots:c})=>{const{defaultedConfig:s}=Ee(o),x=Z({}),m=Z(!1),p=Z({top:"0",left:"0"}),f=Z(!1),k=ba(o,"teleportCenter");pt(k,()=>{p.value=JSON.parse(JSON.stringify({})),j()});const Y=w=>{if(o.teleport){const F=w.getBoundingClientRect();return{left:F.left+window.scrollX,top:F.top+window.scrollY}}return{top:0,left:0}},N=(w,F)=>{p.value.left=`${w+F-x.value.width}px`},T=w=>{p.value.left=`${w}px`},A=(w,F)=>{o.position===ta.left&&T(w),o.position===ta.right&&N(w,F),o.position===ta.center&&(p.value.left=`${w+F/2-x.value.width/2}px`)},R=w=>{const{width:F,height:te}=w.getBoundingClientRect(),{top:E,left:J}=Y(w);return{top:+E,left:+J,width:F,height:te}},_=()=>{p.value.left="50%",p.value.top="50%",p.value.transform="translate(-50%, -50%)",p.value.position="fixed",delete p.value.opacity},B=()=>{const w=We(n);p.value=o.altPosition(w)},j=(w=!0)=>{if(!r.value.enabled){if(k.value)return _();if(o.altPosition!==null)return B();if(w){const F=o.teleport?t.value?.$el:e.value;F&&(x.value=F.getBoundingClientRect()),l("recalculate-position")}return se()}},I=({inputEl:w,left:F,width:te})=>{window.screen.width>768&&!m.value&&A(F,te),L(w)},y=w=>{const{top:F,left:te,height:E,width:J}=R(w);p.value.top=`${E+F+ +o.offset}px`,f.value=!1,m.value||(p.value.left=`${te+J/2-x.value.width/2}px`),I({inputEl:w,left:te,width:J})},V=w=>{const{top:F,left:te,width:E}=R(w);p.value.top=`${F-+o.offset-x.value.height}px`,f.value=!0,I({inputEl:w,left:te,width:E})},L=w=>{if(o.autoPosition){const{left:F,width:te}=R(w),{left:E,right:J}=x.value;if(!m.value){if(Math.abs(E)!==Math.abs(J)){if(E<=0)return m.value=!0,T(F);if(J>=document.documentElement.clientWidth)return m.value=!0,N(F,te)}return A(F,te)}}},z=()=>{const w=We(n);if(w){if(o.autoPosition===gt.top)return gt.top;if(o.autoPosition===gt.bottom)return gt.bottom;const{height:F}=x.value,{top:te,height:E}=w.getBoundingClientRect(),J=window.innerHeight-te-E,S=te;return F<=J?gt.bottom:F>J&&F<=S?gt.top:J>=S?gt.bottom:gt.top}return gt.bottom},ne=w=>z()===gt.bottom?y(w):V(w),se=()=>{const w=We(n);if(w)return o.autoPosition?ne(w):y(w)},fe=function(w){if(w){const F=w.scrollHeight>w.clientHeight,te=window.getComputedStyle(w).overflowY.indexOf("hidden")!==-1;return F&&!te}return!0},g=function(w){return!w||w===document.body||w.nodeType===Node.DOCUMENT_FRAGMENT_NODE?window:fe(w)?w:g(w.assignedSlot&&s.value.shadowDom?w.assignedSlot.parentNode:w.parentNode)},D=w=>{if(w)switch(o.position){case ta.left:return{left:0,transform:"translateX(0)"};case ta.right:return{left:`${w.width}px`,transform:"translateX(-100%)"};default:return{left:`${w.width/2}px`,transform:"translateX(-50%)"}}return{}};return{openOnTop:f,menuStyle:p,xCorrect:m,setMenuPosition:j,getScrollableParent:g,shadowRender:(w,F,te)=>{const E=document.createElement("div"),J=We(n)?.getBoundingClientRect();E.setAttribute("id","dp--temp-container");const S=a.value?.clientWidth?a.value:document.body;S.append(E);const ue=D(J),h=s.value.shadowDom?Object.keys(c).filter(M=>["right-sidebar","left-sidebar","top-extra","action-extra"].includes(M)):Object.keys(c),O=vl(F,{...te,shadow:!0,style:{opacity:0,position:"absolute",...ue}},Object.fromEntries(h.map(M=>[M,c[M]])));w!=null&&(O.appContext=w.appContext),En(O,E),x.value=O.el?.getBoundingClientRect(),En(null,E),S.removeChild(E)}}},Ot=[{name:"clock-icon",use:["time","calendar","shared"]},{name:"arrow-left",use:["month-year","calendar","shared","year-mode"]},{name:"arrow-right",use:["month-year","calendar","shared","year-mode"]},{name:"arrow-up",use:["time","calendar","month-year","shared"]},{name:"arrow-down",use:["time","calendar","month-year","shared"]},{name:"calendar-icon",use:["month-year","time","calendar","shared","year-mode"]},{name:"day",use:["calendar","shared"]},{name:"month-overlay-value",use:["calendar","month-year","shared"]},{name:"year-overlay-value",use:["calendar","month-year","shared","year-mode"]},{name:"year-overlay",use:["month-year","shared"]},{name:"month-overlay",use:["month-year","shared"]},{name:"month-overlay-header",use:["month-year","shared"]},{name:"year-overlay-header",use:["month-year","shared"]},{name:"hours-overlay-value",use:["calendar","time","shared"]},{name:"hours-overlay-header",use:["calendar","time","shared"]},{name:"minutes-overlay-value",use:["calendar","time","shared"]},{name:"minutes-overlay-header",use:["calendar","time","shared"]},{name:"seconds-overlay-value",use:["calendar","time","shared"]},{name:"seconds-overlay-header",use:["calendar","time","shared"]},{name:"hours",use:["calendar","time","shared"]},{name:"minutes",use:["calendar","time","shared"]},{name:"month",use:["calendar","month-year","shared"]},{name:"year",use:["calendar","month-year","shared","year-mode"]},{name:"action-buttons",use:["action"]},{name:"action-preview",use:["action"]},{name:"calendar-header",use:["calendar","shared"]},{name:"marker-tooltip",use:["calendar","shared"]},{name:"action-extra",use:["menu"]},{name:"time-picker-overlay",use:["calendar","time","shared"]},{name:"am-pm-button",use:["calendar","time","shared"]},{name:"left-sidebar",use:["menu"]},{name:"right-sidebar",use:["menu"]},{name:"month-year",use:["month-year","shared"]},{name:"time-picker",use:["menu","shared"]},{name:"action-row",use:["action"]},{name:"marker",use:["calendar","shared"]},{name:"quarter",use:["shared"]},{name:"top-extra",use:["shared","month-year"]},{name:"tp-inline-arrow-up",use:["shared","time"]},{name:"tp-inline-arrow-down",use:["shared","time"]},{name:"menu-header",use:["menu"]}],ks=[{name:"trigger"},{name:"input-icon"},{name:"clear-icon"},{name:"dp-input"}],_s={all:()=>Ot,monthYear:()=>Ot.filter(e=>e.use.includes("month-year")),input:()=>ks,timePicker:()=>Ot.filter(e=>e.use.includes("time")),action:()=>Ot.filter(e=>e.use.includes("action")),calendar:()=>Ot.filter(e=>e.use.includes("calendar")),menu:()=>Ot.filter(e=>e.use.includes("menu")),shared:()=>Ot.filter(e=>e.use.includes("shared")),yearMode:()=>Ot.filter(e=>e.use.includes("year-mode"))},dt=(e,t,n)=>{const a=[];return _s[t]().forEach(r=>{e[r.name]&&a.push(r.name)}),n?.length&&n.forEach(r=>{r.slot&&a.push(r.slot)}),a},Pa=e=>{const t=H(()=>a=>e.value?a?e.value.open:e.value.close:""),n=H(()=>a=>e.value?a?e.value.menuAppearTop:e.value.menuAppearBottom:"");return{transitionName:t,showTransition:!!e.value,menuTransition:n}},Sa=(e,t,n)=>{const{defaultedRange:a,defaultedTz:r}=Ee(e),l=U(st(U(),r.value.timezone)),o=Z([{month:Te(l),year:be(l)}]),c=f=>{const k={hours:Yt(l),minutes:Vt(l),seconds:0};return a.value.enabled?[k[f],k[f]]:k[f]},s=xa({hours:c("hours"),minutes:c("minutes"),seconds:c("seconds")});pt(a,(f,k)=>{f.enabled!==k.enabled&&(s.hours=c("hours"),s.minutes=c("minutes"),s.seconds=c("seconds"))},{deep:!0});const x=H({get:()=>e.internalModelValue,set:f=>{!e.readonly&&!e.disabled&&t("update:internal-model-value",f)}}),m=H(()=>f=>o.value[f]?o.value[f].month:0),p=H(()=>f=>o.value[f]?o.value[f].year:0);return pt(x,(f,k)=>{n&&JSON.stringify(f??{})!==JSON.stringify(k??{})&&n()},{deep:!0}),{calendars:o,time:s,modelValue:x,month:m,year:p,today:l}},Ds=(e,t)=>{const{defaultedMultiCalendars:n,defaultedMultiDates:a,defaultedUI:r,defaultedHighlight:l,defaultedTz:o,propDates:c,defaultedRange:s}=Ee(t),{isDisabled:x}=Ht(t),m=Z(null),p=Z(st(new Date,o.value.timezone)),f=v=>{!v.current&&t.hideOffsetDates||(m.value=v.value)},k=()=>{m.value=null},Y=v=>Array.isArray(e.value)&&s.value.enabled&&e.value[0]&&m.value?v?qe(m.value,e.value[0]):Ve(m.value,e.value[0]):!0,N=(v,d)=>{const X=()=>e.value?d?e.value[0]||null:e.value[1]:null,$e=e.value&&Array.isArray(e.value)?X():null;return Pe(U(v.value),$e)},T=v=>{const d=Array.isArray(e.value)?e.value[0]:null;return v?!Ve(m.value??null,d):!0},A=(v,d=!0)=>(s.value.enabled||t.weekPicker)&&Array.isArray(e.value)&&e.value.length===2?t.hideOffsetDates&&!v.current?!1:Pe(U(v.value),e.value[d?0:1]):s.value.enabled?N(v,d)&&T(d)||Pe(v.value,Array.isArray(e.value)?e.value[0]:null)&&Y(d):!1,R=(v,d)=>{if(Array.isArray(e.value)&&e.value[0]&&e.value.length===1){const X=Pe(v.value,m.value);return d?qe(e.value[0],v.value)&&X:Ve(e.value[0],v.value)&&X}return!1},_=v=>!e.value||t.hideOffsetDates&&!v.current?!1:s.value.enabled?t.modelAuto&&Array.isArray(e.value)?Pe(v.value,e.value[0]?e.value[0]:p.value):!1:a.value.enabled&&Array.isArray(e.value)?e.value.some(d=>Pe(d,v.value)):Pe(v.value,e.value?e.value:p.value),B=v=>{if(s.value.autoRange||t.weekPicker){if(m.value){if(t.hideOffsetDates&&!v.current)return!1;const d=vt(m.value,+s.value.autoRange),X=At(U(m.value),t.weekStart);return t.weekPicker?Pe(X[1],U(v.value)):Pe(d,U(v.value))}return!1}return!1},j=v=>{if(s.value.autoRange||t.weekPicker){if(m.value){const d=vt(m.value,+s.value.autoRange);if(t.hideOffsetDates&&!v.current)return!1;const X=At(U(m.value),t.weekStart);return t.weekPicker?qe(v.value,X[0])&&Ve(v.value,X[1]):qe(v.value,m.value)&&Ve(v.value,d)}return!1}return!1},I=v=>{if(s.value.autoRange||t.weekPicker){if(m.value){if(t.hideOffsetDates&&!v.current)return!1;const d=At(U(m.value),t.weekStart);return t.weekPicker?Pe(d[0],v.value):Pe(m.value,v.value)}return!1}return!1},y=v=>Da(e.value,m.value,v.value),V=()=>t.modelAuto&&Array.isArray(t.internalModelValue)?!!t.internalModelValue[0]:!1,L=()=>t.modelAuto?Nr(t.internalModelValue):!0,z=v=>{if(t.weekPicker)return!1;const d=s.value.enabled?!A(v)&&!A(v,!1):!0;return!x(v.value)&&!_(v)&&!(!v.current&&t.hideOffsetDates)&&d},ne=v=>s.value.enabled?t.modelAuto?V()&&_(v):!1:_(v),se=v=>l.value?Hi(v.value,c.value.highlight):!1,fe=v=>{const d=x(v.value);return d&&(typeof l.value=="function"?!l.value(v.value,d):!l.value.options.highlightDisabled)},g=v=>typeof l.value=="function"?l.value(v.value):l.value.weekdays?.includes(v.value.getDay()),D=v=>(s.value.enabled||t.weekPicker)&&(!(n.value.count>0)||v.current)&&L()&&!(!v.current&&t.hideOffsetDates)&&!_(v)?y(v):!1,w=v=>{if(Array.isArray(e.value)&&e.value.length===1){const{before:d,after:X}=tr(+s.value.maxRange,e.value[0]);return ua(v.value,d)||Xt(v.value,X)}return!1},F=v=>{if(Array.isArray(e.value)&&e.value.length===1){const{before:d,after:X}=tr(+s.value.minRange,e.value[0]);return Da([d,X],e.value[0],v.value)}return!1},te=v=>s.value.enabled&&(s.value.maxRange||s.value.minRange)?s.value.maxRange&&s.value.minRange?w(v)||F(v):s.value.maxRange?w(v):F(v):!1,E=v=>{const{isRangeStart:d,isRangeEnd:X}=h(v),$e=s.value.enabled?d||X:!1;return{dp__cell_offset:!v.current,dp__pointer:!t.disabled&&!(!v.current&&t.hideOffsetDates)&&!x(v.value)&&!te(v),dp__cell_disabled:x(v.value)||te(v),dp__cell_highlight:!fe(v)&&(se(v)||g(v))&&!ne(v)&&!$e&&!I(v)&&!(D(v)&&t.weekPicker)&&!X,dp__cell_highlight_active:!fe(v)&&(se(v)||g(v))&&ne(v),dp__today:!t.noToday&&Pe(v.value,p.value)&&v.current,"dp--past":Ve(v.value,p.value),"dp--future":qe(v.value,p.value)}},J=v=>({dp__active_date:ne(v),dp__date_hover:z(v)}),S=v=>{if(e.value&&!Array.isArray(e.value)){const d=At(e.value,t.weekStart);return{...M(v),dp__range_start:Pe(d[0],v.value),dp__range_end:Pe(d[1],v.value),dp__range_between_week:qe(v.value,d[0])&&Ve(v.value,d[1])}}return{...M(v)}},ue=v=>{if(e.value&&Array.isArray(e.value)){const d=At(e.value[0],t.weekStart),X=e.value[1]?At(e.value[1],t.weekStart):[];return{...M(v),dp__range_start:Pe(d[0],v.value)||Pe(X[0],v.value),dp__range_end:Pe(d[1],v.value)||Pe(X[1],v.value),dp__range_between_week:qe(v.value,d[0])&&Ve(v.value,d[1])||qe(v.value,X[0])&&Ve(v.value,X[1]),dp__range_between:qe(v.value,d[1])&&Ve(v.value,X[0])}}return{...M(v)}},h=v=>{const d=n.value.count>0?v.current&&A(v)&&L():A(v)&&L(),X=n.value.count>0?v.current&&A(v,!1)&&L():A(v,!1)&&L();return{isRangeStart:d,isRangeEnd:X}},O=v=>{const{isRangeStart:d,isRangeEnd:X}=h(v);return{dp__range_start:d,dp__range_end:X,dp__range_between:D(v),dp__date_hover:Pe(v.value,m.value)&&!d&&!X&&!t.weekPicker,dp__date_hover_start:R(v,!0),dp__date_hover_end:R(v,!1)}},M=v=>({...O(v),dp__cell_auto_range:j(v),dp__cell_auto_range_start:I(v),dp__cell_auto_range_end:B(v)}),re=v=>s.value.enabled?s.value.autoRange?M(v):t.modelAuto?{...J(v),...O(v)}:t.weekPicker?ue(v):O(v):t.weekPicker?S(v):J(v);return{setHoverDate:f,clearHoverDate:k,getDayClassData:v=>t.hideOffsetDates&&!v.current?{}:{...E(v),...re(v),[t.dayClass?t.dayClass(v.value,t.internalModelValue):""]:!0,...r.value.calendarCell??{}}}},Ht=e=>{const{defaultedFilters:t,defaultedRange:n,propDates:a,defaultedMultiDates:r}=Ee(e),l=g=>a.value.disabledDates?typeof a.value.disabledDates=="function"?a.value.disabledDates(U(g)):!!Na(g,a.value.disabledDates):!1,o=g=>a.value.maxDate?e.yearPicker?be(g)>be(a.value.maxDate):qe(g,a.value.maxDate):!1,c=g=>a.value.minDate?e.yearPicker?be(g){const D=o(g),w=c(g),F=l(g),te=t.value.months.map(h=>+h).includes(Te(g)),E=e.disabledWeekDays.length?e.disabledWeekDays.some(h=>+h===$o(g)):!1,J=k(g),S=be(g),ue=jr(e.yearRange,S);return!(D||w||F||te||ue||E||J)},x=(g,D)=>Ve(...Bt(a.value.minDate,g,D))||Pe(...Bt(a.value.minDate,g,D)),m=(g,D)=>qe(...Bt(a.value.maxDate,g,D))||Pe(...Bt(a.value.maxDate,g,D)),p=(g,D,w)=>{let F=!1;return a.value.maxDate&&w&&m(g,D)&&(F=!0),a.value.minDate&&!w&&x(g,D)&&(F=!0),F},f=(g,D,w,F)=>{let te=!1;return F&&(a.value.minDate||a.value.maxDate)?a.value.minDate&&a.value.maxDate?te=p(g,D,w):(a.value.minDate&&x(g,D)||a.value.maxDate&&m(g,D))&&(te=!0):te=!0,te},k=g=>Array.isArray(a.value.allowedDates)&&!a.value.allowedDates.length?!0:a.value.allowedDates?!Na(g,a.value.allowedDates,Br(e.monthPicker,e.yearPicker)):!1,Y=g=>!s(g),N=g=>n.value.noDisabledRange?!yr({start:g[0],end:g[1]}).some(D=>Y(D)):!0,T=g=>{if(g){const D=be(g);return D>=+e.yearRange[0]&&D<=e.yearRange[1]}return!0},A=(g,D)=>!!(Array.isArray(g)&&g[D]&&(n.value.maxRange||n.value.minRange)&&T(g[D])),R=(g,D,w=0)=>{if(A(D,w)&&T(g)){const F=mr(g,D[w]),te=Lr(D[w],g),E=te.length===1?0:te.filter(S=>Y(S)).length,J=Math.abs(F)-(n.value.minMaxRawRange?0:E);if(n.value.minRange&&n.value.maxRange)return J>=+n.value.minRange&&J<=+n.value.maxRange;if(n.value.minRange)return J>=+n.value.minRange;if(n.value.maxRange)return J<=+n.value.maxRange}return!0},_=()=>!e.enableTimePicker||e.monthPicker||e.yearPicker||e.ignoreTimeValidation,B=g=>Array.isArray(g)?[g[0]?tn(g[0]):null,g[1]?tn(g[1]):null]:tn(g),j=(g,D,w)=>g.find(F=>+F.hours===Yt(D)&&F.minutes==="*"?!0:+F.minutes===Vt(D)&&+F.hours===Yt(D))&&w,I=(g,D,w)=>{const[F,te]=g,[E,J]=D;return!j(F,E,w)&&!j(te,J,w)&&w},y=(g,D)=>{const w=Array.isArray(D)?D:[D];return Array.isArray(e.disabledTimes)?Array.isArray(e.disabledTimes[0])?I(e.disabledTimes,w,g):!w.some(F=>j(e.disabledTimes,F,g)):g},V=(g,D)=>{const w=Array.isArray(D)?[Wt(D[0]),D[1]?Wt(D[1]):void 0]:Wt(D),F=!e.disabledTimes(w);return g&&F},L=(g,D)=>e.disabledTimes?Array.isArray(e.disabledTimes)?y(D,g):V(D,g):D,z=g=>{let D=!0;if(!g||_())return!0;const w=!a.value.minDate&&!a.value.maxDate?B(g):g;return(e.maxTime||a.value.maxDate)&&(D=er(e.maxTime,a.value.maxDate,"max",Ze(w),D)),(e.minTime||a.value.minDate)&&(D=er(e.minTime,a.value.minDate,"min",Ze(w),D)),L(g,D)},ne=g=>{if(!e.monthPicker)return!0;let D=!0;const w=U(bt(g));if(a.value.minDate&&a.value.maxDate){const F=U(bt(a.value.minDate)),te=U(bt(a.value.maxDate));return qe(w,F)&&Ve(w,te)||Pe(w,F)||Pe(w,te)}if(a.value.minDate){const F=U(bt(a.value.minDate));D=qe(w,F)||Pe(w,F)}if(a.value.maxDate){const F=U(bt(a.value.maxDate));D=Ve(w,F)||Pe(w,F)}return D},se=H(()=>g=>!e.enableTimePicker||e.ignoreTimeValidation?!0:z(g)),fe=H(()=>g=>e.monthPicker?Array.isArray(g)&&(n.value.enabled||r.value.enabled)?!g.filter(D=>!ne(D)).length:ne(g):!0);return{isDisabled:Y,validateDate:s,validateMonthYearInRange:f,isDateRangeAllowed:N,checkMinMaxRange:R,isValidTime:z,isTimeValid:se,isMonthValid:fe}},Va=()=>{const e=H(()=>(a,r)=>a?.includes(r)),t=H(()=>(a,r)=>a.count?a.solo?!0:r===0:!0),n=H(()=>(a,r)=>a.count?a.solo?!0:r===a.count-1:!0);return{hideNavigationButtons:e,showLeftIcon:t,showRightIcon:n}},xs=(e,t,n)=>{const a=Z(0),r=xa({[jt.timePicker]:!e.enableTimePicker||e.timePicker||e.monthPicker,[jt.calendar]:!1,[jt.header]:!1}),l=H(()=>e.monthPicker||e.timePicker),o=p=>{if(e.flow?.length){if(!p&&l.value)return m();r[p]=!0,Object.keys(r).filter(f=>!r[f]).length||m()}},c=()=>{e.flow?.length&&a.value!==-1&&(a.value+=1,t("flow-step",a.value),m()),e.flow?.length===a.value&&ct().then(()=>s())},s=()=>{a.value=-1},x=(p,f,...k)=>{e.flow[a.value]===p&&n.value&&n.value[f]?.(...k)},m=(p=0)=>{p&&(a.value+=p),x(rt.month,"toggleMonthPicker",!0),x(rt.year,"toggleYearPicker",!0),x(rt.calendar,"toggleTimePicker",!1,!0),x(rt.time,"toggleTimePicker",!0,!0);const f=e.flow[a.value];(f===rt.hours||f===rt.minutes||f===rt.seconds)&&x(f,"toggleTimePicker",!0,!0,f)};return{childMount:o,updateFlowStep:c,resetFlow:s,handleFlow:m,flowStep:a}},Ms={key:1,class:"dp__input_wrap"},Ts=["id","name","inputmode","placeholder","disabled","readonly","required","value","autocomplete","aria-label","aria-disabled","aria-invalid"],Ps={key:2,class:"dp--clear-btn"},Ss=["aria-label"],$s=Qe({compatConfig:{MODE:3},__name:"DatepickerInput",props:{isMenuOpen:{type:Boolean,default:!1},inputValue:{type:String,default:""},...Ba},emits:["clear","open","update:input-value","set-input-date","close","select-date","set-empty-date","toggle","focus-prev","focus","blur","real-blur","text-input"],setup(e,{expose:t,emit:n}){const a=n,r=e,{defaultedTextInput:l,defaultedAriaLabels:o,defaultedInline:c,defaultedConfig:s,defaultedRange:x,defaultedMultiDates:m,defaultedUI:p,getDefaultPattern:f,getDefaultStartTime:k}=Ee(r),{checkMinMaxRange:Y}=Ht(r),N=Z(),T=Z(null),A=Z(!1),R=Z(!1),_=H(()=>({dp__pointer:!r.disabled&&!r.readonly&&!l.value.enabled,dp__disabled:r.disabled,dp__input_readonly:!l.value.enabled,dp__input:!0,dp__input_not_clearable:!r.clearable,dp__input_icon_pad:!r.hideInputIcon,dp__input_valid:typeof r.state=="boolean"?r.state:!1,dp__input_invalid:typeof r.state=="boolean"?!r.state:!1,dp__input_focus:A.value||r.isMenuOpen,dp__input_reg:!l.value.enabled,...p.value.input??{}})),B=()=>{a("set-input-date",null),r.clearable&&r.autoApply&&(a("set-empty-date"),N.value=null)},j=S=>{const ue=k();return qi(S,l.value.format??f(),ue??Hr({},r.enableSeconds),r.inputValue,R.value,r.formatLocale)},I=S=>{const{rangeSeparator:ue}=l.value,[h,O]=S.split(`${ue}`);if(h){const M=j(h.trim()),re=O?j(O.trim()):void 0;if(Xt(M,re))return;const v=M&&re?[M,re]:[M];Y(re,v,0)&&(N.value=M?v:null)}},y=()=>{R.value=!0},V=S=>{if(x.value.enabled)I(S);else if(m.value.enabled){const ue=S.split(";");N.value=ue.map(h=>j(h.trim())).filter(h=>h)}else N.value=j(S)},L=S=>{const ue=typeof S=="string"?S:S.target?.value;ue!==""?(l.value.openMenu&&!r.isMenuOpen&&a("open"),V(ue),a("set-input-date",N.value)):B(),R.value=!1,a("update:input-value",ue),a("text-input",S,N.value)},z=S=>{l.value.enabled?(V(S.target.value),l.value.enterSubmit&&hn(N.value)&&r.inputValue!==""?(a("set-input-date",N.value,!0),N.value=null):l.value.enterSubmit&&r.inputValue===""&&(N.value=null,a("clear"))):fe(S)},ne=(S,ue)=>{l.value.enabled&&l.value.tabSubmit&&!ue&&V(S.target.value),l.value.tabSubmit&&hn(N.value)&&r.inputValue!==""?(a("set-input-date",N.value,!0,!0),N.value=null):l.value.tabSubmit&&r.inputValue===""&&(N.value=null,a("clear",!0))},se=()=>{A.value=!0,a("focus"),ct().then(()=>{l.value.enabled&&l.value.selectOnFocus&&T.value?.select()})},fe=S=>{if(Et(S,s.value,!0),l.value.enabled&&l.value.openMenu&&!c.value.input){if(l.value.openMenu==="open"&&!r.isMenuOpen)return a("open");if(l.value.openMenu==="toggle")return a("toggle")}else l.value.enabled||a("toggle")},g=()=>{a("real-blur"),A.value=!1,(!r.isMenuOpen||c.value.enabled&&c.value.input)&&a("blur"),r.autoApply&&l.value.enabled&&N.value&&!r.isMenuOpen&&(a("set-input-date",N.value),a("select-date"),N.value=null)},D=S=>{Et(S,s.value,!0),a("clear")},w=()=>{a("close")},F=S=>{if(S.key==="Tab"&&ne(S),S.key==="Enter"&&z(S),S.key==="Escape"&&l.value.escClose&&w(),!l.value.enabled){if(S.code==="Tab")return;S.preventDefault()}},te=()=>{T.value?.focus({preventScroll:!0})},E=S=>{N.value=S},J=S=>{S.key===Ne.tab&&ne(S,!0)};return t({focusInput:te,setParsedDate:E}),(S,ue)=>(P(),q("div",{onClick:fe},[S.$slots.trigger&&!S.$slots["dp-input"]&&!u(c).enabled?ie(S.$slots,"trigger",{key:0}):W("",!0),!S.$slots.trigger&&(!u(c).enabled||u(c).input)?(P(),q("div",Ms,[S.$slots["dp-input"]&&!S.$slots.trigger&&(!u(c).enabled||u(c).enabled&&u(c).input)?ie(S.$slots,"dp-input",{key:0,value:e.inputValue,isMenuOpen:e.isMenuOpen,onInput:L,onEnter:z,onTab:ne,onClear:D,onBlur:g,onKeypress:F,onPaste:y,onFocus:se,openMenu:()=>S.$emit("open"),closeMenu:()=>S.$emit("close"),toggleMenu:()=>S.$emit("toggle")}):W("",!0),S.$slots["dp-input"]?W("",!0):(P(),q("input",{key:1,id:S.uid?`dp-input-${S.uid}`:void 0,ref_key:"inputRef",ref:T,"data-test-id":"dp-input",name:S.name,class:De(_.value),inputmode:u(l).enabled?"text":"none",placeholder:S.placeholder,disabled:S.disabled,readonly:S.readonly,required:S.required,value:e.inputValue,autocomplete:S.autocomplete,"aria-label":u(o)?.input,"aria-disabled":S.disabled||void 0,"aria-invalid":S.state===!1?!0:void 0,onInput:L,onBlur:g,onFocus:se,onKeypress:F,onKeydown:ue[0]||(ue[0]=h=>F(h)),onPaste:y},null,42,Ts)),ge("div",{onClick:ue[3]||(ue[3]=h=>a("toggle"))},[S.$slots["input-icon"]&&!S.hideInputIcon?(P(),q("span",{key:0,class:"dp__input_icon",onClick:ue[1]||(ue[1]=h=>a("toggle"))},[ie(S.$slots,"input-icon")])):W("",!0),!S.$slots["input-icon"]&&!S.hideInputIcon&&!S.$slots["dp-input"]?(P(),Se(u(pa),{key:1,"aria-label":u(o)?.calendarIcon,class:"dp__input_icon dp__input_icons",onClick:ue[2]||(ue[2]=h=>a("toggle"))},null,8,["aria-label"])):W("",!0)]),S.$slots["clear-icon"]&&(S.alwaysClearable||e.inputValue&&S.clearable&&!S.disabled&&!S.readonly)?(P(),q("span",Ps,[ie(S.$slots,"clear-icon",{clear:D})])):W("",!0),!S.$slots["clear-icon"]&&(S.alwaysClearable||S.clearable&&e.inputValue&&!S.disabled&&!S.readonly)?(P(),q("button",{key:3,"aria-label":u(o)?.clearInput,class:"dp--clear-btn",type:"button",onKeydown:ue[4]||(ue[4]=h=>u(ot)(h,()=>D(h),!0,J)),onClick:ue[5]||(ue[5]=ka(h=>D(h),["prevent"]))},[Oe(u(Rr),{class:"dp__input_icons","data-test-id":"clear-icon"})],40,Ss)):W("",!0)])):W("",!0)]))}}),As=typeof window<"u"?window:void 0,un=()=>{},Cs=e=>yl()?(fl(e),!0):!1,Ys=(e,t,n,a)=>{if(!e)return un;let r=un;const l=pt(()=>u(e),c=>{r(),c&&(c.removeEventListener(t,n),c.addEventListener(t,n,a),r=()=>{c.removeEventListener(t,n,a),r=un})},{immediate:!0,flush:"post"}),o=()=>{l(),r()};return Cs(o),o},Rs=(e,t,n,a={})=>{const{window:r=As,event:l="pointerdown"}=a;return r?Ys(r,l,o=>{const c=We(e),s=We(t);!c||!s||c===o.target||o.composedPath().includes(c)||o.composedPath().includes(s)||n(o)},{passive:!0}):void 0},Is=["data-dp-mobile"],Ns=Qe({compatConfig:{MODE:3},__name:"VueDatePicker",props:{...Ba},emits:["update:model-value","update:model-timezone-value","text-submit","closed","cleared","open","focus","blur","internal-model-change","recalculate-position","flow-step","update-month-year","invalid-select","invalid-fixed-range","tooltip-open","tooltip-close","time-picker-open","time-picker-close","am-pm-change","range-start","range-end","date-update","invalid-date","overlay-toggle","text-input"],setup(e,{expose:t,emit:n}){const a=n,r=e,l=Gt(),o=Z(!1),c=ba(r,"modelValue"),s=ba(r,"timezone"),x=Z(null),m=Z(null),p=Z(null),f=Z(!1),k=Z(null),Y=Z(!1),N=Z(!1),T=Z(!1),A=Z(!1),{setMenuFocused:R,setShiftKey:_}=Wr(),{clearArrowNav:B}=Lt(),{validateDate:j,isValidTime:I}=Ht(r),{defaultedTransitions:y,defaultedTextInput:V,defaultedInline:L,defaultedConfig:z,defaultedRange:ne,defaultedMultiDates:se}=Ee(r),{menuTransition:fe,showTransition:g}=Pa(y),{isMobile:D}=el(z),w=pl();tt(()=>{v(r.modelValue),ct().then(()=>{L.value.enabled||(h(k.value)?.addEventListener("scroll",C),window?.addEventListener("resize",xe))}),L.value.enabled&&(o.value=!0),window?.addEventListener("keyup",me),window?.addEventListener("keydown",at)}),va(()=>{L.value.enabled||(h(k.value)?.removeEventListener("scroll",C),window?.removeEventListener("resize",xe)),window?.removeEventListener("keyup",me),window?.removeEventListener("keydown",at)});const F=dt(l,"all",r.presetDates),te=dt(l,"input");pt([c,s],()=>{v(c.value)},{deep:!0});const{openOnTop:E,menuStyle:J,xCorrect:S,setMenuPosition:ue,getScrollableParent:h,shadowRender:O}=bs({menuRef:x,menuRefInner:m,inputRef:p,pickerWrapperRef:k,inline:L,emit:a,props:r,slots:l}),{inputValue:M,internalModelValue:re,parseExternalModelValue:v,emitModelValue:d,formatInputValue:X,checkBeforeEmit:$e}=hu(a,r,{isInputFocused:f,isTextInputDate:A}),G=H(()=>({dp__main:!0,dp__theme_dark:r.dark,dp__theme_light:!r.dark,dp__flex_display:L.value.enabled,"dp--flex-display-collapsed":T.value,dp__flex_display_with_input:L.value.input})),ke=H(()=>r.dark?"dp__theme_dark":"dp__theme_light"),K=H(()=>r.teleport?{to:typeof r.teleport=="boolean"?"body":r.teleport,disabled:!r.teleport||L.value.enabled}:{}),ae=H(()=>({class:"dp__outer_menu_wrap"})),i=H(()=>L.value.enabled&&(r.timePicker||r.monthPicker||r.yearPicker||r.quarterPicker)),le=()=>p.value?.$el?.getBoundingClientRect()??{width:0,left:0,right:0},C=()=>{o.value&&(z.value.closeOnScroll?it():ue())},xe=()=>{o.value&&ue();const Q=m.value?.$el.getBoundingClientRect().width??0;T.value=document.body.offsetWidth<=Q},me=Q=>{Q.key==="Tab"&&!L.value.enabled&&!r.teleport&&z.value.tabOutClosesMenu&&(k.value.contains(document.activeElement)||it()),N.value=Q.shiftKey},at=Q=>{N.value=Q.shiftKey},He=()=>{!r.disabled&&!r.readonly&&(O(w,lr,r),ue(!1),o.value=!0,o.value&&a("open"),o.value||Zt(),v(r.modelValue))},ht=()=>{M.value="",Zt(),m.value?.onValueCleared(),p.value?.setParsedDate(null),a("update:model-value",null),a("update:model-timezone-value",null),a("cleared"),z.value.closeOnClearValue&&it()},$=()=>{const Q=re.value;return!Q||!Array.isArray(Q)&&j(Q)?!0:Array.isArray(Q)?se.value.enabled||Q.length===2&&j(Q[0])&&j(Q[1])?!0:ne.value.partialRange&&!r.timePicker?j(Q[0]):!1:!1},oe=()=>{$e()&&$()?(d(),it()):a("invalid-select",re.value)},de=Q=>{Rt(),d(),z.value.closeOnAutoApply&&!Q&&it()},Rt=()=>{p.value&&V.value.enabled&&p.value.setParsedDate(re.value)},yt=(Q=!1)=>{r.autoApply&&I(re.value)&&$()&&(ne.value.enabled&&Array.isArray(re.value)?(ne.value.partialRange||re.value.length===2)&&de(Q):de(Q))},Zt=()=>{V.value.enabled||(re.value=null)},it=(Q=!1)=>{Q&&re.value&&z.value.setDateOnMenuClose&&oe(),L.value.enabled||(o.value&&(o.value=!1,S.value=!1,R(!1),_(!1),B(),a("closed"),M.value&&v(c.value)),Zt(),a("blur"),m.value?.$el?.remove())},La=(Q,ce,pe=!1)=>{if(!Q){re.value=null;return}const $t=Array.isArray(Q)?!Q.some(Ft=>!j(Ft)):j(Q),Mt=I(Q);$t&&Mt?(A.value=!0,re.value=Q,ce?(Y.value=pe,oe(),a("text-submit")):r.autoApply&&yt(!0),ct().then(()=>{A.value=!1})):a("invalid-date",Q)},Ha=()=>{r.autoApply&&I(re.value)&&d(),Rt()},$a=()=>o.value?it():He(),Fa=Q=>{re.value=Q},qa=()=>{V.value.enabled&&(f.value=!0,X()),a("focus")},Ua=()=>{V.value.enabled&&(f.value=!1,v(r.modelValue),Y.value&&Li(k.value,N.value)?.focus()),a("blur")},ja=Q=>{m.value&&m.value.updateMonthYear(0,{month:Zn(Q.month),year:Zn(Q.year)})},Wa=Q=>{v(Q??r.modelValue)},b=(Q,ce)=>{m.value?.switchView(Q,ce)},ee=(Q,ce)=>z.value.onClickOutside?z.value.onClickOutside(Q,ce):it(!0),ve=(Q=0)=>{m.value?.handleFlow(Q)},Me=()=>x;return Rs(x,p,Q=>ee($,Q)),t({closeMenu:it,selectDate:oe,clearValue:ht,openMenu:He,onScroll:C,formatInputValue:X,updateInternalModelValue:Fa,setMonthYear:ja,parseModel:Wa,switchView:b,toggleMenu:$a,handleFlow:ve,getDpWrapMenuRef:Me}),(Q,ce)=>(P(),q("div",{ref_key:"pickerWrapperRef",ref:k,class:De(G.value),"data-datepicker-instance":"","data-dp-mobile":u(D)},[Oe($s,Xe({ref_key:"inputRef",ref:p,"input-value":u(M),"onUpdate:inputValue":ce[0]||(ce[0]=pe=>Bn(M)?M.value=pe:null),"is-menu-open":o.value},Q.$props,{onClear:ht,onOpen:He,onSetInputDate:La,onSetEmptyDate:u(d),onSelectDate:oe,onToggle:$a,onClose:it,onFocus:qa,onBlur:Ua,onRealBlur:ce[1]||(ce[1]=pe=>f.value=!1),onTextInput:ce[2]||(ce[2]=pe=>Q.$emit("text-input",pe))}),et({_:2},[Be(u(te),(pe,$t)=>({name:pe,fn:he(Mt=>[ie(Q.$slots,pe,Je(ut(Mt)))])}))]),1040,["input-value","is-menu-open","onSetEmptyDate"]),(P(),Se(Oa(Q.teleport?or:"div"),Je(ut(K.value)),{default:he(()=>[Oe(ma,{name:u(fe)(u(E)),css:u(g)&&!u(L).enabled},{default:he(()=>[o.value?(P(),q("div",Xe({key:0,ref_key:"dpWrapMenuRef",ref:x},ae.value,{class:{"dp--menu-wrapper":!u(L).enabled},style:u(L).enabled?void 0:u(J)}),[Oe(lr,Xe({ref_key:"dpMenuRef",ref:m},Q.$props,{"internal-model-value":u(re),"onUpdate:internalModelValue":ce[3]||(ce[3]=pe=>Bn(re)?re.value=pe:null),class:{[ke.value]:!0,"dp--menu-wrapper":Q.teleport},"open-on-top":u(E),"no-overlay-focus":i.value,collapse:T.value,"get-input-rect":le,"is-text-input-date":A.value,onClosePicker:it,onSelectDate:oe,onAutoApply:yt,onTimeUpdate:Ha,onFlowStep:ce[4]||(ce[4]=pe=>Q.$emit("flow-step",pe)),onUpdateMonthYear:ce[5]||(ce[5]=pe=>Q.$emit("update-month-year",pe)),onInvalidSelect:ce[6]||(ce[6]=pe=>Q.$emit("invalid-select",u(re))),onAutoApplyInvalid:ce[7]||(ce[7]=pe=>Q.$emit("invalid-select",pe)),onInvalidFixedRange:ce[8]||(ce[8]=pe=>Q.$emit("invalid-fixed-range",pe)),onRecalculatePosition:u(ue),onTooltipOpen:ce[9]||(ce[9]=pe=>Q.$emit("tooltip-open",pe)),onTooltipClose:ce[10]||(ce[10]=pe=>Q.$emit("tooltip-close",pe)),onTimePickerOpen:ce[11]||(ce[11]=pe=>Q.$emit("time-picker-open",pe)),onTimePickerClose:ce[12]||(ce[12]=pe=>Q.$emit("time-picker-close",pe)),onAmPmChange:ce[13]||(ce[13]=pe=>Q.$emit("am-pm-change",pe)),onRangeStart:ce[14]||(ce[14]=pe=>Q.$emit("range-start",pe)),onRangeEnd:ce[15]||(ce[15]=pe=>Q.$emit("range-end",pe)),onDateUpdate:ce[16]||(ce[16]=pe=>Q.$emit("date-update",pe)),onInvalidDate:ce[17]||(ce[17]=pe=>Q.$emit("invalid-date",pe)),onOverlayToggle:ce[18]||(ce[18]=pe=>Q.$emit("overlay-toggle",pe)),onMenuBlur:ce[19]||(ce[19]=pe=>Q.$emit("blur"))}),et({_:2},[Be(u(F),(pe,$t)=>({name:pe,fn:he(Mt=>[ie(Q.$slots,pe,Je(ut({...Mt})))])}))]),1040,["internal-model-value","class","open-on-top","no-overlay-focus","collapse","is-text-input-date","onRecalculatePosition"])],16)):W("",!0)]),_:3},8,["name","css"])]),_:3},16))],10,Is))}}),On=(()=>{const e=Ns;return e.install=t=>{t.component("Vue3DatePicker",e)},e})(),Os=Object.freeze(Object.defineProperty({__proto__:null,default:On},Symbol.toStringTag,{value:"Module"}));Object.entries(Os).forEach(([e,t])=>{e!=="default"&&(On[e]=t)}),ur(bl);function Bs(e){return e.slice(e.indexOf("/")+1).replaceAll("/"," - ").replaceAll("_"," ")}function Es(){return Intl.supportedValuesOf("timeZone").filter(e=>!e.startsWith("Etc/")).map(e=>({timezoneId:e,label:Bs(e)})).sort((e,t)=>e.timezoneId.localeCompare(t.timezoneId))}const zs=Qe({__name:"NcTimezonePicker",props:sn({additionalTimezones:{default:()=>[]},uid:{default:kl()}},{modelValue:{default:"floating"},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const t=ir(e,"modelValue"),n=e,a=H(()=>n.additionalTimezones.map(({timezoneId:o,label:c})=>({timezoneId:o,label:c}))),r=H(()=>{const o=Es();return o.unshift(...a.value),o});function l(o,c,s){const x=s.trim().split(/\s+/),m=Object.values(o);return x.every(p=>m.some(f=>f.toLowerCase().includes(p.toLowerCase())))}return(o,c)=>(P(),Se(xl,{modelValue:t.value,"onUpdate:modelValue":c[0]||(c[0]=s=>t.value=s),"aria-label-combobox":u(we)("Search for time zone"),clearable:!1,filterBy:l,multiple:!1,options:r.value,placeholder:u(we)("Type to search time zone"),uid:e.uid,reduce:s=>s.timezoneId,label:"label"},null,8,["modelValue","aria-label-combobox","options","placeholder","uid","reduce"]))}});ur(_l);const Vs={class:"vue-date-time-picker__wrapper"},Ls={ref:"target",class:"vue-date-time-picker__wrapper vue-date-time-picker__wrapper--teleport"},Hs=Qe({__name:"NcDateTimePicker",props:sn({appendToBody:{type:Boolean},ariaLabel:{default:we("Datepicker input")},ariaLabelMenu:{default:we("Datepicker menu")},clearable:{type:Boolean},confirm:{type:Boolean},format:{type:[String,Function],default:void 0},locale:{default:Kt()},max:{default:void 0},min:{default:void 0},minuteStep:{default:10},modelValue:{default:null},placeholder:{default:void 0},showTimezoneSelect:{type:Boolean},showWeekNumber:{type:Boolean},type:{default:"date"},inline:{type:Boolean,default:!1}},{timezoneId:{default:"UTC"},timezoneIdModifiers:{}}),emits:sn(["update:modelValue","update:timezoneId","blur"],["update:timezoneId"]),setup(e,{emit:t}){const n=ir(e,"timezoneId"),a=e,r=t,l=zn("target"),o=zn("picker"),c=H(()=>{if(a.modelValue===null&&a.clearable)return null;if(a.type==="week"){const y=a.modelValue instanceof Date?a.modelValue:new Date,V=new Date(y);return V.setUTCDate(y.getUTCDate()+6),[y,V]}else{if(a.type==="year")return(a.modelValue instanceof Date?a.modelValue:new Date).getUTCFullYear();if(a.type==="month"){const y=a.modelValue instanceof Date?a.modelValue:new Date;return{year:y.getUTCFullYear(),month:y.getUTCMonth()}}else if(a.type==="time"){const y=a.modelValue instanceof Date?a.modelValue:new Date;return{hours:y.getHours(),minutes:y.getMinutes(),seconds:y.getSeconds()}}else if(a.type==="time-range"){const y=[a.modelValue].flat();if(y.length!==2){const V=new Date,L=new Date(V);L.setHours(L.getHours()+1),y.splice(0,2,V,L)}return y.map(V=>({hours:V.getHours(),minutes:V.getMinutes(),seconds:V.getSeconds()}))}else if(a.type.endsWith("-range")){if(a.modelValue===void 0){const y=new Date,V=new Date(y);return V.setUTCDate(y.getUTCDate()+7),[y,V]}return a.modelValue}}return a.modelValue??new Date}),s=H(()=>a.type==="date"?we("Select date"):a.type==="time"?we("Select time"):a.type==="datetime"?we("Select date and time"):a.type==="week"?we("Select week"):a.type==="month"?we("Select month"):a.type==="year"?we("Select year"):a.type.endsWith("-range")?we("Select time range"):we("Select date and time")),x=H(()=>{if(a.format)return a.format;if(a.type==="week")return"RR-II";let y;if(a.type==="date"||a.type==="date-range"?y=new Intl.DateTimeFormat(Kt(),{dateStyle:"medium"}):a.type==="time"||a.type==="time-range"?y=new Intl.DateTimeFormat(Kt(),{timeStyle:"short"}):a.type==="datetime"||a.type==="datetime-range"?y=new Intl.DateTimeFormat(Kt(),{dateStyle:"medium",timeStyle:"short"}):a.type==="month"?y=new Intl.DateTimeFormat(Kt(),{year:"numeric",month:"2-digit"}):a.type==="year"&&(y=new Intl.DateTimeFormat(Kt(),{year:"numeric"})),y)return V=>Array.isArray(V)?y.formatRange(V[0],V[1]):y.format(V)}),m=H(()=>({timePicker:a.type==="time"||a.type==="time-range",yearPicker:a.type==="year",monthPicker:a.type==="month",weekPicker:a.type==="week",range:a.type.endsWith("-range")&&{partialRange:!1},enableTimePicker:!(a.type==="date"||a.type==="date-range"),flow:a.type==="datetime"?["calendar","time"]:void 0})),p=H(()=>a.min&&{hours:a.min.getHours(),minutes:a.min.getMinutes(),seconds:a.min.getSeconds()}),f=H(()=>a.max&&{hours:a.max.getHours(),minutes:a.max.getMinutes(),seconds:a.max.getSeconds()});function k(y){if(y===null)return r("update:modelValue",null);if(a.type==="time")r("update:modelValue",Y(y));else if(a.type==="time-range"){const V=Y(y[0]),L=Y(y[1]);L.getTime()({toggleOverlay:we("Toggle overlay"),menu:a.ariaLabelMenu,input:a.ariaLabel,openTimePicker:we("Open time picker"),closeTimePicker:we("Close time Picker"),incrementValue:y=>y==="hours"?we("Increment hours"):y==="minutes"?we("Increment minutes"):we("Increment seconds"),decrementValue:y=>y==="hours"?we("Decrement hours"):y==="minutes"?we("Decrement minutes"):we("Decrement seconds"),openTpOverlay:y=>y==="hours"?we("Open hours overlay"):y==="minutes"?we("Open minutes overlay"):we("Open seconds overlay"),amPmButton:we("Switch AM/PM mode"),openYearsOverlay:we("Open years overlay"),openMonthsOverlay:we("Open months overlay"),nextMonth:we("Next month"),prevMonth:we("Previous month"),nextYear:we("Next year"),prevYear:we("Previous year"),weekDay:y=>cl()[y],clearInput:we("Clear value"),calendarIcon:we("Calendar icon"),timePicker:we("Time picker"),monthPicker:y=>y?we("Month picker overlay"):we("Month picker"),yearPicker:y=>y?we("Year picker overlay"):we("Year picker")}));function _(){o.value.selectDate()}function B(){o.value.closeMenu()}const j=H(()=>a.type==="datetime"?{minDate:a.min,maxDate:a.max,minTime:a.min&&c.value&&I(a.min,c.value)?p.value:void 0,maxTime:a.max&&c.value&&I(a.max,c.value)?f.value:void 0}:a.type==="datetime-range"?{minDate:a.min,maxDate:a.max,minTime:a.min&&c.value&&I(a.min,c.value[0])?p.value:void 0,maxTime:a.max&&c.value&&I(a.max,c.value[1])?f.value:void 0}:a.type==="time"||a.type==="time-range"?{minTime:a.min?p.value:void 0,maxTime:a.max?f.value:void 0}:{minDate:a.min,maxDate:a.max});function I(y,V){return y.getFullYear()===V.getFullYear()&&y.getMonth()===V.getMonth()&&y.getDate()===V.getDate()}return(y,V)=>(P(),q("div",Vs,[Oe(u(On),Xe({ref:"picker","aria-labels":R.value,autoApply:!e.confirm,class:["vue-date-time-picker",{"vue-date-time-picker--clearable":e.clearable}],cancelText:u(we)("Cancel"),clearable:e.clearable,dayNames:T,placeholder:e.placeholder??s.value,format:x.value,locale:e.locale,minDate:j.value.minDate,maxDate:j.value.maxDate,minTime:j.value.minTime,maxTime:j.value.maxTime,minutesIncrement:e.minuteStep,modelValue:c.value,nowButtonLabel:u(we)("Now"),selectText:u(we)("Pick"),sixWeeks:"fair",inline:e.inline,teleport:e.appendToBody?l.value||void 0:!1,textInput:"",weekNumName:u(A),weekNumbers:e.showWeekNumber?{type:"iso"}:void 0,weekStart:u(N)},m.value,{"onUpdate:modelValue":k,onBlur:V[1]||(V[1]=L=>r("blur"))}),et({"action-buttons":he(()=>[Oe(u(Ga),{size:"small",variant:"tertiary",onClick:B},{default:he(()=>[_t(Ke(u(we)("Cancel")),1)]),_:1}),Oe(u(Ga),{size:"small",variant:"primary",onClick:_},{default:he(()=>[_t(Ke(u(we)("Pick")),1)]),_:1})]),"clear-icon":he(({clear:L})=>[Oe(u(Ga),{"aria-label":u(we)("Clear value"),variant:"tertiary-no-background",onClick:L},{icon:he(()=>[Oe(qt,{inline:"",path:u(ul),size:20},null,8,["path"])]),_:1},8,["aria-label","onClick"])]),"input-icon":he(()=>[Oe(qt,{path:u(il),size:20},null,8,["path"])]),"clock-icon":he(()=>[Oe(qt,{inline:"",path:u(ol),size:20},null,8,["path"])]),"arrow-left":he(()=>[Oe(qt,{inline:"",path:u(ll),size:20},null,8,["path"])]),"arrow-right":he(()=>[Oe(qt,{inline:"",path:u(rl),size:20},null,8,["path"])]),"arrow-down":he(()=>[Oe(qt,{inline:"",path:u(nl),size:20},null,8,["path"])]),"arrow-up":he(()=>[Oe(qt,{inline:"",path:u(al),size:20},null,8,["path"])]),_:2},[e.showTimezoneSelect?{name:"action-extra",fn:he(()=>[Oe(zs,{modelValue:n.value,"onUpdate:modelValue":V[0]||(V[0]=L=>n.value=L),class:"vue-date-time-picker__timezone",appendToBody:!1,inputLabel:u(we)("Time zone")},null,8,["modelValue","inputLabel"])]),key:"0"}:void 0]),1040,["aria-labels","autoApply","class","cancelText","clearable","placeholder","format","locale","minDate","maxDate","minTime","maxTime","minutesIncrement","modelValue","nowButtonLabel","selectText","inline","teleport","weekNumName","weekNumbers","weekStart"]),(P(),Se(or,{to:"body",disabled:!e.appendToBody},[ge("div",Ls,null,512)],8,["disabled"]))]))}}),Ks=Dl(Hs,[["__scopeId","data-v-e6654786"]]);export{Ks as default}; -//# sourceMappingURL=index-CMXcwXc6.chunk.mjs.map +import{z as al,A as nl,n as rl,y as ll,B as ol,C as il,N as Ga,b as ul}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{k as sl,s as dl,t as cl}from"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import{b as Qe,x as Gt,D as tt,G as ct,E as va,z as pt,o as P,f as q,k as Oe,q as et,B as Be,u,m as Xe,$ as Bn,c as Se,w as he,T as ma,i as ie,I as Je,O as ut,h as W,C as Oa,af as or,y as De,l as Z,a6 as ba,v as H,ad as vl,av as En,g as ge,N as ka,F as _e,Q as mt,t as Ke,a9 as ml,ac as pl,K as hl,R as xa,j as _t,a2 as yl,a3 as fl,aw as gl,L as Ya,M as Ra,a7 as wl,n as ir,s as sn,p as zn}from"./Web-BwmPK40i.chunk.mjs";import{r as ur,D as bl,b as we,c as kl,E as _l,N as qt,_ as Dl}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{N as xl}from"./index-dqLzhRZM.chunk.mjs";import{b as Kt}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import"./index-B-dGqfIG.chunk.mjs";import"./public-C1mLBHT3.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";const sr=6048e5,Ml=864e5,Tl=6e4,dr=36e5,Pl=1e3,Vn=Symbol.for("constructDateFrom");function Ye(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&Vn in e?e[Vn](t):e instanceof Date?new e.constructor(t):new Date(t)}function ye(e,t){return Ye(t||e,e)}function vt(e,t,n){const a=ye(e,n?.in);return isNaN(t)?Ye(n?.in||e,NaN):(t&&a.setDate(a.getDate()+t),a)}function kt(e,t,n){const a=ye(e,n?.in);if(isNaN(t))return Ye(e,NaN);if(!t)return a;const r=a.getDate(),l=Ye(e,a.getTime());l.setMonth(a.getMonth()+t+1,0);const o=l.getDate();return r>=o?l:(a.setFullYear(l.getFullYear(),l.getMonth(),r),a)}function cr(e,t,n){const{years:a=0,months:r=0,weeks:l=0,days:o=0,hours:c=0,minutes:s=0,seconds:x=0}=t,m=ye(e,n?.in),p=r||a?kt(m,r+a*12):m,f=o||l?vt(p,o+l*7):p,k=s+c*60,Y=(x+k*60)*1e3;return Ye(e,+f+Y)}function Sl(e,t,n){return Ye(e,+ye(e)+t)}function $l(e,t,n){return Sl(e,t*dr)}let Al={};function Qt(){return Al}function Dt(e,t){const n=Qt(),a=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,r=ye(e,t?.in),l=r.getDay(),o=(l=l.getTime()?a+1:n.getTime()>=c.getTime()?a:a-1}function Ia(e){const t=ye(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function Ma(e,...t){const n=Ye.bind(null,t.find(a=>typeof a=="object"));return t.map(n)}function Ln(e,t){const n=ye(e,t?.in);return n.setHours(0,0,0,0),n}function mr(e,t,n){const[a,r]=Ma(n?.in,e,t),l=Ln(a),o=Ln(r),c=+l-Ia(l),s=+o-Ia(o);return Math.round((c-s)/Ml)}function Cl(e,t){const n=vr(e,t),a=Ye(e,0);return a.setFullYear(n,0,4),a.setHours(0,0,0,0),oa(a)}function Yl(e,t,n){return kt(e,t*3,n)}function fn(e,t,n){return kt(e,t*12,n)}function Hn(e,t){const n=+ye(e)-+ye(t);return n<0?-1:n>0?1:n}function pr(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function ga(e){return!(!pr(e)&&typeof e!="number"||isNaN(+ye(e)))}function Fn(e,t){const n=ye(e,t?.in);return Math.trunc(n.getMonth()/3)+1}function Rl(e,t,n){const[a,r]=Ma(n?.in,e,t);return a.getFullYear()-r.getFullYear()}function Il(e,t,n){const[a,r]=Ma(n?.in,e,t),l=Hn(a,r),o=Math.abs(Rl(a,r));a.setFullYear(1584),r.setFullYear(1584);const c=Hn(a,r)===-l,s=l*(o-+c);return s===0?0:s}function hr(e,t){const[n,a]=Ma(e,t.start,t.end);return{start:n,end:a}}function yr(e,t){const{start:n,end:a}=hr(t?.in,e);let r=+n>+a;const l=r?+n:+a,o=r?a:n;o.setHours(0,0,0,0);let c=1;const s=[];for(;+o<=l;)s.push(Ye(n,o)),o.setDate(o.getDate()+c),o.setHours(0,0,0,0);return r?s.reverse():s}function na(e,t){const n=ye(e,t?.in),a=n.getMonth(),r=a-a%3;return n.setMonth(r,1),n.setHours(0,0,0,0),n}function Nl(e,t){const{start:n,end:a}=hr(t?.in,e);let r=+n>+a;const l=r?+na(n):+na(a);let o=na(r?a:n),c=1;const s=[];for(;+o<=l;)s.push(Ye(n,o)),o=Yl(o,c);return r?s.reverse():s}function Ol(e,t){const n=ye(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function fr(e,t){const n=ye(e,t?.in),a=n.getFullYear();return n.setFullYear(a+1,0,0),n.setHours(23,59,59,999),n}function ra(e,t){const n=ye(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function gr(e,t){const n=Qt(),a=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,r=ye(e,t?.in),l=r.getDay(),o=(l{let a;const r=Bl[e];return typeof r=="string"?a=r:t===1?a=r.one:a=r.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+a:a+" ago":a};function Qa(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const zl={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},Vl={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},Ll={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},Hl={date:Qa({formats:zl,defaultWidth:"full"}),time:Qa({formats:Vl,defaultWidth:"full"}),dateTime:Qa({formats:Ll,defaultWidth:"full"})},Fl={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},ql=(e,t,n,a)=>Fl[e];function ha(e){return(t,n)=>{const a=n?.context?String(n.context):"standalone";let r;if(a==="formatting"&&e.formattingValues){const o=e.defaultFormattingWidth||e.defaultWidth,c=n?.width?String(n.width):o;r=e.formattingValues[c]||e.formattingValues[o]}else{const o=e.defaultWidth,c=n?.width?String(n.width):e.defaultWidth;r=e.values[c]||e.values[o]}const l=e.argumentCallback?e.argumentCallback(t):t;return r[l]}}const Ul={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},jl={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},Wl={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},Xl={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},Gl={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},Ql={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},Zl=(e,t)=>{const n=Number(e),a=n%100;if(a>20||a<10)switch(a%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},Kl={ordinalNumber:Zl,era:ha({values:Ul,defaultWidth:"wide"}),quarter:ha({values:jl,defaultWidth:"wide",argumentCallback:e=>e-1}),month:ha({values:Wl,defaultWidth:"wide"}),day:ha({values:Xl,defaultWidth:"wide"}),dayPeriod:ha({values:Gl,defaultWidth:"wide",formattingValues:Ql,defaultFormattingWidth:"wide"})};function ya(e){return(t,n={})=>{const a=n.width,r=a&&e.matchPatterns[a]||e.matchPatterns[e.defaultMatchWidth],l=t.match(r);if(!l)return null;const o=l[0],c=a&&e.parsePatterns[a]||e.parsePatterns[e.defaultParseWidth],s=Array.isArray(c)?eo(c,p=>p.test(o)):Jl(c,p=>p.test(o));let x;x=e.valueCallback?e.valueCallback(s):s,x=n.valueCallback?n.valueCallback(x):x;const m=t.slice(o.length);return{value:x,rest:m}}}function Jl(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function eo(e,t){for(let n=0;n{const a=t.match(e.matchPattern);if(!a)return null;const r=a[0],l=t.match(e.parsePattern);if(!l)return null;let o=e.valueCallback?e.valueCallback(l[0]):l[0];o=n.valueCallback?n.valueCallback(o):o;const c=t.slice(r.length);return{value:o,rest:c}}}const ao=/^(\d+)(th|st|nd|rd)?/i,no=/\d+/i,ro={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},lo={any:[/^b/i,/^(a|c)/i]},oo={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},io={any:[/1/i,/2/i,/3/i,/4/i]},uo={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},so={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},co={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},vo={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},mo={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},po={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},ho={ordinalNumber:to({matchPattern:ao,parsePattern:no,valueCallback:e=>parseInt(e,10)}),era:ya({matchPatterns:ro,defaultMatchWidth:"wide",parsePatterns:lo,defaultParseWidth:"any"}),quarter:ya({matchPatterns:oo,defaultMatchWidth:"wide",parsePatterns:io,defaultParseWidth:"any",valueCallback:e=>e+1}),month:ya({matchPatterns:uo,defaultMatchWidth:"wide",parsePatterns:so,defaultParseWidth:"any"}),day:ya({matchPatterns:co,defaultMatchWidth:"wide",parsePatterns:vo,defaultParseWidth:"any"}),dayPeriod:ya({matchPatterns:mo,defaultMatchWidth:"any",parsePatterns:po,defaultParseWidth:"any"})},wr={code:"en-US",formatDistance:El,formatLong:Hl,formatRelative:ql,localize:Kl,match:ho,options:{weekStartsOn:0,firstWeekContainsDate:1}};function yo(e,t){const n=ye(e,t?.in);return mr(n,ra(n))+1}function gn(e,t){const n=ye(e,t?.in),a=+oa(n)-+Cl(n);return Math.round(a/sr)+1}function wn(e,t){const n=ye(e,t?.in),a=n.getFullYear(),r=Qt(),l=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,o=Ye(t?.in||e,0);o.setFullYear(a+1,0,l),o.setHours(0,0,0,0);const c=Dt(o,t),s=Ye(t?.in||e,0);s.setFullYear(a,0,l),s.setHours(0,0,0,0);const x=Dt(s,t);return+n>=+c?a+1:+n>=+x?a:a-1}function fo(e,t){const n=Qt(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,r=wn(e,t),l=Ye(t?.in||e,0);return l.setFullYear(r,0,a),l.setHours(0,0,0,0),Dt(l,t)}function bn(e,t){const n=ye(e,t?.in),a=+Dt(n,t)-+fo(n,t);return Math.round(a/sr)+1}function Ce(e,t){const n=e<0?"-":"",a=Math.abs(e).toString().padStart(t,"0");return n+a}const Nt={y(e,t){const n=e.getFullYear(),a=n>0?n:1-n;return Ce(t==="yy"?a%100:a,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):Ce(n+1,2)},d(e,t){return Ce(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];default:return n==="am"?"a.m.":"p.m."}},h(e,t){return Ce(e.getHours()%12||12,t.length)},H(e,t){return Ce(e.getHours(),t.length)},m(e,t){return Ce(e.getMinutes(),t.length)},s(e,t){return Ce(e.getSeconds(),t.length)},S(e,t){const n=t.length,a=e.getMilliseconds(),r=Math.trunc(a*Math.pow(10,n-3));return Ce(r,t.length)}},Jt={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},Un={G:function(e,t,n){const a=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(a,{width:"abbreviated"});case"GGGGG":return n.era(a,{width:"narrow"});default:return n.era(a,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const a=e.getFullYear(),r=a>0?a:1-a;return n.ordinalNumber(r,{unit:"year"})}return Nt.y(e,t)},Y:function(e,t,n,a){const r=wn(e,a),l=r>0?r:1-r;if(t==="YY"){const o=l%100;return Ce(o,2)}return t==="Yo"?n.ordinalNumber(l,{unit:"year"}):Ce(l,t.length)},R:function(e,t){const n=vr(e);return Ce(n,t.length)},u:function(e,t){const n=e.getFullYear();return Ce(n,t.length)},Q:function(e,t,n){const a=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(a);case"QQ":return Ce(a,2);case"Qo":return n.ordinalNumber(a,{unit:"quarter"});case"QQQ":return n.quarter(a,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(a,{width:"narrow",context:"formatting"});default:return n.quarter(a,{width:"wide",context:"formatting"})}},q:function(e,t,n){const a=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(a);case"qq":return Ce(a,2);case"qo":return n.ordinalNumber(a,{unit:"quarter"});case"qqq":return n.quarter(a,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(a,{width:"narrow",context:"standalone"});default:return n.quarter(a,{width:"wide",context:"standalone"})}},M:function(e,t,n){const a=e.getMonth();switch(t){case"M":case"MM":return Nt.M(e,t);case"Mo":return n.ordinalNumber(a+1,{unit:"month"});case"MMM":return n.month(a,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(a,{width:"narrow",context:"formatting"});default:return n.month(a,{width:"wide",context:"formatting"})}},L:function(e,t,n){const a=e.getMonth();switch(t){case"L":return String(a+1);case"LL":return Ce(a+1,2);case"Lo":return n.ordinalNumber(a+1,{unit:"month"});case"LLL":return n.month(a,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(a,{width:"narrow",context:"standalone"});default:return n.month(a,{width:"wide",context:"standalone"})}},w:function(e,t,n,a){const r=bn(e,a);return t==="wo"?n.ordinalNumber(r,{unit:"week"}):Ce(r,t.length)},I:function(e,t,n){const a=gn(e);return t==="Io"?n.ordinalNumber(a,{unit:"week"}):Ce(a,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):Nt.d(e,t)},D:function(e,t,n){const a=yo(e);return t==="Do"?n.ordinalNumber(a,{unit:"dayOfYear"}):Ce(a,t.length)},E:function(e,t,n){const a=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(a,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(a,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},e:function(e,t,n,a){const r=e.getDay(),l=(r-a.weekStartsOn+8)%7||7;switch(t){case"e":return String(l);case"ee":return Ce(l,2);case"eo":return n.ordinalNumber(l,{unit:"day"});case"eee":return n.day(r,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(r,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},c:function(e,t,n,a){const r=e.getDay(),l=(r-a.weekStartsOn+8)%7||7;switch(t){case"c":return String(l);case"cc":return Ce(l,t.length);case"co":return n.ordinalNumber(l,{unit:"day"});case"ccc":return n.day(r,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(r,{width:"narrow",context:"standalone"});case"cccccc":return n.day(r,{width:"short",context:"standalone"});default:return n.day(r,{width:"wide",context:"standalone"})}},i:function(e,t,n){const a=e.getDay(),r=a===0?7:a;switch(t){case"i":return String(r);case"ii":return Ce(r,t.length);case"io":return n.ordinalNumber(r,{unit:"day"});case"iii":return n.day(a,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(a,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},a:function(e,t,n){const a=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(e,t,n){const a=e.getHours();let r;switch(a===12?r=Jt.noon:a===0?r=Jt.midnight:r=a/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},B:function(e,t,n){const a=e.getHours();let r;switch(a>=17?r=Jt.evening:a>=12?r=Jt.afternoon:a>=4?r=Jt.morning:r=Jt.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let a=e.getHours()%12;return a===0&&(a=12),n.ordinalNumber(a,{unit:"hour"})}return Nt.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):Nt.H(e,t)},K:function(e,t,n){const a=e.getHours()%12;return t==="Ko"?n.ordinalNumber(a,{unit:"hour"}):Ce(a,t.length)},k:function(e,t,n){let a=e.getHours();return a===0&&(a=24),t==="ko"?n.ordinalNumber(a,{unit:"hour"}):Ce(a,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):Nt.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):Nt.s(e,t)},S:function(e,t){return Nt.S(e,t)},X:function(e,t,n){const a=e.getTimezoneOffset();if(a===0)return"Z";switch(t){case"X":return Wn(a);case"XXXX":case"XX":return Ut(a);default:return Ut(a,":")}},x:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"x":return Wn(a);case"xxxx":case"xx":return Ut(a);default:return Ut(a,":")}},O:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+jn(a,":");default:return"GMT"+Ut(a,":")}},z:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+jn(a,":");default:return"GMT"+Ut(a,":")}},t:function(e,t,n){const a=Math.trunc(+e/1e3);return Ce(a,t.length)},T:function(e,t,n){return Ce(+e,t.length)}};function jn(e,t=""){const n=e>0?"-":"+",a=Math.abs(e),r=Math.trunc(a/60),l=a%60;return l===0?n+String(r):n+String(r)+t+Ce(l,2)}function Wn(e,t){return e%60===0?(e>0?"-":"+")+Ce(Math.abs(e)/60,2):Ut(e,t)}function Ut(e,t=""){const n=e>0?"-":"+",a=Math.abs(e),r=Ce(Math.trunc(a/60),2),l=Ce(a%60,2);return n+r+t+l}const Xn=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},br=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},go=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],a=n[1],r=n[2];if(!r)return Xn(e,t);let l;switch(a){case"P":l=t.dateTime({width:"short"});break;case"PP":l=t.dateTime({width:"medium"});break;case"PPP":l=t.dateTime({width:"long"});break;default:l=t.dateTime({width:"full"});break}return l.replace("{{date}}",Xn(a,t)).replace("{{time}}",br(r,t))},dn={p:br,P:go},wo=/^D+$/,bo=/^Y+$/,ko=["D","DD","YY","YYYY"];function kr(e){return wo.test(e)}function _r(e){return bo.test(e)}function cn(e,t,n){const a=_o(e,t,n);if(console.warn(a),ko.includes(e))throw new RangeError(a)}function _o(e,t,n){const a=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${a} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const Do=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,xo=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Mo=/^'([^]*?)'?$/,To=/''/g,Po=/[a-zA-Z]/;function St(e,t,n){const a=Qt(),r=n?.locale??a.locale??wr,l=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,o=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??a.weekStartsOn??a.locale?.options?.weekStartsOn??0,c=ye(e,n?.in);if(!ga(c))throw new RangeError("Invalid time value");let s=t.match(xo).map(m=>{const p=m[0];if(p==="p"||p==="P"){const f=dn[p];return f(m,r.formatLong)}return m}).join("").match(Do).map(m=>{if(m==="''")return{isToken:!1,value:"'"};const p=m[0];if(p==="'")return{isToken:!1,value:So(m)};if(Un[p])return{isToken:!0,value:m};if(p.match(Po))throw new RangeError("Format string contains an unescaped latin alphabet character `"+p+"`");return{isToken:!1,value:m}});r.localize.preprocessor&&(s=r.localize.preprocessor(c,s));const x={firstWeekContainsDate:l,weekStartsOn:o,locale:r};return s.map(m=>{if(!m.isToken)return m.value;const p=m.value;(!n?.useAdditionalWeekYearTokens&&_r(p)||!n?.useAdditionalDayOfYearTokens&&kr(p))&&cn(p,t,String(e));const f=Un[p[0]];return f(c,p,r.localize,x)}).join("")}function So(e){const t=e.match(Mo);return t?t[1].replace(To,"'"):e}function $o(e,t){return ye(e,t?.in).getDay()}function Ao(e,t){const n=ye(e,t?.in),a=n.getFullYear(),r=n.getMonth(),l=Ye(n,0);return l.setFullYear(a,r+1,0),l.setHours(0,0,0,0),l.getDate()}function Co(){return Object.assign({},Qt())}function Yt(e,t){return ye(e,t?.in).getHours()}function Yo(e,t){const n=ye(e,t?.in).getDay();return n===0?7:n}function Vt(e,t){return ye(e,t?.in).getMinutes()}function Te(e,t){return ye(e,t?.in).getMonth()}function ia(e){return ye(e).getSeconds()}function be(e,t){return ye(e,t?.in).getFullYear()}function Xt(e,t){return+ye(e)>+ye(t)}function ua(e,t){return+ye(e)<+ye(t)}function aa(e,t){return+ye(e)==+ye(t)}function Ro(e,t){const n=Io(t)?new t(0):Ye(t,0);return n.setFullYear(e.getFullYear(),e.getMonth(),e.getDate()),n.setHours(e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()),n}function Io(e){return typeof e=="function"&&e.prototype?.constructor===e}const No=10;class Dr{subPriority=0;validate(t,n){return!0}}class Oo extends Dr{constructor(t,n,a,r,l){super(),this.value=t,this.validateValue=n,this.setValue=a,this.priority=r,l&&(this.subPriority=l)}validate(t,n){return this.validateValue(t,this.value,n)}set(t,n,a){return this.setValue(t,n,this.value,a)}}class Bo extends Dr{priority=No;subPriority=-1;constructor(t,n){super(),this.context=t||(a=>Ye(n,a))}set(t,n){return n.timestampIsSet?t:Ye(t,Ro(t,this.context))}}class Ae{run(t,n,a,r){const l=this.parse(t,n,a,r);return l?{setter:new Oo(l.value,this.validate,this.set,this.priority,this.subPriority),rest:l.rest}:null}validate(t,n,a){return!0}}class Eo extends Ae{priority=140;parse(t,n,a){switch(n){case"G":case"GG":case"GGG":return a.era(t,{width:"abbreviated"})||a.era(t,{width:"narrow"});case"GGGGG":return a.era(t,{width:"narrow"});default:return a.era(t,{width:"wide"})||a.era(t,{width:"abbreviated"})||a.era(t,{width:"narrow"})}}set(t,n,a){return n.era=a,t.setFullYear(a,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["R","u","t","T"]}const Ue={month:/^(1[0-2]|0?\d)/,date:/^(3[0-1]|[0-2]?\d)/,dayOfYear:/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,week:/^(5[0-3]|[0-4]?\d)/,hour23h:/^(2[0-3]|[0-1]?\d)/,hour24h:/^(2[0-4]|[0-1]?\d)/,hour11h:/^(1[0-1]|0?\d)/,hour12h:/^(1[0-2]|0?\d)/,minute:/^[0-5]?\d/,second:/^[0-5]?\d/,singleDigit:/^\d/,twoDigits:/^\d{1,2}/,threeDigits:/^\d{1,3}/,fourDigits:/^\d{1,4}/,anyDigitsSigned:/^-?\d+/,singleDigitSigned:/^-?\d/,twoDigitsSigned:/^-?\d{1,2}/,threeDigitsSigned:/^-?\d{1,3}/,fourDigitsSigned:/^-?\d{1,4}/},Tt={basicOptionalMinutes:/^([+-])(\d{2})(\d{2})?|Z/,basic:/^([+-])(\d{2})(\d{2})|Z/,basicOptionalSeconds:/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,extended:/^([+-])(\d{2}):(\d{2})|Z/,extendedOptionalSeconds:/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/};function je(e,t){return e&&{value:t(e.value),rest:e.rest}}function ze(e,t){const n=t.match(e);return n?{value:parseInt(n[0],10),rest:t.slice(n[0].length)}:null}function Pt(e,t){const n=t.match(e);if(!n)return null;if(n[0]==="Z")return{value:0,rest:t.slice(1)};const a=n[1]==="+"?1:-1,r=n[2]?parseInt(n[2],10):0,l=n[3]?parseInt(n[3],10):0,o=n[5]?parseInt(n[5],10):0;return{value:a*(r*dr+l*Tl+o*Pl),rest:t.slice(n[0].length)}}function xr(e){return ze(Ue.anyDigitsSigned,e)}function Le(e,t){switch(e){case 1:return ze(Ue.singleDigit,t);case 2:return ze(Ue.twoDigits,t);case 3:return ze(Ue.threeDigits,t);case 4:return ze(Ue.fourDigits,t);default:return ze(new RegExp("^\\d{1,"+e+"}"),t)}}function Mr(e,t){switch(e){case 1:return ze(Ue.singleDigitSigned,t);case 2:return ze(Ue.twoDigitsSigned,t);case 3:return ze(Ue.threeDigitsSigned,t);case 4:return ze(Ue.fourDigitsSigned,t);default:return ze(new RegExp("^-?\\d{1,"+e+"}"),t)}}function kn(e){switch(e){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;default:return 0}}function Tr(e,t){const n=t>0,a=n?t:1-t;let r;if(a<=50)r=e||100;else{const l=a+50,o=Math.trunc(l/100)*100,c=e>=l%100;r=e+o-(c?100:0)}return n?r:1-r}function Pr(e){return e%400===0||e%4===0&&e%100!==0}class zo extends Ae{priority=130;incompatibleTokens=["Y","R","u","w","I","i","e","c","t","T"];parse(t,n,a){const r=l=>({year:l,isTwoDigitYear:n==="yy"});switch(n){case"y":return je(Le(4,t),r);case"yo":return je(a.ordinalNumber(t,{unit:"year"}),r);default:return je(Le(n.length,t),r)}}validate(t,n){return n.isTwoDigitYear||n.year>0}set(t,n,a){const r=t.getFullYear();if(a.isTwoDigitYear){const o=Tr(a.year,r);return t.setFullYear(o,0,1),t.setHours(0,0,0,0),t}const l=!("era"in n)||n.era===1?a.year:1-a.year;return t.setFullYear(l,0,1),t.setHours(0,0,0,0),t}}class Vo extends Ae{priority=130;parse(t,n,a){const r=l=>({year:l,isTwoDigitYear:n==="YY"});switch(n){case"Y":return je(Le(4,t),r);case"Yo":return je(a.ordinalNumber(t,{unit:"year"}),r);default:return je(Le(n.length,t),r)}}validate(t,n){return n.isTwoDigitYear||n.year>0}set(t,n,a,r){const l=wn(t,r);if(a.isTwoDigitYear){const c=Tr(a.year,l);return t.setFullYear(c,0,r.firstWeekContainsDate),t.setHours(0,0,0,0),Dt(t,r)}const o=!("era"in n)||n.era===1?a.year:1-a.year;return t.setFullYear(o,0,r.firstWeekContainsDate),t.setHours(0,0,0,0),Dt(t,r)}incompatibleTokens=["y","R","u","Q","q","M","L","I","d","D","i","t","T"]}class Lo extends Ae{priority=130;parse(t,n){return Mr(n==="R"?4:n.length,t)}set(t,n,a){const r=Ye(t,0);return r.setFullYear(a,0,4),r.setHours(0,0,0,0),oa(r)}incompatibleTokens=["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]}class Ho extends Ae{priority=130;parse(t,n){return Mr(n==="u"?4:n.length,t)}set(t,n,a){return t.setFullYear(a,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["G","y","Y","R","w","I","i","e","c","t","T"]}class Fo extends Ae{priority=120;parse(t,n,a){switch(n){case"Q":case"QQ":return Le(n.length,t);case"Qo":return a.ordinalNumber(t,{unit:"quarter"});case"QQQ":return a.quarter(t,{width:"abbreviated",context:"formatting"})||a.quarter(t,{width:"narrow",context:"formatting"});case"QQQQQ":return a.quarter(t,{width:"narrow",context:"formatting"});default:return a.quarter(t,{width:"wide",context:"formatting"})||a.quarter(t,{width:"abbreviated",context:"formatting"})||a.quarter(t,{width:"narrow",context:"formatting"})}}validate(t,n){return n>=1&&n<=4}set(t,n,a){return t.setMonth((a-1)*3,1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"]}class qo extends Ae{priority=120;parse(t,n,a){switch(n){case"q":case"qq":return Le(n.length,t);case"qo":return a.ordinalNumber(t,{unit:"quarter"});case"qqq":return a.quarter(t,{width:"abbreviated",context:"standalone"})||a.quarter(t,{width:"narrow",context:"standalone"});case"qqqqq":return a.quarter(t,{width:"narrow",context:"standalone"});default:return a.quarter(t,{width:"wide",context:"standalone"})||a.quarter(t,{width:"abbreviated",context:"standalone"})||a.quarter(t,{width:"narrow",context:"standalone"})}}validate(t,n){return n>=1&&n<=4}set(t,n,a){return t.setMonth((a-1)*3,1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"]}class Uo extends Ae{incompatibleTokens=["Y","R","q","Q","L","w","I","D","i","e","c","t","T"];priority=110;parse(t,n,a){const r=l=>l-1;switch(n){case"M":return je(ze(Ue.month,t),r);case"MM":return je(Le(2,t),r);case"Mo":return je(a.ordinalNumber(t,{unit:"month"}),r);case"MMM":return a.month(t,{width:"abbreviated",context:"formatting"})||a.month(t,{width:"narrow",context:"formatting"});case"MMMMM":return a.month(t,{width:"narrow",context:"formatting"});default:return a.month(t,{width:"wide",context:"formatting"})||a.month(t,{width:"abbreviated",context:"formatting"})||a.month(t,{width:"narrow",context:"formatting"})}}validate(t,n){return n>=0&&n<=11}set(t,n,a){return t.setMonth(a,1),t.setHours(0,0,0,0),t}}class jo extends Ae{priority=110;parse(t,n,a){const r=l=>l-1;switch(n){case"L":return je(ze(Ue.month,t),r);case"LL":return je(Le(2,t),r);case"Lo":return je(a.ordinalNumber(t,{unit:"month"}),r);case"LLL":return a.month(t,{width:"abbreviated",context:"standalone"})||a.month(t,{width:"narrow",context:"standalone"});case"LLLLL":return a.month(t,{width:"narrow",context:"standalone"});default:return a.month(t,{width:"wide",context:"standalone"})||a.month(t,{width:"abbreviated",context:"standalone"})||a.month(t,{width:"narrow",context:"standalone"})}}validate(t,n){return n>=0&&n<=11}set(t,n,a){return t.setMonth(a,1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","w","I","D","i","e","c","t","T"]}function Wo(e,t,n){const a=ye(e,n?.in),r=bn(a,n)-t;return a.setDate(a.getDate()-r*7),ye(a,n?.in)}class Xo extends Ae{priority=100;parse(t,n,a){switch(n){case"w":return ze(Ue.week,t);case"wo":return a.ordinalNumber(t,{unit:"week"});default:return Le(n.length,t)}}validate(t,n){return n>=1&&n<=53}set(t,n,a,r){return Dt(Wo(t,a,r),r)}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","i","t","T"]}function Go(e,t,n){const a=ye(e,n?.in),r=gn(a,n)-t;return a.setDate(a.getDate()-r*7),a}class Qo extends Ae{priority=100;parse(t,n,a){switch(n){case"I":return ze(Ue.week,t);case"Io":return a.ordinalNumber(t,{unit:"week"});default:return Le(n.length,t)}}validate(t,n){return n>=1&&n<=53}set(t,n,a){return oa(Go(t,a))}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"]}const Zo=[31,28,31,30,31,30,31,31,30,31,30,31],Ko=[31,29,31,30,31,30,31,31,30,31,30,31];class Jo extends Ae{priority=90;subPriority=1;parse(t,n,a){switch(n){case"d":return ze(Ue.date,t);case"do":return a.ordinalNumber(t,{unit:"date"});default:return Le(n.length,t)}}validate(t,n){const a=t.getFullYear(),r=Pr(a),l=t.getMonth();return r?n>=1&&n<=Ko[l]:n>=1&&n<=Zo[l]}set(t,n,a){return t.setDate(a),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","w","I","D","i","e","c","t","T"]}class ei extends Ae{priority=90;subpriority=1;parse(t,n,a){switch(n){case"D":case"DD":return ze(Ue.dayOfYear,t);case"Do":return a.ordinalNumber(t,{unit:"date"});default:return Le(n.length,t)}}validate(t,n){const a=t.getFullYear();return Pr(a)?n>=1&&n<=366:n>=1&&n<=365}set(t,n,a){return t.setMonth(0,a),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"]}function _n(e,t,n){const a=Qt(),r=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??a.weekStartsOn??a.locale?.options?.weekStartsOn??0,l=ye(e,n?.in),o=l.getDay(),c=(t%7+7)%7,s=7-r,x=t<0||t>6?t-(o+s)%7:(c+s)%7-(o+s)%7;return vt(l,x,n)}class ti extends Ae{priority=90;parse(t,n,a){switch(n){case"E":case"EE":case"EEE":return a.day(t,{width:"abbreviated",context:"formatting"})||a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"});case"EEEEE":return a.day(t,{width:"narrow",context:"formatting"});case"EEEEEE":return a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"});default:return a.day(t,{width:"wide",context:"formatting"})||a.day(t,{width:"abbreviated",context:"formatting"})||a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"})}}validate(t,n){return n>=0&&n<=6}set(t,n,a,r){return t=_n(t,a,r),t.setHours(0,0,0,0),t}incompatibleTokens=["D","i","e","c","t","T"]}class ai extends Ae{priority=90;parse(t,n,a,r){const l=o=>{const c=Math.floor((o-1)/7)*7;return(o+r.weekStartsOn+6)%7+c};switch(n){case"e":case"ee":return je(Le(n.length,t),l);case"eo":return je(a.ordinalNumber(t,{unit:"day"}),l);case"eee":return a.day(t,{width:"abbreviated",context:"formatting"})||a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"});case"eeeee":return a.day(t,{width:"narrow",context:"formatting"});case"eeeeee":return a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"});default:return a.day(t,{width:"wide",context:"formatting"})||a.day(t,{width:"abbreviated",context:"formatting"})||a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"})}}validate(t,n){return n>=0&&n<=6}set(t,n,a,r){return t=_n(t,a,r),t.setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"]}class ni extends Ae{priority=90;parse(t,n,a,r){const l=o=>{const c=Math.floor((o-1)/7)*7;return(o+r.weekStartsOn+6)%7+c};switch(n){case"c":case"cc":return je(Le(n.length,t),l);case"co":return je(a.ordinalNumber(t,{unit:"day"}),l);case"ccc":return a.day(t,{width:"abbreviated",context:"standalone"})||a.day(t,{width:"short",context:"standalone"})||a.day(t,{width:"narrow",context:"standalone"});case"ccccc":return a.day(t,{width:"narrow",context:"standalone"});case"cccccc":return a.day(t,{width:"short",context:"standalone"})||a.day(t,{width:"narrow",context:"standalone"});default:return a.day(t,{width:"wide",context:"standalone"})||a.day(t,{width:"abbreviated",context:"standalone"})||a.day(t,{width:"short",context:"standalone"})||a.day(t,{width:"narrow",context:"standalone"})}}validate(t,n){return n>=0&&n<=6}set(t,n,a,r){return t=_n(t,a,r),t.setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"]}function ri(e,t,n){const a=ye(e,n?.in),r=Yo(a,n),l=t-r;return vt(a,l,n)}class li extends Ae{priority=90;parse(t,n,a){const r=l=>l===0?7:l;switch(n){case"i":case"ii":return Le(n.length,t);case"io":return a.ordinalNumber(t,{unit:"day"});case"iii":return je(a.day(t,{width:"abbreviated",context:"formatting"})||a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"}),r);case"iiiii":return je(a.day(t,{width:"narrow",context:"formatting"}),r);case"iiiiii":return je(a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"}),r);default:return je(a.day(t,{width:"wide",context:"formatting"})||a.day(t,{width:"abbreviated",context:"formatting"})||a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"}),r)}}validate(t,n){return n>=1&&n<=7}set(t,n,a){return t=ri(t,a),t.setHours(0,0,0,0),t}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"]}class oi extends Ae{priority=80;parse(t,n,a){switch(n){case"a":case"aa":case"aaa":return a.dayPeriod(t,{width:"abbreviated",context:"formatting"})||a.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaaa":return a.dayPeriod(t,{width:"narrow",context:"formatting"});default:return a.dayPeriod(t,{width:"wide",context:"formatting"})||a.dayPeriod(t,{width:"abbreviated",context:"formatting"})||a.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,n,a){return t.setHours(kn(a),0,0,0),t}incompatibleTokens=["b","B","H","k","t","T"]}class ii extends Ae{priority=80;parse(t,n,a){switch(n){case"b":case"bb":case"bbb":return a.dayPeriod(t,{width:"abbreviated",context:"formatting"})||a.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbbb":return a.dayPeriod(t,{width:"narrow",context:"formatting"});default:return a.dayPeriod(t,{width:"wide",context:"formatting"})||a.dayPeriod(t,{width:"abbreviated",context:"formatting"})||a.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,n,a){return t.setHours(kn(a),0,0,0),t}incompatibleTokens=["a","B","H","k","t","T"]}class ui extends Ae{priority=80;parse(t,n,a){switch(n){case"B":case"BB":case"BBB":return a.dayPeriod(t,{width:"abbreviated",context:"formatting"})||a.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBBB":return a.dayPeriod(t,{width:"narrow",context:"formatting"});default:return a.dayPeriod(t,{width:"wide",context:"formatting"})||a.dayPeriod(t,{width:"abbreviated",context:"formatting"})||a.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,n,a){return t.setHours(kn(a),0,0,0),t}incompatibleTokens=["a","b","t","T"]}class si extends Ae{priority=70;parse(t,n,a){switch(n){case"h":return ze(Ue.hour12h,t);case"ho":return a.ordinalNumber(t,{unit:"hour"});default:return Le(n.length,t)}}validate(t,n){return n>=1&&n<=12}set(t,n,a){const r=t.getHours()>=12;return r&&a<12?t.setHours(a+12,0,0,0):!r&&a===12?t.setHours(0,0,0,0):t.setHours(a,0,0,0),t}incompatibleTokens=["H","K","k","t","T"]}class di extends Ae{priority=70;parse(t,n,a){switch(n){case"H":return ze(Ue.hour23h,t);case"Ho":return a.ordinalNumber(t,{unit:"hour"});default:return Le(n.length,t)}}validate(t,n){return n>=0&&n<=23}set(t,n,a){return t.setHours(a,0,0,0),t}incompatibleTokens=["a","b","h","K","k","t","T"]}class ci extends Ae{priority=70;parse(t,n,a){switch(n){case"K":return ze(Ue.hour11h,t);case"Ko":return a.ordinalNumber(t,{unit:"hour"});default:return Le(n.length,t)}}validate(t,n){return n>=0&&n<=11}set(t,n,a){return t.getHours()>=12&&a<12?t.setHours(a+12,0,0,0):t.setHours(a,0,0,0),t}incompatibleTokens=["h","H","k","t","T"]}class vi extends Ae{priority=70;parse(t,n,a){switch(n){case"k":return ze(Ue.hour24h,t);case"ko":return a.ordinalNumber(t,{unit:"hour"});default:return Le(n.length,t)}}validate(t,n){return n>=1&&n<=24}set(t,n,a){const r=a<=24?a%24:a;return t.setHours(r,0,0,0),t}incompatibleTokens=["a","b","h","H","K","t","T"]}class mi extends Ae{priority=60;parse(t,n,a){switch(n){case"m":return ze(Ue.minute,t);case"mo":return a.ordinalNumber(t,{unit:"minute"});default:return Le(n.length,t)}}validate(t,n){return n>=0&&n<=59}set(t,n,a){return t.setMinutes(a,0,0),t}incompatibleTokens=["t","T"]}class pi extends Ae{priority=50;parse(t,n,a){switch(n){case"s":return ze(Ue.second,t);case"so":return a.ordinalNumber(t,{unit:"second"});default:return Le(n.length,t)}}validate(t,n){return n>=0&&n<=59}set(t,n,a){return t.setSeconds(a,0),t}incompatibleTokens=["t","T"]}class hi extends Ae{priority=30;parse(t,n){const a=r=>Math.trunc(r*Math.pow(10,-n.length+3));return je(Le(n.length,t),a)}set(t,n,a){return t.setMilliseconds(a),t}incompatibleTokens=["t","T"]}class yi extends Ae{priority=10;parse(t,n){switch(n){case"X":return Pt(Tt.basicOptionalMinutes,t);case"XX":return Pt(Tt.basic,t);case"XXXX":return Pt(Tt.basicOptionalSeconds,t);case"XXXXX":return Pt(Tt.extendedOptionalSeconds,t);default:return Pt(Tt.extended,t)}}set(t,n,a){return n.timestampIsSet?t:Ye(t,t.getTime()-Ia(t)-a)}incompatibleTokens=["t","T","x"]}class fi extends Ae{priority=10;parse(t,n){switch(n){case"x":return Pt(Tt.basicOptionalMinutes,t);case"xx":return Pt(Tt.basic,t);case"xxxx":return Pt(Tt.basicOptionalSeconds,t);case"xxxxx":return Pt(Tt.extendedOptionalSeconds,t);default:return Pt(Tt.extended,t)}}set(t,n,a){return n.timestampIsSet?t:Ye(t,t.getTime()-Ia(t)-a)}incompatibleTokens=["t","T","X"]}class gi extends Ae{priority=40;parse(t){return xr(t)}set(t,n,a){return[Ye(t,a*1e3),{timestampIsSet:!0}]}incompatibleTokens="*"}class wi extends Ae{priority=20;parse(t){return xr(t)}set(t,n,a){return[Ye(t,a),{timestampIsSet:!0}]}incompatibleTokens="*"}const bi={G:new Eo,y:new zo,Y:new Vo,R:new Lo,u:new Ho,Q:new Fo,q:new qo,M:new Uo,L:new jo,w:new Xo,I:new Qo,d:new Jo,D:new ei,E:new ti,e:new ai,c:new ni,i:new li,a:new oi,b:new ii,B:new ui,h:new si,H:new di,K:new ci,k:new vi,m:new mi,s:new pi,S:new hi,X:new yi,x:new fi,t:new gi,T:new wi},ki=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,_i=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Di=/^'([^]*?)'?$/,xi=/''/g,Mi=/\S/,Ti=/[a-zA-Z]/;function vn(e,t,n,a){const r=()=>Ye(a?.in||n,NaN),l=Co(),o=a?.locale??l.locale??wr,c=a?.firstWeekContainsDate??a?.locale?.options?.firstWeekContainsDate??l.firstWeekContainsDate??l.locale?.options?.firstWeekContainsDate??1,s=a?.weekStartsOn??a?.locale?.options?.weekStartsOn??l.weekStartsOn??l.locale?.options?.weekStartsOn??0;if(!t)return e?r():ye(n,a?.in);const x={firstWeekContainsDate:c,weekStartsOn:s,locale:o},m=[new Bo(a?.in,n)],p=t.match(_i).map(T=>{const A=T[0];if(A in dn){const R=dn[A];return R(T,o.formatLong)}return T}).join("").match(ki),f=[];for(let T of p){!a?.useAdditionalWeekYearTokens&&_r(T)&&cn(T,t,e),!a?.useAdditionalDayOfYearTokens&&kr(T)&&cn(T,t,e);const A=T[0],R=bi[A];if(R){const{incompatibleTokens:_}=R;if(Array.isArray(_)){const j=f.find(I=>_.includes(I.token)||I.token===A);if(j)throw new RangeError(`The format string mustn't contain \`${j.fullToken}\` and \`${T}\` at the same time`)}else if(R.incompatibleTokens==="*"&&f.length>0)throw new RangeError(`The format string mustn't contain \`${T}\` and any other token at the same time`);f.push({token:A,fullToken:T});const B=R.run(e,T,o.match,x);if(!B)return r();m.push(B.setter),e=B.rest}else{if(A.match(Ti))throw new RangeError("Format string contains an unescaped latin alphabet character `"+A+"`");if(T==="''"?T="'":A==="'"&&(T=Pi(T)),e.indexOf(T)===0)e=e.slice(T.length);else return r()}}if(e.length>0&&Mi.test(e))return r();const k=m.map(T=>T.priority).sort((T,A)=>A-T).filter((T,A,R)=>R.indexOf(T)===A).map(T=>m.filter(A=>A.priority===T).sort((A,R)=>R.subPriority-A.subPriority)).map(T=>T[0]);let Y=ye(n,a?.in);if(isNaN(+Y))return r();const N={};for(const T of k){if(!T.validate(Y,x))return r();const A=T.set(Y,N,x);Array.isArray(A)?(Y=A[0],Object.assign(N,A[1])):Y=A}return Y}function Pi(e){return e.match(Di)[1].replace(xi,"'")}function Gn(e,t,n){const[a,r]=Ma(n?.in,e,t);return+na(a)==+na(r)}function Sr(e,t,n){return vt(e,-t,n)}function $r(e,t,n){const a=ye(e,n?.in),r=a.getFullYear(),l=a.getDate(),o=Ye(e,0);o.setFullYear(r,t,15),o.setHours(0,0,0,0);const c=Ao(o);return a.setMonth(t,Math.min(l,c)),a}function Re(e,t,n){let a=ye(e,n?.in);return isNaN(+a)?Ye(e,NaN):(t.year!=null&&a.setFullYear(t.year),t.month!=null&&(a=$r(a,t.month)),t.date!=null&&a.setDate(t.date),t.hours!=null&&a.setHours(t.hours),t.minutes!=null&&a.setMinutes(t.minutes),t.seconds!=null&&a.setSeconds(t.seconds),t.milliseconds!=null&&a.setMilliseconds(t.milliseconds),a)}function Si(e,t,n){const a=ye(e,n?.in);return a.setHours(t),a}function Ar(e,t,n){const a=ye(e,n?.in);return a.setMilliseconds(t),a}function $i(e,t,n){const a=ye(e,n?.in);return a.setMinutes(t),a}function Cr(e,t,n){const a=ye(e,n?.in);return a.setSeconds(t),a}function wt(e,t,n){const a=ye(e,n?.in);return isNaN(+a)?Ye(e,NaN):(a.setFullYear(t),a)}function sa(e,t,n){return kt(e,-t,n)}function Ai(e,t,n){const{years:a=0,months:r=0,weeks:l=0,days:o=0,hours:c=0,minutes:s=0,seconds:x=0}=t,m=sa(e,r+a*12,n),p=Sr(m,o+l*7,n),f=s+c*60,k=(x+f*60)*1e3;return Ye(e,+p-k)}function Yr(e,t,n){return fn(e,-t,n)}function pa(){const e=hl();return P(),q("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor","aria-hidden":"true",class:"dp__icon",role:"img",...e},[ge("path",{d:"M29.333 8c0-2.208-1.792-4-4-4h-18.667c-2.208 0-4 1.792-4 4v18.667c0 2.208 1.792 4 4 4h18.667c2.208 0 4-1.792 4-4v-18.667zM26.667 8v18.667c0 0.736-0.597 1.333-1.333 1.333 0 0-18.667 0-18.667 0-0.736 0-1.333-0.597-1.333-1.333 0 0 0-18.667 0-18.667 0-0.736 0.597-1.333 1.333-1.333 0 0 18.667 0 18.667 0 0.736 0 1.333 0.597 1.333 1.333z"}),ge("path",{d:"M20 2.667v5.333c0 0.736 0.597 1.333 1.333 1.333s1.333-0.597 1.333-1.333v-5.333c0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z"}),ge("path",{d:"M9.333 2.667v5.333c0 0.736 0.597 1.333 1.333 1.333s1.333-0.597 1.333-1.333v-5.333c0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z"}),ge("path",{d:"M4 14.667h24c0.736 0 1.333-0.597 1.333-1.333s-0.597-1.333-1.333-1.333h-24c-0.736 0-1.333 0.597-1.333 1.333s0.597 1.333 1.333 1.333z"})])}pa.compatConfig={MODE:3};function Rr(){return P(),q("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor","aria-hidden":"true",class:"dp__icon",role:"img"},[ge("path",{d:"M23.057 7.057l-16 16c-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0l16-16c0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0z"}),ge("path",{d:"M7.057 8.943l16 16c0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885l-16-16c-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885z"})])}Rr.compatConfig={MODE:3};function Dn(){return P(),q("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor","aria-hidden":"true",class:"dp__icon",role:"img"},[ge("path",{d:"M20.943 23.057l-7.057-7.057c0 0 7.057-7.057 7.057-7.057 0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0l-8 8c-0.521 0.521-0.521 1.365 0 1.885l8 8c0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885z"})])}Dn.compatConfig={MODE:3};function xn(){return P(),q("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor","aria-hidden":"true",class:"dp__icon",role:"img"},[ge("path",{d:"M12.943 24.943l8-8c0.521-0.521 0.521-1.365 0-1.885l-8-8c-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885l7.057 7.057c0 0-7.057 7.057-7.057 7.057-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0z"})])}xn.compatConfig={MODE:3};function Mn(){return P(),q("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor","aria-hidden":"true",class:"dp__icon",role:"img"},[ge("path",{d:"M16 1.333c-8.095 0-14.667 6.572-14.667 14.667s6.572 14.667 14.667 14.667c8.095 0 14.667-6.572 14.667-14.667s-6.572-14.667-14.667-14.667zM16 4c6.623 0 12 5.377 12 12s-5.377 12-12 12c-6.623 0-12-5.377-12-12s5.377-12 12-12z"}),ge("path",{d:"M14.667 8v8c0 0.505 0.285 0.967 0.737 1.193l5.333 2.667c0.658 0.329 1.46 0.062 1.789-0.596s0.062-1.46-0.596-1.789l-4.596-2.298c0 0 0-7.176 0-7.176 0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z"})])}Mn.compatConfig={MODE:3};function Tn(){return P(),q("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor","aria-hidden":"true",class:"dp__icon",role:"img"},[ge("path",{d:"M24.943 19.057l-8-8c-0.521-0.521-1.365-0.521-1.885 0l-8 8c-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0l7.057-7.057c0 0 7.057 7.057 7.057 7.057 0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885z"})])}Tn.compatConfig={MODE:3};function Pn(){return P(),q("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor","aria-hidden":"true",class:"dp__icon",role:"img"},[ge("path",{d:"M7.057 12.943l8 8c0.521 0.521 1.365 0.521 1.885 0l8-8c0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0l-7.057 7.057c0 0-7.057-7.057-7.057-7.057-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885z"})])}Pn.compatConfig={MODE:3};const st=(e,t)=>t?new Date(e.toLocaleString("en-US",{timeZone:t})):new Date(e),Sn=(e,t,n)=>mn(e,t,n)||U(),Ci=(e,t,n)=>{const a=t.dateInTz?st(new Date(e),t.dateInTz):U(e);return n?Ge(a,!0):a},mn=(e,t,n)=>{if(!e)return null;const a=n?Ge(U(e),!0):U(e);return t?t.exactMatch?Ci(e,t,n):st(a,t.timezone):a},Yi=e=>{const t=new Date(e.getFullYear(),0,1).getTimezoneOffset();return e.getTimezoneOffset(){if(!e)return 0;const n=new Date,a=new Date(n.toLocaleString("en-US",{timeZone:"UTC"})),r=new Date(n.toLocaleString("en-US",{timeZone:e})),l=(Yi(t??r)?r:t??r).getTimezoneOffset()/60;return(+a-+r)/(1e3*60*60)-l};var ft=(e=>(e.month="month",e.year="year",e))(ft||{}),gt=(e=>(e.top="top",e.bottom="bottom",e))(gt||{}),jt=(e=>(e.header="header",e.calendar="calendar",e.timePicker="timePicker",e))(jt||{}),rt=(e=>(e.month="month",e.year="year",e.calendar="calendar",e.time="time",e.minutes="minutes",e.hours="hours",e.seconds="seconds",e))(rt||{});const Ii=["timestamp","date","iso"];var lt=(e=>(e.up="up",e.down="down",e.left="left",e.right="right",e))(lt||{}),Ne=(e=>(e.arrowUp="ArrowUp",e.arrowDown="ArrowDown",e.arrowLeft="ArrowLeft",e.arrowRight="ArrowRight",e.enter="Enter",e.space=" ",e.esc="Escape",e.tab="Tab",e.home="Home",e.end="End",e.pageUp="PageUp",e.pageDown="PageDown",e))(Ne||{}),la=(e=>(e.MONTH_AND_YEAR="MM-yyyy",e.YEAR="yyyy",e.DATE="dd-MM-yyyy",e))(la||{});function Qn(e){return t=>{const n=new Intl.DateTimeFormat(e,{weekday:"short",timeZone:"UTC"}).format(new Date(`2017-01-0${t}T00:00:00+00:00`));return e==="ar"?n.slice(2,5):n.slice(0,2)}}function Ni(e){return t=>St(st(new Date(`2017-01-0${t}T00:00:00+00:00`),"UTC"),"EEEEEE",{locale:e})}const Oi=(e,t,n)=>{const a=[1,2,3,4,5,6,7];let r;if(e!==null)try{r=a.map(Ni(e))}catch{r=a.map(Qn(t))}else r=a.map(Qn(t));const l=r.slice(0,n),o=r.slice(n+1,r.length);return[r[n]].concat(...o).concat(...l)},$n=(e,t,n)=>{const a=[];for(let r=+e[0];r<=+e[1];r++)a.push({value:+r,text:Cn(r,t)});return n?a.reverse():a},Ir=(e,t,n)=>{const a=[1,2,3,4,5,6,7,8,9,10,11,12].map(l=>{const o=l<10?`0${l}`:l;return new Date(`2017-${o}-01T00:00:00+00:00`)});if(e!==null)try{const l=n==="long"?"LLLL":"LLL";return a.map((o,c)=>{const s=St(st(o,"UTC"),l,{locale:e});return{text:s.charAt(0).toUpperCase()+s.substring(1),value:c}})}catch{}const r=new Intl.DateTimeFormat(t,{month:n,timeZone:"UTC"});return a.map((l,o)=>{const c=r.format(l);return{text:c.charAt(0).toUpperCase()+c.substring(1),value:o}})},Bi=e=>[12,1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,4,5,6,7,8,9,10,11][e],We=e=>{const t=u(e);return t?.$el?t?.$el:t},Ei=e=>({type:"dot",...e??{}}),Nr=e=>Array.isArray(e)?!!e[0]&&!!e[1]:!1,An={prop:e=>`"${e}" prop must be enabled!`,dateArr:e=>`You need to use array as "model-value" binding in order to support "${e}"`},Ze=e=>e,Zn=e=>e===0?e:!e||isNaN(+e)?null:+e,Kn=e=>e===null,Or=e=>{if(e)return[...e.querySelectorAll("input, button, select, textarea, a[href]")][0]},zi=e=>{const t=[],n=a=>a.filter(r=>r);for(let a=0;a{const a=n!=null,r=t!=null;if(!a&&!r)return!1;const l=+n,o=+t;return a&&r?+e>l||+el:r?+ezi(e).map(n=>n.map(a=>{const{active:r,disabled:l,isBetween:o,highlighted:c}=t(a);return{...a,active:r,disabled:l,className:{dp__overlay_cell_active:r,dp__overlay_cell:!r,dp__overlay_cell_disabled:l,dp__overlay_cell_pad:!0,dp__overlay_cell_active_disabled:l&&r,dp__cell_in_between:o,"dp--highlighted":c}}})),Et=(e,t,n=!1)=>{e&&t.allowStopPropagation&&(n&&e.stopImmediatePropagation(),e.stopPropagation())},Vi=()=>["a[href]","area[href]","input:not([disabled]):not([type='hidden'])","select:not([disabled])","textarea:not([disabled])","button:not([disabled])","[tabindex]:not([tabindex='-1'])","[data-datepicker-instance]"].join(", ");function Li(e,t){let n=[...document.querySelectorAll(Vi())];n=n.filter(r=>!e.contains(r)||r.hasAttribute("data-datepicker-instance"));const a=n.indexOf(e);if(a>=0&&(t?a-1>=0:a+1<=n.length))return n[a+(t?-1:1)]}const pn=(e,t)=>e?.querySelector(`[data-dp-element="${t}"]`),Cn=(e,t)=>new Intl.NumberFormat(t,{useGrouping:!1,style:"decimal"}).format(e),Yn=(e,t)=>St(e,t??la.DATE),Za=e=>Array.isArray(e),Na=(e,t,n)=>t.get(Yn(e,n)),Hi=(e,t)=>e?t?t instanceof Map?!!Na(e,t):t(U(e)):!1:!0,ot=(e,t,n=!1,a)=>{if(e.key===Ne.enter||e.key===Ne.space)return n&&e.preventDefault(),t();if(a)return a(e)},Fi=()=>"ontouchstart"in window||navigator.maxTouchPoints>0,Br=(e,t)=>e?la.MONTH_AND_YEAR:t?la.YEAR:la.DATE,Er=e=>e<10?`0${e}`:e,Jn=(e,t,n,a,r,l)=>{const o=vn(e,t.slice(0,e.length),new Date,{locale:l});return ga(o)&&pr(o)?a||r?o:Re(o,{hours:+n.hours,minutes:+n?.minutes,seconds:+n?.seconds,milliseconds:0}):null},qi=(e,t,n,a,r,l)=>{const o=Array.isArray(n)?n[0]:n;if(typeof t=="string")return Jn(e,t,o,a,r,l);if(Array.isArray(t)){let c=null;for(const s of t)if(c=Jn(e,s,o,a,r,l),c)break;return c}return typeof t=="function"?t(e):null},U=e=>e?new Date(e):new Date,Ui=(e,t,n)=>{if(t){const r=(e.getMonth()+1).toString().padStart(2,"0"),l=e.getDate().toString().padStart(2,"0"),o=e.getHours().toString().padStart(2,"0"),c=e.getMinutes().toString().padStart(2,"0"),s=n?e.getSeconds().toString().padStart(2,"0"):"00";return`${e.getFullYear()}-${r}-${l}T${o}:${c}:${s}.000Z`}const a=Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds());return new Date(a).toISOString()},Ge=(e,t)=>{const n=U(JSON.parse(JSON.stringify(e))),a=Re(n,{hours:0,minutes:0,seconds:0,milliseconds:0});return t?Ol(a):a},zt=(e,t,n,a)=>{let r=e?U(e):U();return(t||t===0)&&(r=Si(r,+t)),(n||n===0)&&(r=$i(r,+n)),(a||a===0)&&(r=Cr(r,+a)),Ar(r,0)},Ve=(e,t)=>!e||!t?!1:ua(Ge(e),Ge(t)),Pe=(e,t)=>!e||!t?!1:aa(Ge(e),Ge(t)),qe=(e,t)=>!e||!t?!1:Xt(Ge(e),Ge(t)),Da=(e,t,n)=>e?.[0]&&e?.[1]?qe(n,e[0])&&Ve(n,e[1]):e?.[0]&&t?qe(n,e[0])&&Ve(n,t)||Ve(n,e[0])&&qe(n,t):!1,bt=e=>{const t=Re(new Date(e),{date:1});return Ge(t)},Ka=(e,t,n)=>t&&(n||n===0)?Object.fromEntries(["hours","minutes","seconds"].map(a=>a===t?[a,n]:[a,isNaN(+e[a])?void 0:+e[a]])):{hours:isNaN(+e.hours)?void 0:+e.hours,minutes:isNaN(+e.minutes)?void 0:+e.minutes,seconds:isNaN(+e.seconds)?void 0:+e.seconds},Wt=e=>({hours:Yt(e),minutes:Vt(e),seconds:ia(e)}),zr=(e,t)=>{if(t){const n=be(U(t));if(n>e)return 12;if(n===e)return Te(U(t))}},Vr=(e,t)=>{if(t){const n=be(U(t));return n{if(e)return be(U(e))},Lr=(e,t)=>{const n=qe(e,t)?t:e,a=qe(t,e)?t:e;return yr({start:n,end:a})},ji=e=>{const t=kt(e,1);return{month:Te(t),year:be(t)}},At=(e,t)=>{const n=Dt(e,{weekStartsOn:+t}),a=gr(e,{weekStartsOn:+t});return[n,a]},Hr=(e,t)=>{const n={hours:Yt(U()),minutes:Vt(U()),seconds:t?ia(U()):0};return Object.assign(n,e)},Bt=(e,t,n)=>[Re(U(e),{date:1}),Re(U(),{month:t,year:n,date:1})],Ct=(e,t,n)=>{let a=e?U(e):U();return(t||t===0)&&(a=$r(a,t)),n&&(a=wt(a,n)),a},Fr=(e,t,n,a,r)=>{if(!a||r&&!t||!r&&!n)return!1;const l=r?kt(e,1):sa(e,1),o=[Te(l),be(l)];return r?!Xi(...o,t):!Wi(...o,n)},Wi=(e,t,n)=>Ve(...Bt(n,e,t))||Pe(...Bt(n,e,t)),Xi=(e,t,n)=>qe(...Bt(n,e,t))||Pe(...Bt(n,e,t)),qr=(e,t,n,a,r,l,o)=>{if(typeof t=="function"&&!o)return t(e);const c=n?{locale:n}:void 0;return Array.isArray(e)?`${St(e[0],l,c)}${r&&!e[1]?"":a}${e[1]?St(e[1],l,c):""}`:St(e,l,c)},ea=e=>{if(e)return null;throw new Error(An.prop("partial-range"))},Aa=(e,t)=>{if(t)return e();throw new Error(An.prop("range"))},hn=e=>Array.isArray(e)?ga(e[0])&&(e[1]?ga(e[1]):!0):e?ga(e):!1,Gi=(e,t)=>Re(t??U(),{hours:+e.hours||0,minutes:+e.minutes||0,seconds:+e.seconds||0}),Ja=(e,t,n,a)=>{if(!e)return!0;if(a){const r=n==="max"?ua(e,t):Xt(e,t),l={seconds:0,milliseconds:0};return r||aa(Re(e,l),Re(t,l))}return n==="max"?e.getTime()<=t.getTime():e.getTime()>=t.getTime()},en=(e,t,n)=>e?Gi(e,t):U(n??t),er=(e,t,n,a,r)=>{if(Array.isArray(a)){const o=en(e,a[0],t),c=en(e,a[1],t);return Ja(a[0],o,n,!!t)&&Ja(a[1],c,n,!!t)&&r}const l=en(e,a,t);return Ja(a,l,n,!!t)&&r},tn=e=>Re(U(),Wt(e)),Qi=(e,t,n)=>{if(e instanceof Map){const a=`${Er(n+1)}-${t}`;return e.size?e.has(a):!1}return typeof e=="function"?e(Ge(Re(U(),{month:n,year:t}),!0)):!1},Zi=(e,t,n)=>{if(e instanceof Map){const a=`${Er(n+1)}-${t}`;return e.size?e.has(a):!0}return!0},Ur=(e,t,n)=>typeof e=="function"?e({month:t,year:n}):!!e.months.find(a=>a.month===t&&a.year===n),Rn=(e,t)=>typeof e=="function"?e(t):e.years.includes(t),yn=e=>`dp-${St(e,"yyyy-MM-dd")}`,tr=(e,t)=>{const n=Sr(Ge(t),e),a=vt(Ge(t),e);return{before:n,after:a}},jr=(e,t)=>t<+e[0]||t>+e[1],fa=xa({menuFocused:!1,shiftKeyInMenu:!1}),Wr=()=>{const e=n=>{fa.menuFocused=n},t=n=>{fa.shiftKeyInMenu!==n&&(fa.shiftKeyInMenu=n)};return{control:H(()=>({shiftKeyInMenu:fa.shiftKeyInMenu,menuFocused:fa.menuFocused})),setMenuFocused:e,setShiftKey:t}},Ie=xa({monthYear:[],calendar:[],time:[],actionRow:[],selectionGrid:[],timePicker:{0:[],1:[]},monthPicker:[]}),an=Z(null),Ca=Z(!1),nn=Z(!1),rn=Z(!1),ln=Z(!1),nt=Z(0),Fe=Z(0),Lt=()=>{const e=H(()=>Ca.value?[...Ie.selectionGrid,Ie.actionRow].filter(p=>p.length):nn.value?[...Ie.timePicker[0],...Ie.timePicker[1],ln.value?[]:[an.value],Ie.actionRow].filter(p=>p.length):rn.value?[...Ie.monthPicker,Ie.actionRow]:[Ie.monthYear,...Ie.calendar,Ie.time,Ie.actionRow].filter(p=>p.length)),t=p=>{nt.value=p?nt.value+1:nt.value-1;let f=null;e.value[Fe.value]&&(f=e.value[Fe.value][nt.value]),!f&&e.value[Fe.value+(p?1:-1)]?(Fe.value=Fe.value+(p?1:-1),nt.value=p?0:e.value[Fe.value].length-1):f||(nt.value=p?nt.value-1:nt.value+1)},n=p=>{Fe.value===0&&!p||Fe.value===e.value.length&&p||(Fe.value=p?Fe.value+1:Fe.value-1,e.value[Fe.value]?e.value[Fe.value]&&!e.value[Fe.value][nt.value]&&nt.value!==0&&(nt.value=e.value[Fe.value].length-1):Fe.value=p?Fe.value-1:Fe.value+1)},a=p=>{let f=null;e.value[Fe.value]&&(f=e.value[Fe.value][nt.value]),f?f.focus({preventScroll:!Ca.value}):nt.value=p?nt.value-1:nt.value+1},r=()=>{t(!0),a(!0)},l=()=>{t(!1),a(!1)},o=()=>{n(!1),a(!0)},c=()=>{n(!0),a(!0)},s=(p,f)=>{Ie[f]=p},x=(p,f)=>{Ie[f]=p},m=()=>{nt.value=0,Fe.value=0};return{buildMatrix:s,buildMultiLevelMatrix:x,setTimePickerBackRef:p=>{an.value=p},setSelectionGrid:p=>{Ca.value=p,m(),p||(Ie.selectionGrid=[])},setTimePicker:(p,f=!1)=>{nn.value=p,ln.value=f,m(),p||(Ie.timePicker[0]=[],Ie.timePicker[1]=[])},setTimePickerElements:(p,f=0)=>{Ie.timePicker[f]=p},arrowRight:r,arrowLeft:l,arrowUp:o,arrowDown:c,clearArrowNav:()=>{Ie.monthYear=[],Ie.calendar=[],Ie.time=[],Ie.actionRow=[],Ie.selectionGrid=[],Ie.timePicker[0]=[],Ie.timePicker[1]=[],Ca.value=!1,nn.value=!1,ln.value=!1,rn.value=!1,m(),an.value=null},setMonthPicker:p=>{rn.value=p,m()},refSets:Ie}},ar=e=>({menuAppearTop:"dp-menu-appear-top",menuAppearBottom:"dp-menu-appear-bottom",open:"dp-slide-down",close:"dp-slide-up",next:"calendar-next",previous:"calendar-prev",vNext:"dp-slide-up",vPrevious:"dp-slide-down",...e??{}}),Ki=e=>({toggleOverlay:"Toggle overlay",menu:"Datepicker menu",input:"Datepicker input",openTimePicker:"Open time picker",closeTimePicker:"Close time Picker",incrementValue:t=>`Increment ${t}`,decrementValue:t=>`Decrement ${t}`,openTpOverlay:t=>`Open ${t} overlay`,amPmButton:"Switch AM/PM mode",openYearsOverlay:"Open years overlay",openMonthsOverlay:"Open months overlay",nextMonth:"Next month",prevMonth:"Previous month",nextYear:"Next year",prevYear:"Previous year",day:void 0,weekDay:void 0,clearInput:"Clear value",calendarIcon:"Calendar icon",timePicker:"Time picker",monthPicker:t=>`Month picker${t?" overlay":""}`,yearPicker:t=>`Year picker${t?" overlay":""}`,timeOverlay:t=>`${t} overlay`,...e??{}}),nr=e=>e?typeof e=="boolean"?e?2:0:+e>=2?+e:2:0,Ji=e=>{const t=typeof e=="object"&&e,n={static:!0,solo:!1};if(!e)return{...n,count:nr(!1)};const a=t?e:{},r=t?a.count??!0:e,l=nr(r);return Object.assign(n,a,{count:l})},eu=(e,t,n)=>e||(typeof n=="string"?n:t),tu=e=>typeof e=="boolean"?e?ar({}):!1:ar(e),au=e=>{const t={enterSubmit:!0,tabSubmit:!0,openMenu:"open",selectOnFocus:!1,rangeSeparator:" - ",escClose:!0};return typeof e=="object"?{...t,...e??{},enabled:!0}:{...t,enabled:e}},nu=e=>({months:[],years:[],times:{hours:[],minutes:[],seconds:[]},...e??{}}),ru=e=>({showSelect:!0,showCancel:!0,showNow:!1,showPreview:!0,...e??{}}),lu=e=>{const t={input:!1};return typeof e=="object"?{...t,...e??{},enabled:!0}:{enabled:e,...t}},ou=e=>({allowStopPropagation:!0,closeOnScroll:!1,modeHeight:255,allowPreventDefault:!1,closeOnClearValue:!0,closeOnAutoApply:!0,noSwipe:!1,keepActionRow:!1,onClickOutside:void 0,tabOutClosesMenu:!0,arrowLeft:void 0,keepViewOnOffsetClick:!1,timeArrowHoldThreshold:0,shadowDom:!1,mobileBreakpoint:600,setDateOnMenuClose:!1,...e??{}}),iu=e=>{const t={dates:Array.isArray(e)?e.map(n=>U(n)):[],years:[],months:[],quarters:[],weeks:[],weekdays:[],options:{highlightDisabled:!1}};return typeof e=="function"?e:{...t,...e??{}}},uu=e=>typeof e=="object"?{type:e?.type??"local",hideOnOffsetDates:e?.hideOnOffsetDates??!1}:{type:e,hideOnOffsetDates:!1},su=e=>{const t={noDisabledRange:!1,showLastInRange:!0,minMaxRawRange:!1,partialRange:!0,disableTimeRangeValidation:!1,maxRange:void 0,minRange:void 0,autoRange:void 0,fixedStart:!1,fixedEnd:!1};return typeof e=="object"?{enabled:!0,...t,...e}:{enabled:e,...t}},du=e=>e?typeof e=="string"?{timezone:e,exactMatch:!1,dateInTz:void 0,emitTimezone:void 0,convertModel:!0}:{timezone:e.timezone,exactMatch:e.exactMatch??!1,dateInTz:e.dateInTz??void 0,emitTimezone:e.emitTimezone??void 0,convertModel:e.convertModel??!0}:{timezone:void 0,exactMatch:!1,emitTimezone:void 0},on=(e,t,n,a)=>new Map(e.map(r=>{const l=Sn(r,t,a);return[Yn(l,n),l]})),cu=(e,t)=>e.length?new Map(e.map(n=>{const a=Sn(n.date,t);return[Yn(a,la.DATE),n]})):null,vu=e=>{const t=Br(e.isMonthPicker,e.isYearPicker);return{minDate:mn(e.minDate,e.timezone,e.isSpecific),maxDate:mn(e.maxDate,e.timezone,e.isSpecific),disabledDates:Za(e.disabledDates)?on(e.disabledDates,e.timezone,t,e.isSpecific):e.disabledDates,allowedDates:Za(e.allowedDates)?on(e.allowedDates,e.timezone,t,e.isSpecific):null,highlight:typeof e.highlight=="object"&&Za(e.highlight?.dates)?on(e.highlight.dates,e.timezone,t):e.highlight,markers:cu(e.markers,e.timezone)}},mu=e=>typeof e=="boolean"?{enabled:e,dragSelect:!0,limit:null}:{enabled:!!e,limit:e.limit?+e.limit:null,dragSelect:e.dragSelect??!0},pu=e=>({...Object.fromEntries(Object.keys(e).map(t=>{const n=t,a=e[n],r=typeof e[n]=="string"?{[a]:!0}:Object.fromEntries(a.map(l=>[l,!0]));return[t,r]}))}),Ee=e=>{const t=()=>{const I=e.enableSeconds?":ss":"",y=e.enableMinutes?":mm":"";return e.is24?`HH${y}${I}`:`hh${y}${I} aa`},n=()=>e.format?e.format:e.monthPicker?"MM/yyyy":e.timePicker?t():e.weekPicker?`${T.value?.type==="iso"?"II":"ww"}-RR`:e.yearPicker?"yyyy":e.quarterPicker?"QQQ/yyyy":e.enableTimePicker?`MM/dd/yyyy, ${t()}`:"MM/dd/yyyy",a=I=>Hr(I,e.enableSeconds),r=()=>B.value.enabled?e.startTime&&Array.isArray(e.startTime)?[a(e.startTime[0]),a(e.startTime[1])]:null:e.startTime&&!Array.isArray(e.startTime)?a(e.startTime):null,l=H(()=>Ji(e.multiCalendars)),o=H(()=>r()),c=H(()=>Ki(e.ariaLabels)),s=H(()=>nu(e.filters)),x=H(()=>tu(e.transitions)),m=H(()=>ru(e.actionRow)),p=H(()=>eu(e.previewFormat,e.format,n())),f=H(()=>au(e.textInput)),k=H(()=>lu(e.inline)),Y=H(()=>ou(e.config)),N=H(()=>iu(e.highlight)),T=H(()=>uu(e.weekNumbers)),A=H(()=>du(e.timezone)),R=H(()=>mu(e.multiDates)),_=H(()=>vu({minDate:e.minDate,maxDate:e.maxDate,disabledDates:e.disabledDates,allowedDates:e.allowedDates,highlight:N.value,markers:e.markers,timezone:A.value,isSpecific:e.monthPicker||e.yearPicker||e.quarterPicker,isMonthPicker:e.monthPicker,isYearPicker:e.yearPicker})),B=H(()=>su(e.range)),j=H(()=>pu(e.ui));return{defaultedTransitions:x,defaultedMultiCalendars:l,defaultedStartTime:o,defaultedAriaLabels:c,defaultedFilters:s,defaultedActionRow:m,defaultedPreviewFormat:p,defaultedTextInput:f,defaultedInline:k,defaultedConfig:Y,defaultedHighlight:N,defaultedWeekNumbers:T,defaultedRange:B,propDates:_,defaultedTz:A,defaultedMultiDates:R,defaultedUI:j,getDefaultPattern:n,getDefaultStartTime:r,handleEventPropagation:I=>{Y.value.allowStopPropagation&&I.stopPropagation(),Y.value.allowPreventDefault&&I.preventDefault()}}},hu=(e,t,{isInputFocused:n,isTextInputDate:a})=>{const r=Z(),{defaultedTextInput:l,defaultedRange:o,defaultedTz:c,defaultedMultiDates:s,getDefaultPattern:x}=Ee(t),m=Z(""),p=ba(t,"format"),f=ba(t,"formatLocale");pt(r,()=>{typeof t.onInternalModelChange=="function"&&e("internal-model-change",r.value,v(!0))},{deep:!0}),pt(o,(d,X)=>{d.enabled!==X.enabled&&(r.value=null)}),pt(p,()=>{E()});const k=d=>c.value.timezone&&c.value.convertModel?st(d,c.value.timezone):d,Y=d=>{if(c.value.timezone&&c.value.convertModel){const X=Ri(c.value.timezone,d);return $l(d,X)}return d},N=(d,X,$e=!1)=>qr(d,t.format,t.formatLocale,l.value.rangeSeparator,t.modelAuto,X??x(),$e),T=d=>d?t.modelType?S(d):{hours:Yt(d),minutes:Vt(d),seconds:t.enableSeconds?ia(d):0}:null,A=d=>t.modelType?S(d):{month:Te(d),year:be(d)},R=d=>Array.isArray(d)?s.value.enabled?d.map(X=>_(X,wt(U(),X))):Aa(()=>[wt(U(),d[0]),d[1]?wt(U(),d[1]):ea(o.value.partialRange)],o.value.enabled):wt(U(),+d),_=(d,X)=>(typeof d=="string"||typeof d=="number")&&t.modelType?J(d):X,B=d=>Array.isArray(d)?[_(d[0],zt(null,+d[0].hours,+d[0].minutes,d[0].seconds)),_(d[1],zt(null,+d[1].hours,+d[1].minutes,d[1].seconds))]:_(d,zt(null,d.hours,d.minutes,d.seconds)),j=d=>{const X=Re(U(),{date:1});return Array.isArray(d)?s.value.enabled?d.map($e=>_($e,Ct(X,+$e.month,+$e.year))):Aa(()=>[_(d[0],Ct(X,+d[0].month,+d[0].year)),_(d[1],d[1]?Ct(X,+d[1].month,+d[1].year):ea(o.value.partialRange))],o.value.enabled):_(d,Ct(X,+d.month,+d.year))},I=d=>{if(Array.isArray(d))return d.map(X=>J(X));throw new Error(An.dateArr("multi-dates"))},y=d=>{if(Array.isArray(d)&&o.value.enabled){const X=d[0],$e=d[1];return[U(Array.isArray(X)?X[0]:null),Array.isArray($e)&&$e.length?U($e[0]):null]}return U(d[0])},V=d=>t.modelAuto?Array.isArray(d)?[J(d[0]),J(d[1])]:t.autoApply?[J(d)]:[J(d),null]:Array.isArray(d)?Aa(()=>d[1]?[J(d[0]),d[1]?J(d[1]):ea(o.value.partialRange)]:[J(d[0])],o.value.enabled):J(d),L=()=>{Array.isArray(r.value)&&o.value.enabled&&r.value.length===1&&r.value.push(ea(o.value.partialRange))},z=()=>{const d=r.value;return[S(d[0]),d[1]?S(d[1]):ea(o.value.partialRange)]},ne=()=>Array.isArray(r.value)?r.value[1]?z():S(Ze(r.value[0])):[],se=()=>(r.value||[]).map(d=>S(d)),fe=(d=!1)=>(d||L(),t.modelAuto?ne():s.value.enabled?se():Array.isArray(r.value)?Aa(()=>z(),o.value.enabled):S(Ze(r.value))),g=d=>!d||Array.isArray(d)&&!d.length?null:t.timePicker?B(Ze(d)):t.monthPicker?j(Ze(d)):t.yearPicker?R(Ze(d)):s.value.enabled?I(Ze(d)):t.weekPicker?y(Ze(d)):V(Ze(d)),D=d=>{if(a.value)return;const X=g(d);hn(Ze(X))?(r.value=Ze(X),E()):(r.value=null,m.value="")},w=()=>{const d=X=>St(X,l.value.format);return`${d(r.value[0])} ${l.value.rangeSeparator} ${r.value[1]?d(r.value[1]):""}`},F=()=>n.value&&r.value?Array.isArray(r.value)?w():St(r.value,l.value.format):N(r.value),te=()=>r.value?s.value.enabled?r.value.map(d=>N(d)).join("; "):l.value.enabled&&typeof l.value.format=="string"?F():N(r.value):"",E=()=>{!t.format||typeof t.format=="string"||l.value.enabled&&typeof l.value.format=="string"?m.value=te():m.value=t.format(r.value)},J=d=>{if(t.utc){const X=new Date(d);return t.utc==="preserve"?new Date(X.getTime()+X.getTimezoneOffset()*6e4):X}return t.modelType?Ii.includes(t.modelType)?k(new Date(d)):t.modelType==="format"&&(typeof t.format=="string"||!t.format)?k(vn(d,x(),new Date,{locale:f.value})):k(vn(d,t.modelType,new Date,{locale:f.value})):k(new Date(d))},S=d=>d?t.utc?Ui(d,t.utc==="preserve",t.enableSeconds):t.modelType?t.modelType==="timestamp"?+Y(d):t.modelType==="iso"?Y(d).toISOString():t.modelType==="format"&&(typeof t.format=="string"||!t.format)?N(Y(d)):N(Y(d),t.modelType,!0):Y(d):"",ue=(d,X=!1,$e=!1)=>{if($e)return d;if(e("update:model-value",d),c.value.emitTimezone&&X){const G=Array.isArray(d)?d.map(ke=>st(Ze(ke),c.value.emitTimezone)):st(Ze(d),c.value.emitTimezone);e("update:model-timezone-value",G)}},h=d=>Array.isArray(r.value)?s.value.enabled?r.value.map(X=>d(X)):[d(r.value[0]),r.value[1]?d(r.value[1]):ea(o.value.partialRange)]:d(Ze(r.value)),O=()=>{if(Array.isArray(r.value)){const d=At(r.value[0],t.weekStart),X=r.value[1]?At(r.value[1],t.weekStart):[];return[d.map($e=>U($e)),X.map($e=>U($e))]}return At(r.value,t.weekStart).map(d=>U(d))},M=(d,X)=>ue(Ze(h(d)),!1,X),re=d=>{const X=O();return d?X:e("update:model-value",O())},v=(d=!1)=>(d||E(),t.monthPicker?M(A,d):t.timePicker?M(T,d):t.yearPicker?M(be,d):t.weekPicker?re(d):ue(fe(d),!0,d));return{inputValue:m,internalModelValue:r,checkBeforeEmit:()=>r.value?o.value.enabled?o.value.partialRange?r.value.length>=1:r.value.length===2:!!r.value:!1,parseExternalModelValue:D,formatInputValue:E,emitModelValue:v}},yu=(e,t)=>{const{defaultedFilters:n,propDates:a}=Ee(e),{validateMonthYearInRange:r}=Ht(e),l=(m,p)=>{let f=m;return n.value.months.includes(Te(f))?(f=p?kt(m,1):sa(m,1),l(f,p)):f},o=(m,p)=>{let f=m;return n.value.years.includes(be(f))?(f=p?fn(m,1):Yr(m,1),o(f,p)):f},c=(m,p=!1)=>{const f=Re(U(),{month:e.month,year:e.year});let k=m?kt(f,1):sa(f,1);e.disableYearSelect&&(k=wt(k,e.year));let Y=Te(k),N=be(k);n.value.months.includes(Y)&&(k=l(k,m),Y=Te(k),N=be(k)),n.value.years.includes(N)&&(k=o(k,m),N=be(k)),r(Y,N,m,e.preventMinMaxNavigation)&&s(Y,N,p)},s=(m,p,f)=>{t("update-month-year",{month:m,year:p,fromNav:f})},x=H(()=>m=>Fr(Re(U(),{month:e.month,year:e.year}),a.value.maxDate,a.value.minDate,e.preventMinMaxNavigation,m));return{handleMonthYearChange:c,isDisabled:x,updateMonthYear:s}},Ba={multiCalendars:{type:[Boolean,Number,String,Object],default:void 0},modelValue:{type:[String,Date,Array,Object,Number],default:null},modelType:{type:String,default:null},position:{type:String,default:"center"},dark:{type:Boolean,default:!1},format:{type:[String,Function],default:()=>null},autoPosition:{type:[Boolean,String],default:!0},altPosition:{type:Function,default:null},transitions:{type:[Boolean,Object],default:!0},formatLocale:{type:Object,default:null},utc:{type:[Boolean,String],default:!1},ariaLabels:{type:Object,default:()=>({})},offset:{type:[Number,String],default:10},hideNavigation:{type:Array,default:()=>[]},timezone:{type:[String,Object],default:null},vertical:{type:Boolean,default:!1},disableMonthYearSelect:{type:Boolean,default:!1},disableYearSelect:{type:Boolean,default:!1},dayClass:{type:Function,default:null},yearRange:{type:Array,default:()=>[1900,2100]},enableTimePicker:{type:Boolean,default:!0},autoApply:{type:Boolean,default:!1},disabledDates:{type:[Array,Function],default:()=>[]},monthNameFormat:{type:String,default:"short"},startDate:{type:[Date,String],default:null},startTime:{type:[Object,Array],default:null},hideOffsetDates:{type:Boolean,default:!1},noToday:{type:Boolean,default:!1},disabledWeekDays:{type:Array,default:()=>[]},allowedDates:{type:Array,default:null},nowButtonLabel:{type:String,default:"Now"},markers:{type:Array,default:()=>[]},escClose:{type:Boolean,default:!0},spaceConfirm:{type:Boolean,default:!0},monthChangeOnArrows:{type:Boolean,default:!0},presetDates:{type:Array,default:()=>[]},flow:{type:Array,default:()=>[]},partialFlow:{type:Boolean,default:!1},preventMinMaxNavigation:{type:Boolean,default:!1},reverseYears:{type:Boolean,default:!1},weekPicker:{type:Boolean,default:!1},filters:{type:Object,default:()=>({})},arrowNavigation:{type:Boolean,default:!1},highlight:{type:[Function,Object],default:null},teleport:{type:[Boolean,String,Object],default:null},teleportCenter:{type:Boolean,default:!1},locale:{type:String,default:"en-Us"},weekNumName:{type:String,default:"W"},weekStart:{type:[Number,String],default:1},weekNumbers:{type:[String,Function,Object],default:null},monthChangeOnScroll:{type:[Boolean,String],default:!0},dayNames:{type:[Function,Array],default:null},monthPicker:{type:Boolean,default:!1},customProps:{type:Object,default:null},yearPicker:{type:Boolean,default:!1},modelAuto:{type:Boolean,default:!1},selectText:{type:String,default:"Select"},cancelText:{type:String,default:"Cancel"},previewFormat:{type:[String,Function],default:()=>""},multiDates:{type:[Object,Boolean],default:!1},ignoreTimeValidation:{type:Boolean,default:!1},minDate:{type:[Date,String],default:null},maxDate:{type:[Date,String],default:null},minTime:{type:Object,default:null},maxTime:{type:Object,default:null},name:{type:String,default:null},placeholder:{type:String,default:""},hideInputIcon:{type:Boolean,default:!1},clearable:{type:Boolean,default:!0},alwaysClearable:{type:Boolean,default:!1},state:{type:Boolean,default:null},required:{type:Boolean,default:!1},autocomplete:{type:String,default:"off"},timePicker:{type:Boolean,default:!1},enableSeconds:{type:Boolean,default:!1},is24:{type:Boolean,default:!0},noHoursOverlay:{type:Boolean,default:!1},noMinutesOverlay:{type:Boolean,default:!1},noSecondsOverlay:{type:Boolean,default:!1},hoursGridIncrement:{type:[String,Number],default:1},minutesGridIncrement:{type:[String,Number],default:5},secondsGridIncrement:{type:[String,Number],default:5},hoursIncrement:{type:[Number,String],default:1},minutesIncrement:{type:[Number,String],default:1},secondsIncrement:{type:[Number,String],default:1},range:{type:[Boolean,Object],default:!1},uid:{type:String,default:null},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},inline:{type:[Boolean,Object],default:!1},textInput:{type:[Boolean,Object],default:!1},sixWeeks:{type:[Boolean,String],default:!1},actionRow:{type:Object,default:()=>({})},focusStartDate:{type:Boolean,default:!1},disabledTimes:{type:[Function,Array],default:void 0},timePickerInline:{type:Boolean,default:!1},calendar:{type:Function,default:null},config:{type:Object,default:void 0},quarterPicker:{type:Boolean,default:!1},yearFirst:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},onInternalModelChange:{type:[Function,Object],default:null},enableMinutes:{type:Boolean,default:!0},ui:{type:Object,default:()=>({})}},xt={...Ba,shadow:{type:Boolean,default:!1},flowStep:{type:Number,default:0},internalModelValue:{type:[Date,Array],default:null},noOverlayFocus:{type:Boolean,default:!1},collapse:{type:Boolean,default:!1},menuWrapRef:{type:Object,default:null},getInputRect:{type:Function,default:()=>({})},isTextInputDate:{type:Boolean,default:!1},isMobile:{type:Boolean,default:void 0}},fu=["title"],gu=["disabled"],wu=Qe({compatConfig:{MODE:3},__name:"ActionRow",props:{menuMount:{type:Boolean,default:!1},calendarWidth:{type:Number,default:0},...xt},emits:["close-picker","select-date","select-now","invalid-select"],setup(e,{emit:t}){const n=t,a=e,{defaultedActionRow:r,defaultedPreviewFormat:l,defaultedMultiCalendars:o,defaultedTextInput:c,defaultedInline:s,defaultedRange:x,defaultedMultiDates:m}=Ee(a),{isTimeValid:p,isMonthValid:f}=Ht(a),{buildMatrix:k}=Lt(),Y=Z(null),N=Z(null),T=Z(!1),A=Z({}),R=Z(null),_=Z(null);tt(()=>{a.arrowNavigation&&k([We(Y),We(N)],"actionRow"),B(),window.addEventListener("resize",B)}),va(()=>{window.removeEventListener("resize",B)});const B=()=>{T.value=!1,setTimeout(()=>{const g=R.value?.getBoundingClientRect(),D=_.value?.getBoundingClientRect();g&&D&&(A.value.maxWidth=`${D.width-g.width-20}px`),T.value=!0},0)},j=H(()=>x.value.enabled&&!x.value.partialRange&&a.internalModelValue?a.internalModelValue.length===2:!0),I=H(()=>!p.value(a.internalModelValue)||!f.value(a.internalModelValue)||!j.value),y=()=>{const g=l.value;return a.timePicker||a.monthPicker,g(Ze(a.internalModelValue))},V=()=>{const g=a.internalModelValue;return o.value.count>0?`${L(g[0])} - ${L(g[1])}`:[L(g[0]),L(g[1])]},L=g=>qr(g,l.value,a.formatLocale,c.value.rangeSeparator,a.modelAuto,l.value),z=H(()=>!a.internalModelValue||!a.menuMount?"":typeof l.value=="string"?Array.isArray(a.internalModelValue)?a.internalModelValue.length===2&&a.internalModelValue[1]?V():m.value.enabled?a.internalModelValue.map(g=>`${L(g)}`):a.modelAuto?`${L(a.internalModelValue[0])}`:`${L(a.internalModelValue[0])} -`:L(a.internalModelValue):y()),ne=()=>m.value.enabled?"; ":" - ",se=H(()=>Array.isArray(z.value)?z.value.join(ne()):z.value),fe=()=>{p.value(a.internalModelValue)&&f.value(a.internalModelValue)&&j.value?n("select-date"):n("invalid-select")};return(g,D)=>(P(),q("div",{ref_key:"actionRowRef",ref:_,class:"dp__action_row"},[g.$slots["action-row"]?ie(g.$slots,"action-row",Je(Xe({key:0},{internalModelValue:g.internalModelValue,disabled:I.value,selectDate:()=>g.$emit("select-date"),closePicker:()=>g.$emit("close-picker")}))):(P(),q(_e,{key:1},[u(r).showPreview?(P(),q("div",{key:0,class:"dp__selection_preview",title:se.value,style:mt(A.value)},[g.$slots["action-preview"]&&T.value?ie(g.$slots,"action-preview",{key:0,value:g.internalModelValue}):W("",!0),!g.$slots["action-preview"]&&T.value?(P(),q(_e,{key:1},[_t(Ke(se.value),1)],64)):W("",!0)],12,fu)):W("",!0),ge("div",{ref_key:"actionBtnContainer",ref:R,class:"dp__action_buttons","data-dp-element":"action-row"},[g.$slots["action-buttons"]?ie(g.$slots,"action-buttons",{key:0,value:g.internalModelValue}):W("",!0),g.$slots["action-buttons"]?W("",!0):(P(),q(_e,{key:1},[!u(s).enabled&&u(r).showCancel?(P(),q("button",{key:0,ref_key:"cancelButtonRef",ref:Y,type:"button",class:"dp__action_button dp__action_cancel",onClick:D[0]||(D[0]=w=>g.$emit("close-picker")),onKeydown:D[1]||(D[1]=w=>u(ot)(w,()=>g.$emit("close-picker")))},Ke(g.cancelText),545)):W("",!0),u(r).showNow?(P(),q("button",{key:1,type:"button",class:"dp__action_button dp__action_cancel",onClick:D[2]||(D[2]=w=>g.$emit("select-now")),onKeydown:D[3]||(D[3]=w=>u(ot)(w,()=>g.$emit("select-now")))},Ke(g.nowButtonLabel),33)):W("",!0),u(r).showSelect?(P(),q("button",{key:2,ref_key:"selectButtonRef",ref:N,type:"button",class:"dp__action_button dp__action_select",disabled:I.value,"data-test-id":"select-button",onKeydown:D[4]||(D[4]=w=>u(ot)(w,()=>fe())),onClick:fe},Ke(g.selectText),41,gu)):W("",!0)],64))],512)],64))],512))}}),bu=["role","aria-label","tabindex"],ku={class:"dp__selection_grid_header"},_u=["aria-selected","aria-disabled","data-test-id","onClick","onKeydown","onMouseover"],Du=["aria-label"],Ta=Qe({__name:"SelectionOverlay",props:{items:{},type:{},isLast:{type:Boolean},arrowNavigation:{type:Boolean},skipButtonRef:{type:Boolean},headerRefs:{},hideNavigation:{},escClose:{type:Boolean},useRelative:{type:Boolean},height:{},textInput:{type:[Boolean,Object]},config:{},noOverlayFocus:{type:Boolean},focusValue:{},menuWrapRef:{},ariaLabels:{},overlayLabel:{}},emits:["selected","toggle","reset-flow","hover-value"],setup(e,{expose:t,emit:n}){const{setSelectionGrid:a,buildMultiLevelMatrix:r,setMonthPicker:l}=Lt(),o=n,c=e,{defaultedAriaLabels:s,defaultedTextInput:x,defaultedConfig:m,handleEventPropagation:p}=Ee(c),{hideNavigationButtons:f}=Va(),k=Z(!1),Y=Z(null),N=Z(null),T=Z([]),A=Z(),R=Z(null),_=Z(0),B=Z(null);gl(()=>{Y.value=null}),tt(()=>{ct().then(()=>se()),c.noOverlayFocus||I(),j(!0)}),va(()=>j(!1));const j=h=>{c.arrowNavigation&&(c.headerRefs?.length?l(h):a(h))},I=()=>{const h=We(N);h&&(x.value.enabled||(Y.value?Y.value?.focus({preventScroll:!0}):h.focus({preventScroll:!0})),k.value=h.clientHeight({dp__overlay:!0,"dp--overlay-absolute":!c.useRelative,"dp--overlay-relative":c.useRelative})),V=H(()=>c.useRelative?{height:`${c.height}px`,width:"var(--dp-menu-min-width)"}:void 0),L=H(()=>({dp__overlay_col:!0})),z=H(()=>({dp__btn:!0,dp__button:!0,dp__overlay_action:!0,dp__over_action_scroll:k.value,dp__button_bottom:c.isLast})),ne=H(()=>({dp__overlay_container:!0,dp__container_flex:c.items?.length<=6,dp__container_block:c.items?.length>6}));pt(()=>c.items,()=>se(!1),{deep:!0});const se=(h=!0)=>{ct().then(()=>{const O=We(Y),M=We(N),re=We(R),v=We(B),d=re?re.getBoundingClientRect().height:0;M&&(M.getBoundingClientRect().height?_.value=M.getBoundingClientRect().height-d:_.value=m.value.modeHeight-d),O&&v&&h&&(v.scrollTop=O.offsetTop-v.offsetTop-(_.value/2-O.getBoundingClientRect().height)-d)})},fe=h=>{h.disabled||o("selected",h.value)},g=()=>{o("toggle"),o("reset-flow")},D=h=>{c.escClose&&(g(),p(h))},w=(h,O,M,re)=>{h&&((O.active||O.value===c.focusValue)&&(Y.value=h),c.arrowNavigation&&(Array.isArray(T.value[M])?T.value[M][re]=h:T.value[M]=[h],F()))},F=()=>{const h=c.headerRefs?.length?[c.headerRefs].concat(T.value):T.value.concat([c.skipButtonRef?[]:[R.value]]);r(Ze(h),c.headerRefs?.length?"monthPicker":"selectionGrid")},te=h=>{c.arrowNavigation||Et(h,m.value,!0)},E=h=>{A.value=h,o("hover-value",h)},J=()=>{if(g(),!c.isLast){const h=pn(c.menuWrapRef??null,"action-row");h&&Or(h)?.focus()}},S=h=>{switch(h.key){case Ne.esc:return D(h);case Ne.arrowLeft:return te(h);case Ne.arrowRight:return te(h);case Ne.arrowUp:return te(h);case Ne.arrowDown:return te(h);default:return}},ue=h=>{if(h.key===Ne.enter)return g();if(h.key===Ne.tab)return J()};return t({focusGrid:I}),(h,O)=>(P(),q("div",{ref_key:"gridWrapRef",ref:N,class:De(y.value),style:mt(V.value),role:e.useRelative?void 0:"dialog","aria-label":e.overlayLabel,tabindex:e.useRelative?void 0:"0",onKeydown:S,onClick:O[0]||(O[0]=ka(()=>{},["prevent"]))},[ge("div",{ref_key:"containerRef",ref:B,class:De(ne.value),style:mt({"--dp-overlay-height":`${_.value}px`}),role:"grid"},[ge("div",ku,[ie(h.$slots,"header")]),h.$slots.overlay?ie(h.$slots,"overlay",{key:0}):(P(!0),q(_e,{key:1},Be(e.items,(M,re)=>(P(),q("div",{key:re,class:De(["dp__overlay_row",{dp__flex_row:e.items.length>=3}]),role:"row"},[(P(!0),q(_e,null,Be(M,(v,d)=>(P(),q("div",{key:v.value,ref_for:!0,ref:X=>w(X,v,re,d),role:"gridcell",class:De(L.value),"aria-selected":v.active||void 0,"aria-disabled":v.disabled||void 0,tabindex:"0","data-test-id":v.text,onClick:ka(X=>fe(v),["prevent"]),onKeydown:X=>u(ot)(X,()=>fe(v),!0),onMouseover:X=>E(v.value)},[ge("div",{class:De(v.className)},[h.$slots.item?ie(h.$slots,"item",{key:0,item:v}):W("",!0),h.$slots.item?W("",!0):(P(),q(_e,{key:1},[_t(Ke(v.text),1)],64))],2)],42,_u))),128))],2))),128))],6),h.$slots["button-icon"]?Ya((P(),q("button",{key:0,ref_key:"toggleButton",ref:R,type:"button","aria-label":u(s)?.toggleOverlay,class:De(z.value),tabindex:"0",onClick:g,onKeydown:ue},[ie(h.$slots,"button-icon")],42,Du)),[[Ra,!u(f)(e.hideNavigation,e.type)]]):W("",!0)],46,bu))}}),xu=["data-dp-mobile"],Ea=Qe({__name:"InstanceWrap",props:{multiCalendars:{},stretch:{type:Boolean},collapse:{type:Boolean},isMobile:{type:Boolean}},setup(e){const t=e,n=H(()=>t.multiCalendars>0?[...Array(t.multiCalendars).keys()]:[0]),a=H(()=>({dp__instance_calendar:t.multiCalendars>0}));return(r,l)=>(P(),q("div",{class:De({dp__menu_inner:!e.stretch,"dp--menu--inner-stretched":e.stretch,dp__flex_display:e.multiCalendars>0,"dp--flex-display-collapsed":e.collapse}),"data-dp-mobile":e.isMobile},[(P(!0),q(_e,null,Be(n.value,(o,c)=>(P(),q("div",{key:o,class:De(a.value)},[ie(r.$slots,"default",{instance:o,index:c})],2))),128))],10,xu))}}),Mu=["data-dp-element","aria-label","aria-disabled"],wa=Qe({compatConfig:{MODE:3},__name:"ArrowBtn",props:{ariaLabel:{},elName:{},disabled:{type:Boolean}},emits:["activate","set-ref"],setup(e,{emit:t}){const n=t,a=Z(null);return tt(()=>n("set-ref",a)),(r,l)=>(P(),q("button",{ref_key:"elRef",ref:a,type:"button","data-dp-element":e.elName,class:"dp__btn dp--arrow-btn-nav",tabindex:"0","aria-label":e.ariaLabel,"aria-disabled":e.disabled||void 0,onClick:l[0]||(l[0]=o=>n("activate")),onKeydown:l[1]||(l[1]=o=>u(ot)(o,()=>n("activate"),!0))},[ge("span",{class:De(["dp__inner_nav",{dp__inner_nav_disabled:e.disabled}])},[ie(r.$slots,"default")],2)],40,Mu))}}),Tu=["aria-label","data-test-id"],Xr=Qe({__name:"YearModePicker",props:{...xt,showYearPicker:{type:Boolean,default:!1},items:{type:Array,default:()=>[]},instance:{type:Number,default:0},year:{type:Number,default:0},isDisabled:{type:Function,default:()=>!1}},emits:["toggle-year-picker","year-select","handle-year"],setup(e,{emit:t}){const n=t,a=e,{showRightIcon:r,showLeftIcon:l}=Va(),{defaultedConfig:o,defaultedMultiCalendars:c,defaultedAriaLabels:s,defaultedTransitions:x,defaultedUI:m}=Ee(a),{showTransition:p,transitionName:f}=Pa(x),k=Z(!1),Y=H(()=>Cn(a.year,a.locale)),N=(R=!1,_)=>{k.value=!k.value,n("toggle-year-picker",{flow:R,show:_})},T=R=>{k.value=!1,n("year-select",R)},A=(R=!1)=>{n("handle-year",R)};return(R,_)=>(P(),q(_e,null,[ge("div",{class:De(["dp--year-mode-picker",{"dp--hidden-el":k.value}])},[u(l)(u(c),e.instance)?(P(),Se(wa,{key:0,ref:"mpPrevIconRef","aria-label":u(s)?.prevYear,disabled:e.isDisabled(!1),class:De(u(m)?.navBtnPrev),onActivate:_[0]||(_[0]=B=>A(!1))},{default:he(()=>[R.$slots["arrow-left"]?ie(R.$slots,"arrow-left",{key:0}):W("",!0),R.$slots["arrow-left"]?W("",!0):(P(),Se(u(Dn),{key:1}))]),_:3},8,["aria-label","disabled","class"])):W("",!0),ge("button",{ref:"mpYearButtonRef",class:"dp__btn dp--year-select",type:"button","aria-label":`${e.year}-${u(s)?.openYearsOverlay}`,"data-test-id":`year-mode-btn-${e.instance}`,onClick:_[1]||(_[1]=()=>N(!1)),onKeydown:_[2]||(_[2]=wl(()=>N(!1),["enter"]))},[R.$slots.year?ie(R.$slots,"year",{key:0,year:e.year,text:Y.value,value:e.year}):W("",!0),R.$slots.year?W("",!0):(P(),q(_e,{key:1},[_t(Ke(Y.value),1)],64))],40,Tu),u(r)(u(c),e.instance)?(P(),Se(wa,{key:1,ref:"mpNextIconRef","aria-label":u(s)?.nextYear,disabled:e.isDisabled(!0),class:De(u(m)?.navBtnNext),onActivate:_[3]||(_[3]=B=>A(!0))},{default:he(()=>[R.$slots["arrow-right"]?ie(R.$slots,"arrow-right",{key:0}):W("",!0),R.$slots["arrow-right"]?W("",!0):(P(),Se(u(xn),{key:1}))]),_:3},8,["aria-label","disabled","class"])):W("",!0)],2),Oe(ma,{name:u(f)(e.showYearPicker),css:u(p)},{default:he(()=>[e.showYearPicker?(P(),Se(Ta,{key:0,items:e.items,"text-input":R.textInput,"esc-close":R.escClose,config:R.config,"is-last":R.autoApply&&!u(o).keepActionRow,"hide-navigation":R.hideNavigation,"aria-labels":R.ariaLabels,"overlay-label":u(s)?.yearPicker?.(!0),type:"year",onToggle:N,onSelected:_[4]||(_[4]=B=>T(B))},et({"button-icon":he(()=>[R.$slots["calendar-icon"]?ie(R.$slots,"calendar-icon",{key:0}):W("",!0),R.$slots["calendar-icon"]?W("",!0):(P(),Se(u(pa),{key:1}))]),_:2},[R.$slots["year-overlay-value"]?{name:"item",fn:he(({item:B})=>[ie(R.$slots,"year-overlay-value",{text:B.text,value:B.value})]),key:"0"}:void 0]),1032,["items","text-input","esc-close","config","is-last","hide-navigation","aria-labels","overlay-label"])):W("",!0)]),_:3},8,["name","css"])],64))}}),In=(e,t,n)=>{if(t.value&&Array.isArray(t.value))if(t.value.some(a=>Pe(e,a))){const a=t.value.filter(r=>!Pe(r,e));t.value=a.length?a:null}else(n&&+n>t.value.length||!n)&&t.value.push(e);else t.value=[e]},Nn=(e,t,n)=>{let a=e.value?e.value.slice():[];return a.length===2&&a[1]!==null&&(a=[]),a.length?(Ve(t,a[0])?a.unshift(t):a[1]=t,n("range-end",t)):(a=[t],n("range-start",t)),a},za=(e,t,n,a)=>{e&&(e[0]&&e[1]&&n&&t("auto-apply"),e[0]&&!e[1]&&a&&n&&t("auto-apply"))},Gr=e=>{Array.isArray(e.value)&&e.value.length<=2&&e.range?e.modelValue.value=e.value.map(t=>st(U(t),e.timezone)):Array.isArray(e.value)||(e.modelValue.value=st(U(e.value),e.timezone))},Qr=(e,t,n,a)=>Array.isArray(t.value)&&(t.value.length===2||t.value.length===1&&a.value.partialRange)?a.value.fixedStart&&(qe(e,t.value[0])||Pe(e,t.value[0]))?[t.value[0],e]:a.value.fixedEnd&&(Ve(e,t.value[1])||Pe(e,t.value[1]))?[e,t.value[1]]:(n("invalid-fixed-range",e),t.value):[],Zr=({multiCalendars:e,range:t,highlight:n,propDates:a,calendars:r,modelValue:l,props:o,filters:c,year:s,month:x,emit:m})=>{const p=H(()=>$n(o.yearRange,o.locale,o.reverseYears)),f=Z([!1]),k=H(()=>(z,ne)=>{const se=Re(bt(new Date),{month:x.value(z),year:s.value(z)}),fe=ne?fr(se):ra(se);return Fr(fe,a.value.maxDate,a.value.minDate,o.preventMinMaxNavigation,ne)}),Y=()=>Array.isArray(l.value)&&e.value.solo&&l.value[1],N=()=>{for(let z=0;z{if(!z)return N();const ne=Re(U(),r.value[z]);return r.value[0].year=be(Yr(ne,e.value.count-1)),N()},A=(z,ne)=>{const se=Il(ne,z);return t.value.showLastInRange&&se>1?ne:z},R=z=>o.focusStartDate||e.value.solo?z[0]:z[1]?A(z[0],z[1]):z[0],_=()=>{if(l.value){const z=Array.isArray(l.value)?R(l.value):l.value;r.value[0]={month:Te(z),year:be(z)}}},B=()=>{_(),e.value.count&&N()};pt(l,(z,ne)=>{o.isTextInputDate&&JSON.stringify(z??{})!==JSON.stringify(ne??{})&&B()}),tt(()=>{B()});const j=(z,ne)=>{r.value[ne].year=z,m("update-month-year",{instance:ne,year:z,month:r.value[ne].month}),e.value.count&&!e.value.solo&&T(ne)},I=H(()=>z=>da(p.value,ne=>{const se=s.value(z)===ne.value,fe=_a(ne.value,ca(a.value.minDate),ca(a.value.maxDate))||c.value.years?.includes(s.value(z)),g=Rn(n.value,ne.value);return{active:se,disabled:fe,highlighted:g}})),y=(z,ne)=>{j(z,ne),L(ne)},V=(z,ne=!1)=>{if(!k.value(z,ne)){const se=ne?s.value(z)+1:s.value(z)-1;j(se,z)}},L=(z,ne=!1,se)=>{ne||m("reset-flow"),se!==void 0?f.value[z]=se:f.value[z]=!f.value[z],f.value[z]?m("overlay-toggle",{open:!0,overlay:rt.year}):(m("overlay-closed"),m("overlay-toggle",{open:!1,overlay:rt.year}))};return{isDisabled:k,groupedYears:I,showYearPicker:f,selectYear:j,toggleYearPicker:L,handleYearSelect:y,handleYear:V}},Pu=(e,t)=>{const{defaultedMultiCalendars:n,defaultedAriaLabels:a,defaultedTransitions:r,defaultedConfig:l,defaultedRange:o,defaultedHighlight:c,propDates:s,defaultedTz:x,defaultedFilters:m,defaultedMultiDates:p}=Ee(e),f=()=>{e.isTextInputDate&&B(be(U(e.startDate)),0)},{modelValue:k,year:Y,month:N,calendars:T}=Sa(e,t,f),A=H(()=>Ir(e.formatLocale,e.locale,e.monthNameFormat)),R=Z(null),{checkMinMaxRange:_}=Ht(e),{selectYear:B,groupedYears:j,showYearPicker:I,toggleYearPicker:y,handleYearSelect:V,handleYear:L,isDisabled:z}=Zr({modelValue:k,multiCalendars:n,range:o,highlight:c,calendars:T,year:Y,propDates:s,month:N,filters:m,props:e,emit:t});tt(()=>{e.startDate&&(k.value&&e.focusStartDate||!k.value)&&B(be(U(e.startDate)),0)});const ne=O=>O?{month:Te(O),year:be(O)}:{month:null,year:null},se=()=>k.value?Array.isArray(k.value)?k.value.map(O=>ne(O)):ne(k.value):ne(),fe=(O,M)=>{const re=T.value[O],v=se();return Array.isArray(v)?v.some(d=>d.year===re?.year&&d.month===M):re?.year===v.year&&M===v.month},g=(O,M,re)=>{const v=se();return Array.isArray(v)?Y.value(M)===v[re]?.year&&O===v[re]?.month:!1},D=(O,M)=>{if(o.value.enabled){const re=se();if(Array.isArray(k.value)&&Array.isArray(re)){const v=g(O,M,0)||g(O,M,1),d=Ct(bt(U()),O,Y.value(M));return Da(k.value,R.value,d)&&!v}return!1}return!1},w=H(()=>O=>da(A.value,M=>{const re=fe(O,M.value),v=_a(M.value,zr(Y.value(O),s.value.minDate),Vr(Y.value(O),s.value.maxDate))||Qi(s.value.disabledDates,Y.value(O),M.value)||m.value.months?.includes(M.value)||!Zi(s.value.allowedDates,Y.value(O),M.value)||jr(e.yearRange,Y.value(O)),d=D(M.value,O),X=Ur(c.value,M.value,Y.value(O));return{active:re,disabled:v,isBetween:d,highlighted:X}})),F=(O,M)=>Ct(bt(U()),O,Y.value(M)),te=(O,M)=>{const re=k.value?k.value:bt(new Date);k.value=Ct(re,O,Y.value(M)),t("auto-apply"),t("update-flow-step")},E=(O,M)=>{const re=F(O,M);o.value.fixedEnd||o.value.fixedStart?k.value=Qr(re,k,t,o):k.value?_(re,k.value)&&(k.value=Nn(k,F(O,M),t)):k.value=[F(O,M)],ct().then(()=>{za(k.value,t,e.autoApply,e.modelAuto)})},J=(O,M)=>{In(F(O,M),k,p.value.limit),t("auto-apply",!0)},S=(O,M)=>(T.value[M].month=O,h(M,T.value[M].year,O),p.value.enabled?J(O,M):o.value.enabled?E(O,M):te(O,M)),ue=(O,M)=>{B(O,M),h(M,O,null)},h=(O,M,re)=>{let v=re;if(!v&&v!==0){const d=se();v=Array.isArray(d)?d[O].month:d.month}t("update-month-year",{instance:O,year:M,month:v})};return{groupedMonths:w,groupedYears:j,year:Y,isDisabled:z,defaultedMultiCalendars:n,defaultedAriaLabels:a,defaultedTransitions:r,defaultedConfig:l,showYearPicker:I,modelValue:k,presetDate:(O,M)=>{Gr({value:O,modelValue:k,range:o.value.enabled,timezone:M?void 0:x.value.timezone}),t("auto-apply")},setHoverDate:(O,M)=>{R.value=F(O,M)},selectMonth:S,selectYear:ue,toggleYearPicker:y,handleYearSelect:V,handleYear:L,getModelMonthYear:se}},Su=Qe({compatConfig:{MODE:3},__name:"MonthPicker",props:{...xt},emits:["update:internal-model-value","overlay-closed","reset-flow","range-start","range-end","auto-apply","update-month-year","update-flow-step","mount","invalid-fixed-range","overlay-toggle"],setup(e,{expose:t,emit:n}){const a=n,r=Gt(),l=dt(r,"yearMode"),o=e;tt(()=>{o.shadow||a("mount",null)});const{groupedMonths:c,groupedYears:s,year:x,isDisabled:m,defaultedMultiCalendars:p,defaultedConfig:f,showYearPicker:k,modelValue:Y,presetDate:N,setHoverDate:T,selectMonth:A,selectYear:R,toggleYearPicker:_,handleYearSelect:B,handleYear:j,getModelMonthYear:I}=Pu(o,a);return t({getSidebarProps:()=>({modelValue:Y,year:x,getModelMonthYear:I,selectMonth:A,selectYear:R,handleYear:j}),presetDate:N,toggleYearPicker:y=>_(0,y)}),(y,V)=>(P(),Se(Ea,{"multi-calendars":u(p).count,collapse:y.collapse,stretch:"","is-mobile":y.isMobile},{default:he(({instance:L})=>[y.$slots["top-extra"]?ie(y.$slots,"top-extra",{key:0,value:y.internalModelValue}):W("",!0),y.$slots["month-year"]?ie(y.$slots,"month-year",Je(Xe({key:1},{year:u(x),months:u(c)(L),years:u(s)(L),selectMonth:u(A),selectYear:u(R),instance:L}))):(P(),Se(Ta,{key:2,items:u(c)(L),"arrow-navigation":y.arrowNavigation,"is-last":y.autoApply&&!u(f).keepActionRow,"esc-close":y.escClose,height:u(f).modeHeight,config:y.config,"no-overlay-focus":!!(y.noOverlayFocus||y.textInput),"use-relative":"",type:"month",onSelected:z=>u(A)(z,L),onHoverValue:z=>u(T)(z,L)},et({header:he(()=>[Oe(Xr,Xe(y.$props,{items:u(s)(L),instance:L,"show-year-picker":u(k)[L],year:u(x)(L),"is-disabled":z=>u(m)(L,z),onHandleYear:z=>u(j)(L,z),onYearSelect:z=>u(B)(z,L),onToggleYearPicker:z=>u(_)(L,z?.flow,z?.show)}),et({_:2},[Be(u(l),(z,ne)=>({name:z,fn:he(se=>[ie(y.$slots,z,Je(ut(se)))])}))]),1040,["items","instance","show-year-picker","year","is-disabled","onHandleYear","onYearSelect","onToggleYearPicker"])]),_:2},[y.$slots["month-overlay-value"]?{name:"item",fn:he(({item:z})=>[ie(y.$slots,"month-overlay-value",{text:z.text,value:z.value})]),key:"0"}:void 0]),1032,["items","arrow-navigation","is-last","esc-close","height","config","no-overlay-focus","onSelected","onHoverValue"]))]),_:3},8,["multi-calendars","collapse","is-mobile"]))}}),$u=(e,t)=>{const n=()=>{e.isTextInputDate&&(m.value=be(U(e.startDate)))},{modelValue:a}=Sa(e,t,n),r=Z(null),{defaultedHighlight:l,defaultedMultiDates:o,defaultedFilters:c,defaultedRange:s,propDates:x}=Ee(e),m=Z();tt(()=>{e.startDate&&(a.value&&e.focusStartDate||!a.value)&&(m.value=be(U(e.startDate)))});const p=A=>Array.isArray(a.value)?a.value.some(R=>be(R)===A):a.value?be(a.value)===A:!1,f=A=>s.value.enabled&&Array.isArray(a.value)?Da(a.value,r.value,T(A)):!1,k=A=>x.value.allowedDates instanceof Map?x.value.allowedDates.size?x.value.allowedDates.has(`${A}`):!1:!0,Y=A=>x.value.disabledDates instanceof Map?x.value.disabledDates.size?x.value.disabledDates.has(`${A}`):!1:typeof x.value.disabledDates=="function"?x.value.disabledDates(wt(Ge(ra(U())),A)):!0,N=H(()=>da($n(e.yearRange,e.locale,e.reverseYears),A=>{const R=p(A.value),_=_a(A.value,ca(x.value.minDate),ca(x.value.maxDate))||c.value.years.includes(A.value)||!k(A.value)||Y(A.value),B=f(A.value)&&!R,j=Rn(l.value,A.value);return{active:R,disabled:_,isBetween:B,highlighted:j}})),T=A=>wt(bt(ra(new Date)),A);return{groupedYears:N,modelValue:a,focusYear:m,setHoverValue:A=>{r.value=wt(bt(new Date),A)},selectYear:A=>{if(t("update-month-year",{instance:0,year:A}),o.value.enabled)return a.value?Array.isArray(a.value)&&((a.value?.map(R=>be(R))).includes(A)?a.value=a.value.filter(R=>be(R)!==A):a.value.push(wt(Ge(U()),A))):a.value=[wt(Ge(ra(U())),A)],t("auto-apply",!0);s.value.enabled?(a.value=Nn(a,T(A),t),ct().then(()=>{za(a.value,t,e.autoApply,e.modelAuto)})):(a.value=T(A),t("auto-apply"))}}},Au=Qe({compatConfig:{MODE:3},__name:"YearPicker",props:{...xt},emits:["update:internal-model-value","reset-flow","range-start","range-end","auto-apply","update-month-year"],setup(e,{expose:t,emit:n}){const a=n,r=e,{groupedYears:l,modelValue:o,focusYear:c,selectYear:s,setHoverValue:x}=$u(r,a),{defaultedConfig:m}=Ee(r);return t({getSidebarProps:()=>({modelValue:o,selectYear:s})}),(p,f)=>(P(),q("div",null,[p.$slots["top-extra"]?ie(p.$slots,"top-extra",{key:0,value:p.internalModelValue}):W("",!0),p.$slots["month-year"]?ie(p.$slots,"month-year",Je(Xe({key:1},{years:u(l),selectYear:u(s)}))):(P(),Se(Ta,{key:2,items:u(l),"is-last":p.autoApply&&!u(m).keepActionRow,height:u(m).modeHeight,config:p.config,"no-overlay-focus":!!(p.noOverlayFocus||p.textInput),"focus-value":u(c),type:"year","use-relative":"",onSelected:u(s),onHoverValue:u(x)},et({_:2},[p.$slots["year-overlay-value"]?{name:"item",fn:he(({item:k})=>[ie(p.$slots,"year-overlay-value",{text:k.text,value:k.value})]),key:"0"}:void 0]),1032,["items","is-last","height","config","no-overlay-focus","focus-value","onSelected","onHoverValue"]))]))}}),Cu={key:0,class:"dp__time_input"},Yu=["data-compact","data-collapsed"],Ru=["data-test-id","aria-label","onKeydown","onClick","onMousedown"],Iu=["aria-label","disabled","data-test-id","onKeydown","onClick"],Nu=["data-test-id","aria-label","onKeydown","onClick","onMousedown"],Ou={key:0},Bu=["aria-label","data-compact"],Eu=Qe({compatConfig:{MODE:3},__name:"TimeInput",props:{hours:{type:Number,default:0},minutes:{type:Number,default:0},seconds:{type:Number,default:0},closeTimePickerBtn:{type:Object,default:null},order:{type:Number,default:0},disabledTimesConfig:{type:Function,default:null},validateTime:{type:Function,default:()=>!1},...xt},emits:["set-hours","set-minutes","update:hours","update:minutes","update:seconds","reset-flow","mounted","overlay-closed","overlay-opened","am-pm-change"],setup(e,{expose:t,emit:n}){const a=n,r=e,{setTimePickerElements:l,setTimePickerBackRef:o}=Lt(),{defaultedAriaLabels:c,defaultedTransitions:s,defaultedFilters:x,defaultedConfig:m,defaultedRange:p,defaultedMultiCalendars:f}=Ee(r),{transitionName:k,showTransition:Y}=Pa(s),N=xa({hours:!1,minutes:!1,seconds:!1}),T=Z("AM"),A=Z(null),R=Z([]),_=Z(),B=Z(!1);tt(()=>{a("mounted")});const j=i=>Re(new Date,{hours:i.hours,minutes:i.minutes,seconds:r.enableSeconds?i.seconds:0,milliseconds:0}),I=H(()=>i=>E(i,r[i])||V(i,r[i])),y=H(()=>({hours:r.hours,minutes:r.minutes,seconds:r.seconds})),V=(i,le)=>p.value.enabled&&!p.value.disableTimeRangeValidation?!r.validateTime(i,le):!1,L=(i,le)=>{if(p.value.enabled&&!p.value.disableTimeRangeValidation){const C=le?+r[`${i}Increment`]:-+r[`${i}Increment`],xe=r[i]+C;return!r.validateTime(i,xe)}return!1},z=H(()=>i=>!O(+r[i]+ +r[`${i}Increment`],i)||L(i,!0)),ne=H(()=>i=>!O(+r[i]-+r[`${i}Increment`],i)||L(i,!1)),se=(i,le)=>cr(Re(U(),i),le),fe=(i,le)=>Ai(Re(U(),i),le),g=H(()=>({dp__time_col:!0,dp__time_col_block:!r.timePickerInline,dp__time_col_reg_block:!r.enableSeconds&&r.is24&&!r.timePickerInline,dp__time_col_reg_inline:!r.enableSeconds&&r.is24&&r.timePickerInline,dp__time_col_reg_with_button:!r.enableSeconds&&!r.is24,dp__time_col_sec:r.enableSeconds&&r.is24,dp__time_col_sec_with_button:r.enableSeconds&&!r.is24})),D=H(()=>r.timePickerInline&&p.value.enabled&&!f.value.count),w=H(()=>{const i=[{type:"hours"}];return r.enableMinutes&&i.push({type:"",separator:!0},{type:"minutes"}),r.enableSeconds&&i.push({type:"",separator:!0},{type:"seconds"}),i}),F=H(()=>w.value.filter(i=>!i.separator)),te=H(()=>i=>{if(i==="hours"){const le=$e(+r.hours);return{text:le<10?`0${le}`:`${le}`,value:le}}return{text:r[i]<10?`0${r[i]}`:`${r[i]}`,value:r[i]}}),E=(i,le)=>{if(!r.disabledTimesConfig)return!1;const C=r.disabledTimesConfig(r.order,i==="hours"?le:void 0);return C[i]?!!C[i]?.includes(le):!0},J=(i,le)=>le!=="hours"||T.value==="AM"?i:i+12,S=i=>{const le=r.is24?24:12,C=i==="hours"?le:60,xe=+r[`${i}GridIncrement`],me=i==="hours"&&!r.is24?xe:0,at=[];for(let He=me;He({active:!1,disabled:x.value.times[i].includes(He.value)||!O(He.value,i)||E(i,He.value)||V(i,He.value)}))},ue=i=>i>=0?i:59,h=i=>i>=0?i:23,O=(i,le)=>{const C=r.minTime?j(Ka(r.minTime)):null,xe=r.maxTime?j(Ka(r.maxTime)):null,me=j(Ka(y.value,le,le==="minutes"||le==="seconds"?ue(i):h(i)));return C&&xe?(ua(me,xe)||aa(me,xe))&&(Xt(me,C)||aa(me,C)):C?Xt(me,C)||aa(me,C):xe?ua(me,xe)||aa(me,xe):!0},M=i=>r[`no${i[0].toUpperCase()+i.slice(1)}Overlay`],re=i=>{M(i)||(N[i]=!N[i],N[i]?(B.value=!0,a("overlay-opened",i)):(B.value=!1,a("overlay-closed",i)))},v=i=>i==="hours"?Yt:i==="minutes"?Vt:ia,d=()=>{_.value&&clearTimeout(_.value)},X=(i,le=!0,C)=>{const xe=le?se:fe,me=le?+r[`${i}Increment`]:-+r[`${i}Increment`];O(+r[i]+me,i)&&a(`update:${i}`,v(i)(xe({[i]:+r[i]},{[i]:+r[`${i}Increment`]}))),!C?.keyboard&&m.value.timeArrowHoldThreshold&&(_.value=setTimeout(()=>{X(i,le)},m.value.timeArrowHoldThreshold))},$e=i=>r.is24?i:(i>=12?T.value="PM":T.value="AM",Bi(i)),G=()=>{T.value==="PM"?(T.value="AM",a("update:hours",r.hours-12)):(T.value="PM",a("update:hours",r.hours+12)),a("am-pm-change",T.value)},ke=i=>{N[i]=!0},K=(i,le,C)=>{if(i&&r.arrowNavigation){Array.isArray(R.value[le])?R.value[le][C]=i:R.value[le]=[i];const xe=R.value.reduce((me,at)=>at.map((He,ht)=>[...me[ht]||[],at[ht]]),[]);o(r.closeTimePickerBtn),A.value&&(xe[1]=xe[1].concat(A.value)),l(xe,r.order)}},ae=(i,le)=>(re(i),a(`update:${i}`,le));return t({openChildCmp:ke}),(i,le)=>i.disabled?W("",!0):(P(),q("div",Cu,[(P(!0),q(_e,null,Be(w.value,(C,xe)=>(P(),q("div",{key:xe,class:De(g.value),"data-compact":D.value&&!i.enableSeconds,"data-collapsed":D.value&&i.enableSeconds},[C.separator?(P(),q(_e,{key:0},[B.value?W("",!0):(P(),q(_e,{key:0},[_t(":")],64))],64)):(P(),q(_e,{key:1},[ge("button",{ref_for:!0,ref:me=>K(me,xe,0),type:"button",class:De({dp__btn:!0,dp__inc_dec_button:!i.timePickerInline,dp__inc_dec_button_inline:i.timePickerInline,dp__tp_inline_btn_top:i.timePickerInline,dp__inc_dec_button_disabled:z.value(C.type),"dp--hidden-el":B.value}),"data-test-id":`${C.type}-time-inc-btn-${r.order}`,"aria-label":u(c)?.incrementValue(C.type),tabindex:"0",onKeydown:me=>u(ot)(me,()=>X(C.type,!0,{keyboard:!0}),!0),onClick:me=>u(m).timeArrowHoldThreshold?void 0:X(C.type,!0),onMousedown:me=>u(m).timeArrowHoldThreshold?X(C.type,!0):void 0,onMouseup:d},[r.timePickerInline?(P(),q(_e,{key:1},[i.$slots["tp-inline-arrow-up"]?ie(i.$slots,"tp-inline-arrow-up",{key:0}):(P(),q(_e,{key:1},[le[2]||(le[2]=ge("span",{class:"dp__tp_inline_btn_bar dp__tp_btn_in_l"},null,-1)),le[3]||(le[3]=ge("span",{class:"dp__tp_inline_btn_bar dp__tp_btn_in_r"},null,-1))],64))],64)):(P(),q(_e,{key:0},[i.$slots["arrow-up"]?ie(i.$slots,"arrow-up",{key:0}):W("",!0),i.$slots["arrow-up"]?W("",!0):(P(),Se(u(Tn),{key:1}))],64))],42,Ru),ge("button",{ref_for:!0,ref:me=>K(me,xe,1),type:"button","aria-label":`${te.value(C.type).text}-${u(c)?.openTpOverlay(C.type)}`,class:De({dp__time_display:!0,dp__time_display_block:!i.timePickerInline,dp__time_display_inline:i.timePickerInline,"dp--time-invalid":I.value(C.type),"dp--time-overlay-btn":!I.value(C.type),"dp--hidden-el":B.value}),disabled:M(C.type),tabindex:"0","data-test-id":`${C.type}-toggle-overlay-btn-${r.order}`,onKeydown:me=>u(ot)(me,()=>re(C.type),!0),onClick:me=>re(C.type)},[i.$slots[C.type]?ie(i.$slots,C.type,{key:0,text:te.value(C.type).text,value:te.value(C.type).value}):W("",!0),i.$slots[C.type]?W("",!0):(P(),q(_e,{key:1},[_t(Ke(te.value(C.type).text),1)],64))],42,Iu),ge("button",{ref_for:!0,ref:me=>K(me,xe,2),type:"button",class:De({dp__btn:!0,dp__inc_dec_button:!i.timePickerInline,dp__inc_dec_button_inline:i.timePickerInline,dp__tp_inline_btn_bottom:i.timePickerInline,dp__inc_dec_button_disabled:ne.value(C.type),"dp--hidden-el":B.value}),"data-test-id":`${C.type}-time-dec-btn-${r.order}`,"aria-label":u(c)?.decrementValue(C.type),tabindex:"0",onKeydown:me=>u(ot)(me,()=>X(C.type,!1,{keyboard:!0}),!0),onClick:me=>u(m).timeArrowHoldThreshold?void 0:X(C.type,!1),onMousedown:me=>u(m).timeArrowHoldThreshold?X(C.type,!1):void 0,onMouseup:d},[r.timePickerInline?(P(),q(_e,{key:1},[i.$slots["tp-inline-arrow-down"]?ie(i.$slots,"tp-inline-arrow-down",{key:0}):(P(),q(_e,{key:1},[le[4]||(le[4]=ge("span",{class:"dp__tp_inline_btn_bar dp__tp_btn_in_l"},null,-1)),le[5]||(le[5]=ge("span",{class:"dp__tp_inline_btn_bar dp__tp_btn_in_r"},null,-1))],64))],64)):(P(),q(_e,{key:0},[i.$slots["arrow-down"]?ie(i.$slots,"arrow-down",{key:0}):W("",!0),i.$slots["arrow-down"]?W("",!0):(P(),Se(u(Pn),{key:1}))],64))],42,Nu)],64))],10,Yu))),128)),i.is24?W("",!0):(P(),q("div",Ou,[i.$slots["am-pm-button"]?ie(i.$slots,"am-pm-button",{key:0,toggle:G,value:T.value}):W("",!0),i.$slots["am-pm-button"]?W("",!0):(P(),q("button",{key:1,ref_key:"amPmButton",ref:A,type:"button",class:"dp__pm_am_button",role:"button","aria-label":u(c)?.amPmButton,tabindex:"0","data-compact":D.value,onClick:G,onKeydown:le[0]||(le[0]=C=>u(ot)(C,()=>G(),!0))},Ke(T.value),41,Bu))])),(P(!0),q(_e,null,Be(F.value,(C,xe)=>(P(),Se(ma,{key:xe,name:u(k)(N[C.type]),css:u(Y)},{default:he(()=>[N[C.type]?(P(),Se(Ta,{key:0,items:S(C.type),"is-last":i.autoApply&&!u(m).keepActionRow,"esc-close":i.escClose,type:C.type,"text-input":i.textInput,config:i.config,"arrow-navigation":i.arrowNavigation,"aria-labels":i.ariaLabels,"overlay-label":u(c).timeOverlay?.(C.type),onSelected:me=>ae(C.type,me),onToggle:me=>re(C.type),onResetFlow:le[1]||(le[1]=me=>i.$emit("reset-flow"))},et({"button-icon":he(()=>[i.$slots["clock-icon"]?ie(i.$slots,"clock-icon",{key:0}):W("",!0),i.$slots["clock-icon"]?W("",!0):(P(),Se(Oa(i.timePickerInline?u(pa):u(Mn)),{key:1}))]),_:2},[i.$slots[`${C.type}-overlay-value`]?{name:"item",fn:he(({item:me})=>[ie(i.$slots,`${C.type}-overlay-value`,{text:me.text,value:me.value})]),key:"0"}:void 0,i.$slots[`${C.type}-overlay-header`]?{name:"header",fn:he(()=>[ie(i.$slots,`${C.type}-overlay-header`,{toggle:()=>re(C.type)})]),key:"1"}:void 0]),1032,["items","is-last","esc-close","type","text-input","config","arrow-navigation","aria-labels","overlay-label","onSelected","onToggle"])):W("",!0)]),_:2},1032,["name","css"]))),128))]))}}),zu=["data-dp-mobile"],Vu=["aria-label","tabindex"],Lu=["role","aria-label","tabindex"],Hu=["aria-label"],Kr=Qe({compatConfig:{MODE:3},__name:"TimePicker",props:{hours:{type:[Number,Array],default:0},minutes:{type:[Number,Array],default:0},seconds:{type:[Number,Array],default:0},disabledTimesConfig:{type:Function,default:null},validateTime:{type:Function,default:()=>!1},...xt},emits:["update:hours","update:minutes","update:seconds","mount","reset-flow","overlay-opened","overlay-closed","am-pm-change"],setup(e,{expose:t,emit:n}){const a=n,r=e,{buildMatrix:l,setTimePicker:o}=Lt(),c=Gt(),{defaultedTransitions:s,defaultedAriaLabels:x,defaultedTextInput:m,defaultedConfig:p,defaultedRange:f}=Ee(r),{transitionName:k,showTransition:Y}=Pa(s),{hideNavigationButtons:N}=Va(),T=Z(null),A=Z(null),R=Z([]),_=Z(null),B=Z(!1);tt(()=>{a("mount"),!r.timePicker&&r.arrowNavigation?l([We(T.value)],"time"):o(!0,r.timePicker)});const j=H(()=>f.value.enabled&&r.modelAuto?Nr(r.internalModelValue):!0),I=Z(!1),y=E=>({hours:Array.isArray(r.hours)?r.hours[E]:r.hours,minutes:Array.isArray(r.minutes)?r.minutes[E]:r.minutes,seconds:Array.isArray(r.seconds)?r.seconds[E]:r.seconds}),V=H(()=>{const E=[];if(f.value.enabled)for(let J=0;J<2;J++)E.push(y(J));else E.push(y(0));return E}),L=(E,J=!1,S="")=>{J||a("reset-flow"),I.value=E,a(E?"overlay-opened":"overlay-closed",rt.time),r.arrowNavigation&&o(E),ct(()=>{S!==""&&R.value[0]&&R.value[0].openChildCmp(S)})},z=H(()=>({dp__btn:!0,dp__button:!0,dp__button_bottom:r.autoApply&&!p.value.keepActionRow})),ne=dt(c,"timePicker"),se=(E,J,S)=>f.value.enabled?J===0?[E,V.value[1][S]]:[V.value[0][S],E]:E,fe=E=>{a("update:hours",E)},g=E=>{a("update:minutes",E)},D=E=>{a("update:seconds",E)},w=()=>{if(_.value&&!m.value.enabled&&!r.noOverlayFocus){const E=Or(_.value);E&&E.focus({preventScroll:!0})}},F=E=>{B.value=!1,a("overlay-closed",E)},te=E=>{B.value=!0,a("overlay-opened",E)};return t({toggleTimePicker:L}),(E,J)=>(P(),q("div",{class:"dp--tp-wrap","data-dp-mobile":E.isMobile},[!E.timePicker&&!E.timePickerInline?Ya((P(),q("button",{key:0,ref_key:"openTimePickerBtn",ref:T,type:"button",class:De({...z.value,"dp--hidden-el":I.value}),"aria-label":u(x)?.openTimePicker,tabindex:E.noOverlayFocus?void 0:0,"data-test-id":"open-time-picker-btn",onKeydown:J[0]||(J[0]=S=>u(ot)(S,()=>L(!0))),onClick:J[1]||(J[1]=S=>L(!0))},[E.$slots["clock-icon"]?ie(E.$slots,"clock-icon",{key:0}):W("",!0),E.$slots["clock-icon"]?W("",!0):(P(),Se(u(Mn),{key:1}))],42,Vu)),[[Ra,!u(N)(E.hideNavigation,"time")]]):W("",!0),Oe(ma,{name:u(k)(I.value),css:u(Y)&&!E.timePickerInline},{default:he(()=>[I.value||E.timePicker||E.timePickerInline?(P(),q("div",{key:0,ref_key:"overlayRef",ref:_,role:E.timePickerInline?void 0:"dialog",class:De({dp__overlay:!E.timePickerInline,"dp--overlay-absolute":!r.timePicker&&!E.timePickerInline,"dp--overlay-relative":r.timePicker}),style:mt(E.timePicker?{height:`${u(p).modeHeight}px`}:void 0),"aria-label":u(x)?.timePicker,tabindex:E.timePickerInline?void 0:0},[ge("div",{class:De(E.timePickerInline?"dp__time_picker_inline_container":"dp__overlay_container dp__container_flex dp__time_picker_overlay_container"),style:{display:"flex"}},[E.$slots["time-picker-overlay"]?ie(E.$slots,"time-picker-overlay",{key:0,hours:e.hours,minutes:e.minutes,seconds:e.seconds,setHours:fe,setMinutes:g,setSeconds:D}):W("",!0),E.$slots["time-picker-overlay"]?W("",!0):(P(),q("div",{key:1,class:De(E.timePickerInline?"dp__flex":"dp__overlay_row dp__flex_row")},[(P(!0),q(_e,null,Be(V.value,(S,ue)=>Ya((P(),Se(Eu,Xe({key:ue},{ref_for:!0},{...E.$props,order:ue,hours:S.hours,minutes:S.minutes,seconds:S.seconds,closeTimePickerBtn:A.value,disabledTimesConfig:e.disabledTimesConfig,disabled:ue===0?u(f).fixedStart:u(f).fixedEnd},{ref_for:!0,ref_key:"timeInputRefs",ref:R,"validate-time":(h,O)=>e.validateTime(h,se(O,ue,h)),"onUpdate:hours":h=>fe(se(h,ue,"hours")),"onUpdate:minutes":h=>g(se(h,ue,"minutes")),"onUpdate:seconds":h=>D(se(h,ue,"seconds")),onMounted:w,onOverlayClosed:F,onOverlayOpened:te,onAmPmChange:J[2]||(J[2]=h=>E.$emit("am-pm-change",h))}),et({_:2},[Be(u(ne),(h,O)=>({name:h,fn:he(M=>[ie(E.$slots,h,Xe({ref_for:!0},M))])}))]),1040,["validate-time","onUpdate:hours","onUpdate:minutes","onUpdate:seconds"])),[[Ra,ue===0?!0:j.value]])),128))],2)),!E.timePicker&&!E.timePickerInline?Ya((P(),q("button",{key:2,ref_key:"closeTimePickerBtn",ref:A,type:"button",class:De({...z.value,"dp--hidden-el":B.value}),"aria-label":u(x)?.closeTimePicker,tabindex:"0",onKeydown:J[3]||(J[3]=S=>u(ot)(S,()=>L(!1))),onClick:J[4]||(J[4]=S=>L(!1))},[E.$slots["calendar-icon"]?ie(E.$slots,"calendar-icon",{key:0}):W("",!0),E.$slots["calendar-icon"]?W("",!0):(P(),Se(u(pa),{key:1}))],42,Hu)),[[Ra,!u(N)(E.hideNavigation,"time")]]):W("",!0)],2)],14,Lu)):W("",!0)]),_:3},8,["name","css"])],8,zu))}}),Jr=(e,t,n,a)=>{const{defaultedRange:r}=Ee(e),l=(_,B)=>Array.isArray(t[_])?t[_][B]:t[_],o=_=>e.enableSeconds?Array.isArray(t.seconds)?t.seconds[_]:t.seconds:0,c=(_,B)=>_?B!==void 0?zt(_,l("hours",B),l("minutes",B),o(B)):zt(_,t.hours,t.minutes,o()):Cr(U(),o(B)),s=(_,B)=>{t[_]=B},x=H(()=>e.modelAuto&&r.value.enabled?Array.isArray(n.value)?n.value.length>1:!1:r.value.enabled),m=(_,B)=>{const j=Object.fromEntries(Object.keys(t).map(I=>I===_?[I,B]:[I,t[I]].slice()));if(x.value&&!r.value.disableTimeRangeValidation){const I=V=>n.value?zt(n.value[V],j.hours[V],j.minutes[V],j.seconds[V]):null,y=V=>Ar(n.value[V],0);return!(Pe(I(0),I(1))&&(Xt(I(0),y(1))||ua(I(1),y(0))))}return!0},p=(_,B)=>{m(_,B)&&(s(_,B),a&&a())},f=_=>{p("hours",_)},k=_=>{p("minutes",_)},Y=_=>{p("seconds",_)},N=(_,B,j,I)=>{B&&f(_),!B&&!j&&k(_),j&&Y(_),n.value&&I(n.value)},T=_=>{if(_){const B=Array.isArray(_),j=B?[+_[0].hours,+_[1].hours]:+_.hours,I=B?[+_[0].minutes,+_[1].minutes]:+_.minutes,y=B?[+_[0].seconds,+_[1].seconds]:+_.seconds;s("hours",j),s("minutes",I),e.enableSeconds&&s("seconds",y)}},A=(_,B)=>{const j={hours:Array.isArray(t.hours)?t.hours[_]:t.hours,disabledArr:[]};return(B||B===0)&&(j.hours=B),Array.isArray(e.disabledTimes)&&(j.disabledArr=r.value.enabled&&Array.isArray(e.disabledTimes[_])?e.disabledTimes[_]:e.disabledTimes),j},R=H(()=>(_,B)=>{if(Array.isArray(e.disabledTimes)){const{disabledArr:j,hours:I}=A(_,B),y=j.filter(V=>+V.hours===I);return y[0]?.minutes==="*"?{hours:[I],minutes:void 0,seconds:void 0}:{hours:[],minutes:y?.map(V=>+V.minutes)??[],seconds:y?.map(V=>V.seconds?+V.seconds:void 0)??[]}}return{hours:[],minutes:[],seconds:[]}});return{setTime:s,updateHours:f,updateMinutes:k,updateSeconds:Y,getSetDateTime:c,updateTimeValues:N,getSecondsValue:o,assignStartTime:T,validateTime:m,disabledTimesConfig:R}},Fu=(e,t)=>{const n=()=>{e.isTextInputDate&&B()},{modelValue:a,time:r}=Sa(e,t,n),{defaultedStartTime:l,defaultedRange:o,defaultedTz:c}=Ee(e),{updateTimeValues:s,getSetDateTime:x,setTime:m,assignStartTime:p,disabledTimesConfig:f,validateTime:k}=Jr(e,r,a,Y);function Y(){t("update-flow-step")}const N=I=>{const{hours:y,minutes:V,seconds:L}=I;return{hours:+y,minutes:+V,seconds:L?+L:0}},T=()=>{if(e.startTime){if(Array.isArray(e.startTime)){const y=N(e.startTime[0]),V=N(e.startTime[1]);return[Re(U(),y),Re(U(),V)]}const I=N(e.startTime);return Re(U(),I)}return o.value.enabled?[null,null]:null},A=()=>{if(o.value.enabled){const[I,y]=T();a.value=[st(x(I,0),c.value.timezone),st(x(y,1),c.value.timezone)]}else a.value=st(x(T()),c.value.timezone)},R=I=>Array.isArray(I)?[Wt(U(I[0])),Wt(U(I[1]))]:[Wt(I??U())],_=(I,y,V)=>{m("hours",I),m("minutes",y),m("seconds",e.enableSeconds?V:0)},B=()=>{const[I,y]=R(a.value);return o.value.enabled?_([I.hours,y.hours],[I.minutes,y.minutes],[I.seconds,y.seconds]):_(I.hours,I.minutes,I.seconds)};tt(()=>{if(!e.shadow)return p(l.value),a.value?B():A()});const j=()=>{Array.isArray(a.value)?a.value=a.value.map((I,y)=>I&&x(I,y)):a.value=x(a.value),t("time-update")};return{modelValue:a,time:r,disabledTimesConfig:f,updateTime:(I,y=!0,V=!1)=>{s(I,y,V,j)},validateTime:k}},qu=Qe({compatConfig:{MODE:3},__name:"TimePickerSolo",props:{...xt},emits:["update:internal-model-value","time-update","am-pm-change","mount","reset-flow","update-flow-step","overlay-toggle"],setup(e,{expose:t,emit:n}){const a=n,r=e,l=Gt(),o=dt(l,"timePicker"),c=Z(null),{time:s,modelValue:x,disabledTimesConfig:m,updateTime:p,validateTime:f}=Fu(r,a);return tt(()=>{r.shadow||a("mount",null)}),t({getSidebarProps:()=>({modelValue:x,time:s,updateTime:p}),toggleTimePicker:(k,Y=!1,N="")=>{c.value?.toggleTimePicker(k,Y,N)}}),(k,Y)=>(P(),Se(Ea,{"multi-calendars":0,stretch:"","is-mobile":k.isMobile},{default:he(()=>[Oe(Kr,Xe({ref_key:"tpRef",ref:c},k.$props,{hours:u(s).hours,minutes:u(s).minutes,seconds:u(s).seconds,"internal-model-value":k.internalModelValue,"disabled-times-config":u(m),"validate-time":u(f),"onUpdate:hours":Y[0]||(Y[0]=N=>u(p)(N)),"onUpdate:minutes":Y[1]||(Y[1]=N=>u(p)(N,!1)),"onUpdate:seconds":Y[2]||(Y[2]=N=>u(p)(N,!1,!0)),onAmPmChange:Y[3]||(Y[3]=N=>k.$emit("am-pm-change",N)),onResetFlow:Y[4]||(Y[4]=N=>k.$emit("reset-flow")),onOverlayClosed:Y[5]||(Y[5]=N=>k.$emit("overlay-toggle",{open:!1,overlay:N})),onOverlayOpened:Y[6]||(Y[6]=N=>k.$emit("overlay-toggle",{open:!0,overlay:N}))}),et({_:2},[Be(u(o),(N,T)=>({name:N,fn:he(A=>[ie(k.$slots,N,Je(ut(A)))])}))]),1040,["hours","minutes","seconds","internal-model-value","disabled-times-config","validate-time"])]),_:3},8,["is-mobile"]))}}),Uu={class:"dp--header-wrap"},ju={key:0,class:"dp__month_year_wrap"},Wu={key:0},Xu={class:"dp__month_year_wrap"},Gu=["data-dp-element","aria-label","data-test-id","onClick","onKeydown"],Qu=Qe({compatConfig:{MODE:3},__name:"DpHeader",props:{month:{type:Number,default:0},year:{type:Number,default:0},instance:{type:Number,default:0},years:{type:Array,default:()=>[]},months:{type:Array,default:()=>[]},...xt},emits:["update-month-year","mount","reset-flow","overlay-closed","overlay-opened"],setup(e,{expose:t,emit:n}){const a=n,r=e,{defaultedTransitions:l,defaultedAriaLabels:o,defaultedMultiCalendars:c,defaultedFilters:s,defaultedConfig:x,defaultedHighlight:m,propDates:p,defaultedUI:f}=Ee(r),{transitionName:k,showTransition:Y}=Pa(l),{buildMatrix:N}=Lt(),{handleMonthYearChange:T,isDisabled:A,updateMonthYear:R}=yu(r,a),{showLeftIcon:_,showRightIcon:B}=Va(),j=Z(!1),I=Z(!1),y=Z(!1),V=Z([null,null,null,null]);tt(()=>{a("mount")});const L=h=>({get:()=>r[h],set:O=>{const M=h===ft.month?ft.year:ft.month;a("update-month-year",{[h]:O,[M]:r[M]}),h===ft.month?F(!0):te(!0)}}),z=H(L(ft.month)),ne=H(L(ft.year)),se=H(()=>h=>({month:r.month,year:r.year,items:h===ft.month?r.months:r.years,instance:r.instance,updateMonthYear:R,toggle:h===ft.month?F:te})),fe=H(()=>r.months.find(h=>h.value===r.month)||{text:"",value:0}),g=H(()=>da(r.months,h=>{const O=r.month===h.value,M=_a(h.value,zr(r.year,p.value.minDate),Vr(r.year,p.value.maxDate))||s.value.months.includes(h.value),re=Ur(m.value,h.value,r.year);return{active:O,disabled:M,highlighted:re}})),D=H(()=>da(r.years,h=>{const O=r.year===h.value,M=_a(h.value,ca(p.value.minDate),ca(p.value.maxDate))||s.value.years.includes(h.value),re=Rn(m.value,h.value);return{active:O,disabled:M,highlighted:re}})),w=(h,O,M)=>{M!==void 0?h.value=M:h.value=!h.value,h.value?(y.value=!0,a("overlay-opened",O)):(y.value=!1,a("overlay-closed",O))},F=(h=!1,O)=>{E(h),w(j,rt.month,O)},te=(h=!1,O)=>{E(h),w(I,rt.year,O)},E=h=>{h||a("reset-flow")},J=(h,O)=>{r.arrowNavigation&&(V.value[O]=We(h),N(V.value,"monthYear"))},S=H(()=>[{type:ft.month,index:1,toggle:F,modelValue:z.value,updateModelValue:h=>z.value=h,text:fe.value.text,showSelectionGrid:j.value,items:g.value,ariaLabel:o.value?.openMonthsOverlay,overlayLabel:o.value.monthPicker?.(!0)??void 0},{type:ft.year,index:2,toggle:te,modelValue:ne.value,updateModelValue:h=>ne.value=h,text:Cn(r.year,r.locale),showSelectionGrid:I.value,items:D.value,ariaLabel:o.value?.openYearsOverlay,overlayLabel:o.value.yearPicker?.(!0)??void 0}]),ue=H(()=>r.disableYearSelect?[S.value[0]]:r.yearFirst?[...S.value].reverse():S.value);return t({toggleMonthPicker:F,toggleYearPicker:te,handleMonthYearChange:T}),(h,O)=>(P(),q("div",Uu,[h.$slots["month-year"]?(P(),q("div",ju,[ie(h.$slots,"month-year",Je(ut({month:e.month,year:e.year,months:e.months,years:e.years,updateMonthYear:u(R),handleMonthYearChange:u(T),instance:e.instance,isDisabled:u(A)})))])):(P(),q(_e,{key:1},[h.$slots["top-extra"]?(P(),q("div",Wu,[ie(h.$slots,"top-extra",{value:h.internalModelValue})])):W("",!0),ge("div",Xu,[u(_)(u(c),e.instance)&&!h.vertical?(P(),Se(wa,{key:0,"aria-label":u(o)?.prevMonth,disabled:u(A)(!1),class:De(u(f)?.navBtnPrev),"el-name":"action-prev",onActivate:O[0]||(O[0]=M=>u(T)(!1,!0)),onSetRef:O[1]||(O[1]=M=>J(M,0))},{default:he(()=>[h.$slots["arrow-left"]?ie(h.$slots,"arrow-left",{key:0}):W("",!0),h.$slots["arrow-left"]?W("",!0):(P(),Se(u(Dn),{key:1}))]),_:3},8,["aria-label","disabled","class"])):W("",!0),ge("div",{class:De(["dp__month_year_wrap",{dp__year_disable_select:h.disableYearSelect}])},[(P(!0),q(_e,null,Be(ue.value,(M,re)=>(P(),q(_e,{key:M.type},[ge("button",{ref_for:!0,ref:v=>J(v,re+1),type:"button","data-dp-element":`overlay-${M.type}`,class:De(["dp__btn dp__month_year_select",{"dp--hidden-el":y.value}]),"aria-label":`${M.text}-${M.ariaLabel}`,"data-test-id":`${M.type}-toggle-overlay-${e.instance}`,onClick:M.toggle,onKeydown:v=>u(ot)(v,()=>M.toggle(),!0)},[h.$slots[M.type]?ie(h.$slots,M.type,{key:0,text:M.text,value:r[M.type]}):W("",!0),h.$slots[M.type]?W("",!0):(P(),q(_e,{key:1},[_t(Ke(M.text),1)],64))],42,Gu),Oe(ma,{name:u(k)(M.showSelectionGrid),css:u(Y)},{default:he(()=>[M.showSelectionGrid?(P(),Se(Ta,{key:0,items:M.items,"arrow-navigation":h.arrowNavigation,"hide-navigation":h.hideNavigation,"is-last":h.autoApply&&!u(x).keepActionRow,"skip-button-ref":!1,config:h.config,type:M.type,"header-refs":[],"esc-close":h.escClose,"menu-wrap-ref":h.menuWrapRef,"text-input":h.textInput,"aria-labels":h.ariaLabels,"overlay-label":M.overlayLabel,onSelected:M.updateModelValue,onToggle:M.toggle},et({"button-icon":he(()=>[h.$slots["calendar-icon"]?ie(h.$slots,"calendar-icon",{key:0}):W("",!0),h.$slots["calendar-icon"]?W("",!0):(P(),Se(u(pa),{key:1}))]),_:2},[h.$slots[`${M.type}-overlay-value`]?{name:"item",fn:he(({item:v})=>[ie(h.$slots,`${M.type}-overlay-value`,{text:v.text,value:v.value})]),key:"0"}:void 0,h.$slots[`${M.type}-overlay`]?{name:"overlay",fn:he(()=>[ie(h.$slots,`${M.type}-overlay`,Xe({ref_for:!0},se.value(M.type)))]),key:"1"}:void 0,h.$slots[`${M.type}-overlay-header`]?{name:"header",fn:he(()=>[ie(h.$slots,`${M.type}-overlay-header`,{toggle:M.toggle})]),key:"2"}:void 0]),1032,["items","arrow-navigation","hide-navigation","is-last","config","type","esc-close","menu-wrap-ref","text-input","aria-labels","overlay-label","onSelected","onToggle"])):W("",!0)]),_:2},1032,["name","css"])],64))),128))],2),u(_)(u(c),e.instance)&&h.vertical?(P(),Se(wa,{key:1,"aria-label":u(o)?.prevMonth,"el-name":"action-prev",disabled:u(A)(!1),class:De(u(f)?.navBtnPrev),onActivate:O[2]||(O[2]=M=>u(T)(!1,!0))},{default:he(()=>[h.$slots["arrow-up"]?ie(h.$slots,"arrow-up",{key:0}):W("",!0),h.$slots["arrow-up"]?W("",!0):(P(),Se(u(Tn),{key:1}))]),_:3},8,["aria-label","disabled","class"])):W("",!0),u(B)(u(c),e.instance)?(P(),Se(wa,{key:2,ref:"rightIcon","el-name":"action-next",disabled:u(A)(!0),"aria-label":u(o)?.nextMonth,class:De(u(f)?.navBtnNext),onActivate:O[3]||(O[3]=M=>u(T)(!0,!0)),onSetRef:O[4]||(O[4]=M=>J(M,h.disableYearSelect?2:3))},{default:he(()=>[h.$slots[h.vertical?"arrow-down":"arrow-right"]?ie(h.$slots,h.vertical?"arrow-down":"arrow-right",{key:0}):W("",!0),h.$slots[h.vertical?"arrow-down":"arrow-right"]?W("",!0):(P(),Se(Oa(h.vertical?u(Pn):u(xn)),{key:1}))]),_:3},8,["disabled","aria-label","class"])):W("",!0)])],64))]))}}),Zu={class:"dp__calendar_header",role:"row"},Ku={key:0,class:"dp__calendar_header_item",role:"gridcell"},Ju=["aria-label"],es={key:0,class:"dp__calendar_item dp__week_num",role:"gridcell"},ts={class:"dp__cell_inner"},as=["id","aria-selected","aria-disabled","aria-label","tabindex","data-test-id","onClick","onTouchend","onKeydown","onMouseenter","onMouseleave","onMousedown"],ns=Qe({compatConfig:{MODE:3},__name:"DpCalendar",props:{mappedDates:{type:Array,default:()=>[]},instance:{type:Number,default:0},month:{type:Number,default:0},year:{type:Number,default:0},...xt},emits:["select-date","set-hover-date","handle-scroll","mount","handle-swipe","handle-space","tooltip-open","tooltip-close"],setup(e,{expose:t,emit:n}){const a=n,r=e,{buildMultiLevelMatrix:l}=Lt(),{defaultedTransitions:o,defaultedConfig:c,defaultedAriaLabels:s,defaultedMultiCalendars:x,defaultedWeekNumbers:m,defaultedMultiDates:p,defaultedUI:f}=Ee(r),k=Z(null),Y=Z({bottom:"",left:"",transform:""}),N=Z([]),T=Z(null),A=Z(!0),R=Z(""),_=Z({startX:0,endX:0,startY:0,endY:0}),B=Z([]),j=Z({left:"50%"}),I=Z(!1),y=H(()=>r.calendar?r.calendar(r.mappedDates):r.mappedDates),V=H(()=>r.dayNames?Array.isArray(r.dayNames)?r.dayNames:r.dayNames(r.locale,+r.weekStart):Oi(r.formatLocale,r.locale,+r.weekStart));tt(()=>{a("mount",{cmp:"calendar",refs:N}),c.value.noSwipe||T.value&&(T.value.addEventListener("touchstart",J,{passive:!1}),T.value.addEventListener("touchend",S,{passive:!1}),T.value.addEventListener("touchmove",ue,{passive:!1})),r.monthChangeOnScroll&&T.value&&T.value.addEventListener("wheel",M,{passive:!1})}),va(()=>{c.value.noSwipe||T.value&&(T.value.removeEventListener("touchstart",J),T.value.removeEventListener("touchend",S),T.value.removeEventListener("touchmove",ue)),r.monthChangeOnScroll&&T.value&&T.value.removeEventListener("wheel",M)});const L=G=>G?r.vertical?"vNext":"next":r.vertical?"vPrevious":"previous",z=(G,ke)=>{if(r.transitions){const K=Ge(Ct(U(),r.month,r.year));R.value=qe(Ge(Ct(U(),G,ke)),K)?o.value[L(!0)]:o.value[L(!1)],A.value=!1,ct(()=>{A.value=!0})}},ne=H(()=>({...f.value.calendar??{}})),se=H(()=>G=>{const ke=Ei(G);return{dp__marker_dot:ke.type==="dot",dp__marker_line:ke.type==="line"}}),fe=H(()=>G=>Pe(G,k.value)),g=H(()=>({dp__calendar:!0,dp__calendar_next:x.value.count>0&&r.instance!==0})),D=H(()=>G=>r.hideOffsetDates?G.current:!0),w=async(G,ke)=>{const{width:K,height:ae}=G.getBoundingClientRect();k.value=ke.value;let i={left:`${K/2}px`},le=-50;if(await ct(),B.value[0]){const{left:C,width:xe}=B.value[0].getBoundingClientRect();C<0&&(i={left:"0"},le=0,j.value.left=`${K/2}px`),window.innerWidth{const ae=We(N.value[ke][K]);ae&&(G.marker?.customPosition&&G.marker?.tooltip?.length?Y.value=G.marker.customPosition(ae):await w(ae,G),a("tooltip-open",G.marker))},te=async(G,ke,K)=>{if(I.value&&p.value.enabled&&p.value.dragSelect)return a("select-date",G);if(a("set-hover-date",G),G.marker?.tooltip?.length){if(r.hideOffsetDates&&!G.current)return;await F(G,ke,K)}},E=G=>{k.value&&(k.value=null,Y.value=JSON.parse(JSON.stringify({bottom:"",left:"",transform:""})),a("tooltip-close",G.marker))},J=G=>{_.value.startX=G.changedTouches[0].screenX,_.value.startY=G.changedTouches[0].screenY},S=G=>{_.value.endX=G.changedTouches[0].screenX,_.value.endY=G.changedTouches[0].screenY,h()},ue=G=>{r.vertical&&!r.inline&&G.preventDefault()},h=()=>{const G=r.vertical?"Y":"X";Math.abs(_.value[`start${G}`]-_.value[`end${G}`])>10&&a("handle-swipe",_.value[`start${G}`]>_.value[`end${G}`]?"right":"left")},O=(G,ke,K)=>{G&&(Array.isArray(N.value[ke])?N.value[ke][K]=G:N.value[ke]=[G]),r.arrowNavigation&&l(N.value,"calendar")},M=G=>{r.monthChangeOnScroll&&(G.preventDefault(),a("handle-scroll",G))},re=G=>m.value.type==="local"?bn(G.value,{weekStartsOn:+r.weekStart}):m.value.type==="iso"?gn(G.value):typeof m.value.type=="function"?m.value.type(G.value):"",v=G=>{const ke=G[0];return m.value.hideOnOffsetDates?G.some(K=>K.current)?re(ke):"":re(ke)},d=(G,ke,K=!0)=>{!K&&Fi()||(!p.value.enabled||c.value.allowPreventDefault)&&(Et(G,c.value),a("select-date",ke))},X=G=>{Et(G,c.value)},$e=G=>{p.value.enabled&&p.value.dragSelect?(I.value=!0,a("select-date",G)):p.value.enabled&&a("select-date",G)};return t({triggerTransition:z}),(G,ke)=>(P(),q("div",{class:De(g.value)},[ge("div",{ref_key:"calendarWrapRef",ref:T,class:De(ne.value),role:"grid"},[ge("div",Zu,[G.weekNumbers?(P(),q("div",Ku,Ke(G.weekNumName),1)):W("",!0),(P(!0),q(_e,null,Be(V.value,(K,ae)=>(P(),q("div",{key:ae,class:"dp__calendar_header_item",role:"gridcell","data-test-id":"calendar-header","aria-label":u(s)?.weekDay?.(ae)},[G.$slots["calendar-header"]?ie(G.$slots,"calendar-header",{key:0,day:K,index:ae}):W("",!0),G.$slots["calendar-header"]?W("",!0):(P(),q(_e,{key:1},[_t(Ke(K),1)],64))],8,Ju))),128))]),ke[2]||(ke[2]=ge("div",{class:"dp__calendar_header_separator"},null,-1)),Oe(ma,{name:R.value,css:!!G.transitions},{default:he(()=>[A.value?(P(),q("div",{key:0,class:"dp__calendar",role:"rowgroup",onMouseleave:ke[1]||(ke[1]=K=>I.value=!1)},[(P(!0),q(_e,null,Be(y.value,(K,ae)=>(P(),q("div",{key:ae,class:"dp__calendar_row",role:"row"},[G.weekNumbers?(P(),q("div",es,[ge("div",ts,Ke(v(K.days)),1)])):W("",!0),(P(!0),q(_e,null,Be(K.days,(i,le)=>(P(),q("div",{id:u(yn)(i.value),ref_for:!0,ref:C=>O(C,ae,le),key:le+ae,role:"gridcell",class:"dp__calendar_item","aria-selected":(i.classData.dp__active_date||i.classData.dp__range_start||i.classData.dp__range_end)??void 0,"aria-disabled":i.classData.dp__cell_disabled||void 0,"aria-label":u(s)?.day?.(i),tabindex:!i.current&&G.hideOffsetDates?void 0:0,"data-test-id":u(yn)(i.value),onClick:ka(C=>d(C,i),["prevent"]),onTouchend:C=>d(C,i,!1),onKeydown:C=>u(ot)(C,()=>G.$emit("select-date",i)),onMouseenter:C=>te(i,ae,le),onMouseleave:C=>E(i),onMousedown:C=>$e(i),onMouseup:ke[0]||(ke[0]=C=>I.value=!1)},[ge("div",{class:De(["dp__cell_inner",i.classData])},[G.$slots.day&&D.value(i)?ie(G.$slots,"day",{key:0,day:+i.text,date:i.value}):W("",!0),G.$slots.day?W("",!0):(P(),q(_e,{key:1},[_t(Ke(i.text),1)],64)),i.marker&&D.value(i)?(P(),q(_e,{key:2},[G.$slots.marker?ie(G.$slots,"marker",{key:0,marker:i.marker,day:+i.text,date:i.value}):(P(),q("div",{key:1,class:De(se.value(i.marker)),style:mt(i.marker.color?{backgroundColor:i.marker.color}:{})},null,6))],64)):W("",!0),fe.value(i.value)?(P(),q("div",{key:3,ref_for:!0,ref_key:"activeTooltip",ref:B,class:"dp__marker_tooltip",style:mt(Y.value)},[i.marker?.tooltip?(P(),q("div",{key:0,class:"dp__tooltip_content",onClick:X},[(P(!0),q(_e,null,Be(i.marker.tooltip,(C,xe)=>(P(),q("div",{key:xe,class:"dp__tooltip_text"},[G.$slots["marker-tooltip"]?ie(G.$slots,"marker-tooltip",{key:0,tooltip:C,day:i.value}):W("",!0),G.$slots["marker-tooltip"]?W("",!0):(P(),q(_e,{key:1},[ge("div",{class:"dp__tooltip_mark",style:mt(C.color?{backgroundColor:C.color}:{})},null,4),ge("div",null,Ke(C.text),1)],64))]))),128)),ge("div",{class:"dp__arrow_bottom_tp",style:mt(j.value)},null,4)])):W("",!0)],4)):W("",!0)],2)],40,as))),128))]))),128))],32)):W("",!0)]),_:3},8,["name","css"])],2)],2))}}),rr=e=>Array.isArray(e),rs=(e,t,n,a)=>{const r=Z([]),l=Z(new Date),o=Z(),c=()=>S(e.isTextInputDate),{modelValue:s,calendars:x,time:m,today:p}=Sa(e,t,c),{defaultedMultiCalendars:f,defaultedStartTime:k,defaultedRange:Y,defaultedConfig:N,defaultedTz:T,propDates:A,defaultedMultiDates:R}=Ee(e),{validateMonthYearInRange:_,isDisabled:B,isDateRangeAllowed:j,checkMinMaxRange:I}=Ht(e),{updateTimeValues:y,getSetDateTime:V,setTime:L,assignStartTime:z,validateTime:ne,disabledTimesConfig:se}=Jr(e,m,s,a),fe=H(()=>b=>x.value[b]?x.value[b].month:0),g=H(()=>b=>x.value[b]?x.value[b].year:0),D=b=>!N.value.keepViewOnOffsetClick||b?!0:!o.value,w=(b,ee,ve,Me=!1)=>{D(Me)&&(x.value[b]||(x.value[b]={month:0,year:0}),x.value[b].month=Kn(ee)?x.value[b]?.month:ee,x.value[b].year=Kn(ve)?x.value[b]?.year:ve)},F=()=>{e.autoApply&&t("select-date")},te=()=>{k.value&&z(k.value)};tt(()=>{e.shadow||(s.value||(ke(),te()),S(!0),e.focusStartDate&&e.startDate&&ke())});const E=H(()=>e.flow?.length&&!e.partialFlow?e.flowStep===e.flow.length:!0),J=()=>{e.autoApply&&E.value&&t("auto-apply",e.partialFlow?e.flowStep!==e.flow.length:!1)},S=(b=!1)=>{if(s.value)return Array.isArray(s.value)?(r.value=s.value,d(b)):O(s.value,b);if(f.value.count&&b&&!e.startDate)return h(U(),b)},ue=()=>Array.isArray(s.value)&&Y.value.enabled?Te(s.value[0])===Te(s.value[1]??s.value[0]):!1,h=(b=new Date,ee=!1)=>{if((!f.value.count||!f.value.static||ee)&&w(0,Te(b),be(b)),f.value.count&&(!s.value||ue()||!f.value.solo)&&(!f.value.solo||ee))for(let ve=1;ve{h(b),L("hours",Yt(b)),L("minutes",Vt(b)),L("seconds",ia(b)),f.value.count&&ee&&G()},M=b=>{if(f.value.count){if(f.value.solo)return 0;const ee=Te(b[0]),ve=Te(b[1]);return Math.abs(ve-ee){b[1]&&Y.value.showLastInRange?h(b[M(b)],ee):h(b[0],ee);const ve=(Me,Q)=>[Me(b[0]),b[1]?Me(b[1]):m[Q][1]];L("hours",ve(Yt,"hours")),L("minutes",ve(Vt,"minutes")),L("seconds",ve(ia,"seconds"))},v=(b,ee)=>{if((Y.value.enabled||e.weekPicker)&&!R.value.enabled)return re(b,ee);if(R.value.enabled&&ee){const ve=b[b.length-1];return O(ve,ee)}},d=b=>{const ee=s.value;v(ee,b),f.value.count&&f.value.solo&&G()},X=(b,ee)=>{const ve=Re(U(),{month:fe.value(ee),year:g.value(ee)}),Me=b<0?kt(ve,1):sa(ve,1);_(Te(Me),be(Me),b<0,e.preventMinMaxNavigation)&&(w(ee,Te(Me),be(Me)),t("update-month-year",{instance:ee,month:Te(Me),year:be(Me)}),f.value.count&&!f.value.solo&&$e(ee),n())},$e=b=>{for(let ee=b-1;ee>=0;ee--){const ve=sa(Re(U(),{month:fe.value(ee+1),year:g.value(ee+1)}),1);w(ee,Te(ve),be(ve))}for(let ee=b+1;ee<=f.value.count-1;ee++){const ve=kt(Re(U(),{month:fe.value(ee-1),year:g.value(ee-1)}),1);w(ee,Te(ve),be(ve))}},G=()=>{if(Array.isArray(s.value)&&s.value.length===2){const b=U(U(s.value[1]?s.value[1]:kt(s.value[0],1))),[ee,ve]=[Te(s.value[0]),be(s.value[0])],[Me,Q]=[Te(s.value[1]),be(s.value[1])];(ee!==Me||ee===Me&&ve!==Q)&&f.value.solo&&w(1,Te(b),be(b))}else s.value&&!Array.isArray(s.value)&&(w(0,Te(s.value),be(s.value)),h(U()))},ke=()=>{e.startDate&&(w(0,Te(U(e.startDate)),be(U(e.startDate))),f.value.count&&$e(0))},K=(b,ee)=>{if(e.monthChangeOnScroll){const ve=new Date().getTime()-l.value.getTime(),Me=Math.abs(b.deltaY);let Q=500;Me>1&&(Q=100),Me>100&&(Q=0),ve>Q&&(l.value=new Date,X(e.monthChangeOnScroll!=="inverse"?-b.deltaY:b.deltaY,ee))}},ae=(b,ee,ve=!1)=>{e.monthChangeOnArrows&&e.vertical===ve&&i(b,ee)},i=(b,ee)=>{X(b==="right"?-1:1,ee)},le=b=>{if(A.value.markers)return Na(b.value,A.value.markers)},C=(b,ee)=>{switch(e.sixWeeks===!0?"append":e.sixWeeks){case"prepend":return[!0,!1];case"center":return[b==0,!0];case"fair":return[b==0||ee>b,!0];case"append":return[!1,!1];default:return[!1,!1]}},xe=(b,ee,ve,Me)=>{if(e.sixWeeks&&b.length<6){const Q=6-b.length,ce=(ee.getDay()+7-Me)%7,pe=6-(ve.getDay()+7-Me)%7,[$t,Mt]=C(ce,pe);for(let Ft=1;Ft<=Q;Ft++)if(Mt?!!(Ft%2)==$t:$t){const It=b[0].days[0],Xa=me(vt(It.value,-7),Te(ee));b.unshift({days:Xa})}else{const It=b[b.length-1],Xa=It.days[It.days.length-1],tl=me(vt(Xa.value,1),Te(ee));b.push({days:tl})}}return b},me=(b,ee)=>{const ve=U(b),Me=[];for(let Q=0;Q<7;Q++){const ce=vt(ve,Q),pe=Te(ce)!==ee;Me.push({text:e.hideOffsetDates&&pe?"":ce.getDate(),value:ce,current:!pe,classData:{}})}return Me},at=(b,ee)=>{const ve=[],Me=new Date(ee,b),Q=new Date(ee,b+1,0),ce=e.weekStart,pe=Dt(Me,{weekStartsOn:ce}),$t=Mt=>{const Ft=me(Mt,b);if(ve.push({days:Ft}),!ve[ve.length-1].days.some(It=>Pe(Ge(It.value),Ge(Q)))){const It=vt(Mt,7);$t(It)}};return $t(pe),xe(ve,Me,Q,ce)},He=b=>{const ee=zt(U(b.value),m.hours,m.minutes,Zt());t("date-update",ee),R.value.enabled?In(ee,s,R.value.limit):s.value=ee,a(),ct().then(()=>{J()})},ht=b=>Y.value.noDisabledRange?Lr(r.value[0],b).some(ee=>B(ee)):!1,$=()=>{r.value=s.value?s.value.slice():[],r.value.length===2&&!(Y.value.fixedStart||Y.value.fixedEnd)&&(r.value=[])},oe=(b,ee)=>{const ve=[U(b.value),vt(U(b.value),+Y.value.autoRange)];j(ve)?(ee&&de(b.value),r.value=ve):t("invalid-date",b.value)},de=b=>{const ee=Te(U(b)),ve=be(U(b));if(w(0,ee,ve),f.value.count>0)for(let Me=1;Me{if(ht(b.value)||!I(b.value,s.value,Y.value.fixedStart?0:1))return t("invalid-date",b.value);r.value=Qr(U(b.value),s,t,Y)},yt=(b,ee)=>{if($(),Y.value.autoRange)return oe(b,ee);if(Y.value.fixedStart||Y.value.fixedEnd)return Rt(b);r.value[0]?I(U(b.value),s.value)&&!ht(b.value)?Ve(U(b.value),U(r.value[0]))?(r.value.unshift(U(b.value)),t("range-end",r.value[0])):(r.value[1]=U(b.value),t("range-end",r.value[1])):(e.autoApply&&t("auto-apply-invalid",b.value),t("invalid-date",b.value)):(r.value[0]=U(b.value),t("range-start",r.value[0]))},Zt=(b=!0)=>e.enableSeconds?Array.isArray(m.seconds)?b?m.seconds[0]:m.seconds[1]:m.seconds:0,it=b=>{r.value[b]=zt(r.value[b],m.hours[b],m.minutes[b],Zt(b!==1))},La=()=>{r.value[0]&&r.value[1]&&+r.value?.[0]>+r.value?.[1]&&(r.value.reverse(),t("range-start",r.value[0]),t("range-end",r.value[1]))},Ha=()=>{r.value.length&&(r.value[0]&&!r.value[1]?it(0):(it(0),it(1),a()),La(),s.value=r.value.slice(),za(r.value,t,e.autoApply,e.modelAuto))},$a=(b,ee=!1)=>{if(B(b.value)||!b.current&&e.hideOffsetDates)return t("invalid-date",b.value);if(o.value=JSON.parse(JSON.stringify(b)),!Y.value.enabled)return He(b);rr(m.hours)&&rr(m.minutes)&&!R.value.enabled&&(yt(b,ee),Ha())},Fa=(b,ee)=>{w(b,ee.month,ee.year,!0),f.value.count&&!f.value.solo&&$e(b),t("update-month-year",{instance:b,month:ee.month,year:ee.year}),n(f.value.solo?b:void 0);const ve=e.flow?.length?e.flow[e.flowStep]:void 0;!ee.fromNav&&(ve===rt.month||ve===rt.year)&&a()},qa=(b,ee)=>{Gr({value:b,modelValue:s,range:Y.value.enabled,timezone:ee?void 0:T.value.timezone}),F(),e.multiCalendars&&ct().then(()=>S(!0))},Ua=()=>{const b=Sn(U(),T.value);!Y.value.enabled&&!R.value.enabled?s.value=b:s.value&&Array.isArray(s.value)&&s.value[0]?R.value.enabled?s.value=[...s.value,b]:s.value=Ve(b,s.value[0])?[b,s.value[0]]:[s.value[0],b]:s.value=[b],F()},ja=()=>{if(Array.isArray(s.value))if(R.value.enabled){const b=Wa();s.value[s.value.length-1]=V(b)}else s.value=s.value.map((b,ee)=>b&&V(b,ee));else s.value=V(s.value);t("time-update")},Wa=()=>Array.isArray(s.value)&&s.value.length?s.value[s.value.length-1]:null;return{calendars:x,modelValue:s,month:fe,year:g,time:m,disabledTimesConfig:se,today:p,validateTime:ne,getCalendarDays:at,getMarker:le,handleScroll:K,handleSwipe:i,handleArrow:ae,selectDate:$a,updateMonthYear:Fa,presetDate:qa,selectCurrentDate:Ua,updateTime:(b,ee=!0,ve=!1)=>{y(b,ee,ve,ja)},assignMonthAndYear:h,setStartTime:te}},ls={key:0},os=Qe({__name:"DatePicker",props:{...xt},emits:["tooltip-open","tooltip-close","mount","update:internal-model-value","update-flow-step","reset-flow","auto-apply","focus-menu","select-date","range-start","range-end","invalid-fixed-range","time-update","am-pm-change","time-picker-open","time-picker-close","recalculate-position","update-month-year","auto-apply-invalid","date-update","invalid-date","overlay-toggle"],setup(e,{expose:t,emit:n}){const a=n,r=e,{calendars:l,month:o,year:c,modelValue:s,time:x,disabledTimesConfig:m,today:p,validateTime:f,getCalendarDays:k,getMarker:Y,handleArrow:N,handleScroll:T,handleSwipe:A,selectDate:R,updateMonthYear:_,presetDate:B,selectCurrentDate:j,updateTime:I,assignMonthAndYear:y,setStartTime:V}=rs(r,a,ue,h),L=Gt(),{setHoverDate:z,getDayClassData:ne,clearHoverDate:se}=Ds(s,r),{defaultedMultiCalendars:fe}=Ee(r),g=Z([]),D=Z([]),w=Z(null),F=dt(L,"calendar"),te=dt(L,"monthYear"),E=dt(L,"timePicker"),J=K=>{r.shadow||a("mount",K)};pt(l,()=>{r.shadow||setTimeout(()=>{a("recalculate-position")},0)},{deep:!0}),pt(fe,(K,ae)=>{K.count-ae.count>0&&y()},{deep:!0});const S=H(()=>K=>k(o.value(K),c.value(K)).map(ae=>({...ae,days:ae.days.map(i=>(i.marker=Y(i),i.classData=ne(i),i))})));function ue(K){K||K===0?D.value[K]?.triggerTransition(o.value(K),c.value(K)):D.value.forEach((ae,i)=>ae.triggerTransition(o.value(i),c.value(i)))}function h(){a("update-flow-step")}const O=(K,ae=!1)=>{R(K,ae),r.spaceConfirm&&a("select-date")},M=(K,ae,i=0)=>{g.value[i]?.toggleMonthPicker(K,ae)},re=(K,ae,i=0)=>{g.value[i]?.toggleYearPicker(K,ae)},v=(K,ae,i)=>{w.value?.toggleTimePicker(K,ae,i)},d=(K,ae)=>{if(!r.range){const i=s.value?s.value:p,le=ae?new Date(ae):i,C=K?Dt(le,{weekStartsOn:1}):gr(le,{weekStartsOn:1});R({value:C,current:Te(le)===o.value(0),text:"",classData:{}}),document.getElementById(yn(C))?.focus()}},X=K=>{g.value[0]?.handleMonthYearChange(K,!0)},$e=K=>{_(0,{month:o.value(0),year:c.value(0)+(K?1:-1),fromNav:!0})},G=(K,ae)=>{K===rt.time&&a(`time-picker-${ae?"open":"close"}`),a("overlay-toggle",{open:ae,overlay:K})},ke=K=>{a("overlay-toggle",{open:!1,overlay:K}),a("focus-menu")};return t({clearHoverDate:se,presetDate:B,selectCurrentDate:j,toggleMonthPicker:M,toggleYearPicker:re,toggleTimePicker:v,handleArrow:N,updateMonthYear:_,getSidebarProps:()=>({modelValue:s,month:o,year:c,time:x,updateTime:I,updateMonthYear:_,selectDate:R,presetDate:B}),changeMonth:X,changeYear:$e,selectWeekDate:d,setStartTime:V}),(K,ae)=>(P(),q(_e,null,[Oe(Ea,{"multi-calendars":u(fe).count,collapse:K.collapse,"is-mobile":K.isMobile},{default:he(({instance:i,index:le})=>[K.disableMonthYearSelect?W("",!0):(P(),Se(Qu,Xe({key:0,ref:C=>{C&&(g.value[le]=C)},months:u(Ir)(K.formatLocale,K.locale,K.monthNameFormat),years:u($n)(K.yearRange,K.locale,K.reverseYears),month:u(o)(i),year:u(c)(i),instance:i},K.$props,{onMount:ae[0]||(ae[0]=C=>J(u(jt).header)),onResetFlow:ae[1]||(ae[1]=C=>K.$emit("reset-flow")),onUpdateMonthYear:C=>u(_)(i,C),onOverlayClosed:ke,onOverlayOpened:ae[2]||(ae[2]=C=>K.$emit("overlay-toggle",{open:!0,overlay:C}))}),et({_:2},[Be(u(te),(C,xe)=>({name:C,fn:he(me=>[ie(K.$slots,C,Je(ut(me)))])}))]),1040,["months","years","month","year","instance","onUpdateMonthYear"])),Oe(ns,Xe({ref:C=>{C&&(D.value[le]=C)},"mapped-dates":S.value(i),month:u(o)(i),year:u(c)(i),instance:i},K.$props,{onSelectDate:C=>u(R)(C,i!==1),onHandleSpace:C=>O(C,i!==1),onSetHoverDate:ae[3]||(ae[3]=C=>u(z)(C)),onHandleScroll:C=>u(T)(C,i),onHandleSwipe:C=>u(A)(C,i),onMount:ae[4]||(ae[4]=C=>J(u(jt).calendar)),onResetFlow:ae[5]||(ae[5]=C=>K.$emit("reset-flow")),onTooltipOpen:ae[6]||(ae[6]=C=>K.$emit("tooltip-open",C)),onTooltipClose:ae[7]||(ae[7]=C=>K.$emit("tooltip-close",C))}),et({_:2},[Be(u(F),(C,xe)=>({name:C,fn:he(me=>[ie(K.$slots,C,Je(ut({...me})))])}))]),1040,["mapped-dates","month","year","instance","onSelectDate","onHandleSpace","onHandleScroll","onHandleSwipe"])]),_:3},8,["multi-calendars","collapse","is-mobile"]),K.enableTimePicker?(P(),q("div",ls,[K.$slots["time-picker"]?ie(K.$slots,"time-picker",Je(Xe({key:0},{time:u(x),updateTime:u(I)}))):(P(),Se(Kr,Xe({key:1,ref_key:"timePickerRef",ref:w},K.$props,{hours:u(x).hours,minutes:u(x).minutes,seconds:u(x).seconds,"internal-model-value":K.internalModelValue,"disabled-times-config":u(m),"validate-time":u(f),onMount:ae[8]||(ae[8]=i=>J(u(jt).timePicker)),"onUpdate:hours":ae[9]||(ae[9]=i=>u(I)(i)),"onUpdate:minutes":ae[10]||(ae[10]=i=>u(I)(i,!1)),"onUpdate:seconds":ae[11]||(ae[11]=i=>u(I)(i,!1,!0)),onResetFlow:ae[12]||(ae[12]=i=>K.$emit("reset-flow")),onOverlayClosed:ae[13]||(ae[13]=i=>G(i,!1)),onOverlayOpened:ae[14]||(ae[14]=i=>G(i,!0)),onAmPmChange:ae[15]||(ae[15]=i=>K.$emit("am-pm-change",i))}),et({_:2},[Be(u(E),(i,le)=>({name:i,fn:he(C=>[ie(K.$slots,i,Je(ut(C)))])}))]),1040,["hours","minutes","seconds","internal-model-value","disabled-times-config","validate-time"]))])):W("",!0)],64))}}),is=(e,t)=>{const n=Z(),{defaultedMultiCalendars:a,defaultedConfig:r,defaultedHighlight:l,defaultedRange:o,propDates:c,defaultedFilters:s,defaultedMultiDates:x}=Ee(e),{modelValue:m,year:p,month:f,calendars:k}=Sa(e,t),{isDisabled:Y}=Ht(e),{selectYear:N,groupedYears:T,showYearPicker:A,isDisabled:R,toggleYearPicker:_,handleYearSelect:B,handleYear:j}=Zr({modelValue:m,multiCalendars:a,range:o,highlight:l,calendars:k,propDates:c,month:f,year:p,filters:s,props:e,emit:t}),I=(D,w)=>[D,w].map(F=>St(F,"MMMM",{locale:e.formatLocale})).join("-"),y=H(()=>D=>m.value?Array.isArray(m.value)?m.value.some(w=>Gn(D,w)):Gn(m.value,D):!1),V=D=>{if(o.value.enabled){if(Array.isArray(m.value)){const w=Pe(D,m.value[0])||Pe(D,m.value[1]);return Da(m.value,n.value,D)&&!w}return!1}return!1},L=(D,w)=>D.quarter===Fn(w)&&D.year===be(w),z=D=>typeof l.value=="function"?l.value({quarter:Fn(D),year:be(D)}):!!l.value.quarters.find(w=>L(w,D)),ne=H(()=>D=>{const w=Re(new Date,{year:p.value(D)});return Nl({start:ra(w),end:fr(w)}).map(F=>{const te=na(F),E=qn(F),J=Y(F),S=V(te),ue=z(te);return{text:I(te,E),value:te,active:y.value(te),highlighted:ue,disabled:J,isBetween:S}})}),se=D=>{In(D,m,x.value.limit),t("auto-apply",!0)},fe=D=>{m.value=Nn(m,D,t),za(m.value,t,e.autoApply,e.modelAuto)},g=D=>{m.value=D,t("auto-apply")};return{defaultedConfig:r,defaultedMultiCalendars:a,groupedYears:T,year:p,isDisabled:R,quarters:ne,showYearPicker:A,modelValue:m,setHoverDate:D=>{n.value=D},selectYear:N,selectQuarter:(D,w,F)=>{if(!F)return k.value[w].month=Te(qn(D)),x.value.enabled?se(D):o.value.enabled?fe(D):g(D)},toggleYearPicker:_,handleYearSelect:B,handleYear:j}},us={class:"dp--quarter-items"},ss=["data-test-id","disabled","onClick","onMouseover"],ds=Qe({compatConfig:{MODE:3},__name:"QuarterPicker",props:{...xt},emits:["update:internal-model-value","reset-flow","overlay-closed","auto-apply","range-start","range-end","overlay-toggle","update-month-year"],setup(e,{expose:t,emit:n}){const a=n,r=e,l=Gt(),o=dt(l,"yearMode"),{defaultedMultiCalendars:c,defaultedConfig:s,groupedYears:x,year:m,isDisabled:p,quarters:f,modelValue:k,showYearPicker:Y,setHoverDate:N,selectQuarter:T,toggleYearPicker:A,handleYearSelect:R,handleYear:_}=is(r,a);return t({getSidebarProps:()=>({modelValue:k,year:m,selectQuarter:T,handleYearSelect:R,handleYear:_})}),(B,j)=>(P(),Se(Ea,{"multi-calendars":u(c).count,collapse:B.collapse,stretch:"","is-mobile":B.isMobile},{default:he(({instance:I})=>[ge("div",{class:"dp-quarter-picker-wrap",style:mt({minHeight:`${u(s).modeHeight}px`})},[B.$slots["top-extra"]?ie(B.$slots,"top-extra",{key:0,value:B.internalModelValue}):W("",!0),ge("div",null,[Oe(Xr,Xe(B.$props,{items:u(x)(I),instance:I,"show-year-picker":u(Y)[I],year:u(m)(I),"is-disabled":y=>u(p)(I,y),onHandleYear:y=>u(_)(I,y),onYearSelect:y=>u(R)(y,I),onToggleYearPicker:y=>u(A)(I,y?.flow,y?.show)}),et({_:2},[Be(u(o),(y,V)=>({name:y,fn:he(L=>[ie(B.$slots,y,Je(ut(L)))])}))]),1040,["items","instance","show-year-picker","year","is-disabled","onHandleYear","onYearSelect","onToggleYearPicker"])]),ge("div",us,[(P(!0),q(_e,null,Be(u(f)(I),(y,V)=>(P(),q("div",{key:V},[ge("button",{type:"button",class:De(["dp--qr-btn",{"dp--qr-btn-active":y.active,"dp--qr-btn-between":y.isBetween,"dp--qr-btn-disabled":y.disabled,"dp--highlighted":y.highlighted}]),"data-test-id":y.value,disabled:y.disabled,onClick:L=>u(T)(y.value,I,y.disabled),onMouseover:L=>u(N)(y.value)},[B.$slots.quarter?ie(B.$slots,"quarter",{key:0,value:y.value,text:y.text}):(P(),q(_e,{key:1},[_t(Ke(y.text),1)],64))],42,ss)]))),128))])],4)]),_:3},8,["multi-calendars","collapse","is-mobile"]))}}),el=(e,t)=>{const n=Z(0);tt(()=>{a(),window.addEventListener("resize",a,{passive:!0})}),va(()=>{window.removeEventListener("resize",a)});const a=()=>{n.value=window.document.documentElement.clientWidth};return{isMobile:H(()=>n.value<=e.value.mobileBreakpoint&&!t?!0:void 0)}},cs=["id","tabindex","role","aria-label"],vs={key:0,class:"dp--menu-load-container"},ms={key:1,class:"dp--menu-header"},ps=["data-dp-mobile"],hs={key:0,class:"dp__sidebar_left"},ys=["data-dp-mobile"],fs=["data-test-id","data-dp-mobile","onClick","onKeydown"],gs={key:2,class:"dp__sidebar_right"},ws={key:3,class:"dp__action_extra"},lr=Qe({compatConfig:{MODE:3},__name:"DatepickerMenu",props:{...Ba,shadow:{type:Boolean,default:!1},openOnTop:{type:Boolean,default:!1},internalModelValue:{type:[Date,Array],default:null},noOverlayFocus:{type:Boolean,default:!1},collapse:{type:Boolean,default:!1},getInputRect:{type:Function,default:()=>({})},isTextInputDate:{type:Boolean,default:!1}},emits:["close-picker","select-date","auto-apply","time-update","flow-step","update-month-year","invalid-select","update:internal-model-value","recalculate-position","invalid-fixed-range","tooltip-open","tooltip-close","time-picker-open","time-picker-close","am-pm-change","range-start","range-end","auto-apply-invalid","date-update","invalid-date","overlay-toggle","menu-blur"],setup(e,{expose:t,emit:n}){const a=n,r=e,l=Z(null),o=H(()=>{const{openOnTop:$,...oe}=r;return{...oe,isMobile:T.value,flowStep:fe.value,menuWrapRef:l.value}}),{setMenuFocused:c,setShiftKey:s,control:x}=Wr(),m=Gt(),{defaultedTextInput:p,defaultedInline:f,defaultedConfig:k,defaultedUI:Y,handleEventPropagation:N}=Ee(r),{isMobile:T}=el(k,r.shadow),A=Z(null),R=Z(0),_=Z(null),B=Z(!1),j=Z(null),I=Z(!1),y=$=>{I.value=!0,k.value.allowPreventDefault&&$.preventDefault(),Et($,k.value,!0)};tt(()=>{if(!r.shadow){B.value=!0,V(),window.addEventListener("resize",V);const $=We(l);$&&!p.value.enabled&&!f.value.enabled&&(c(!0),J()),$&&($.addEventListener("pointerdown",y),$.addEventListener("mousedown",y))}document.addEventListener("mousedown",ht)}),va(()=>{window.removeEventListener("resize",V),document.removeEventListener("mousedown",ht);const $=We(l);$&&($.removeEventListener("pointerdown",y),$.removeEventListener("mousedown",y))});const V=()=>{const $=We(_);$&&(R.value=$.getBoundingClientRect().width)},{arrowRight:L,arrowLeft:z,arrowDown:ne,arrowUp:se}=Lt(),{flowStep:fe,updateFlowStep:g,childMount:D,resetFlow:w,handleFlow:F}=xs(r,a,j),te=H(()=>r.monthPicker?Su:r.yearPicker?Au:r.timePicker?qu:r.quarterPicker?ds:os),E=H(()=>{if(k.value.arrowLeft)return k.value.arrowLeft;const $=l.value?.getBoundingClientRect(),oe=r.getInputRect();return oe?.width=($?.right??0)&&oe?.width{const $=We(l);$&&$.focus({preventScroll:!0})},S=H(()=>j.value?.getSidebarProps()||{}),ue=()=>{r.openOnTop&&a("recalculate-position")},h=dt(m,"action"),O=H(()=>r.monthPicker||r.yearPicker?dt(m,"monthYear"):r.timePicker?dt(m,"timePicker"):dt(m,"shared")),M=H(()=>r.openOnTop?"dp__arrow_bottom":"dp__arrow_top"),re=H(()=>({dp__menu_disabled:r.disabled,dp__menu_readonly:r.readonly,"dp-menu-loading":r.loading})),v=H(()=>({dp__menu:!0,dp__menu_index:!f.value.enabled,dp__relative:f.value.enabled,...Y.value.menu??{}})),d=$=>{Et($,k.value,!0)},X=$=>{r.escClose&&(a("close-picker"),N($))},$e=$=>{if(r.arrowNavigation){if($===lt.up)return se();if($===lt.down)return ne();if($===lt.left)return z();if($===lt.right)return L()}else $===lt.left||$===lt.up?i("handleArrow",lt.left,0,$===lt.up):i("handleArrow",lt.right,0,$===lt.down)},G=$=>{s($.shiftKey),!r.disableMonthYearSelect&&$.code===Ne.tab&&$.target.classList.contains("dp__menu")&&x.value.shiftKeyInMenu&&($.preventDefault(),Et($,k.value,!0),a("close-picker"))},ke=()=>{J(),a("time-picker-close")},K=$=>{j.value?.toggleTimePicker(!1,!1),j.value?.toggleMonthPicker(!1,!1,$),j.value?.toggleYearPicker(!1,!1,$)},ae=($,oe=0)=>$==="month"?j.value?.toggleMonthPicker(!1,!0,oe):$==="year"?j.value?.toggleYearPicker(!1,!0,oe):$==="time"?j.value?.toggleTimePicker(!0,!1):K(oe),i=($,...oe)=>{j.value?.[$]&&j.value?.[$](...oe)},le=()=>{i("selectCurrentDate")},C=($,oe)=>{i("presetDate",ml($),oe)},xe=()=>{i("clearHoverDate")},me=($,oe)=>{i("updateMonthYear",$,oe)},at=($,oe)=>{$.preventDefault(),$e(oe)},He=$=>{if(G($),$.key===Ne.home||$.key===Ne.end)return i("selectWeekDate",$.key===Ne.home,$.target.getAttribute("id"));switch(($.key===Ne.pageUp||$.key===Ne.pageDown)&&($.shiftKey?(i("changeYear",$.key===Ne.pageUp),pn(l.value,"overlay-year")?.focus()):(i("changeMonth",$.key===Ne.pageUp),pn(l.value,$.key===Ne.pageUp?"action-prev":"action-next")?.focus()),$.target.getAttribute("id")&&l.value?.focus({preventScroll:!0})),$.key){case Ne.esc:return X($);case Ne.arrowLeft:return at($,lt.left);case Ne.arrowRight:return at($,lt.right);case Ne.arrowUp:return at($,lt.up);case Ne.arrowDown:return at($,lt.down);default:return}},ht=$=>{f.value.enabled&&!f.value.input&&!l.value?.contains($.target)&&I.value&&(I.value=!1,a("menu-blur"))};return t({updateMonthYear:me,switchView:ae,handleFlow:F,onValueCleared:()=>{j.value?.setStartTime?.()}}),($,oe)=>(P(),q("div",{id:$.uid?`dp-menu-${$.uid}`:void 0,ref_key:"dpMenuRef",ref:l,tabindex:u(f).enabled?void 0:"0",role:u(f).enabled?void 0:"dialog","aria-label":$.ariaLabels?.menu,class:De(v.value),style:mt({"--dp-arrow-left":E.value}),onMouseleave:xe,onClick:d,onKeydown:He},[($.disabled||$.readonly)&&u(f).enabled||$.loading?(P(),q("div",{key:0,class:De(re.value)},[$.loading?(P(),q("div",vs,[...oe[19]||(oe[19]=[ge("span",{class:"dp--menu-loader"},null,-1)])])):W("",!0)],2)):W("",!0),$.$slots["menu-header"]?(P(),q("div",ms,[ie($.$slots,"menu-header")])):W("",!0),!u(f).enabled&&!$.teleportCenter?(P(),q("div",{key:2,class:De(M.value)},null,2)):W("",!0),ge("div",{ref_key:"innerMenuRef",ref:_,class:De({dp__menu_content_wrapper:$.presetDates?.length||!!$.$slots["left-sidebar"]||!!$.$slots["right-sidebar"],"dp--menu-content-wrapper-collapsed":e.collapse&&($.presetDates?.length||!!$.$slots["left-sidebar"]||!!$.$slots["right-sidebar"])}),"data-dp-mobile":u(T),style:mt({"--dp-menu-width":`${R.value}px`})},[$.$slots["left-sidebar"]?(P(),q("div",hs,[ie($.$slots,"left-sidebar",Je(ut(S.value)))])):W("",!0),$.presetDates.length?(P(),q("div",{key:1,class:De({"dp--preset-dates-collapsed":e.collapse,"dp--preset-dates":!0}),"data-dp-mobile":u(T)},[(P(!0),q(_e,null,Be($.presetDates,(de,Rt)=>(P(),q(_e,{key:Rt},[de.slot?ie($.$slots,de.slot,{key:0,presetDate:C,label:de.label,value:de.value}):(P(),q("button",{key:1,type:"button",style:mt(de.style||{}),class:De(["dp__btn dp--preset-range",{"dp--preset-range-collapsed":e.collapse}]),"data-test-id":de.testId??void 0,"data-dp-mobile":u(T),onClick:ka(yt=>C(de.value,de.noTz),["prevent"]),onKeydown:yt=>u(ot)(yt,()=>C(de.value,de.noTz),!0)},Ke(de.label),47,fs))],64))),128))],10,ys)):W("",!0),ge("div",{ref_key:"calendarWrapperRef",ref:A,class:"dp__instance_calendar",role:"document"},[(P(),Se(Oa(te.value),Xe({ref_key:"dynCmpRef",ref:j},o.value,{"flow-step":u(fe),onMount:u(D),onUpdateFlowStep:u(g),onResetFlow:u(w),onFocusMenu:J,onSelectDate:oe[0]||(oe[0]=de=>$.$emit("select-date")),onDateUpdate:oe[1]||(oe[1]=de=>$.$emit("date-update",de)),onTooltipOpen:oe[2]||(oe[2]=de=>$.$emit("tooltip-open",de)),onTooltipClose:oe[3]||(oe[3]=de=>$.$emit("tooltip-close",de)),onAutoApply:oe[4]||(oe[4]=de=>$.$emit("auto-apply",de)),onRangeStart:oe[5]||(oe[5]=de=>$.$emit("range-start",de)),onRangeEnd:oe[6]||(oe[6]=de=>$.$emit("range-end",de)),onInvalidFixedRange:oe[7]||(oe[7]=de=>$.$emit("invalid-fixed-range",de)),onTimeUpdate:oe[8]||(oe[8]=de=>$.$emit("time-update")),onAmPmChange:oe[9]||(oe[9]=de=>$.$emit("am-pm-change",de)),onTimePickerOpen:oe[10]||(oe[10]=de=>$.$emit("time-picker-open",de)),onTimePickerClose:ke,onRecalculatePosition:ue,onUpdateMonthYear:oe[11]||(oe[11]=de=>$.$emit("update-month-year",de)),onAutoApplyInvalid:oe[12]||(oe[12]=de=>$.$emit("auto-apply-invalid",de)),onInvalidDate:oe[13]||(oe[13]=de=>$.$emit("invalid-date",de)),onOverlayToggle:oe[14]||(oe[14]=de=>$.$emit("overlay-toggle",de)),"onUpdate:internalModelValue":oe[15]||(oe[15]=de=>$.$emit("update:internal-model-value",de))}),et({_:2},[Be(O.value,(de,Rt)=>({name:de,fn:he(yt=>[ie($.$slots,de,Je(ut({...yt})))])}))]),1040,["flow-step","onMount","onUpdateFlowStep","onResetFlow"]))],512),$.$slots["right-sidebar"]?(P(),q("div",gs,[ie($.$slots,"right-sidebar",Je(ut(S.value)))])):W("",!0),$.$slots["action-extra"]?(P(),q("div",ws,[$.$slots["action-extra"]?ie($.$slots,"action-extra",{key:0,selectCurrentDate:le}):W("",!0)])):W("",!0)],14,ps),!$.autoApply||u(k).keepActionRow?(P(),Se(wu,Xe({key:3,"menu-mount":B.value},o.value,{"calendar-width":R.value,onClosePicker:oe[16]||(oe[16]=de=>$.$emit("close-picker")),onSelectDate:oe[17]||(oe[17]=de=>$.$emit("select-date")),onInvalidSelect:oe[18]||(oe[18]=de=>$.$emit("invalid-select")),onSelectNow:le}),et({_:2},[Be(u(h),(de,Rt)=>({name:de,fn:he(yt=>[ie($.$slots,de,Je(ut({...yt})))])}))]),1040,["menu-mount","calendar-width"])):W("",!0)],46,cs))}});var ta=(e=>(e.center="center",e.left="left",e.right="right",e))(ta||{});const bs=({menuRef:e,menuRefInner:t,inputRef:n,pickerWrapperRef:a,inline:r,emit:l,props:o,slots:c})=>{const{defaultedConfig:s}=Ee(o),x=Z({}),m=Z(!1),p=Z({top:"0",left:"0"}),f=Z(!1),k=ba(o,"teleportCenter");pt(k,()=>{p.value=JSON.parse(JSON.stringify({})),j()});const Y=w=>{if(o.teleport){const F=w.getBoundingClientRect();return{left:F.left+window.scrollX,top:F.top+window.scrollY}}return{top:0,left:0}},N=(w,F)=>{p.value.left=`${w+F-x.value.width}px`},T=w=>{p.value.left=`${w}px`},A=(w,F)=>{o.position===ta.left&&T(w),o.position===ta.right&&N(w,F),o.position===ta.center&&(p.value.left=`${w+F/2-x.value.width/2}px`)},R=w=>{const{width:F,height:te}=w.getBoundingClientRect(),{top:E,left:J}=Y(w);return{top:+E,left:+J,width:F,height:te}},_=()=>{p.value.left="50%",p.value.top="50%",p.value.transform="translate(-50%, -50%)",p.value.position="fixed",delete p.value.opacity},B=()=>{const w=We(n);p.value=o.altPosition(w)},j=(w=!0)=>{if(!r.value.enabled){if(k.value)return _();if(o.altPosition!==null)return B();if(w){const F=o.teleport?t.value?.$el:e.value;F&&(x.value=F.getBoundingClientRect()),l("recalculate-position")}return se()}},I=({inputEl:w,left:F,width:te})=>{window.screen.width>768&&!m.value&&A(F,te),L(w)},y=w=>{const{top:F,left:te,height:E,width:J}=R(w);p.value.top=`${E+F+ +o.offset}px`,f.value=!1,m.value||(p.value.left=`${te+J/2-x.value.width/2}px`),I({inputEl:w,left:te,width:J})},V=w=>{const{top:F,left:te,width:E}=R(w);p.value.top=`${F-+o.offset-x.value.height}px`,f.value=!0,I({inputEl:w,left:te,width:E})},L=w=>{if(o.autoPosition){const{left:F,width:te}=R(w),{left:E,right:J}=x.value;if(!m.value){if(Math.abs(E)!==Math.abs(J)){if(E<=0)return m.value=!0,T(F);if(J>=document.documentElement.clientWidth)return m.value=!0,N(F,te)}return A(F,te)}}},z=()=>{const w=We(n);if(w){if(o.autoPosition===gt.top)return gt.top;if(o.autoPosition===gt.bottom)return gt.bottom;const{height:F}=x.value,{top:te,height:E}=w.getBoundingClientRect(),J=window.innerHeight-te-E,S=te;return F<=J?gt.bottom:F>J&&F<=S?gt.top:J>=S?gt.bottom:gt.top}return gt.bottom},ne=w=>z()===gt.bottom?y(w):V(w),se=()=>{const w=We(n);if(w)return o.autoPosition?ne(w):y(w)},fe=function(w){if(w){const F=w.scrollHeight>w.clientHeight,te=window.getComputedStyle(w).overflowY.indexOf("hidden")!==-1;return F&&!te}return!0},g=function(w){return!w||w===document.body||w.nodeType===Node.DOCUMENT_FRAGMENT_NODE?window:fe(w)?w:g(w.assignedSlot&&s.value.shadowDom?w.assignedSlot.parentNode:w.parentNode)},D=w=>{if(w)switch(o.position){case ta.left:return{left:0,transform:"translateX(0)"};case ta.right:return{left:`${w.width}px`,transform:"translateX(-100%)"};default:return{left:`${w.width/2}px`,transform:"translateX(-50%)"}}return{}};return{openOnTop:f,menuStyle:p,xCorrect:m,setMenuPosition:j,getScrollableParent:g,shadowRender:(w,F,te)=>{const E=document.createElement("div"),J=We(n)?.getBoundingClientRect();E.setAttribute("id","dp--temp-container");const S=a.value?.clientWidth?a.value:document.body;S.append(E);const ue=D(J),h=s.value.shadowDom?Object.keys(c).filter(M=>["right-sidebar","left-sidebar","top-extra","action-extra"].includes(M)):Object.keys(c),O=vl(F,{...te,shadow:!0,style:{opacity:0,position:"absolute",...ue}},Object.fromEntries(h.map(M=>[M,c[M]])));w!=null&&(O.appContext=w.appContext),En(O,E),x.value=O.el?.getBoundingClientRect(),En(null,E),S.removeChild(E)}}},Ot=[{name:"clock-icon",use:["time","calendar","shared"]},{name:"arrow-left",use:["month-year","calendar","shared","year-mode"]},{name:"arrow-right",use:["month-year","calendar","shared","year-mode"]},{name:"arrow-up",use:["time","calendar","month-year","shared"]},{name:"arrow-down",use:["time","calendar","month-year","shared"]},{name:"calendar-icon",use:["month-year","time","calendar","shared","year-mode"]},{name:"day",use:["calendar","shared"]},{name:"month-overlay-value",use:["calendar","month-year","shared"]},{name:"year-overlay-value",use:["calendar","month-year","shared","year-mode"]},{name:"year-overlay",use:["month-year","shared"]},{name:"month-overlay",use:["month-year","shared"]},{name:"month-overlay-header",use:["month-year","shared"]},{name:"year-overlay-header",use:["month-year","shared"]},{name:"hours-overlay-value",use:["calendar","time","shared"]},{name:"hours-overlay-header",use:["calendar","time","shared"]},{name:"minutes-overlay-value",use:["calendar","time","shared"]},{name:"minutes-overlay-header",use:["calendar","time","shared"]},{name:"seconds-overlay-value",use:["calendar","time","shared"]},{name:"seconds-overlay-header",use:["calendar","time","shared"]},{name:"hours",use:["calendar","time","shared"]},{name:"minutes",use:["calendar","time","shared"]},{name:"month",use:["calendar","month-year","shared"]},{name:"year",use:["calendar","month-year","shared","year-mode"]},{name:"action-buttons",use:["action"]},{name:"action-preview",use:["action"]},{name:"calendar-header",use:["calendar","shared"]},{name:"marker-tooltip",use:["calendar","shared"]},{name:"action-extra",use:["menu"]},{name:"time-picker-overlay",use:["calendar","time","shared"]},{name:"am-pm-button",use:["calendar","time","shared"]},{name:"left-sidebar",use:["menu"]},{name:"right-sidebar",use:["menu"]},{name:"month-year",use:["month-year","shared"]},{name:"time-picker",use:["menu","shared"]},{name:"action-row",use:["action"]},{name:"marker",use:["calendar","shared"]},{name:"quarter",use:["shared"]},{name:"top-extra",use:["shared","month-year"]},{name:"tp-inline-arrow-up",use:["shared","time"]},{name:"tp-inline-arrow-down",use:["shared","time"]},{name:"menu-header",use:["menu"]}],ks=[{name:"trigger"},{name:"input-icon"},{name:"clear-icon"},{name:"dp-input"}],_s={all:()=>Ot,monthYear:()=>Ot.filter(e=>e.use.includes("month-year")),input:()=>ks,timePicker:()=>Ot.filter(e=>e.use.includes("time")),action:()=>Ot.filter(e=>e.use.includes("action")),calendar:()=>Ot.filter(e=>e.use.includes("calendar")),menu:()=>Ot.filter(e=>e.use.includes("menu")),shared:()=>Ot.filter(e=>e.use.includes("shared")),yearMode:()=>Ot.filter(e=>e.use.includes("year-mode"))},dt=(e,t,n)=>{const a=[];return _s[t]().forEach(r=>{e[r.name]&&a.push(r.name)}),n?.length&&n.forEach(r=>{r.slot&&a.push(r.slot)}),a},Pa=e=>{const t=H(()=>a=>e.value?a?e.value.open:e.value.close:""),n=H(()=>a=>e.value?a?e.value.menuAppearTop:e.value.menuAppearBottom:"");return{transitionName:t,showTransition:!!e.value,menuTransition:n}},Sa=(e,t,n)=>{const{defaultedRange:a,defaultedTz:r}=Ee(e),l=U(st(U(),r.value.timezone)),o=Z([{month:Te(l),year:be(l)}]),c=f=>{const k={hours:Yt(l),minutes:Vt(l),seconds:0};return a.value.enabled?[k[f],k[f]]:k[f]},s=xa({hours:c("hours"),minutes:c("minutes"),seconds:c("seconds")});pt(a,(f,k)=>{f.enabled!==k.enabled&&(s.hours=c("hours"),s.minutes=c("minutes"),s.seconds=c("seconds"))},{deep:!0});const x=H({get:()=>e.internalModelValue,set:f=>{!e.readonly&&!e.disabled&&t("update:internal-model-value",f)}}),m=H(()=>f=>o.value[f]?o.value[f].month:0),p=H(()=>f=>o.value[f]?o.value[f].year:0);return pt(x,(f,k)=>{n&&JSON.stringify(f??{})!==JSON.stringify(k??{})&&n()},{deep:!0}),{calendars:o,time:s,modelValue:x,month:m,year:p,today:l}},Ds=(e,t)=>{const{defaultedMultiCalendars:n,defaultedMultiDates:a,defaultedUI:r,defaultedHighlight:l,defaultedTz:o,propDates:c,defaultedRange:s}=Ee(t),{isDisabled:x}=Ht(t),m=Z(null),p=Z(st(new Date,o.value.timezone)),f=v=>{!v.current&&t.hideOffsetDates||(m.value=v.value)},k=()=>{m.value=null},Y=v=>Array.isArray(e.value)&&s.value.enabled&&e.value[0]&&m.value?v?qe(m.value,e.value[0]):Ve(m.value,e.value[0]):!0,N=(v,d)=>{const X=()=>e.value?d?e.value[0]||null:e.value[1]:null,$e=e.value&&Array.isArray(e.value)?X():null;return Pe(U(v.value),$e)},T=v=>{const d=Array.isArray(e.value)?e.value[0]:null;return v?!Ve(m.value??null,d):!0},A=(v,d=!0)=>(s.value.enabled||t.weekPicker)&&Array.isArray(e.value)&&e.value.length===2?t.hideOffsetDates&&!v.current?!1:Pe(U(v.value),e.value[d?0:1]):s.value.enabled?N(v,d)&&T(d)||Pe(v.value,Array.isArray(e.value)?e.value[0]:null)&&Y(d):!1,R=(v,d)=>{if(Array.isArray(e.value)&&e.value[0]&&e.value.length===1){const X=Pe(v.value,m.value);return d?qe(e.value[0],v.value)&&X:Ve(e.value[0],v.value)&&X}return!1},_=v=>!e.value||t.hideOffsetDates&&!v.current?!1:s.value.enabled?t.modelAuto&&Array.isArray(e.value)?Pe(v.value,e.value[0]?e.value[0]:p.value):!1:a.value.enabled&&Array.isArray(e.value)?e.value.some(d=>Pe(d,v.value)):Pe(v.value,e.value?e.value:p.value),B=v=>{if(s.value.autoRange||t.weekPicker){if(m.value){if(t.hideOffsetDates&&!v.current)return!1;const d=vt(m.value,+s.value.autoRange),X=At(U(m.value),t.weekStart);return t.weekPicker?Pe(X[1],U(v.value)):Pe(d,U(v.value))}return!1}return!1},j=v=>{if(s.value.autoRange||t.weekPicker){if(m.value){const d=vt(m.value,+s.value.autoRange);if(t.hideOffsetDates&&!v.current)return!1;const X=At(U(m.value),t.weekStart);return t.weekPicker?qe(v.value,X[0])&&Ve(v.value,X[1]):qe(v.value,m.value)&&Ve(v.value,d)}return!1}return!1},I=v=>{if(s.value.autoRange||t.weekPicker){if(m.value){if(t.hideOffsetDates&&!v.current)return!1;const d=At(U(m.value),t.weekStart);return t.weekPicker?Pe(d[0],v.value):Pe(m.value,v.value)}return!1}return!1},y=v=>Da(e.value,m.value,v.value),V=()=>t.modelAuto&&Array.isArray(t.internalModelValue)?!!t.internalModelValue[0]:!1,L=()=>t.modelAuto?Nr(t.internalModelValue):!0,z=v=>{if(t.weekPicker)return!1;const d=s.value.enabled?!A(v)&&!A(v,!1):!0;return!x(v.value)&&!_(v)&&!(!v.current&&t.hideOffsetDates)&&d},ne=v=>s.value.enabled?t.modelAuto?V()&&_(v):!1:_(v),se=v=>l.value?Hi(v.value,c.value.highlight):!1,fe=v=>{const d=x(v.value);return d&&(typeof l.value=="function"?!l.value(v.value,d):!l.value.options.highlightDisabled)},g=v=>typeof l.value=="function"?l.value(v.value):l.value.weekdays?.includes(v.value.getDay()),D=v=>(s.value.enabled||t.weekPicker)&&(!(n.value.count>0)||v.current)&&L()&&!(!v.current&&t.hideOffsetDates)&&!_(v)?y(v):!1,w=v=>{if(Array.isArray(e.value)&&e.value.length===1){const{before:d,after:X}=tr(+s.value.maxRange,e.value[0]);return ua(v.value,d)||Xt(v.value,X)}return!1},F=v=>{if(Array.isArray(e.value)&&e.value.length===1){const{before:d,after:X}=tr(+s.value.minRange,e.value[0]);return Da([d,X],e.value[0],v.value)}return!1},te=v=>s.value.enabled&&(s.value.maxRange||s.value.minRange)?s.value.maxRange&&s.value.minRange?w(v)||F(v):s.value.maxRange?w(v):F(v):!1,E=v=>{const{isRangeStart:d,isRangeEnd:X}=h(v),$e=s.value.enabled?d||X:!1;return{dp__cell_offset:!v.current,dp__pointer:!t.disabled&&!(!v.current&&t.hideOffsetDates)&&!x(v.value)&&!te(v),dp__cell_disabled:x(v.value)||te(v),dp__cell_highlight:!fe(v)&&(se(v)||g(v))&&!ne(v)&&!$e&&!I(v)&&!(D(v)&&t.weekPicker)&&!X,dp__cell_highlight_active:!fe(v)&&(se(v)||g(v))&&ne(v),dp__today:!t.noToday&&Pe(v.value,p.value)&&v.current,"dp--past":Ve(v.value,p.value),"dp--future":qe(v.value,p.value)}},J=v=>({dp__active_date:ne(v),dp__date_hover:z(v)}),S=v=>{if(e.value&&!Array.isArray(e.value)){const d=At(e.value,t.weekStart);return{...M(v),dp__range_start:Pe(d[0],v.value),dp__range_end:Pe(d[1],v.value),dp__range_between_week:qe(v.value,d[0])&&Ve(v.value,d[1])}}return{...M(v)}},ue=v=>{if(e.value&&Array.isArray(e.value)){const d=At(e.value[0],t.weekStart),X=e.value[1]?At(e.value[1],t.weekStart):[];return{...M(v),dp__range_start:Pe(d[0],v.value)||Pe(X[0],v.value),dp__range_end:Pe(d[1],v.value)||Pe(X[1],v.value),dp__range_between_week:qe(v.value,d[0])&&Ve(v.value,d[1])||qe(v.value,X[0])&&Ve(v.value,X[1]),dp__range_between:qe(v.value,d[1])&&Ve(v.value,X[0])}}return{...M(v)}},h=v=>{const d=n.value.count>0?v.current&&A(v)&&L():A(v)&&L(),X=n.value.count>0?v.current&&A(v,!1)&&L():A(v,!1)&&L();return{isRangeStart:d,isRangeEnd:X}},O=v=>{const{isRangeStart:d,isRangeEnd:X}=h(v);return{dp__range_start:d,dp__range_end:X,dp__range_between:D(v),dp__date_hover:Pe(v.value,m.value)&&!d&&!X&&!t.weekPicker,dp__date_hover_start:R(v,!0),dp__date_hover_end:R(v,!1)}},M=v=>({...O(v),dp__cell_auto_range:j(v),dp__cell_auto_range_start:I(v),dp__cell_auto_range_end:B(v)}),re=v=>s.value.enabled?s.value.autoRange?M(v):t.modelAuto?{...J(v),...O(v)}:t.weekPicker?ue(v):O(v):t.weekPicker?S(v):J(v);return{setHoverDate:f,clearHoverDate:k,getDayClassData:v=>t.hideOffsetDates&&!v.current?{}:{...E(v),...re(v),[t.dayClass?t.dayClass(v.value,t.internalModelValue):""]:!0,...r.value.calendarCell??{}}}},Ht=e=>{const{defaultedFilters:t,defaultedRange:n,propDates:a,defaultedMultiDates:r}=Ee(e),l=g=>a.value.disabledDates?typeof a.value.disabledDates=="function"?a.value.disabledDates(U(g)):!!Na(g,a.value.disabledDates):!1,o=g=>a.value.maxDate?e.yearPicker?be(g)>be(a.value.maxDate):qe(g,a.value.maxDate):!1,c=g=>a.value.minDate?e.yearPicker?be(g){const D=o(g),w=c(g),F=l(g),te=t.value.months.map(h=>+h).includes(Te(g)),E=e.disabledWeekDays.length?e.disabledWeekDays.some(h=>+h===$o(g)):!1,J=k(g),S=be(g),ue=jr(e.yearRange,S);return!(D||w||F||te||ue||E||J)},x=(g,D)=>Ve(...Bt(a.value.minDate,g,D))||Pe(...Bt(a.value.minDate,g,D)),m=(g,D)=>qe(...Bt(a.value.maxDate,g,D))||Pe(...Bt(a.value.maxDate,g,D)),p=(g,D,w)=>{let F=!1;return a.value.maxDate&&w&&m(g,D)&&(F=!0),a.value.minDate&&!w&&x(g,D)&&(F=!0),F},f=(g,D,w,F)=>{let te=!1;return F&&(a.value.minDate||a.value.maxDate)?a.value.minDate&&a.value.maxDate?te=p(g,D,w):(a.value.minDate&&x(g,D)||a.value.maxDate&&m(g,D))&&(te=!0):te=!0,te},k=g=>Array.isArray(a.value.allowedDates)&&!a.value.allowedDates.length?!0:a.value.allowedDates?!Na(g,a.value.allowedDates,Br(e.monthPicker,e.yearPicker)):!1,Y=g=>!s(g),N=g=>n.value.noDisabledRange?!yr({start:g[0],end:g[1]}).some(D=>Y(D)):!0,T=g=>{if(g){const D=be(g);return D>=+e.yearRange[0]&&D<=e.yearRange[1]}return!0},A=(g,D)=>!!(Array.isArray(g)&&g[D]&&(n.value.maxRange||n.value.minRange)&&T(g[D])),R=(g,D,w=0)=>{if(A(D,w)&&T(g)){const F=mr(g,D[w]),te=Lr(D[w],g),E=te.length===1?0:te.filter(S=>Y(S)).length,J=Math.abs(F)-(n.value.minMaxRawRange?0:E);if(n.value.minRange&&n.value.maxRange)return J>=+n.value.minRange&&J<=+n.value.maxRange;if(n.value.minRange)return J>=+n.value.minRange;if(n.value.maxRange)return J<=+n.value.maxRange}return!0},_=()=>!e.enableTimePicker||e.monthPicker||e.yearPicker||e.ignoreTimeValidation,B=g=>Array.isArray(g)?[g[0]?tn(g[0]):null,g[1]?tn(g[1]):null]:tn(g),j=(g,D,w)=>g.find(F=>+F.hours===Yt(D)&&F.minutes==="*"?!0:+F.minutes===Vt(D)&&+F.hours===Yt(D))&&w,I=(g,D,w)=>{const[F,te]=g,[E,J]=D;return!j(F,E,w)&&!j(te,J,w)&&w},y=(g,D)=>{const w=Array.isArray(D)?D:[D];return Array.isArray(e.disabledTimes)?Array.isArray(e.disabledTimes[0])?I(e.disabledTimes,w,g):!w.some(F=>j(e.disabledTimes,F,g)):g},V=(g,D)=>{const w=Array.isArray(D)?[Wt(D[0]),D[1]?Wt(D[1]):void 0]:Wt(D),F=!e.disabledTimes(w);return g&&F},L=(g,D)=>e.disabledTimes?Array.isArray(e.disabledTimes)?y(D,g):V(D,g):D,z=g=>{let D=!0;if(!g||_())return!0;const w=!a.value.minDate&&!a.value.maxDate?B(g):g;return(e.maxTime||a.value.maxDate)&&(D=er(e.maxTime,a.value.maxDate,"max",Ze(w),D)),(e.minTime||a.value.minDate)&&(D=er(e.minTime,a.value.minDate,"min",Ze(w),D)),L(g,D)},ne=g=>{if(!e.monthPicker)return!0;let D=!0;const w=U(bt(g));if(a.value.minDate&&a.value.maxDate){const F=U(bt(a.value.minDate)),te=U(bt(a.value.maxDate));return qe(w,F)&&Ve(w,te)||Pe(w,F)||Pe(w,te)}if(a.value.minDate){const F=U(bt(a.value.minDate));D=qe(w,F)||Pe(w,F)}if(a.value.maxDate){const F=U(bt(a.value.maxDate));D=Ve(w,F)||Pe(w,F)}return D},se=H(()=>g=>!e.enableTimePicker||e.ignoreTimeValidation?!0:z(g)),fe=H(()=>g=>e.monthPicker?Array.isArray(g)&&(n.value.enabled||r.value.enabled)?!g.filter(D=>!ne(D)).length:ne(g):!0);return{isDisabled:Y,validateDate:s,validateMonthYearInRange:f,isDateRangeAllowed:N,checkMinMaxRange:R,isValidTime:z,isTimeValid:se,isMonthValid:fe}},Va=()=>{const e=H(()=>(a,r)=>a?.includes(r)),t=H(()=>(a,r)=>a.count?a.solo?!0:r===0:!0),n=H(()=>(a,r)=>a.count?a.solo?!0:r===a.count-1:!0);return{hideNavigationButtons:e,showLeftIcon:t,showRightIcon:n}},xs=(e,t,n)=>{const a=Z(0),r=xa({[jt.timePicker]:!e.enableTimePicker||e.timePicker||e.monthPicker,[jt.calendar]:!1,[jt.header]:!1}),l=H(()=>e.monthPicker||e.timePicker),o=p=>{if(e.flow?.length){if(!p&&l.value)return m();r[p]=!0,Object.keys(r).filter(f=>!r[f]).length||m()}},c=()=>{e.flow?.length&&a.value!==-1&&(a.value+=1,t("flow-step",a.value),m()),e.flow?.length===a.value&&ct().then(()=>s())},s=()=>{a.value=-1},x=(p,f,...k)=>{e.flow[a.value]===p&&n.value&&n.value[f]?.(...k)},m=(p=0)=>{p&&(a.value+=p),x(rt.month,"toggleMonthPicker",!0),x(rt.year,"toggleYearPicker",!0),x(rt.calendar,"toggleTimePicker",!1,!0),x(rt.time,"toggleTimePicker",!0,!0);const f=e.flow[a.value];(f===rt.hours||f===rt.minutes||f===rt.seconds)&&x(f,"toggleTimePicker",!0,!0,f)};return{childMount:o,updateFlowStep:c,resetFlow:s,handleFlow:m,flowStep:a}},Ms={key:1,class:"dp__input_wrap"},Ts=["id","name","inputmode","placeholder","disabled","readonly","required","value","autocomplete","aria-label","aria-disabled","aria-invalid"],Ps={key:2,class:"dp--clear-btn"},Ss=["aria-label"],$s=Qe({compatConfig:{MODE:3},__name:"DatepickerInput",props:{isMenuOpen:{type:Boolean,default:!1},inputValue:{type:String,default:""},...Ba},emits:["clear","open","update:input-value","set-input-date","close","select-date","set-empty-date","toggle","focus-prev","focus","blur","real-blur","text-input"],setup(e,{expose:t,emit:n}){const a=n,r=e,{defaultedTextInput:l,defaultedAriaLabels:o,defaultedInline:c,defaultedConfig:s,defaultedRange:x,defaultedMultiDates:m,defaultedUI:p,getDefaultPattern:f,getDefaultStartTime:k}=Ee(r),{checkMinMaxRange:Y}=Ht(r),N=Z(),T=Z(null),A=Z(!1),R=Z(!1),_=H(()=>({dp__pointer:!r.disabled&&!r.readonly&&!l.value.enabled,dp__disabled:r.disabled,dp__input_readonly:!l.value.enabled,dp__input:!0,dp__input_not_clearable:!r.clearable,dp__input_icon_pad:!r.hideInputIcon,dp__input_valid:typeof r.state=="boolean"?r.state:!1,dp__input_invalid:typeof r.state=="boolean"?!r.state:!1,dp__input_focus:A.value||r.isMenuOpen,dp__input_reg:!l.value.enabled,...p.value.input??{}})),B=()=>{a("set-input-date",null),r.clearable&&r.autoApply&&(a("set-empty-date"),N.value=null)},j=S=>{const ue=k();return qi(S,l.value.format??f(),ue??Hr({},r.enableSeconds),r.inputValue,R.value,r.formatLocale)},I=S=>{const{rangeSeparator:ue}=l.value,[h,O]=S.split(`${ue}`);if(h){const M=j(h.trim()),re=O?j(O.trim()):void 0;if(Xt(M,re))return;const v=M&&re?[M,re]:[M];Y(re,v,0)&&(N.value=M?v:null)}},y=()=>{R.value=!0},V=S=>{if(x.value.enabled)I(S);else if(m.value.enabled){const ue=S.split(";");N.value=ue.map(h=>j(h.trim())).filter(h=>h)}else N.value=j(S)},L=S=>{const ue=typeof S=="string"?S:S.target?.value;ue!==""?(l.value.openMenu&&!r.isMenuOpen&&a("open"),V(ue),a("set-input-date",N.value)):B(),R.value=!1,a("update:input-value",ue),a("text-input",S,N.value)},z=S=>{l.value.enabled?(V(S.target.value),l.value.enterSubmit&&hn(N.value)&&r.inputValue!==""?(a("set-input-date",N.value,!0),N.value=null):l.value.enterSubmit&&r.inputValue===""&&(N.value=null,a("clear"))):fe(S)},ne=(S,ue)=>{l.value.enabled&&l.value.tabSubmit&&!ue&&V(S.target.value),l.value.tabSubmit&&hn(N.value)&&r.inputValue!==""?(a("set-input-date",N.value,!0,!0),N.value=null):l.value.tabSubmit&&r.inputValue===""&&(N.value=null,a("clear",!0))},se=()=>{A.value=!0,a("focus"),ct().then(()=>{l.value.enabled&&l.value.selectOnFocus&&T.value?.select()})},fe=S=>{if(Et(S,s.value,!0),l.value.enabled&&l.value.openMenu&&!c.value.input){if(l.value.openMenu==="open"&&!r.isMenuOpen)return a("open");if(l.value.openMenu==="toggle")return a("toggle")}else l.value.enabled||a("toggle")},g=()=>{a("real-blur"),A.value=!1,(!r.isMenuOpen||c.value.enabled&&c.value.input)&&a("blur"),r.autoApply&&l.value.enabled&&N.value&&!r.isMenuOpen&&(a("set-input-date",N.value),a("select-date"),N.value=null)},D=S=>{Et(S,s.value,!0),a("clear")},w=()=>{a("close")},F=S=>{if(S.key==="Tab"&&ne(S),S.key==="Enter"&&z(S),S.key==="Escape"&&l.value.escClose&&w(),!l.value.enabled){if(S.code==="Tab")return;S.preventDefault()}},te=()=>{T.value?.focus({preventScroll:!0})},E=S=>{N.value=S},J=S=>{S.key===Ne.tab&&ne(S,!0)};return t({focusInput:te,setParsedDate:E}),(S,ue)=>(P(),q("div",{onClick:fe},[S.$slots.trigger&&!S.$slots["dp-input"]&&!u(c).enabled?ie(S.$slots,"trigger",{key:0}):W("",!0),!S.$slots.trigger&&(!u(c).enabled||u(c).input)?(P(),q("div",Ms,[S.$slots["dp-input"]&&!S.$slots.trigger&&(!u(c).enabled||u(c).enabled&&u(c).input)?ie(S.$slots,"dp-input",{key:0,value:e.inputValue,isMenuOpen:e.isMenuOpen,onInput:L,onEnter:z,onTab:ne,onClear:D,onBlur:g,onKeypress:F,onPaste:y,onFocus:se,openMenu:()=>S.$emit("open"),closeMenu:()=>S.$emit("close"),toggleMenu:()=>S.$emit("toggle")}):W("",!0),S.$slots["dp-input"]?W("",!0):(P(),q("input",{key:1,id:S.uid?`dp-input-${S.uid}`:void 0,ref_key:"inputRef",ref:T,"data-test-id":"dp-input",name:S.name,class:De(_.value),inputmode:u(l).enabled?"text":"none",placeholder:S.placeholder,disabled:S.disabled,readonly:S.readonly,required:S.required,value:e.inputValue,autocomplete:S.autocomplete,"aria-label":u(o)?.input,"aria-disabled":S.disabled||void 0,"aria-invalid":S.state===!1?!0:void 0,onInput:L,onBlur:g,onFocus:se,onKeypress:F,onKeydown:ue[0]||(ue[0]=h=>F(h)),onPaste:y},null,42,Ts)),ge("div",{onClick:ue[3]||(ue[3]=h=>a("toggle"))},[S.$slots["input-icon"]&&!S.hideInputIcon?(P(),q("span",{key:0,class:"dp__input_icon",onClick:ue[1]||(ue[1]=h=>a("toggle"))},[ie(S.$slots,"input-icon")])):W("",!0),!S.$slots["input-icon"]&&!S.hideInputIcon&&!S.$slots["dp-input"]?(P(),Se(u(pa),{key:1,"aria-label":u(o)?.calendarIcon,class:"dp__input_icon dp__input_icons",onClick:ue[2]||(ue[2]=h=>a("toggle"))},null,8,["aria-label"])):W("",!0)]),S.$slots["clear-icon"]&&(S.alwaysClearable||e.inputValue&&S.clearable&&!S.disabled&&!S.readonly)?(P(),q("span",Ps,[ie(S.$slots,"clear-icon",{clear:D})])):W("",!0),!S.$slots["clear-icon"]&&(S.alwaysClearable||S.clearable&&e.inputValue&&!S.disabled&&!S.readonly)?(P(),q("button",{key:3,"aria-label":u(o)?.clearInput,class:"dp--clear-btn",type:"button",onKeydown:ue[4]||(ue[4]=h=>u(ot)(h,()=>D(h),!0,J)),onClick:ue[5]||(ue[5]=ka(h=>D(h),["prevent"]))},[Oe(u(Rr),{class:"dp__input_icons","data-test-id":"clear-icon"})],40,Ss)):W("",!0)])):W("",!0)]))}}),As=typeof window<"u"?window:void 0,un=()=>{},Cs=e=>yl()?(fl(e),!0):!1,Ys=(e,t,n,a)=>{if(!e)return un;let r=un;const l=pt(()=>u(e),c=>{r(),c&&(c.removeEventListener(t,n),c.addEventListener(t,n,a),r=()=>{c.removeEventListener(t,n,a),r=un})},{immediate:!0,flush:"post"}),o=()=>{l(),r()};return Cs(o),o},Rs=(e,t,n,a={})=>{const{window:r=As,event:l="pointerdown"}=a;return r?Ys(r,l,o=>{const c=We(e),s=We(t);!c||!s||c===o.target||o.composedPath().includes(c)||o.composedPath().includes(s)||n(o)},{passive:!0}):void 0},Is=["data-dp-mobile"],Ns=Qe({compatConfig:{MODE:3},__name:"VueDatePicker",props:{...Ba},emits:["update:model-value","update:model-timezone-value","text-submit","closed","cleared","open","focus","blur","internal-model-change","recalculate-position","flow-step","update-month-year","invalid-select","invalid-fixed-range","tooltip-open","tooltip-close","time-picker-open","time-picker-close","am-pm-change","range-start","range-end","date-update","invalid-date","overlay-toggle","text-input"],setup(e,{expose:t,emit:n}){const a=n,r=e,l=Gt(),o=Z(!1),c=ba(r,"modelValue"),s=ba(r,"timezone"),x=Z(null),m=Z(null),p=Z(null),f=Z(!1),k=Z(null),Y=Z(!1),N=Z(!1),T=Z(!1),A=Z(!1),{setMenuFocused:R,setShiftKey:_}=Wr(),{clearArrowNav:B}=Lt(),{validateDate:j,isValidTime:I}=Ht(r),{defaultedTransitions:y,defaultedTextInput:V,defaultedInline:L,defaultedConfig:z,defaultedRange:ne,defaultedMultiDates:se}=Ee(r),{menuTransition:fe,showTransition:g}=Pa(y),{isMobile:D}=el(z),w=pl();tt(()=>{v(r.modelValue),ct().then(()=>{L.value.enabled||(h(k.value)?.addEventListener("scroll",C),window?.addEventListener("resize",xe))}),L.value.enabled&&(o.value=!0),window?.addEventListener("keyup",me),window?.addEventListener("keydown",at)}),va(()=>{L.value.enabled||(h(k.value)?.removeEventListener("scroll",C),window?.removeEventListener("resize",xe)),window?.removeEventListener("keyup",me),window?.removeEventListener("keydown",at)});const F=dt(l,"all",r.presetDates),te=dt(l,"input");pt([c,s],()=>{v(c.value)},{deep:!0});const{openOnTop:E,menuStyle:J,xCorrect:S,setMenuPosition:ue,getScrollableParent:h,shadowRender:O}=bs({menuRef:x,menuRefInner:m,inputRef:p,pickerWrapperRef:k,inline:L,emit:a,props:r,slots:l}),{inputValue:M,internalModelValue:re,parseExternalModelValue:v,emitModelValue:d,formatInputValue:X,checkBeforeEmit:$e}=hu(a,r,{isInputFocused:f,isTextInputDate:A}),G=H(()=>({dp__main:!0,dp__theme_dark:r.dark,dp__theme_light:!r.dark,dp__flex_display:L.value.enabled,"dp--flex-display-collapsed":T.value,dp__flex_display_with_input:L.value.input})),ke=H(()=>r.dark?"dp__theme_dark":"dp__theme_light"),K=H(()=>r.teleport?{to:typeof r.teleport=="boolean"?"body":r.teleport,disabled:!r.teleport||L.value.enabled}:{}),ae=H(()=>({class:"dp__outer_menu_wrap"})),i=H(()=>L.value.enabled&&(r.timePicker||r.monthPicker||r.yearPicker||r.quarterPicker)),le=()=>p.value?.$el?.getBoundingClientRect()??{width:0,left:0,right:0},C=()=>{o.value&&(z.value.closeOnScroll?it():ue())},xe=()=>{o.value&&ue();const Q=m.value?.$el.getBoundingClientRect().width??0;T.value=document.body.offsetWidth<=Q},me=Q=>{Q.key==="Tab"&&!L.value.enabled&&!r.teleport&&z.value.tabOutClosesMenu&&(k.value.contains(document.activeElement)||it()),N.value=Q.shiftKey},at=Q=>{N.value=Q.shiftKey},He=()=>{!r.disabled&&!r.readonly&&(O(w,lr,r),ue(!1),o.value=!0,o.value&&a("open"),o.value||Zt(),v(r.modelValue))},ht=()=>{M.value="",Zt(),m.value?.onValueCleared(),p.value?.setParsedDate(null),a("update:model-value",null),a("update:model-timezone-value",null),a("cleared"),z.value.closeOnClearValue&&it()},$=()=>{const Q=re.value;return!Q||!Array.isArray(Q)&&j(Q)?!0:Array.isArray(Q)?se.value.enabled||Q.length===2&&j(Q[0])&&j(Q[1])?!0:ne.value.partialRange&&!r.timePicker?j(Q[0]):!1:!1},oe=()=>{$e()&&$()?(d(),it()):a("invalid-select",re.value)},de=Q=>{Rt(),d(),z.value.closeOnAutoApply&&!Q&&it()},Rt=()=>{p.value&&V.value.enabled&&p.value.setParsedDate(re.value)},yt=(Q=!1)=>{r.autoApply&&I(re.value)&&$()&&(ne.value.enabled&&Array.isArray(re.value)?(ne.value.partialRange||re.value.length===2)&&de(Q):de(Q))},Zt=()=>{V.value.enabled||(re.value=null)},it=(Q=!1)=>{Q&&re.value&&z.value.setDateOnMenuClose&&oe(),L.value.enabled||(o.value&&(o.value=!1,S.value=!1,R(!1),_(!1),B(),a("closed"),M.value&&v(c.value)),Zt(),a("blur"),m.value?.$el?.remove())},La=(Q,ce,pe=!1)=>{if(!Q){re.value=null;return}const $t=Array.isArray(Q)?!Q.some(Ft=>!j(Ft)):j(Q),Mt=I(Q);$t&&Mt?(A.value=!0,re.value=Q,ce?(Y.value=pe,oe(),a("text-submit")):r.autoApply&&yt(!0),ct().then(()=>{A.value=!1})):a("invalid-date",Q)},Ha=()=>{r.autoApply&&I(re.value)&&d(),Rt()},$a=()=>o.value?it():He(),Fa=Q=>{re.value=Q},qa=()=>{V.value.enabled&&(f.value=!0,X()),a("focus")},Ua=()=>{V.value.enabled&&(f.value=!1,v(r.modelValue),Y.value&&Li(k.value,N.value)?.focus()),a("blur")},ja=Q=>{m.value&&m.value.updateMonthYear(0,{month:Zn(Q.month),year:Zn(Q.year)})},Wa=Q=>{v(Q??r.modelValue)},b=(Q,ce)=>{m.value?.switchView(Q,ce)},ee=(Q,ce)=>z.value.onClickOutside?z.value.onClickOutside(Q,ce):it(!0),ve=(Q=0)=>{m.value?.handleFlow(Q)},Me=()=>x;return Rs(x,p,Q=>ee($,Q)),t({closeMenu:it,selectDate:oe,clearValue:ht,openMenu:He,onScroll:C,formatInputValue:X,updateInternalModelValue:Fa,setMonthYear:ja,parseModel:Wa,switchView:b,toggleMenu:$a,handleFlow:ve,getDpWrapMenuRef:Me}),(Q,ce)=>(P(),q("div",{ref_key:"pickerWrapperRef",ref:k,class:De(G.value),"data-datepicker-instance":"","data-dp-mobile":u(D)},[Oe($s,Xe({ref_key:"inputRef",ref:p,"input-value":u(M),"onUpdate:inputValue":ce[0]||(ce[0]=pe=>Bn(M)?M.value=pe:null),"is-menu-open":o.value},Q.$props,{onClear:ht,onOpen:He,onSetInputDate:La,onSetEmptyDate:u(d),onSelectDate:oe,onToggle:$a,onClose:it,onFocus:qa,onBlur:Ua,onRealBlur:ce[1]||(ce[1]=pe=>f.value=!1),onTextInput:ce[2]||(ce[2]=pe=>Q.$emit("text-input",pe))}),et({_:2},[Be(u(te),(pe,$t)=>({name:pe,fn:he(Mt=>[ie(Q.$slots,pe,Je(ut(Mt)))])}))]),1040,["input-value","is-menu-open","onSetEmptyDate"]),(P(),Se(Oa(Q.teleport?or:"div"),Je(ut(K.value)),{default:he(()=>[Oe(ma,{name:u(fe)(u(E)),css:u(g)&&!u(L).enabled},{default:he(()=>[o.value?(P(),q("div",Xe({key:0,ref_key:"dpWrapMenuRef",ref:x},ae.value,{class:{"dp--menu-wrapper":!u(L).enabled},style:u(L).enabled?void 0:u(J)}),[Oe(lr,Xe({ref_key:"dpMenuRef",ref:m},Q.$props,{"internal-model-value":u(re),"onUpdate:internalModelValue":ce[3]||(ce[3]=pe=>Bn(re)?re.value=pe:null),class:{[ke.value]:!0,"dp--menu-wrapper":Q.teleport},"open-on-top":u(E),"no-overlay-focus":i.value,collapse:T.value,"get-input-rect":le,"is-text-input-date":A.value,onClosePicker:it,onSelectDate:oe,onAutoApply:yt,onTimeUpdate:Ha,onFlowStep:ce[4]||(ce[4]=pe=>Q.$emit("flow-step",pe)),onUpdateMonthYear:ce[5]||(ce[5]=pe=>Q.$emit("update-month-year",pe)),onInvalidSelect:ce[6]||(ce[6]=pe=>Q.$emit("invalid-select",u(re))),onAutoApplyInvalid:ce[7]||(ce[7]=pe=>Q.$emit("invalid-select",pe)),onInvalidFixedRange:ce[8]||(ce[8]=pe=>Q.$emit("invalid-fixed-range",pe)),onRecalculatePosition:u(ue),onTooltipOpen:ce[9]||(ce[9]=pe=>Q.$emit("tooltip-open",pe)),onTooltipClose:ce[10]||(ce[10]=pe=>Q.$emit("tooltip-close",pe)),onTimePickerOpen:ce[11]||(ce[11]=pe=>Q.$emit("time-picker-open",pe)),onTimePickerClose:ce[12]||(ce[12]=pe=>Q.$emit("time-picker-close",pe)),onAmPmChange:ce[13]||(ce[13]=pe=>Q.$emit("am-pm-change",pe)),onRangeStart:ce[14]||(ce[14]=pe=>Q.$emit("range-start",pe)),onRangeEnd:ce[15]||(ce[15]=pe=>Q.$emit("range-end",pe)),onDateUpdate:ce[16]||(ce[16]=pe=>Q.$emit("date-update",pe)),onInvalidDate:ce[17]||(ce[17]=pe=>Q.$emit("invalid-date",pe)),onOverlayToggle:ce[18]||(ce[18]=pe=>Q.$emit("overlay-toggle",pe)),onMenuBlur:ce[19]||(ce[19]=pe=>Q.$emit("blur"))}),et({_:2},[Be(u(F),(pe,$t)=>({name:pe,fn:he(Mt=>[ie(Q.$slots,pe,Je(ut({...Mt})))])}))]),1040,["internal-model-value","class","open-on-top","no-overlay-focus","collapse","is-text-input-date","onRecalculatePosition"])],16)):W("",!0)]),_:3},8,["name","css"])]),_:3},16))],10,Is))}}),On=(()=>{const e=Ns;return e.install=t=>{t.component("Vue3DatePicker",e)},e})(),Os=Object.freeze(Object.defineProperty({__proto__:null,default:On},Symbol.toStringTag,{value:"Module"}));Object.entries(Os).forEach(([e,t])=>{e!=="default"&&(On[e]=t)}),ur(bl);function Bs(e){return e.slice(e.indexOf("/")+1).replaceAll("/"," - ").replaceAll("_"," ")}function Es(){return Intl.supportedValuesOf("timeZone").filter(e=>!e.startsWith("Etc/")).map(e=>({timezoneId:e,label:Bs(e)})).sort((e,t)=>e.timezoneId.localeCompare(t.timezoneId))}const zs=Qe({__name:"NcTimezonePicker",props:sn({additionalTimezones:{default:()=>[]},uid:{default:kl()}},{modelValue:{default:"floating"},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const t=ir(e,"modelValue"),n=e,a=H(()=>n.additionalTimezones.map(({timezoneId:o,label:c})=>({timezoneId:o,label:c}))),r=H(()=>{const o=Es();return o.unshift(...a.value),o});function l(o,c,s){const x=s.trim().split(/\s+/),m=Object.values(o);return x.every(p=>m.some(f=>f.toLowerCase().includes(p.toLowerCase())))}return(o,c)=>(P(),Se(xl,{modelValue:t.value,"onUpdate:modelValue":c[0]||(c[0]=s=>t.value=s),"aria-label-combobox":u(we)("Search for time zone"),clearable:!1,filterBy:l,multiple:!1,options:r.value,placeholder:u(we)("Type to search time zone"),uid:e.uid,reduce:s=>s.timezoneId,label:"label"},null,8,["modelValue","aria-label-combobox","options","placeholder","uid","reduce"]))}});ur(_l);const Vs={class:"vue-date-time-picker__wrapper"},Ls={ref:"target",class:"vue-date-time-picker__wrapper vue-date-time-picker__wrapper--teleport"},Hs=Qe({__name:"NcDateTimePicker",props:sn({appendToBody:{type:Boolean},ariaLabel:{default:we("Datepicker input")},ariaLabelMenu:{default:we("Datepicker menu")},clearable:{type:Boolean},confirm:{type:Boolean},format:{type:[String,Function],default:void 0},locale:{default:Kt()},max:{default:void 0},min:{default:void 0},minuteStep:{default:10},modelValue:{default:null},placeholder:{default:void 0},showTimezoneSelect:{type:Boolean},showWeekNumber:{type:Boolean},type:{default:"date"},inline:{type:Boolean,default:!1}},{timezoneId:{default:"UTC"},timezoneIdModifiers:{}}),emits:sn(["update:modelValue","update:timezoneId","blur"],["update:timezoneId"]),setup(e,{emit:t}){const n=ir(e,"timezoneId"),a=e,r=t,l=zn("target"),o=zn("picker"),c=H(()=>{if(a.modelValue===null&&a.clearable)return null;if(a.type==="week"){const y=a.modelValue instanceof Date?a.modelValue:new Date,V=new Date(y);return V.setUTCDate(y.getUTCDate()+6),[y,V]}else{if(a.type==="year")return(a.modelValue instanceof Date?a.modelValue:new Date).getUTCFullYear();if(a.type==="month"){const y=a.modelValue instanceof Date?a.modelValue:new Date;return{year:y.getUTCFullYear(),month:y.getUTCMonth()}}else if(a.type==="time"){const y=a.modelValue instanceof Date?a.modelValue:new Date;return{hours:y.getHours(),minutes:y.getMinutes(),seconds:y.getSeconds()}}else if(a.type==="time-range"){const y=[a.modelValue].flat();if(y.length!==2){const V=new Date,L=new Date(V);L.setHours(L.getHours()+1),y.splice(0,2,V,L)}return y.map(V=>({hours:V.getHours(),minutes:V.getMinutes(),seconds:V.getSeconds()}))}else if(a.type.endsWith("-range")){if(a.modelValue===void 0){const y=new Date,V=new Date(y);return V.setUTCDate(y.getUTCDate()+7),[y,V]}return a.modelValue}}return a.modelValue??new Date}),s=H(()=>a.type==="date"?we("Select date"):a.type==="time"?we("Select time"):a.type==="datetime"?we("Select date and time"):a.type==="week"?we("Select week"):a.type==="month"?we("Select month"):a.type==="year"?we("Select year"):a.type.endsWith("-range")?we("Select time range"):we("Select date and time")),x=H(()=>{if(a.format)return a.format;if(a.type==="week")return"RR-II";let y;if(a.type==="date"||a.type==="date-range"?y=new Intl.DateTimeFormat(Kt(),{dateStyle:"medium"}):a.type==="time"||a.type==="time-range"?y=new Intl.DateTimeFormat(Kt(),{timeStyle:"short"}):a.type==="datetime"||a.type==="datetime-range"?y=new Intl.DateTimeFormat(Kt(),{dateStyle:"medium",timeStyle:"short"}):a.type==="month"?y=new Intl.DateTimeFormat(Kt(),{year:"numeric",month:"2-digit"}):a.type==="year"&&(y=new Intl.DateTimeFormat(Kt(),{year:"numeric"})),y)return V=>Array.isArray(V)?y.formatRange(V[0],V[1]):y.format(V)}),m=H(()=>({timePicker:a.type==="time"||a.type==="time-range",yearPicker:a.type==="year",monthPicker:a.type==="month",weekPicker:a.type==="week",range:a.type.endsWith("-range")&&{partialRange:!1},enableTimePicker:!(a.type==="date"||a.type==="date-range"),flow:a.type==="datetime"?["calendar","time"]:void 0})),p=H(()=>a.min&&{hours:a.min.getHours(),minutes:a.min.getMinutes(),seconds:a.min.getSeconds()}),f=H(()=>a.max&&{hours:a.max.getHours(),minutes:a.max.getMinutes(),seconds:a.max.getSeconds()});function k(y){if(y===null)return r("update:modelValue",null);if(a.type==="time")r("update:modelValue",Y(y));else if(a.type==="time-range"){const V=Y(y[0]),L=Y(y[1]);L.getTime()({toggleOverlay:we("Toggle overlay"),menu:a.ariaLabelMenu,input:a.ariaLabel,openTimePicker:we("Open time picker"),closeTimePicker:we("Close time Picker"),incrementValue:y=>y==="hours"?we("Increment hours"):y==="minutes"?we("Increment minutes"):we("Increment seconds"),decrementValue:y=>y==="hours"?we("Decrement hours"):y==="minutes"?we("Decrement minutes"):we("Decrement seconds"),openTpOverlay:y=>y==="hours"?we("Open hours overlay"):y==="minutes"?we("Open minutes overlay"):we("Open seconds overlay"),amPmButton:we("Switch AM/PM mode"),openYearsOverlay:we("Open years overlay"),openMonthsOverlay:we("Open months overlay"),nextMonth:we("Next month"),prevMonth:we("Previous month"),nextYear:we("Next year"),prevYear:we("Previous year"),weekDay:y=>cl()[y],clearInput:we("Clear value"),calendarIcon:we("Calendar icon"),timePicker:we("Time picker"),monthPicker:y=>y?we("Month picker overlay"):we("Month picker"),yearPicker:y=>y?we("Year picker overlay"):we("Year picker")}));function _(){o.value.selectDate()}function B(){o.value.closeMenu()}const j=H(()=>a.type==="datetime"?{minDate:a.min,maxDate:a.max,minTime:a.min&&c.value&&I(a.min,c.value)?p.value:void 0,maxTime:a.max&&c.value&&I(a.max,c.value)?f.value:void 0}:a.type==="datetime-range"?{minDate:a.min,maxDate:a.max,minTime:a.min&&c.value&&I(a.min,c.value[0])?p.value:void 0,maxTime:a.max&&c.value&&I(a.max,c.value[1])?f.value:void 0}:a.type==="time"||a.type==="time-range"?{minTime:a.min?p.value:void 0,maxTime:a.max?f.value:void 0}:{minDate:a.min,maxDate:a.max});function I(y,V){return y.getFullYear()===V.getFullYear()&&y.getMonth()===V.getMonth()&&y.getDate()===V.getDate()}return(y,V)=>(P(),q("div",Vs,[Oe(u(On),Xe({ref:"picker","aria-labels":R.value,autoApply:!e.confirm,class:["vue-date-time-picker",{"vue-date-time-picker--clearable":e.clearable}],cancelText:u(we)("Cancel"),clearable:e.clearable,dayNames:T,placeholder:e.placeholder??s.value,format:x.value,locale:e.locale,minDate:j.value.minDate,maxDate:j.value.maxDate,minTime:j.value.minTime,maxTime:j.value.maxTime,minutesIncrement:e.minuteStep,modelValue:c.value,nowButtonLabel:u(we)("Now"),selectText:u(we)("Pick"),sixWeeks:"fair",inline:e.inline,teleport:e.appendToBody?l.value||void 0:!1,textInput:"",weekNumName:u(A),weekNumbers:e.showWeekNumber?{type:"iso"}:void 0,weekStart:u(N)},m.value,{"onUpdate:modelValue":k,onBlur:V[1]||(V[1]=L=>r("blur"))}),et({"action-buttons":he(()=>[Oe(u(Ga),{size:"small",variant:"tertiary",onClick:B},{default:he(()=>[_t(Ke(u(we)("Cancel")),1)]),_:1}),Oe(u(Ga),{size:"small",variant:"primary",onClick:_},{default:he(()=>[_t(Ke(u(we)("Pick")),1)]),_:1})]),"clear-icon":he(({clear:L})=>[Oe(u(Ga),{"aria-label":u(we)("Clear value"),variant:"tertiary-no-background",onClick:L},{icon:he(()=>[Oe(qt,{inline:"",path:u(ul),size:20},null,8,["path"])]),_:1},8,["aria-label","onClick"])]),"input-icon":he(()=>[Oe(qt,{path:u(il),size:20},null,8,["path"])]),"clock-icon":he(()=>[Oe(qt,{inline:"",path:u(ol),size:20},null,8,["path"])]),"arrow-left":he(()=>[Oe(qt,{inline:"",path:u(ll),size:20},null,8,["path"])]),"arrow-right":he(()=>[Oe(qt,{inline:"",path:u(rl),size:20},null,8,["path"])]),"arrow-down":he(()=>[Oe(qt,{inline:"",path:u(nl),size:20},null,8,["path"])]),"arrow-up":he(()=>[Oe(qt,{inline:"",path:u(al),size:20},null,8,["path"])]),_:2},[e.showTimezoneSelect?{name:"action-extra",fn:he(()=>[Oe(zs,{modelValue:n.value,"onUpdate:modelValue":V[0]||(V[0]=L=>n.value=L),class:"vue-date-time-picker__timezone",appendToBody:!1,inputLabel:u(we)("Time zone")},null,8,["modelValue","inputLabel"])]),key:"0"}:void 0]),1040,["aria-labels","autoApply","class","cancelText","clearable","placeholder","format","locale","minDate","maxDate","minTime","maxTime","minutesIncrement","modelValue","nowButtonLabel","selectText","inline","teleport","weekNumName","weekNumbers","weekStart"]),(P(),Se(or,{to:"body",disabled:!e.appendToBody},[ge("div",Ls,null,512)],8,["disabled"]))]))}}),Ks=Dl(Hs,[["__scopeId","data-v-e6654786"]]);export{Ks as default}; +//# sourceMappingURL=index-CQct0mOs.chunk.mjs.map diff --git a/dist/index-CMXcwXc6.chunk.mjs.license b/dist/index-CQct0mOs.chunk.mjs.license similarity index 100% rename from dist/index-CMXcwXc6.chunk.mjs.license rename to dist/index-CQct0mOs.chunk.mjs.license diff --git a/dist/index-CMXcwXc6.chunk.mjs.map b/dist/index-CQct0mOs.chunk.mjs.map similarity index 99% rename from dist/index-CMXcwXc6.chunk.mjs.map rename to dist/index-CQct0mOs.chunk.mjs.map index d35e40a8e25..827e879f99b 100644 --- a/dist/index-CMXcwXc6.chunk.mjs.map +++ b/dist/index-CQct0mOs.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"index-CMXcwXc6.chunk.mjs","sources":["../node_modules/date-fns/constants.js","../node_modules/date-fns/constructFrom.js","../node_modules/date-fns/toDate.js","../node_modules/date-fns/addDays.js","../node_modules/date-fns/addMonths.js","../node_modules/date-fns/add.js","../node_modules/date-fns/addMilliseconds.js","../node_modules/date-fns/addHours.js","../node_modules/date-fns/_lib/defaultOptions.js","../node_modules/date-fns/startOfWeek.js","../node_modules/date-fns/startOfISOWeek.js","../node_modules/date-fns/getISOWeekYear.js","../node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js","../node_modules/date-fns/_lib/normalizeDates.js","../node_modules/date-fns/startOfDay.js","../node_modules/date-fns/differenceInCalendarDays.js","../node_modules/date-fns/startOfISOWeekYear.js","../node_modules/date-fns/addQuarters.js","../node_modules/date-fns/addYears.js","../node_modules/date-fns/compareAsc.js","../node_modules/date-fns/isDate.js","../node_modules/date-fns/isValid.js","../node_modules/date-fns/getQuarter.js","../node_modules/date-fns/differenceInCalendarYears.js","../node_modules/date-fns/differenceInYears.js","../node_modules/date-fns/_lib/normalizeInterval.js","../node_modules/date-fns/eachDayOfInterval.js","../node_modules/date-fns/startOfQuarter.js","../node_modules/date-fns/eachQuarterOfInterval.js","../node_modules/date-fns/startOfMonth.js","../node_modules/date-fns/endOfYear.js","../node_modules/date-fns/startOfYear.js","../node_modules/date-fns/endOfWeek.js","../node_modules/date-fns/endOfQuarter.js","../node_modules/date-fns/locale/en-US/_lib/formatDistance.js","../node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../node_modules/date-fns/locale/en-US/_lib/formatLong.js","../node_modules/date-fns/locale/en-US/_lib/formatRelative.js","../node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../node_modules/date-fns/locale/en-US/_lib/localize.js","../node_modules/date-fns/locale/_lib/buildMatchFn.js","../node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../node_modules/date-fns/locale/en-US/_lib/match.js","../node_modules/date-fns/locale/en-US.js","../node_modules/date-fns/getDayOfYear.js","../node_modules/date-fns/getISOWeek.js","../node_modules/date-fns/getWeekYear.js","../node_modules/date-fns/startOfWeekYear.js","../node_modules/date-fns/getWeek.js","../node_modules/date-fns/_lib/addLeadingZeros.js","../node_modules/date-fns/_lib/format/lightFormatters.js","../node_modules/date-fns/_lib/format/formatters.js","../node_modules/date-fns/_lib/format/longFormatters.js","../node_modules/date-fns/_lib/protectedTokens.js","../node_modules/date-fns/format.js","../node_modules/date-fns/getDay.js","../node_modules/date-fns/getDaysInMonth.js","../node_modules/date-fns/getDefaultOptions.js","../node_modules/date-fns/getHours.js","../node_modules/date-fns/getISODay.js","../node_modules/date-fns/getMinutes.js","../node_modules/date-fns/getMonth.js","../node_modules/date-fns/getSeconds.js","../node_modules/date-fns/getYear.js","../node_modules/date-fns/isAfter.js","../node_modules/date-fns/isBefore.js","../node_modules/date-fns/isEqual.js","../node_modules/date-fns/transpose.js","../node_modules/date-fns/parse/_lib/Setter.js","../node_modules/date-fns/parse/_lib/Parser.js","../node_modules/date-fns/parse/_lib/parsers/EraParser.js","../node_modules/date-fns/parse/_lib/constants.js","../node_modules/date-fns/parse/_lib/utils.js","../node_modules/date-fns/parse/_lib/parsers/YearParser.js","../node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js","../node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js","../node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js","../node_modules/date-fns/parse/_lib/parsers/QuarterParser.js","../node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js","../node_modules/date-fns/parse/_lib/parsers/MonthParser.js","../node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js","../node_modules/date-fns/setWeek.js","../node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js","../node_modules/date-fns/setISOWeek.js","../node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js","../node_modules/date-fns/parse/_lib/parsers/DateParser.js","../node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js","../node_modules/date-fns/setDay.js","../node_modules/date-fns/parse/_lib/parsers/DayParser.js","../node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js","../node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js","../node_modules/date-fns/setISODay.js","../node_modules/date-fns/parse/_lib/parsers/ISODayParser.js","../node_modules/date-fns/parse/_lib/parsers/AMPMParser.js","../node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js","../node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js","../node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js","../node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js","../node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js","../node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js","../node_modules/date-fns/parse/_lib/parsers/MinuteParser.js","../node_modules/date-fns/parse/_lib/parsers/SecondParser.js","../node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js","../node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js","../node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js","../node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js","../node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js","../node_modules/date-fns/parse/_lib/parsers.js","../node_modules/date-fns/parse.js","../node_modules/date-fns/isSameQuarter.js","../node_modules/date-fns/subDays.js","../node_modules/date-fns/setMonth.js","../node_modules/date-fns/set.js","../node_modules/date-fns/setHours.js","../node_modules/date-fns/setMilliseconds.js","../node_modules/date-fns/setMinutes.js","../node_modules/date-fns/setSeconds.js","../node_modules/date-fns/setYear.js","../node_modules/date-fns/subMonths.js","../node_modules/date-fns/sub.js","../node_modules/date-fns/subYears.js","../node_modules/@vuepic/vue-datepicker/dist/vue-datepicker.js","../node_modules/@nextcloud/vue/dist/chunks/NcTimezonePicker.vue_vue_type_script_setup_true_lang-Csd1JQe6.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDateTimePicker-CK4rhfEB.mjs"],"sourcesContent":["/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n","import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (date && typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n // [TODO] Get rid of `toDate` or `constructFrom`?\n return constructFrom(context || argument, argument);\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addDays} function options.\n */\n\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\n * @param options - An object with options\n *\n * @returns The new date with the days added\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport function addDays(date, amount, options) {\n const _date = toDate(date, options?.in);\n if (isNaN(amount)) return constructFrom(options?.in || date, NaN);\n\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n if (!amount) return _date;\n\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addMonths} function options.\n */\n\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of months to be added.\n * @param options - The options object\n *\n * @returns The new date with the months added\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n *\n * // Add one month to 30 January 2023:\n * const result = addMonths(new Date(2023, 0, 30), 1)\n * //=> Tue Feb 28 2023 00:00:00\n */\nexport function addMonths(date, amount, options) {\n const _date = toDate(date, options?.in);\n if (isNaN(amount)) return constructFrom(options?.in || date, NaN);\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return _date;\n }\n const dayOfMonth = _date.getDate();\n\n // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n const endOfDesiredMonth = constructFrom(options?.in || date, _date.getTime());\n endOfDesiredMonth.setMonth(_date.getMonth() + amount + 1, 0);\n const daysInMonth = endOfDesiredMonth.getDate();\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n _date.setFullYear(\n endOfDesiredMonth.getFullYear(),\n endOfDesiredMonth.getMonth(),\n dayOfMonth,\n );\n return _date;\n }\n}\n\n// Fallback for modularized imports:\nexport default addMonths;\n","import { addDays } from \"./addDays.js\";\nimport { addMonths } from \"./addMonths.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link add} function options.\n */\n\n/**\n * @name add\n * @category Common Helpers\n * @summary Add the specified years, months, weeks, days, hours, minutes, and seconds to the given date.\n *\n * @description\n * Add the specified years, months, weeks, days, hours, minutes, and seconds to the given date.\n *\n * @typeParam DateType - The `Date` type the function operates on. Gets inferred from passed arguments. Allows using extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param duration - The object with years, months, weeks, days, hours, minutes, and seconds to be added.\n * @param options - An object with options\n *\n * @returns The new date with the seconds added\n *\n * @example\n * // Add the following duration to 1 September 2014, 10:19:50\n * const result = add(new Date(2014, 8, 1, 10, 19, 50), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30,\n * })\n * //=> Thu Jun 15 2017 15:29:20\n */\nexport function add(date, duration, options) {\n const {\n years = 0,\n months = 0,\n weeks = 0,\n days = 0,\n hours = 0,\n minutes = 0,\n seconds = 0,\n } = duration;\n\n // Add years and months\n const _date = toDate(date, options?.in);\n const dateWithMonths =\n months || years ? addMonths(_date, months + years * 12) : _date;\n\n // Add weeks and days\n const dateWithDays =\n days || weeks ? addDays(dateWithMonths, days + weeks * 7) : dateWithMonths;\n\n // Add days, hours, minutes, and seconds\n const minutesToAdd = minutes + hours * 60;\n const secondsToAdd = seconds + minutesToAdd * 60;\n const msToAdd = secondsToAdd * 1000;\n\n return constructFrom(options?.in || date, +dateWithDays + msToAdd);\n}\n\n// Fallback for modularized imports:\nexport default add;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addMilliseconds} function options.\n */\n\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of milliseconds to be added.\n * @param options - The options object\n *\n * @returns The new date with the milliseconds added\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport function addMilliseconds(date, amount, options) {\n return constructFrom(options?.in || date, +toDate(date) + amount);\n}\n\n// Fallback for modularized imports:\nexport default addMilliseconds;\n","import { addMilliseconds } from \"./addMilliseconds.js\";\nimport { millisecondsInHour } from \"./constants.js\";\n\n/**\n * The {@link addHours} function options.\n */\n\n/**\n * @name addHours\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of hours to be added\n * @param options - An object with options\n *\n * @returns The new date with the hours added\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * const result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\nexport function addHours(date, amount, options) {\n return addMilliseconds(date, amount * millisecondsInHour, options);\n}\n\n// Fallback for modularized imports:\nexport default addHours;\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfISOWeek} function options.\n */\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date, options) {\n return startOfWeek(date, { ...options, weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeekYear} function options.\n */\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(_date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(_date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { toDate } from \"../toDate.js\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","import { constructFrom } from \"../constructFrom.js\";\n\nexport function normalizeDates(context, ...dates) {\n const normalize = constructFrom.bind(\n null,\n context || dates.find((date) => typeof date === \"object\"),\n );\n return dates.map(normalize);\n}\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfDay} function options.\n */\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { millisecondsInDay } from \"./constants.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link differenceInCalendarDays} function options.\n */\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - The options object\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n\n const laterStartOfDay = startOfDay(laterDate_);\n const earlierStartOfDay = startOfDay(earlierDate_);\n\n const laterTimestamp =\n +laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay);\n const earlierTimestamp =\n +earlierStartOfDay - getTimezoneOffsetInMilliseconds(earlierStartOfDay);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { getISOWeekYear } from \"./getISOWeekYear.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\n\n/**\n * The {@link startOfISOWeekYear} function options.\n */\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date, options) {\n const year = getISOWeekYear(date, options);\n const fourthOfJanuary = constructFrom(options?.in || date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","import { addMonths } from \"./addMonths.js\";\n\n/**\n * The {@link addQuarters} function options.\n */\n\n/**\n * @name addQuarters\n * @category Quarter Helpers\n * @summary Add the specified number of year quarters to the given date.\n *\n * @description\n * Add the specified number of year quarters to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of quarters to be added.\n * @param options - An object with options\n *\n * @returns The new date with the quarters added\n *\n * @example\n * // Add 1 quarter to 1 September 2014:\n * const result = addQuarters(new Date(2014, 8, 1), 1)\n * //=; Mon Dec 01 2014 00:00:00\n */\nexport function addQuarters(date, amount, options) {\n return addMonths(date, amount * 3, options);\n}\n\n// Fallback for modularized imports:\nexport default addQuarters;\n","import { addMonths } from \"./addMonths.js\";\n\n/**\n * The {@link addYears} function options.\n */\n\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The date to be changed\n * @param amount - The amount of years to be added.\n * @param options - The options\n *\n * @returns The new date with the years added\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\nexport function addYears(date, amount, options) {\n return addMonths(date, amount * 12, options);\n}\n\n// Fallback for modularized imports:\nexport default addYears;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * @param dateLeft - The first date to compare\n * @param dateRight - The second date to compare\n *\n * @returns The result of the comparison\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\nexport function compareAsc(dateLeft, dateRight) {\n const diff = +toDate(dateLeft) - +toDate(dateRight);\n\n if (diff < 0) return -1;\n else if (diff > 0) return 1;\n\n // Return 0 if diff is 0; return NaN if diff is NaN\n return diff;\n}\n\n// Fallback for modularized imports:\nexport default compareAsc;\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","import { isDate } from \"./isDate.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertible into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n return !((!isDate(date) && typeof date !== \"number\") || isNaN(+toDate(date)));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getQuarter} function options.\n */\n\n/**\n * @name getQuarter\n * @category Quarter Helpers\n * @summary Get the year quarter of the given date.\n *\n * @description\n * Get the year quarter of the given date.\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The quarter\n *\n * @example\n * // Which quarter is 2 July 2014?\n * const result = getQuarter(new Date(2014, 6, 2));\n * //=> 3\n */\nexport function getQuarter(date, options) {\n const _date = toDate(date, options?.in);\n const quarter = Math.trunc(_date.getMonth() / 3) + 1;\n return quarter;\n}\n\n// Fallback for modularized imports:\nexport default getQuarter;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\n\n/**\n * The {@link differenceInCalendarYears} function options.\n */\n\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - An object with options\n\n * @returns The number of calendar years\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * );\n * //=> 2\n */\nexport function differenceInCalendarYears(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return laterDate_.getFullYear() - earlierDate_.getFullYear();\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarYears;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { compareAsc } from \"./compareAsc.js\";\nimport { differenceInCalendarYears } from \"./differenceInCalendarYears.js\";\n\n/**\n * The {@link differenceInYears} function options.\n */\n\n/**\n * @name differenceInYears\n * @category Year Helpers\n * @summary Get the number of full years between the given dates.\n *\n * @description\n * Get the number of full years between the given dates.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - An object with options\n *\n * @returns The number of full years\n *\n * @example\n * // How many full years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInYears(new Date(2015, 1, 11), new Date(2013, 11, 31))\n * //=> 1\n */\nexport function differenceInYears(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n\n // -1 if the left date is earlier than the right date\n // 2023-12-31 - 2024-01-01 = -1\n const sign = compareAsc(laterDate_, earlierDate_);\n\n // First calculate the difference in calendar years\n // 2024-01-01 - 2023-12-31 = 1 year\n const diff = Math.abs(differenceInCalendarYears(laterDate_, earlierDate_));\n\n // Now we need to calculate if the difference is full. To do that we set\n // both dates to the same year and check if the both date's month and day\n // form a full year.\n laterDate_.setFullYear(1584);\n earlierDate_.setFullYear(1584);\n\n // For it to be true, when the later date is indeed later than the earlier date\n // (2026-02-01 - 2023-12-10 = 3 years), the difference is full if\n // the normalized later date is also later than the normalized earlier date.\n // In our example, 1584-02-01 is earlier than 1584-12-10, so the difference\n // is partial, hence we need to subtract 1 from the difference 3 - 1 = 2.\n const partial = compareAsc(laterDate_, earlierDate_) === -sign;\n\n const result = sign * (diff - +partial);\n\n // Prevent negative zero\n return result === 0 ? 0 : result;\n}\n\n// Fallback for modularized imports:\nexport default differenceInYears;\n","import { normalizeDates } from \"./normalizeDates.js\";\n\nexport function normalizeInterval(context, interval) {\n const [start, end] = normalizeDates(context, interval.start, interval.end);\n return { start, end };\n}\n","import { normalizeInterval } from \"./_lib/normalizeInterval.js\";\nimport { constructFrom } from \"./constructFrom.js\";\n\n/**\n * The {@link eachDayOfInterval} function options.\n */\n\n/**\n * The {@link eachDayOfInterval} function result type. It resolves the proper data type.\n * It uses the first argument date object type, starting from the date argument,\n * then the start interval date, and finally the end interval date. If\n * a context function is passed, it uses the context function return type.\n */\n\n/**\n * @name eachDayOfInterval\n * @category Interval Helpers\n * @summary Return the array of dates within the specified time interval.\n *\n * @description\n * Return the array of dates within the specified time interval.\n *\n * @typeParam IntervalType - Interval type.\n * @typeParam Options - Options type.\n *\n * @param interval - The interval.\n * @param options - An object with options.\n *\n * @returns The array with starts of days from the day of the interval start to the day of the interval end\n *\n * @example\n * // Each day between 6 October 2014 and 10 October 2014:\n * const result = eachDayOfInterval({\n * start: new Date(2014, 9, 6),\n * end: new Date(2014, 9, 10)\n * })\n * //=> [\n * // Mon Oct 06 2014 00:00:00,\n * // Tue Oct 07 2014 00:00:00,\n * // Wed Oct 08 2014 00:00:00,\n * // Thu Oct 09 2014 00:00:00,\n * // Fri Oct 10 2014 00:00:00\n * // ]\n */\nexport function eachDayOfInterval(interval, options) {\n const { start, end } = normalizeInterval(options?.in, interval);\n\n let reversed = +start > +end;\n const endTime = reversed ? +start : +end;\n const date = reversed ? end : start;\n date.setHours(0, 0, 0, 0);\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+date <= endTime) {\n dates.push(constructFrom(start, date));\n date.setDate(date.getDate() + step);\n date.setHours(0, 0, 0, 0);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n\n// Fallback for modularized imports:\nexport default eachDayOfInterval;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfQuarter} function options.\n */\n\n/**\n * @name startOfQuarter\n * @category Quarter Helpers\n * @summary Return the start of a year quarter for the given date.\n *\n * @description\n * Return the start of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a quarter\n *\n * @example\n * // The start of a quarter for 2 September 2014 11:55:00:\n * const result = startOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Jul 01 2014 00:00:00\n */\nexport function startOfQuarter(date, options) {\n const _date = toDate(date, options?.in);\n const currentMonth = _date.getMonth();\n const month = currentMonth - (currentMonth % 3);\n _date.setMonth(month, 1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfQuarter;\n","import { normalizeInterval } from \"./_lib/normalizeInterval.js\";\nimport { addQuarters } from \"./addQuarters.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { startOfQuarter } from \"./startOfQuarter.js\";\n\n/**\n * The {@link eachQuarterOfInterval} function options.\n */\n\n/**\n * The {@link eachQuarterOfInterval} function result type. It resolves the proper data type.\n * It uses the first argument date object type, starting from the date argument,\n * then the start interval date, and finally the end interval date. If\n * a context function is passed, it uses the context function return type.\n */\n\n/**\n * @name eachQuarterOfInterval\n * @category Interval Helpers\n * @summary Return the array of quarters within the specified time interval.\n *\n * @description\n * Return the array of quarters within the specified time interval.\n *\n * @typeParam IntervalType - Interval type.\n * @typeParam Options - Options type.\n *\n * @param interval - The interval\n * @param options - An object with options\n *\n * @returns The array with starts of quarters from the quarter of the interval start to the quarter of the interval end\n *\n * @example\n * // Each quarter within interval 6 February 2014 - 10 August 2014:\n * const result = eachQuarterOfInterval({\n * start: new Date(2014, 1, 6),\n * end: new Date(2014, 7, 10),\n * })\n * //=> [\n * // Wed Jan 01 2014 00:00:00,\n * // Tue Apr 01 2014 00:00:00,\n * // Tue Jul 01 2014 00:00:00,\n * // ]\n */\nexport function eachQuarterOfInterval(interval, options) {\n const { start, end } = normalizeInterval(options?.in, interval);\n\n let reversed = +start > +end;\n const endTime = reversed ? +startOfQuarter(start) : +startOfQuarter(end);\n let date = reversed ? startOfQuarter(end) : startOfQuarter(start);\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+date <= endTime) {\n dates.push(constructFrom(start, date));\n date = addQuarters(date, step);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n\n// Fallback for modularized imports:\nexport default eachQuarterOfInterval;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfMonth} function options.\n */\n\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date. The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments.\n * Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed,\n * or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a month\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfMonth(date, options) {\n const _date = toDate(date, options?.in);\n _date.setDate(1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfMonth;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link endOfYear} function options.\n */\n\n/**\n * @name endOfYear\n * @category Year Helpers\n * @summary Return the end of a year for the given date.\n *\n * @description\n * Return the end of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The end of a year\n *\n * @example\n * // The end of a year for 2 September 2014 11:55:00:\n * const result = endOfYear(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Wed Dec 31 2014 23:59:59.999\n */\nexport function endOfYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n _date.setFullYear(year + 1, 0, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfYear;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfYear} function options.\n */\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date, options) {\n const date_ = toDate(date, options?.in);\n date_.setFullYear(date_.getFullYear(), 0, 1);\n date_.setHours(0, 0, 0, 0);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link endOfWeek} function options.\n */\n\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of a week\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nexport function endOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n\n _date.setDate(_date.getDate() + diff);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfWeek;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link endOfQuarter} function options.\n */\n\n/**\n * @name endOfQuarter\n * @category Quarter Helpers\n * @summary Return the end of a year quarter for the given date.\n *\n * @description\n * Return the end of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of a quarter\n *\n * @example\n * // The end of a quarter for 2 September 2014 11:55:00:\n * const result = endOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nexport function endOfQuarter(date, options) {\n const _date = toDate(date, options?.in);\n const currentMonth = _date.getMonth();\n const month = currentMonth - (currentMonth % 3) + 3;\n _date.setMonth(month, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfQuarter;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./en-US/_lib/formatDistance.js\";\nimport { formatLong } from \"./en-US/_lib/formatLong.js\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.js\";\nimport { localize } from \"./en-US/_lib/localize.js\";\nimport { match } from \"./en-US/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.js\";\nimport { startOfYear } from \"./startOfYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDayOfYear} function options.\n */\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date, options) {\n const _date = toDate(date, options?.in);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeek} function options.\n */\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(options?.in || date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(options?.in || date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (+_date >= +startOfNextYear) {\n return year + 1;\n } else if (+_date >= +startOfThisYear) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getWeekYear } from \"./getWeekYear.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(options?.in || date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { startOfWeekYear } from \"./startOfWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\nexport function getWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","import { addLeadingZeros } from \"../addLeadingZeros.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n","import { getDayOfYear } from \"../../getDayOfYear.js\";\nimport { getISOWeek } from \"../../getISOWeek.js\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.js\";\nimport { getWeek } from \"../../getWeek.js\";\nimport { getWeekYear } from \"../../getWeekYear.js\";\n\nimport { addLeadingZeros } from \"../addLeadingZeros.js\";\nimport { lightFormatters } from \"./lightFormatters.js\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(+date / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n return addLeadingZeros(+date, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n","const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { formatters } from \"./_lib/format/formatters.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { isValid } from \"./isValid.js\";\nimport { toDate } from \"./toDate.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date, options?.in);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDay} function options.\n */\n\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The day of week, 0 represents Sunday\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * const result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\nexport function getDay(date, options) {\n return toDate(date, options?.in).getDay();\n}\n\n// Fallback for modularized imports:\nexport default getDay;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDaysInMonth} function options.\n */\n\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date, considering the context if provided.\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The number of days in a month\n *\n * @example\n * // How many days are in February 2000?\n * const result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\nexport function getDaysInMonth(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n const monthIndex = _date.getMonth();\n const lastDayOfMonth = constructFrom(_date, 0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}\n\n// Fallback for modularized imports:\nexport default getDaysInMonth;\n","import { getDefaultOptions as getInternalDefaultOptions } from \"./_lib/defaultOptions.js\";\n\n/**\n * @name getDefaultOptions\n * @category Common Helpers\n * @summary Get default options.\n * @pure false\n *\n * @description\n * Returns an object that contains defaults for\n * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`\n * arguments for all functions.\n *\n * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions).\n *\n * @returns The default options\n *\n * @example\n * const result = getDefaultOptions()\n * //=> {}\n *\n * @example\n * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 })\n * const result = getDefaultOptions()\n * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 }\n */\nexport function getDefaultOptions() {\n return Object.assign({}, getInternalDefaultOptions());\n}\n\n// Fallback for modularized imports:\nexport default getDefaultOptions;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getHours} function options.\n */\n\n/**\n * @name getHours\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The hours\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * const result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\nexport function getHours(date, options) {\n return toDate(date, options?.in).getHours();\n}\n\n// Fallback for modularized imports:\nexport default getHours;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISODay} function options.\n */\n\n/**\n * @name getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * const result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nexport function getISODay(date, options) {\n const day = toDate(date, options?.in).getDay();\n return day === 0 ? 7 : day;\n}\n\n// Fallback for modularized imports:\nexport default getISODay;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getMinutes} function options.\n */\n\n/**\n * @name getMinutes\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The minutes\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * const result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\nexport function getMinutes(date, options) {\n return toDate(date, options?.in).getMinutes();\n}\n\n// Fallback for modularized imports:\nexport default getMinutes;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getMonth} function options.\n */\n\n/**\n * @name getMonth\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The month index (0-11)\n *\n * @example\n * // Which month is 29 February 2012?\n * const result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\nexport function getMonth(date, options) {\n return toDate(date, options?.in).getMonth();\n}\n\n// Fallback for modularized imports:\nexport default getMonth;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name getSeconds\n * @category Second Helpers\n * @summary Get the seconds of the given date.\n *\n * @description\n * Get the seconds of the given date.\n *\n * @param date - The given date\n *\n * @returns The seconds\n *\n * @example\n * // Get the seconds of 29 February 2012 11:45:05.123:\n * const result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 5\n */\nexport function getSeconds(date) {\n return toDate(date).getSeconds();\n}\n\n// Fallback for modularized imports:\nexport default getSeconds;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getYear} function options.\n */\n\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The year\n *\n * @example\n * // Which year is 2 July 2014?\n * const result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\nexport function getYear(date, options) {\n return toDate(date, options?.in).getFullYear();\n}\n\n// Fallback for modularized imports:\nexport default getYear;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @param date - The date that should be after the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is after the second date\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nexport function isAfter(date, dateToCompare) {\n return +toDate(date) > +toDate(dateToCompare);\n}\n\n// Fallback for modularized imports:\nexport default isAfter;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @param date - The date that should be before the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is before the second date\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nexport function isBefore(date, dateToCompare) {\n return +toDate(date) < +toDate(dateToCompare);\n}\n\n// Fallback for modularized imports:\nexport default isBefore;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * @param dateLeft - The first date to compare\n * @param dateRight - The second date to compare\n *\n * @returns The dates are equal\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * const result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0),\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\nexport function isEqual(leftDate, rightDate) {\n return +toDate(leftDate) === +toDate(rightDate);\n}\n\n// Fallback for modularized imports:\nexport default isEqual;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name transpose\n * @category Generic Helpers\n * @summary Transpose the date to the given constructor.\n *\n * @description\n * The function transposes the date to the given constructor. It helps you\n * to transpose the date in the system time zone to say `UTCDate` or any other\n * date extension.\n *\n * @typeParam InputDate - The input `Date` type derived from the passed argument.\n * @typeParam ResultDate - The result `Date` type derived from the passed constructor.\n *\n * @param date - The date to use values from\n * @param constructor - The date constructor to use\n *\n * @returns Date transposed to the given constructor\n *\n * @example\n * // Create July 10, 2022 00:00 in locale time zone\n * const date = new Date(2022, 6, 10)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)'\n *\n * @example\n * // Transpose the date to July 10, 2022 00:00 in UTC\n * transpose(date, UTCDate)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)'\n */\nexport function transpose(date, constructor) {\n const date_ = isConstructor(constructor)\n ? new constructor(0)\n : constructFrom(constructor, 0);\n date_.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n date_.setHours(\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds(),\n );\n return date_;\n}\n\nfunction isConstructor(constructor) {\n return (\n typeof constructor === \"function\" &&\n constructor.prototype?.constructor === constructor\n );\n}\n\n// Fallback for modularized imports:\nexport default transpose;\n","import { constructFrom } from \"../../constructFrom.js\";\nimport { transpose } from \"../../transpose.js\";\n\nconst TIMEZONE_UNIT_PRIORITY = 10;\n\nexport class Setter {\n subPriority = 0;\n\n validate(_utcDate, _options) {\n return true;\n }\n}\n\nexport class ValueSetter extends Setter {\n constructor(\n value,\n\n validateValue,\n\n setValue,\n\n priority,\n subPriority,\n ) {\n super();\n this.value = value;\n this.validateValue = validateValue;\n this.setValue = setValue;\n this.priority = priority;\n if (subPriority) {\n this.subPriority = subPriority;\n }\n }\n\n validate(date, options) {\n return this.validateValue(date, this.value, options);\n }\n\n set(date, flags, options) {\n return this.setValue(date, flags, this.value, options);\n }\n}\n\nexport class DateTimezoneSetter extends Setter {\n priority = TIMEZONE_UNIT_PRIORITY;\n subPriority = -1;\n\n constructor(context, reference) {\n super();\n this.context = context || ((date) => constructFrom(reference, date));\n }\n\n set(date, flags) {\n if (flags.timestampIsSet) return date;\n return constructFrom(date, transpose(date, this.context));\n }\n}\n","import { ValueSetter } from \"./Setter.js\";\n\nexport class Parser {\n run(dateString, token, match, options) {\n const result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n\n return {\n setter: new ValueSetter(\n result.value,\n this.validate,\n this.set,\n this.priority,\n this.subPriority,\n ),\n rest: result.rest,\n };\n }\n\n validate(_utcDate, _value, _options) {\n return true;\n }\n}\n","import { Parser } from \"../Parser.js\";\n\nexport class EraParser extends Parser {\n priority = 140;\n\n parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return (\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n\n // A, B\n case \"GGGGG\":\n return match.era(dateString, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return (\n match.era(dateString, { width: \"wide\" }) ||\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n }\n }\n\n set(date, flags, value) {\n flags.era = value;\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"R\", \"u\", \"t\", \"T\"];\n}\n","export const numericPatterns = {\n month: /^(1[0-2]|0?\\d)/, // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/, // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/, // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/, // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/, // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/, // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/, // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/, // 0 to 12\n minute: /^[0-5]?\\d/, // 0 to 59\n second: /^[0-5]?\\d/, // 0 to 59\n\n singleDigit: /^\\d/, // 0 to 9\n twoDigits: /^\\d{1,2}/, // 0 to 99\n threeDigits: /^\\d{1,3}/, // 0 to 999\n fourDigits: /^\\d{1,4}/, // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/, // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/, // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/, // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/, // 0 to 9999, -0 to -9999\n};\n\nexport const timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/,\n};\n","import {\n millisecondsInHour,\n millisecondsInMinute,\n millisecondsInSecond,\n} from \"../../constants.js\";\n\nimport { numericPatterns } from \"./constants.js\";\n\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest,\n };\n}\n\nexport function parseNumericPattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseTimezonePattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === \"Z\") {\n return {\n value: 0,\n rest: dateString.slice(1),\n };\n }\n\n const sign = matchResult[1] === \"+\" ? 1 : -1;\n const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n\n return {\n value:\n sign *\n (hours * millisecondsInHour +\n minutes * millisecondsInMinute +\n seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\n\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^-?\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case \"morning\":\n return 4;\n case \"evening\":\n return 17;\n case \"pm\":\n case \"noon\":\n case \"afternoon\":\n return 12;\n case \"am\":\n case \"midnight\":\n case \"night\":\n default:\n return 0;\n }\n}\n\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n const isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n\n let result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n const rangeEnd = absCurrentYear + 50;\n const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100;\n const isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport class YearParser extends Parser {\n priority = 130;\n incompatibleTokens = [\"Y\", \"R\", \"u\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"yy\",\n });\n\n switch (token) {\n case \"y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value) {\n const currentYear = date.getFullYear();\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(normalizedTwoDigitYear, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { getWeekYear } from \"../../../getWeekYear.js\";\n\nimport { startOfWeek } from \"../../../startOfWeek.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n\n// Local week-numbering year\nexport class LocalWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"YY\",\n });\n\n switch (token) {\n case \"Y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"Yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value, options) {\n const currentYear = getWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(\n normalizedTwoDigitYear,\n 0,\n options.firstWeekContainsDate,\n );\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, options.firstWeekContainsDate);\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { startOfISOWeek } from \"../../../startOfISOWeek.js\";\nimport { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigitsSigned } from \"../utils.js\";\n\n// ISO week-numbering year\nexport class ISOWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"R\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n const firstWeekOfYear = constructFrom(date, 0);\n firstWeekOfYear.setFullYear(value, 0, 4);\n firstWeekOfYear.setHours(0, 0, 0, 0);\n return startOfISOWeek(firstWeekOfYear);\n }\n\n incompatibleTokens = [\n \"G\",\n \"y\",\n \"Y\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigitsSigned } from \"../utils.js\";\n\nexport class ExtendedYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"u\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"G\", \"y\", \"Y\", \"R\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigits } from \"../utils.js\";\n\nexport class QuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n case \"QQ\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigits } from \"../utils.js\";\n\nexport class StandAloneQuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n case \"qq\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class MonthParser extends Parser {\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"L\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"M\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"MM\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // J, F, ..., D\n case \"MMMMM\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class StandAloneMonthParser extends Parser {\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"LL\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // J, F, ..., D\n case \"LLLLL\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getWeek } from \"./getWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setWeek} function options.\n */\n\n/**\n * @name setWeek\n * @category Week Helpers\n * @summary Set the local week to the given date.\n *\n * @description\n * Set the local week to the given date, saving the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param week - The week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the local week set\n *\n * @example\n * // Set the 1st week to 2 January 2005 with default options:\n * const result = setWeek(new Date(2005, 0, 2), 1)\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // Set the 1st week to 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January:\n * const result = setWeek(new Date(2005, 0, 2), 1, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sun Jan 4 2004 00:00:00\n */\nexport function setWeek(date, week, options) {\n const date_ = toDate(date, options?.in);\n const diff = getWeek(date_, options) - week;\n date_.setDate(date_.getDate() - diff * 7);\n return toDate(date_, options?.in);\n}\n\n// Fallback for modularized imports:\nexport default setWeek;\n","import { setWeek } from \"../../../setWeek.js\";\nimport { startOfWeek } from \"../../../startOfWeek.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\n// Local week of year\nexport class LocalWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"w\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"wo\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value, options) {\n return startOfWeek(setWeek(date, value, options), options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { getISOWeek } from \"./getISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setISOWeek} function options.\n */\n\n/**\n * @name setISOWeek\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The `Date` type of the context function.\n *\n * @param date - The date to be changed\n * @param week - The ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the ISO week set\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * const result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nexport function setISOWeek(date, week, options) {\n const _date = toDate(date, options?.in);\n const diff = getISOWeek(_date, options) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setISOWeek;\n","import { setISOWeek } from \"../../../setISOWeek.js\";\nimport { startOfISOWeek } from \"../../../startOfISOWeek.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\n// ISO week of year\nexport class ISOWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"I\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"Io\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value) {\n return startOfISOWeek(setISOWeek(date, value));\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.js\";\n\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [\n 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,\n];\n\n// Day of the month\nexport class DateParser extends Parser {\n priority = 90;\n subPriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"d\":\n return parseNumericPattern(numericPatterns.date, dateString);\n case \"do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n const month = date.getMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n\n set(date, _flags, value) {\n date.setDate(value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.js\";\n\nexport class DayOfYearParser extends Parser {\n priority = 90;\n\n subpriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"D\":\n case \"DD\":\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case \"Do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n\n set(date, _flags, value) {\n date.setMonth(0, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"E\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { addDays } from \"./addDays.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setDay} function options.\n */\n\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the week of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the day of the week set\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * const result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setDay(date, day, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const date_ = toDate(date, options?.in);\n const currentDay = date_.getDay();\n\n const remainder = day % 7;\n const dayIndex = (remainder + 7) % 7;\n\n const delta = 7 - weekStartsOn;\n const diff =\n day < 0 || day > 6\n ? day - ((currentDay + delta) % 7)\n : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7);\n return addDays(date_, diff, options);\n}\n\n// Fallback for modularized imports:\nexport default setDay;\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\n// Day of week\nexport class DayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"EEEEE\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"EEEE\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// Local day of week\nexport class LocalDayParser extends Parser {\n priority = 90;\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"e\":\n case \"ee\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"eo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"eee\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"eeeee\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"eeee\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// Stand-alone local day of week\nexport class StandAloneLocalDayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"c\":\n case \"cc\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"co\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"ccc\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // T\n case \"ccccc\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return (\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // Tuesday\n case \"cccc\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"e\",\n \"t\",\n \"T\",\n ];\n}\n","import { addDays } from \"./addDays.js\";\nimport { getISODay } from \"./getISODay.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setISODay} function options.\n */\n\n/**\n * @name setISODay\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday, etc.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the day of the ISO week set\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * const result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setISODay(date, day, options) {\n const date_ = toDate(date, options?.in);\n const currentDay = getISODay(date_, options);\n const diff = day - currentDay;\n return addDays(date_, diff, options);\n}\n\n// Fallback for modularized imports:\nexport default setISODay;\n","import { setISODay } from \"../../../setISODay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// ISO day of week\nexport class ISODayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n\n switch (token) {\n // 2\n case \"i\":\n case \"ii\": // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case \"io\":\n return match.ordinalNumber(dateString, { unit: \"day\" });\n // Tue\n case \"iii\":\n return mapValue(\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // T\n case \"iiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tu\n case \"iiiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tuesday\n case \"iiii\":\n default:\n return mapValue(\n match.day(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n\n set(date, _flags, value) {\n date = setISODay(date, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"E\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\nexport class AMPMParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"a\":\n case \"aa\":\n case \"aaa\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"aaaaa\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"b\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\nexport class AMPMMidnightParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"b\":\n case \"bb\":\n case \"bbb\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"bbbbb\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\n// in the morning, in the afternoon, in the evening, at night\nexport class DayPeriodParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"BBBBB\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour1to12Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"h\":\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case \"ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setHours(0, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"H\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour0to23Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"H\":\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case \"Ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n\n set(date, _flags, value) {\n date.setHours(value, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour0To11Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"K\":\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case \"Ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"h\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour1To24Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"k\":\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case \"ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n\n set(date, _flags, value) {\n const hours = value <= 24 ? value % 24 : value;\n date.setHours(hours, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"H\", \"K\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class MinuteParser extends Parser {\n priority = 60;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"m\":\n return parseNumericPattern(numericPatterns.minute, dateString);\n case \"mo\":\n return match.ordinalNumber(dateString, { unit: \"minute\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setMinutes(value, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class SecondParser extends Parser {\n priority = 50;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"s\":\n return parseNumericPattern(numericPatterns.second, dateString);\n case \"so\":\n return match.ordinalNumber(dateString, { unit: \"second\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setSeconds(value, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\nexport class FractionOfSecondParser extends Parser {\n priority = 30;\n\n parse(dateString, token) {\n const valueCallback = (value) =>\n Math.trunc(value * Math.pow(10, -token.length + 3));\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n\n set(date, _flags, value) {\n date.setMilliseconds(value);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseTimezonePattern } from \"../utils.js\";\n\n// Timezone (ISO-8601. +00:00 is `'Z'`)\nexport class ISOTimezoneWithZParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"X\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"XX\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"XXXX\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"XXXXX\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"XXX\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"x\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseTimezonePattern } from \"../utils.js\";\n\n// Timezone (ISO-8601)\nexport class ISOTimezoneParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"x\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"xx\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"xxxx\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"xxxxx\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"xxx\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"X\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseAnyDigitsSigned } from \"../utils.js\";\n\nexport class TimestampSecondsParser extends Parser {\n priority = 40;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value * 1000), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseAnyDigitsSigned } from \"../utils.js\";\n\nexport class TimestampMillisecondsParser extends Parser {\n priority = 20;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { EraParser } from \"./parsers/EraParser.js\";\nimport { YearParser } from \"./parsers/YearParser.js\";\nimport { LocalWeekYearParser } from \"./parsers/LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./parsers/ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./parsers/ExtendedYearParser.js\";\nimport { QuarterParser } from \"./parsers/QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./parsers/StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./parsers/MonthParser.js\";\nimport { StandAloneMonthParser } from \"./parsers/StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./parsers/LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./parsers/ISOWeekParser.js\";\nimport { DateParser } from \"./parsers/DateParser.js\";\nimport { DayOfYearParser } from \"./parsers/DayOfYearParser.js\";\nimport { DayParser } from \"./parsers/DayParser.js\";\nimport { LocalDayParser } from \"./parsers/LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./parsers/StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./parsers/ISODayParser.js\";\nimport { AMPMParser } from \"./parsers/AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./parsers/AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./parsers/DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./parsers/Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./parsers/Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./parsers/Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./parsers/Hour1To24Parser.js\";\nimport { MinuteParser } from \"./parsers/MinuteParser.js\";\nimport { SecondParser } from \"./parsers/SecondParser.js\";\nimport { FractionOfSecondParser } from \"./parsers/FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./parsers/ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./parsers/ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./parsers/TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./parsers/TimestampMillisecondsParser.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\nexport const parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser(),\n};\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getDefaultOptions } from \"./getDefaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\nimport { DateTimezoneSetter } from \"./parse/_lib/Setter.js\";\nimport { parsers } from \"./parse/_lib/parsers.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { longFormatters, parsers };\n\n/**\n * The {@link parse} function options.\n */\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\n\nconst notWhitespaceRegExp = /\\S/;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangeably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n * and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param dateStr - The string to parse\n * @param formatStr - The string of tokens\n * @param referenceDate - defines values missing from the parsed dateString\n * @param options - An object with options.\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns The parsed date\n *\n * @throws `options.locale` must contain `match` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport function parse(dateStr, formatStr, referenceDate, options) {\n const invalidDate = () => constructFrom(options?.in || referenceDate, NaN);\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n if (!formatStr)\n return dateStr ? invalidDate() : toDate(referenceDate, options?.in);\n\n const subFnOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n // If timezone isn't specified, it will try to use the context or\n // the reference date and fallback to the system time zone.\n const setters = [new DateTimezoneSetter(options?.in, referenceDate)];\n\n const tokens = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp);\n\n const usedTokens = [];\n\n for (let token of tokens) {\n if (\n !options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n if (\n !options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n\n const firstCharacter = token[0];\n const parser = parsers[firstCharacter];\n if (parser) {\n const { incompatibleTokens } = parser;\n if (Array.isArray(incompatibleTokens)) {\n const incompatibleToken = usedTokens.find(\n (usedToken) =>\n incompatibleTokens.includes(usedToken.token) ||\n usedToken.token === firstCharacter,\n );\n if (incompatibleToken) {\n throw new RangeError(\n `The format string mustn't contain \\`${incompatibleToken.fullToken}\\` and \\`${token}\\` at the same time`,\n );\n }\n } else if (parser.incompatibleTokens === \"*\" && usedTokens.length > 0) {\n throw new RangeError(\n `The format string mustn't contain \\`${token}\\` and any other token at the same time`,\n );\n }\n\n usedTokens.push({ token: firstCharacter, fullToken: token });\n\n const parseResult = parser.run(\n dateStr,\n token,\n locale.match,\n subFnOptions,\n );\n\n if (!parseResult) {\n return invalidDate();\n }\n\n setters.push(parseResult.setter);\n\n dateStr = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateStr.indexOf(token) === 0) {\n dateStr = dateStr.slice(token.length);\n } else {\n return invalidDate();\n }\n }\n }\n\n // Check if the remaining input contains something other than whitespace\n if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) {\n return invalidDate();\n }\n\n const uniquePrioritySetters = setters\n .map((setter) => setter.priority)\n .sort((a, b) => b - a)\n .filter((priority, index, array) => array.indexOf(priority) === index)\n .map((priority) =>\n setters\n .filter((setter) => setter.priority === priority)\n .sort((a, b) => b.subPriority - a.subPriority),\n )\n .map((setterArray) => setterArray[0]);\n\n let date = toDate(referenceDate, options?.in);\n\n if (isNaN(+date)) return invalidDate();\n\n const flags = {};\n for (const setter of uniquePrioritySetters) {\n if (!setter.validate(date, subFnOptions)) {\n return invalidDate();\n }\n\n const result = setter.set(date, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n date = result[0];\n Object.assign(flags, result[1]);\n // Result is date\n } else {\n date = result;\n }\n }\n\n return date;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default parse;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { startOfQuarter } from \"./startOfQuarter.js\";\n\n/**\n * The {@link isSameQuarter} function options.\n */\n\n/**\n * @name isSameQuarter\n * @category Quarter Helpers\n * @summary Are the given dates in the same quarter (and year)?\n *\n * @description\n * Are the given dates in the same quarter (and year)?\n *\n * @param laterDate - The first date to check\n * @param earlierDate - The second date to check\n * @param options - An object with options\n *\n * @returns The dates are in the same quarter (and year)\n *\n * @example\n * // Are 1 January 2014 and 8 March 2014 in the same quarter?\n * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2014, 2, 8))\n * //=> true\n *\n * @example\n * // Are 1 January 2014 and 1 January 2015 in the same quarter?\n * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2015, 0, 1))\n * //=> false\n */\nexport function isSameQuarter(laterDate, earlierDate, options) {\n const [dateLeft_, dateRight_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return +startOfQuarter(dateLeft_) === +startOfQuarter(dateRight_);\n}\n\n// Fallback for modularized imports:\nexport default isSameQuarter;\n","import { addDays } from \"./addDays.js\";\n\n/**\n * The {@link subDays} function options.\n */\n\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be subtracted.\n * @param options - An object with options\n *\n * @returns The new date with the days subtracted\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\nexport function subDays(date, amount, options) {\n return addDays(date, -amount, options);\n}\n\n// Fallback for modularized imports:\nexport default subDays;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { getDaysInMonth } from \"./getDaysInMonth.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setMonth} function options.\n */\n\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param month - The month index to set (0-11)\n * @param options - The options\n *\n * @returns The new date with the month set\n *\n * @example\n * // Set February to 1 September 2014:\n * const result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\nexport function setMonth(date, month, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n const day = _date.getDate();\n\n const midMonth = constructFrom(options?.in || date, 0);\n midMonth.setFullYear(year, month, 15);\n midMonth.setHours(0, 0, 0, 0);\n const daysInMonth = getDaysInMonth(midMonth);\n\n // Set the earlier date, allows to wrap Jan 31 to Feb 28\n _date.setMonth(month, Math.min(day, daysInMonth));\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setMonth;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { setMonth } from \"./setMonth.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link set} function options.\n */\n\n/**\n * @name set\n * @category Common Helpers\n * @summary Set date values to a given date.\n *\n * @description\n * Set date values to a given date.\n *\n * Sets time values to date from object `values`.\n * A value is not set if it is undefined or null or doesn't exist in `values`.\n *\n * Note about bundle size: `set` does not internally use `setX` functions from date-fns but instead opts\n * to use native `Date#setX` methods. If you use this function, you may not want to include the\n * other `setX` functions that date-fns provides if you are concerned about the bundle size.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param values - The date values to be set\n * @param options - The options\n *\n * @returns The new date with options set\n *\n * @example\n * // Transform 1 September 2014 into 20 October 2015 in a single line:\n * const result = set(new Date(2014, 8, 20), { year: 2015, month: 9, date: 20 })\n * //=> Tue Oct 20 2015 00:00:00\n *\n * @example\n * // Set 12 PM to 1 September 2014 01:23:45 to 1 September 2014 12:00:00:\n * const result = set(new Date(2014, 8, 1, 1, 23, 45), { hours: 12 })\n * //=> Mon Sep 01 2014 12:23:45\n */\nexport function set(date, values, options) {\n let _date = toDate(date, options?.in);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(+_date)) return constructFrom(options?.in || date, NaN);\n\n if (values.year != null) _date.setFullYear(values.year);\n if (values.month != null) _date = setMonth(_date, values.month);\n if (values.date != null) _date.setDate(values.date);\n if (values.hours != null) _date.setHours(values.hours);\n if (values.minutes != null) _date.setMinutes(values.minutes);\n if (values.seconds != null) _date.setSeconds(values.seconds);\n if (values.milliseconds != null) _date.setMilliseconds(values.milliseconds);\n\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default set;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setHours} function options.\n */\n\n/**\n * @name setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param hours - The hours of the new date\n * @param options - An object with options\n *\n * @returns The new date with the hours set\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * const result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\nexport function setHours(date, hours, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(hours);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setHours;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setMilliseconds} function options.\n */\n\n/**\n * @name setMilliseconds\n * @category Millisecond Helpers\n * @summary Set the milliseconds to the given date.\n *\n * @description\n * Set the milliseconds to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param milliseconds - The milliseconds of the new date\n * @param options - The options\n *\n * @returns The new date with the milliseconds set\n *\n * @example\n * // Set 300 milliseconds to 1 September 2014 11:30:40.500:\n * const result = setMilliseconds(new Date(2014, 8, 1, 11, 30, 40, 500), 300)\n * //=> Mon Sep 01 2014 11:30:40.300\n */\nexport function setMilliseconds(date, milliseconds, options) {\n const _date = toDate(date, options?.in);\n _date.setMilliseconds(milliseconds);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setMilliseconds;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setMinutes} function options.\n */\n\n/**\n * @name setMinutes\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows using extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, returned from the context function, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param minutes - The minutes of the new date\n * @param options - An object with options\n *\n * @returns The new date with the minutes set\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * const result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\nexport function setMinutes(date, minutes, options) {\n const date_ = toDate(date, options?.in);\n date_.setMinutes(minutes);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default setMinutes;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setSeconds} function options.\n */\n\n/**\n * @name setSeconds\n * @category Second Helpers\n * @summary Set the seconds to the given date, with context support.\n *\n * @description\n * Set the seconds to the given date, with an optional context for time zone specification.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param seconds - The seconds of the new date\n * @param options - An object with options\n *\n * @returns The new date with the seconds set\n *\n * @example\n * // Set 45 seconds to 1 September 2014 11:30:40:\n * const result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:30:45\n */\nexport function setSeconds(date, seconds, options) {\n const _date = toDate(date, options?.in);\n _date.setSeconds(seconds);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setSeconds;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setYear} function options.\n */\n\n/**\n * @name setYear\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param year - The year of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the year set\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * const result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\nexport function setYear(date, year, options) {\n const date_ = toDate(date, options?.in);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(+date_)) return constructFrom(options?.in || date, NaN);\n\n date_.setFullYear(year);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default setYear;\n","import { addMonths } from \"./addMonths.js\";\n\n/**\n * The subMonths function options.\n */\n\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of months to be subtracted.\n * @param options - An object with options\n *\n * @returns The new date with the months subtracted\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function subMonths(date, amount, options) {\n return addMonths(date, -amount, options);\n}\n\n// Fallback for modularized imports:\nexport default subMonths;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { subDays } from \"./subDays.js\";\nimport { subMonths } from \"./subMonths.js\";\n\n/**\n * The {@link sub} function options.\n */\n\n/**\n * @name sub\n * @category Common Helpers\n * @summary Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @description\n * Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param duration - The object with years, months, weeks, days, hours, minutes and seconds to be subtracted\n * @param options - An object with options\n *\n * | Key | Description |\n * |---------|------------------------------------|\n * | years | Amount of years to be subtracted |\n * | months | Amount of months to be subtracted |\n * | weeks | Amount of weeks to be subtracted |\n * | days | Amount of days to be subtracted |\n * | hours | Amount of hours to be subtracted |\n * | minutes | Amount of minutes to be subtracted |\n * | seconds | Amount of seconds to be subtracted |\n *\n * All values default to 0\n *\n * @returns The new date with the seconds subtracted\n *\n * @example\n * // Subtract the following duration from 15 June 2017 15:29:20\n * const result = sub(new Date(2017, 5, 15, 15, 29, 20), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30\n * })\n * //=> Mon Sep 1 2014 10:19:50\n */\nexport function sub(date, duration, options) {\n const {\n years = 0,\n months = 0,\n weeks = 0,\n days = 0,\n hours = 0,\n minutes = 0,\n seconds = 0,\n } = duration;\n\n const withoutMonths = subMonths(date, months + years * 12, options);\n const withoutDays = subDays(withoutMonths, days + weeks * 7, options);\n\n const minutesToSub = minutes + hours * 60;\n const secondsToSub = seconds + minutesToSub * 60;\n const msToSub = secondsToSub * 1000;\n\n return constructFrom(options?.in || date, +withoutDays - msToSub);\n}\n\n// Fallback for modularized imports:\nexport default sub;\n","import { addYears } from \"./addYears.js\";\n\n/**\n * The {@link subYears} function options.\n */\n\n/**\n * @name subYears\n * @category Year Helpers\n * @summary Subtract the specified number of years from the given date.\n *\n * @description\n * Subtract the specified number of years from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of years to be subtracted.\n * @param options - An object with options\n *\n * @returns The new date with the years subtracted\n *\n * @example\n * // Subtract 5 years from 1 September 2014:\n * const result = subYears(new Date(2014, 8, 1), 5)\n * //=> Tue Sep 01 2009 00:00:00\n */\nexport function subYears(date, amount, options) {\n return addYears(date, -amount, options);\n}\n\n// Fallback for modularized imports:\nexport default subYears;\n","import { useAttrs as Jn, createElementBlock as W, openBlock as w, createElementVNode as he, unref as s, reactive as ea, computed as j, ref as Z, toRef as qt, watch as rt, defineComponent as We, onMounted as Ue, onUnmounted as Ut, renderSlot as ie, normalizeProps as ze, mergeProps as He, Fragment as ke, createCommentVNode as Q, normalizeStyle as lt, createTextVNode as gt, toDisplayString as Ke, onBeforeUpdate as Zn, nextTick as at, withModifiers as Xt, normalizeClass as De, withDirectives as ua, renderList as Ce, vShow as ia, createVNode as tt, createBlock as Te, withCtx as we, withKeys as xn, Transition as Vt, createSlots as Ge, useSlots as Yt, guardReactiveProps as Je, resolveDynamicComponent as fa, toValue as el, h as tl, render as nn, getCurrentScope as al, onScopeDispose as nl, getCurrentInstance as ll, isRef as ln, Teleport as rl } from \"vue\";\nimport { format as ft, isEqual as Nt, isValid as da, addMonths as Ct, subMonths as Jt, getMonth as Me, getYear as ye, set as Se, startOfMonth as ol, setMonth as sl, setYear as ut, isAfter as _t, isBefore as Ft, eachDayOfInterval as bn, getSeconds as zt, getMinutes as $t, getHours as yt, startOfWeek as Wa, endOfWeek as kn, setHours as ul, setMinutes as il, setSeconds as wn, setMilliseconds as Dn, parse as Na, isDate as dl, subDays as cl, addDays as kt, addHours as fl, addYears as Mn, subYears as $n, endOfYear as An, startOfYear as Gt, differenceInYears as vl, add as Tn, sub as ml, getWeek as pl, getISOWeek as gl, isSameQuarter as rn, eachQuarterOfInterval as yl, startOfQuarter as hl, endOfQuarter as on, getQuarter as sn, differenceInCalendarDays as bl, getDay as kl } from \"date-fns\";\nfunction jt() {\n const e = Jn();\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\",\n ...e\n },\n [\n he(\"path\", {\n d: \"M29.333 8c0-2.208-1.792-4-4-4h-18.667c-2.208 0-4 1.792-4 4v18.667c0 2.208 1.792 4 4 4h18.667c2.208 0 4-1.792 4-4v-18.667zM26.667 8v18.667c0 0.736-0.597 1.333-1.333 1.333 0 0-18.667 0-18.667 0-0.736 0-1.333-0.597-1.333-1.333 0 0 0-18.667 0-18.667 0-0.736 0.597-1.333 1.333-1.333 0 0 18.667 0 18.667 0 0.736 0 1.333 0.597 1.333 1.333z\"\n }),\n he(\"path\", {\n d: \"M20 2.667v5.333c0 0.736 0.597 1.333 1.333 1.333s1.333-0.597 1.333-1.333v-5.333c0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z\"\n }),\n he(\"path\", {\n d: \"M9.333 2.667v5.333c0 0.736 0.597 1.333 1.333 1.333s1.333-0.597 1.333-1.333v-5.333c0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z\"\n }),\n he(\"path\", {\n d: \"M4 14.667h24c0.736 0 1.333-0.597 1.333-1.333s-0.597-1.333-1.333-1.333h-24c-0.736 0-1.333 0.597-1.333 1.333s0.597 1.333 1.333 1.333z\"\n })\n ]\n );\n}\njt.compatConfig = {\n MODE: 3\n};\nfunction Sn() {\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n he(\"path\", {\n d: \"M23.057 7.057l-16 16c-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0l16-16c0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0z\"\n }),\n he(\"path\", {\n d: \"M7.057 8.943l16 16c0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885l-16-16c-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885z\"\n })\n ]\n );\n}\nSn.compatConfig = {\n MODE: 3\n};\nfunction Ua() {\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n he(\"path\", {\n d: \"M20.943 23.057l-7.057-7.057c0 0 7.057-7.057 7.057-7.057 0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0l-8 8c-0.521 0.521-0.521 1.365 0 1.885l8 8c0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885z\"\n })\n ]\n );\n}\nUa.compatConfig = {\n MODE: 3\n};\nfunction Va() {\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n he(\"path\", {\n d: \"M12.943 24.943l8-8c0.521-0.521 0.521-1.365 0-1.885l-8-8c-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885l7.057 7.057c0 0-7.057 7.057-7.057 7.057-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0z\"\n })\n ]\n );\n}\nVa.compatConfig = {\n MODE: 3\n};\nfunction ja() {\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n he(\"path\", {\n d: \"M16 1.333c-8.095 0-14.667 6.572-14.667 14.667s6.572 14.667 14.667 14.667c8.095 0 14.667-6.572 14.667-14.667s-6.572-14.667-14.667-14.667zM16 4c6.623 0 12 5.377 12 12s-5.377 12-12 12c-6.623 0-12-5.377-12-12s5.377-12 12-12z\"\n }),\n he(\"path\", {\n d: \"M14.667 8v8c0 0.505 0.285 0.967 0.737 1.193l5.333 2.667c0.658 0.329 1.46 0.062 1.789-0.596s0.062-1.46-0.596-1.789l-4.596-2.298c0 0 0-7.176 0-7.176 0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z\"\n })\n ]\n );\n}\nja.compatConfig = {\n MODE: 3\n};\nfunction Ka() {\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n he(\"path\", {\n d: \"M24.943 19.057l-8-8c-0.521-0.521-1.365-0.521-1.885 0l-8 8c-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0l7.057-7.057c0 0 7.057 7.057 7.057 7.057 0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885z\"\n })\n ]\n );\n}\nKa.compatConfig = {\n MODE: 3\n};\nfunction Ga() {\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n he(\"path\", {\n d: \"M7.057 12.943l8 8c0.521 0.521 1.365 0.521 1.885 0l8-8c0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0l-7.057 7.057c0 0-7.057-7.057-7.057-7.057-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885z\"\n })\n ]\n );\n}\nGa.compatConfig = {\n MODE: 3\n};\nconst Ze = (e, t) => t ? new Date(e.toLocaleString(\"en-US\", { timeZone: t })) : new Date(e), Qa = (e, t, l) => {\n const n = La(e, t, l);\n return n || H();\n}, wl = (e, t, l) => {\n const n = t.dateInTz ? Ze(new Date(e), t.dateInTz) : H(e);\n return l ? Fe(n, !0) : n;\n}, La = (e, t, l) => {\n if (!e) return null;\n const n = l ? Fe(H(e), !0) : H(e);\n return t ? t.exactMatch ? wl(e, t, l) : Ze(n, t.timezone) : n;\n}, Dl = (e) => {\n const l = new Date(e.getFullYear(), 0, 1).getTimezoneOffset();\n return e.getTimezoneOffset() < l;\n}, Ml = (e, t) => {\n if (!e) return 0;\n const l = /* @__PURE__ */ new Date(), n = new Date(l.toLocaleString(\"en-US\", { timeZone: \"UTC\" })), a = new Date(l.toLocaleString(\"en-US\", { timeZone: e })), i = (Dl(t ?? a) ? a : t ?? a).getTimezoneOffset() / 60;\n return (+n - +a) / (1e3 * 60 * 60) - i;\n};\nvar ot = /* @__PURE__ */ ((e) => (e.month = \"month\", e.year = \"year\", e))(ot || {}), st = /* @__PURE__ */ ((e) => (e.top = \"top\", e.bottom = \"bottom\", e))(st || {}), Ot = /* @__PURE__ */ ((e) => (e.header = \"header\", e.calendar = \"calendar\", e.timePicker = \"timePicker\", e))(Ot || {}), je = /* @__PURE__ */ ((e) => (e.month = \"month\", e.year = \"year\", e.calendar = \"calendar\", e.time = \"time\", e.minutes = \"minutes\", e.hours = \"hours\", e.seconds = \"seconds\", e))(je || {});\nconst $l = [\"timestamp\", \"date\", \"iso\"];\nvar Qe = /* @__PURE__ */ ((e) => (e.up = \"up\", e.down = \"down\", e.left = \"left\", e.right = \"right\", e))(Qe || {}), Re = /* @__PURE__ */ ((e) => (e.arrowUp = \"ArrowUp\", e.arrowDown = \"ArrowDown\", e.arrowLeft = \"ArrowLeft\", e.arrowRight = \"ArrowRight\", e.enter = \"Enter\", e.space = \" \", e.esc = \"Escape\", e.tab = \"Tab\", e.home = \"Home\", e.end = \"End\", e.pageUp = \"PageUp\", e.pageDown = \"PageDown\", e))(Re || {}), Lt = /* @__PURE__ */ ((e) => (e.MONTH_AND_YEAR = \"MM-yyyy\", e.YEAR = \"yyyy\", e.DATE = \"dd-MM-yyyy\", e))(Lt || {});\nfunction un(e) {\n return (t) => {\n const l = new Intl.DateTimeFormat(e, {\n weekday: \"short\",\n timeZone: \"UTC\"\n }).format(/* @__PURE__ */ new Date(`2017-01-0${t}T00:00:00+00:00`));\n return e === \"ar\" ? l.slice(2, 5) : l.slice(0, 2);\n };\n}\nfunction Al(e) {\n return (t) => ft(Ze(/* @__PURE__ */ new Date(`2017-01-0${t}T00:00:00+00:00`), \"UTC\"), \"EEEEEE\", { locale: e });\n}\nconst Tl = (e, t, l) => {\n const n = [1, 2, 3, 4, 5, 6, 7];\n let a;\n if (e !== null)\n try {\n a = n.map(Al(e));\n } catch {\n a = n.map(un(t));\n }\n else\n a = n.map(un(t));\n const f = a.slice(0, l), i = a.slice(l + 1, a.length);\n return [a[l]].concat(...i).concat(...f);\n}, qa = (e, t, l) => {\n const n = [];\n for (let a = +e[0]; a <= +e[1]; a++)\n n.push({ value: +a, text: Ja(a, t) });\n return l ? n.reverse() : n;\n}, Pn = (e, t, l) => {\n const n = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].map((f) => {\n const i = f < 10 ? `0${f}` : f;\n return /* @__PURE__ */ new Date(`2017-${i}-01T00:00:00+00:00`);\n });\n if (e !== null)\n try {\n const f = l === \"long\" ? \"LLLL\" : \"LLL\";\n return n.map((i, g) => {\n const d = ft(Ze(i, \"UTC\"), f, { locale: e });\n return {\n text: d.charAt(0).toUpperCase() + d.substring(1),\n value: g\n };\n });\n } catch {\n }\n const a = new Intl.DateTimeFormat(t, { month: l, timeZone: \"UTC\" });\n return n.map((f, i) => {\n const g = a.format(f);\n return {\n text: g.charAt(0).toUpperCase() + g.substring(1),\n value: i\n };\n });\n}, Sl = (e) => [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11][e], Le = (e) => {\n const t = s(e);\n return t?.$el ? t?.$el : t;\n}, Pl = (e) => ({ type: \"dot\", ...e ?? {} }), Rn = (e) => Array.isArray(e) ? !!e[0] && !!e[1] : !1, Xa = {\n prop: (e) => `\"${e}\" prop must be enabled!`,\n dateArr: (e) => `You need to use array as \"model-value\" binding in order to support \"${e}\"`\n}, Ne = (e) => e, dn = (e) => e === 0 ? e : !e || isNaN(+e) ? null : +e, cn = (e) => e === null, Cn = (e) => {\n if (e)\n return [...e.querySelectorAll(\"input, button, select, textarea, a[href]\")][0];\n}, Rl = (e) => {\n const t = [], l = (n) => n.filter((a) => a);\n for (let n = 0; n < e.length; n += 3) {\n const a = [e[n], e[n + 1], e[n + 2]];\n t.push(l(a));\n }\n return t;\n}, Zt = (e, t, l) => {\n const n = l != null, a = t != null;\n if (!n && !a) return !1;\n const f = +l, i = +t;\n return n && a ? +e > f || +e < i : n ? +e > f : a ? +e < i : !1;\n}, Ht = (e, t) => Rl(e).map((l) => l.map((n) => {\n const { active: a, disabled: f, isBetween: i, highlighted: g } = t(n);\n return {\n ...n,\n active: a,\n disabled: f,\n className: {\n dp__overlay_cell_active: a,\n dp__overlay_cell: !a,\n dp__overlay_cell_disabled: f,\n dp__overlay_cell_pad: !0,\n dp__overlay_cell_active_disabled: f && a,\n dp__cell_in_between: i,\n \"dp--highlighted\": g\n }\n };\n})), Dt = (e, t, l = !1) => {\n e && t.allowStopPropagation && (l && e.stopImmediatePropagation(), e.stopPropagation());\n}, Cl = () => [\n \"a[href]\",\n \"area[href]\",\n \"input:not([disabled]):not([type='hidden'])\",\n \"select:not([disabled])\",\n \"textarea:not([disabled])\",\n \"button:not([disabled])\",\n \"[tabindex]:not([tabindex='-1'])\",\n \"[data-datepicker-instance]\"\n].join(\", \");\nfunction Ol(e, t) {\n let l = [...document.querySelectorAll(Cl())];\n l = l.filter((a) => !e.contains(a) || a.hasAttribute(\"data-datepicker-instance\"));\n const n = l.indexOf(e);\n if (n >= 0 && (t ? n - 1 >= 0 : n + 1 <= l.length))\n return l[n + (t ? -1 : 1)];\n}\nconst Fa = (e, t) => e?.querySelector(`[data-dp-element=\"${t}\"]`), Ja = (e, t) => new Intl.NumberFormat(t, { useGrouping: !1, style: \"decimal\" }).format(e), Za = (e, t) => ft(e, t ?? Lt.DATE), Ta = (e) => Array.isArray(e), ca = (e, t, l) => t.get(Za(e, l)), Bl = (e, t) => e ? t ? t instanceof Map ? !!ca(e, t) : t(H(e)) : !1 : !0, qe = (e, t, l = !1, n) => {\n if (e.key === Re.enter || e.key === Re.space)\n return l && e.preventDefault(), t();\n if (n) return n(e);\n}, _l = () => \"ontouchstart\" in window || navigator.maxTouchPoints > 0, On = (e, t) => e ? Lt.MONTH_AND_YEAR : t ? Lt.YEAR : Lt.DATE, Bn = (e) => e < 10 ? `0${e}` : e, fn = (e, t, l, n, a, f) => {\n const i = Na(e, t.slice(0, e.length), /* @__PURE__ */ new Date(), { locale: f });\n return da(i) && dl(i) ? n || a ? i : Se(i, {\n hours: +l.hours,\n minutes: +l?.minutes,\n seconds: +l?.seconds,\n milliseconds: 0\n }) : null;\n}, Yl = (e, t, l, n, a, f) => {\n const i = Array.isArray(l) ? l[0] : l;\n if (typeof t == \"string\")\n return fn(e, t, i, n, a, f);\n if (Array.isArray(t)) {\n let g = null;\n for (const d of t)\n if (g = fn(e, d, i, n, a, f), g)\n break;\n return g;\n }\n return typeof t == \"function\" ? t(e) : null;\n}, H = (e) => e ? new Date(e) : /* @__PURE__ */ new Date(), Il = (e, t, l) => {\n if (t) {\n const a = (e.getMonth() + 1).toString().padStart(2, \"0\"), f = e.getDate().toString().padStart(2, \"0\"), i = e.getHours().toString().padStart(2, \"0\"), g = e.getMinutes().toString().padStart(2, \"0\"), d = l ? e.getSeconds().toString().padStart(2, \"0\") : \"00\";\n return `${e.getFullYear()}-${a}-${f}T${i}:${g}:${d}.000Z`;\n }\n const n = Date.UTC(\n e.getUTCFullYear(),\n e.getUTCMonth(),\n e.getUTCDate(),\n e.getUTCHours(),\n e.getUTCMinutes(),\n e.getUTCSeconds()\n );\n return new Date(n).toISOString();\n}, Fe = (e, t) => {\n const l = H(JSON.parse(JSON.stringify(e))), n = Se(l, { hours: 0, minutes: 0, seconds: 0, milliseconds: 0 });\n return t ? ol(n) : n;\n}, Mt = (e, t, l, n) => {\n let a = e ? H(e) : H();\n return (t || t === 0) && (a = ul(a, +t)), (l || l === 0) && (a = il(a, +l)), (n || n === 0) && (a = wn(a, +n)), Dn(a, 0);\n}, Be = (e, t) => !e || !t ? !1 : Ft(Fe(e), Fe(t)), $e = (e, t) => !e || !t ? !1 : Nt(Fe(e), Fe(t)), Ee = (e, t) => !e || !t ? !1 : _t(Fe(e), Fe(t)), xt = (e, t, l) => e?.[0] && e?.[1] ? Ee(l, e[0]) && Be(l, e[1]) : e?.[0] && t ? Ee(l, e[0]) && Be(l, t) || Be(l, e[0]) && Ee(l, t) : !1, it = (e) => {\n const t = Se(new Date(e), { date: 1 });\n return Fe(t);\n}, Sa = (e, t, l) => t && (l || l === 0) ? Object.fromEntries(\n [\"hours\", \"minutes\", \"seconds\"].map((n) => n === t ? [n, l] : [n, isNaN(+e[n]) ? void 0 : +e[n]])\n) : {\n hours: isNaN(+e.hours) ? void 0 : +e.hours,\n minutes: isNaN(+e.minutes) ? void 0 : +e.minutes,\n seconds: isNaN(+e.seconds) ? void 0 : +e.seconds\n}, Bt = (e) => ({\n hours: yt(e),\n minutes: $t(e),\n seconds: zt(e)\n}), _n = (e, t) => {\n if (t) {\n const l = ye(H(t));\n if (l > e) return 12;\n if (l === e) return Me(H(t));\n }\n}, Yn = (e, t) => {\n if (t) {\n const l = ye(H(t));\n return l < e ? -1 : l === e ? Me(H(t)) : void 0;\n }\n}, Wt = (e) => {\n if (e) return ye(H(e));\n}, In = (e, t) => {\n const l = Ee(e, t) ? t : e, n = Ee(t, e) ? t : e;\n return bn({ start: l, end: n });\n}, El = (e) => {\n const t = Ct(e, 1);\n return { month: Me(t), year: ye(t) };\n}, mt = (e, t) => {\n const l = Wa(e, { weekStartsOn: +t }), n = kn(e, { weekStartsOn: +t });\n return [l, n];\n}, En = (e, t) => {\n const l = {\n hours: yt(H()),\n minutes: $t(H()),\n seconds: t ? zt(H()) : 0\n };\n return Object.assign(l, e);\n}, wt = (e, t, l) => [Se(H(e), { date: 1 }), Se(H(), { month: t, year: l, date: 1 })], pt = (e, t, l) => {\n let n = e ? H(e) : H();\n return (t || t === 0) && (n = sl(n, t)), l && (n = ut(n, l)), n;\n}, Nn = (e, t, l, n, a) => {\n if (!n || a && !t || !a && !l) return !1;\n const f = a ? Ct(e, 1) : Jt(e, 1), i = [Me(f), ye(f)];\n return a ? !Ll(...i, t) : !Nl(...i, l);\n}, Nl = (e, t, l) => Be(...wt(l, e, t)) || $e(...wt(l, e, t)), Ll = (e, t, l) => Ee(...wt(l, e, t)) || $e(...wt(l, e, t)), Ln = (e, t, l, n, a, f, i) => {\n if (typeof t == \"function\" && !i) return t(e);\n const g = l ? { locale: l } : void 0;\n return Array.isArray(e) ? `${ft(e[0], f, g)}${a && !e[1] ? \"\" : n}${e[1] ? ft(e[1], f, g) : \"\"}` : ft(e, f, g);\n}, It = (e) => {\n if (e) return null;\n throw new Error(Xa.prop(\"partial-range\"));\n}, oa = (e, t) => {\n if (t) return e();\n throw new Error(Xa.prop(\"range\"));\n}, za = (e) => Array.isArray(e) ? da(e[0]) && (e[1] ? da(e[1]) : !0) : e ? da(e) : !1, Fl = (e, t) => Se(t ?? H(), {\n hours: +e.hours || 0,\n minutes: +e.minutes || 0,\n seconds: +e.seconds || 0\n}), Pa = (e, t, l, n) => {\n if (!e) return !0;\n if (n) {\n const a = l === \"max\" ? Ft(e, t) : _t(e, t), f = { seconds: 0, milliseconds: 0 };\n return a || Nt(Se(e, f), Se(t, f));\n }\n return l === \"max\" ? e.getTime() <= t.getTime() : e.getTime() >= t.getTime();\n}, Ra = (e, t, l) => e ? Fl(e, t) : H(l ?? t), vn = (e, t, l, n, a) => {\n if (Array.isArray(n)) {\n const i = Ra(e, n[0], t), g = Ra(e, n[1], t);\n return Pa(n[0], i, l, !!t) && Pa(n[1], g, l, !!t) && a;\n }\n const f = Ra(e, n, t);\n return Pa(n, f, l, !!t) && a;\n}, Ca = (e) => Se(H(), Bt(e)), zl = (e, t, l) => {\n if (e instanceof Map) {\n const n = `${Bn(l + 1)}-${t}`;\n return e.size ? e.has(n) : !1;\n }\n return typeof e == \"function\" ? e(Fe(Se(H(), { month: l, year: t }), !0)) : !1;\n}, Hl = (e, t, l) => {\n if (e instanceof Map) {\n const n = `${Bn(l + 1)}-${t}`;\n return e.size ? e.has(n) : !0;\n }\n return !0;\n}, Fn = (e, t, l) => typeof e == \"function\" ? e({ month: t, year: l }) : !!e.months.find((n) => n.month === t && n.year === l), xa = (e, t) => typeof e == \"function\" ? e(t) : e.years.includes(t), Ha = (e) => `dp-${ft(e, \"yyyy-MM-dd\")}`, mn = (e, t) => {\n const l = cl(Fe(t), e), n = kt(Fe(t), e);\n return { before: l, after: n };\n}, zn = (e, t) => t < +e[0] || t > +e[1], Kt = ea({\n menuFocused: !1,\n shiftKeyInMenu: !1\n}), Hn = () => {\n const e = (n) => {\n Kt.menuFocused = n;\n }, t = (n) => {\n Kt.shiftKeyInMenu !== n && (Kt.shiftKeyInMenu = n);\n };\n return {\n control: j(() => ({ shiftKeyInMenu: Kt.shiftKeyInMenu, menuFocused: Kt.menuFocused })),\n setMenuFocused: e,\n setShiftKey: t\n };\n}, Pe = ea({\n monthYear: [],\n calendar: [],\n time: [],\n actionRow: [],\n selectionGrid: [],\n timePicker: {\n 0: [],\n 1: []\n },\n monthPicker: []\n}), Oa = Z(null), sa = Z(!1), Ba = Z(!1), _a = Z(!1), Ya = Z(!1), Ve = Z(0), Ie = Z(0), At = () => {\n const e = j(() => sa.value ? [...Pe.selectionGrid, Pe.actionRow].filter((M) => M.length) : Ba.value ? [\n ...Pe.timePicker[0],\n ...Pe.timePicker[1],\n Ya.value ? [] : [Oa.value],\n Pe.actionRow\n ].filter((M) => M.length) : _a.value ? [...Pe.monthPicker, Pe.actionRow] : [Pe.monthYear, ...Pe.calendar, Pe.time, Pe.actionRow].filter((M) => M.length)), t = (M) => {\n Ve.value = M ? Ve.value + 1 : Ve.value - 1;\n let A = null;\n e.value[Ie.value] && (A = e.value[Ie.value][Ve.value]), !A && e.value[Ie.value + (M ? 1 : -1)] ? (Ie.value = Ie.value + (M ? 1 : -1), Ve.value = M ? 0 : e.value[Ie.value].length - 1) : A || (Ve.value = M ? Ve.value - 1 : Ve.value + 1);\n }, l = (M) => {\n if (Ie.value === 0 && !M || Ie.value === e.value.length && M) return;\n Ie.value = M ? Ie.value + 1 : Ie.value - 1, e.value[Ie.value] ? e.value[Ie.value] && !e.value[Ie.value][Ve.value] && Ve.value !== 0 && (Ve.value = e.value[Ie.value].length - 1) : Ie.value = M ? Ie.value - 1 : Ie.value + 1;\n }, n = (M) => {\n let A = null;\n e.value[Ie.value] && (A = e.value[Ie.value][Ve.value]), A ? A.focus({ preventScroll: !sa.value }) : Ve.value = M ? Ve.value - 1 : Ve.value + 1;\n }, a = () => {\n t(!0), n(!0);\n }, f = () => {\n t(!1), n(!1);\n }, i = () => {\n l(!1), n(!0);\n }, g = () => {\n l(!0), n(!0);\n }, d = (M, A) => {\n Pe[A] = M;\n }, P = (M, A) => {\n Pe[A] = M;\n }, v = () => {\n Ve.value = 0, Ie.value = 0;\n };\n return {\n buildMatrix: d,\n buildMultiLevelMatrix: P,\n setTimePickerBackRef: (M) => {\n Oa.value = M;\n },\n setSelectionGrid: (M) => {\n sa.value = M, v(), M || (Pe.selectionGrid = []);\n },\n setTimePicker: (M, A = !1) => {\n Ba.value = M, Ya.value = A, v(), M || (Pe.timePicker[0] = [], Pe.timePicker[1] = []);\n },\n setTimePickerElements: (M, A = 0) => {\n Pe.timePicker[A] = M;\n },\n arrowRight: a,\n arrowLeft: f,\n arrowUp: i,\n arrowDown: g,\n clearArrowNav: () => {\n Pe.monthYear = [], Pe.calendar = [], Pe.time = [], Pe.actionRow = [], Pe.selectionGrid = [], Pe.timePicker[0] = [], Pe.timePicker[1] = [], sa.value = !1, Ba.value = !1, Ya.value = !1, _a.value = !1, v(), Oa.value = null;\n },\n setMonthPicker: (M) => {\n _a.value = M, v();\n },\n refSets: Pe\n // exposed for testing\n };\n}, pn = (e) => ({\n menuAppearTop: \"dp-menu-appear-top\",\n menuAppearBottom: \"dp-menu-appear-bottom\",\n open: \"dp-slide-down\",\n close: \"dp-slide-up\",\n next: \"calendar-next\",\n previous: \"calendar-prev\",\n vNext: \"dp-slide-up\",\n vPrevious: \"dp-slide-down\",\n ...e ?? {}\n}), Wl = (e) => ({\n toggleOverlay: \"Toggle overlay\",\n menu: \"Datepicker menu\",\n input: \"Datepicker input\",\n openTimePicker: \"Open time picker\",\n closeTimePicker: \"Close time Picker\",\n incrementValue: (t) => `Increment ${t}`,\n decrementValue: (t) => `Decrement ${t}`,\n openTpOverlay: (t) => `Open ${t} overlay`,\n amPmButton: \"Switch AM/PM mode\",\n openYearsOverlay: \"Open years overlay\",\n openMonthsOverlay: \"Open months overlay\",\n nextMonth: \"Next month\",\n prevMonth: \"Previous month\",\n nextYear: \"Next year\",\n prevYear: \"Previous year\",\n day: void 0,\n weekDay: void 0,\n clearInput: \"Clear value\",\n calendarIcon: \"Calendar icon\",\n timePicker: \"Time picker\",\n monthPicker: (t) => `Month picker${t ? \" overlay\" : \"\"}`,\n yearPicker: (t) => `Year picker${t ? \" overlay\" : \"\"}`,\n timeOverlay: (t) => `${t} overlay`,\n ...e ?? {}\n}), gn = (e) => e ? typeof e == \"boolean\" ? e ? 2 : 0 : +e >= 2 ? +e : 2 : 0, Ul = (e) => {\n const t = typeof e == \"object\" && e, l = {\n static: !0,\n solo: !1\n };\n if (!e) return { ...l, count: gn(!1) };\n const n = t ? e : {}, a = t ? n.count ?? !0 : e, f = gn(a);\n return Object.assign(l, n, { count: f });\n}, Vl = (e, t, l) => e || (typeof l == \"string\" ? l : t), jl = (e) => typeof e == \"boolean\" ? e ? pn({}) : !1 : pn(e), Kl = (e) => {\n const t = {\n enterSubmit: !0,\n tabSubmit: !0,\n openMenu: \"open\",\n selectOnFocus: !1,\n rangeSeparator: \" - \",\n escClose: !0\n };\n return typeof e == \"object\" ? { ...t, ...e ?? {}, enabled: !0 } : { ...t, enabled: e };\n}, Gl = (e) => ({\n months: [],\n years: [],\n times: { hours: [], minutes: [], seconds: [] },\n ...e ?? {}\n}), Ql = (e) => ({\n showSelect: !0,\n showCancel: !0,\n showNow: !1,\n showPreview: !0,\n ...e ?? {}\n}), ql = (e) => {\n const t = { input: !1 };\n return typeof e == \"object\" ? { ...t, ...e ?? {}, enabled: !0 } : {\n enabled: e,\n ...t\n };\n}, Xl = (e) => ({ ...{\n allowStopPropagation: !0,\n closeOnScroll: !1,\n modeHeight: 255,\n allowPreventDefault: !1,\n closeOnClearValue: !0,\n closeOnAutoApply: !0,\n noSwipe: !1,\n keepActionRow: !1,\n onClickOutside: void 0,\n tabOutClosesMenu: !0,\n arrowLeft: void 0,\n keepViewOnOffsetClick: !1,\n timeArrowHoldThreshold: 0,\n shadowDom: !1,\n mobileBreakpoint: 600,\n setDateOnMenuClose: !1\n}, ...e ?? {} }), Jl = (e) => {\n const t = {\n dates: Array.isArray(e) ? e.map((l) => H(l)) : [],\n years: [],\n months: [],\n quarters: [],\n weeks: [],\n weekdays: [],\n options: { highlightDisabled: !1 }\n };\n return typeof e == \"function\" ? e : { ...t, ...e ?? {} };\n}, Zl = (e) => typeof e == \"object\" ? {\n type: e?.type ?? \"local\",\n hideOnOffsetDates: e?.hideOnOffsetDates ?? !1\n} : {\n type: e,\n hideOnOffsetDates: !1\n}, xl = (e) => {\n const t = {\n noDisabledRange: !1,\n showLastInRange: !0,\n minMaxRawRange: !1,\n partialRange: !0,\n disableTimeRangeValidation: !1,\n maxRange: void 0,\n minRange: void 0,\n autoRange: void 0,\n fixedStart: !1,\n fixedEnd: !1\n };\n return typeof e == \"object\" ? { enabled: !0, ...t, ...e } : {\n enabled: e,\n ...t\n };\n}, er = (e) => e ? typeof e == \"string\" ? {\n timezone: e,\n exactMatch: !1,\n dateInTz: void 0,\n emitTimezone: void 0,\n convertModel: !0\n} : {\n timezone: e.timezone,\n exactMatch: e.exactMatch ?? !1,\n dateInTz: e.dateInTz ?? void 0,\n emitTimezone: e.emitTimezone ?? void 0,\n convertModel: e.convertModel ?? !0\n} : { timezone: void 0, exactMatch: !1, emitTimezone: void 0 }, Ia = (e, t, l, n) => new Map(\n e.map((a) => {\n const f = Qa(a, t, n);\n return [Za(f, l), f];\n })\n), tr = (e, t) => e.length ? new Map(\n e.map((l) => {\n const n = Qa(l.date, t);\n return [Za(n, Lt.DATE), l];\n })\n) : null, ar = (e) => {\n const t = On(e.isMonthPicker, e.isYearPicker);\n return {\n minDate: La(e.minDate, e.timezone, e.isSpecific),\n maxDate: La(e.maxDate, e.timezone, e.isSpecific),\n disabledDates: Ta(e.disabledDates) ? Ia(e.disabledDates, e.timezone, t, e.isSpecific) : e.disabledDates,\n allowedDates: Ta(e.allowedDates) ? Ia(e.allowedDates, e.timezone, t, e.isSpecific) : null,\n highlight: typeof e.highlight == \"object\" && Ta(e.highlight?.dates) ? Ia(e.highlight.dates, e.timezone, t) : e.highlight,\n markers: tr(e.markers, e.timezone)\n };\n}, nr = (e) => typeof e == \"boolean\" ? { enabled: e, dragSelect: !0, limit: null } : {\n enabled: !!e,\n limit: e.limit ? +e.limit : null,\n dragSelect: e.dragSelect ?? !0\n}, lr = (e) => ({\n ...Object.fromEntries(\n Object.keys(e).map((l) => {\n const n = l, a = e[n], f = typeof e[n] == \"string\" ? { [a]: !0 } : Object.fromEntries(a.map((i) => [i, !0]));\n return [l, f];\n })\n )\n}), Oe = (e) => {\n const t = () => {\n const U = e.enableSeconds ? \":ss\" : \"\", $ = e.enableMinutes ? \":mm\" : \"\";\n return e.is24 ? `HH${$}${U}` : `hh${$}${U} aa`;\n }, l = () => e.format ? e.format : e.monthPicker ? \"MM/yyyy\" : e.timePicker ? t() : e.weekPicker ? `${C.value?.type === \"iso\" ? \"II\" : \"ww\"}-RR` : e.yearPicker ? \"yyyy\" : e.quarterPicker ? \"QQQ/yyyy\" : e.enableTimePicker ? `MM/dd/yyyy, ${t()}` : \"MM/dd/yyyy\", n = (U) => En(U, e.enableSeconds), a = () => z.value.enabled ? e.startTime && Array.isArray(e.startTime) ? [n(e.startTime[0]), n(e.startTime[1])] : null : e.startTime && !Array.isArray(e.startTime) ? n(e.startTime) : null, f = j(() => Ul(e.multiCalendars)), i = j(() => a()), g = j(() => Wl(e.ariaLabels)), d = j(() => Gl(e.filters)), P = j(() => jl(e.transitions)), v = j(() => Ql(e.actionRow)), R = j(\n () => Vl(e.previewFormat, e.format, l())\n ), h = j(() => Kl(e.textInput)), T = j(() => ql(e.inline)), F = j(() => Xl(e.config)), _ = j(() => Jl(e.highlight)), C = j(() => Zl(e.weekNumbers)), M = j(() => er(e.timezone)), A = j(() => nr(e.multiDates)), m = j(\n () => ar({\n minDate: e.minDate,\n maxDate: e.maxDate,\n disabledDates: e.disabledDates,\n allowedDates: e.allowedDates,\n highlight: _.value,\n markers: e.markers,\n timezone: M.value,\n isSpecific: e.monthPicker || e.yearPicker || e.quarterPicker,\n isMonthPicker: e.monthPicker,\n isYearPicker: e.yearPicker\n })\n ), z = j(() => xl(e.range)), L = j(() => lr(e.ui));\n return {\n defaultedTransitions: P,\n defaultedMultiCalendars: f,\n defaultedStartTime: i,\n defaultedAriaLabels: g,\n defaultedFilters: d,\n defaultedActionRow: v,\n defaultedPreviewFormat: R,\n defaultedTextInput: h,\n defaultedInline: T,\n defaultedConfig: F,\n defaultedHighlight: _,\n defaultedWeekNumbers: C,\n defaultedRange: z,\n propDates: m,\n defaultedTz: M,\n defaultedMultiDates: A,\n defaultedUI: L,\n getDefaultPattern: l,\n getDefaultStartTime: a,\n handleEventPropagation: (U) => {\n F.value.allowStopPropagation && U.stopPropagation(), F.value.allowPreventDefault && U.preventDefault();\n }\n };\n}, rr = (e, t, { isInputFocused: l, isTextInputDate: n }) => {\n const a = Z(), { defaultedTextInput: f, defaultedRange: i, defaultedTz: g, defaultedMultiDates: d, getDefaultPattern: P } = Oe(t), v = Z(\"\"), R = qt(t, \"format\"), h = qt(t, \"formatLocale\");\n rt(\n a,\n () => {\n typeof t.onInternalModelChange == \"function\" && e(\"internal-model-change\", a.value, x(!0));\n },\n { deep: !0 }\n ), rt(i, (o, X) => {\n o.enabled !== X.enabled && (a.value = null);\n }), rt(R, () => {\n S();\n });\n const T = (o) => g.value.timezone && g.value.convertModel ? Ze(o, g.value.timezone) : o, F = (o) => {\n if (g.value.timezone && g.value.convertModel) {\n const X = Ml(g.value.timezone, o);\n return fl(o, X);\n }\n return o;\n }, _ = (o, X, B = !1) => Ln(\n o,\n t.format,\n t.formatLocale,\n f.value.rangeSeparator,\n t.modelAuto,\n X ?? P(),\n B\n ), C = (o) => o ? t.modelType ? k(o) : {\n hours: yt(o),\n minutes: $t(o),\n seconds: t.enableSeconds ? zt(o) : 0\n } : null, M = (o) => t.modelType ? k(o) : { month: Me(o), year: ye(o) }, A = (o) => Array.isArray(o) ? d.value.enabled ? o.map((X) => m(X, ut(H(), X))) : oa(\n () => [\n ut(H(), o[0]),\n o[1] ? ut(H(), o[1]) : It(i.value.partialRange)\n ],\n i.value.enabled\n ) : ut(H(), +o), m = (o, X) => (typeof o == \"string\" || typeof o == \"number\") && t.modelType ? q(o) : X, z = (o) => Array.isArray(o) ? [\n m(\n o[0],\n Mt(null, +o[0].hours, +o[0].minutes, o[0].seconds)\n ),\n m(\n o[1],\n Mt(null, +o[1].hours, +o[1].minutes, o[1].seconds)\n )\n ] : m(o, Mt(null, o.hours, o.minutes, o.seconds)), L = (o) => {\n const X = Se(H(), { date: 1 });\n return Array.isArray(o) ? d.value.enabled ? o.map((B) => m(B, pt(X, +B.month, +B.year))) : oa(\n () => [\n m(o[0], pt(X, +o[0].month, +o[0].year)),\n m(\n o[1],\n o[1] ? pt(X, +o[1].month, +o[1].year) : It(i.value.partialRange)\n )\n ],\n i.value.enabled\n ) : m(o, pt(X, +o.month, +o.year));\n }, le = (o) => {\n if (Array.isArray(o))\n return o.map((X) => q(X));\n throw new Error(Xa.dateArr(\"multi-dates\"));\n }, U = (o) => {\n if (Array.isArray(o) && i.value.enabled) {\n const X = o[0], B = o[1];\n return [\n H(Array.isArray(X) ? X[0] : null),\n Array.isArray(B) && B.length ? H(B[0]) : null\n ];\n }\n return H(o[0]);\n }, $ = (o) => t.modelAuto ? Array.isArray(o) ? [q(o[0]), q(o[1])] : t.autoApply ? [q(o)] : [q(o), null] : Array.isArray(o) ? oa(\n () => o[1] ? [\n q(o[0]),\n o[1] ? q(o[1]) : It(i.value.partialRange)\n ] : [q(o[0])],\n i.value.enabled\n ) : q(o), ee = () => {\n Array.isArray(a.value) && i.value.enabled && a.value.length === 1 && a.value.push(It(i.value.partialRange));\n }, O = () => {\n const o = a.value;\n return [\n k(o[0]),\n o[1] ? k(o[1]) : It(i.value.partialRange)\n ];\n }, J = () => Array.isArray(a.value) ? a.value[1] ? O() : k(Ne(a.value[0])) : [], ce = () => (a.value || []).map((o) => k(o)), pe = (o = !1) => (o || ee(), t.modelAuto ? J() : d.value.enabled ? ce() : Array.isArray(a.value) ? oa(() => O(), i.value.enabled) : k(Ne(a.value))), p = (o) => !o || Array.isArray(o) && !o.length ? null : t.timePicker ? z(Ne(o)) : t.monthPicker ? L(Ne(o)) : t.yearPicker ? A(Ne(o)) : d.value.enabled ? le(Ne(o)) : t.weekPicker ? U(Ne(o)) : $(Ne(o)), Y = (o) => {\n if (n.value) return;\n const X = p(o);\n za(Ne(X)) ? (a.value = Ne(X), S()) : (a.value = null, v.value = \"\");\n }, te = () => {\n const o = (X) => ft(X, f.value.format);\n return `${o(a.value[0])} ${f.value.rangeSeparator} ${a.value[1] ? o(a.value[1]) : \"\"}`;\n }, y = () => l.value && a.value ? Array.isArray(a.value) ? te() : ft(a.value, f.value.format) : _(a.value), V = () => a.value ? d.value.enabled ? a.value.map((o) => _(o)).join(\"; \") : f.value.enabled && typeof f.value.format == \"string\" ? y() : _(a.value) : \"\", S = () => {\n !t.format || typeof t.format == \"string\" || f.value.enabled && typeof f.value.format == \"string\" ? v.value = V() : v.value = t.format(a.value);\n }, q = (o) => {\n if (t.utc) {\n const X = new Date(o);\n return t.utc === \"preserve\" ? new Date(X.getTime() + X.getTimezoneOffset() * 6e4) : X;\n }\n return t.modelType ? $l.includes(t.modelType) ? T(new Date(o)) : t.modelType === \"format\" && (typeof t.format == \"string\" || !t.format) ? T(\n Na(o, P(), /* @__PURE__ */ new Date(), { locale: h.value })\n ) : T(\n Na(o, t.modelType, /* @__PURE__ */ new Date(), { locale: h.value })\n ) : T(new Date(o));\n }, k = (o) => o ? t.utc ? Il(o, t.utc === \"preserve\", t.enableSeconds) : t.modelType ? t.modelType === \"timestamp\" ? +F(o) : t.modelType === \"iso\" ? F(o).toISOString() : t.modelType === \"format\" && (typeof t.format == \"string\" || !t.format) ? _(F(o)) : _(F(o), t.modelType, !0) : F(o) : \"\", se = (o, X = !1, B = !1) => {\n if (B) return o;\n if (e(\"update:model-value\", o), g.value.emitTimezone && X) {\n const be = Array.isArray(o) ? o.map((Ae) => Ze(Ne(Ae), g.value.emitTimezone)) : Ze(Ne(o), g.value.emitTimezone);\n e(\"update:model-timezone-value\", be);\n }\n }, u = (o) => Array.isArray(a.value) ? d.value.enabled ? a.value.map((X) => o(X)) : [\n o(a.value[0]),\n a.value[1] ? o(a.value[1]) : It(i.value.partialRange)\n ] : o(Ne(a.value)), re = () => {\n if (Array.isArray(a.value)) {\n const o = mt(a.value[0], t.weekStart), X = a.value[1] ? mt(a.value[1], t.weekStart) : [];\n return [o.map((B) => H(B)), X.map((B) => H(B))];\n }\n return mt(a.value, t.weekStart).map((o) => H(o));\n }, G = (o, X) => se(Ne(u(o)), !1, X), I = (o) => {\n const X = re();\n return o ? X : e(\"update:model-value\", re());\n }, x = (o = !1) => (o || S(), t.monthPicker ? G(M, o) : t.timePicker ? G(C, o) : t.yearPicker ? G(ye, o) : t.weekPicker ? I(o) : se(pe(o), !0, o));\n return {\n inputValue: v,\n internalModelValue: a,\n checkBeforeEmit: () => a.value ? i.value.enabled ? i.value.partialRange ? a.value.length >= 1 : a.value.length === 2 : !!a.value : !1,\n parseExternalModelValue: Y,\n formatInputValue: S,\n emitModelValue: x\n };\n}, or = (e, t) => {\n const { defaultedFilters: l, propDates: n } = Oe(e), { validateMonthYearInRange: a } = Tt(e), f = (v, R) => {\n let h = v;\n return l.value.months.includes(Me(h)) ? (h = R ? Ct(v, 1) : Jt(v, 1), f(h, R)) : h;\n }, i = (v, R) => {\n let h = v;\n return l.value.years.includes(ye(h)) ? (h = R ? Mn(v, 1) : $n(v, 1), i(h, R)) : h;\n }, g = (v, R = !1) => {\n const h = Se(H(), { month: e.month, year: e.year });\n let T = v ? Ct(h, 1) : Jt(h, 1);\n e.disableYearSelect && (T = ut(T, e.year));\n let F = Me(T), _ = ye(T);\n l.value.months.includes(F) && (T = f(T, v), F = Me(T), _ = ye(T)), l.value.years.includes(_) && (T = i(T, v), _ = ye(T)), a(F, _, v, e.preventMinMaxNavigation) && d(F, _, R);\n }, d = (v, R, h) => {\n t(\"update-month-year\", { month: v, year: R, fromNav: h });\n }, P = j(() => (v) => Nn(\n Se(H(), { month: e.month, year: e.year }),\n n.value.maxDate,\n n.value.minDate,\n e.preventMinMaxNavigation,\n v\n ));\n return { handleMonthYearChange: g, isDisabled: P, updateMonthYear: d };\n}, va = {\n multiCalendars: { type: [Boolean, Number, String, Object], default: void 0 },\n modelValue: { type: [String, Date, Array, Object, Number], default: null },\n modelType: { type: String, default: null },\n position: { type: String, default: \"center\" },\n dark: { type: Boolean, default: !1 },\n format: {\n type: [String, Function],\n default: () => null\n },\n autoPosition: { type: [Boolean, String], default: !0 },\n altPosition: { type: Function, default: null },\n transitions: { type: [Boolean, Object], default: !0 },\n formatLocale: { type: Object, default: null },\n utc: { type: [Boolean, String], default: !1 },\n ariaLabels: { type: Object, default: () => ({}) },\n offset: { type: [Number, String], default: 10 },\n hideNavigation: { type: Array, default: () => [] },\n timezone: { type: [String, Object], default: null },\n vertical: { type: Boolean, default: !1 },\n disableMonthYearSelect: { type: Boolean, default: !1 },\n disableYearSelect: { type: Boolean, default: !1 },\n dayClass: {\n type: Function,\n default: null\n },\n yearRange: { type: Array, default: () => [1900, 2100] },\n enableTimePicker: { type: Boolean, default: !0 },\n autoApply: { type: Boolean, default: !1 },\n disabledDates: { type: [Array, Function], default: () => [] },\n monthNameFormat: { type: String, default: \"short\" },\n startDate: { type: [Date, String], default: null },\n startTime: { type: [Object, Array], default: null },\n hideOffsetDates: { type: Boolean, default: !1 },\n noToday: { type: Boolean, default: !1 },\n disabledWeekDays: { type: Array, default: () => [] },\n allowedDates: { type: Array, default: null },\n nowButtonLabel: { type: String, default: \"Now\" },\n markers: { type: Array, default: () => [] },\n escClose: { type: Boolean, default: !0 },\n spaceConfirm: { type: Boolean, default: !0 },\n monthChangeOnArrows: { type: Boolean, default: !0 },\n presetDates: { type: Array, default: () => [] },\n flow: { type: Array, default: () => [] },\n partialFlow: { type: Boolean, default: !1 },\n preventMinMaxNavigation: { type: Boolean, default: !1 },\n reverseYears: { type: Boolean, default: !1 },\n weekPicker: { type: Boolean, default: !1 },\n filters: { type: Object, default: () => ({}) },\n arrowNavigation: { type: Boolean, default: !1 },\n highlight: {\n type: [Function, Object],\n default: null\n },\n teleport: { type: [Boolean, String, Object], default: null },\n teleportCenter: { type: Boolean, default: !1 },\n locale: { type: String, default: \"en-Us\" },\n weekNumName: { type: String, default: \"W\" },\n weekStart: { type: [Number, String], default: 1 },\n weekNumbers: {\n type: [String, Function, Object],\n default: null\n },\n monthChangeOnScroll: { type: [Boolean, String], default: !0 },\n dayNames: {\n type: [Function, Array],\n default: null\n },\n monthPicker: { type: Boolean, default: !1 },\n customProps: { type: Object, default: null },\n yearPicker: { type: Boolean, default: !1 },\n modelAuto: { type: Boolean, default: !1 },\n selectText: { type: String, default: \"Select\" },\n cancelText: { type: String, default: \"Cancel\" },\n previewFormat: {\n type: [String, Function],\n default: () => \"\"\n },\n multiDates: { type: [Object, Boolean], default: !1 },\n ignoreTimeValidation: { type: Boolean, default: !1 },\n minDate: { type: [Date, String], default: null },\n maxDate: { type: [Date, String], default: null },\n minTime: { type: Object, default: null },\n maxTime: { type: Object, default: null },\n name: { type: String, default: null },\n placeholder: { type: String, default: \"\" },\n hideInputIcon: { type: Boolean, default: !1 },\n clearable: { type: Boolean, default: !0 },\n alwaysClearable: { type: Boolean, default: !1 },\n state: { type: Boolean, default: null },\n required: { type: Boolean, default: !1 },\n autocomplete: { type: String, default: \"off\" },\n timePicker: { type: Boolean, default: !1 },\n enableSeconds: { type: Boolean, default: !1 },\n is24: { type: Boolean, default: !0 },\n noHoursOverlay: { type: Boolean, default: !1 },\n noMinutesOverlay: { type: Boolean, default: !1 },\n noSecondsOverlay: { type: Boolean, default: !1 },\n hoursGridIncrement: { type: [String, Number], default: 1 },\n minutesGridIncrement: { type: [String, Number], default: 5 },\n secondsGridIncrement: { type: [String, Number], default: 5 },\n hoursIncrement: { type: [Number, String], default: 1 },\n minutesIncrement: { type: [Number, String], default: 1 },\n secondsIncrement: { type: [Number, String], default: 1 },\n range: { type: [Boolean, Object], default: !1 },\n uid: { type: String, default: null },\n disabled: { type: Boolean, default: !1 },\n readonly: { type: Boolean, default: !1 },\n inline: { type: [Boolean, Object], default: !1 },\n textInput: { type: [Boolean, Object], default: !1 },\n sixWeeks: { type: [Boolean, String], default: !1 },\n actionRow: { type: Object, default: () => ({}) },\n focusStartDate: { type: Boolean, default: !1 },\n disabledTimes: { type: [Function, Array], default: void 0 },\n timePickerInline: { type: Boolean, default: !1 },\n calendar: { type: Function, default: null },\n config: { type: Object, default: void 0 },\n quarterPicker: { type: Boolean, default: !1 },\n yearFirst: { type: Boolean, default: !1 },\n loading: { type: Boolean, default: !1 },\n onInternalModelChange: { type: [Function, Object], default: null },\n enableMinutes: { type: Boolean, default: !0 },\n ui: { type: Object, default: () => ({}) }\n}, dt = {\n ...va,\n shadow: { type: Boolean, default: !1 },\n flowStep: { type: Number, default: 0 },\n internalModelValue: { type: [Date, Array], default: null },\n noOverlayFocus: { type: Boolean, default: !1 },\n collapse: { type: Boolean, default: !1 },\n menuWrapRef: { type: Object, default: null },\n getInputRect: { type: Function, default: () => ({}) },\n isTextInputDate: { type: Boolean, default: !1 },\n isMobile: { type: Boolean, default: void 0 }\n}, sr = [\"title\"], ur = [\"disabled\"], ir = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"ActionRow\",\n props: {\n menuMount: { type: Boolean, default: !1 },\n calendarWidth: { type: Number, default: 0 },\n ...dt\n },\n emits: [\"close-picker\", \"select-date\", \"select-now\", \"invalid-select\"],\n setup(e, { emit: t }) {\n const l = t, n = e, {\n defaultedActionRow: a,\n defaultedPreviewFormat: f,\n defaultedMultiCalendars: i,\n defaultedTextInput: g,\n defaultedInline: d,\n defaultedRange: P,\n defaultedMultiDates: v\n } = Oe(n), { isTimeValid: R, isMonthValid: h } = Tt(n), { buildMatrix: T } = At(), F = Z(null), _ = Z(null), C = Z(!1), M = Z({}), A = Z(null), m = Z(null);\n Ue(() => {\n n.arrowNavigation && T([Le(F), Le(_)], \"actionRow\"), z(), window.addEventListener(\"resize\", z);\n }), Ut(() => {\n window.removeEventListener(\"resize\", z);\n });\n const z = () => {\n C.value = !1, setTimeout(() => {\n const p = A.value?.getBoundingClientRect(), Y = m.value?.getBoundingClientRect();\n p && Y && (M.value.maxWidth = `${Y.width - p.width - 20}px`), C.value = !0;\n }, 0);\n }, L = j(() => P.value.enabled && !P.value.partialRange && n.internalModelValue ? n.internalModelValue.length === 2 : !0), le = j(\n () => !R.value(n.internalModelValue) || !h.value(n.internalModelValue) || !L.value\n ), U = () => {\n const p = f.value;\n return n.timePicker || n.monthPicker, p(Ne(n.internalModelValue));\n }, $ = () => {\n const p = n.internalModelValue;\n return i.value.count > 0 ? `${ee(p[0])} - ${ee(p[1])}` : [ee(p[0]), ee(p[1])];\n }, ee = (p) => Ln(\n p,\n f.value,\n n.formatLocale,\n g.value.rangeSeparator,\n n.modelAuto,\n f.value\n ), O = j(() => !n.internalModelValue || !n.menuMount ? \"\" : typeof f.value == \"string\" ? Array.isArray(n.internalModelValue) ? n.internalModelValue.length === 2 && n.internalModelValue[1] ? $() : v.value.enabled ? n.internalModelValue.map((p) => `${ee(p)}`) : n.modelAuto ? `${ee(n.internalModelValue[0])}` : `${ee(n.internalModelValue[0])} -` : ee(n.internalModelValue) : U()), J = () => v.value.enabled ? \"; \" : \" - \", ce = j(\n () => Array.isArray(O.value) ? O.value.join(J()) : O.value\n ), pe = () => {\n R.value(n.internalModelValue) && h.value(n.internalModelValue) && L.value ? l(\"select-date\") : l(\"invalid-select\");\n };\n return (p, Y) => (w(), W(\"div\", {\n ref_key: \"actionRowRef\",\n ref: m,\n class: \"dp__action_row\"\n }, [\n p.$slots[\"action-row\"] ? ie(p.$slots, \"action-row\", ze(He({ key: 0 }, {\n internalModelValue: p.internalModelValue,\n disabled: le.value,\n selectDate: () => p.$emit(\"select-date\"),\n closePicker: () => p.$emit(\"close-picker\")\n }))) : (w(), W(ke, { key: 1 }, [\n s(a).showPreview ? (w(), W(\"div\", {\n key: 0,\n class: \"dp__selection_preview\",\n title: ce.value,\n style: lt(M.value)\n }, [\n p.$slots[\"action-preview\"] && C.value ? ie(p.$slots, \"action-preview\", {\n key: 0,\n value: p.internalModelValue\n }) : Q(\"\", !0),\n !p.$slots[\"action-preview\"] && C.value ? (w(), W(ke, { key: 1 }, [\n gt(Ke(ce.value), 1)\n ], 64)) : Q(\"\", !0)\n ], 12, sr)) : Q(\"\", !0),\n he(\"div\", {\n ref_key: \"actionBtnContainer\",\n ref: A,\n class: \"dp__action_buttons\",\n \"data-dp-element\": \"action-row\"\n }, [\n p.$slots[\"action-buttons\"] ? ie(p.$slots, \"action-buttons\", {\n key: 0,\n value: p.internalModelValue\n }) : Q(\"\", !0),\n p.$slots[\"action-buttons\"] ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n !s(d).enabled && s(a).showCancel ? (w(), W(\"button\", {\n key: 0,\n ref_key: \"cancelButtonRef\",\n ref: F,\n type: \"button\",\n class: \"dp__action_button dp__action_cancel\",\n onClick: Y[0] || (Y[0] = (te) => p.$emit(\"close-picker\")),\n onKeydown: Y[1] || (Y[1] = (te) => s(qe)(te, () => p.$emit(\"close-picker\")))\n }, Ke(p.cancelText), 545)) : Q(\"\", !0),\n s(a).showNow ? (w(), W(\"button\", {\n key: 1,\n type: \"button\",\n class: \"dp__action_button dp__action_cancel\",\n onClick: Y[2] || (Y[2] = (te) => p.$emit(\"select-now\")),\n onKeydown: Y[3] || (Y[3] = (te) => s(qe)(te, () => p.$emit(\"select-now\")))\n }, Ke(p.nowButtonLabel), 33)) : Q(\"\", !0),\n s(a).showSelect ? (w(), W(\"button\", {\n key: 2,\n ref_key: \"selectButtonRef\",\n ref: _,\n type: \"button\",\n class: \"dp__action_button dp__action_select\",\n disabled: le.value,\n \"data-test-id\": \"select-button\",\n onKeydown: Y[4] || (Y[4] = (te) => s(qe)(te, () => pe())),\n onClick: pe\n }, Ke(p.selectText), 41, ur)) : Q(\"\", !0)\n ], 64))\n ], 512)\n ], 64))\n ], 512));\n }\n}), dr = [\"role\", \"aria-label\", \"tabindex\"], cr = { class: \"dp__selection_grid_header\" }, fr = [\"aria-selected\", \"aria-disabled\", \"data-test-id\", \"onClick\", \"onKeydown\", \"onMouseover\"], vr = [\"aria-label\"], ta = /* @__PURE__ */ We({\n __name: \"SelectionOverlay\",\n props: {\n items: {},\n type: {},\n isLast: { type: Boolean },\n arrowNavigation: { type: Boolean },\n skipButtonRef: { type: Boolean },\n headerRefs: {},\n hideNavigation: {},\n escClose: { type: Boolean },\n useRelative: { type: Boolean },\n height: {},\n textInput: { type: [Boolean, Object] },\n config: {},\n noOverlayFocus: { type: Boolean },\n focusValue: {},\n menuWrapRef: {},\n ariaLabels: {},\n overlayLabel: {}\n },\n emits: [\"selected\", \"toggle\", \"reset-flow\", \"hover-value\"],\n setup(e, { expose: t, emit: l }) {\n const { setSelectionGrid: n, buildMultiLevelMatrix: a, setMonthPicker: f } = At(), i = l, g = e, { defaultedAriaLabels: d, defaultedTextInput: P, defaultedConfig: v, handleEventPropagation: R } = Oe(\n g\n ), { hideNavigationButtons: h } = ga(), T = Z(!1), F = Z(null), _ = Z(null), C = Z([]), M = Z(), A = Z(null), m = Z(0), z = Z(null);\n Zn(() => {\n F.value = null;\n }), Ue(() => {\n at().then(() => ce()), g.noOverlayFocus || le(), L(!0);\n }), Ut(() => L(!1));\n const L = (u) => {\n g.arrowNavigation && (g.headerRefs?.length ? f(u) : n(u));\n }, le = () => {\n const u = Le(_);\n u && (P.value.enabled || (F.value ? F.value?.focus({ preventScroll: !0 }) : u.focus({ preventScroll: !0 })), T.value = u.clientHeight < u.scrollHeight);\n }, U = j(\n () => ({\n dp__overlay: !0,\n \"dp--overlay-absolute\": !g.useRelative,\n \"dp--overlay-relative\": g.useRelative\n })\n ), $ = j(\n () => g.useRelative ? { height: `${g.height}px`, width: \"var(--dp-menu-min-width)\" } : void 0\n ), ee = j(() => ({\n dp__overlay_col: !0\n })), O = j(\n () => ({\n dp__btn: !0,\n dp__button: !0,\n dp__overlay_action: !0,\n dp__over_action_scroll: T.value,\n dp__button_bottom: g.isLast\n })\n ), J = j(() => ({\n dp__overlay_container: !0,\n dp__container_flex: g.items?.length <= 6,\n dp__container_block: g.items?.length > 6\n }));\n rt(\n () => g.items,\n () => ce(!1),\n { deep: !0 }\n );\n const ce = (u = !0) => {\n at().then(() => {\n const re = Le(F), G = Le(_), I = Le(A), x = Le(z), c = I ? I.getBoundingClientRect().height : 0;\n G && (G.getBoundingClientRect().height ? m.value = G.getBoundingClientRect().height - c : m.value = v.value.modeHeight - c), re && x && u && (x.scrollTop = re.offsetTop - x.offsetTop - (m.value / 2 - re.getBoundingClientRect().height) - c);\n });\n }, pe = (u) => {\n u.disabled || i(\"selected\", u.value);\n }, p = () => {\n i(\"toggle\"), i(\"reset-flow\");\n }, Y = (u) => {\n g.escClose && (p(), R(u));\n }, te = (u, re, G, I) => {\n u && ((re.active || re.value === g.focusValue) && (F.value = u), g.arrowNavigation && (Array.isArray(C.value[G]) ? C.value[G][I] = u : C.value[G] = [u], y()));\n }, y = () => {\n const u = g.headerRefs?.length ? [g.headerRefs].concat(C.value) : C.value.concat([g.skipButtonRef ? [] : [A.value]]);\n a(Ne(u), g.headerRefs?.length ? \"monthPicker\" : \"selectionGrid\");\n }, V = (u) => {\n g.arrowNavigation || Dt(u, v.value, !0);\n }, S = (u) => {\n M.value = u, i(\"hover-value\", u);\n }, q = () => {\n if (p(), !g.isLast) {\n const u = Fa(g.menuWrapRef ?? null, \"action-row\");\n u && Cn(u)?.focus();\n }\n }, k = (u) => {\n switch (u.key) {\n case Re.esc:\n return Y(u);\n case Re.arrowLeft:\n return V(u);\n case Re.arrowRight:\n return V(u);\n case Re.arrowUp:\n return V(u);\n case Re.arrowDown:\n return V(u);\n default:\n return;\n }\n }, se = (u) => {\n if (u.key === Re.enter) return p();\n if (u.key === Re.tab) return q();\n };\n return t({ focusGrid: le }), (u, re) => (w(), W(\"div\", {\n ref_key: \"gridWrapRef\",\n ref: _,\n class: De(U.value),\n style: lt($.value),\n role: e.useRelative ? void 0 : \"dialog\",\n \"aria-label\": e.overlayLabel,\n tabindex: e.useRelative ? void 0 : \"0\",\n onKeydown: k,\n onClick: re[0] || (re[0] = Xt(() => {\n }, [\"prevent\"]))\n }, [\n he(\"div\", {\n ref_key: \"containerRef\",\n ref: z,\n class: De(J.value),\n style: lt({ \"--dp-overlay-height\": `${m.value}px` }),\n role: \"grid\"\n }, [\n he(\"div\", cr, [\n ie(u.$slots, \"header\")\n ]),\n u.$slots.overlay ? ie(u.$slots, \"overlay\", { key: 0 }) : (w(!0), W(ke, { key: 1 }, Ce(e.items, (G, I) => (w(), W(\"div\", {\n key: I,\n class: De([\"dp__overlay_row\", { dp__flex_row: e.items.length >= 3 }]),\n role: \"row\"\n }, [\n (w(!0), W(ke, null, Ce(G, (x, c) => (w(), W(\"div\", {\n key: x.value,\n ref_for: !0,\n ref: (o) => te(o, x, I, c),\n role: \"gridcell\",\n class: De(ee.value),\n \"aria-selected\": x.active || void 0,\n \"aria-disabled\": x.disabled || void 0,\n tabindex: \"0\",\n \"data-test-id\": x.text,\n onClick: Xt((o) => pe(x), [\"prevent\"]),\n onKeydown: (o) => s(qe)(o, () => pe(x), !0),\n onMouseover: (o) => S(x.value)\n }, [\n he(\"div\", {\n class: De(x.className)\n }, [\n u.$slots.item ? ie(u.$slots, \"item\", {\n key: 0,\n item: x\n }) : Q(\"\", !0),\n u.$slots.item ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n gt(Ke(x.text), 1)\n ], 64))\n ], 2)\n ], 42, fr))), 128))\n ], 2))), 128))\n ], 6),\n u.$slots[\"button-icon\"] ? ua((w(), W(\"button\", {\n key: 0,\n ref_key: \"toggleButton\",\n ref: A,\n type: \"button\",\n \"aria-label\": s(d)?.toggleOverlay,\n class: De(O.value),\n tabindex: \"0\",\n onClick: p,\n onKeydown: se\n }, [\n ie(u.$slots, \"button-icon\")\n ], 42, vr)), [\n [ia, !s(h)(e.hideNavigation, e.type)]\n ]) : Q(\"\", !0)\n ], 46, dr));\n }\n}), mr = [\"data-dp-mobile\"], ma = /* @__PURE__ */ We({\n __name: \"InstanceWrap\",\n props: {\n multiCalendars: {},\n stretch: { type: Boolean },\n collapse: { type: Boolean },\n isMobile: { type: Boolean }\n },\n setup(e) {\n const t = e, l = j(\n () => t.multiCalendars > 0 ? [...Array(t.multiCalendars).keys()] : [0]\n ), n = j(() => ({\n dp__instance_calendar: t.multiCalendars > 0\n }));\n return (a, f) => (w(), W(\"div\", {\n class: De({\n dp__menu_inner: !e.stretch,\n \"dp--menu--inner-stretched\": e.stretch,\n dp__flex_display: e.multiCalendars > 0,\n \"dp--flex-display-collapsed\": e.collapse\n }),\n \"data-dp-mobile\": e.isMobile\n }, [\n (w(!0), W(ke, null, Ce(l.value, (i, g) => (w(), W(\"div\", {\n key: i,\n class: De(n.value)\n }, [\n ie(a.$slots, \"default\", {\n instance: i,\n index: g\n })\n ], 2))), 128))\n ], 10, mr));\n }\n}), pr = [\"data-dp-element\", \"aria-label\", \"aria-disabled\"], Qt = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"ArrowBtn\",\n props: {\n ariaLabel: {},\n elName: {},\n disabled: { type: Boolean }\n },\n emits: [\"activate\", \"set-ref\"],\n setup(e, { emit: t }) {\n const l = t, n = Z(null);\n return Ue(() => l(\"set-ref\", n)), (a, f) => (w(), W(\"button\", {\n ref_key: \"elRef\",\n ref: n,\n type: \"button\",\n \"data-dp-element\": e.elName,\n class: \"dp__btn dp--arrow-btn-nav\",\n tabindex: \"0\",\n \"aria-label\": e.ariaLabel,\n \"aria-disabled\": e.disabled || void 0,\n onClick: f[0] || (f[0] = (i) => l(\"activate\")),\n onKeydown: f[1] || (f[1] = (i) => s(qe)(i, () => l(\"activate\"), !0))\n }, [\n he(\"span\", {\n class: De([\"dp__inner_nav\", { dp__inner_nav_disabled: e.disabled }])\n }, [\n ie(a.$slots, \"default\")\n ], 2)\n ], 40, pr));\n }\n}), gr = [\"aria-label\", \"data-test-id\"], Wn = /* @__PURE__ */ We({\n __name: \"YearModePicker\",\n props: {\n ...dt,\n showYearPicker: { type: Boolean, default: !1 },\n items: { type: Array, default: () => [] },\n instance: { type: Number, default: 0 },\n year: { type: Number, default: 0 },\n isDisabled: { type: Function, default: () => !1 }\n },\n emits: [\"toggle-year-picker\", \"year-select\", \"handle-year\"],\n setup(e, { emit: t }) {\n const l = t, n = e, { showRightIcon: a, showLeftIcon: f } = ga(), { defaultedConfig: i, defaultedMultiCalendars: g, defaultedAriaLabels: d, defaultedTransitions: P, defaultedUI: v } = Oe(n), { showTransition: R, transitionName: h } = aa(P), T = Z(!1), F = j(() => Ja(n.year, n.locale)), _ = (A = !1, m) => {\n T.value = !T.value, l(\"toggle-year-picker\", { flow: A, show: m });\n }, C = (A) => {\n T.value = !1, l(\"year-select\", A);\n }, M = (A = !1) => {\n l(\"handle-year\", A);\n };\n return (A, m) => (w(), W(ke, null, [\n he(\"div\", {\n class: De([\"dp--year-mode-picker\", { \"dp--hidden-el\": T.value }])\n }, [\n s(f)(s(g), e.instance) ? (w(), Te(Qt, {\n key: 0,\n ref: \"mpPrevIconRef\",\n \"aria-label\": s(d)?.prevYear,\n disabled: e.isDisabled(!1),\n class: De(s(v)?.navBtnPrev),\n onActivate: m[0] || (m[0] = (z) => M(!1))\n }, {\n default: we(() => [\n A.$slots[\"arrow-left\"] ? ie(A.$slots, \"arrow-left\", { key: 0 }) : Q(\"\", !0),\n A.$slots[\"arrow-left\"] ? Q(\"\", !0) : (w(), Te(s(Ua), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"class\"])) : Q(\"\", !0),\n he(\"button\", {\n ref: \"mpYearButtonRef\",\n class: \"dp__btn dp--year-select\",\n type: \"button\",\n \"aria-label\": `${e.year}-${s(d)?.openYearsOverlay}`,\n \"data-test-id\": `year-mode-btn-${e.instance}`,\n onClick: m[1] || (m[1] = () => _(!1)),\n onKeydown: m[2] || (m[2] = xn(() => _(!1), [\"enter\"]))\n }, [\n A.$slots.year ? ie(A.$slots, \"year\", {\n key: 0,\n year: e.year,\n text: F.value,\n value: e.year\n }) : Q(\"\", !0),\n A.$slots.year ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n gt(Ke(F.value), 1)\n ], 64))\n ], 40, gr),\n s(a)(s(g), e.instance) ? (w(), Te(Qt, {\n key: 1,\n ref: \"mpNextIconRef\",\n \"aria-label\": s(d)?.nextYear,\n disabled: e.isDisabled(!0),\n class: De(s(v)?.navBtnNext),\n onActivate: m[3] || (m[3] = (z) => M(!0))\n }, {\n default: we(() => [\n A.$slots[\"arrow-right\"] ? ie(A.$slots, \"arrow-right\", { key: 0 }) : Q(\"\", !0),\n A.$slots[\"arrow-right\"] ? Q(\"\", !0) : (w(), Te(s(Va), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"class\"])) : Q(\"\", !0)\n ], 2),\n tt(Vt, {\n name: s(h)(e.showYearPicker),\n css: s(R)\n }, {\n default: we(() => [\n e.showYearPicker ? (w(), Te(ta, {\n key: 0,\n items: e.items,\n \"text-input\": A.textInput,\n \"esc-close\": A.escClose,\n config: A.config,\n \"is-last\": A.autoApply && !s(i).keepActionRow,\n \"hide-navigation\": A.hideNavigation,\n \"aria-labels\": A.ariaLabels,\n \"overlay-label\": s(d)?.yearPicker?.(!0),\n type: \"year\",\n onToggle: _,\n onSelected: m[4] || (m[4] = (z) => C(z))\n }, Ge({\n \"button-icon\": we(() => [\n A.$slots[\"calendar-icon\"] ? ie(A.$slots, \"calendar-icon\", { key: 0 }) : Q(\"\", !0),\n A.$slots[\"calendar-icon\"] ? Q(\"\", !0) : (w(), Te(s(jt), { key: 1 }))\n ]),\n _: 2\n }, [\n A.$slots[\"year-overlay-value\"] ? {\n name: \"item\",\n fn: we(({ item: z }) => [\n ie(A.$slots, \"year-overlay-value\", {\n text: z.text,\n value: z.value\n })\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"items\", \"text-input\", \"esc-close\", \"config\", \"is-last\", \"hide-navigation\", \"aria-labels\", \"overlay-label\"])) : Q(\"\", !0)\n ]),\n _: 3\n }, 8, [\"name\", \"css\"])\n ], 64));\n }\n}), en = (e, t, l) => {\n if (t.value && Array.isArray(t.value))\n if (t.value.some((n) => $e(e, n))) {\n const n = t.value.filter((a) => !$e(a, e));\n t.value = n.length ? n : null;\n } else (l && +l > t.value.length || !l) && t.value.push(e);\n else\n t.value = [e];\n}, tn = (e, t, l) => {\n let n = e.value ? e.value.slice() : [];\n return n.length === 2 && n[1] !== null && (n = []), n.length ? (Be(t, n[0]) ? n.unshift(t) : n[1] = t, l(\"range-end\", t)) : (n = [t], l(\"range-start\", t)), n;\n}, pa = (e, t, l, n) => {\n e && (e[0] && e[1] && l && t(\"auto-apply\"), e[0] && !e[1] && n && l && t(\"auto-apply\"));\n}, Un = (e) => {\n Array.isArray(e.value) && e.value.length <= 2 && e.range ? e.modelValue.value = e.value.map((t) => Ze(H(t), e.timezone)) : Array.isArray(e.value) || (e.modelValue.value = Ze(H(e.value), e.timezone));\n}, Vn = (e, t, l, n) => Array.isArray(t.value) && (t.value.length === 2 || t.value.length === 1 && n.value.partialRange) ? n.value.fixedStart && (Ee(e, t.value[0]) || $e(e, t.value[0])) ? [t.value[0], e] : n.value.fixedEnd && (Be(e, t.value[1]) || $e(e, t.value[1])) ? [e, t.value[1]] : (l(\"invalid-fixed-range\", e), t.value) : [], jn = ({\n multiCalendars: e,\n range: t,\n highlight: l,\n propDates: n,\n calendars: a,\n modelValue: f,\n props: i,\n filters: g,\n year: d,\n month: P,\n emit: v\n}) => {\n const R = j(() => qa(i.yearRange, i.locale, i.reverseYears)), h = Z([!1]), T = j(() => (O, J) => {\n const ce = Se(it(/* @__PURE__ */ new Date()), {\n month: P.value(O),\n year: d.value(O)\n }), pe = J ? An(ce) : Gt(ce);\n return Nn(\n pe,\n n.value.maxDate,\n n.value.minDate,\n i.preventMinMaxNavigation,\n J\n );\n }), F = () => Array.isArray(f.value) && e.value.solo && f.value[1], _ = () => {\n for (let O = 0; O < e.value.count; O++)\n if (O === 0)\n a.value[O] = a.value[0];\n else if (O === e.value.count - 1 && F())\n a.value[O] = {\n month: Me(f.value[1]),\n year: ye(f.value[1])\n };\n else {\n const J = Se(H(), a.value[O - 1]);\n a.value[O] = { month: Me(J), year: ye(Mn(J, 1)) };\n }\n }, C = (O) => {\n if (!O) return _();\n const J = Se(H(), a.value[O]);\n return a.value[0].year = ye($n(J, e.value.count - 1)), _();\n }, M = (O, J) => {\n const ce = vl(J, O);\n return t.value.showLastInRange && ce > 1 ? J : O;\n }, A = (O) => i.focusStartDate || e.value.solo ? O[0] : O[1] ? M(O[0], O[1]) : O[0], m = () => {\n if (f.value) {\n const O = Array.isArray(f.value) ? A(f.value) : f.value;\n a.value[0] = { month: Me(O), year: ye(O) };\n }\n }, z = () => {\n m(), e.value.count && _();\n };\n rt(f, (O, J) => {\n i.isTextInputDate && JSON.stringify(O ?? {}) !== JSON.stringify(J ?? {}) && z();\n }), Ue(() => {\n z();\n });\n const L = (O, J) => {\n a.value[J].year = O, v(\"update-month-year\", { instance: J, year: O, month: a.value[J].month }), e.value.count && !e.value.solo && C(J);\n }, le = j(() => (O) => Ht(R.value, (J) => {\n const ce = d.value(O) === J.value, pe = Zt(\n J.value,\n Wt(n.value.minDate),\n Wt(n.value.maxDate)\n ) || g.value.years?.includes(d.value(O)), p = xa(l.value, J.value);\n return { active: ce, disabled: pe, highlighted: p };\n })), U = (O, J) => {\n L(O, J), ee(J);\n }, $ = (O, J = !1) => {\n if (!T.value(O, J)) {\n const ce = J ? d.value(O) + 1 : d.value(O) - 1;\n L(ce, O);\n }\n }, ee = (O, J = !1, ce) => {\n J || v(\"reset-flow\"), ce !== void 0 ? h.value[O] = ce : h.value[O] = !h.value[O], h.value[O] ? v(\"overlay-toggle\", { open: !0, overlay: je.year }) : (v(\"overlay-closed\"), v(\"overlay-toggle\", { open: !1, overlay: je.year }));\n };\n return {\n isDisabled: T,\n groupedYears: le,\n showYearPicker: h,\n selectYear: L,\n toggleYearPicker: ee,\n handleYearSelect: U,\n handleYear: $\n };\n}, yr = (e, t) => {\n const {\n defaultedMultiCalendars: l,\n defaultedAriaLabels: n,\n defaultedTransitions: a,\n defaultedConfig: f,\n defaultedRange: i,\n defaultedHighlight: g,\n propDates: d,\n defaultedTz: P,\n defaultedFilters: v,\n defaultedMultiDates: R\n } = Oe(e), h = () => {\n e.isTextInputDate && z(ye(H(e.startDate)), 0);\n }, { modelValue: T, year: F, month: _, calendars: C } = na(e, t, h), M = j(() => Pn(e.formatLocale, e.locale, e.monthNameFormat)), A = Z(null), { checkMinMaxRange: m } = Tt(e), {\n selectYear: z,\n groupedYears: L,\n showYearPicker: le,\n toggleYearPicker: U,\n handleYearSelect: $,\n handleYear: ee,\n isDisabled: O\n } = jn({\n modelValue: T,\n multiCalendars: l,\n range: i,\n highlight: g,\n calendars: C,\n year: F,\n propDates: d,\n month: _,\n filters: v,\n props: e,\n emit: t\n });\n Ue(() => {\n e.startDate && (T.value && e.focusStartDate || !T.value) && z(ye(H(e.startDate)), 0);\n });\n const J = (I) => I ? { month: Me(I), year: ye(I) } : { month: null, year: null }, ce = () => T.value ? Array.isArray(T.value) ? T.value.map((I) => J(I)) : J(T.value) : J(), pe = (I, x) => {\n const c = C.value[I], o = ce();\n return Array.isArray(o) ? o.some((X) => X.year === c?.year && X.month === x) : c?.year === o.year && x === o.month;\n }, p = (I, x, c) => {\n const o = ce();\n return Array.isArray(o) ? F.value(x) === o[c]?.year && I === o[c]?.month : !1;\n }, Y = (I, x) => {\n if (i.value.enabled) {\n const c = ce();\n if (Array.isArray(T.value) && Array.isArray(c)) {\n const o = p(I, x, 0) || p(I, x, 1), X = pt(it(H()), I, F.value(x));\n return xt(T.value, A.value, X) && !o;\n }\n return !1;\n }\n return !1;\n }, te = j(() => (I) => Ht(M.value, (x) => {\n const c = pe(I, x.value), o = Zt(\n x.value,\n _n(F.value(I), d.value.minDate),\n Yn(F.value(I), d.value.maxDate)\n ) || zl(d.value.disabledDates, F.value(I), x.value) || v.value.months?.includes(x.value) || !Hl(d.value.allowedDates, F.value(I), x.value) || zn(e.yearRange, F.value(I)), X = Y(x.value, I), B = Fn(g.value, x.value, F.value(I));\n return { active: c, disabled: o, isBetween: X, highlighted: B };\n })), y = (I, x) => pt(it(H()), I, F.value(x)), V = (I, x) => {\n const c = T.value ? T.value : it(/* @__PURE__ */ new Date());\n T.value = pt(c, I, F.value(x)), t(\"auto-apply\"), t(\"update-flow-step\");\n }, S = (I, x) => {\n const c = y(I, x);\n i.value.fixedEnd || i.value.fixedStart ? T.value = Vn(c, T, t, i) : T.value ? m(c, T.value) && (T.value = tn(T, y(I, x), t)) : T.value = [y(I, x)], at().then(() => {\n pa(T.value, t, e.autoApply, e.modelAuto);\n });\n }, q = (I, x) => {\n en(y(I, x), T, R.value.limit), t(\"auto-apply\", !0);\n }, k = (I, x) => (C.value[x].month = I, u(x, C.value[x].year, I), R.value.enabled ? q(I, x) : i.value.enabled ? S(I, x) : V(I, x)), se = (I, x) => {\n z(I, x), u(x, I, null);\n }, u = (I, x, c) => {\n let o = c;\n if (!o && o !== 0) {\n const X = ce();\n o = Array.isArray(X) ? X[I].month : X.month;\n }\n t(\"update-month-year\", { instance: I, year: x, month: o });\n };\n return {\n groupedMonths: te,\n groupedYears: L,\n year: F,\n isDisabled: O,\n defaultedMultiCalendars: l,\n defaultedAriaLabels: n,\n defaultedTransitions: a,\n defaultedConfig: f,\n showYearPicker: le,\n modelValue: T,\n presetDate: (I, x) => {\n Un({\n value: I,\n modelValue: T,\n range: i.value.enabled,\n timezone: x ? void 0 : P.value.timezone\n }), t(\"auto-apply\");\n },\n setHoverDate: (I, x) => {\n A.value = y(I, x);\n },\n selectMonth: k,\n selectYear: se,\n toggleYearPicker: U,\n handleYearSelect: $,\n handleYear: ee,\n getModelMonthYear: ce\n };\n}, hr = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"MonthPicker\",\n props: {\n ...dt\n },\n emits: [\n \"update:internal-model-value\",\n \"overlay-closed\",\n \"reset-flow\",\n \"range-start\",\n \"range-end\",\n \"auto-apply\",\n \"update-month-year\",\n \"update-flow-step\",\n \"mount\",\n \"invalid-fixed-range\",\n \"overlay-toggle\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = Yt(), f = et(a, \"yearMode\"), i = e;\n Ue(() => {\n i.shadow || n(\"mount\", null);\n });\n const {\n groupedMonths: g,\n groupedYears: d,\n year: P,\n isDisabled: v,\n defaultedMultiCalendars: R,\n defaultedConfig: h,\n showYearPicker: T,\n modelValue: F,\n presetDate: _,\n setHoverDate: C,\n selectMonth: M,\n selectYear: A,\n toggleYearPicker: m,\n handleYearSelect: z,\n handleYear: L,\n getModelMonthYear: le\n } = yr(i, n);\n return t({ getSidebarProps: () => ({\n modelValue: F,\n year: P,\n getModelMonthYear: le,\n selectMonth: M,\n selectYear: A,\n handleYear: L\n }), presetDate: _, toggleYearPicker: ($) => m(0, $) }), ($, ee) => (w(), Te(ma, {\n \"multi-calendars\": s(R).count,\n collapse: $.collapse,\n stretch: \"\",\n \"is-mobile\": $.isMobile\n }, {\n default: we(({ instance: O }) => [\n $.$slots[\"top-extra\"] ? ie($.$slots, \"top-extra\", {\n key: 0,\n value: $.internalModelValue\n }) : Q(\"\", !0),\n $.$slots[\"month-year\"] ? ie($.$slots, \"month-year\", ze(He({ key: 1 }, {\n year: s(P),\n months: s(g)(O),\n years: s(d)(O),\n selectMonth: s(M),\n selectYear: s(A),\n instance: O\n }))) : (w(), Te(ta, {\n key: 2,\n items: s(g)(O),\n \"arrow-navigation\": $.arrowNavigation,\n \"is-last\": $.autoApply && !s(h).keepActionRow,\n \"esc-close\": $.escClose,\n height: s(h).modeHeight,\n config: $.config,\n \"no-overlay-focus\": !!($.noOverlayFocus || $.textInput),\n \"use-relative\": \"\",\n type: \"month\",\n onSelected: (J) => s(M)(J, O),\n onHoverValue: (J) => s(C)(J, O)\n }, Ge({\n header: we(() => [\n tt(Wn, He($.$props, {\n items: s(d)(O),\n instance: O,\n \"show-year-picker\": s(T)[O],\n year: s(P)(O),\n \"is-disabled\": (J) => s(v)(O, J),\n onHandleYear: (J) => s(L)(O, J),\n onYearSelect: (J) => s(z)(J, O),\n onToggleYearPicker: (J) => s(m)(O, J?.flow, J?.show)\n }), Ge({ _: 2 }, [\n Ce(s(f), (J, ce) => ({\n name: J,\n fn: we((pe) => [\n ie($.$slots, J, ze(Je(pe)))\n ])\n }))\n ]), 1040, [\"items\", \"instance\", \"show-year-picker\", \"year\", \"is-disabled\", \"onHandleYear\", \"onYearSelect\", \"onToggleYearPicker\"])\n ]),\n _: 2\n }, [\n $.$slots[\"month-overlay-value\"] ? {\n name: \"item\",\n fn: we(({ item: J }) => [\n ie($.$slots, \"month-overlay-value\", {\n text: J.text,\n value: J.value\n })\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"items\", \"arrow-navigation\", \"is-last\", \"esc-close\", \"height\", \"config\", \"no-overlay-focus\", \"onSelected\", \"onHoverValue\"]))\n ]),\n _: 3\n }, 8, [\"multi-calendars\", \"collapse\", \"is-mobile\"]));\n }\n}), br = (e, t) => {\n const l = () => {\n e.isTextInputDate && (v.value = ye(H(e.startDate)));\n }, { modelValue: n } = na(e, t, l), a = Z(null), { defaultedHighlight: f, defaultedMultiDates: i, defaultedFilters: g, defaultedRange: d, propDates: P } = Oe(e), v = Z();\n Ue(() => {\n e.startDate && (n.value && e.focusStartDate || !n.value) && (v.value = ye(H(e.startDate)));\n });\n const R = (m) => Array.isArray(n.value) ? n.value.some((z) => ye(z) === m) : n.value ? ye(n.value) === m : !1, h = (m) => d.value.enabled && Array.isArray(n.value) ? xt(n.value, a.value, C(m)) : !1, T = (m) => P.value.allowedDates instanceof Map ? P.value.allowedDates.size ? P.value.allowedDates.has(`${m}`) : !1 : !0, F = (m) => P.value.disabledDates instanceof Map ? P.value.disabledDates.size ? P.value.disabledDates.has(`${m}`) : !1 : typeof P.value.disabledDates == \"function\" ? P.value.disabledDates(ut(Fe(Gt(H())), m)) : !0, _ = j(() => Ht(qa(e.yearRange, e.locale, e.reverseYears), (m) => {\n const z = R(m.value), L = Zt(\n m.value,\n Wt(P.value.minDate),\n Wt(P.value.maxDate)\n ) || g.value.years.includes(m.value) || !T(m.value) || F(m.value), le = h(m.value) && !z, U = xa(f.value, m.value);\n return { active: z, disabled: L, isBetween: le, highlighted: U };\n })), C = (m) => ut(it(Gt(/* @__PURE__ */ new Date())), m);\n return {\n groupedYears: _,\n modelValue: n,\n focusYear: v,\n setHoverValue: (m) => {\n a.value = ut(it(/* @__PURE__ */ new Date()), m);\n },\n selectYear: (m) => {\n if (t(\"update-month-year\", { instance: 0, year: m }), i.value.enabled)\n return n.value ? Array.isArray(n.value) && ((n.value?.map((L) => ye(L))).includes(m) ? n.value = n.value.filter((L) => ye(L) !== m) : n.value.push(ut(Fe(H()), m))) : n.value = [ut(Fe(Gt(H())), m)], t(\"auto-apply\", !0);\n d.value.enabled ? (n.value = tn(n, C(m), t), at().then(() => {\n pa(n.value, t, e.autoApply, e.modelAuto);\n })) : (n.value = C(m), t(\"auto-apply\"));\n }\n };\n}, kr = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"YearPicker\",\n props: {\n ...dt\n },\n emits: [\n \"update:internal-model-value\",\n \"reset-flow\",\n \"range-start\",\n \"range-end\",\n \"auto-apply\",\n \"update-month-year\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, { groupedYears: f, modelValue: i, focusYear: g, selectYear: d, setHoverValue: P } = br(a, n), { defaultedConfig: v } = Oe(a);\n return t({ getSidebarProps: () => ({\n modelValue: i,\n selectYear: d\n }) }), (h, T) => (w(), W(\"div\", null, [\n h.$slots[\"top-extra\"] ? ie(h.$slots, \"top-extra\", {\n key: 0,\n value: h.internalModelValue\n }) : Q(\"\", !0),\n h.$slots[\"month-year\"] ? ie(h.$slots, \"month-year\", ze(He({ key: 1 }, {\n years: s(f),\n selectYear: s(d)\n }))) : (w(), Te(ta, {\n key: 2,\n items: s(f),\n \"is-last\": h.autoApply && !s(v).keepActionRow,\n height: s(v).modeHeight,\n config: h.config,\n \"no-overlay-focus\": !!(h.noOverlayFocus || h.textInput),\n \"focus-value\": s(g),\n type: \"year\",\n \"use-relative\": \"\",\n onSelected: s(d),\n onHoverValue: s(P)\n }, Ge({ _: 2 }, [\n h.$slots[\"year-overlay-value\"] ? {\n name: \"item\",\n fn: we(({ item: F }) => [\n ie(h.$slots, \"year-overlay-value\", {\n text: F.text,\n value: F.value\n })\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"items\", \"is-last\", \"height\", \"config\", \"no-overlay-focus\", \"focus-value\", \"onSelected\", \"onHoverValue\"]))\n ]));\n }\n}), wr = {\n key: 0,\n class: \"dp__time_input\"\n}, Dr = [\"data-compact\", \"data-collapsed\"], Mr = [\"data-test-id\", \"aria-label\", \"onKeydown\", \"onClick\", \"onMousedown\"], $r = [\"aria-label\", \"disabled\", \"data-test-id\", \"onKeydown\", \"onClick\"], Ar = [\"data-test-id\", \"aria-label\", \"onKeydown\", \"onClick\", \"onMousedown\"], Tr = { key: 0 }, Sr = [\"aria-label\", \"data-compact\"], Pr = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"TimeInput\",\n props: {\n hours: { type: Number, default: 0 },\n minutes: { type: Number, default: 0 },\n seconds: { type: Number, default: 0 },\n closeTimePickerBtn: { type: Object, default: null },\n order: { type: Number, default: 0 },\n disabledTimesConfig: { type: Function, default: null },\n validateTime: { type: Function, default: () => !1 },\n ...dt\n },\n emits: [\n \"set-hours\",\n \"set-minutes\",\n \"update:hours\",\n \"update:minutes\",\n \"update:seconds\",\n \"reset-flow\",\n \"mounted\",\n \"overlay-closed\",\n \"overlay-opened\",\n \"am-pm-change\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, { setTimePickerElements: f, setTimePickerBackRef: i } = At(), {\n defaultedAriaLabels: g,\n defaultedTransitions: d,\n defaultedFilters: P,\n defaultedConfig: v,\n defaultedRange: R,\n defaultedMultiCalendars: h\n } = Oe(a), { transitionName: T, showTransition: F } = aa(d), _ = ea({\n hours: !1,\n minutes: !1,\n seconds: !1\n }), C = Z(\"AM\"), M = Z(null), A = Z([]), m = Z(), z = Z(!1);\n Ue(() => {\n n(\"mounted\");\n });\n const L = (r) => Se(/* @__PURE__ */ new Date(), {\n hours: r.hours,\n minutes: r.minutes,\n seconds: a.enableSeconds ? r.seconds : 0,\n milliseconds: 0\n }), le = j(\n () => (r) => S(r, a[r]) || $(r, a[r])\n ), U = j(() => ({ hours: a.hours, minutes: a.minutes, seconds: a.seconds })), $ = (r, E) => R.value.enabled && !R.value.disableTimeRangeValidation ? !a.validateTime(r, E) : !1, ee = (r, E) => {\n if (R.value.enabled && !R.value.disableTimeRangeValidation) {\n const K = E ? +a[`${r}Increment`] : -+a[`${r}Increment`], oe = a[r] + K;\n return !a.validateTime(r, oe);\n }\n return !1;\n }, O = j(() => (r) => !re(+a[r] + +a[`${r}Increment`], r) || ee(r, !0)), J = j(() => (r) => !re(+a[r] - +a[`${r}Increment`], r) || ee(r, !1)), ce = (r, E) => Tn(Se(H(), r), E), pe = (r, E) => ml(Se(H(), r), E), p = j(\n () => ({\n dp__time_col: !0,\n dp__time_col_block: !a.timePickerInline,\n dp__time_col_reg_block: !a.enableSeconds && a.is24 && !a.timePickerInline,\n dp__time_col_reg_inline: !a.enableSeconds && a.is24 && a.timePickerInline,\n dp__time_col_reg_with_button: !a.enableSeconds && !a.is24,\n dp__time_col_sec: a.enableSeconds && a.is24,\n dp__time_col_sec_with_button: a.enableSeconds && !a.is24\n })\n ), Y = j(\n () => a.timePickerInline && R.value.enabled && !h.value.count\n ), te = j(() => {\n const r = [{ type: \"hours\" }];\n return a.enableMinutes && r.push({ type: \"\", separator: !0 }, {\n type: \"minutes\"\n }), a.enableSeconds && r.push({ type: \"\", separator: !0 }, {\n type: \"seconds\"\n }), r;\n }), y = j(() => te.value.filter((r) => !r.separator)), V = j(() => (r) => {\n if (r === \"hours\") {\n const E = X(+a.hours);\n return { text: E < 10 ? `0${E}` : `${E}`, value: E };\n }\n return { text: a[r] < 10 ? `0${a[r]}` : `${a[r]}`, value: a[r] };\n }), S = (r, E) => {\n if (!a.disabledTimesConfig) return !1;\n const K = a.disabledTimesConfig(a.order, r === \"hours\" ? E : void 0);\n return K[r] ? !!K[r]?.includes(E) : !0;\n }, q = (r, E) => E !== \"hours\" || C.value === \"AM\" ? r : r + 12, k = (r) => {\n const E = a.is24 ? 24 : 12, K = r === \"hours\" ? E : 60, oe = +a[`${r}GridIncrement`], ge = r === \"hours\" && !a.is24 ? oe : 0, _e = [];\n for (let Ye = ge; Ye < K; Ye += oe)\n _e.push({ value: a.is24 ? Ye : q(Ye, r), text: Ye < 10 ? `0${Ye}` : `${Ye}` });\n return r === \"hours\" && !a.is24 && _e.unshift({ value: C.value === \"PM\" ? 12 : 0, text: \"12\" }), Ht(_e, (Ye) => ({ active: !1, disabled: P.value.times[r].includes(Ye.value) || !re(Ye.value, r) || S(r, Ye.value) || $(r, Ye.value) }));\n }, se = (r) => r >= 0 ? r : 59, u = (r) => r >= 0 ? r : 23, re = (r, E) => {\n const K = a.minTime ? L(Sa(a.minTime)) : null, oe = a.maxTime ? L(Sa(a.maxTime)) : null, ge = L(\n Sa(\n U.value,\n E,\n E === \"minutes\" || E === \"seconds\" ? se(r) : u(r)\n )\n );\n return K && oe ? (Ft(ge, oe) || Nt(ge, oe)) && (_t(ge, K) || Nt(ge, K)) : K ? _t(ge, K) || Nt(ge, K) : oe ? Ft(ge, oe) || Nt(ge, oe) : !0;\n }, G = (r) => a[`no${r[0].toUpperCase() + r.slice(1)}Overlay`], I = (r) => {\n G(r) || (_[r] = !_[r], _[r] ? (z.value = !0, n(\"overlay-opened\", r)) : (z.value = !1, n(\"overlay-closed\", r)));\n }, x = (r) => r === \"hours\" ? yt : r === \"minutes\" ? $t : zt, c = () => {\n m.value && clearTimeout(m.value);\n }, o = (r, E = !0, K) => {\n const oe = E ? ce : pe, ge = E ? +a[`${r}Increment`] : -+a[`${r}Increment`];\n re(+a[r] + ge, r) && n(\n `update:${r}`,\n x(r)(oe({ [r]: +a[r] }, { [r]: +a[`${r}Increment`] }))\n ), !K?.keyboard && v.value.timeArrowHoldThreshold && (m.value = setTimeout(() => {\n o(r, E);\n }, v.value.timeArrowHoldThreshold));\n }, X = (r) => a.is24 ? r : (r >= 12 ? C.value = \"PM\" : C.value = \"AM\", Sl(r)), B = () => {\n C.value === \"PM\" ? (C.value = \"AM\", n(\"update:hours\", a.hours - 12)) : (C.value = \"PM\", n(\"update:hours\", a.hours + 12)), n(\"am-pm-change\", C.value);\n }, be = (r) => {\n _[r] = !0;\n }, Ae = (r, E, K) => {\n if (r && a.arrowNavigation) {\n Array.isArray(A.value[E]) ? A.value[E][K] = r : A.value[E] = [r];\n const oe = A.value.reduce(\n (ge, _e) => _e.map((Ye, nt) => [...ge[nt] || [], _e[nt]]),\n []\n );\n i(a.closeTimePickerBtn), M.value && (oe[1] = oe[1].concat(M.value)), f(oe, a.order);\n }\n }, ne = (r, E) => (I(r), n(`update:${r}`, E));\n return t({ openChildCmp: be }), (r, E) => r.disabled ? Q(\"\", !0) : (w(), W(\"div\", wr, [\n (w(!0), W(ke, null, Ce(te.value, (K, oe) => (w(), W(\"div\", {\n key: oe,\n class: De(p.value),\n \"data-compact\": Y.value && !r.enableSeconds,\n \"data-collapsed\": Y.value && r.enableSeconds\n }, [\n K.separator ? (w(), W(ke, { key: 0 }, [\n z.value ? Q(\"\", !0) : (w(), W(ke, { key: 0 }, [\n gt(\":\")\n ], 64))\n ], 64)) : (w(), W(ke, { key: 1 }, [\n he(\"button\", {\n ref_for: !0,\n ref: (ge) => Ae(ge, oe, 0),\n type: \"button\",\n class: De({\n dp__btn: !0,\n dp__inc_dec_button: !r.timePickerInline,\n dp__inc_dec_button_inline: r.timePickerInline,\n dp__tp_inline_btn_top: r.timePickerInline,\n dp__inc_dec_button_disabled: O.value(K.type),\n \"dp--hidden-el\": z.value\n }),\n \"data-test-id\": `${K.type}-time-inc-btn-${a.order}`,\n \"aria-label\": s(g)?.incrementValue(K.type),\n tabindex: \"0\",\n onKeydown: (ge) => s(qe)(ge, () => o(K.type, !0, { keyboard: !0 }), !0),\n onClick: (ge) => s(v).timeArrowHoldThreshold ? void 0 : o(K.type, !0),\n onMousedown: (ge) => s(v).timeArrowHoldThreshold ? o(K.type, !0) : void 0,\n onMouseup: c\n }, [\n a.timePickerInline ? (w(), W(ke, { key: 1 }, [\n r.$slots[\"tp-inline-arrow-up\"] ? ie(r.$slots, \"tp-inline-arrow-up\", { key: 0 }) : (w(), W(ke, { key: 1 }, [\n E[2] || (E[2] = he(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_l\" }, null, -1)),\n E[3] || (E[3] = he(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_r\" }, null, -1))\n ], 64))\n ], 64)) : (w(), W(ke, { key: 0 }, [\n r.$slots[\"arrow-up\"] ? ie(r.$slots, \"arrow-up\", { key: 0 }) : Q(\"\", !0),\n r.$slots[\"arrow-up\"] ? Q(\"\", !0) : (w(), Te(s(Ka), { key: 1 }))\n ], 64))\n ], 42, Mr),\n he(\"button\", {\n ref_for: !0,\n ref: (ge) => Ae(ge, oe, 1),\n type: \"button\",\n \"aria-label\": `${V.value(K.type).text}-${s(g)?.openTpOverlay(K.type)}`,\n class: De({\n dp__time_display: !0,\n dp__time_display_block: !r.timePickerInline,\n dp__time_display_inline: r.timePickerInline,\n \"dp--time-invalid\": le.value(K.type),\n \"dp--time-overlay-btn\": !le.value(K.type),\n \"dp--hidden-el\": z.value\n }),\n disabled: G(K.type),\n tabindex: \"0\",\n \"data-test-id\": `${K.type}-toggle-overlay-btn-${a.order}`,\n onKeydown: (ge) => s(qe)(ge, () => I(K.type), !0),\n onClick: (ge) => I(K.type)\n }, [\n r.$slots[K.type] ? ie(r.$slots, K.type, {\n key: 0,\n text: V.value(K.type).text,\n value: V.value(K.type).value\n }) : Q(\"\", !0),\n r.$slots[K.type] ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n gt(Ke(V.value(K.type).text), 1)\n ], 64))\n ], 42, $r),\n he(\"button\", {\n ref_for: !0,\n ref: (ge) => Ae(ge, oe, 2),\n type: \"button\",\n class: De({\n dp__btn: !0,\n dp__inc_dec_button: !r.timePickerInline,\n dp__inc_dec_button_inline: r.timePickerInline,\n dp__tp_inline_btn_bottom: r.timePickerInline,\n dp__inc_dec_button_disabled: J.value(K.type),\n \"dp--hidden-el\": z.value\n }),\n \"data-test-id\": `${K.type}-time-dec-btn-${a.order}`,\n \"aria-label\": s(g)?.decrementValue(K.type),\n tabindex: \"0\",\n onKeydown: (ge) => s(qe)(ge, () => o(K.type, !1, { keyboard: !0 }), !0),\n onClick: (ge) => s(v).timeArrowHoldThreshold ? void 0 : o(K.type, !1),\n onMousedown: (ge) => s(v).timeArrowHoldThreshold ? o(K.type, !1) : void 0,\n onMouseup: c\n }, [\n a.timePickerInline ? (w(), W(ke, { key: 1 }, [\n r.$slots[\"tp-inline-arrow-down\"] ? ie(r.$slots, \"tp-inline-arrow-down\", { key: 0 }) : (w(), W(ke, { key: 1 }, [\n E[4] || (E[4] = he(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_l\" }, null, -1)),\n E[5] || (E[5] = he(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_r\" }, null, -1))\n ], 64))\n ], 64)) : (w(), W(ke, { key: 0 }, [\n r.$slots[\"arrow-down\"] ? ie(r.$slots, \"arrow-down\", { key: 0 }) : Q(\"\", !0),\n r.$slots[\"arrow-down\"] ? Q(\"\", !0) : (w(), Te(s(Ga), { key: 1 }))\n ], 64))\n ], 42, Ar)\n ], 64))\n ], 10, Dr))), 128)),\n r.is24 ? Q(\"\", !0) : (w(), W(\"div\", Tr, [\n r.$slots[\"am-pm-button\"] ? ie(r.$slots, \"am-pm-button\", {\n key: 0,\n toggle: B,\n value: C.value\n }) : Q(\"\", !0),\n r.$slots[\"am-pm-button\"] ? Q(\"\", !0) : (w(), W(\"button\", {\n key: 1,\n ref_key: \"amPmButton\",\n ref: M,\n type: \"button\",\n class: \"dp__pm_am_button\",\n role: \"button\",\n \"aria-label\": s(g)?.amPmButton,\n tabindex: \"0\",\n \"data-compact\": Y.value,\n onClick: B,\n onKeydown: E[0] || (E[0] = (K) => s(qe)(K, () => B(), !0))\n }, Ke(C.value), 41, Sr))\n ])),\n (w(!0), W(ke, null, Ce(y.value, (K, oe) => (w(), Te(Vt, {\n key: oe,\n name: s(T)(_[K.type]),\n css: s(F)\n }, {\n default: we(() => [\n _[K.type] ? (w(), Te(ta, {\n key: 0,\n items: k(K.type),\n \"is-last\": r.autoApply && !s(v).keepActionRow,\n \"esc-close\": r.escClose,\n type: K.type,\n \"text-input\": r.textInput,\n config: r.config,\n \"arrow-navigation\": r.arrowNavigation,\n \"aria-labels\": r.ariaLabels,\n \"overlay-label\": s(g).timeOverlay?.(K.type),\n onSelected: (ge) => ne(K.type, ge),\n onToggle: (ge) => I(K.type),\n onResetFlow: E[1] || (E[1] = (ge) => r.$emit(\"reset-flow\"))\n }, Ge({\n \"button-icon\": we(() => [\n r.$slots[\"clock-icon\"] ? ie(r.$slots, \"clock-icon\", { key: 0 }) : Q(\"\", !0),\n r.$slots[\"clock-icon\"] ? Q(\"\", !0) : (w(), Te(fa(r.timePickerInline ? s(jt) : s(ja)), { key: 1 }))\n ]),\n _: 2\n }, [\n r.$slots[`${K.type}-overlay-value`] ? {\n name: \"item\",\n fn: we(({ item: ge }) => [\n ie(r.$slots, `${K.type}-overlay-value`, {\n text: ge.text,\n value: ge.value\n })\n ]),\n key: \"0\"\n } : void 0,\n r.$slots[`${K.type}-overlay-header`] ? {\n name: \"header\",\n fn: we(() => [\n ie(r.$slots, `${K.type}-overlay-header`, {\n toggle: () => I(K.type)\n })\n ]),\n key: \"1\"\n } : void 0\n ]), 1032, [\"items\", \"is-last\", \"esc-close\", \"type\", \"text-input\", \"config\", \"arrow-navigation\", \"aria-labels\", \"overlay-label\", \"onSelected\", \"onToggle\"])) : Q(\"\", !0)\n ]),\n _: 2\n }, 1032, [\"name\", \"css\"]))), 128))\n ]));\n }\n}), Rr = [\"data-dp-mobile\"], Cr = [\"aria-label\", \"tabindex\"], Or = [\"role\", \"aria-label\", \"tabindex\"], Br = [\"aria-label\"], Kn = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"TimePicker\",\n props: {\n hours: { type: [Number, Array], default: 0 },\n minutes: { type: [Number, Array], default: 0 },\n seconds: { type: [Number, Array], default: 0 },\n disabledTimesConfig: { type: Function, default: null },\n validateTime: {\n type: Function,\n default: () => !1\n },\n ...dt\n },\n emits: [\n \"update:hours\",\n \"update:minutes\",\n \"update:seconds\",\n \"mount\",\n \"reset-flow\",\n \"overlay-opened\",\n \"overlay-closed\",\n \"am-pm-change\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, { buildMatrix: f, setTimePicker: i } = At(), g = Yt(), { defaultedTransitions: d, defaultedAriaLabels: P, defaultedTextInput: v, defaultedConfig: R, defaultedRange: h } = Oe(a), { transitionName: T, showTransition: F } = aa(d), { hideNavigationButtons: _ } = ga(), C = Z(null), M = Z(null), A = Z([]), m = Z(null), z = Z(!1);\n Ue(() => {\n n(\"mount\"), !a.timePicker && a.arrowNavigation ? f([Le(C.value)], \"time\") : i(!0, a.timePicker);\n });\n const L = j(() => h.value.enabled && a.modelAuto ? Rn(a.internalModelValue) : !0), le = Z(!1), U = (S) => ({\n hours: Array.isArray(a.hours) ? a.hours[S] : a.hours,\n minutes: Array.isArray(a.minutes) ? a.minutes[S] : a.minutes,\n seconds: Array.isArray(a.seconds) ? a.seconds[S] : a.seconds\n }), $ = j(() => {\n const S = [];\n if (h.value.enabled)\n for (let q = 0; q < 2; q++)\n S.push(U(q));\n else\n S.push(U(0));\n return S;\n }), ee = (S, q = !1, k = \"\") => {\n q || n(\"reset-flow\"), le.value = S, n(S ? \"overlay-opened\" : \"overlay-closed\", je.time), a.arrowNavigation && i(S), at(() => {\n k !== \"\" && A.value[0] && A.value[0].openChildCmp(k);\n });\n }, O = j(() => ({\n dp__btn: !0,\n dp__button: !0,\n dp__button_bottom: a.autoApply && !R.value.keepActionRow\n })), J = et(g, \"timePicker\"), ce = (S, q, k) => h.value.enabled ? q === 0 ? [S, $.value[1][k]] : [$.value[0][k], S] : S, pe = (S) => {\n n(\"update:hours\", S);\n }, p = (S) => {\n n(\"update:minutes\", S);\n }, Y = (S) => {\n n(\"update:seconds\", S);\n }, te = () => {\n if (m.value && !v.value.enabled && !a.noOverlayFocus) {\n const S = Cn(m.value);\n S && S.focus({ preventScroll: !0 });\n }\n }, y = (S) => {\n z.value = !1, n(\"overlay-closed\", S);\n }, V = (S) => {\n z.value = !0, n(\"overlay-opened\", S);\n };\n return t({ toggleTimePicker: ee }), (S, q) => (w(), W(\"div\", {\n class: \"dp--tp-wrap\",\n \"data-dp-mobile\": S.isMobile\n }, [\n !S.timePicker && !S.timePickerInline ? ua((w(), W(\"button\", {\n key: 0,\n ref_key: \"openTimePickerBtn\",\n ref: C,\n type: \"button\",\n class: De({ ...O.value, \"dp--hidden-el\": le.value }),\n \"aria-label\": s(P)?.openTimePicker,\n tabindex: S.noOverlayFocus ? void 0 : 0,\n \"data-test-id\": \"open-time-picker-btn\",\n onKeydown: q[0] || (q[0] = (k) => s(qe)(k, () => ee(!0))),\n onClick: q[1] || (q[1] = (k) => ee(!0))\n }, [\n S.$slots[\"clock-icon\"] ? ie(S.$slots, \"clock-icon\", { key: 0 }) : Q(\"\", !0),\n S.$slots[\"clock-icon\"] ? Q(\"\", !0) : (w(), Te(s(ja), { key: 1 }))\n ], 42, Cr)), [\n [ia, !s(_)(S.hideNavigation, \"time\")]\n ]) : Q(\"\", !0),\n tt(Vt, {\n name: s(T)(le.value),\n css: s(F) && !S.timePickerInline\n }, {\n default: we(() => [\n le.value || S.timePicker || S.timePickerInline ? (w(), W(\"div\", {\n key: 0,\n ref_key: \"overlayRef\",\n ref: m,\n role: S.timePickerInline ? void 0 : \"dialog\",\n class: De({\n dp__overlay: !S.timePickerInline,\n \"dp--overlay-absolute\": !a.timePicker && !S.timePickerInline,\n \"dp--overlay-relative\": a.timePicker\n }),\n style: lt(S.timePicker ? { height: `${s(R).modeHeight}px` } : void 0),\n \"aria-label\": s(P)?.timePicker,\n tabindex: S.timePickerInline ? void 0 : 0\n }, [\n he(\"div\", {\n class: De(\n S.timePickerInline ? \"dp__time_picker_inline_container\" : \"dp__overlay_container dp__container_flex dp__time_picker_overlay_container\"\n ),\n style: { display: \"flex\" }\n }, [\n S.$slots[\"time-picker-overlay\"] ? ie(S.$slots, \"time-picker-overlay\", {\n key: 0,\n hours: e.hours,\n minutes: e.minutes,\n seconds: e.seconds,\n setHours: pe,\n setMinutes: p,\n setSeconds: Y\n }) : Q(\"\", !0),\n S.$slots[\"time-picker-overlay\"] ? Q(\"\", !0) : (w(), W(\"div\", {\n key: 1,\n class: De(S.timePickerInline ? \"dp__flex\" : \"dp__overlay_row dp__flex_row\")\n }, [\n (w(!0), W(ke, null, Ce($.value, (k, se) => ua((w(), Te(Pr, He({ key: se }, { ref_for: !0 }, {\n ...S.$props,\n order: se,\n hours: k.hours,\n minutes: k.minutes,\n seconds: k.seconds,\n closeTimePickerBtn: M.value,\n disabledTimesConfig: e.disabledTimesConfig,\n disabled: se === 0 ? s(h).fixedStart : s(h).fixedEnd\n }, {\n ref_for: !0,\n ref_key: \"timeInputRefs\",\n ref: A,\n \"validate-time\": (u, re) => e.validateTime(u, ce(re, se, u)),\n \"onUpdate:hours\": (u) => pe(ce(u, se, \"hours\")),\n \"onUpdate:minutes\": (u) => p(ce(u, se, \"minutes\")),\n \"onUpdate:seconds\": (u) => Y(ce(u, se, \"seconds\")),\n onMounted: te,\n onOverlayClosed: y,\n onOverlayOpened: V,\n onAmPmChange: q[2] || (q[2] = (u) => S.$emit(\"am-pm-change\", u))\n }), Ge({ _: 2 }, [\n Ce(s(J), (u, re) => ({\n name: u,\n fn: we((G) => [\n ie(S.$slots, u, He({ ref_for: !0 }, G))\n ])\n }))\n ]), 1040, [\"validate-time\", \"onUpdate:hours\", \"onUpdate:minutes\", \"onUpdate:seconds\"])), [\n [ia, se === 0 ? !0 : L.value]\n ])), 128))\n ], 2)),\n !S.timePicker && !S.timePickerInline ? ua((w(), W(\"button\", {\n key: 2,\n ref_key: \"closeTimePickerBtn\",\n ref: M,\n type: \"button\",\n class: De({ ...O.value, \"dp--hidden-el\": z.value }),\n \"aria-label\": s(P)?.closeTimePicker,\n tabindex: \"0\",\n onKeydown: q[3] || (q[3] = (k) => s(qe)(k, () => ee(!1))),\n onClick: q[4] || (q[4] = (k) => ee(!1))\n }, [\n S.$slots[\"calendar-icon\"] ? ie(S.$slots, \"calendar-icon\", { key: 0 }) : Q(\"\", !0),\n S.$slots[\"calendar-icon\"] ? Q(\"\", !0) : (w(), Te(s(jt), { key: 1 }))\n ], 42, Br)), [\n [ia, !s(_)(S.hideNavigation, \"time\")]\n ]) : Q(\"\", !0)\n ], 2)\n ], 14, Or)) : Q(\"\", !0)\n ]),\n _: 3\n }, 8, [\"name\", \"css\"])\n ], 8, Rr));\n }\n}), Gn = (e, t, l, n) => {\n const { defaultedRange: a } = Oe(e), f = (m, z) => Array.isArray(t[m]) ? t[m][z] : t[m], i = (m) => e.enableSeconds ? Array.isArray(t.seconds) ? t.seconds[m] : t.seconds : 0, g = (m, z) => m ? z !== void 0 ? Mt(m, f(\"hours\", z), f(\"minutes\", z), i(z)) : Mt(m, t.hours, t.minutes, i()) : wn(H(), i(z)), d = (m, z) => {\n t[m] = z;\n }, P = j(() => e.modelAuto && a.value.enabled ? Array.isArray(l.value) ? l.value.length > 1 : !1 : a.value.enabled), v = (m, z) => {\n const L = Object.fromEntries(\n Object.keys(t).map((le) => le === m ? [le, z] : [le, t[le]].slice())\n );\n if (P.value && !a.value.disableTimeRangeValidation) {\n const le = ($) => l.value ? Mt(\n l.value[$],\n L.hours[$],\n L.minutes[$],\n L.seconds[$]\n ) : null, U = ($) => Dn(l.value[$], 0);\n return !($e(le(0), le(1)) && (_t(le(0), U(1)) || Ft(le(1), U(0))));\n }\n return !0;\n }, R = (m, z) => {\n v(m, z) && (d(m, z), n && n());\n }, h = (m) => {\n R(\"hours\", m);\n }, T = (m) => {\n R(\"minutes\", m);\n }, F = (m) => {\n R(\"seconds\", m);\n }, _ = (m, z, L, le) => {\n z && h(m), !z && !L && T(m), L && F(m), l.value && le(l.value);\n }, C = (m) => {\n if (m) {\n const z = Array.isArray(m), L = z ? [+m[0].hours, +m[1].hours] : +m.hours, le = z ? [+m[0].minutes, +m[1].minutes] : +m.minutes, U = z ? [+m[0].seconds, +m[1].seconds] : +m.seconds;\n d(\"hours\", L), d(\"minutes\", le), e.enableSeconds && d(\"seconds\", U);\n }\n }, M = (m, z) => {\n const L = {\n hours: Array.isArray(t.hours) ? t.hours[m] : t.hours,\n disabledArr: []\n };\n return (z || z === 0) && (L.hours = z), Array.isArray(e.disabledTimes) && (L.disabledArr = a.value.enabled && Array.isArray(e.disabledTimes[m]) ? e.disabledTimes[m] : e.disabledTimes), L;\n }, A = j(() => (m, z) => {\n if (Array.isArray(e.disabledTimes)) {\n const { disabledArr: L, hours: le } = M(m, z), U = L.filter(($) => +$.hours === le);\n return U[0]?.minutes === \"*\" ? { hours: [le], minutes: void 0, seconds: void 0 } : {\n hours: [],\n minutes: U?.map(($) => +$.minutes) ?? [],\n seconds: U?.map(($) => $.seconds ? +$.seconds : void 0) ?? []\n };\n }\n return { hours: [], minutes: [], seconds: [] };\n });\n return {\n setTime: d,\n updateHours: h,\n updateMinutes: T,\n updateSeconds: F,\n getSetDateTime: g,\n updateTimeValues: _,\n getSecondsValue: i,\n assignStartTime: C,\n validateTime: v,\n disabledTimesConfig: A\n };\n}, _r = (e, t) => {\n const l = () => {\n e.isTextInputDate && z();\n }, { modelValue: n, time: a } = na(e, t, l), { defaultedStartTime: f, defaultedRange: i, defaultedTz: g } = Oe(e), { updateTimeValues: d, getSetDateTime: P, setTime: v, assignStartTime: R, disabledTimesConfig: h, validateTime: T } = Gn(e, a, n, F);\n function F() {\n t(\"update-flow-step\");\n }\n const _ = (U) => {\n const { hours: $, minutes: ee, seconds: O } = U;\n return { hours: +$, minutes: +ee, seconds: O ? +O : 0 };\n }, C = () => {\n if (e.startTime) {\n if (Array.isArray(e.startTime)) {\n const $ = _(e.startTime[0]), ee = _(e.startTime[1]);\n return [Se(H(), $), Se(H(), ee)];\n }\n const U = _(e.startTime);\n return Se(H(), U);\n }\n return i.value.enabled ? [null, null] : null;\n }, M = () => {\n if (i.value.enabled) {\n const [U, $] = C();\n n.value = [\n Ze(P(U, 0), g.value.timezone),\n Ze(P($, 1), g.value.timezone)\n ];\n } else\n n.value = Ze(P(C()), g.value.timezone);\n }, A = (U) => Array.isArray(U) ? [Bt(H(U[0])), Bt(H(U[1]))] : [Bt(U ?? H())], m = (U, $, ee) => {\n v(\"hours\", U), v(\"minutes\", $), v(\"seconds\", e.enableSeconds ? ee : 0);\n }, z = () => {\n const [U, $] = A(n.value);\n return i.value.enabled ? m(\n [U.hours, $.hours],\n [U.minutes, $.minutes],\n [U.seconds, $.seconds]\n ) : m(U.hours, U.minutes, U.seconds);\n };\n Ue(() => {\n if (!e.shadow)\n return R(f.value), n.value ? z() : M();\n });\n const L = () => {\n Array.isArray(n.value) ? n.value = n.value.map((U, $) => U && P(U, $)) : n.value = P(n.value), t(\"time-update\");\n };\n return {\n modelValue: n,\n time: a,\n disabledTimesConfig: h,\n updateTime: (U, $ = !0, ee = !1) => {\n d(U, $, ee, L);\n },\n validateTime: T\n };\n}, Yr = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"TimePickerSolo\",\n props: {\n ...dt\n },\n emits: [\n \"update:internal-model-value\",\n \"time-update\",\n \"am-pm-change\",\n \"mount\",\n \"reset-flow\",\n \"update-flow-step\",\n \"overlay-toggle\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, f = Yt(), i = et(f, \"timePicker\"), g = Z(null), { time: d, modelValue: P, disabledTimesConfig: v, updateTime: R, validateTime: h } = _r(a, n);\n return Ue(() => {\n a.shadow || n(\"mount\", null);\n }), t({ getSidebarProps: () => ({\n modelValue: P,\n time: d,\n updateTime: R\n }), toggleTimePicker: (_, C = !1, M = \"\") => {\n g.value?.toggleTimePicker(_, C, M);\n } }), (_, C) => (w(), Te(ma, {\n \"multi-calendars\": 0,\n stretch: \"\",\n \"is-mobile\": _.isMobile\n }, {\n default: we(() => [\n tt(Kn, He({\n ref_key: \"tpRef\",\n ref: g\n }, _.$props, {\n hours: s(d).hours,\n minutes: s(d).minutes,\n seconds: s(d).seconds,\n \"internal-model-value\": _.internalModelValue,\n \"disabled-times-config\": s(v),\n \"validate-time\": s(h),\n \"onUpdate:hours\": C[0] || (C[0] = (M) => s(R)(M)),\n \"onUpdate:minutes\": C[1] || (C[1] = (M) => s(R)(M, !1)),\n \"onUpdate:seconds\": C[2] || (C[2] = (M) => s(R)(M, !1, !0)),\n onAmPmChange: C[3] || (C[3] = (M) => _.$emit(\"am-pm-change\", M)),\n onResetFlow: C[4] || (C[4] = (M) => _.$emit(\"reset-flow\")),\n onOverlayClosed: C[5] || (C[5] = (M) => _.$emit(\"overlay-toggle\", { open: !1, overlay: M })),\n onOverlayOpened: C[6] || (C[6] = (M) => _.$emit(\"overlay-toggle\", { open: !0, overlay: M }))\n }), Ge({ _: 2 }, [\n Ce(s(i), (M, A) => ({\n name: M,\n fn: we((m) => [\n ie(_.$slots, M, ze(Je(m)))\n ])\n }))\n ]), 1040, [\"hours\", \"minutes\", \"seconds\", \"internal-model-value\", \"disabled-times-config\", \"validate-time\"])\n ]),\n _: 3\n }, 8, [\"is-mobile\"]));\n }\n}), Ir = { class: \"dp--header-wrap\" }, Er = {\n key: 0,\n class: \"dp__month_year_wrap\"\n}, Nr = { key: 0 }, Lr = { class: \"dp__month_year_wrap\" }, Fr = [\"data-dp-element\", \"aria-label\", \"data-test-id\", \"onClick\", \"onKeydown\"], zr = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"DpHeader\",\n props: {\n month: { type: Number, default: 0 },\n year: { type: Number, default: 0 },\n instance: { type: Number, default: 0 },\n years: { type: Array, default: () => [] },\n months: { type: Array, default: () => [] },\n ...dt\n },\n emits: [\"update-month-year\", \"mount\", \"reset-flow\", \"overlay-closed\", \"overlay-opened\"],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, {\n defaultedTransitions: f,\n defaultedAriaLabels: i,\n defaultedMultiCalendars: g,\n defaultedFilters: d,\n defaultedConfig: P,\n defaultedHighlight: v,\n propDates: R,\n defaultedUI: h\n } = Oe(a), { transitionName: T, showTransition: F } = aa(f), { buildMatrix: _ } = At(), { handleMonthYearChange: C, isDisabled: M, updateMonthYear: A } = or(a, n), { showLeftIcon: m, showRightIcon: z } = ga(), L = Z(!1), le = Z(!1), U = Z(!1), $ = Z([null, null, null, null]);\n Ue(() => {\n n(\"mount\");\n });\n const ee = (u) => ({\n get: () => a[u],\n set: (re) => {\n const G = u === ot.month ? ot.year : ot.month;\n n(\"update-month-year\", { [u]: re, [G]: a[G] }), u === ot.month ? y(!0) : V(!0);\n }\n }), O = j(ee(ot.month)), J = j(ee(ot.year)), ce = j(() => (u) => ({\n month: a.month,\n year: a.year,\n items: u === ot.month ? a.months : a.years,\n instance: a.instance,\n updateMonthYear: A,\n toggle: u === ot.month ? y : V\n })), pe = j(() => {\n const u = a.months.find((re) => re.value === a.month);\n return u || { text: \"\", value: 0 };\n }), p = j(() => Ht(a.months, (u) => {\n const re = a.month === u.value, G = Zt(\n u.value,\n _n(a.year, R.value.minDate),\n Yn(a.year, R.value.maxDate)\n ) || d.value.months.includes(u.value), I = Fn(v.value, u.value, a.year);\n return { active: re, disabled: G, highlighted: I };\n })), Y = j(() => Ht(a.years, (u) => {\n const re = a.year === u.value, G = Zt(\n u.value,\n Wt(R.value.minDate),\n Wt(R.value.maxDate)\n ) || d.value.years.includes(u.value), I = xa(v.value, u.value);\n return { active: re, disabled: G, highlighted: I };\n })), te = (u, re, G) => {\n G !== void 0 ? u.value = G : u.value = !u.value, u.value ? (U.value = !0, n(\"overlay-opened\", re)) : (U.value = !1, n(\"overlay-closed\", re));\n }, y = (u = !1, re) => {\n S(u), te(L, je.month, re);\n }, V = (u = !1, re) => {\n S(u), te(le, je.year, re);\n }, S = (u) => {\n u || n(\"reset-flow\");\n }, q = (u, re) => {\n a.arrowNavigation && ($.value[re] = Le(u), _($.value, \"monthYear\"));\n }, k = j(() => [\n {\n type: ot.month,\n index: 1,\n toggle: y,\n modelValue: O.value,\n updateModelValue: (u) => O.value = u,\n text: pe.value.text,\n showSelectionGrid: L.value,\n items: p.value,\n ariaLabel: i.value?.openMonthsOverlay,\n overlayLabel: i.value.monthPicker?.(!0) ?? void 0\n },\n {\n type: ot.year,\n index: 2,\n toggle: V,\n modelValue: J.value,\n updateModelValue: (u) => J.value = u,\n text: Ja(a.year, a.locale),\n showSelectionGrid: le.value,\n items: Y.value,\n ariaLabel: i.value?.openYearsOverlay,\n overlayLabel: i.value.yearPicker?.(!0) ?? void 0\n }\n ]), se = j(() => a.disableYearSelect ? [k.value[0]] : a.yearFirst ? [...k.value].reverse() : k.value);\n return t({\n toggleMonthPicker: y,\n toggleYearPicker: V,\n handleMonthYearChange: C\n }), (u, re) => (w(), W(\"div\", Ir, [\n u.$slots[\"month-year\"] ? (w(), W(\"div\", Er, [\n ie(u.$slots, \"month-year\", ze(Je({\n month: e.month,\n year: e.year,\n months: e.months,\n years: e.years,\n updateMonthYear: s(A),\n handleMonthYearChange: s(C),\n instance: e.instance,\n isDisabled: s(M)\n })))\n ])) : (w(), W(ke, { key: 1 }, [\n u.$slots[\"top-extra\"] ? (w(), W(\"div\", Nr, [\n ie(u.$slots, \"top-extra\", { value: u.internalModelValue })\n ])) : Q(\"\", !0),\n he(\"div\", Lr, [\n s(m)(s(g), e.instance) && !u.vertical ? (w(), Te(Qt, {\n key: 0,\n \"aria-label\": s(i)?.prevMonth,\n disabled: s(M)(!1),\n class: De(s(h)?.navBtnPrev),\n \"el-name\": \"action-prev\",\n onActivate: re[0] || (re[0] = (G) => s(C)(!1, !0)),\n onSetRef: re[1] || (re[1] = (G) => q(G, 0))\n }, {\n default: we(() => [\n u.$slots[\"arrow-left\"] ? ie(u.$slots, \"arrow-left\", { key: 0 }) : Q(\"\", !0),\n u.$slots[\"arrow-left\"] ? Q(\"\", !0) : (w(), Te(s(Ua), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"class\"])) : Q(\"\", !0),\n he(\"div\", {\n class: De([\"dp__month_year_wrap\", {\n dp__year_disable_select: u.disableYearSelect\n }])\n }, [\n (w(!0), W(ke, null, Ce(se.value, (G, I) => (w(), W(ke, {\n key: G.type\n }, [\n he(\"button\", {\n ref_for: !0,\n ref: (x) => q(x, I + 1),\n type: \"button\",\n \"data-dp-element\": `overlay-${G.type}`,\n class: De([\"dp__btn dp__month_year_select\", { \"dp--hidden-el\": U.value }]),\n \"aria-label\": `${G.text}-${G.ariaLabel}`,\n \"data-test-id\": `${G.type}-toggle-overlay-${e.instance}`,\n onClick: G.toggle,\n onKeydown: (x) => s(qe)(x, () => G.toggle(), !0)\n }, [\n u.$slots[G.type] ? ie(u.$slots, G.type, {\n key: 0,\n text: G.text,\n value: a[G.type]\n }) : Q(\"\", !0),\n u.$slots[G.type] ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n gt(Ke(G.text), 1)\n ], 64))\n ], 42, Fr),\n tt(Vt, {\n name: s(T)(G.showSelectionGrid),\n css: s(F)\n }, {\n default: we(() => [\n G.showSelectionGrid ? (w(), Te(ta, {\n key: 0,\n items: G.items,\n \"arrow-navigation\": u.arrowNavigation,\n \"hide-navigation\": u.hideNavigation,\n \"is-last\": u.autoApply && !s(P).keepActionRow,\n \"skip-button-ref\": !1,\n config: u.config,\n type: G.type,\n \"header-refs\": [],\n \"esc-close\": u.escClose,\n \"menu-wrap-ref\": u.menuWrapRef,\n \"text-input\": u.textInput,\n \"aria-labels\": u.ariaLabels,\n \"overlay-label\": G.overlayLabel,\n onSelected: G.updateModelValue,\n onToggle: G.toggle\n }, Ge({\n \"button-icon\": we(() => [\n u.$slots[\"calendar-icon\"] ? ie(u.$slots, \"calendar-icon\", { key: 0 }) : Q(\"\", !0),\n u.$slots[\"calendar-icon\"] ? Q(\"\", !0) : (w(), Te(s(jt), { key: 1 }))\n ]),\n _: 2\n }, [\n u.$slots[`${G.type}-overlay-value`] ? {\n name: \"item\",\n fn: we(({ item: x }) => [\n ie(u.$slots, `${G.type}-overlay-value`, {\n text: x.text,\n value: x.value\n })\n ]),\n key: \"0\"\n } : void 0,\n u.$slots[`${G.type}-overlay`] ? {\n name: \"overlay\",\n fn: we(() => [\n ie(u.$slots, `${G.type}-overlay`, He({ ref_for: !0 }, ce.value(G.type)))\n ]),\n key: \"1\"\n } : void 0,\n u.$slots[`${G.type}-overlay-header`] ? {\n name: \"header\",\n fn: we(() => [\n ie(u.$slots, `${G.type}-overlay-header`, {\n toggle: G.toggle\n })\n ]),\n key: \"2\"\n } : void 0\n ]), 1032, [\"items\", \"arrow-navigation\", \"hide-navigation\", \"is-last\", \"config\", \"type\", \"esc-close\", \"menu-wrap-ref\", \"text-input\", \"aria-labels\", \"overlay-label\", \"onSelected\", \"onToggle\"])) : Q(\"\", !0)\n ]),\n _: 2\n }, 1032, [\"name\", \"css\"])\n ], 64))), 128))\n ], 2),\n s(m)(s(g), e.instance) && u.vertical ? (w(), Te(Qt, {\n key: 1,\n \"aria-label\": s(i)?.prevMonth,\n \"el-name\": \"action-prev\",\n disabled: s(M)(!1),\n class: De(s(h)?.navBtnPrev),\n onActivate: re[2] || (re[2] = (G) => s(C)(!1, !0))\n }, {\n default: we(() => [\n u.$slots[\"arrow-up\"] ? ie(u.$slots, \"arrow-up\", { key: 0 }) : Q(\"\", !0),\n u.$slots[\"arrow-up\"] ? Q(\"\", !0) : (w(), Te(s(Ka), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"class\"])) : Q(\"\", !0),\n s(z)(s(g), e.instance) ? (w(), Te(Qt, {\n key: 2,\n ref: \"rightIcon\",\n \"el-name\": \"action-next\",\n disabled: s(M)(!0),\n \"aria-label\": s(i)?.nextMonth,\n class: De(s(h)?.navBtnNext),\n onActivate: re[3] || (re[3] = (G) => s(C)(!0, !0)),\n onSetRef: re[4] || (re[4] = (G) => q(G, u.disableYearSelect ? 2 : 3))\n }, {\n default: we(() => [\n u.$slots[u.vertical ? \"arrow-down\" : \"arrow-right\"] ? ie(u.$slots, u.vertical ? \"arrow-down\" : \"arrow-right\", { key: 0 }) : Q(\"\", !0),\n u.$slots[u.vertical ? \"arrow-down\" : \"arrow-right\"] ? Q(\"\", !0) : (w(), Te(fa(u.vertical ? s(Ga) : s(Va)), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"disabled\", \"aria-label\", \"class\"])) : Q(\"\", !0)\n ])\n ], 64))\n ]));\n }\n}), Hr = {\n class: \"dp__calendar_header\",\n role: \"row\"\n}, Wr = {\n key: 0,\n class: \"dp__calendar_header_item\",\n role: \"gridcell\"\n}, Ur = [\"aria-label\"], Vr = {\n key: 0,\n class: \"dp__calendar_item dp__week_num\",\n role: \"gridcell\"\n}, jr = { class: \"dp__cell_inner\" }, Kr = [\"id\", \"aria-selected\", \"aria-disabled\", \"aria-label\", \"tabindex\", \"data-test-id\", \"onClick\", \"onTouchend\", \"onKeydown\", \"onMouseenter\", \"onMouseleave\", \"onMousedown\"], Gr = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"DpCalendar\",\n props: {\n mappedDates: { type: Array, default: () => [] },\n instance: { type: Number, default: 0 },\n month: { type: Number, default: 0 },\n year: { type: Number, default: 0 },\n ...dt\n },\n emits: [\n \"select-date\",\n \"set-hover-date\",\n \"handle-scroll\",\n \"mount\",\n \"handle-swipe\",\n \"handle-space\",\n \"tooltip-open\",\n \"tooltip-close\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, { buildMultiLevelMatrix: f } = At(), {\n defaultedTransitions: i,\n defaultedConfig: g,\n defaultedAriaLabels: d,\n defaultedMultiCalendars: P,\n defaultedWeekNumbers: v,\n defaultedMultiDates: R,\n defaultedUI: h\n } = Oe(a), T = Z(null), F = Z({\n bottom: \"\",\n left: \"\",\n transform: \"\"\n }), _ = Z([]), C = Z(null), M = Z(!0), A = Z(\"\"), m = Z({ startX: 0, endX: 0, startY: 0, endY: 0 }), z = Z([]), L = Z({ left: \"50%\" }), le = Z(!1), U = j(() => a.calendar ? a.calendar(a.mappedDates) : a.mappedDates), $ = j(() => a.dayNames ? Array.isArray(a.dayNames) ? a.dayNames : a.dayNames(a.locale, +a.weekStart) : Tl(a.formatLocale, a.locale, +a.weekStart));\n Ue(() => {\n n(\"mount\", { cmp: \"calendar\", refs: _ }), g.value.noSwipe || C.value && (C.value.addEventListener(\"touchstart\", q, { passive: !1 }), C.value.addEventListener(\"touchend\", k, { passive: !1 }), C.value.addEventListener(\"touchmove\", se, { passive: !1 })), a.monthChangeOnScroll && C.value && C.value.addEventListener(\"wheel\", G, { passive: !1 });\n }), Ut(() => {\n g.value.noSwipe || C.value && (C.value.removeEventListener(\"touchstart\", q), C.value.removeEventListener(\"touchend\", k), C.value.removeEventListener(\"touchmove\", se)), a.monthChangeOnScroll && C.value && C.value.removeEventListener(\"wheel\", G);\n });\n const ee = (B) => B ? a.vertical ? \"vNext\" : \"next\" : a.vertical ? \"vPrevious\" : \"previous\", O = (B, be) => {\n if (a.transitions) {\n const Ae = Fe(pt(H(), a.month, a.year));\n A.value = Ee(Fe(pt(H(), B, be)), Ae) ? i.value[ee(!0)] : i.value[ee(!1)], M.value = !1, at(() => {\n M.value = !0;\n });\n }\n }, J = j(\n () => ({\n ...h.value.calendar ?? {}\n })\n ), ce = j(() => (B) => {\n const be = Pl(B);\n return {\n dp__marker_dot: be.type === \"dot\",\n dp__marker_line: be.type === \"line\"\n };\n }), pe = j(() => (B) => $e(B, T.value)), p = j(() => ({\n dp__calendar: !0,\n dp__calendar_next: P.value.count > 0 && a.instance !== 0\n })), Y = j(() => (B) => a.hideOffsetDates ? B.current : !0), te = async (B, be) => {\n const { width: Ae, height: ne } = B.getBoundingClientRect();\n T.value = be.value;\n let r = { left: `${Ae / 2}px` }, E = -50;\n if (await at(), z.value[0]) {\n const { left: K, width: oe } = z.value[0].getBoundingClientRect();\n K < 0 && (r = { left: \"0\" }, E = 0, L.value.left = `${Ae / 2}px`), window.innerWidth < K + oe && (r = { right: \"0\" }, E = 0, L.value.left = `${oe - Ae / 2}px`);\n }\n F.value = {\n bottom: `${ne}px`,\n ...r,\n transform: `translateX(${E}%)`\n };\n }, y = async (B, be, Ae) => {\n const ne = Le(_.value[be][Ae]);\n ne && (B.marker?.customPosition && B.marker?.tooltip?.length ? F.value = B.marker.customPosition(ne) : await te(ne, B), n(\"tooltip-open\", B.marker));\n }, V = async (B, be, Ae) => {\n if (le.value && R.value.enabled && R.value.dragSelect)\n return n(\"select-date\", B);\n if (n(\"set-hover-date\", B), B.marker?.tooltip?.length) {\n if (a.hideOffsetDates && !B.current) return;\n await y(B, be, Ae);\n }\n }, S = (B) => {\n T.value && (T.value = null, F.value = JSON.parse(JSON.stringify({ bottom: \"\", left: \"\", transform: \"\" })), n(\"tooltip-close\", B.marker));\n }, q = (B) => {\n m.value.startX = B.changedTouches[0].screenX, m.value.startY = B.changedTouches[0].screenY;\n }, k = (B) => {\n m.value.endX = B.changedTouches[0].screenX, m.value.endY = B.changedTouches[0].screenY, u();\n }, se = (B) => {\n a.vertical && !a.inline && B.preventDefault();\n }, u = () => {\n const B = a.vertical ? \"Y\" : \"X\";\n Math.abs(m.value[`start${B}`] - m.value[`end${B}`]) > 10 && n(\"handle-swipe\", m.value[`start${B}`] > m.value[`end${B}`] ? \"right\" : \"left\");\n }, re = (B, be, Ae) => {\n B && (Array.isArray(_.value[be]) ? _.value[be][Ae] = B : _.value[be] = [B]), a.arrowNavigation && f(_.value, \"calendar\");\n }, G = (B) => {\n a.monthChangeOnScroll && (B.preventDefault(), n(\"handle-scroll\", B));\n }, I = (B) => v.value.type === \"local\" ? pl(B.value, { weekStartsOn: +a.weekStart }) : v.value.type === \"iso\" ? gl(B.value) : typeof v.value.type == \"function\" ? v.value.type(B.value) : \"\", x = (B) => {\n const be = B[0];\n return v.value.hideOnOffsetDates ? B.some((Ae) => Ae.current) ? I(be) : \"\" : I(be);\n }, c = (B, be, Ae = !0) => {\n !Ae && _l() || (!R.value.enabled || g.value.allowPreventDefault) && (Dt(B, g.value), n(\"select-date\", be));\n }, o = (B) => {\n Dt(B, g.value);\n }, X = (B) => {\n R.value.enabled && R.value.dragSelect ? (le.value = !0, n(\"select-date\", B)) : R.value.enabled && n(\"select-date\", B);\n };\n return t({ triggerTransition: O }), (B, be) => (w(), W(\"div\", {\n class: De(p.value)\n }, [\n he(\"div\", {\n ref_key: \"calendarWrapRef\",\n ref: C,\n class: De(J.value),\n role: \"grid\"\n }, [\n he(\"div\", Hr, [\n B.weekNumbers ? (w(), W(\"div\", Wr, Ke(B.weekNumName), 1)) : Q(\"\", !0),\n (w(!0), W(ke, null, Ce($.value, (Ae, ne) => (w(), W(\"div\", {\n key: ne,\n class: \"dp__calendar_header_item\",\n role: \"gridcell\",\n \"data-test-id\": \"calendar-header\",\n \"aria-label\": s(d)?.weekDay?.(ne)\n }, [\n B.$slots[\"calendar-header\"] ? ie(B.$slots, \"calendar-header\", {\n key: 0,\n day: Ae,\n index: ne\n }) : Q(\"\", !0),\n B.$slots[\"calendar-header\"] ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n gt(Ke(Ae), 1)\n ], 64))\n ], 8, Ur))), 128))\n ]),\n be[2] || (be[2] = he(\"div\", { class: \"dp__calendar_header_separator\" }, null, -1)),\n tt(Vt, {\n name: A.value,\n css: !!B.transitions\n }, {\n default: we(() => [\n M.value ? (w(), W(\"div\", {\n key: 0,\n class: \"dp__calendar\",\n role: \"rowgroup\",\n onMouseleave: be[1] || (be[1] = (Ae) => le.value = !1)\n }, [\n (w(!0), W(ke, null, Ce(U.value, (Ae, ne) => (w(), W(\"div\", {\n key: ne,\n class: \"dp__calendar_row\",\n role: \"row\"\n }, [\n B.weekNumbers ? (w(), W(\"div\", Vr, [\n he(\"div\", jr, Ke(x(Ae.days)), 1)\n ])) : Q(\"\", !0),\n (w(!0), W(ke, null, Ce(Ae.days, (r, E) => (w(), W(\"div\", {\n id: s(Ha)(r.value),\n ref_for: !0,\n ref: (K) => re(K, ne, E),\n key: E + ne,\n role: \"gridcell\",\n class: \"dp__calendar_item\",\n \"aria-selected\": (r.classData.dp__active_date || r.classData.dp__range_start || r.classData.dp__range_end) ?? void 0,\n \"aria-disabled\": r.classData.dp__cell_disabled || void 0,\n \"aria-label\": s(d)?.day?.(r),\n tabindex: !r.current && B.hideOffsetDates ? void 0 : 0,\n \"data-test-id\": s(Ha)(r.value),\n onClick: Xt((K) => c(K, r), [\"prevent\"]),\n onTouchend: (K) => c(K, r, !1),\n onKeydown: (K) => s(qe)(K, () => B.$emit(\"select-date\", r)),\n onMouseenter: (K) => V(r, ne, E),\n onMouseleave: (K) => S(r),\n onMousedown: (K) => X(r),\n onMouseup: be[0] || (be[0] = (K) => le.value = !1)\n }, [\n he(\"div\", {\n class: De([\"dp__cell_inner\", r.classData])\n }, [\n B.$slots.day && Y.value(r) ? ie(B.$slots, \"day\", {\n key: 0,\n day: +r.text,\n date: r.value\n }) : Q(\"\", !0),\n B.$slots.day ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n gt(Ke(r.text), 1)\n ], 64)),\n r.marker && Y.value(r) ? (w(), W(ke, { key: 2 }, [\n B.$slots.marker ? ie(B.$slots, \"marker\", {\n key: 0,\n marker: r.marker,\n day: +r.text,\n date: r.value\n }) : (w(), W(\"div\", {\n key: 1,\n class: De(ce.value(r.marker)),\n style: lt(r.marker.color ? { backgroundColor: r.marker.color } : {})\n }, null, 6))\n ], 64)) : Q(\"\", !0),\n pe.value(r.value) ? (w(), W(\"div\", {\n key: 3,\n ref_for: !0,\n ref_key: \"activeTooltip\",\n ref: z,\n class: \"dp__marker_tooltip\",\n style: lt(F.value)\n }, [\n r.marker?.tooltip ? (w(), W(\"div\", {\n key: 0,\n class: \"dp__tooltip_content\",\n onClick: o\n }, [\n (w(!0), W(ke, null, Ce(r.marker.tooltip, (K, oe) => (w(), W(\"div\", {\n key: oe,\n class: \"dp__tooltip_text\"\n }, [\n B.$slots[\"marker-tooltip\"] ? ie(B.$slots, \"marker-tooltip\", {\n key: 0,\n tooltip: K,\n day: r.value\n }) : Q(\"\", !0),\n B.$slots[\"marker-tooltip\"] ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n he(\"div\", {\n class: \"dp__tooltip_mark\",\n style: lt(K.color ? { backgroundColor: K.color } : {})\n }, null, 4),\n he(\"div\", null, Ke(K.text), 1)\n ], 64))\n ]))), 128)),\n he(\"div\", {\n class: \"dp__arrow_bottom_tp\",\n style: lt(L.value)\n }, null, 4)\n ])) : Q(\"\", !0)\n ], 4)) : Q(\"\", !0)\n ], 2)\n ], 40, Kr))), 128))\n ]))), 128))\n ], 32)) : Q(\"\", !0)\n ]),\n _: 3\n }, 8, [\"name\", \"css\"])\n ], 2)\n ], 2));\n }\n}), yn = (e) => Array.isArray(e), Qr = (e, t, l, n) => {\n const a = Z([]), f = Z(/* @__PURE__ */ new Date()), i = Z(), g = () => k(e.isTextInputDate), { modelValue: d, calendars: P, time: v, today: R } = na(e, t, g), {\n defaultedMultiCalendars: h,\n defaultedStartTime: T,\n defaultedRange: F,\n defaultedConfig: _,\n defaultedTz: C,\n propDates: M,\n defaultedMultiDates: A\n } = Oe(e), { validateMonthYearInRange: m, isDisabled: z, isDateRangeAllowed: L, checkMinMaxRange: le } = Tt(e), { updateTimeValues: U, getSetDateTime: $, setTime: ee, assignStartTime: O, validateTime: J, disabledTimesConfig: ce } = Gn(e, v, d, n), pe = j(\n () => (b) => P.value[b] ? P.value[b].month : 0\n ), p = j(\n () => (b) => P.value[b] ? P.value[b].year : 0\n ), Y = (b) => !_.value.keepViewOnOffsetClick || b ? !0 : !i.value, te = (b, ae, ve, N = !1) => {\n Y(N) && (P.value[b] || (P.value[b] = { month: 0, year: 0 }), P.value[b].month = cn(ae) ? P.value[b]?.month : ae, P.value[b].year = cn(ve) ? P.value[b]?.year : ve);\n }, y = () => {\n e.autoApply && t(\"select-date\");\n }, V = () => {\n T.value && O(T.value);\n };\n Ue(() => {\n e.shadow || (d.value || (be(), V()), k(!0), e.focusStartDate && e.startDate && be());\n });\n const S = j(() => e.flow?.length && !e.partialFlow ? e.flowStep === e.flow.length : !0), q = () => {\n e.autoApply && S.value && t(\"auto-apply\", e.partialFlow ? e.flowStep !== e.flow.length : !1);\n }, k = (b = !1) => {\n if (d.value)\n return Array.isArray(d.value) ? (a.value = d.value, c(b)) : re(d.value, b);\n if (h.value.count && b && !e.startDate)\n return u(H(), b);\n }, se = () => Array.isArray(d.value) && F.value.enabled ? Me(d.value[0]) === Me(d.value[1] ?? d.value[0]) : !1, u = (b = /* @__PURE__ */ new Date(), ae = !1) => {\n if ((!h.value.count || !h.value.static || ae) && te(0, Me(b), ye(b)), h.value.count && (!d.value || se() || !h.value.solo) && (!h.value.solo || ae))\n for (let ve = 1; ve < h.value.count; ve++) {\n const N = Se(H(), { month: pe.value(ve - 1), year: p.value(ve - 1) }), ue = Tn(N, { months: 1 });\n P.value[ve] = { month: Me(ue), year: ye(ue) };\n }\n }, re = (b, ae) => {\n u(b), ee(\"hours\", yt(b)), ee(\"minutes\", $t(b)), ee(\"seconds\", zt(b)), h.value.count && ae && B();\n }, G = (b) => {\n if (h.value.count) {\n if (h.value.solo) return 0;\n const ae = Me(b[0]), ve = Me(b[1]);\n return Math.abs(ve - ae) < h.value.count ? 0 : 1;\n }\n return 1;\n }, I = (b, ae) => {\n b[1] && F.value.showLastInRange ? u(b[G(b)], ae) : u(b[0], ae);\n const ve = (N, ue) => [\n N(b[0]),\n b[1] ? N(b[1]) : v[ue][1]\n ];\n ee(\"hours\", ve(yt, \"hours\")), ee(\"minutes\", ve($t, \"minutes\")), ee(\"seconds\", ve(zt, \"seconds\"));\n }, x = (b, ae) => {\n if ((F.value.enabled || e.weekPicker) && !A.value.enabled)\n return I(b, ae);\n if (A.value.enabled && ae) {\n const ve = b[b.length - 1];\n return re(ve, ae);\n }\n }, c = (b) => {\n const ae = d.value;\n x(ae, b), h.value.count && h.value.solo && B();\n }, o = (b, ae) => {\n const ve = Se(H(), { month: pe.value(ae), year: p.value(ae) }), N = b < 0 ? Ct(ve, 1) : Jt(ve, 1);\n m(Me(N), ye(N), b < 0, e.preventMinMaxNavigation) && (te(ae, Me(N), ye(N)), t(\"update-month-year\", { instance: ae, month: Me(N), year: ye(N) }), h.value.count && !h.value.solo && X(ae), l());\n }, X = (b) => {\n for (let ae = b - 1; ae >= 0; ae--) {\n const ve = Jt(Se(H(), { month: pe.value(ae + 1), year: p.value(ae + 1) }), 1);\n te(ae, Me(ve), ye(ve));\n }\n for (let ae = b + 1; ae <= h.value.count - 1; ae++) {\n const ve = Ct(Se(H(), { month: pe.value(ae - 1), year: p.value(ae - 1) }), 1);\n te(ae, Me(ve), ye(ve));\n }\n }, B = () => {\n if (Array.isArray(d.value) && d.value.length === 2) {\n const b = H(\n H(d.value[1] ? d.value[1] : Ct(d.value[0], 1))\n ), [ae, ve] = [Me(d.value[0]), ye(d.value[0])], [N, ue] = [Me(d.value[1]), ye(d.value[1])];\n (ae !== N || ae === N && ve !== ue) && h.value.solo && te(1, Me(b), ye(b));\n } else d.value && !Array.isArray(d.value) && (te(0, Me(d.value), ye(d.value)), u(H()));\n }, be = () => {\n e.startDate && (te(0, Me(H(e.startDate)), ye(H(e.startDate))), h.value.count && X(0));\n }, Ae = (b, ae) => {\n if (e.monthChangeOnScroll) {\n const ve = (/* @__PURE__ */ new Date()).getTime() - f.value.getTime(), N = Math.abs(b.deltaY);\n let ue = 500;\n N > 1 && (ue = 100), N > 100 && (ue = 0), ve > ue && (f.value = /* @__PURE__ */ new Date(), o(e.monthChangeOnScroll !== \"inverse\" ? -b.deltaY : b.deltaY, ae));\n }\n }, ne = (b, ae, ve = !1) => {\n e.monthChangeOnArrows && e.vertical === ve && r(b, ae);\n }, r = (b, ae) => {\n o(b === \"right\" ? -1 : 1, ae);\n }, E = (b) => {\n if (M.value.markers)\n return ca(b.value, M.value.markers);\n }, K = (b, ae) => {\n switch (e.sixWeeks === !0 ? \"append\" : e.sixWeeks) {\n case \"prepend\":\n return [!0, !1];\n case \"center\":\n return [b == 0, !0];\n case \"fair\":\n return [b == 0 || ae > b, !0];\n case \"append\":\n return [!1, !1];\n default:\n return [!1, !1];\n }\n }, oe = (b, ae, ve, N) => {\n if (e.sixWeeks && b.length < 6) {\n const ue = 6 - b.length, me = (ae.getDay() + 7 - N) % 7, ct = 6 - (ve.getDay() + 7 - N) % 7, [Pt, $a] = K(me, ct);\n for (let Rt = 1; Rt <= ue; Rt++)\n if ($a ? !!(Rt % 2) == Pt : Pt) {\n const ra = b[0].days[0], Aa = ge(kt(ra.value, -7), Me(ae));\n b.unshift({ days: Aa });\n } else {\n const ra = b[b.length - 1], Aa = ra.days[ra.days.length - 1], Xn = ge(kt(Aa.value, 1), Me(ae));\n b.push({ days: Xn });\n }\n }\n return b;\n }, ge = (b, ae) => {\n const ve = H(b), N = [];\n for (let ue = 0; ue < 7; ue++) {\n const me = kt(ve, ue), vt = Me(me) !== ae;\n N.push({\n text: e.hideOffsetDates && vt ? \"\" : me.getDate(),\n value: me,\n current: !vt,\n classData: {}\n });\n }\n return N;\n }, _e = (b, ae) => {\n const ve = [], N = new Date(ae, b), ue = new Date(ae, b + 1, 0), me = e.weekStart, vt = Wa(N, { weekStartsOn: me }), ct = (Pt) => {\n const $a = ge(Pt, b);\n if (ve.push({ days: $a }), !ve[ve.length - 1].days.some(\n (Rt) => $e(Fe(Rt.value), Fe(ue))\n )) {\n const Rt = kt(Pt, 7);\n ct(Rt);\n }\n };\n return ct(vt), oe(ve, N, ue, me);\n }, Ye = (b) => {\n const ae = Mt(H(b.value), v.hours, v.minutes, xe());\n t(\"date-update\", ae), A.value.enabled ? en(ae, d, A.value.limit) : d.value = ae, n(), at().then(() => {\n q();\n });\n }, nt = (b) => F.value.noDisabledRange ? In(a.value[0], b).some((ve) => z(ve)) : !1, St = () => {\n a.value = d.value ? d.value.slice() : [], a.value.length === 2 && !(F.value.fixedStart || F.value.fixedEnd) && (a.value = []);\n }, D = (b, ae) => {\n const ve = [\n H(b.value),\n kt(H(b.value), +F.value.autoRange)\n ];\n L(ve) ? (ae && de(b.value), a.value = ve) : t(\"invalid-date\", b.value);\n }, de = (b) => {\n const ae = Me(H(b)), ve = ye(H(b));\n if (te(0, ae, ve), h.value.count > 0)\n for (let N = 1; N < h.value.count; N++) {\n const ue = El(\n Se(H(b), { year: p.value(N - 1), month: pe.value(N - 1) })\n );\n te(N, ue.month, ue.year);\n }\n }, fe = (b) => {\n if (nt(b.value) || !le(b.value, d.value, F.value.fixedStart ? 0 : 1))\n return t(\"invalid-date\", b.value);\n a.value = Vn(H(b.value), d, t, F);\n }, ht = (b, ae) => {\n if (St(), F.value.autoRange) return D(b, ae);\n if (F.value.fixedStart || F.value.fixedEnd) return fe(b);\n a.value[0] ? le(H(b.value), d.value) && !nt(b.value) ? Be(H(b.value), H(a.value[0])) ? (a.value.unshift(H(b.value)), t(\"range-end\", a.value[0])) : (a.value[1] = H(b.value), t(\"range-end\", a.value[1])) : (e.autoApply && t(\"auto-apply-invalid\", b.value), t(\"invalid-date\", b.value)) : (a.value[0] = H(b.value), t(\"range-start\", a.value[0]));\n }, xe = (b = !0) => e.enableSeconds ? Array.isArray(v.seconds) ? b ? v.seconds[0] : v.seconds[1] : v.seconds : 0, Xe = (b) => {\n a.value[b] = Mt(\n a.value[b],\n v.hours[b],\n v.minutes[b],\n xe(b !== 1)\n );\n }, ya = () => {\n a.value[0] && a.value[1] && +a.value?.[0] > +a.value?.[1] && (a.value.reverse(), t(\"range-start\", a.value[0]), t(\"range-end\", a.value[1]));\n }, ha = () => {\n a.value.length && (a.value[0] && !a.value[1] ? Xe(0) : (Xe(0), Xe(1), n()), ya(), d.value = a.value.slice(), pa(a.value, t, e.autoApply, e.modelAuto));\n }, la = (b, ae = !1) => {\n if (z(b.value) || !b.current && e.hideOffsetDates) return t(\"invalid-date\", b.value);\n if (i.value = JSON.parse(JSON.stringify(b)), !F.value.enabled) return Ye(b);\n yn(v.hours) && yn(v.minutes) && !A.value.enabled && (ht(b, ae), ha());\n }, ba = (b, ae) => {\n te(b, ae.month, ae.year, !0), h.value.count && !h.value.solo && X(b), t(\"update-month-year\", { instance: b, month: ae.month, year: ae.year }), l(h.value.solo ? b : void 0);\n const ve = e.flow?.length ? e.flow[e.flowStep] : void 0;\n !ae.fromNav && (ve === je.month || ve === je.year) && n();\n }, ka = (b, ae) => {\n Un({\n value: b,\n modelValue: d,\n range: F.value.enabled,\n timezone: ae ? void 0 : C.value.timezone\n }), y(), e.multiCalendars && at().then(() => k(!0));\n }, wa = () => {\n const b = Qa(H(), C.value);\n !F.value.enabled && !A.value.enabled ? d.value = b : d.value && Array.isArray(d.value) && d.value[0] ? A.value.enabled ? d.value = [...d.value, b] : d.value = Be(b, d.value[0]) ? [b, d.value[0]] : [d.value[0], b] : d.value = [b], y();\n }, Da = () => {\n if (Array.isArray(d.value))\n if (A.value.enabled) {\n const b = Ma();\n d.value[d.value.length - 1] = $(b);\n } else\n d.value = d.value.map((b, ae) => b && $(b, ae));\n else\n d.value = $(d.value);\n t(\"time-update\");\n }, Ma = () => Array.isArray(d.value) && d.value.length ? d.value[d.value.length - 1] : null;\n return {\n calendars: P,\n modelValue: d,\n month: pe,\n year: p,\n time: v,\n disabledTimesConfig: ce,\n today: R,\n validateTime: J,\n getCalendarDays: _e,\n getMarker: E,\n handleScroll: Ae,\n handleSwipe: r,\n handleArrow: ne,\n selectDate: la,\n updateMonthYear: ba,\n presetDate: ka,\n selectCurrentDate: wa,\n updateTime: (b, ae = !0, ve = !1) => {\n U(b, ae, ve, Da);\n },\n assignMonthAndYear: u,\n setStartTime: V\n };\n}, qr = { key: 0 }, Xr = /* @__PURE__ */ We({\n __name: \"DatePicker\",\n props: {\n ...dt\n },\n emits: [\n \"tooltip-open\",\n \"tooltip-close\",\n \"mount\",\n \"update:internal-model-value\",\n \"update-flow-step\",\n \"reset-flow\",\n \"auto-apply\",\n \"focus-menu\",\n \"select-date\",\n \"range-start\",\n \"range-end\",\n \"invalid-fixed-range\",\n \"time-update\",\n \"am-pm-change\",\n \"time-picker-open\",\n \"time-picker-close\",\n \"recalculate-position\",\n \"update-month-year\",\n \"auto-apply-invalid\",\n \"date-update\",\n \"invalid-date\",\n \"overlay-toggle\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, {\n calendars: f,\n month: i,\n year: g,\n modelValue: d,\n time: P,\n disabledTimesConfig: v,\n today: R,\n validateTime: h,\n getCalendarDays: T,\n getMarker: F,\n handleArrow: _,\n handleScroll: C,\n handleSwipe: M,\n selectDate: A,\n updateMonthYear: m,\n presetDate: z,\n selectCurrentDate: L,\n updateTime: le,\n assignMonthAndYear: U,\n setStartTime: $\n } = Qr(a, n, se, u), ee = Yt(), { setHoverDate: O, getDayClassData: J, clearHoverDate: ce } = mo(d, a), { defaultedMultiCalendars: pe } = Oe(a), p = Z([]), Y = Z([]), te = Z(null), y = et(ee, \"calendar\"), V = et(ee, \"monthYear\"), S = et(ee, \"timePicker\"), q = (ne) => {\n a.shadow || n(\"mount\", ne);\n };\n rt(\n f,\n () => {\n a.shadow || setTimeout(() => {\n n(\"recalculate-position\");\n }, 0);\n },\n { deep: !0 }\n ), rt(\n pe,\n (ne, r) => {\n ne.count - r.count > 0 && U();\n },\n { deep: !0 }\n );\n const k = j(() => (ne) => T(i.value(ne), g.value(ne)).map((r) => ({\n ...r,\n days: r.days.map((E) => (E.marker = F(E), E.classData = J(E), E))\n })));\n function se(ne) {\n ne || ne === 0 ? Y.value[ne]?.triggerTransition(i.value(ne), g.value(ne)) : Y.value.forEach((r, E) => r.triggerTransition(i.value(E), g.value(E)));\n }\n function u() {\n n(\"update-flow-step\");\n }\n const re = (ne, r = !1) => {\n A(ne, r), a.spaceConfirm && n(\"select-date\");\n }, G = (ne, r, E = 0) => {\n p.value[E]?.toggleMonthPicker(ne, r);\n }, I = (ne, r, E = 0) => {\n p.value[E]?.toggleYearPicker(ne, r);\n }, x = (ne, r, E) => {\n te.value?.toggleTimePicker(ne, r, E);\n }, c = (ne, r) => {\n if (!a.range) {\n const E = d.value ? d.value : R, K = r ? new Date(r) : E, oe = ne ? Wa(K, { weekStartsOn: 1 }) : kn(K, { weekStartsOn: 1 });\n A({\n value: oe,\n current: Me(K) === i.value(0),\n text: \"\",\n classData: {}\n }), document.getElementById(Ha(oe))?.focus();\n }\n }, o = (ne) => {\n p.value[0]?.handleMonthYearChange(ne, !0);\n }, X = (ne) => {\n m(0, { month: i.value(0), year: g.value(0) + (ne ? 1 : -1), fromNav: !0 });\n }, B = (ne, r) => {\n ne === je.time && n(`time-picker-${r ? \"open\" : \"close\"}`), n(\"overlay-toggle\", { open: r, overlay: ne });\n }, be = (ne) => {\n n(\"overlay-toggle\", { open: !1, overlay: ne }), n(\"focus-menu\");\n };\n return t({\n clearHoverDate: ce,\n presetDate: z,\n selectCurrentDate: L,\n toggleMonthPicker: G,\n toggleYearPicker: I,\n toggleTimePicker: x,\n handleArrow: _,\n updateMonthYear: m,\n getSidebarProps: () => ({\n modelValue: d,\n month: i,\n year: g,\n time: P,\n updateTime: le,\n updateMonthYear: m,\n selectDate: A,\n presetDate: z\n }),\n changeMonth: o,\n changeYear: X,\n selectWeekDate: c,\n setStartTime: $\n }), (ne, r) => (w(), W(ke, null, [\n tt(ma, {\n \"multi-calendars\": s(pe).count,\n collapse: ne.collapse,\n \"is-mobile\": ne.isMobile\n }, {\n default: we(({ instance: E, index: K }) => [\n ne.disableMonthYearSelect ? Q(\"\", !0) : (w(), Te(zr, He({\n key: 0,\n ref: (oe) => {\n oe && (p.value[K] = oe);\n },\n months: s(Pn)(ne.formatLocale, ne.locale, ne.monthNameFormat),\n years: s(qa)(ne.yearRange, ne.locale, ne.reverseYears),\n month: s(i)(E),\n year: s(g)(E),\n instance: E\n }, ne.$props, {\n onMount: r[0] || (r[0] = (oe) => q(s(Ot).header)),\n onResetFlow: r[1] || (r[1] = (oe) => ne.$emit(\"reset-flow\")),\n onUpdateMonthYear: (oe) => s(m)(E, oe),\n onOverlayClosed: be,\n onOverlayOpened: r[2] || (r[2] = (oe) => ne.$emit(\"overlay-toggle\", { open: !0, overlay: oe }))\n }), Ge({ _: 2 }, [\n Ce(s(V), (oe, ge) => ({\n name: oe,\n fn: we((_e) => [\n ie(ne.$slots, oe, ze(Je(_e)))\n ])\n }))\n ]), 1040, [\"months\", \"years\", \"month\", \"year\", \"instance\", \"onUpdateMonthYear\"])),\n tt(Gr, He({\n ref: (oe) => {\n oe && (Y.value[K] = oe);\n },\n \"mapped-dates\": k.value(E),\n month: s(i)(E),\n year: s(g)(E),\n instance: E\n }, ne.$props, {\n onSelectDate: (oe) => s(A)(oe, E !== 1),\n onHandleSpace: (oe) => re(oe, E !== 1),\n onSetHoverDate: r[3] || (r[3] = (oe) => s(O)(oe)),\n onHandleScroll: (oe) => s(C)(oe, E),\n onHandleSwipe: (oe) => s(M)(oe, E),\n onMount: r[4] || (r[4] = (oe) => q(s(Ot).calendar)),\n onResetFlow: r[5] || (r[5] = (oe) => ne.$emit(\"reset-flow\")),\n onTooltipOpen: r[6] || (r[6] = (oe) => ne.$emit(\"tooltip-open\", oe)),\n onTooltipClose: r[7] || (r[7] = (oe) => ne.$emit(\"tooltip-close\", oe))\n }), Ge({ _: 2 }, [\n Ce(s(y), (oe, ge) => ({\n name: oe,\n fn: we((_e) => [\n ie(ne.$slots, oe, ze(Je({ ..._e })))\n ])\n }))\n ]), 1040, [\"mapped-dates\", \"month\", \"year\", \"instance\", \"onSelectDate\", \"onHandleSpace\", \"onHandleScroll\", \"onHandleSwipe\"])\n ]),\n _: 3\n }, 8, [\"multi-calendars\", \"collapse\", \"is-mobile\"]),\n ne.enableTimePicker ? (w(), W(\"div\", qr, [\n ne.$slots[\"time-picker\"] ? ie(ne.$slots, \"time-picker\", ze(He({ key: 0 }, { time: s(P), updateTime: s(le) }))) : (w(), Te(Kn, He({\n key: 1,\n ref_key: \"timePickerRef\",\n ref: te\n }, ne.$props, {\n hours: s(P).hours,\n minutes: s(P).minutes,\n seconds: s(P).seconds,\n \"internal-model-value\": ne.internalModelValue,\n \"disabled-times-config\": s(v),\n \"validate-time\": s(h),\n onMount: r[8] || (r[8] = (E) => q(s(Ot).timePicker)),\n \"onUpdate:hours\": r[9] || (r[9] = (E) => s(le)(E)),\n \"onUpdate:minutes\": r[10] || (r[10] = (E) => s(le)(E, !1)),\n \"onUpdate:seconds\": r[11] || (r[11] = (E) => s(le)(E, !1, !0)),\n onResetFlow: r[12] || (r[12] = (E) => ne.$emit(\"reset-flow\")),\n onOverlayClosed: r[13] || (r[13] = (E) => B(E, !1)),\n onOverlayOpened: r[14] || (r[14] = (E) => B(E, !0)),\n onAmPmChange: r[15] || (r[15] = (E) => ne.$emit(\"am-pm-change\", E))\n }), Ge({ _: 2 }, [\n Ce(s(S), (E, K) => ({\n name: E,\n fn: we((oe) => [\n ie(ne.$slots, E, ze(Je(oe)))\n ])\n }))\n ]), 1040, [\"hours\", \"minutes\", \"seconds\", \"internal-model-value\", \"disabled-times-config\", \"validate-time\"]))\n ])) : Q(\"\", !0)\n ], 64));\n }\n}), Jr = (e, t) => {\n const l = Z(), {\n defaultedMultiCalendars: n,\n defaultedConfig: a,\n defaultedHighlight: f,\n defaultedRange: i,\n propDates: g,\n defaultedFilters: d,\n defaultedMultiDates: P\n } = Oe(e), { modelValue: v, year: R, month: h, calendars: T } = na(e, t), { isDisabled: F } = Tt(e), { selectYear: _, groupedYears: C, showYearPicker: M, isDisabled: A, toggleYearPicker: m, handleYearSelect: z, handleYear: L } = jn({\n modelValue: v,\n multiCalendars: n,\n range: i,\n highlight: f,\n calendars: T,\n propDates: g,\n month: h,\n year: R,\n filters: d,\n props: e,\n emit: t\n }), le = (y, V) => [y, V].map((S) => ft(S, \"MMMM\", { locale: e.formatLocale })).join(\"-\"), U = j(() => (y) => v.value ? Array.isArray(v.value) ? v.value.some((V) => rn(y, V)) : rn(v.value, y) : !1), $ = (y) => {\n if (i.value.enabled) {\n if (Array.isArray(v.value)) {\n const V = $e(y, v.value[0]) || $e(y, v.value[1]);\n return xt(v.value, l.value, y) && !V;\n }\n return !1;\n }\n return !1;\n }, ee = (y, V) => y.quarter === sn(V) && y.year === ye(V), O = (y) => typeof f.value == \"function\" ? f.value({ quarter: sn(y), year: ye(y) }) : !!f.value.quarters.find((V) => ee(V, y)), J = j(() => (y) => {\n const V = Se(/* @__PURE__ */ new Date(), { year: R.value(y) });\n return yl({\n start: Gt(V),\n end: An(V)\n }).map((S) => {\n const q = hl(S), k = on(S), se = F(S), u = $(q), re = O(q);\n return {\n text: le(q, k),\n value: q,\n active: U.value(q),\n highlighted: re,\n disabled: se,\n isBetween: u\n };\n });\n }), ce = (y) => {\n en(y, v, P.value.limit), t(\"auto-apply\", !0);\n }, pe = (y) => {\n v.value = tn(v, y, t), pa(v.value, t, e.autoApply, e.modelAuto);\n }, p = (y) => {\n v.value = y, t(\"auto-apply\");\n };\n return {\n defaultedConfig: a,\n defaultedMultiCalendars: n,\n groupedYears: C,\n year: R,\n isDisabled: A,\n quarters: J,\n showYearPicker: M,\n modelValue: v,\n setHoverDate: (y) => {\n l.value = y;\n },\n selectYear: _,\n selectQuarter: (y, V, S) => {\n if (!S)\n return T.value[V].month = Me(on(y)), P.value.enabled ? ce(y) : i.value.enabled ? pe(y) : p(y);\n },\n toggleYearPicker: m,\n handleYearSelect: z,\n handleYear: L\n };\n}, Zr = { class: \"dp--quarter-items\" }, xr = [\"data-test-id\", \"disabled\", \"onClick\", \"onMouseover\"], eo = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"QuarterPicker\",\n props: {\n ...dt\n },\n emits: [\n \"update:internal-model-value\",\n \"reset-flow\",\n \"overlay-closed\",\n \"auto-apply\",\n \"range-start\",\n \"range-end\",\n \"overlay-toggle\",\n \"update-month-year\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, f = Yt(), i = et(f, \"yearMode\"), {\n defaultedMultiCalendars: g,\n defaultedConfig: d,\n groupedYears: P,\n year: v,\n isDisabled: R,\n quarters: h,\n modelValue: T,\n showYearPicker: F,\n setHoverDate: _,\n selectQuarter: C,\n toggleYearPicker: M,\n handleYearSelect: A,\n handleYear: m\n } = Jr(a, n);\n return t({ getSidebarProps: () => ({\n modelValue: T,\n year: v,\n selectQuarter: C,\n handleYearSelect: A,\n handleYear: m\n }) }), (L, le) => (w(), Te(ma, {\n \"multi-calendars\": s(g).count,\n collapse: L.collapse,\n stretch: \"\",\n \"is-mobile\": L.isMobile\n }, {\n default: we(({ instance: U }) => [\n he(\"div\", {\n class: \"dp-quarter-picker-wrap\",\n style: lt({ minHeight: `${s(d).modeHeight}px` })\n }, [\n L.$slots[\"top-extra\"] ? ie(L.$slots, \"top-extra\", {\n key: 0,\n value: L.internalModelValue\n }) : Q(\"\", !0),\n he(\"div\", null, [\n tt(Wn, He(L.$props, {\n items: s(P)(U),\n instance: U,\n \"show-year-picker\": s(F)[U],\n year: s(v)(U),\n \"is-disabled\": ($) => s(R)(U, $),\n onHandleYear: ($) => s(m)(U, $),\n onYearSelect: ($) => s(A)($, U),\n onToggleYearPicker: ($) => s(M)(U, $?.flow, $?.show)\n }), Ge({ _: 2 }, [\n Ce(s(i), ($, ee) => ({\n name: $,\n fn: we((O) => [\n ie(L.$slots, $, ze(Je(O)))\n ])\n }))\n ]), 1040, [\"items\", \"instance\", \"show-year-picker\", \"year\", \"is-disabled\", \"onHandleYear\", \"onYearSelect\", \"onToggleYearPicker\"])\n ]),\n he(\"div\", Zr, [\n (w(!0), W(ke, null, Ce(s(h)(U), ($, ee) => (w(), W(\"div\", { key: ee }, [\n he(\"button\", {\n type: \"button\",\n class: De([\"dp--qr-btn\", {\n \"dp--qr-btn-active\": $.active,\n \"dp--qr-btn-between\": $.isBetween,\n \"dp--qr-btn-disabled\": $.disabled,\n \"dp--highlighted\": $.highlighted\n }]),\n \"data-test-id\": $.value,\n disabled: $.disabled,\n onClick: (O) => s(C)($.value, U, $.disabled),\n onMouseover: (O) => s(_)($.value)\n }, [\n L.$slots.quarter ? ie(L.$slots, \"quarter\", {\n key: 0,\n value: $.value,\n text: $.text\n }) : (w(), W(ke, { key: 1 }, [\n gt(Ke($.text), 1)\n ], 64))\n ], 42, xr)\n ]))), 128))\n ])\n ], 4)\n ]),\n _: 3\n }, 8, [\"multi-calendars\", \"collapse\", \"is-mobile\"]));\n }\n}), Qn = (e, t) => {\n const l = Z(0);\n Ue(() => {\n n(), window.addEventListener(\"resize\", n, { passive: !0 });\n }), Ut(() => {\n window.removeEventListener(\"resize\", n);\n });\n const n = () => {\n l.value = window.document.documentElement.clientWidth;\n };\n return {\n isMobile: j(\n () => l.value <= e.value.mobileBreakpoint && !t ? !0 : void 0\n )\n };\n}, to = [\"id\", \"tabindex\", \"role\", \"aria-label\"], ao = {\n key: 0,\n class: \"dp--menu-load-container\"\n}, no = {\n key: 1,\n class: \"dp--menu-header\"\n}, lo = [\"data-dp-mobile\"], ro = {\n key: 0,\n class: \"dp__sidebar_left\"\n}, oo = [\"data-dp-mobile\"], so = [\"data-test-id\", \"data-dp-mobile\", \"onClick\", \"onKeydown\"], uo = {\n key: 2,\n class: \"dp__sidebar_right\"\n}, io = {\n key: 3,\n class: \"dp__action_extra\"\n}, hn = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"DatepickerMenu\",\n props: {\n ...va,\n shadow: { type: Boolean, default: !1 },\n openOnTop: { type: Boolean, default: !1 },\n internalModelValue: { type: [Date, Array], default: null },\n noOverlayFocus: { type: Boolean, default: !1 },\n collapse: { type: Boolean, default: !1 },\n getInputRect: { type: Function, default: () => ({}) },\n isTextInputDate: { type: Boolean, default: !1 }\n },\n emits: [\n \"close-picker\",\n \"select-date\",\n \"auto-apply\",\n \"time-update\",\n \"flow-step\",\n \"update-month-year\",\n \"invalid-select\",\n \"update:internal-model-value\",\n \"recalculate-position\",\n \"invalid-fixed-range\",\n \"tooltip-open\",\n \"tooltip-close\",\n \"time-picker-open\",\n \"time-picker-close\",\n \"am-pm-change\",\n \"range-start\",\n \"range-end\",\n \"auto-apply-invalid\",\n \"date-update\",\n \"invalid-date\",\n \"overlay-toggle\",\n \"menu-blur\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, f = Z(null), i = j(() => {\n const { openOnTop: D, ...de } = a;\n return {\n ...de,\n isMobile: C.value,\n flowStep: pe.value,\n menuWrapRef: f.value\n };\n }), { setMenuFocused: g, setShiftKey: d, control: P } = Hn(), v = Yt(), { defaultedTextInput: R, defaultedInline: h, defaultedConfig: T, defaultedUI: F, handleEventPropagation: _ } = Oe(a), { isMobile: C } = Qn(T, a.shadow), M = Z(null), A = Z(0), m = Z(null), z = Z(!1), L = Z(null), le = Z(!1), U = (D) => {\n le.value = !0, T.value.allowPreventDefault && D.preventDefault(), Dt(D, T.value, !0);\n };\n Ue(() => {\n if (!a.shadow) {\n z.value = !0, $(), window.addEventListener(\"resize\", $);\n const D = Le(f);\n D && !R.value.enabled && !h.value.enabled && (g(!0), q()), D && (D.addEventListener(\"pointerdown\", U), D.addEventListener(\"mousedown\", U));\n }\n document.addEventListener(\"mousedown\", nt);\n }), Ut(() => {\n window.removeEventListener(\"resize\", $), document.removeEventListener(\"mousedown\", nt);\n const D = Le(f);\n D && (D.removeEventListener(\"pointerdown\", U), D.removeEventListener(\"mousedown\", U));\n });\n const $ = () => {\n const D = Le(m);\n D && (A.value = D.getBoundingClientRect().width);\n }, { arrowRight: ee, arrowLeft: O, arrowDown: J, arrowUp: ce } = At(), { flowStep: pe, updateFlowStep: p, childMount: Y, resetFlow: te, handleFlow: y } = po(a, n, L), V = j(() => a.monthPicker ? hr : a.yearPicker ? kr : a.timePicker ? Yr : a.quarterPicker ? eo : Xr), S = j(() => {\n if (T.value.arrowLeft) return T.value.arrowLeft;\n const D = f.value?.getBoundingClientRect(), de = a.getInputRect();\n return de?.width < A?.value && de?.left <= (D?.left ?? 0) ? `${de?.width / 2}px` : de?.right >= (D?.right ?? 0) && de?.width < A?.value ? `${A?.value - de?.width / 2}px` : \"50%\";\n }), q = () => {\n const D = Le(f);\n D && D.focus({ preventScroll: !0 });\n }, k = j(() => L.value?.getSidebarProps() || {}), se = () => {\n a.openOnTop && n(\"recalculate-position\");\n }, u = et(v, \"action\"), re = j(() => a.monthPicker || a.yearPicker ? et(v, \"monthYear\") : a.timePicker ? et(v, \"timePicker\") : et(v, \"shared\")), G = j(() => a.openOnTop ? \"dp__arrow_bottom\" : \"dp__arrow_top\"), I = j(() => ({\n dp__menu_disabled: a.disabled,\n dp__menu_readonly: a.readonly,\n \"dp-menu-loading\": a.loading\n })), x = j(\n () => ({\n dp__menu: !0,\n dp__menu_index: !h.value.enabled,\n dp__relative: h.value.enabled,\n ...F.value.menu ?? {}\n })\n ), c = (D) => {\n Dt(D, T.value, !0);\n }, o = (D) => {\n a.escClose && (n(\"close-picker\"), _(D));\n }, X = (D) => {\n if (a.arrowNavigation) {\n if (D === Qe.up) return ce();\n if (D === Qe.down) return J();\n if (D === Qe.left) return O();\n if (D === Qe.right) return ee();\n } else D === Qe.left || D === Qe.up ? r(\"handleArrow\", Qe.left, 0, D === Qe.up) : r(\"handleArrow\", Qe.right, 0, D === Qe.down);\n }, B = (D) => {\n d(D.shiftKey), !a.disableMonthYearSelect && D.code === Re.tab && D.target.classList.contains(\"dp__menu\") && P.value.shiftKeyInMenu && (D.preventDefault(), Dt(D, T.value, !0), n(\"close-picker\"));\n }, be = () => {\n q(), n(\"time-picker-close\");\n }, Ae = (D) => {\n L.value?.toggleTimePicker(!1, !1), L.value?.toggleMonthPicker(!1, !1, D), L.value?.toggleYearPicker(!1, !1, D);\n }, ne = (D, de = 0) => D === \"month\" ? L.value?.toggleMonthPicker(!1, !0, de) : D === \"year\" ? L.value?.toggleYearPicker(!1, !0, de) : D === \"time\" ? L.value?.toggleTimePicker(!0, !1) : Ae(de), r = (D, ...de) => {\n L.value?.[D] && L.value?.[D](...de);\n }, E = () => {\n r(\"selectCurrentDate\");\n }, K = (D, de) => {\n r(\"presetDate\", el(D), de);\n }, oe = () => {\n r(\"clearHoverDate\");\n }, ge = (D, de) => {\n r(\"updateMonthYear\", D, de);\n }, _e = (D, de) => {\n D.preventDefault(), X(de);\n }, Ye = (D) => {\n if (B(D), D.key === Re.home || D.key === Re.end)\n return r(\n \"selectWeekDate\",\n D.key === Re.home,\n D.target.getAttribute(\"id\")\n );\n switch ((D.key === Re.pageUp || D.key === Re.pageDown) && (D.shiftKey ? (r(\"changeYear\", D.key === Re.pageUp), Fa(f.value, \"overlay-year\")?.focus()) : (r(\"changeMonth\", D.key === Re.pageUp), Fa(f.value, D.key === Re.pageUp ? \"action-prev\" : \"action-next\")?.focus()), D.target.getAttribute(\"id\") && f.value?.focus({ preventScroll: !0 })), D.key) {\n case Re.esc:\n return o(D);\n case Re.arrowLeft:\n return _e(D, Qe.left);\n case Re.arrowRight:\n return _e(D, Qe.right);\n case Re.arrowUp:\n return _e(D, Qe.up);\n case Re.arrowDown:\n return _e(D, Qe.down);\n default:\n return;\n }\n }, nt = (D) => {\n h.value.enabled && !h.value.input && !f.value?.contains(D.target) && le.value && (le.value = !1, n(\"menu-blur\"));\n };\n return t({\n updateMonthYear: ge,\n switchView: ne,\n handleFlow: y,\n onValueCleared: () => {\n L.value?.setStartTime?.();\n }\n }), (D, de) => (w(), W(\"div\", {\n id: D.uid ? `dp-menu-${D.uid}` : void 0,\n ref_key: \"dpMenuRef\",\n ref: f,\n tabindex: s(h).enabled ? void 0 : \"0\",\n role: s(h).enabled ? void 0 : \"dialog\",\n \"aria-label\": D.ariaLabels?.menu,\n class: De(x.value),\n style: lt({ \"--dp-arrow-left\": S.value }),\n onMouseleave: oe,\n onClick: c,\n onKeydown: Ye\n }, [\n (D.disabled || D.readonly) && s(h).enabled || D.loading ? (w(), W(\"div\", {\n key: 0,\n class: De(I.value)\n }, [\n D.loading ? (w(), W(\"div\", ao, [...de[19] || (de[19] = [\n he(\"span\", { class: \"dp--menu-loader\" }, null, -1)\n ])])) : Q(\"\", !0)\n ], 2)) : Q(\"\", !0),\n D.$slots[\"menu-header\"] ? (w(), W(\"div\", no, [\n ie(D.$slots, \"menu-header\")\n ])) : Q(\"\", !0),\n !s(h).enabled && !D.teleportCenter ? (w(), W(\"div\", {\n key: 2,\n class: De(G.value)\n }, null, 2)) : Q(\"\", !0),\n he(\"div\", {\n ref_key: \"innerMenuRef\",\n ref: m,\n class: De({\n dp__menu_content_wrapper: D.presetDates?.length || !!D.$slots[\"left-sidebar\"] || !!D.$slots[\"right-sidebar\"],\n \"dp--menu-content-wrapper-collapsed\": e.collapse && (D.presetDates?.length || !!D.$slots[\"left-sidebar\"] || !!D.$slots[\"right-sidebar\"])\n }),\n \"data-dp-mobile\": s(C),\n style: lt({ \"--dp-menu-width\": `${A.value}px` })\n }, [\n D.$slots[\"left-sidebar\"] ? (w(), W(\"div\", ro, [\n ie(D.$slots, \"left-sidebar\", ze(Je(k.value)))\n ])) : Q(\"\", !0),\n D.presetDates.length ? (w(), W(\"div\", {\n key: 1,\n class: De({ \"dp--preset-dates-collapsed\": e.collapse, \"dp--preset-dates\": !0 }),\n \"data-dp-mobile\": s(C)\n }, [\n (w(!0), W(ke, null, Ce(D.presetDates, (fe, ht) => (w(), W(ke, { key: ht }, [\n fe.slot ? ie(D.$slots, fe.slot, {\n key: 0,\n presetDate: K,\n label: fe.label,\n value: fe.value\n }) : (w(), W(\"button\", {\n key: 1,\n type: \"button\",\n style: lt(fe.style || {}),\n class: De([\"dp__btn dp--preset-range\", { \"dp--preset-range-collapsed\": e.collapse }]),\n \"data-test-id\": fe.testId ?? void 0,\n \"data-dp-mobile\": s(C),\n onClick: Xt((xe) => K(fe.value, fe.noTz), [\"prevent\"]),\n onKeydown: (xe) => s(qe)(xe, () => K(fe.value, fe.noTz), !0)\n }, Ke(fe.label), 47, so))\n ], 64))), 128))\n ], 10, oo)) : Q(\"\", !0),\n he(\"div\", {\n ref_key: \"calendarWrapperRef\",\n ref: M,\n class: \"dp__instance_calendar\",\n role: \"document\"\n }, [\n (w(), Te(fa(V.value), He({\n ref_key: \"dynCmpRef\",\n ref: L\n }, i.value, {\n \"flow-step\": s(pe),\n onMount: s(Y),\n onUpdateFlowStep: s(p),\n onResetFlow: s(te),\n onFocusMenu: q,\n onSelectDate: de[0] || (de[0] = (fe) => D.$emit(\"select-date\")),\n onDateUpdate: de[1] || (de[1] = (fe) => D.$emit(\"date-update\", fe)),\n onTooltipOpen: de[2] || (de[2] = (fe) => D.$emit(\"tooltip-open\", fe)),\n onTooltipClose: de[3] || (de[3] = (fe) => D.$emit(\"tooltip-close\", fe)),\n onAutoApply: de[4] || (de[4] = (fe) => D.$emit(\"auto-apply\", fe)),\n onRangeStart: de[5] || (de[5] = (fe) => D.$emit(\"range-start\", fe)),\n onRangeEnd: de[6] || (de[6] = (fe) => D.$emit(\"range-end\", fe)),\n onInvalidFixedRange: de[7] || (de[7] = (fe) => D.$emit(\"invalid-fixed-range\", fe)),\n onTimeUpdate: de[8] || (de[8] = (fe) => D.$emit(\"time-update\")),\n onAmPmChange: de[9] || (de[9] = (fe) => D.$emit(\"am-pm-change\", fe)),\n onTimePickerOpen: de[10] || (de[10] = (fe) => D.$emit(\"time-picker-open\", fe)),\n onTimePickerClose: be,\n onRecalculatePosition: se,\n onUpdateMonthYear: de[11] || (de[11] = (fe) => D.$emit(\"update-month-year\", fe)),\n onAutoApplyInvalid: de[12] || (de[12] = (fe) => D.$emit(\"auto-apply-invalid\", fe)),\n onInvalidDate: de[13] || (de[13] = (fe) => D.$emit(\"invalid-date\", fe)),\n onOverlayToggle: de[14] || (de[14] = (fe) => D.$emit(\"overlay-toggle\", fe)),\n \"onUpdate:internalModelValue\": de[15] || (de[15] = (fe) => D.$emit(\"update:internal-model-value\", fe))\n }), Ge({ _: 2 }, [\n Ce(re.value, (fe, ht) => ({\n name: fe,\n fn: we((xe) => [\n ie(D.$slots, fe, ze(Je({ ...xe })))\n ])\n }))\n ]), 1040, [\"flow-step\", \"onMount\", \"onUpdateFlowStep\", \"onResetFlow\"]))\n ], 512),\n D.$slots[\"right-sidebar\"] ? (w(), W(\"div\", uo, [\n ie(D.$slots, \"right-sidebar\", ze(Je(k.value)))\n ])) : Q(\"\", !0),\n D.$slots[\"action-extra\"] ? (w(), W(\"div\", io, [\n D.$slots[\"action-extra\"] ? ie(D.$slots, \"action-extra\", {\n key: 0,\n selectCurrentDate: E\n }) : Q(\"\", !0)\n ])) : Q(\"\", !0)\n ], 14, lo),\n !D.autoApply || s(T).keepActionRow ? (w(), Te(ir, He({\n key: 3,\n \"menu-mount\": z.value\n }, i.value, {\n \"calendar-width\": A.value,\n onClosePicker: de[16] || (de[16] = (fe) => D.$emit(\"close-picker\")),\n onSelectDate: de[17] || (de[17] = (fe) => D.$emit(\"select-date\")),\n onInvalidSelect: de[18] || (de[18] = (fe) => D.$emit(\"invalid-select\")),\n onSelectNow: E\n }), Ge({ _: 2 }, [\n Ce(s(u), (fe, ht) => ({\n name: fe,\n fn: we((xe) => [\n ie(D.$slots, fe, ze(Je({ ...xe })))\n ])\n }))\n ]), 1040, [\"menu-mount\", \"calendar-width\"])) : Q(\"\", !0)\n ], 46, to));\n }\n});\nvar Et = /* @__PURE__ */ ((e) => (e.center = \"center\", e.left = \"left\", e.right = \"right\", e))(Et || {});\nconst co = ({\n menuRef: e,\n menuRefInner: t,\n inputRef: l,\n pickerWrapperRef: n,\n inline: a,\n emit: f,\n props: i,\n slots: g\n}) => {\n const { defaultedConfig: d } = Oe(i), P = Z({}), v = Z(!1), R = Z({\n top: \"0\",\n left: \"0\"\n }), h = Z(!1), T = qt(i, \"teleportCenter\");\n rt(T, () => {\n R.value = JSON.parse(JSON.stringify({})), L();\n });\n const F = (y) => {\n if (i.teleport) {\n const V = y.getBoundingClientRect();\n return {\n left: V.left + window.scrollX,\n top: V.top + window.scrollY\n };\n }\n return { top: 0, left: 0 };\n }, _ = (y, V) => {\n R.value.left = `${y + V - P.value.width}px`;\n }, C = (y) => {\n R.value.left = `${y}px`;\n }, M = (y, V) => {\n i.position === Et.left && C(y), i.position === Et.right && _(y, V), i.position === Et.center && (R.value.left = `${y + V / 2 - P.value.width / 2}px`);\n }, A = (y) => {\n const { width: V, height: S } = y.getBoundingClientRect(), { top: q, left: k } = F(y);\n return { top: +q, left: +k, width: V, height: S };\n }, m = () => {\n R.value.left = \"50%\", R.value.top = \"50%\", R.value.transform = \"translate(-50%, -50%)\", R.value.position = \"fixed\", delete R.value.opacity;\n }, z = () => {\n const y = Le(l);\n R.value = i.altPosition(y);\n }, L = (y = !0) => {\n if (!a.value.enabled) {\n if (T.value) return m();\n if (i.altPosition !== null) return z();\n if (y) {\n const V = i.teleport ? t.value?.$el : e.value;\n V && (P.value = V.getBoundingClientRect()), f(\"recalculate-position\");\n }\n return ce();\n }\n }, le = ({ inputEl: y, left: V, width: S }) => {\n window.screen.width > 768 && !v.value && M(V, S), ee(y);\n }, U = (y) => {\n const { top: V, left: S, height: q, width: k } = A(y);\n R.value.top = `${q + V + +i.offset}px`, h.value = !1, v.value || (R.value.left = `${S + k / 2 - P.value.width / 2}px`), le({ inputEl: y, left: S, width: k });\n }, $ = (y) => {\n const { top: V, left: S, width: q } = A(y);\n R.value.top = `${V - +i.offset - P.value.height}px`, h.value = !0, le({ inputEl: y, left: S, width: q });\n }, ee = (y) => {\n if (i.autoPosition) {\n const { left: V, width: S } = A(y), { left: q, right: k } = P.value;\n if (!v.value) {\n if (Math.abs(q) !== Math.abs(k)) {\n if (q <= 0)\n return v.value = !0, C(V);\n if (k >= document.documentElement.clientWidth)\n return v.value = !0, _(V, S);\n }\n return M(V, S);\n }\n }\n }, O = () => {\n const y = Le(l);\n if (y) {\n if (i.autoPosition === st.top) return st.top;\n if (i.autoPosition === st.bottom) return st.bottom;\n const { height: V } = P.value, { top: S, height: q } = y.getBoundingClientRect(), se = window.innerHeight - S - q, u = S;\n return V <= se ? st.bottom : V > se && V <= u ? st.top : se >= u ? st.bottom : st.top;\n }\n return st.bottom;\n }, J = (y) => O() === st.bottom ? U(y) : $(y), ce = () => {\n const y = Le(l);\n if (y)\n return i.autoPosition ? J(y) : U(y);\n }, pe = function(y) {\n if (y) {\n const V = y.scrollHeight > y.clientHeight, q = window.getComputedStyle(y).overflowY.indexOf(\"hidden\") !== -1;\n return V && !q;\n }\n return !0;\n }, p = function(y) {\n return !y || y === document.body || y.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? window : pe(y) ? y : p(\n y.assignedSlot && d.value.shadowDom ? y.assignedSlot.parentNode : y.parentNode\n );\n }, Y = (y) => {\n if (y)\n switch (i.position) {\n case Et.left:\n return { left: 0, transform: \"translateX(0)\" };\n case Et.right:\n return { left: `${y.width}px`, transform: \"translateX(-100%)\" };\n default:\n return { left: `${y.width / 2}px`, transform: \"translateX(-50%)\" };\n }\n return {};\n };\n return {\n openOnTop: h,\n menuStyle: R,\n xCorrect: v,\n setMenuPosition: L,\n getScrollableParent: p,\n shadowRender: (y, V, S) => {\n const q = document.createElement(\"div\"), k = Le(l)?.getBoundingClientRect();\n q.setAttribute(\"id\", \"dp--temp-container\");\n const se = n.value?.clientWidth ? n.value : document.body;\n se.append(q);\n const u = Y(k), re = d.value.shadowDom ? Object.keys(g).filter(\n (I) => [\"right-sidebar\", \"left-sidebar\", \"top-extra\", \"action-extra\"].includes(I)\n ) : Object.keys(g), G = tl(\n V,\n {\n ...S,\n shadow: !0,\n style: { opacity: 0, position: \"absolute\", ...u }\n },\n Object.fromEntries(re.map((I) => [I, g[I]]))\n );\n y != null && (G.appContext = y.appContext), nn(G, q), P.value = G.el?.getBoundingClientRect(), nn(null, q), se.removeChild(q);\n }\n };\n}, bt = [\n { name: \"clock-icon\", use: [\"time\", \"calendar\", \"shared\"] },\n { name: \"arrow-left\", use: [\"month-year\", \"calendar\", \"shared\", \"year-mode\"] },\n { name: \"arrow-right\", use: [\"month-year\", \"calendar\", \"shared\", \"year-mode\"] },\n { name: \"arrow-up\", use: [\"time\", \"calendar\", \"month-year\", \"shared\"] },\n { name: \"arrow-down\", use: [\"time\", \"calendar\", \"month-year\", \"shared\"] },\n { name: \"calendar-icon\", use: [\"month-year\", \"time\", \"calendar\", \"shared\", \"year-mode\"] },\n { name: \"day\", use: [\"calendar\", \"shared\"] },\n { name: \"month-overlay-value\", use: [\"calendar\", \"month-year\", \"shared\"] },\n { name: \"year-overlay-value\", use: [\"calendar\", \"month-year\", \"shared\", \"year-mode\"] },\n { name: \"year-overlay\", use: [\"month-year\", \"shared\"] },\n { name: \"month-overlay\", use: [\"month-year\", \"shared\"] },\n { name: \"month-overlay-header\", use: [\"month-year\", \"shared\"] },\n { name: \"year-overlay-header\", use: [\"month-year\", \"shared\"] },\n { name: \"hours-overlay-value\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"hours-overlay-header\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"minutes-overlay-value\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"minutes-overlay-header\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"seconds-overlay-value\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"seconds-overlay-header\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"hours\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"minutes\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"month\", use: [\"calendar\", \"month-year\", \"shared\"] },\n { name: \"year\", use: [\"calendar\", \"month-year\", \"shared\", \"year-mode\"] },\n { name: \"action-buttons\", use: [\"action\"] },\n { name: \"action-preview\", use: [\"action\"] },\n { name: \"calendar-header\", use: [\"calendar\", \"shared\"] },\n { name: \"marker-tooltip\", use: [\"calendar\", \"shared\"] },\n { name: \"action-extra\", use: [\"menu\"] },\n { name: \"time-picker-overlay\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"am-pm-button\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"left-sidebar\", use: [\"menu\"] },\n { name: \"right-sidebar\", use: [\"menu\"] },\n { name: \"month-year\", use: [\"month-year\", \"shared\"] },\n { name: \"time-picker\", use: [\"menu\", \"shared\"] },\n { name: \"action-row\", use: [\"action\"] },\n { name: \"marker\", use: [\"calendar\", \"shared\"] },\n { name: \"quarter\", use: [\"shared\"] },\n { name: \"top-extra\", use: [\"shared\", \"month-year\"] },\n { name: \"tp-inline-arrow-up\", use: [\"shared\", \"time\"] },\n { name: \"tp-inline-arrow-down\", use: [\"shared\", \"time\"] },\n { name: \"menu-header\", use: [\"menu\"] }\n], fo = [{ name: \"trigger\" }, { name: \"input-icon\" }, { name: \"clear-icon\" }, { name: \"dp-input\" }], vo = {\n all: () => bt,\n monthYear: () => bt.filter((e) => e.use.includes(\"month-year\")),\n input: () => fo,\n timePicker: () => bt.filter((e) => e.use.includes(\"time\")),\n action: () => bt.filter((e) => e.use.includes(\"action\")),\n calendar: () => bt.filter((e) => e.use.includes(\"calendar\")),\n menu: () => bt.filter((e) => e.use.includes(\"menu\")),\n shared: () => bt.filter((e) => e.use.includes(\"shared\")),\n yearMode: () => bt.filter((e) => e.use.includes(\"year-mode\"))\n}, et = (e, t, l) => {\n const n = [];\n return vo[t]().forEach((a) => {\n e[a.name] && n.push(a.name);\n }), l?.length && l.forEach((a) => {\n a.slot && n.push(a.slot);\n }), n;\n}, aa = (e) => {\n const t = j(() => (n) => e.value ? n ? e.value.open : e.value.close : \"\"), l = j(() => (n) => e.value ? n ? e.value.menuAppearTop : e.value.menuAppearBottom : \"\");\n return { transitionName: t, showTransition: !!e.value, menuTransition: l };\n}, na = (e, t, l) => {\n const { defaultedRange: n, defaultedTz: a } = Oe(e), f = H(Ze(H(), a.value.timezone)), i = Z([{ month: Me(f), year: ye(f) }]), g = (h) => {\n const T = {\n hours: yt(f),\n minutes: $t(f),\n seconds: 0\n };\n return n.value.enabled ? [T[h], T[h]] : T[h];\n }, d = ea({\n hours: g(\"hours\"),\n minutes: g(\"minutes\"),\n seconds: g(\"seconds\")\n });\n rt(\n n,\n (h, T) => {\n h.enabled !== T.enabled && (d.hours = g(\"hours\"), d.minutes = g(\"minutes\"), d.seconds = g(\"seconds\"));\n },\n { deep: !0 }\n );\n const P = j({\n get: () => e.internalModelValue,\n set: (h) => {\n !e.readonly && !e.disabled && t(\"update:internal-model-value\", h);\n }\n }), v = j(\n () => (h) => i.value[h] ? i.value[h].month : 0\n ), R = j(\n () => (h) => i.value[h] ? i.value[h].year : 0\n );\n return rt(\n P,\n (h, T) => {\n l && JSON.stringify(h ?? {}) !== JSON.stringify(T ?? {}) && l();\n },\n { deep: !0 }\n ), {\n calendars: i,\n time: d,\n modelValue: P,\n month: v,\n year: R,\n today: f\n };\n}, mo = (e, t) => {\n const {\n defaultedMultiCalendars: l,\n defaultedMultiDates: n,\n defaultedUI: a,\n defaultedHighlight: f,\n defaultedTz: i,\n propDates: g,\n defaultedRange: d\n } = Oe(t), { isDisabled: P } = Tt(t), v = Z(null), R = Z(Ze(/* @__PURE__ */ new Date(), i.value.timezone)), h = (c) => {\n !c.current && t.hideOffsetDates || (v.value = c.value);\n }, T = () => {\n v.value = null;\n }, F = (c) => Array.isArray(e.value) && d.value.enabled && e.value[0] && v.value ? c ? Ee(v.value, e.value[0]) : Be(v.value, e.value[0]) : !0, _ = (c, o) => {\n const X = () => e.value ? o ? e.value[0] || null : e.value[1] : null, B = e.value && Array.isArray(e.value) ? X() : null;\n return $e(H(c.value), B);\n }, C = (c) => {\n const o = Array.isArray(e.value) ? e.value[0] : null;\n return c ? !Be(v.value ?? null, o) : !0;\n }, M = (c, o = !0) => (d.value.enabled || t.weekPicker) && Array.isArray(e.value) && e.value.length === 2 ? t.hideOffsetDates && !c.current ? !1 : $e(H(c.value), e.value[o ? 0 : 1]) : d.value.enabled ? _(c, o) && C(o) || $e(c.value, Array.isArray(e.value) ? e.value[0] : null) && F(o) : !1, A = (c, o) => {\n if (Array.isArray(e.value) && e.value[0] && e.value.length === 1) {\n const X = $e(c.value, v.value);\n return o ? Ee(e.value[0], c.value) && X : Be(e.value[0], c.value) && X;\n }\n return !1;\n }, m = (c) => !e.value || t.hideOffsetDates && !c.current ? !1 : d.value.enabled ? t.modelAuto && Array.isArray(e.value) ? $e(c.value, e.value[0] ? e.value[0] : R.value) : !1 : n.value.enabled && Array.isArray(e.value) ? e.value.some((o) => $e(o, c.value)) : $e(c.value, e.value ? e.value : R.value), z = (c) => {\n if (d.value.autoRange || t.weekPicker) {\n if (v.value) {\n if (t.hideOffsetDates && !c.current) return !1;\n const o = kt(v.value, +d.value.autoRange), X = mt(H(v.value), t.weekStart);\n return t.weekPicker ? $e(X[1], H(c.value)) : $e(o, H(c.value));\n }\n return !1;\n }\n return !1;\n }, L = (c) => {\n if (d.value.autoRange || t.weekPicker) {\n if (v.value) {\n const o = kt(v.value, +d.value.autoRange);\n if (t.hideOffsetDates && !c.current) return !1;\n const X = mt(H(v.value), t.weekStart);\n return t.weekPicker ? Ee(c.value, X[0]) && Be(c.value, X[1]) : Ee(c.value, v.value) && Be(c.value, o);\n }\n return !1;\n }\n return !1;\n }, le = (c) => {\n if (d.value.autoRange || t.weekPicker) {\n if (v.value) {\n if (t.hideOffsetDates && !c.current) return !1;\n const o = mt(H(v.value), t.weekStart);\n return t.weekPicker ? $e(o[0], c.value) : $e(v.value, c.value);\n }\n return !1;\n }\n return !1;\n }, U = (c) => xt(e.value, v.value, c.value), $ = () => t.modelAuto && Array.isArray(t.internalModelValue) ? !!t.internalModelValue[0] : !1, ee = () => t.modelAuto ? Rn(t.internalModelValue) : !0, O = (c) => {\n if (t.weekPicker) return !1;\n const o = d.value.enabled ? !M(c) && !M(c, !1) : !0;\n return !P(c.value) && !m(c) && !(!c.current && t.hideOffsetDates) && o;\n }, J = (c) => d.value.enabled ? t.modelAuto ? $() && m(c) : !1 : m(c), ce = (c) => f.value ? Bl(c.value, g.value.highlight) : !1, pe = (c) => {\n const o = P(c.value);\n return o && (typeof f.value == \"function\" ? !f.value(c.value, o) : !f.value.options.highlightDisabled);\n }, p = (c) => typeof f.value == \"function\" ? f.value(c.value) : f.value.weekdays?.includes(c.value.getDay()), Y = (c) => (d.value.enabled || t.weekPicker) && (!(l.value.count > 0) || c.current) && ee() && !(!c.current && t.hideOffsetDates) && !m(c) ? U(c) : !1, te = (c) => {\n if (Array.isArray(e.value) && e.value.length === 1) {\n const { before: o, after: X } = mn(+d.value.maxRange, e.value[0]);\n return Ft(c.value, o) || _t(c.value, X);\n }\n return !1;\n }, y = (c) => {\n if (Array.isArray(e.value) && e.value.length === 1) {\n const { before: o, after: X } = mn(+d.value.minRange, e.value[0]);\n return xt([o, X], e.value[0], c.value);\n }\n return !1;\n }, V = (c) => d.value.enabled && (d.value.maxRange || d.value.minRange) ? d.value.maxRange && d.value.minRange ? te(c) || y(c) : d.value.maxRange ? te(c) : y(c) : !1, S = (c) => {\n const { isRangeStart: o, isRangeEnd: X } = u(c), B = d.value.enabled ? o || X : !1;\n return {\n dp__cell_offset: !c.current,\n dp__pointer: !t.disabled && !(!c.current && t.hideOffsetDates) && !P(c.value) && !V(c),\n dp__cell_disabled: P(c.value) || V(c),\n dp__cell_highlight: !pe(c) && (ce(c) || p(c)) && !J(c) && !B && !le(c) && !(Y(c) && t.weekPicker) && !X,\n dp__cell_highlight_active: !pe(c) && (ce(c) || p(c)) && J(c),\n dp__today: !t.noToday && $e(c.value, R.value) && c.current,\n \"dp--past\": Be(c.value, R.value),\n \"dp--future\": Ee(c.value, R.value)\n };\n }, q = (c) => ({\n dp__active_date: J(c),\n dp__date_hover: O(c)\n }), k = (c) => {\n if (e.value && !Array.isArray(e.value)) {\n const o = mt(e.value, t.weekStart);\n return {\n ...G(c),\n dp__range_start: $e(o[0], c.value),\n dp__range_end: $e(o[1], c.value),\n dp__range_between_week: Ee(c.value, o[0]) && Be(c.value, o[1])\n };\n }\n return {\n ...G(c)\n };\n }, se = (c) => {\n if (e.value && Array.isArray(e.value)) {\n const o = mt(e.value[0], t.weekStart), X = e.value[1] ? mt(e.value[1], t.weekStart) : [];\n return {\n ...G(c),\n dp__range_start: $e(o[0], c.value) || $e(X[0], c.value),\n dp__range_end: $e(o[1], c.value) || $e(X[1], c.value),\n dp__range_between_week: Ee(c.value, o[0]) && Be(c.value, o[1]) || Ee(c.value, X[0]) && Be(c.value, X[1]),\n dp__range_between: Ee(c.value, o[1]) && Be(c.value, X[0])\n };\n }\n return {\n ...G(c)\n };\n }, u = (c) => {\n const o = l.value.count > 0 ? c.current && M(c) && ee() : M(c) && ee(), X = l.value.count > 0 ? c.current && M(c, !1) && ee() : M(c, !1) && ee();\n return { isRangeStart: o, isRangeEnd: X };\n }, re = (c) => {\n const { isRangeStart: o, isRangeEnd: X } = u(c);\n return {\n dp__range_start: o,\n dp__range_end: X,\n dp__range_between: Y(c),\n dp__date_hover: $e(c.value, v.value) && !o && !X && !t.weekPicker,\n dp__date_hover_start: A(c, !0),\n dp__date_hover_end: A(c, !1)\n };\n }, G = (c) => ({\n ...re(c),\n dp__cell_auto_range: L(c),\n dp__cell_auto_range_start: le(c),\n dp__cell_auto_range_end: z(c)\n }), I = (c) => d.value.enabled ? d.value.autoRange ? G(c) : t.modelAuto ? { ...q(c), ...re(c) } : t.weekPicker ? se(c) : re(c) : t.weekPicker ? k(c) : q(c);\n return {\n setHoverDate: h,\n clearHoverDate: T,\n getDayClassData: (c) => t.hideOffsetDates && !c.current ? {} : {\n ...S(c),\n ...I(c),\n [t.dayClass ? t.dayClass(c.value, t.internalModelValue) : \"\"]: !0,\n ...a.value.calendarCell ?? {}\n }\n };\n}, Tt = (e) => {\n const { defaultedFilters: t, defaultedRange: l, propDates: n, defaultedMultiDates: a } = Oe(e), f = (p) => n.value.disabledDates ? typeof n.value.disabledDates == \"function\" ? n.value.disabledDates(H(p)) : !!ca(p, n.value.disabledDates) : !1, i = (p) => n.value.maxDate ? e.yearPicker ? ye(p) > ye(n.value.maxDate) : Ee(p, n.value.maxDate) : !1, g = (p) => n.value.minDate ? e.yearPicker ? ye(p) < ye(n.value.minDate) : Be(p, n.value.minDate) : !1, d = (p) => {\n const Y = i(p), te = g(p), y = f(p), S = t.value.months.map((re) => +re).includes(Me(p)), q = e.disabledWeekDays.length ? e.disabledWeekDays.some((re) => +re === kl(p)) : !1, k = T(p), se = ye(p), u = zn(e.yearRange, se);\n return !(Y || te || y || S || u || q || k);\n }, P = (p, Y) => Be(...wt(n.value.minDate, p, Y)) || $e(...wt(n.value.minDate, p, Y)), v = (p, Y) => Ee(...wt(n.value.maxDate, p, Y)) || $e(...wt(n.value.maxDate, p, Y)), R = (p, Y, te) => {\n let y = !1;\n return n.value.maxDate && te && v(p, Y) && (y = !0), n.value.minDate && !te && P(p, Y) && (y = !0), y;\n }, h = (p, Y, te, y) => {\n let V = !1;\n return y && (n.value.minDate || n.value.maxDate) ? n.value.minDate && n.value.maxDate ? V = R(p, Y, te) : (n.value.minDate && P(p, Y) || n.value.maxDate && v(p, Y)) && (V = !0) : V = !0, V;\n }, T = (p) => Array.isArray(n.value.allowedDates) && !n.value.allowedDates.length ? !0 : n.value.allowedDates ? !ca(p, n.value.allowedDates, On(e.monthPicker, e.yearPicker)) : !1, F = (p) => !d(p), _ = (p) => l.value.noDisabledRange ? !bn({ start: p[0], end: p[1] }).some((te) => F(te)) : !0, C = (p) => {\n if (p) {\n const Y = ye(p);\n return Y >= +e.yearRange[0] && Y <= e.yearRange[1];\n }\n return !0;\n }, M = (p, Y) => !!(Array.isArray(p) && p[Y] && (l.value.maxRange || l.value.minRange) && C(p[Y])), A = (p, Y, te = 0) => {\n if (M(Y, te) && C(p)) {\n const y = bl(p, Y[te]), V = In(Y[te], p), S = V.length === 1 ? 0 : V.filter((k) => F(k)).length, q = Math.abs(y) - (l.value.minMaxRawRange ? 0 : S);\n if (l.value.minRange && l.value.maxRange)\n return q >= +l.value.minRange && q <= +l.value.maxRange;\n if (l.value.minRange) return q >= +l.value.minRange;\n if (l.value.maxRange) return q <= +l.value.maxRange;\n }\n return !0;\n }, m = () => !e.enableTimePicker || e.monthPicker || e.yearPicker || e.ignoreTimeValidation, z = (p) => Array.isArray(p) ? [p[0] ? Ca(p[0]) : null, p[1] ? Ca(p[1]) : null] : Ca(p), L = (p, Y, te) => p.find(\n (y) => +y.hours === yt(Y) && y.minutes === \"*\" ? !0 : +y.minutes === $t(Y) && +y.hours === yt(Y)\n ) && te, le = (p, Y, te) => {\n const [y, V] = p, [S, q] = Y;\n return !L(y, S, te) && !L(V, q, te) && te;\n }, U = (p, Y) => {\n const te = Array.isArray(Y) ? Y : [Y];\n return Array.isArray(e.disabledTimes) ? Array.isArray(e.disabledTimes[0]) ? le(e.disabledTimes, te, p) : !te.some((y) => L(e.disabledTimes, y, p)) : p;\n }, $ = (p, Y) => {\n const te = Array.isArray(Y) ? [Bt(Y[0]), Y[1] ? Bt(Y[1]) : void 0] : Bt(Y), y = !e.disabledTimes(te);\n return p && y;\n }, ee = (p, Y) => e.disabledTimes ? Array.isArray(e.disabledTimes) ? U(Y, p) : $(Y, p) : Y, O = (p) => {\n let Y = !0;\n if (!p || m()) return !0;\n const te = !n.value.minDate && !n.value.maxDate ? z(p) : p;\n return (e.maxTime || n.value.maxDate) && (Y = vn(\n e.maxTime,\n n.value.maxDate,\n \"max\",\n Ne(te),\n Y\n )), (e.minTime || n.value.minDate) && (Y = vn(\n e.minTime,\n n.value.minDate,\n \"min\",\n Ne(te),\n Y\n )), ee(p, Y);\n }, J = (p) => {\n if (!e.monthPicker) return !0;\n let Y = !0;\n const te = H(it(p));\n if (n.value.minDate && n.value.maxDate) {\n const y = H(it(n.value.minDate)), V = H(it(n.value.maxDate));\n return Ee(te, y) && Be(te, V) || $e(te, y) || $e(te, V);\n }\n if (n.value.minDate) {\n const y = H(it(n.value.minDate));\n Y = Ee(te, y) || $e(te, y);\n }\n if (n.value.maxDate) {\n const y = H(it(n.value.maxDate));\n Y = Be(te, y) || $e(te, y);\n }\n return Y;\n }, ce = j(() => (p) => !e.enableTimePicker || e.ignoreTimeValidation ? !0 : O(p)), pe = j(() => (p) => e.monthPicker ? Array.isArray(p) && (l.value.enabled || a.value.enabled) ? !p.filter((te) => !J(te)).length : J(p) : !0);\n return {\n isDisabled: F,\n validateDate: d,\n validateMonthYearInRange: h,\n isDateRangeAllowed: _,\n checkMinMaxRange: A,\n isValidTime: O,\n isTimeValid: ce,\n isMonthValid: pe\n };\n}, ga = () => {\n const e = j(() => (n, a) => n?.includes(a)), t = j(() => (n, a) => n.count ? n.solo ? !0 : a === 0 : !0), l = j(() => (n, a) => n.count ? n.solo ? !0 : a === n.count - 1 : !0);\n return { hideNavigationButtons: e, showLeftIcon: t, showRightIcon: l };\n}, po = (e, t, l) => {\n const n = Z(0), a = ea({\n [Ot.timePicker]: !e.enableTimePicker || e.timePicker || e.monthPicker,\n [Ot.calendar]: !1,\n [Ot.header]: !1\n }), f = j(() => e.monthPicker || e.timePicker), i = (R) => {\n if (e.flow?.length) {\n if (!R && f.value) return v();\n a[R] = !0, Object.keys(a).filter((h) => !a[h]).length || v();\n }\n }, g = () => {\n e.flow?.length && n.value !== -1 && (n.value += 1, t(\"flow-step\", n.value), v()), e.flow?.length === n.value && at().then(() => d());\n }, d = () => {\n n.value = -1;\n }, P = (R, h, ...T) => {\n e.flow[n.value] === R && l.value && l.value[h]?.(...T);\n }, v = (R = 0) => {\n R && (n.value += R), P(je.month, \"toggleMonthPicker\", !0), P(je.year, \"toggleYearPicker\", !0), P(je.calendar, \"toggleTimePicker\", !1, !0), P(je.time, \"toggleTimePicker\", !0, !0);\n const h = e.flow[n.value];\n (h === je.hours || h === je.minutes || h === je.seconds) && P(h, \"toggleTimePicker\", !0, !0, h);\n };\n return { childMount: i, updateFlowStep: g, resetFlow: d, handleFlow: v, flowStep: n };\n}, go = {\n key: 1,\n class: \"dp__input_wrap\"\n}, yo = [\"id\", \"name\", \"inputmode\", \"placeholder\", \"disabled\", \"readonly\", \"required\", \"value\", \"autocomplete\", \"aria-label\", \"aria-disabled\", \"aria-invalid\"], ho = {\n key: 2,\n class: \"dp--clear-btn\"\n}, bo = [\"aria-label\"], ko = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"DatepickerInput\",\n props: {\n isMenuOpen: { type: Boolean, default: !1 },\n inputValue: { type: String, default: \"\" },\n ...va\n },\n emits: [\n \"clear\",\n \"open\",\n \"update:input-value\",\n \"set-input-date\",\n \"close\",\n \"select-date\",\n \"set-empty-date\",\n \"toggle\",\n \"focus-prev\",\n \"focus\",\n \"blur\",\n \"real-blur\",\n \"text-input\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, {\n defaultedTextInput: f,\n defaultedAriaLabels: i,\n defaultedInline: g,\n defaultedConfig: d,\n defaultedRange: P,\n defaultedMultiDates: v,\n defaultedUI: R,\n getDefaultPattern: h,\n getDefaultStartTime: T\n } = Oe(a), { checkMinMaxRange: F } = Tt(a), _ = Z(), C = Z(null), M = Z(!1), A = Z(!1), m = j(\n () => ({\n dp__pointer: !a.disabled && !a.readonly && !f.value.enabled,\n dp__disabled: a.disabled,\n dp__input_readonly: !f.value.enabled,\n dp__input: !0,\n dp__input_not_clearable: !a.clearable,\n dp__input_icon_pad: !a.hideInputIcon,\n dp__input_valid: typeof a.state == \"boolean\" ? a.state : !1,\n dp__input_invalid: typeof a.state == \"boolean\" ? !a.state : !1,\n dp__input_focus: M.value || a.isMenuOpen,\n dp__input_reg: !f.value.enabled,\n ...R.value.input ?? {}\n })\n ), z = () => {\n n(\"set-input-date\", null), a.clearable && a.autoApply && (n(\"set-empty-date\"), _.value = null);\n }, L = (k) => {\n const se = T();\n return Yl(\n k,\n f.value.format ?? h(),\n se ?? En({}, a.enableSeconds),\n a.inputValue,\n A.value,\n a.formatLocale\n );\n }, le = (k) => {\n const { rangeSeparator: se } = f.value, [u, re] = k.split(`${se}`);\n if (u) {\n const G = L(u.trim()), I = re ? L(re.trim()) : void 0;\n if (_t(G, I)) return;\n const x = G && I ? [G, I] : [G];\n F(I, x, 0) && (_.value = G ? x : null);\n }\n }, U = () => {\n A.value = !0;\n }, $ = (k) => {\n if (P.value.enabled)\n le(k);\n else if (v.value.enabled) {\n const se = k.split(\";\");\n _.value = se.map((u) => L(u.trim())).filter((u) => u);\n } else\n _.value = L(k);\n }, ee = (k) => {\n const se = typeof k == \"string\" ? k : k.target?.value;\n se !== \"\" ? (f.value.openMenu && !a.isMenuOpen && n(\"open\"), $(se), n(\"set-input-date\", _.value)) : z(), A.value = !1, n(\"update:input-value\", se), n(\"text-input\", k, _.value);\n }, O = (k) => {\n f.value.enabled ? ($(k.target.value), f.value.enterSubmit && za(_.value) && a.inputValue !== \"\" ? (n(\"set-input-date\", _.value, !0), _.value = null) : f.value.enterSubmit && a.inputValue === \"\" && (_.value = null, n(\"clear\"))) : pe(k);\n }, J = (k, se) => {\n f.value.enabled && f.value.tabSubmit && !se && $(k.target.value), f.value.tabSubmit && za(_.value) && a.inputValue !== \"\" ? (n(\"set-input-date\", _.value, !0, !0), _.value = null) : f.value.tabSubmit && a.inputValue === \"\" && (_.value = null, n(\"clear\", !0));\n }, ce = () => {\n M.value = !0, n(\"focus\"), at().then(() => {\n f.value.enabled && f.value.selectOnFocus && C.value?.select();\n });\n }, pe = (k) => {\n if (Dt(k, d.value, !0), f.value.enabled && f.value.openMenu && !g.value.input) {\n if (f.value.openMenu === \"open\" && !a.isMenuOpen) return n(\"open\");\n if (f.value.openMenu === \"toggle\") return n(\"toggle\");\n } else f.value.enabled || n(\"toggle\");\n }, p = () => {\n n(\"real-blur\"), M.value = !1, (!a.isMenuOpen || g.value.enabled && g.value.input) && n(\"blur\"), a.autoApply && f.value.enabled && _.value && !a.isMenuOpen && (n(\"set-input-date\", _.value), n(\"select-date\"), _.value = null);\n }, Y = (k) => {\n Dt(k, d.value, !0), n(\"clear\");\n }, te = () => {\n n(\"close\");\n }, y = (k) => {\n if (k.key === \"Tab\" && J(k), k.key === \"Enter\" && O(k), k.key === \"Escape\" && f.value.escClose && te(), !f.value.enabled) {\n if (k.code === \"Tab\") return;\n k.preventDefault();\n }\n }, V = () => {\n C.value?.focus({ preventScroll: !0 });\n }, S = (k) => {\n _.value = k;\n }, q = (k) => {\n k.key === Re.tab && J(k, !0);\n };\n return t({\n focusInput: V,\n setParsedDate: S\n }), (k, se) => (w(), W(\"div\", { onClick: pe }, [\n k.$slots.trigger && !k.$slots[\"dp-input\"] && !s(g).enabled ? ie(k.$slots, \"trigger\", { key: 0 }) : Q(\"\", !0),\n !k.$slots.trigger && (!s(g).enabled || s(g).input) ? (w(), W(\"div\", go, [\n k.$slots[\"dp-input\"] && !k.$slots.trigger && (!s(g).enabled || s(g).enabled && s(g).input) ? ie(k.$slots, \"dp-input\", {\n key: 0,\n value: e.inputValue,\n isMenuOpen: e.isMenuOpen,\n onInput: ee,\n onEnter: O,\n onTab: J,\n onClear: Y,\n onBlur: p,\n onKeypress: y,\n onPaste: U,\n onFocus: ce,\n openMenu: () => k.$emit(\"open\"),\n closeMenu: () => k.$emit(\"close\"),\n toggleMenu: () => k.$emit(\"toggle\")\n }) : Q(\"\", !0),\n k.$slots[\"dp-input\"] ? Q(\"\", !0) : (w(), W(\"input\", {\n key: 1,\n id: k.uid ? `dp-input-${k.uid}` : void 0,\n ref_key: \"inputRef\",\n ref: C,\n \"data-test-id\": \"dp-input\",\n name: k.name,\n class: De(m.value),\n inputmode: s(f).enabled ? \"text\" : \"none\",\n placeholder: k.placeholder,\n disabled: k.disabled,\n readonly: k.readonly,\n required: k.required,\n value: e.inputValue,\n autocomplete: k.autocomplete,\n \"aria-label\": s(i)?.input,\n \"aria-disabled\": k.disabled || void 0,\n \"aria-invalid\": k.state === !1 ? !0 : void 0,\n onInput: ee,\n onBlur: p,\n onFocus: ce,\n onKeypress: y,\n onKeydown: se[0] || (se[0] = (u) => y(u)),\n onPaste: U\n }, null, 42, yo)),\n he(\"div\", {\n onClick: se[3] || (se[3] = (u) => n(\"toggle\"))\n }, [\n k.$slots[\"input-icon\"] && !k.hideInputIcon ? (w(), W(\"span\", {\n key: 0,\n class: \"dp__input_icon\",\n onClick: se[1] || (se[1] = (u) => n(\"toggle\"))\n }, [\n ie(k.$slots, \"input-icon\")\n ])) : Q(\"\", !0),\n !k.$slots[\"input-icon\"] && !k.hideInputIcon && !k.$slots[\"dp-input\"] ? (w(), Te(s(jt), {\n key: 1,\n \"aria-label\": s(i)?.calendarIcon,\n class: \"dp__input_icon dp__input_icons\",\n onClick: se[2] || (se[2] = (u) => n(\"toggle\"))\n }, null, 8, [\"aria-label\"])) : Q(\"\", !0)\n ]),\n k.$slots[\"clear-icon\"] && (k.alwaysClearable || e.inputValue && k.clearable && !k.disabled && !k.readonly) ? (w(), W(\"span\", ho, [\n ie(k.$slots, \"clear-icon\", { clear: Y })\n ])) : Q(\"\", !0),\n !k.$slots[\"clear-icon\"] && (k.alwaysClearable || k.clearable && e.inputValue && !k.disabled && !k.readonly) ? (w(), W(\"button\", {\n key: 3,\n \"aria-label\": s(i)?.clearInput,\n class: \"dp--clear-btn\",\n type: \"button\",\n onKeydown: se[4] || (se[4] = (u) => s(qe)(u, () => Y(u), !0, q)),\n onClick: se[5] || (se[5] = Xt((u) => Y(u), [\"prevent\"]))\n }, [\n tt(s(Sn), {\n class: \"dp__input_icons\",\n \"data-test-id\": \"clear-icon\"\n })\n ], 40, bo)) : Q(\"\", !0)\n ])) : Q(\"\", !0)\n ]));\n }\n}), wo = typeof window < \"u\" ? window : void 0, Ea = () => {\n}, Do = (e) => al() ? (nl(e), !0) : !1, Mo = (e, t, l, n) => {\n if (!e) return Ea;\n let a = Ea;\n const f = rt(\n () => s(e),\n (g) => {\n a(), g && (g.removeEventListener(t, l), g.addEventListener(t, l, n), a = () => {\n g.removeEventListener(t, l, n), a = Ea;\n });\n },\n { immediate: !0, flush: \"post\" }\n ), i = () => {\n f(), a();\n };\n return Do(i), i;\n}, $o = (e, t, l, n = {}) => {\n const { window: a = wo, event: f = \"pointerdown\" } = n;\n return a ? Mo(a, f, (g) => {\n const d = Le(e), P = Le(t);\n !d || !P || d === g.target || g.composedPath().includes(d) || g.composedPath().includes(P) || l(g);\n }, { passive: !0 }) : void 0;\n}, Ao = [\"data-dp-mobile\"], To = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"VueDatePicker\",\n props: {\n ...va\n },\n emits: [\n \"update:model-value\",\n \"update:model-timezone-value\",\n \"text-submit\",\n \"closed\",\n \"cleared\",\n \"open\",\n \"focus\",\n \"blur\",\n \"internal-model-change\",\n \"recalculate-position\",\n \"flow-step\",\n \"update-month-year\",\n \"invalid-select\",\n \"invalid-fixed-range\",\n \"tooltip-open\",\n \"tooltip-close\",\n \"time-picker-open\",\n \"time-picker-close\",\n \"am-pm-change\",\n \"range-start\",\n \"range-end\",\n \"date-update\",\n \"invalid-date\",\n \"overlay-toggle\",\n \"text-input\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, f = Yt(), i = Z(!1), g = qt(a, \"modelValue\"), d = qt(a, \"timezone\"), P = Z(null), v = Z(null), R = Z(null), h = Z(!1), T = Z(null), F = Z(!1), _ = Z(!1), C = Z(!1), M = Z(!1), { setMenuFocused: A, setShiftKey: m } = Hn(), { clearArrowNav: z } = At(), { validateDate: L, isValidTime: le } = Tt(a), {\n defaultedTransitions: U,\n defaultedTextInput: $,\n defaultedInline: ee,\n defaultedConfig: O,\n defaultedRange: J,\n defaultedMultiDates: ce\n } = Oe(a), { menuTransition: pe, showTransition: p } = aa(U), { isMobile: Y } = Qn(O), te = ll();\n Ue(() => {\n x(a.modelValue), at().then(() => {\n ee.value.enabled || (u(T.value)?.addEventListener(\"scroll\", K), window?.addEventListener(\"resize\", oe));\n }), ee.value.enabled && (i.value = !0), window?.addEventListener(\"keyup\", ge), window?.addEventListener(\"keydown\", _e);\n }), Ut(() => {\n ee.value.enabled || (u(T.value)?.removeEventListener(\"scroll\", K), window?.removeEventListener(\"resize\", oe)), window?.removeEventListener(\"keyup\", ge), window?.removeEventListener(\"keydown\", _e);\n });\n const y = et(f, \"all\", a.presetDates), V = et(f, \"input\");\n rt(\n [g, d],\n () => {\n x(g.value);\n },\n { deep: !0 }\n );\n const { openOnTop: S, menuStyle: q, xCorrect: k, setMenuPosition: se, getScrollableParent: u, shadowRender: re } = co({\n menuRef: P,\n menuRefInner: v,\n inputRef: R,\n pickerWrapperRef: T,\n inline: ee,\n emit: n,\n props: a,\n slots: f\n }), {\n inputValue: G,\n internalModelValue: I,\n parseExternalModelValue: x,\n emitModelValue: c,\n formatInputValue: o,\n checkBeforeEmit: X\n } = rr(n, a, { isInputFocused: h, isTextInputDate: M }), B = j(\n () => ({\n dp__main: !0,\n dp__theme_dark: a.dark,\n dp__theme_light: !a.dark,\n dp__flex_display: ee.value.enabled,\n \"dp--flex-display-collapsed\": C.value,\n dp__flex_display_with_input: ee.value.input\n })\n ), be = j(() => a.dark ? \"dp__theme_dark\" : \"dp__theme_light\"), Ae = j(() => a.teleport ? {\n to: typeof a.teleport == \"boolean\" ? \"body\" : a.teleport,\n disabled: !a.teleport || ee.value.enabled\n } : {}), ne = j(() => ({ class: \"dp__outer_menu_wrap\" })), r = j(() => ee.value.enabled && (a.timePicker || a.monthPicker || a.yearPicker || a.quarterPicker)), E = () => R.value?.$el?.getBoundingClientRect() ?? { width: 0, left: 0, right: 0 }, K = () => {\n i.value && (O.value.closeOnScroll ? Xe() : se());\n }, oe = () => {\n i.value && se();\n const N = v.value?.$el.getBoundingClientRect().width ?? 0;\n C.value = document.body.offsetWidth <= N;\n }, ge = (N) => {\n N.key === \"Tab\" && !ee.value.enabled && !a.teleport && O.value.tabOutClosesMenu && (T.value.contains(document.activeElement) || Xe()), _.value = N.shiftKey;\n }, _e = (N) => {\n _.value = N.shiftKey;\n }, Ye = () => {\n !a.disabled && !a.readonly && (re(te, hn, a), se(!1), i.value = !0, i.value && n(\"open\"), i.value || xe(), x(a.modelValue));\n }, nt = () => {\n G.value = \"\", xe(), v.value?.onValueCleared(), R.value?.setParsedDate(null), n(\"update:model-value\", null), n(\"update:model-timezone-value\", null), n(\"cleared\"), O.value.closeOnClearValue && Xe();\n }, St = () => {\n const N = I.value;\n return !N || !Array.isArray(N) && L(N) ? !0 : Array.isArray(N) ? ce.value.enabled || N.length === 2 && L(N[0]) && L(N[1]) ? !0 : J.value.partialRange && !a.timePicker ? L(N[0]) : !1 : !1;\n }, D = () => {\n X() && St() ? (c(), Xe()) : n(\"invalid-select\", I.value);\n }, de = (N) => {\n fe(), c(), O.value.closeOnAutoApply && !N && Xe();\n }, fe = () => {\n R.value && $.value.enabled && R.value.setParsedDate(I.value);\n }, ht = (N = !1) => {\n a.autoApply && le(I.value) && St() && (J.value.enabled && Array.isArray(I.value) ? (J.value.partialRange || I.value.length === 2) && de(N) : de(N));\n }, xe = () => {\n $.value.enabled || (I.value = null);\n }, Xe = (N = !1) => {\n N && I.value && O.value.setDateOnMenuClose && D(), ee.value.enabled || (i.value && (i.value = !1, k.value = !1, A(!1), m(!1), z(), n(\"closed\"), G.value && x(g.value)), xe(), n(\"blur\"), v.value?.$el?.remove());\n }, ya = (N, ue, me = !1) => {\n if (!N) {\n I.value = null;\n return;\n }\n const vt = Array.isArray(N) ? !N.some((Pt) => !L(Pt)) : L(N), ct = le(N);\n vt && ct ? (M.value = !0, I.value = N, ue ? (F.value = me, D(), n(\"text-submit\")) : a.autoApply && ht(!0), at().then(() => {\n M.value = !1;\n })) : n(\"invalid-date\", N);\n }, ha = () => {\n a.autoApply && le(I.value) && c(), fe();\n }, la = () => i.value ? Xe() : Ye(), ba = (N) => {\n I.value = N;\n }, ka = () => {\n $.value.enabled && (h.value = !0, o()), n(\"focus\");\n }, wa = () => {\n $.value.enabled && (h.value = !1, x(a.modelValue), F.value && Ol(T.value, _.value)?.focus()), n(\"blur\");\n }, Da = (N) => {\n v.value && v.value.updateMonthYear(0, {\n month: dn(N.month),\n year: dn(N.year)\n });\n }, Ma = (N) => {\n x(N ?? a.modelValue);\n }, an = (N, ue) => {\n v.value?.switchView(N, ue);\n }, b = (N, ue) => O.value.onClickOutside ? O.value.onClickOutside(N, ue) : Xe(!0), ae = (N = 0) => {\n v.value?.handleFlow(N);\n }, ve = () => P;\n return $o(\n P,\n R,\n (N) => b(St, N)\n ), t({\n closeMenu: Xe,\n selectDate: D,\n clearValue: nt,\n openMenu: Ye,\n onScroll: K,\n formatInputValue: o,\n // exposed for testing purposes\n updateInternalModelValue: ba,\n // modify internal modelValue\n setMonthYear: Da,\n parseModel: Ma,\n switchView: an,\n toggleMenu: la,\n handleFlow: ae,\n getDpWrapMenuRef: ve\n }), (N, ue) => (w(), W(\"div\", {\n ref_key: \"pickerWrapperRef\",\n ref: T,\n class: De(B.value),\n \"data-datepicker-instance\": \"\",\n \"data-dp-mobile\": s(Y)\n }, [\n tt(ko, He({\n ref_key: \"inputRef\",\n ref: R,\n \"input-value\": s(G),\n \"onUpdate:inputValue\": ue[0] || (ue[0] = (me) => ln(G) ? G.value = me : null),\n \"is-menu-open\": i.value\n }, N.$props, {\n onClear: nt,\n onOpen: Ye,\n onSetInputDate: ya,\n onSetEmptyDate: s(c),\n onSelectDate: D,\n onToggle: la,\n onClose: Xe,\n onFocus: ka,\n onBlur: wa,\n onRealBlur: ue[1] || (ue[1] = (me) => h.value = !1),\n onTextInput: ue[2] || (ue[2] = (me) => N.$emit(\"text-input\", me))\n }), Ge({ _: 2 }, [\n Ce(s(V), (me, vt) => ({\n name: me,\n fn: we((ct) => [\n ie(N.$slots, me, ze(Je(ct)))\n ])\n }))\n ]), 1040, [\"input-value\", \"is-menu-open\", \"onSetEmptyDate\"]),\n (w(), Te(fa(N.teleport ? rl : \"div\"), ze(Je(Ae.value)), {\n default: we(() => [\n tt(Vt, {\n name: s(pe)(s(S)),\n css: s(p) && !s(ee).enabled\n }, {\n default: we(() => [\n i.value ? (w(), W(\"div\", He({\n key: 0,\n ref_key: \"dpWrapMenuRef\",\n ref: P\n }, ne.value, {\n class: { \"dp--menu-wrapper\": !s(ee).enabled },\n style: s(ee).enabled ? void 0 : s(q)\n }), [\n tt(hn, He({\n ref_key: \"dpMenuRef\",\n ref: v\n }, N.$props, {\n \"internal-model-value\": s(I),\n \"onUpdate:internalModelValue\": ue[3] || (ue[3] = (me) => ln(I) ? I.value = me : null),\n class: { [be.value]: !0, \"dp--menu-wrapper\": N.teleport },\n \"open-on-top\": s(S),\n \"no-overlay-focus\": r.value,\n collapse: C.value,\n \"get-input-rect\": E,\n \"is-text-input-date\": M.value,\n onClosePicker: Xe,\n onSelectDate: D,\n onAutoApply: ht,\n onTimeUpdate: ha,\n onFlowStep: ue[4] || (ue[4] = (me) => N.$emit(\"flow-step\", me)),\n onUpdateMonthYear: ue[5] || (ue[5] = (me) => N.$emit(\"update-month-year\", me)),\n onInvalidSelect: ue[6] || (ue[6] = (me) => N.$emit(\"invalid-select\", s(I))),\n onAutoApplyInvalid: ue[7] || (ue[7] = (me) => N.$emit(\"invalid-select\", me)),\n onInvalidFixedRange: ue[8] || (ue[8] = (me) => N.$emit(\"invalid-fixed-range\", me)),\n onRecalculatePosition: s(se),\n onTooltipOpen: ue[9] || (ue[9] = (me) => N.$emit(\"tooltip-open\", me)),\n onTooltipClose: ue[10] || (ue[10] = (me) => N.$emit(\"tooltip-close\", me)),\n onTimePickerOpen: ue[11] || (ue[11] = (me) => N.$emit(\"time-picker-open\", me)),\n onTimePickerClose: ue[12] || (ue[12] = (me) => N.$emit(\"time-picker-close\", me)),\n onAmPmChange: ue[13] || (ue[13] = (me) => N.$emit(\"am-pm-change\", me)),\n onRangeStart: ue[14] || (ue[14] = (me) => N.$emit(\"range-start\", me)),\n onRangeEnd: ue[15] || (ue[15] = (me) => N.$emit(\"range-end\", me)),\n onDateUpdate: ue[16] || (ue[16] = (me) => N.$emit(\"date-update\", me)),\n onInvalidDate: ue[17] || (ue[17] = (me) => N.$emit(\"invalid-date\", me)),\n onOverlayToggle: ue[18] || (ue[18] = (me) => N.$emit(\"overlay-toggle\", me)),\n onMenuBlur: ue[19] || (ue[19] = (me) => N.$emit(\"blur\"))\n }), Ge({ _: 2 }, [\n Ce(s(y), (me, vt) => ({\n name: me,\n fn: we((ct) => [\n ie(N.$slots, me, ze(Je({ ...ct })))\n ])\n }))\n ]), 1040, [\"internal-model-value\", \"class\", \"open-on-top\", \"no-overlay-focus\", \"collapse\", \"is-text-input-date\", \"onRecalculatePosition\"])\n ], 16)) : Q(\"\", !0)\n ]),\n _: 3\n }, 8, [\"name\", \"css\"])\n ]),\n _: 3\n }, 16))\n ], 10, Ao));\n }\n}), qn = /* @__PURE__ */ (() => {\n const e = To;\n return e.install = (t) => {\n t.component(\"Vue3DatePicker\", e);\n }, e;\n})(), So = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: qn\n}, Symbol.toStringTag, { value: \"Module\" }));\nObject.entries(So).forEach(([e, t]) => {\n e !== \"default\" && (qn[e] = t);\n});\nexport {\n qn as default\n};\n","import { defineComponent, useModel, computed, openBlock, createBlock, unref, mergeModels } from \"vue\";\nimport { N as NcSelect } from \"./NcSelect-BOFzoCwK.mjs\";\nimport { r as register, h as t45, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nregister(t45);\nfunction formatTimezoneId(timezoneId) {\n return timezoneId.slice(timezoneId.indexOf(\"/\") + 1).replaceAll(\"/\", \" - \").replaceAll(\"_\", \" \");\n}\nfunction getTimezones() {\n return Intl.supportedValuesOf(\"timeZone\").filter((tz) => !tz.startsWith(\"Etc/\")).map((timezoneId) => ({\n timezoneId,\n label: formatTimezoneId(timezoneId)\n })).sort((a, b) => a.timezoneId.localeCompare(b.timezoneId));\n}\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcTimezonePicker\",\n props: /* @__PURE__ */ mergeModels({\n additionalTimezones: { default: () => [] },\n uid: { default: createElementId() }\n }, {\n \"modelValue\": { default: \"floating\" },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n const formattedAdditionalTimezones = computed(() => {\n return props.additionalTimezones.map(({ timezoneId, label }) => ({\n timezoneId,\n label\n }));\n });\n const options = computed(() => {\n const timezones = getTimezones();\n timezones.unshift(...formattedAdditionalTimezones.value);\n return timezones;\n });\n function filterBy(option, label, search) {\n const terms = search.trim().split(/\\s+/);\n const values = Object.values(option);\n return terms.every((term) => {\n return values.some((value) => value.toLowerCase().includes(term.toLowerCase()));\n });\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcSelect, {\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),\n \"aria-label-combobox\": unref(t)(\"Search for time zone\"),\n clearable: false,\n filterBy,\n multiple: false,\n options: options.value,\n placeholder: unref(t)(\"Type to search time zone\"),\n uid: __props.uid,\n reduce: (option) => option.timezoneId,\n label: \"label\"\n }, null, 8, [\"modelValue\", \"aria-label-combobox\", \"options\", \"placeholder\", \"uid\", \"reduce\"]);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcTimezonePicker.vue_vue_type_script_setup_true_lang-Csd1JQe6.mjs.map\n","import '../assets/NcDateTimePicker-HT1ZTE-Z.css';\nimport { defineComponent, useModel, useTemplateRef, computed, openBlock, createElementBlock, createVNode, unref, mergeProps, createSlots, withCtx, createTextVNode, toDisplayString, createBlock, Teleport, createElementVNode, mergeModels } from \"vue\";\nimport { x as mdiChevronUp, y as mdiChevronDown, c as mdiChevronRight, z as mdiChevronLeft, A as mdiClock, B as mdiCalendarBlank, b as mdiClose } from \"./mdi-CpchYUUV.mjs\";\nimport { getCanonicalLocale, getFirstDay, getDayNamesMin, getDayNames } from \"@nextcloud/l10n\";\nimport VueDatePicker from \"@vuepic/vue-datepicker\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { _ as _sfc_main$1 } from \"./NcTimezonePicker.vue_vue_type_script_setup_true_lang-Csd1JQe6.mjs\";\nimport { r as register, y as t13, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t13);\nconst _hoisted_1 = { class: \"vue-date-time-picker__wrapper\" };\nconst _hoisted_2 = {\n ref: \"target\",\n class: \"vue-date-time-picker__wrapper vue-date-time-picker__wrapper--teleport\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcDateTimePicker\",\n props: /* @__PURE__ */ mergeModels({\n appendToBody: { type: Boolean },\n ariaLabel: { default: t(\"Datepicker input\") },\n ariaLabelMenu: { default: t(\"Datepicker menu\") },\n clearable: { type: Boolean },\n confirm: { type: Boolean },\n format: { type: [String, Function], default: void 0 },\n locale: { default: getCanonicalLocale() },\n max: { default: void 0 },\n min: { default: void 0 },\n minuteStep: { default: 10 },\n modelValue: { default: null },\n placeholder: { default: void 0 },\n showTimezoneSelect: { type: Boolean },\n showWeekNumber: { type: Boolean },\n type: { default: \"date\" },\n inline: { type: Boolean, default: false }\n }, {\n \"timezoneId\": { default: \"UTC\" },\n \"timezoneIdModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"update:modelValue\", \"update:timezoneId\", \"blur\"], [\"update:timezoneId\"]),\n setup(__props, { emit: __emit }) {\n const timezoneId = useModel(__props, \"timezoneId\");\n const props = __props;\n const emit = __emit;\n const targetElement = useTemplateRef(\"target\");\n const pickerInstance = useTemplateRef(\"picker\");\n const value = computed(() => {\n if (props.modelValue === null && props.clearable) {\n return null;\n }\n if (props.type === \"week\") {\n const date = props.modelValue instanceof Date ? props.modelValue : /* @__PURE__ */ new Date();\n const end = new Date(date);\n end.setUTCDate(date.getUTCDate() + 6);\n return [date, end];\n } else if (props.type === \"year\") {\n const date = props.modelValue instanceof Date ? props.modelValue : /* @__PURE__ */ new Date();\n return date.getUTCFullYear();\n } else if (props.type === \"month\") {\n const date = props.modelValue instanceof Date ? props.modelValue : /* @__PURE__ */ new Date();\n return { year: date.getUTCFullYear(), month: date.getUTCMonth() };\n } else if (props.type === \"time\") {\n const time = props.modelValue instanceof Date ? props.modelValue : /* @__PURE__ */ new Date();\n return {\n hours: time.getHours(),\n minutes: time.getMinutes(),\n seconds: time.getSeconds()\n };\n } else if (props.type === \"time-range\") {\n const time = [props.modelValue].flat();\n if (time.length !== 2) {\n const start = /* @__PURE__ */ new Date();\n const end = new Date(start);\n end.setHours(end.getHours() + 1);\n time.splice(0, 2, start, end);\n }\n return time.map((date) => ({\n hours: date.getHours(),\n minutes: date.getMinutes(),\n seconds: date.getSeconds()\n }));\n } else if (props.type.endsWith(\"-range\")) {\n if (props.modelValue === void 0) {\n const start = /* @__PURE__ */ new Date();\n const end = new Date(start);\n end.setUTCDate(start.getUTCDate() + 7);\n return [start, end];\n }\n return props.modelValue;\n }\n return props.modelValue ?? /* @__PURE__ */ new Date();\n });\n const placeholderFallback = computed(() => {\n if (props.type === \"date\") {\n return t(\"Select date\");\n } else if (props.type === \"time\") {\n return t(\"Select time\");\n } else if (props.type === \"datetime\") {\n return t(\"Select date and time\");\n } else if (props.type === \"week\") {\n return t(\"Select week\");\n } else if (props.type === \"month\") {\n return t(\"Select month\");\n } else if (props.type === \"year\") {\n return t(\"Select year\");\n } else if (props.type.endsWith(\"-range\")) {\n return t(\"Select time range\");\n }\n return t(\"Select date and time\");\n });\n const realFormat = computed(() => {\n if (props.format) {\n return props.format;\n } else if (props.type === \"week\") {\n return \"RR-II\";\n }\n let formatter;\n if (props.type === \"date\" || props.type === \"date-range\") {\n formatter = new Intl.DateTimeFormat(getCanonicalLocale(), { dateStyle: \"medium\" });\n } else if (props.type === \"time\" || props.type === \"time-range\") {\n formatter = new Intl.DateTimeFormat(getCanonicalLocale(), { timeStyle: \"short\" });\n } else if (props.type === \"datetime\" || props.type === \"datetime-range\") {\n formatter = new Intl.DateTimeFormat(getCanonicalLocale(), { dateStyle: \"medium\", timeStyle: \"short\" });\n } else if (props.type === \"month\") {\n formatter = new Intl.DateTimeFormat(getCanonicalLocale(), { year: \"numeric\", month: \"2-digit\" });\n } else if (props.type === \"year\") {\n formatter = new Intl.DateTimeFormat(getCanonicalLocale(), { year: \"numeric\" });\n }\n if (formatter) {\n return (input) => Array.isArray(input) ? formatter.formatRange(input[0], input[1]) : formatter.format(input);\n }\n return void 0;\n });\n const pickerType = computed(() => ({\n timePicker: props.type === \"time\" || props.type === \"time-range\",\n yearPicker: props.type === \"year\",\n monthPicker: props.type === \"month\",\n weekPicker: props.type === \"week\",\n range: props.type.endsWith(\"-range\") && {\n // do not use partial ranges (meaning after selecting the start [Date, null] will be emitted)\n // if this is needed someday we can enable it,\n // but its not covered by our component interface (props / events) documentation so just disabled for now.\n partialRange: false\n },\n enableTimePicker: !(props.type === \"date\" || props.type === \"date-range\"),\n flow: props.type === \"datetime\" ? [\"calendar\", \"time\"] : void 0\n }));\n const minTime = computed(() => props.min && { hours: props.min.getHours(), minutes: props.min.getMinutes(), seconds: props.min.getSeconds() });\n const maxTime = computed(() => props.max && { hours: props.max.getHours(), minutes: props.max.getMinutes(), seconds: props.max.getSeconds() });\n function onUpdateModelValue(value2) {\n if (value2 === null) {\n return emit(\"update:modelValue\", null);\n }\n if (props.type === \"time\") {\n emit(\"update:modelValue\", formatLibraryTime(value2));\n } else if (props.type === \"time-range\") {\n const start = formatLibraryTime(value2[0]);\n const end = formatLibraryTime(value2[1]);\n if (end.getTime() < start.getTime()) {\n end.setDate(end.getDate() + 1);\n }\n emit(\"update:modelValue\", [start, end]);\n } else if (props.type === \"month\") {\n const data = value2;\n emit(\"update:modelValue\", new Date(data.year, data.month, 1));\n } else if (props.type === \"year\") {\n emit(\"update:modelValue\", new Date(value2, 0));\n } else if (props.type === \"week\") {\n emit(\"update:modelValue\", value2[0]);\n } else {\n emit(\"update:modelValue\", value2);\n }\n }\n function formatLibraryTime(time) {\n const date = /* @__PURE__ */ new Date();\n date.setHours(time.hours);\n date.setMinutes(time.minutes);\n date.setSeconds(time.seconds);\n return date;\n }\n const weekStart = getFirstDay();\n const dayNames = [...getDayNamesMin()];\n for (let i = 0; i < weekStart; i++) {\n dayNames.push(dayNames.shift());\n }\n const weekNumName = t(\"W\");\n const ariaLabels = computed(() => ({\n toggleOverlay: t(\"Toggle overlay\"),\n menu: props.ariaLabelMenu,\n input: props.ariaLabel,\n openTimePicker: t(\"Open time picker\"),\n closeTimePicker: t(\"Close time Picker\"),\n incrementValue: (type) => {\n if (type === \"hours\") {\n return t(\"Increment hours\");\n } else if (type === \"minutes\") {\n return t(\"Increment minutes\");\n }\n return t(\"Increment seconds\");\n },\n decrementValue: (type) => {\n if (type === \"hours\") {\n return t(\"Decrement hours\");\n } else if (type === \"minutes\") {\n return t(\"Decrement minutes\");\n }\n return t(\"Decrement seconds\");\n },\n openTpOverlay: (type) => {\n if (type === \"hours\") {\n return t(\"Open hours overlay\");\n } else if (type === \"minutes\") {\n return t(\"Open minutes overlay\");\n }\n return t(\"Open seconds overlay\");\n },\n amPmButton: t(\"Switch AM/PM mode\"),\n openYearsOverlay: t(\"Open years overlay\"),\n openMonthsOverlay: t(\"Open months overlay\"),\n nextMonth: t(\"Next month\"),\n prevMonth: t(\"Previous month\"),\n nextYear: t(\"Next year\"),\n prevYear: t(\"Previous year\"),\n weekDay: (day) => getDayNames()[day],\n clearInput: t(\"Clear value\"),\n calendarIcon: t(\"Calendar icon\"),\n timePicker: t(\"Time picker\"),\n monthPicker: (overlay) => overlay ? t(\"Month picker overlay\") : t(\"Month picker\"),\n yearPicker: (overlay) => overlay ? t(\"Year picker overlay\") : t(\"Year picker\")\n }));\n function selectDate() {\n pickerInstance.value.selectDate();\n }\n function cancelSelection() {\n pickerInstance.value.closeMenu();\n }\n const calcMinMaxTime = computed(() => {\n if (props.type === \"datetime\") {\n return {\n minDate: props.min,\n maxDate: props.max,\n minTime: props.min && value.value && sameDay(props.min, value.value) ? minTime.value : void 0,\n maxTime: props.max && value.value && sameDay(props.max, value.value) ? maxTime.value : void 0\n };\n }\n if (props.type === \"datetime-range\") {\n return {\n minDate: props.min,\n maxDate: props.max,\n minTime: props.min && value.value ? sameDay(props.min, value.value[0]) ? minTime.value : void 0 : void 0,\n maxTime: props.max && value.value ? sameDay(props.max, value.value[1]) ? maxTime.value : void 0 : void 0\n };\n }\n if (props.type === \"time\" || props.type === \"time-range\") {\n return {\n minTime: props.min ? minTime.value : void 0,\n maxTime: props.max ? maxTime.value : void 0\n };\n }\n return {\n minDate: props.min,\n maxDate: props.max\n };\n });\n function sameDay(a, b) {\n return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createVNode(unref(VueDatePicker), mergeProps({\n ref: \"picker\",\n \"aria-labels\": ariaLabels.value,\n autoApply: !__props.confirm,\n class: [\"vue-date-time-picker\", { \"vue-date-time-picker--clearable\": __props.clearable }],\n cancelText: unref(t)(\"Cancel\"),\n clearable: __props.clearable,\n dayNames,\n placeholder: __props.placeholder ?? placeholderFallback.value,\n format: realFormat.value,\n locale: __props.locale,\n minDate: calcMinMaxTime.value.minDate,\n maxDate: calcMinMaxTime.value.maxDate,\n minTime: calcMinMaxTime.value.minTime,\n maxTime: calcMinMaxTime.value.maxTime,\n minutesIncrement: __props.minuteStep,\n modelValue: value.value,\n nowButtonLabel: unref(t)(\"Now\"),\n selectText: unref(t)(\"Pick\"),\n sixWeeks: \"fair\",\n inline: __props.inline,\n teleport: __props.appendToBody ? targetElement.value || void 0 : false,\n textInput: \"\",\n weekNumName: unref(weekNumName),\n weekNumbers: __props.showWeekNumber ? { type: \"iso\" } : void 0,\n weekStart: unref(weekStart)\n }, pickerType.value, {\n \"onUpdate:modelValue\": onUpdateModelValue,\n onBlur: _cache[1] || (_cache[1] = ($event) => emit(\"blur\"))\n }), createSlots({\n \"action-buttons\": withCtx(() => [\n createVNode(unref(NcButton), {\n size: \"small\",\n variant: \"tertiary\",\n onClick: cancelSelection\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Cancel\")), 1)\n ]),\n _: 1\n }),\n createVNode(unref(NcButton), {\n size: \"small\",\n variant: \"primary\",\n onClick: selectDate\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Pick\")), 1)\n ]),\n _: 1\n })\n ]),\n \"clear-icon\": withCtx(({ clear }) => [\n createVNode(unref(NcButton), {\n \"aria-label\": unref(t)(\"Clear value\"),\n variant: \"tertiary-no-background\",\n onClick: clear\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n inline: \"\",\n path: unref(mdiClose),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"])\n ]),\n \"input-icon\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: unref(mdiCalendarBlank),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n \"clock-icon\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n inline: \"\",\n path: unref(mdiClock),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n \"arrow-left\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n inline: \"\",\n path: unref(mdiChevronLeft),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n \"arrow-right\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n inline: \"\",\n path: unref(mdiChevronRight),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n \"arrow-down\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n inline: \"\",\n path: unref(mdiChevronDown),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n \"arrow-up\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n inline: \"\",\n path: unref(mdiChevronUp),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n _: 2\n }, [\n __props.showTimezoneSelect ? {\n name: \"action-extra\",\n fn: withCtx(() => [\n createVNode(_sfc_main$1, {\n modelValue: timezoneId.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => timezoneId.value = $event),\n class: \"vue-date-time-picker__timezone\",\n appendToBody: false,\n inputLabel: unref(t)(\"Time zone\")\n }, null, 8, [\"modelValue\", \"inputLabel\"])\n ]),\n key: \"0\"\n } : void 0\n ]), 1040, [\"aria-labels\", \"autoApply\", \"class\", \"cancelText\", \"clearable\", \"placeholder\", \"format\", \"locale\", \"minDate\", \"maxDate\", \"minTime\", \"maxTime\", \"minutesIncrement\", \"modelValue\", \"nowButtonLabel\", \"selectText\", \"inline\", \"teleport\", \"weekNumName\", \"weekNumbers\", \"weekStart\"]),\n (openBlock(), createBlock(Teleport, {\n to: \"body\",\n disabled: !__props.appendToBody\n }, [\n createElementVNode(\"div\", _hoisted_2, null, 512)\n ], 8, [\"disabled\"]))\n ]);\n };\n }\n});\nconst NcDateTimePicker = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-e6654786\"]]);\nexport {\n NcDateTimePicker as N\n};\n//# sourceMappingURL=NcDateTimePicker-CK4rhfEB.mjs.map\n"],"names":["millisecondsInWeek","millisecondsInDay","millisecondsInMinute","millisecondsInHour","millisecondsInSecond","constructFromSymbol","constructFrom","date","value","toDate","argument","context","addDays","amount","options","_date","addMonths","dayOfMonth","endOfDesiredMonth","daysInMonth","add","duration","years","months","weeks","days","hours","minutes","seconds","dateWithMonths","dateWithDays","minutesToAdd","msToAdd","addMilliseconds","addHours","defaultOptions","getDefaultOptions","startOfWeek","weekStartsOn","day","diff","startOfISOWeek","getISOWeekYear","year","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","getTimezoneOffsetInMilliseconds","utcDate","normalizeDates","dates","normalize","startOfDay","differenceInCalendarDays","laterDate","earlierDate","laterDate_","earlierDate_","laterStartOfDay","earlierStartOfDay","laterTimestamp","earlierTimestamp","startOfISOWeekYear","fourthOfJanuary","addQuarters","addYears","compareAsc","dateLeft","dateRight","isDate","isValid","getQuarter","differenceInCalendarYears","differenceInYears","sign","partial","result","normalizeInterval","interval","start","end","eachDayOfInterval","reversed","endTime","step","startOfQuarter","currentMonth","month","eachQuarterOfInterval","startOfMonth","endOfYear","startOfYear","date_","endOfWeek","endOfQuarter","formatDistanceLocale","formatDistance","token","count","tokenValue","buildFormatLongFn","args","width","dateFormats","timeFormats","dateTimeFormats","formatLong","formatRelativeLocale","formatRelative","_baseDate","_options","buildLocalizeFn","valuesArray","defaultWidth","index","eraValues","quarterValues","monthValues","dayValues","dayPeriodValues","formattingDayPeriodValues","ordinalNumber","dirtyNumber","number","rem100","localize","quarter","buildMatchFn","string","matchPattern","matchResult","matchedString","parsePatterns","key","findIndex","pattern","findKey","rest","object","predicate","array","buildMatchPatternFn","parseResult","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","match","enUS","getDayOfYear","getISOWeek","getWeekYear","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfWeekYear","firstWeek","getWeek","addLeadingZeros","targetLength","output","lightFormatters","signedYear","dayPeriodEnumValue","numberOfDigits","milliseconds","fractionalSeconds","dayPeriodEnum","formatters","era","signedWeekYear","weekYear","twoDigitYear","isoWeekYear","week","isoWeek","dayOfYear","dayOfWeek","localDayOfWeek","isoDayOfWeek","_localize","timezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","timestamp","offset","delimiter","absOffset","dateLongFormatter","timeLongFormatter","dateTimeLongFormatter","datePattern","timePattern","dateTimeFormat","longFormatters","dayOfYearTokenRE","weekYearTokenRE","throwTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","warnOrThrowProtectedError","format","input","_message","message","subject","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","formatStr","locale","defaultLocale","originalDate","parts","substring","firstCharacter","longFormatter","cleanEscapedString","formatterOptions","part","formatter","matched","getDay","getDaysInMonth","monthIndex","lastDayOfMonth","getInternalDefaultOptions","getHours","getISODay","getMinutes","getMonth","getSeconds","getYear","isAfter","dateToCompare","isBefore","isEqual","leftDate","rightDate","transpose","constructor","isConstructor","TIMEZONE_UNIT_PRIORITY","Setter","_utcDate","ValueSetter","validateValue","setValue","priority","subPriority","flags","DateTimezoneSetter","reference","Parser","dateString","_value","EraParser","numericPatterns","timezonePatterns","mapValue","parseFnResult","mapFn","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","n","parseNDigitsSigned","dayPeriodEnumToHours","dayPeriod","normalizeTwoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","rangeEndCentury","isPreviousCentury","isLeapYearIndex","YearParser","valueCallback","normalizedTwoDigitYear","LocalWeekYearParser","ISOWeekYearParser","_flags","firstWeekOfYear","ExtendedYearParser","QuarterParser","StandAloneQuarterParser","MonthParser","StandAloneMonthParser","setWeek","LocalWeekParser","setISOWeek","ISOWeekParser","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","DateParser","isLeapYear","DayOfYearParser","setDay","currentDay","dayIndex","delta","DayParser","LocalDayParser","wholeWeekDays","StandAloneLocalDayParser","setISODay","ISODayParser","AMPMParser","AMPMMidnightParser","DayPeriodParser","Hour1to12Parser","isPM","Hour0to23Parser","Hour0To11Parser","Hour1To24Parser","MinuteParser","SecondParser","FractionOfSecondParser","ISOTimezoneWithZParser","ISOTimezoneParser","TimestampSecondsParser","TimestampMillisecondsParser","parsers","notWhitespaceRegExp","parse","dateStr","referenceDate","invalidDate","subFnOptions","setters","tokens","usedTokens","parser","incompatibleTokens","incompatibleToken","usedToken","uniquePrioritySetters","setter","a","b","setterArray","isSameQuarter","dateLeft_","dateRight_","subDays","setMonth","midMonth","set","values","setHours","setMilliseconds","setMinutes","setSeconds","setYear","subMonths","sub","withoutMonths","withoutDays","minutesToSub","msToSub","subYears","jt","Jn","w","W","he","Sn","Ua","Va","ja","Ka","Ga","Ze","Qa","l","La","H","wl","Fe","Dl","Ml","i","ot","st","Ot","je","$l","Qe","Re","Lt","un","Al","ft","Tl","f","qa","Ja","Pn","g","d","Sl","Le","s","Pl","Rn","Xa","Ne","dn","cn","Cn","Rl","Zt","Ht","Dt","Cl","Ol","Fa","Za","Ta","ca","Bl","qe","_l","On","Bn","fn","Na","da","dl","Se","Yl","Il","ol","Mt","ul","il","wn","Dn","Be","Ft","$e","Nt","Ee","_t","xt","it","Sa","Bt","yt","$t","zt","_n","ye","Me","Yn","Wt","In","bn","El","Ct","mt","Wa","kn","En","wt","pt","sl","ut","Nn","Jt","Ll","Nl","Ln","It","oa","za","Fl","Pa","Ra","vn","Ca","zl","Hl","Fn","xa","Ha","mn","cl","kt","zn","Kt","ea","Hn","j","Pe","Oa","Z","sa","Ba","_a","Ya","Ve","Ie","At","M","A","P","v","pn","Wl","gn","Ul","Vl","jl","Kl","Gl","Ql","ql","Xl","Jl","Zl","xl","er","Ia","tr","ar","nr","lr","Oe","U","$","C","z","R","h","T","F","_","m","L","rr","qt","rt","x","o","X","S","fl","B","k","q","le","ee","O","J","ce","pe","p","Y","te","y","V","se","be","Ae","u","re","G","I","or","Tt","Mn","$n","va","dt","sr","ur","ir","We","Ue","Ut","ie","ze","He","ke","lt","Q","gt","Ke","dr","cr","fr","vr","ta","ga","Zn","at","c","De","Xt","Ce","ua","ia","mr","ma","pr","Qt","gr","Wn","aa","Te","we","xn","tt","Vt","Ge","en","tn","pa","Un","Vn","jn","An","Gt","vl","yr","na","hr","Yt","et","Je","br","kr","wr","Dr","Mr","$r","Ar","Tr","Sr","Pr","r","E","K","oe","Tn","ml","ge","_e","Ye","nt","ne","fa","Rr","Cr","Or","Br","Kn","Gn","_r","Yr","Ir","Er","Nr","Lr","Fr","zr","Hr","Wr","Ur","Vr","jr","Kr","Gr","pl","gl","yn","Qr","ae","ve","N","ue","me","ct","Pt","$a","Rt","ra","Aa","Xn","vt","xe","St","D","fe","ht","Xe","ya","ha","la","ba","ka","wa","Da","Ma","qr","Xr","mo","Jr","rn","sn","yl","hl","on","Zr","xr","eo","Qn","to","ao","no","lo","ro","oo","so","uo","io","hn","de","po","el","Et","co","tl","nn","bt","fo","vo","kl","bl","go","yo","ho","bo","ko","wo","Ea","Do","al","nl","Mo","$o","Ao","To","ll","an","ln","rl","qn","So","register","t45","formatTimezoneId","timezoneId","getTimezones","tz","_sfc_main","defineComponent","mergeModels","createElementId","__props","modelValue","useModel","props","formattedAdditionalTimezones","computed","label","timezones","filterBy","option","search","terms","term","_ctx","_cache","openBlock","createBlock","NcSelect","$event","unref","t","t13","_hoisted_1","_hoisted_2","getCanonicalLocale","__emit","emit","targetElement","useTemplateRef","pickerInstance","time","placeholderFallback","realFormat","pickerType","minTime","maxTime","onUpdateModelValue","value2","formatLibraryTime","data","weekStart","getFirstDay","dayNames","getDayNamesMin","weekNumName","ariaLabels","type","getDayNames","overlay","selectDate","cancelSelection","calcMinMaxTime","sameDay","createElementBlock","createVNode","VueDatePicker","mergeProps","createSlots","withCtx","NcButton","createTextVNode","toDisplayString","clear","NcIconSvgWrapper","mdiClose","mdiCalendarBlank","mdiClock","mdiChevronLeft","mdiChevronRight","mdiChevronDown","mdiChevronUp","_sfc_main$1","Teleport","createElementVNode","NcDateTimePicker","_export_sfc"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123]} \ No newline at end of file +{"version":3,"file":"index-CQct0mOs.chunk.mjs","sources":["../node_modules/date-fns/constants.js","../node_modules/date-fns/constructFrom.js","../node_modules/date-fns/toDate.js","../node_modules/date-fns/addDays.js","../node_modules/date-fns/addMonths.js","../node_modules/date-fns/add.js","../node_modules/date-fns/addMilliseconds.js","../node_modules/date-fns/addHours.js","../node_modules/date-fns/_lib/defaultOptions.js","../node_modules/date-fns/startOfWeek.js","../node_modules/date-fns/startOfISOWeek.js","../node_modules/date-fns/getISOWeekYear.js","../node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js","../node_modules/date-fns/_lib/normalizeDates.js","../node_modules/date-fns/startOfDay.js","../node_modules/date-fns/differenceInCalendarDays.js","../node_modules/date-fns/startOfISOWeekYear.js","../node_modules/date-fns/addQuarters.js","../node_modules/date-fns/addYears.js","../node_modules/date-fns/compareAsc.js","../node_modules/date-fns/isDate.js","../node_modules/date-fns/isValid.js","../node_modules/date-fns/getQuarter.js","../node_modules/date-fns/differenceInCalendarYears.js","../node_modules/date-fns/differenceInYears.js","../node_modules/date-fns/_lib/normalizeInterval.js","../node_modules/date-fns/eachDayOfInterval.js","../node_modules/date-fns/startOfQuarter.js","../node_modules/date-fns/eachQuarterOfInterval.js","../node_modules/date-fns/startOfMonth.js","../node_modules/date-fns/endOfYear.js","../node_modules/date-fns/startOfYear.js","../node_modules/date-fns/endOfWeek.js","../node_modules/date-fns/endOfQuarter.js","../node_modules/date-fns/locale/en-US/_lib/formatDistance.js","../node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../node_modules/date-fns/locale/en-US/_lib/formatLong.js","../node_modules/date-fns/locale/en-US/_lib/formatRelative.js","../node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../node_modules/date-fns/locale/en-US/_lib/localize.js","../node_modules/date-fns/locale/_lib/buildMatchFn.js","../node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../node_modules/date-fns/locale/en-US/_lib/match.js","../node_modules/date-fns/locale/en-US.js","../node_modules/date-fns/getDayOfYear.js","../node_modules/date-fns/getISOWeek.js","../node_modules/date-fns/getWeekYear.js","../node_modules/date-fns/startOfWeekYear.js","../node_modules/date-fns/getWeek.js","../node_modules/date-fns/_lib/addLeadingZeros.js","../node_modules/date-fns/_lib/format/lightFormatters.js","../node_modules/date-fns/_lib/format/formatters.js","../node_modules/date-fns/_lib/format/longFormatters.js","../node_modules/date-fns/_lib/protectedTokens.js","../node_modules/date-fns/format.js","../node_modules/date-fns/getDay.js","../node_modules/date-fns/getDaysInMonth.js","../node_modules/date-fns/getDefaultOptions.js","../node_modules/date-fns/getHours.js","../node_modules/date-fns/getISODay.js","../node_modules/date-fns/getMinutes.js","../node_modules/date-fns/getMonth.js","../node_modules/date-fns/getSeconds.js","../node_modules/date-fns/getYear.js","../node_modules/date-fns/isAfter.js","../node_modules/date-fns/isBefore.js","../node_modules/date-fns/isEqual.js","../node_modules/date-fns/transpose.js","../node_modules/date-fns/parse/_lib/Setter.js","../node_modules/date-fns/parse/_lib/Parser.js","../node_modules/date-fns/parse/_lib/parsers/EraParser.js","../node_modules/date-fns/parse/_lib/constants.js","../node_modules/date-fns/parse/_lib/utils.js","../node_modules/date-fns/parse/_lib/parsers/YearParser.js","../node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js","../node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js","../node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js","../node_modules/date-fns/parse/_lib/parsers/QuarterParser.js","../node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js","../node_modules/date-fns/parse/_lib/parsers/MonthParser.js","../node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js","../node_modules/date-fns/setWeek.js","../node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js","../node_modules/date-fns/setISOWeek.js","../node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js","../node_modules/date-fns/parse/_lib/parsers/DateParser.js","../node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js","../node_modules/date-fns/setDay.js","../node_modules/date-fns/parse/_lib/parsers/DayParser.js","../node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js","../node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js","../node_modules/date-fns/setISODay.js","../node_modules/date-fns/parse/_lib/parsers/ISODayParser.js","../node_modules/date-fns/parse/_lib/parsers/AMPMParser.js","../node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js","../node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js","../node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js","../node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js","../node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js","../node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js","../node_modules/date-fns/parse/_lib/parsers/MinuteParser.js","../node_modules/date-fns/parse/_lib/parsers/SecondParser.js","../node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js","../node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js","../node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js","../node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js","../node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js","../node_modules/date-fns/parse/_lib/parsers.js","../node_modules/date-fns/parse.js","../node_modules/date-fns/isSameQuarter.js","../node_modules/date-fns/subDays.js","../node_modules/date-fns/setMonth.js","../node_modules/date-fns/set.js","../node_modules/date-fns/setHours.js","../node_modules/date-fns/setMilliseconds.js","../node_modules/date-fns/setMinutes.js","../node_modules/date-fns/setSeconds.js","../node_modules/date-fns/setYear.js","../node_modules/date-fns/subMonths.js","../node_modules/date-fns/sub.js","../node_modules/date-fns/subYears.js","../node_modules/@vuepic/vue-datepicker/dist/vue-datepicker.js","../node_modules/@nextcloud/vue/dist/chunks/NcTimezonePicker.vue_vue_type_script_setup_true_lang-Csd1JQe6.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDateTimePicker-CK4rhfEB.mjs"],"sourcesContent":["/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n","import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (date && typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n // [TODO] Get rid of `toDate` or `constructFrom`?\n return constructFrom(context || argument, argument);\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addDays} function options.\n */\n\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\n * @param options - An object with options\n *\n * @returns The new date with the days added\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport function addDays(date, amount, options) {\n const _date = toDate(date, options?.in);\n if (isNaN(amount)) return constructFrom(options?.in || date, NaN);\n\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n if (!amount) return _date;\n\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addMonths} function options.\n */\n\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of months to be added.\n * @param options - The options object\n *\n * @returns The new date with the months added\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n *\n * // Add one month to 30 January 2023:\n * const result = addMonths(new Date(2023, 0, 30), 1)\n * //=> Tue Feb 28 2023 00:00:00\n */\nexport function addMonths(date, amount, options) {\n const _date = toDate(date, options?.in);\n if (isNaN(amount)) return constructFrom(options?.in || date, NaN);\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return _date;\n }\n const dayOfMonth = _date.getDate();\n\n // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n const endOfDesiredMonth = constructFrom(options?.in || date, _date.getTime());\n endOfDesiredMonth.setMonth(_date.getMonth() + amount + 1, 0);\n const daysInMonth = endOfDesiredMonth.getDate();\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n _date.setFullYear(\n endOfDesiredMonth.getFullYear(),\n endOfDesiredMonth.getMonth(),\n dayOfMonth,\n );\n return _date;\n }\n}\n\n// Fallback for modularized imports:\nexport default addMonths;\n","import { addDays } from \"./addDays.js\";\nimport { addMonths } from \"./addMonths.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link add} function options.\n */\n\n/**\n * @name add\n * @category Common Helpers\n * @summary Add the specified years, months, weeks, days, hours, minutes, and seconds to the given date.\n *\n * @description\n * Add the specified years, months, weeks, days, hours, minutes, and seconds to the given date.\n *\n * @typeParam DateType - The `Date` type the function operates on. Gets inferred from passed arguments. Allows using extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param duration - The object with years, months, weeks, days, hours, minutes, and seconds to be added.\n * @param options - An object with options\n *\n * @returns The new date with the seconds added\n *\n * @example\n * // Add the following duration to 1 September 2014, 10:19:50\n * const result = add(new Date(2014, 8, 1, 10, 19, 50), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30,\n * })\n * //=> Thu Jun 15 2017 15:29:20\n */\nexport function add(date, duration, options) {\n const {\n years = 0,\n months = 0,\n weeks = 0,\n days = 0,\n hours = 0,\n minutes = 0,\n seconds = 0,\n } = duration;\n\n // Add years and months\n const _date = toDate(date, options?.in);\n const dateWithMonths =\n months || years ? addMonths(_date, months + years * 12) : _date;\n\n // Add weeks and days\n const dateWithDays =\n days || weeks ? addDays(dateWithMonths, days + weeks * 7) : dateWithMonths;\n\n // Add days, hours, minutes, and seconds\n const minutesToAdd = minutes + hours * 60;\n const secondsToAdd = seconds + minutesToAdd * 60;\n const msToAdd = secondsToAdd * 1000;\n\n return constructFrom(options?.in || date, +dateWithDays + msToAdd);\n}\n\n// Fallback for modularized imports:\nexport default add;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addMilliseconds} function options.\n */\n\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of milliseconds to be added.\n * @param options - The options object\n *\n * @returns The new date with the milliseconds added\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport function addMilliseconds(date, amount, options) {\n return constructFrom(options?.in || date, +toDate(date) + amount);\n}\n\n// Fallback for modularized imports:\nexport default addMilliseconds;\n","import { addMilliseconds } from \"./addMilliseconds.js\";\nimport { millisecondsInHour } from \"./constants.js\";\n\n/**\n * The {@link addHours} function options.\n */\n\n/**\n * @name addHours\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of hours to be added\n * @param options - An object with options\n *\n * @returns The new date with the hours added\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * const result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\nexport function addHours(date, amount, options) {\n return addMilliseconds(date, amount * millisecondsInHour, options);\n}\n\n// Fallback for modularized imports:\nexport default addHours;\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfISOWeek} function options.\n */\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date, options) {\n return startOfWeek(date, { ...options, weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeekYear} function options.\n */\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(_date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(_date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { toDate } from \"../toDate.js\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","import { constructFrom } from \"../constructFrom.js\";\n\nexport function normalizeDates(context, ...dates) {\n const normalize = constructFrom.bind(\n null,\n context || dates.find((date) => typeof date === \"object\"),\n );\n return dates.map(normalize);\n}\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfDay} function options.\n */\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { millisecondsInDay } from \"./constants.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link differenceInCalendarDays} function options.\n */\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - The options object\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n\n const laterStartOfDay = startOfDay(laterDate_);\n const earlierStartOfDay = startOfDay(earlierDate_);\n\n const laterTimestamp =\n +laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay);\n const earlierTimestamp =\n +earlierStartOfDay - getTimezoneOffsetInMilliseconds(earlierStartOfDay);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { getISOWeekYear } from \"./getISOWeekYear.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\n\n/**\n * The {@link startOfISOWeekYear} function options.\n */\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date, options) {\n const year = getISOWeekYear(date, options);\n const fourthOfJanuary = constructFrom(options?.in || date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","import { addMonths } from \"./addMonths.js\";\n\n/**\n * The {@link addQuarters} function options.\n */\n\n/**\n * @name addQuarters\n * @category Quarter Helpers\n * @summary Add the specified number of year quarters to the given date.\n *\n * @description\n * Add the specified number of year quarters to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of quarters to be added.\n * @param options - An object with options\n *\n * @returns The new date with the quarters added\n *\n * @example\n * // Add 1 quarter to 1 September 2014:\n * const result = addQuarters(new Date(2014, 8, 1), 1)\n * //=; Mon Dec 01 2014 00:00:00\n */\nexport function addQuarters(date, amount, options) {\n return addMonths(date, amount * 3, options);\n}\n\n// Fallback for modularized imports:\nexport default addQuarters;\n","import { addMonths } from \"./addMonths.js\";\n\n/**\n * The {@link addYears} function options.\n */\n\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The date to be changed\n * @param amount - The amount of years to be added.\n * @param options - The options\n *\n * @returns The new date with the years added\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\nexport function addYears(date, amount, options) {\n return addMonths(date, amount * 12, options);\n}\n\n// Fallback for modularized imports:\nexport default addYears;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * @param dateLeft - The first date to compare\n * @param dateRight - The second date to compare\n *\n * @returns The result of the comparison\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\nexport function compareAsc(dateLeft, dateRight) {\n const diff = +toDate(dateLeft) - +toDate(dateRight);\n\n if (diff < 0) return -1;\n else if (diff > 0) return 1;\n\n // Return 0 if diff is 0; return NaN if diff is NaN\n return diff;\n}\n\n// Fallback for modularized imports:\nexport default compareAsc;\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","import { isDate } from \"./isDate.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertible into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n return !((!isDate(date) && typeof date !== \"number\") || isNaN(+toDate(date)));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getQuarter} function options.\n */\n\n/**\n * @name getQuarter\n * @category Quarter Helpers\n * @summary Get the year quarter of the given date.\n *\n * @description\n * Get the year quarter of the given date.\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The quarter\n *\n * @example\n * // Which quarter is 2 July 2014?\n * const result = getQuarter(new Date(2014, 6, 2));\n * //=> 3\n */\nexport function getQuarter(date, options) {\n const _date = toDate(date, options?.in);\n const quarter = Math.trunc(_date.getMonth() / 3) + 1;\n return quarter;\n}\n\n// Fallback for modularized imports:\nexport default getQuarter;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\n\n/**\n * The {@link differenceInCalendarYears} function options.\n */\n\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - An object with options\n\n * @returns The number of calendar years\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * );\n * //=> 2\n */\nexport function differenceInCalendarYears(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return laterDate_.getFullYear() - earlierDate_.getFullYear();\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarYears;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { compareAsc } from \"./compareAsc.js\";\nimport { differenceInCalendarYears } from \"./differenceInCalendarYears.js\";\n\n/**\n * The {@link differenceInYears} function options.\n */\n\n/**\n * @name differenceInYears\n * @category Year Helpers\n * @summary Get the number of full years between the given dates.\n *\n * @description\n * Get the number of full years between the given dates.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - An object with options\n *\n * @returns The number of full years\n *\n * @example\n * // How many full years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInYears(new Date(2015, 1, 11), new Date(2013, 11, 31))\n * //=> 1\n */\nexport function differenceInYears(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n\n // -1 if the left date is earlier than the right date\n // 2023-12-31 - 2024-01-01 = -1\n const sign = compareAsc(laterDate_, earlierDate_);\n\n // First calculate the difference in calendar years\n // 2024-01-01 - 2023-12-31 = 1 year\n const diff = Math.abs(differenceInCalendarYears(laterDate_, earlierDate_));\n\n // Now we need to calculate if the difference is full. To do that we set\n // both dates to the same year and check if the both date's month and day\n // form a full year.\n laterDate_.setFullYear(1584);\n earlierDate_.setFullYear(1584);\n\n // For it to be true, when the later date is indeed later than the earlier date\n // (2026-02-01 - 2023-12-10 = 3 years), the difference is full if\n // the normalized later date is also later than the normalized earlier date.\n // In our example, 1584-02-01 is earlier than 1584-12-10, so the difference\n // is partial, hence we need to subtract 1 from the difference 3 - 1 = 2.\n const partial = compareAsc(laterDate_, earlierDate_) === -sign;\n\n const result = sign * (diff - +partial);\n\n // Prevent negative zero\n return result === 0 ? 0 : result;\n}\n\n// Fallback for modularized imports:\nexport default differenceInYears;\n","import { normalizeDates } from \"./normalizeDates.js\";\n\nexport function normalizeInterval(context, interval) {\n const [start, end] = normalizeDates(context, interval.start, interval.end);\n return { start, end };\n}\n","import { normalizeInterval } from \"./_lib/normalizeInterval.js\";\nimport { constructFrom } from \"./constructFrom.js\";\n\n/**\n * The {@link eachDayOfInterval} function options.\n */\n\n/**\n * The {@link eachDayOfInterval} function result type. It resolves the proper data type.\n * It uses the first argument date object type, starting from the date argument,\n * then the start interval date, and finally the end interval date. If\n * a context function is passed, it uses the context function return type.\n */\n\n/**\n * @name eachDayOfInterval\n * @category Interval Helpers\n * @summary Return the array of dates within the specified time interval.\n *\n * @description\n * Return the array of dates within the specified time interval.\n *\n * @typeParam IntervalType - Interval type.\n * @typeParam Options - Options type.\n *\n * @param interval - The interval.\n * @param options - An object with options.\n *\n * @returns The array with starts of days from the day of the interval start to the day of the interval end\n *\n * @example\n * // Each day between 6 October 2014 and 10 October 2014:\n * const result = eachDayOfInterval({\n * start: new Date(2014, 9, 6),\n * end: new Date(2014, 9, 10)\n * })\n * //=> [\n * // Mon Oct 06 2014 00:00:00,\n * // Tue Oct 07 2014 00:00:00,\n * // Wed Oct 08 2014 00:00:00,\n * // Thu Oct 09 2014 00:00:00,\n * // Fri Oct 10 2014 00:00:00\n * // ]\n */\nexport function eachDayOfInterval(interval, options) {\n const { start, end } = normalizeInterval(options?.in, interval);\n\n let reversed = +start > +end;\n const endTime = reversed ? +start : +end;\n const date = reversed ? end : start;\n date.setHours(0, 0, 0, 0);\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+date <= endTime) {\n dates.push(constructFrom(start, date));\n date.setDate(date.getDate() + step);\n date.setHours(0, 0, 0, 0);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n\n// Fallback for modularized imports:\nexport default eachDayOfInterval;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfQuarter} function options.\n */\n\n/**\n * @name startOfQuarter\n * @category Quarter Helpers\n * @summary Return the start of a year quarter for the given date.\n *\n * @description\n * Return the start of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a quarter\n *\n * @example\n * // The start of a quarter for 2 September 2014 11:55:00:\n * const result = startOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Jul 01 2014 00:00:00\n */\nexport function startOfQuarter(date, options) {\n const _date = toDate(date, options?.in);\n const currentMonth = _date.getMonth();\n const month = currentMonth - (currentMonth % 3);\n _date.setMonth(month, 1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfQuarter;\n","import { normalizeInterval } from \"./_lib/normalizeInterval.js\";\nimport { addQuarters } from \"./addQuarters.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { startOfQuarter } from \"./startOfQuarter.js\";\n\n/**\n * The {@link eachQuarterOfInterval} function options.\n */\n\n/**\n * The {@link eachQuarterOfInterval} function result type. It resolves the proper data type.\n * It uses the first argument date object type, starting from the date argument,\n * then the start interval date, and finally the end interval date. If\n * a context function is passed, it uses the context function return type.\n */\n\n/**\n * @name eachQuarterOfInterval\n * @category Interval Helpers\n * @summary Return the array of quarters within the specified time interval.\n *\n * @description\n * Return the array of quarters within the specified time interval.\n *\n * @typeParam IntervalType - Interval type.\n * @typeParam Options - Options type.\n *\n * @param interval - The interval\n * @param options - An object with options\n *\n * @returns The array with starts of quarters from the quarter of the interval start to the quarter of the interval end\n *\n * @example\n * // Each quarter within interval 6 February 2014 - 10 August 2014:\n * const result = eachQuarterOfInterval({\n * start: new Date(2014, 1, 6),\n * end: new Date(2014, 7, 10),\n * })\n * //=> [\n * // Wed Jan 01 2014 00:00:00,\n * // Tue Apr 01 2014 00:00:00,\n * // Tue Jul 01 2014 00:00:00,\n * // ]\n */\nexport function eachQuarterOfInterval(interval, options) {\n const { start, end } = normalizeInterval(options?.in, interval);\n\n let reversed = +start > +end;\n const endTime = reversed ? +startOfQuarter(start) : +startOfQuarter(end);\n let date = reversed ? startOfQuarter(end) : startOfQuarter(start);\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+date <= endTime) {\n dates.push(constructFrom(start, date));\n date = addQuarters(date, step);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n\n// Fallback for modularized imports:\nexport default eachQuarterOfInterval;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfMonth} function options.\n */\n\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date. The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments.\n * Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed,\n * or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a month\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfMonth(date, options) {\n const _date = toDate(date, options?.in);\n _date.setDate(1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfMonth;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link endOfYear} function options.\n */\n\n/**\n * @name endOfYear\n * @category Year Helpers\n * @summary Return the end of a year for the given date.\n *\n * @description\n * Return the end of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The end of a year\n *\n * @example\n * // The end of a year for 2 September 2014 11:55:00:\n * const result = endOfYear(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Wed Dec 31 2014 23:59:59.999\n */\nexport function endOfYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n _date.setFullYear(year + 1, 0, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfYear;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfYear} function options.\n */\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date, options) {\n const date_ = toDate(date, options?.in);\n date_.setFullYear(date_.getFullYear(), 0, 1);\n date_.setHours(0, 0, 0, 0);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link endOfWeek} function options.\n */\n\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of a week\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nexport function endOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n\n _date.setDate(_date.getDate() + diff);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfWeek;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link endOfQuarter} function options.\n */\n\n/**\n * @name endOfQuarter\n * @category Quarter Helpers\n * @summary Return the end of a year quarter for the given date.\n *\n * @description\n * Return the end of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of a quarter\n *\n * @example\n * // The end of a quarter for 2 September 2014 11:55:00:\n * const result = endOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nexport function endOfQuarter(date, options) {\n const _date = toDate(date, options?.in);\n const currentMonth = _date.getMonth();\n const month = currentMonth - (currentMonth % 3) + 3;\n _date.setMonth(month, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfQuarter;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./en-US/_lib/formatDistance.js\";\nimport { formatLong } from \"./en-US/_lib/formatLong.js\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.js\";\nimport { localize } from \"./en-US/_lib/localize.js\";\nimport { match } from \"./en-US/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.js\";\nimport { startOfYear } from \"./startOfYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDayOfYear} function options.\n */\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date, options) {\n const _date = toDate(date, options?.in);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeek} function options.\n */\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(options?.in || date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(options?.in || date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (+_date >= +startOfNextYear) {\n return year + 1;\n } else if (+_date >= +startOfThisYear) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getWeekYear } from \"./getWeekYear.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(options?.in || date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { startOfWeekYear } from \"./startOfWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\nexport function getWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","import { addLeadingZeros } from \"../addLeadingZeros.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n","import { getDayOfYear } from \"../../getDayOfYear.js\";\nimport { getISOWeek } from \"../../getISOWeek.js\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.js\";\nimport { getWeek } from \"../../getWeek.js\";\nimport { getWeekYear } from \"../../getWeekYear.js\";\n\nimport { addLeadingZeros } from \"../addLeadingZeros.js\";\nimport { lightFormatters } from \"./lightFormatters.js\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(+date / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n return addLeadingZeros(+date, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n","const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { formatters } from \"./_lib/format/formatters.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { isValid } from \"./isValid.js\";\nimport { toDate } from \"./toDate.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date, options?.in);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDay} function options.\n */\n\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The day of week, 0 represents Sunday\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * const result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\nexport function getDay(date, options) {\n return toDate(date, options?.in).getDay();\n}\n\n// Fallback for modularized imports:\nexport default getDay;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDaysInMonth} function options.\n */\n\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date, considering the context if provided.\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The number of days in a month\n *\n * @example\n * // How many days are in February 2000?\n * const result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\nexport function getDaysInMonth(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n const monthIndex = _date.getMonth();\n const lastDayOfMonth = constructFrom(_date, 0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}\n\n// Fallback for modularized imports:\nexport default getDaysInMonth;\n","import { getDefaultOptions as getInternalDefaultOptions } from \"./_lib/defaultOptions.js\";\n\n/**\n * @name getDefaultOptions\n * @category Common Helpers\n * @summary Get default options.\n * @pure false\n *\n * @description\n * Returns an object that contains defaults for\n * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`\n * arguments for all functions.\n *\n * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions).\n *\n * @returns The default options\n *\n * @example\n * const result = getDefaultOptions()\n * //=> {}\n *\n * @example\n * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 })\n * const result = getDefaultOptions()\n * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 }\n */\nexport function getDefaultOptions() {\n return Object.assign({}, getInternalDefaultOptions());\n}\n\n// Fallback for modularized imports:\nexport default getDefaultOptions;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getHours} function options.\n */\n\n/**\n * @name getHours\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The hours\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * const result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\nexport function getHours(date, options) {\n return toDate(date, options?.in).getHours();\n}\n\n// Fallback for modularized imports:\nexport default getHours;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISODay} function options.\n */\n\n/**\n * @name getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * const result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nexport function getISODay(date, options) {\n const day = toDate(date, options?.in).getDay();\n return day === 0 ? 7 : day;\n}\n\n// Fallback for modularized imports:\nexport default getISODay;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getMinutes} function options.\n */\n\n/**\n * @name getMinutes\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The minutes\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * const result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\nexport function getMinutes(date, options) {\n return toDate(date, options?.in).getMinutes();\n}\n\n// Fallback for modularized imports:\nexport default getMinutes;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getMonth} function options.\n */\n\n/**\n * @name getMonth\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The month index (0-11)\n *\n * @example\n * // Which month is 29 February 2012?\n * const result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\nexport function getMonth(date, options) {\n return toDate(date, options?.in).getMonth();\n}\n\n// Fallback for modularized imports:\nexport default getMonth;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name getSeconds\n * @category Second Helpers\n * @summary Get the seconds of the given date.\n *\n * @description\n * Get the seconds of the given date.\n *\n * @param date - The given date\n *\n * @returns The seconds\n *\n * @example\n * // Get the seconds of 29 February 2012 11:45:05.123:\n * const result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 5\n */\nexport function getSeconds(date) {\n return toDate(date).getSeconds();\n}\n\n// Fallback for modularized imports:\nexport default getSeconds;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getYear} function options.\n */\n\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The year\n *\n * @example\n * // Which year is 2 July 2014?\n * const result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\nexport function getYear(date, options) {\n return toDate(date, options?.in).getFullYear();\n}\n\n// Fallback for modularized imports:\nexport default getYear;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @param date - The date that should be after the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is after the second date\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nexport function isAfter(date, dateToCompare) {\n return +toDate(date) > +toDate(dateToCompare);\n}\n\n// Fallback for modularized imports:\nexport default isAfter;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @param date - The date that should be before the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is before the second date\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nexport function isBefore(date, dateToCompare) {\n return +toDate(date) < +toDate(dateToCompare);\n}\n\n// Fallback for modularized imports:\nexport default isBefore;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * @param dateLeft - The first date to compare\n * @param dateRight - The second date to compare\n *\n * @returns The dates are equal\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * const result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0),\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\nexport function isEqual(leftDate, rightDate) {\n return +toDate(leftDate) === +toDate(rightDate);\n}\n\n// Fallback for modularized imports:\nexport default isEqual;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name transpose\n * @category Generic Helpers\n * @summary Transpose the date to the given constructor.\n *\n * @description\n * The function transposes the date to the given constructor. It helps you\n * to transpose the date in the system time zone to say `UTCDate` or any other\n * date extension.\n *\n * @typeParam InputDate - The input `Date` type derived from the passed argument.\n * @typeParam ResultDate - The result `Date` type derived from the passed constructor.\n *\n * @param date - The date to use values from\n * @param constructor - The date constructor to use\n *\n * @returns Date transposed to the given constructor\n *\n * @example\n * // Create July 10, 2022 00:00 in locale time zone\n * const date = new Date(2022, 6, 10)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)'\n *\n * @example\n * // Transpose the date to July 10, 2022 00:00 in UTC\n * transpose(date, UTCDate)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)'\n */\nexport function transpose(date, constructor) {\n const date_ = isConstructor(constructor)\n ? new constructor(0)\n : constructFrom(constructor, 0);\n date_.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n date_.setHours(\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds(),\n );\n return date_;\n}\n\nfunction isConstructor(constructor) {\n return (\n typeof constructor === \"function\" &&\n constructor.prototype?.constructor === constructor\n );\n}\n\n// Fallback for modularized imports:\nexport default transpose;\n","import { constructFrom } from \"../../constructFrom.js\";\nimport { transpose } from \"../../transpose.js\";\n\nconst TIMEZONE_UNIT_PRIORITY = 10;\n\nexport class Setter {\n subPriority = 0;\n\n validate(_utcDate, _options) {\n return true;\n }\n}\n\nexport class ValueSetter extends Setter {\n constructor(\n value,\n\n validateValue,\n\n setValue,\n\n priority,\n subPriority,\n ) {\n super();\n this.value = value;\n this.validateValue = validateValue;\n this.setValue = setValue;\n this.priority = priority;\n if (subPriority) {\n this.subPriority = subPriority;\n }\n }\n\n validate(date, options) {\n return this.validateValue(date, this.value, options);\n }\n\n set(date, flags, options) {\n return this.setValue(date, flags, this.value, options);\n }\n}\n\nexport class DateTimezoneSetter extends Setter {\n priority = TIMEZONE_UNIT_PRIORITY;\n subPriority = -1;\n\n constructor(context, reference) {\n super();\n this.context = context || ((date) => constructFrom(reference, date));\n }\n\n set(date, flags) {\n if (flags.timestampIsSet) return date;\n return constructFrom(date, transpose(date, this.context));\n }\n}\n","import { ValueSetter } from \"./Setter.js\";\n\nexport class Parser {\n run(dateString, token, match, options) {\n const result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n\n return {\n setter: new ValueSetter(\n result.value,\n this.validate,\n this.set,\n this.priority,\n this.subPriority,\n ),\n rest: result.rest,\n };\n }\n\n validate(_utcDate, _value, _options) {\n return true;\n }\n}\n","import { Parser } from \"../Parser.js\";\n\nexport class EraParser extends Parser {\n priority = 140;\n\n parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return (\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n\n // A, B\n case \"GGGGG\":\n return match.era(dateString, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return (\n match.era(dateString, { width: \"wide\" }) ||\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n }\n }\n\n set(date, flags, value) {\n flags.era = value;\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"R\", \"u\", \"t\", \"T\"];\n}\n","export const numericPatterns = {\n month: /^(1[0-2]|0?\\d)/, // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/, // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/, // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/, // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/, // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/, // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/, // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/, // 0 to 12\n minute: /^[0-5]?\\d/, // 0 to 59\n second: /^[0-5]?\\d/, // 0 to 59\n\n singleDigit: /^\\d/, // 0 to 9\n twoDigits: /^\\d{1,2}/, // 0 to 99\n threeDigits: /^\\d{1,3}/, // 0 to 999\n fourDigits: /^\\d{1,4}/, // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/, // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/, // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/, // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/, // 0 to 9999, -0 to -9999\n};\n\nexport const timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/,\n};\n","import {\n millisecondsInHour,\n millisecondsInMinute,\n millisecondsInSecond,\n} from \"../../constants.js\";\n\nimport { numericPatterns } from \"./constants.js\";\n\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest,\n };\n}\n\nexport function parseNumericPattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseTimezonePattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === \"Z\") {\n return {\n value: 0,\n rest: dateString.slice(1),\n };\n }\n\n const sign = matchResult[1] === \"+\" ? 1 : -1;\n const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n\n return {\n value:\n sign *\n (hours * millisecondsInHour +\n minutes * millisecondsInMinute +\n seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\n\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^-?\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case \"morning\":\n return 4;\n case \"evening\":\n return 17;\n case \"pm\":\n case \"noon\":\n case \"afternoon\":\n return 12;\n case \"am\":\n case \"midnight\":\n case \"night\":\n default:\n return 0;\n }\n}\n\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n const isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n\n let result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n const rangeEnd = absCurrentYear + 50;\n const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100;\n const isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport class YearParser extends Parser {\n priority = 130;\n incompatibleTokens = [\"Y\", \"R\", \"u\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"yy\",\n });\n\n switch (token) {\n case \"y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value) {\n const currentYear = date.getFullYear();\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(normalizedTwoDigitYear, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { getWeekYear } from \"../../../getWeekYear.js\";\n\nimport { startOfWeek } from \"../../../startOfWeek.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n\n// Local week-numbering year\nexport class LocalWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"YY\",\n });\n\n switch (token) {\n case \"Y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"Yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value, options) {\n const currentYear = getWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(\n normalizedTwoDigitYear,\n 0,\n options.firstWeekContainsDate,\n );\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, options.firstWeekContainsDate);\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { startOfISOWeek } from \"../../../startOfISOWeek.js\";\nimport { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigitsSigned } from \"../utils.js\";\n\n// ISO week-numbering year\nexport class ISOWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"R\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n const firstWeekOfYear = constructFrom(date, 0);\n firstWeekOfYear.setFullYear(value, 0, 4);\n firstWeekOfYear.setHours(0, 0, 0, 0);\n return startOfISOWeek(firstWeekOfYear);\n }\n\n incompatibleTokens = [\n \"G\",\n \"y\",\n \"Y\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigitsSigned } from \"../utils.js\";\n\nexport class ExtendedYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"u\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"G\", \"y\", \"Y\", \"R\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigits } from \"../utils.js\";\n\nexport class QuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n case \"QQ\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigits } from \"../utils.js\";\n\nexport class StandAloneQuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n case \"qq\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class MonthParser extends Parser {\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"L\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"M\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"MM\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // J, F, ..., D\n case \"MMMMM\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class StandAloneMonthParser extends Parser {\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"LL\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // J, F, ..., D\n case \"LLLLL\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getWeek } from \"./getWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setWeek} function options.\n */\n\n/**\n * @name setWeek\n * @category Week Helpers\n * @summary Set the local week to the given date.\n *\n * @description\n * Set the local week to the given date, saving the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param week - The week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the local week set\n *\n * @example\n * // Set the 1st week to 2 January 2005 with default options:\n * const result = setWeek(new Date(2005, 0, 2), 1)\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // Set the 1st week to 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January:\n * const result = setWeek(new Date(2005, 0, 2), 1, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sun Jan 4 2004 00:00:00\n */\nexport function setWeek(date, week, options) {\n const date_ = toDate(date, options?.in);\n const diff = getWeek(date_, options) - week;\n date_.setDate(date_.getDate() - diff * 7);\n return toDate(date_, options?.in);\n}\n\n// Fallback for modularized imports:\nexport default setWeek;\n","import { setWeek } from \"../../../setWeek.js\";\nimport { startOfWeek } from \"../../../startOfWeek.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\n// Local week of year\nexport class LocalWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"w\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"wo\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value, options) {\n return startOfWeek(setWeek(date, value, options), options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { getISOWeek } from \"./getISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setISOWeek} function options.\n */\n\n/**\n * @name setISOWeek\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The `Date` type of the context function.\n *\n * @param date - The date to be changed\n * @param week - The ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the ISO week set\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * const result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nexport function setISOWeek(date, week, options) {\n const _date = toDate(date, options?.in);\n const diff = getISOWeek(_date, options) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setISOWeek;\n","import { setISOWeek } from \"../../../setISOWeek.js\";\nimport { startOfISOWeek } from \"../../../startOfISOWeek.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\n// ISO week of year\nexport class ISOWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"I\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"Io\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value) {\n return startOfISOWeek(setISOWeek(date, value));\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.js\";\n\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [\n 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,\n];\n\n// Day of the month\nexport class DateParser extends Parser {\n priority = 90;\n subPriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"d\":\n return parseNumericPattern(numericPatterns.date, dateString);\n case \"do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n const month = date.getMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n\n set(date, _flags, value) {\n date.setDate(value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.js\";\n\nexport class DayOfYearParser extends Parser {\n priority = 90;\n\n subpriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"D\":\n case \"DD\":\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case \"Do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n\n set(date, _flags, value) {\n date.setMonth(0, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"E\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { addDays } from \"./addDays.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setDay} function options.\n */\n\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the week of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the day of the week set\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * const result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setDay(date, day, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const date_ = toDate(date, options?.in);\n const currentDay = date_.getDay();\n\n const remainder = day % 7;\n const dayIndex = (remainder + 7) % 7;\n\n const delta = 7 - weekStartsOn;\n const diff =\n day < 0 || day > 6\n ? day - ((currentDay + delta) % 7)\n : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7);\n return addDays(date_, diff, options);\n}\n\n// Fallback for modularized imports:\nexport default setDay;\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\n// Day of week\nexport class DayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"EEEEE\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"EEEE\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// Local day of week\nexport class LocalDayParser extends Parser {\n priority = 90;\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"e\":\n case \"ee\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"eo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"eee\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"eeeee\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"eeee\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// Stand-alone local day of week\nexport class StandAloneLocalDayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"c\":\n case \"cc\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"co\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"ccc\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // T\n case \"ccccc\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return (\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // Tuesday\n case \"cccc\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"e\",\n \"t\",\n \"T\",\n ];\n}\n","import { addDays } from \"./addDays.js\";\nimport { getISODay } from \"./getISODay.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setISODay} function options.\n */\n\n/**\n * @name setISODay\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday, etc.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the day of the ISO week set\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * const result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setISODay(date, day, options) {\n const date_ = toDate(date, options?.in);\n const currentDay = getISODay(date_, options);\n const diff = day - currentDay;\n return addDays(date_, diff, options);\n}\n\n// Fallback for modularized imports:\nexport default setISODay;\n","import { setISODay } from \"../../../setISODay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// ISO day of week\nexport class ISODayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n\n switch (token) {\n // 2\n case \"i\":\n case \"ii\": // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case \"io\":\n return match.ordinalNumber(dateString, { unit: \"day\" });\n // Tue\n case \"iii\":\n return mapValue(\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // T\n case \"iiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tu\n case \"iiiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tuesday\n case \"iiii\":\n default:\n return mapValue(\n match.day(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n\n set(date, _flags, value) {\n date = setISODay(date, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"E\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\nexport class AMPMParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"a\":\n case \"aa\":\n case \"aaa\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"aaaaa\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"b\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\nexport class AMPMMidnightParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"b\":\n case \"bb\":\n case \"bbb\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"bbbbb\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\n// in the morning, in the afternoon, in the evening, at night\nexport class DayPeriodParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"BBBBB\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour1to12Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"h\":\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case \"ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setHours(0, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"H\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour0to23Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"H\":\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case \"Ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n\n set(date, _flags, value) {\n date.setHours(value, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour0To11Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"K\":\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case \"Ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"h\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour1To24Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"k\":\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case \"ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n\n set(date, _flags, value) {\n const hours = value <= 24 ? value % 24 : value;\n date.setHours(hours, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"H\", \"K\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class MinuteParser extends Parser {\n priority = 60;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"m\":\n return parseNumericPattern(numericPatterns.minute, dateString);\n case \"mo\":\n return match.ordinalNumber(dateString, { unit: \"minute\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setMinutes(value, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class SecondParser extends Parser {\n priority = 50;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"s\":\n return parseNumericPattern(numericPatterns.second, dateString);\n case \"so\":\n return match.ordinalNumber(dateString, { unit: \"second\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setSeconds(value, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\nexport class FractionOfSecondParser extends Parser {\n priority = 30;\n\n parse(dateString, token) {\n const valueCallback = (value) =>\n Math.trunc(value * Math.pow(10, -token.length + 3));\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n\n set(date, _flags, value) {\n date.setMilliseconds(value);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseTimezonePattern } from \"../utils.js\";\n\n// Timezone (ISO-8601. +00:00 is `'Z'`)\nexport class ISOTimezoneWithZParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"X\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"XX\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"XXXX\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"XXXXX\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"XXX\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"x\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseTimezonePattern } from \"../utils.js\";\n\n// Timezone (ISO-8601)\nexport class ISOTimezoneParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"x\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"xx\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"xxxx\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"xxxxx\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"xxx\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"X\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseAnyDigitsSigned } from \"../utils.js\";\n\nexport class TimestampSecondsParser extends Parser {\n priority = 40;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value * 1000), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseAnyDigitsSigned } from \"../utils.js\";\n\nexport class TimestampMillisecondsParser extends Parser {\n priority = 20;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { EraParser } from \"./parsers/EraParser.js\";\nimport { YearParser } from \"./parsers/YearParser.js\";\nimport { LocalWeekYearParser } from \"./parsers/LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./parsers/ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./parsers/ExtendedYearParser.js\";\nimport { QuarterParser } from \"./parsers/QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./parsers/StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./parsers/MonthParser.js\";\nimport { StandAloneMonthParser } from \"./parsers/StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./parsers/LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./parsers/ISOWeekParser.js\";\nimport { DateParser } from \"./parsers/DateParser.js\";\nimport { DayOfYearParser } from \"./parsers/DayOfYearParser.js\";\nimport { DayParser } from \"./parsers/DayParser.js\";\nimport { LocalDayParser } from \"./parsers/LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./parsers/StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./parsers/ISODayParser.js\";\nimport { AMPMParser } from \"./parsers/AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./parsers/AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./parsers/DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./parsers/Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./parsers/Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./parsers/Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./parsers/Hour1To24Parser.js\";\nimport { MinuteParser } from \"./parsers/MinuteParser.js\";\nimport { SecondParser } from \"./parsers/SecondParser.js\";\nimport { FractionOfSecondParser } from \"./parsers/FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./parsers/ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./parsers/ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./parsers/TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./parsers/TimestampMillisecondsParser.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\nexport const parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser(),\n};\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getDefaultOptions } from \"./getDefaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\nimport { DateTimezoneSetter } from \"./parse/_lib/Setter.js\";\nimport { parsers } from \"./parse/_lib/parsers.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { longFormatters, parsers };\n\n/**\n * The {@link parse} function options.\n */\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\n\nconst notWhitespaceRegExp = /\\S/;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangeably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n * and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param dateStr - The string to parse\n * @param formatStr - The string of tokens\n * @param referenceDate - defines values missing from the parsed dateString\n * @param options - An object with options.\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns The parsed date\n *\n * @throws `options.locale` must contain `match` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport function parse(dateStr, formatStr, referenceDate, options) {\n const invalidDate = () => constructFrom(options?.in || referenceDate, NaN);\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n if (!formatStr)\n return dateStr ? invalidDate() : toDate(referenceDate, options?.in);\n\n const subFnOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n // If timezone isn't specified, it will try to use the context or\n // the reference date and fallback to the system time zone.\n const setters = [new DateTimezoneSetter(options?.in, referenceDate)];\n\n const tokens = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp);\n\n const usedTokens = [];\n\n for (let token of tokens) {\n if (\n !options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n if (\n !options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n\n const firstCharacter = token[0];\n const parser = parsers[firstCharacter];\n if (parser) {\n const { incompatibleTokens } = parser;\n if (Array.isArray(incompatibleTokens)) {\n const incompatibleToken = usedTokens.find(\n (usedToken) =>\n incompatibleTokens.includes(usedToken.token) ||\n usedToken.token === firstCharacter,\n );\n if (incompatibleToken) {\n throw new RangeError(\n `The format string mustn't contain \\`${incompatibleToken.fullToken}\\` and \\`${token}\\` at the same time`,\n );\n }\n } else if (parser.incompatibleTokens === \"*\" && usedTokens.length > 0) {\n throw new RangeError(\n `The format string mustn't contain \\`${token}\\` and any other token at the same time`,\n );\n }\n\n usedTokens.push({ token: firstCharacter, fullToken: token });\n\n const parseResult = parser.run(\n dateStr,\n token,\n locale.match,\n subFnOptions,\n );\n\n if (!parseResult) {\n return invalidDate();\n }\n\n setters.push(parseResult.setter);\n\n dateStr = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateStr.indexOf(token) === 0) {\n dateStr = dateStr.slice(token.length);\n } else {\n return invalidDate();\n }\n }\n }\n\n // Check if the remaining input contains something other than whitespace\n if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) {\n return invalidDate();\n }\n\n const uniquePrioritySetters = setters\n .map((setter) => setter.priority)\n .sort((a, b) => b - a)\n .filter((priority, index, array) => array.indexOf(priority) === index)\n .map((priority) =>\n setters\n .filter((setter) => setter.priority === priority)\n .sort((a, b) => b.subPriority - a.subPriority),\n )\n .map((setterArray) => setterArray[0]);\n\n let date = toDate(referenceDate, options?.in);\n\n if (isNaN(+date)) return invalidDate();\n\n const flags = {};\n for (const setter of uniquePrioritySetters) {\n if (!setter.validate(date, subFnOptions)) {\n return invalidDate();\n }\n\n const result = setter.set(date, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n date = result[0];\n Object.assign(flags, result[1]);\n // Result is date\n } else {\n date = result;\n }\n }\n\n return date;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default parse;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { startOfQuarter } from \"./startOfQuarter.js\";\n\n/**\n * The {@link isSameQuarter} function options.\n */\n\n/**\n * @name isSameQuarter\n * @category Quarter Helpers\n * @summary Are the given dates in the same quarter (and year)?\n *\n * @description\n * Are the given dates in the same quarter (and year)?\n *\n * @param laterDate - The first date to check\n * @param earlierDate - The second date to check\n * @param options - An object with options\n *\n * @returns The dates are in the same quarter (and year)\n *\n * @example\n * // Are 1 January 2014 and 8 March 2014 in the same quarter?\n * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2014, 2, 8))\n * //=> true\n *\n * @example\n * // Are 1 January 2014 and 1 January 2015 in the same quarter?\n * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2015, 0, 1))\n * //=> false\n */\nexport function isSameQuarter(laterDate, earlierDate, options) {\n const [dateLeft_, dateRight_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return +startOfQuarter(dateLeft_) === +startOfQuarter(dateRight_);\n}\n\n// Fallback for modularized imports:\nexport default isSameQuarter;\n","import { addDays } from \"./addDays.js\";\n\n/**\n * The {@link subDays} function options.\n */\n\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be subtracted.\n * @param options - An object with options\n *\n * @returns The new date with the days subtracted\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\nexport function subDays(date, amount, options) {\n return addDays(date, -amount, options);\n}\n\n// Fallback for modularized imports:\nexport default subDays;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { getDaysInMonth } from \"./getDaysInMonth.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setMonth} function options.\n */\n\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param month - The month index to set (0-11)\n * @param options - The options\n *\n * @returns The new date with the month set\n *\n * @example\n * // Set February to 1 September 2014:\n * const result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\nexport function setMonth(date, month, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n const day = _date.getDate();\n\n const midMonth = constructFrom(options?.in || date, 0);\n midMonth.setFullYear(year, month, 15);\n midMonth.setHours(0, 0, 0, 0);\n const daysInMonth = getDaysInMonth(midMonth);\n\n // Set the earlier date, allows to wrap Jan 31 to Feb 28\n _date.setMonth(month, Math.min(day, daysInMonth));\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setMonth;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { setMonth } from \"./setMonth.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link set} function options.\n */\n\n/**\n * @name set\n * @category Common Helpers\n * @summary Set date values to a given date.\n *\n * @description\n * Set date values to a given date.\n *\n * Sets time values to date from object `values`.\n * A value is not set if it is undefined or null or doesn't exist in `values`.\n *\n * Note about bundle size: `set` does not internally use `setX` functions from date-fns but instead opts\n * to use native `Date#setX` methods. If you use this function, you may not want to include the\n * other `setX` functions that date-fns provides if you are concerned about the bundle size.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param values - The date values to be set\n * @param options - The options\n *\n * @returns The new date with options set\n *\n * @example\n * // Transform 1 September 2014 into 20 October 2015 in a single line:\n * const result = set(new Date(2014, 8, 20), { year: 2015, month: 9, date: 20 })\n * //=> Tue Oct 20 2015 00:00:00\n *\n * @example\n * // Set 12 PM to 1 September 2014 01:23:45 to 1 September 2014 12:00:00:\n * const result = set(new Date(2014, 8, 1, 1, 23, 45), { hours: 12 })\n * //=> Mon Sep 01 2014 12:23:45\n */\nexport function set(date, values, options) {\n let _date = toDate(date, options?.in);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(+_date)) return constructFrom(options?.in || date, NaN);\n\n if (values.year != null) _date.setFullYear(values.year);\n if (values.month != null) _date = setMonth(_date, values.month);\n if (values.date != null) _date.setDate(values.date);\n if (values.hours != null) _date.setHours(values.hours);\n if (values.minutes != null) _date.setMinutes(values.minutes);\n if (values.seconds != null) _date.setSeconds(values.seconds);\n if (values.milliseconds != null) _date.setMilliseconds(values.milliseconds);\n\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default set;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setHours} function options.\n */\n\n/**\n * @name setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param hours - The hours of the new date\n * @param options - An object with options\n *\n * @returns The new date with the hours set\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * const result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\nexport function setHours(date, hours, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(hours);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setHours;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setMilliseconds} function options.\n */\n\n/**\n * @name setMilliseconds\n * @category Millisecond Helpers\n * @summary Set the milliseconds to the given date.\n *\n * @description\n * Set the milliseconds to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param milliseconds - The milliseconds of the new date\n * @param options - The options\n *\n * @returns The new date with the milliseconds set\n *\n * @example\n * // Set 300 milliseconds to 1 September 2014 11:30:40.500:\n * const result = setMilliseconds(new Date(2014, 8, 1, 11, 30, 40, 500), 300)\n * //=> Mon Sep 01 2014 11:30:40.300\n */\nexport function setMilliseconds(date, milliseconds, options) {\n const _date = toDate(date, options?.in);\n _date.setMilliseconds(milliseconds);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setMilliseconds;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setMinutes} function options.\n */\n\n/**\n * @name setMinutes\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows using extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, returned from the context function, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param minutes - The minutes of the new date\n * @param options - An object with options\n *\n * @returns The new date with the minutes set\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * const result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\nexport function setMinutes(date, minutes, options) {\n const date_ = toDate(date, options?.in);\n date_.setMinutes(minutes);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default setMinutes;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setSeconds} function options.\n */\n\n/**\n * @name setSeconds\n * @category Second Helpers\n * @summary Set the seconds to the given date, with context support.\n *\n * @description\n * Set the seconds to the given date, with an optional context for time zone specification.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param seconds - The seconds of the new date\n * @param options - An object with options\n *\n * @returns The new date with the seconds set\n *\n * @example\n * // Set 45 seconds to 1 September 2014 11:30:40:\n * const result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:30:45\n */\nexport function setSeconds(date, seconds, options) {\n const _date = toDate(date, options?.in);\n _date.setSeconds(seconds);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setSeconds;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setYear} function options.\n */\n\n/**\n * @name setYear\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param year - The year of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the year set\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * const result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\nexport function setYear(date, year, options) {\n const date_ = toDate(date, options?.in);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(+date_)) return constructFrom(options?.in || date, NaN);\n\n date_.setFullYear(year);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default setYear;\n","import { addMonths } from \"./addMonths.js\";\n\n/**\n * The subMonths function options.\n */\n\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of months to be subtracted.\n * @param options - An object with options\n *\n * @returns The new date with the months subtracted\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function subMonths(date, amount, options) {\n return addMonths(date, -amount, options);\n}\n\n// Fallback for modularized imports:\nexport default subMonths;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { subDays } from \"./subDays.js\";\nimport { subMonths } from \"./subMonths.js\";\n\n/**\n * The {@link sub} function options.\n */\n\n/**\n * @name sub\n * @category Common Helpers\n * @summary Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @description\n * Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param duration - The object with years, months, weeks, days, hours, minutes and seconds to be subtracted\n * @param options - An object with options\n *\n * | Key | Description |\n * |---------|------------------------------------|\n * | years | Amount of years to be subtracted |\n * | months | Amount of months to be subtracted |\n * | weeks | Amount of weeks to be subtracted |\n * | days | Amount of days to be subtracted |\n * | hours | Amount of hours to be subtracted |\n * | minutes | Amount of minutes to be subtracted |\n * | seconds | Amount of seconds to be subtracted |\n *\n * All values default to 0\n *\n * @returns The new date with the seconds subtracted\n *\n * @example\n * // Subtract the following duration from 15 June 2017 15:29:20\n * const result = sub(new Date(2017, 5, 15, 15, 29, 20), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30\n * })\n * //=> Mon Sep 1 2014 10:19:50\n */\nexport function sub(date, duration, options) {\n const {\n years = 0,\n months = 0,\n weeks = 0,\n days = 0,\n hours = 0,\n minutes = 0,\n seconds = 0,\n } = duration;\n\n const withoutMonths = subMonths(date, months + years * 12, options);\n const withoutDays = subDays(withoutMonths, days + weeks * 7, options);\n\n const minutesToSub = minutes + hours * 60;\n const secondsToSub = seconds + minutesToSub * 60;\n const msToSub = secondsToSub * 1000;\n\n return constructFrom(options?.in || date, +withoutDays - msToSub);\n}\n\n// Fallback for modularized imports:\nexport default sub;\n","import { addYears } from \"./addYears.js\";\n\n/**\n * The {@link subYears} function options.\n */\n\n/**\n * @name subYears\n * @category Year Helpers\n * @summary Subtract the specified number of years from the given date.\n *\n * @description\n * Subtract the specified number of years from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of years to be subtracted.\n * @param options - An object with options\n *\n * @returns The new date with the years subtracted\n *\n * @example\n * // Subtract 5 years from 1 September 2014:\n * const result = subYears(new Date(2014, 8, 1), 5)\n * //=> Tue Sep 01 2009 00:00:00\n */\nexport function subYears(date, amount, options) {\n return addYears(date, -amount, options);\n}\n\n// Fallback for modularized imports:\nexport default subYears;\n","import { useAttrs as Jn, createElementBlock as W, openBlock as w, createElementVNode as he, unref as s, reactive as ea, computed as j, ref as Z, toRef as qt, watch as rt, defineComponent as We, onMounted as Ue, onUnmounted as Ut, renderSlot as ie, normalizeProps as ze, mergeProps as He, Fragment as ke, createCommentVNode as Q, normalizeStyle as lt, createTextVNode as gt, toDisplayString as Ke, onBeforeUpdate as Zn, nextTick as at, withModifiers as Xt, normalizeClass as De, withDirectives as ua, renderList as Ce, vShow as ia, createVNode as tt, createBlock as Te, withCtx as we, withKeys as xn, Transition as Vt, createSlots as Ge, useSlots as Yt, guardReactiveProps as Je, resolveDynamicComponent as fa, toValue as el, h as tl, render as nn, getCurrentScope as al, onScopeDispose as nl, getCurrentInstance as ll, isRef as ln, Teleport as rl } from \"vue\";\nimport { format as ft, isEqual as Nt, isValid as da, addMonths as Ct, subMonths as Jt, getMonth as Me, getYear as ye, set as Se, startOfMonth as ol, setMonth as sl, setYear as ut, isAfter as _t, isBefore as Ft, eachDayOfInterval as bn, getSeconds as zt, getMinutes as $t, getHours as yt, startOfWeek as Wa, endOfWeek as kn, setHours as ul, setMinutes as il, setSeconds as wn, setMilliseconds as Dn, parse as Na, isDate as dl, subDays as cl, addDays as kt, addHours as fl, addYears as Mn, subYears as $n, endOfYear as An, startOfYear as Gt, differenceInYears as vl, add as Tn, sub as ml, getWeek as pl, getISOWeek as gl, isSameQuarter as rn, eachQuarterOfInterval as yl, startOfQuarter as hl, endOfQuarter as on, getQuarter as sn, differenceInCalendarDays as bl, getDay as kl } from \"date-fns\";\nfunction jt() {\n const e = Jn();\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\",\n ...e\n },\n [\n he(\"path\", {\n d: \"M29.333 8c0-2.208-1.792-4-4-4h-18.667c-2.208 0-4 1.792-4 4v18.667c0 2.208 1.792 4 4 4h18.667c2.208 0 4-1.792 4-4v-18.667zM26.667 8v18.667c0 0.736-0.597 1.333-1.333 1.333 0 0-18.667 0-18.667 0-0.736 0-1.333-0.597-1.333-1.333 0 0 0-18.667 0-18.667 0-0.736 0.597-1.333 1.333-1.333 0 0 18.667 0 18.667 0 0.736 0 1.333 0.597 1.333 1.333z\"\n }),\n he(\"path\", {\n d: \"M20 2.667v5.333c0 0.736 0.597 1.333 1.333 1.333s1.333-0.597 1.333-1.333v-5.333c0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z\"\n }),\n he(\"path\", {\n d: \"M9.333 2.667v5.333c0 0.736 0.597 1.333 1.333 1.333s1.333-0.597 1.333-1.333v-5.333c0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z\"\n }),\n he(\"path\", {\n d: \"M4 14.667h24c0.736 0 1.333-0.597 1.333-1.333s-0.597-1.333-1.333-1.333h-24c-0.736 0-1.333 0.597-1.333 1.333s0.597 1.333 1.333 1.333z\"\n })\n ]\n );\n}\njt.compatConfig = {\n MODE: 3\n};\nfunction Sn() {\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n he(\"path\", {\n d: \"M23.057 7.057l-16 16c-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0l16-16c0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0z\"\n }),\n he(\"path\", {\n d: \"M7.057 8.943l16 16c0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885l-16-16c-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885z\"\n })\n ]\n );\n}\nSn.compatConfig = {\n MODE: 3\n};\nfunction Ua() {\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n he(\"path\", {\n d: \"M20.943 23.057l-7.057-7.057c0 0 7.057-7.057 7.057-7.057 0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0l-8 8c-0.521 0.521-0.521 1.365 0 1.885l8 8c0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885z\"\n })\n ]\n );\n}\nUa.compatConfig = {\n MODE: 3\n};\nfunction Va() {\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n he(\"path\", {\n d: \"M12.943 24.943l8-8c0.521-0.521 0.521-1.365 0-1.885l-8-8c-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885l7.057 7.057c0 0-7.057 7.057-7.057 7.057-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0z\"\n })\n ]\n );\n}\nVa.compatConfig = {\n MODE: 3\n};\nfunction ja() {\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n he(\"path\", {\n d: \"M16 1.333c-8.095 0-14.667 6.572-14.667 14.667s6.572 14.667 14.667 14.667c8.095 0 14.667-6.572 14.667-14.667s-6.572-14.667-14.667-14.667zM16 4c6.623 0 12 5.377 12 12s-5.377 12-12 12c-6.623 0-12-5.377-12-12s5.377-12 12-12z\"\n }),\n he(\"path\", {\n d: \"M14.667 8v8c0 0.505 0.285 0.967 0.737 1.193l5.333 2.667c0.658 0.329 1.46 0.062 1.789-0.596s0.062-1.46-0.596-1.789l-4.596-2.298c0 0 0-7.176 0-7.176 0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z\"\n })\n ]\n );\n}\nja.compatConfig = {\n MODE: 3\n};\nfunction Ka() {\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n he(\"path\", {\n d: \"M24.943 19.057l-8-8c-0.521-0.521-1.365-0.521-1.885 0l-8 8c-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0l7.057-7.057c0 0 7.057 7.057 7.057 7.057 0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885z\"\n })\n ]\n );\n}\nKa.compatConfig = {\n MODE: 3\n};\nfunction Ga() {\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n he(\"path\", {\n d: \"M7.057 12.943l8 8c0.521 0.521 1.365 0.521 1.885 0l8-8c0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0l-7.057 7.057c0 0-7.057-7.057-7.057-7.057-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885z\"\n })\n ]\n );\n}\nGa.compatConfig = {\n MODE: 3\n};\nconst Ze = (e, t) => t ? new Date(e.toLocaleString(\"en-US\", { timeZone: t })) : new Date(e), Qa = (e, t, l) => {\n const n = La(e, t, l);\n return n || H();\n}, wl = (e, t, l) => {\n const n = t.dateInTz ? Ze(new Date(e), t.dateInTz) : H(e);\n return l ? Fe(n, !0) : n;\n}, La = (e, t, l) => {\n if (!e) return null;\n const n = l ? Fe(H(e), !0) : H(e);\n return t ? t.exactMatch ? wl(e, t, l) : Ze(n, t.timezone) : n;\n}, Dl = (e) => {\n const l = new Date(e.getFullYear(), 0, 1).getTimezoneOffset();\n return e.getTimezoneOffset() < l;\n}, Ml = (e, t) => {\n if (!e) return 0;\n const l = /* @__PURE__ */ new Date(), n = new Date(l.toLocaleString(\"en-US\", { timeZone: \"UTC\" })), a = new Date(l.toLocaleString(\"en-US\", { timeZone: e })), i = (Dl(t ?? a) ? a : t ?? a).getTimezoneOffset() / 60;\n return (+n - +a) / (1e3 * 60 * 60) - i;\n};\nvar ot = /* @__PURE__ */ ((e) => (e.month = \"month\", e.year = \"year\", e))(ot || {}), st = /* @__PURE__ */ ((e) => (e.top = \"top\", e.bottom = \"bottom\", e))(st || {}), Ot = /* @__PURE__ */ ((e) => (e.header = \"header\", e.calendar = \"calendar\", e.timePicker = \"timePicker\", e))(Ot || {}), je = /* @__PURE__ */ ((e) => (e.month = \"month\", e.year = \"year\", e.calendar = \"calendar\", e.time = \"time\", e.minutes = \"minutes\", e.hours = \"hours\", e.seconds = \"seconds\", e))(je || {});\nconst $l = [\"timestamp\", \"date\", \"iso\"];\nvar Qe = /* @__PURE__ */ ((e) => (e.up = \"up\", e.down = \"down\", e.left = \"left\", e.right = \"right\", e))(Qe || {}), Re = /* @__PURE__ */ ((e) => (e.arrowUp = \"ArrowUp\", e.arrowDown = \"ArrowDown\", e.arrowLeft = \"ArrowLeft\", e.arrowRight = \"ArrowRight\", e.enter = \"Enter\", e.space = \" \", e.esc = \"Escape\", e.tab = \"Tab\", e.home = \"Home\", e.end = \"End\", e.pageUp = \"PageUp\", e.pageDown = \"PageDown\", e))(Re || {}), Lt = /* @__PURE__ */ ((e) => (e.MONTH_AND_YEAR = \"MM-yyyy\", e.YEAR = \"yyyy\", e.DATE = \"dd-MM-yyyy\", e))(Lt || {});\nfunction un(e) {\n return (t) => {\n const l = new Intl.DateTimeFormat(e, {\n weekday: \"short\",\n timeZone: \"UTC\"\n }).format(/* @__PURE__ */ new Date(`2017-01-0${t}T00:00:00+00:00`));\n return e === \"ar\" ? l.slice(2, 5) : l.slice(0, 2);\n };\n}\nfunction Al(e) {\n return (t) => ft(Ze(/* @__PURE__ */ new Date(`2017-01-0${t}T00:00:00+00:00`), \"UTC\"), \"EEEEEE\", { locale: e });\n}\nconst Tl = (e, t, l) => {\n const n = [1, 2, 3, 4, 5, 6, 7];\n let a;\n if (e !== null)\n try {\n a = n.map(Al(e));\n } catch {\n a = n.map(un(t));\n }\n else\n a = n.map(un(t));\n const f = a.slice(0, l), i = a.slice(l + 1, a.length);\n return [a[l]].concat(...i).concat(...f);\n}, qa = (e, t, l) => {\n const n = [];\n for (let a = +e[0]; a <= +e[1]; a++)\n n.push({ value: +a, text: Ja(a, t) });\n return l ? n.reverse() : n;\n}, Pn = (e, t, l) => {\n const n = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].map((f) => {\n const i = f < 10 ? `0${f}` : f;\n return /* @__PURE__ */ new Date(`2017-${i}-01T00:00:00+00:00`);\n });\n if (e !== null)\n try {\n const f = l === \"long\" ? \"LLLL\" : \"LLL\";\n return n.map((i, g) => {\n const d = ft(Ze(i, \"UTC\"), f, { locale: e });\n return {\n text: d.charAt(0).toUpperCase() + d.substring(1),\n value: g\n };\n });\n } catch {\n }\n const a = new Intl.DateTimeFormat(t, { month: l, timeZone: \"UTC\" });\n return n.map((f, i) => {\n const g = a.format(f);\n return {\n text: g.charAt(0).toUpperCase() + g.substring(1),\n value: i\n };\n });\n}, Sl = (e) => [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11][e], Le = (e) => {\n const t = s(e);\n return t?.$el ? t?.$el : t;\n}, Pl = (e) => ({ type: \"dot\", ...e ?? {} }), Rn = (e) => Array.isArray(e) ? !!e[0] && !!e[1] : !1, Xa = {\n prop: (e) => `\"${e}\" prop must be enabled!`,\n dateArr: (e) => `You need to use array as \"model-value\" binding in order to support \"${e}\"`\n}, Ne = (e) => e, dn = (e) => e === 0 ? e : !e || isNaN(+e) ? null : +e, cn = (e) => e === null, Cn = (e) => {\n if (e)\n return [...e.querySelectorAll(\"input, button, select, textarea, a[href]\")][0];\n}, Rl = (e) => {\n const t = [], l = (n) => n.filter((a) => a);\n for (let n = 0; n < e.length; n += 3) {\n const a = [e[n], e[n + 1], e[n + 2]];\n t.push(l(a));\n }\n return t;\n}, Zt = (e, t, l) => {\n const n = l != null, a = t != null;\n if (!n && !a) return !1;\n const f = +l, i = +t;\n return n && a ? +e > f || +e < i : n ? +e > f : a ? +e < i : !1;\n}, Ht = (e, t) => Rl(e).map((l) => l.map((n) => {\n const { active: a, disabled: f, isBetween: i, highlighted: g } = t(n);\n return {\n ...n,\n active: a,\n disabled: f,\n className: {\n dp__overlay_cell_active: a,\n dp__overlay_cell: !a,\n dp__overlay_cell_disabled: f,\n dp__overlay_cell_pad: !0,\n dp__overlay_cell_active_disabled: f && a,\n dp__cell_in_between: i,\n \"dp--highlighted\": g\n }\n };\n})), Dt = (e, t, l = !1) => {\n e && t.allowStopPropagation && (l && e.stopImmediatePropagation(), e.stopPropagation());\n}, Cl = () => [\n \"a[href]\",\n \"area[href]\",\n \"input:not([disabled]):not([type='hidden'])\",\n \"select:not([disabled])\",\n \"textarea:not([disabled])\",\n \"button:not([disabled])\",\n \"[tabindex]:not([tabindex='-1'])\",\n \"[data-datepicker-instance]\"\n].join(\", \");\nfunction Ol(e, t) {\n let l = [...document.querySelectorAll(Cl())];\n l = l.filter((a) => !e.contains(a) || a.hasAttribute(\"data-datepicker-instance\"));\n const n = l.indexOf(e);\n if (n >= 0 && (t ? n - 1 >= 0 : n + 1 <= l.length))\n return l[n + (t ? -1 : 1)];\n}\nconst Fa = (e, t) => e?.querySelector(`[data-dp-element=\"${t}\"]`), Ja = (e, t) => new Intl.NumberFormat(t, { useGrouping: !1, style: \"decimal\" }).format(e), Za = (e, t) => ft(e, t ?? Lt.DATE), Ta = (e) => Array.isArray(e), ca = (e, t, l) => t.get(Za(e, l)), Bl = (e, t) => e ? t ? t instanceof Map ? !!ca(e, t) : t(H(e)) : !1 : !0, qe = (e, t, l = !1, n) => {\n if (e.key === Re.enter || e.key === Re.space)\n return l && e.preventDefault(), t();\n if (n) return n(e);\n}, _l = () => \"ontouchstart\" in window || navigator.maxTouchPoints > 0, On = (e, t) => e ? Lt.MONTH_AND_YEAR : t ? Lt.YEAR : Lt.DATE, Bn = (e) => e < 10 ? `0${e}` : e, fn = (e, t, l, n, a, f) => {\n const i = Na(e, t.slice(0, e.length), /* @__PURE__ */ new Date(), { locale: f });\n return da(i) && dl(i) ? n || a ? i : Se(i, {\n hours: +l.hours,\n minutes: +l?.minutes,\n seconds: +l?.seconds,\n milliseconds: 0\n }) : null;\n}, Yl = (e, t, l, n, a, f) => {\n const i = Array.isArray(l) ? l[0] : l;\n if (typeof t == \"string\")\n return fn(e, t, i, n, a, f);\n if (Array.isArray(t)) {\n let g = null;\n for (const d of t)\n if (g = fn(e, d, i, n, a, f), g)\n break;\n return g;\n }\n return typeof t == \"function\" ? t(e) : null;\n}, H = (e) => e ? new Date(e) : /* @__PURE__ */ new Date(), Il = (e, t, l) => {\n if (t) {\n const a = (e.getMonth() + 1).toString().padStart(2, \"0\"), f = e.getDate().toString().padStart(2, \"0\"), i = e.getHours().toString().padStart(2, \"0\"), g = e.getMinutes().toString().padStart(2, \"0\"), d = l ? e.getSeconds().toString().padStart(2, \"0\") : \"00\";\n return `${e.getFullYear()}-${a}-${f}T${i}:${g}:${d}.000Z`;\n }\n const n = Date.UTC(\n e.getUTCFullYear(),\n e.getUTCMonth(),\n e.getUTCDate(),\n e.getUTCHours(),\n e.getUTCMinutes(),\n e.getUTCSeconds()\n );\n return new Date(n).toISOString();\n}, Fe = (e, t) => {\n const l = H(JSON.parse(JSON.stringify(e))), n = Se(l, { hours: 0, minutes: 0, seconds: 0, milliseconds: 0 });\n return t ? ol(n) : n;\n}, Mt = (e, t, l, n) => {\n let a = e ? H(e) : H();\n return (t || t === 0) && (a = ul(a, +t)), (l || l === 0) && (a = il(a, +l)), (n || n === 0) && (a = wn(a, +n)), Dn(a, 0);\n}, Be = (e, t) => !e || !t ? !1 : Ft(Fe(e), Fe(t)), $e = (e, t) => !e || !t ? !1 : Nt(Fe(e), Fe(t)), Ee = (e, t) => !e || !t ? !1 : _t(Fe(e), Fe(t)), xt = (e, t, l) => e?.[0] && e?.[1] ? Ee(l, e[0]) && Be(l, e[1]) : e?.[0] && t ? Ee(l, e[0]) && Be(l, t) || Be(l, e[0]) && Ee(l, t) : !1, it = (e) => {\n const t = Se(new Date(e), { date: 1 });\n return Fe(t);\n}, Sa = (e, t, l) => t && (l || l === 0) ? Object.fromEntries(\n [\"hours\", \"minutes\", \"seconds\"].map((n) => n === t ? [n, l] : [n, isNaN(+e[n]) ? void 0 : +e[n]])\n) : {\n hours: isNaN(+e.hours) ? void 0 : +e.hours,\n minutes: isNaN(+e.minutes) ? void 0 : +e.minutes,\n seconds: isNaN(+e.seconds) ? void 0 : +e.seconds\n}, Bt = (e) => ({\n hours: yt(e),\n minutes: $t(e),\n seconds: zt(e)\n}), _n = (e, t) => {\n if (t) {\n const l = ye(H(t));\n if (l > e) return 12;\n if (l === e) return Me(H(t));\n }\n}, Yn = (e, t) => {\n if (t) {\n const l = ye(H(t));\n return l < e ? -1 : l === e ? Me(H(t)) : void 0;\n }\n}, Wt = (e) => {\n if (e) return ye(H(e));\n}, In = (e, t) => {\n const l = Ee(e, t) ? t : e, n = Ee(t, e) ? t : e;\n return bn({ start: l, end: n });\n}, El = (e) => {\n const t = Ct(e, 1);\n return { month: Me(t), year: ye(t) };\n}, mt = (e, t) => {\n const l = Wa(e, { weekStartsOn: +t }), n = kn(e, { weekStartsOn: +t });\n return [l, n];\n}, En = (e, t) => {\n const l = {\n hours: yt(H()),\n minutes: $t(H()),\n seconds: t ? zt(H()) : 0\n };\n return Object.assign(l, e);\n}, wt = (e, t, l) => [Se(H(e), { date: 1 }), Se(H(), { month: t, year: l, date: 1 })], pt = (e, t, l) => {\n let n = e ? H(e) : H();\n return (t || t === 0) && (n = sl(n, t)), l && (n = ut(n, l)), n;\n}, Nn = (e, t, l, n, a) => {\n if (!n || a && !t || !a && !l) return !1;\n const f = a ? Ct(e, 1) : Jt(e, 1), i = [Me(f), ye(f)];\n return a ? !Ll(...i, t) : !Nl(...i, l);\n}, Nl = (e, t, l) => Be(...wt(l, e, t)) || $e(...wt(l, e, t)), Ll = (e, t, l) => Ee(...wt(l, e, t)) || $e(...wt(l, e, t)), Ln = (e, t, l, n, a, f, i) => {\n if (typeof t == \"function\" && !i) return t(e);\n const g = l ? { locale: l } : void 0;\n return Array.isArray(e) ? `${ft(e[0], f, g)}${a && !e[1] ? \"\" : n}${e[1] ? ft(e[1], f, g) : \"\"}` : ft(e, f, g);\n}, It = (e) => {\n if (e) return null;\n throw new Error(Xa.prop(\"partial-range\"));\n}, oa = (e, t) => {\n if (t) return e();\n throw new Error(Xa.prop(\"range\"));\n}, za = (e) => Array.isArray(e) ? da(e[0]) && (e[1] ? da(e[1]) : !0) : e ? da(e) : !1, Fl = (e, t) => Se(t ?? H(), {\n hours: +e.hours || 0,\n minutes: +e.minutes || 0,\n seconds: +e.seconds || 0\n}), Pa = (e, t, l, n) => {\n if (!e) return !0;\n if (n) {\n const a = l === \"max\" ? Ft(e, t) : _t(e, t), f = { seconds: 0, milliseconds: 0 };\n return a || Nt(Se(e, f), Se(t, f));\n }\n return l === \"max\" ? e.getTime() <= t.getTime() : e.getTime() >= t.getTime();\n}, Ra = (e, t, l) => e ? Fl(e, t) : H(l ?? t), vn = (e, t, l, n, a) => {\n if (Array.isArray(n)) {\n const i = Ra(e, n[0], t), g = Ra(e, n[1], t);\n return Pa(n[0], i, l, !!t) && Pa(n[1], g, l, !!t) && a;\n }\n const f = Ra(e, n, t);\n return Pa(n, f, l, !!t) && a;\n}, Ca = (e) => Se(H(), Bt(e)), zl = (e, t, l) => {\n if (e instanceof Map) {\n const n = `${Bn(l + 1)}-${t}`;\n return e.size ? e.has(n) : !1;\n }\n return typeof e == \"function\" ? e(Fe(Se(H(), { month: l, year: t }), !0)) : !1;\n}, Hl = (e, t, l) => {\n if (e instanceof Map) {\n const n = `${Bn(l + 1)}-${t}`;\n return e.size ? e.has(n) : !0;\n }\n return !0;\n}, Fn = (e, t, l) => typeof e == \"function\" ? e({ month: t, year: l }) : !!e.months.find((n) => n.month === t && n.year === l), xa = (e, t) => typeof e == \"function\" ? e(t) : e.years.includes(t), Ha = (e) => `dp-${ft(e, \"yyyy-MM-dd\")}`, mn = (e, t) => {\n const l = cl(Fe(t), e), n = kt(Fe(t), e);\n return { before: l, after: n };\n}, zn = (e, t) => t < +e[0] || t > +e[1], Kt = ea({\n menuFocused: !1,\n shiftKeyInMenu: !1\n}), Hn = () => {\n const e = (n) => {\n Kt.menuFocused = n;\n }, t = (n) => {\n Kt.shiftKeyInMenu !== n && (Kt.shiftKeyInMenu = n);\n };\n return {\n control: j(() => ({ shiftKeyInMenu: Kt.shiftKeyInMenu, menuFocused: Kt.menuFocused })),\n setMenuFocused: e,\n setShiftKey: t\n };\n}, Pe = ea({\n monthYear: [],\n calendar: [],\n time: [],\n actionRow: [],\n selectionGrid: [],\n timePicker: {\n 0: [],\n 1: []\n },\n monthPicker: []\n}), Oa = Z(null), sa = Z(!1), Ba = Z(!1), _a = Z(!1), Ya = Z(!1), Ve = Z(0), Ie = Z(0), At = () => {\n const e = j(() => sa.value ? [...Pe.selectionGrid, Pe.actionRow].filter((M) => M.length) : Ba.value ? [\n ...Pe.timePicker[0],\n ...Pe.timePicker[1],\n Ya.value ? [] : [Oa.value],\n Pe.actionRow\n ].filter((M) => M.length) : _a.value ? [...Pe.monthPicker, Pe.actionRow] : [Pe.monthYear, ...Pe.calendar, Pe.time, Pe.actionRow].filter((M) => M.length)), t = (M) => {\n Ve.value = M ? Ve.value + 1 : Ve.value - 1;\n let A = null;\n e.value[Ie.value] && (A = e.value[Ie.value][Ve.value]), !A && e.value[Ie.value + (M ? 1 : -1)] ? (Ie.value = Ie.value + (M ? 1 : -1), Ve.value = M ? 0 : e.value[Ie.value].length - 1) : A || (Ve.value = M ? Ve.value - 1 : Ve.value + 1);\n }, l = (M) => {\n if (Ie.value === 0 && !M || Ie.value === e.value.length && M) return;\n Ie.value = M ? Ie.value + 1 : Ie.value - 1, e.value[Ie.value] ? e.value[Ie.value] && !e.value[Ie.value][Ve.value] && Ve.value !== 0 && (Ve.value = e.value[Ie.value].length - 1) : Ie.value = M ? Ie.value - 1 : Ie.value + 1;\n }, n = (M) => {\n let A = null;\n e.value[Ie.value] && (A = e.value[Ie.value][Ve.value]), A ? A.focus({ preventScroll: !sa.value }) : Ve.value = M ? Ve.value - 1 : Ve.value + 1;\n }, a = () => {\n t(!0), n(!0);\n }, f = () => {\n t(!1), n(!1);\n }, i = () => {\n l(!1), n(!0);\n }, g = () => {\n l(!0), n(!0);\n }, d = (M, A) => {\n Pe[A] = M;\n }, P = (M, A) => {\n Pe[A] = M;\n }, v = () => {\n Ve.value = 0, Ie.value = 0;\n };\n return {\n buildMatrix: d,\n buildMultiLevelMatrix: P,\n setTimePickerBackRef: (M) => {\n Oa.value = M;\n },\n setSelectionGrid: (M) => {\n sa.value = M, v(), M || (Pe.selectionGrid = []);\n },\n setTimePicker: (M, A = !1) => {\n Ba.value = M, Ya.value = A, v(), M || (Pe.timePicker[0] = [], Pe.timePicker[1] = []);\n },\n setTimePickerElements: (M, A = 0) => {\n Pe.timePicker[A] = M;\n },\n arrowRight: a,\n arrowLeft: f,\n arrowUp: i,\n arrowDown: g,\n clearArrowNav: () => {\n Pe.monthYear = [], Pe.calendar = [], Pe.time = [], Pe.actionRow = [], Pe.selectionGrid = [], Pe.timePicker[0] = [], Pe.timePicker[1] = [], sa.value = !1, Ba.value = !1, Ya.value = !1, _a.value = !1, v(), Oa.value = null;\n },\n setMonthPicker: (M) => {\n _a.value = M, v();\n },\n refSets: Pe\n // exposed for testing\n };\n}, pn = (e) => ({\n menuAppearTop: \"dp-menu-appear-top\",\n menuAppearBottom: \"dp-menu-appear-bottom\",\n open: \"dp-slide-down\",\n close: \"dp-slide-up\",\n next: \"calendar-next\",\n previous: \"calendar-prev\",\n vNext: \"dp-slide-up\",\n vPrevious: \"dp-slide-down\",\n ...e ?? {}\n}), Wl = (e) => ({\n toggleOverlay: \"Toggle overlay\",\n menu: \"Datepicker menu\",\n input: \"Datepicker input\",\n openTimePicker: \"Open time picker\",\n closeTimePicker: \"Close time Picker\",\n incrementValue: (t) => `Increment ${t}`,\n decrementValue: (t) => `Decrement ${t}`,\n openTpOverlay: (t) => `Open ${t} overlay`,\n amPmButton: \"Switch AM/PM mode\",\n openYearsOverlay: \"Open years overlay\",\n openMonthsOverlay: \"Open months overlay\",\n nextMonth: \"Next month\",\n prevMonth: \"Previous month\",\n nextYear: \"Next year\",\n prevYear: \"Previous year\",\n day: void 0,\n weekDay: void 0,\n clearInput: \"Clear value\",\n calendarIcon: \"Calendar icon\",\n timePicker: \"Time picker\",\n monthPicker: (t) => `Month picker${t ? \" overlay\" : \"\"}`,\n yearPicker: (t) => `Year picker${t ? \" overlay\" : \"\"}`,\n timeOverlay: (t) => `${t} overlay`,\n ...e ?? {}\n}), gn = (e) => e ? typeof e == \"boolean\" ? e ? 2 : 0 : +e >= 2 ? +e : 2 : 0, Ul = (e) => {\n const t = typeof e == \"object\" && e, l = {\n static: !0,\n solo: !1\n };\n if (!e) return { ...l, count: gn(!1) };\n const n = t ? e : {}, a = t ? n.count ?? !0 : e, f = gn(a);\n return Object.assign(l, n, { count: f });\n}, Vl = (e, t, l) => e || (typeof l == \"string\" ? l : t), jl = (e) => typeof e == \"boolean\" ? e ? pn({}) : !1 : pn(e), Kl = (e) => {\n const t = {\n enterSubmit: !0,\n tabSubmit: !0,\n openMenu: \"open\",\n selectOnFocus: !1,\n rangeSeparator: \" - \",\n escClose: !0\n };\n return typeof e == \"object\" ? { ...t, ...e ?? {}, enabled: !0 } : { ...t, enabled: e };\n}, Gl = (e) => ({\n months: [],\n years: [],\n times: { hours: [], minutes: [], seconds: [] },\n ...e ?? {}\n}), Ql = (e) => ({\n showSelect: !0,\n showCancel: !0,\n showNow: !1,\n showPreview: !0,\n ...e ?? {}\n}), ql = (e) => {\n const t = { input: !1 };\n return typeof e == \"object\" ? { ...t, ...e ?? {}, enabled: !0 } : {\n enabled: e,\n ...t\n };\n}, Xl = (e) => ({ ...{\n allowStopPropagation: !0,\n closeOnScroll: !1,\n modeHeight: 255,\n allowPreventDefault: !1,\n closeOnClearValue: !0,\n closeOnAutoApply: !0,\n noSwipe: !1,\n keepActionRow: !1,\n onClickOutside: void 0,\n tabOutClosesMenu: !0,\n arrowLeft: void 0,\n keepViewOnOffsetClick: !1,\n timeArrowHoldThreshold: 0,\n shadowDom: !1,\n mobileBreakpoint: 600,\n setDateOnMenuClose: !1\n}, ...e ?? {} }), Jl = (e) => {\n const t = {\n dates: Array.isArray(e) ? e.map((l) => H(l)) : [],\n years: [],\n months: [],\n quarters: [],\n weeks: [],\n weekdays: [],\n options: { highlightDisabled: !1 }\n };\n return typeof e == \"function\" ? e : { ...t, ...e ?? {} };\n}, Zl = (e) => typeof e == \"object\" ? {\n type: e?.type ?? \"local\",\n hideOnOffsetDates: e?.hideOnOffsetDates ?? !1\n} : {\n type: e,\n hideOnOffsetDates: !1\n}, xl = (e) => {\n const t = {\n noDisabledRange: !1,\n showLastInRange: !0,\n minMaxRawRange: !1,\n partialRange: !0,\n disableTimeRangeValidation: !1,\n maxRange: void 0,\n minRange: void 0,\n autoRange: void 0,\n fixedStart: !1,\n fixedEnd: !1\n };\n return typeof e == \"object\" ? { enabled: !0, ...t, ...e } : {\n enabled: e,\n ...t\n };\n}, er = (e) => e ? typeof e == \"string\" ? {\n timezone: e,\n exactMatch: !1,\n dateInTz: void 0,\n emitTimezone: void 0,\n convertModel: !0\n} : {\n timezone: e.timezone,\n exactMatch: e.exactMatch ?? !1,\n dateInTz: e.dateInTz ?? void 0,\n emitTimezone: e.emitTimezone ?? void 0,\n convertModel: e.convertModel ?? !0\n} : { timezone: void 0, exactMatch: !1, emitTimezone: void 0 }, Ia = (e, t, l, n) => new Map(\n e.map((a) => {\n const f = Qa(a, t, n);\n return [Za(f, l), f];\n })\n), tr = (e, t) => e.length ? new Map(\n e.map((l) => {\n const n = Qa(l.date, t);\n return [Za(n, Lt.DATE), l];\n })\n) : null, ar = (e) => {\n const t = On(e.isMonthPicker, e.isYearPicker);\n return {\n minDate: La(e.minDate, e.timezone, e.isSpecific),\n maxDate: La(e.maxDate, e.timezone, e.isSpecific),\n disabledDates: Ta(e.disabledDates) ? Ia(e.disabledDates, e.timezone, t, e.isSpecific) : e.disabledDates,\n allowedDates: Ta(e.allowedDates) ? Ia(e.allowedDates, e.timezone, t, e.isSpecific) : null,\n highlight: typeof e.highlight == \"object\" && Ta(e.highlight?.dates) ? Ia(e.highlight.dates, e.timezone, t) : e.highlight,\n markers: tr(e.markers, e.timezone)\n };\n}, nr = (e) => typeof e == \"boolean\" ? { enabled: e, dragSelect: !0, limit: null } : {\n enabled: !!e,\n limit: e.limit ? +e.limit : null,\n dragSelect: e.dragSelect ?? !0\n}, lr = (e) => ({\n ...Object.fromEntries(\n Object.keys(e).map((l) => {\n const n = l, a = e[n], f = typeof e[n] == \"string\" ? { [a]: !0 } : Object.fromEntries(a.map((i) => [i, !0]));\n return [l, f];\n })\n )\n}), Oe = (e) => {\n const t = () => {\n const U = e.enableSeconds ? \":ss\" : \"\", $ = e.enableMinutes ? \":mm\" : \"\";\n return e.is24 ? `HH${$}${U}` : `hh${$}${U} aa`;\n }, l = () => e.format ? e.format : e.monthPicker ? \"MM/yyyy\" : e.timePicker ? t() : e.weekPicker ? `${C.value?.type === \"iso\" ? \"II\" : \"ww\"}-RR` : e.yearPicker ? \"yyyy\" : e.quarterPicker ? \"QQQ/yyyy\" : e.enableTimePicker ? `MM/dd/yyyy, ${t()}` : \"MM/dd/yyyy\", n = (U) => En(U, e.enableSeconds), a = () => z.value.enabled ? e.startTime && Array.isArray(e.startTime) ? [n(e.startTime[0]), n(e.startTime[1])] : null : e.startTime && !Array.isArray(e.startTime) ? n(e.startTime) : null, f = j(() => Ul(e.multiCalendars)), i = j(() => a()), g = j(() => Wl(e.ariaLabels)), d = j(() => Gl(e.filters)), P = j(() => jl(e.transitions)), v = j(() => Ql(e.actionRow)), R = j(\n () => Vl(e.previewFormat, e.format, l())\n ), h = j(() => Kl(e.textInput)), T = j(() => ql(e.inline)), F = j(() => Xl(e.config)), _ = j(() => Jl(e.highlight)), C = j(() => Zl(e.weekNumbers)), M = j(() => er(e.timezone)), A = j(() => nr(e.multiDates)), m = j(\n () => ar({\n minDate: e.minDate,\n maxDate: e.maxDate,\n disabledDates: e.disabledDates,\n allowedDates: e.allowedDates,\n highlight: _.value,\n markers: e.markers,\n timezone: M.value,\n isSpecific: e.monthPicker || e.yearPicker || e.quarterPicker,\n isMonthPicker: e.monthPicker,\n isYearPicker: e.yearPicker\n })\n ), z = j(() => xl(e.range)), L = j(() => lr(e.ui));\n return {\n defaultedTransitions: P,\n defaultedMultiCalendars: f,\n defaultedStartTime: i,\n defaultedAriaLabels: g,\n defaultedFilters: d,\n defaultedActionRow: v,\n defaultedPreviewFormat: R,\n defaultedTextInput: h,\n defaultedInline: T,\n defaultedConfig: F,\n defaultedHighlight: _,\n defaultedWeekNumbers: C,\n defaultedRange: z,\n propDates: m,\n defaultedTz: M,\n defaultedMultiDates: A,\n defaultedUI: L,\n getDefaultPattern: l,\n getDefaultStartTime: a,\n handleEventPropagation: (U) => {\n F.value.allowStopPropagation && U.stopPropagation(), F.value.allowPreventDefault && U.preventDefault();\n }\n };\n}, rr = (e, t, { isInputFocused: l, isTextInputDate: n }) => {\n const a = Z(), { defaultedTextInput: f, defaultedRange: i, defaultedTz: g, defaultedMultiDates: d, getDefaultPattern: P } = Oe(t), v = Z(\"\"), R = qt(t, \"format\"), h = qt(t, \"formatLocale\");\n rt(\n a,\n () => {\n typeof t.onInternalModelChange == \"function\" && e(\"internal-model-change\", a.value, x(!0));\n },\n { deep: !0 }\n ), rt(i, (o, X) => {\n o.enabled !== X.enabled && (a.value = null);\n }), rt(R, () => {\n S();\n });\n const T = (o) => g.value.timezone && g.value.convertModel ? Ze(o, g.value.timezone) : o, F = (o) => {\n if (g.value.timezone && g.value.convertModel) {\n const X = Ml(g.value.timezone, o);\n return fl(o, X);\n }\n return o;\n }, _ = (o, X, B = !1) => Ln(\n o,\n t.format,\n t.formatLocale,\n f.value.rangeSeparator,\n t.modelAuto,\n X ?? P(),\n B\n ), C = (o) => o ? t.modelType ? k(o) : {\n hours: yt(o),\n minutes: $t(o),\n seconds: t.enableSeconds ? zt(o) : 0\n } : null, M = (o) => t.modelType ? k(o) : { month: Me(o), year: ye(o) }, A = (o) => Array.isArray(o) ? d.value.enabled ? o.map((X) => m(X, ut(H(), X))) : oa(\n () => [\n ut(H(), o[0]),\n o[1] ? ut(H(), o[1]) : It(i.value.partialRange)\n ],\n i.value.enabled\n ) : ut(H(), +o), m = (o, X) => (typeof o == \"string\" || typeof o == \"number\") && t.modelType ? q(o) : X, z = (o) => Array.isArray(o) ? [\n m(\n o[0],\n Mt(null, +o[0].hours, +o[0].minutes, o[0].seconds)\n ),\n m(\n o[1],\n Mt(null, +o[1].hours, +o[1].minutes, o[1].seconds)\n )\n ] : m(o, Mt(null, o.hours, o.minutes, o.seconds)), L = (o) => {\n const X = Se(H(), { date: 1 });\n return Array.isArray(o) ? d.value.enabled ? o.map((B) => m(B, pt(X, +B.month, +B.year))) : oa(\n () => [\n m(o[0], pt(X, +o[0].month, +o[0].year)),\n m(\n o[1],\n o[1] ? pt(X, +o[1].month, +o[1].year) : It(i.value.partialRange)\n )\n ],\n i.value.enabled\n ) : m(o, pt(X, +o.month, +o.year));\n }, le = (o) => {\n if (Array.isArray(o))\n return o.map((X) => q(X));\n throw new Error(Xa.dateArr(\"multi-dates\"));\n }, U = (o) => {\n if (Array.isArray(o) && i.value.enabled) {\n const X = o[0], B = o[1];\n return [\n H(Array.isArray(X) ? X[0] : null),\n Array.isArray(B) && B.length ? H(B[0]) : null\n ];\n }\n return H(o[0]);\n }, $ = (o) => t.modelAuto ? Array.isArray(o) ? [q(o[0]), q(o[1])] : t.autoApply ? [q(o)] : [q(o), null] : Array.isArray(o) ? oa(\n () => o[1] ? [\n q(o[0]),\n o[1] ? q(o[1]) : It(i.value.partialRange)\n ] : [q(o[0])],\n i.value.enabled\n ) : q(o), ee = () => {\n Array.isArray(a.value) && i.value.enabled && a.value.length === 1 && a.value.push(It(i.value.partialRange));\n }, O = () => {\n const o = a.value;\n return [\n k(o[0]),\n o[1] ? k(o[1]) : It(i.value.partialRange)\n ];\n }, J = () => Array.isArray(a.value) ? a.value[1] ? O() : k(Ne(a.value[0])) : [], ce = () => (a.value || []).map((o) => k(o)), pe = (o = !1) => (o || ee(), t.modelAuto ? J() : d.value.enabled ? ce() : Array.isArray(a.value) ? oa(() => O(), i.value.enabled) : k(Ne(a.value))), p = (o) => !o || Array.isArray(o) && !o.length ? null : t.timePicker ? z(Ne(o)) : t.monthPicker ? L(Ne(o)) : t.yearPicker ? A(Ne(o)) : d.value.enabled ? le(Ne(o)) : t.weekPicker ? U(Ne(o)) : $(Ne(o)), Y = (o) => {\n if (n.value) return;\n const X = p(o);\n za(Ne(X)) ? (a.value = Ne(X), S()) : (a.value = null, v.value = \"\");\n }, te = () => {\n const o = (X) => ft(X, f.value.format);\n return `${o(a.value[0])} ${f.value.rangeSeparator} ${a.value[1] ? o(a.value[1]) : \"\"}`;\n }, y = () => l.value && a.value ? Array.isArray(a.value) ? te() : ft(a.value, f.value.format) : _(a.value), V = () => a.value ? d.value.enabled ? a.value.map((o) => _(o)).join(\"; \") : f.value.enabled && typeof f.value.format == \"string\" ? y() : _(a.value) : \"\", S = () => {\n !t.format || typeof t.format == \"string\" || f.value.enabled && typeof f.value.format == \"string\" ? v.value = V() : v.value = t.format(a.value);\n }, q = (o) => {\n if (t.utc) {\n const X = new Date(o);\n return t.utc === \"preserve\" ? new Date(X.getTime() + X.getTimezoneOffset() * 6e4) : X;\n }\n return t.modelType ? $l.includes(t.modelType) ? T(new Date(o)) : t.modelType === \"format\" && (typeof t.format == \"string\" || !t.format) ? T(\n Na(o, P(), /* @__PURE__ */ new Date(), { locale: h.value })\n ) : T(\n Na(o, t.modelType, /* @__PURE__ */ new Date(), { locale: h.value })\n ) : T(new Date(o));\n }, k = (o) => o ? t.utc ? Il(o, t.utc === \"preserve\", t.enableSeconds) : t.modelType ? t.modelType === \"timestamp\" ? +F(o) : t.modelType === \"iso\" ? F(o).toISOString() : t.modelType === \"format\" && (typeof t.format == \"string\" || !t.format) ? _(F(o)) : _(F(o), t.modelType, !0) : F(o) : \"\", se = (o, X = !1, B = !1) => {\n if (B) return o;\n if (e(\"update:model-value\", o), g.value.emitTimezone && X) {\n const be = Array.isArray(o) ? o.map((Ae) => Ze(Ne(Ae), g.value.emitTimezone)) : Ze(Ne(o), g.value.emitTimezone);\n e(\"update:model-timezone-value\", be);\n }\n }, u = (o) => Array.isArray(a.value) ? d.value.enabled ? a.value.map((X) => o(X)) : [\n o(a.value[0]),\n a.value[1] ? o(a.value[1]) : It(i.value.partialRange)\n ] : o(Ne(a.value)), re = () => {\n if (Array.isArray(a.value)) {\n const o = mt(a.value[0], t.weekStart), X = a.value[1] ? mt(a.value[1], t.weekStart) : [];\n return [o.map((B) => H(B)), X.map((B) => H(B))];\n }\n return mt(a.value, t.weekStart).map((o) => H(o));\n }, G = (o, X) => se(Ne(u(o)), !1, X), I = (o) => {\n const X = re();\n return o ? X : e(\"update:model-value\", re());\n }, x = (o = !1) => (o || S(), t.monthPicker ? G(M, o) : t.timePicker ? G(C, o) : t.yearPicker ? G(ye, o) : t.weekPicker ? I(o) : se(pe(o), !0, o));\n return {\n inputValue: v,\n internalModelValue: a,\n checkBeforeEmit: () => a.value ? i.value.enabled ? i.value.partialRange ? a.value.length >= 1 : a.value.length === 2 : !!a.value : !1,\n parseExternalModelValue: Y,\n formatInputValue: S,\n emitModelValue: x\n };\n}, or = (e, t) => {\n const { defaultedFilters: l, propDates: n } = Oe(e), { validateMonthYearInRange: a } = Tt(e), f = (v, R) => {\n let h = v;\n return l.value.months.includes(Me(h)) ? (h = R ? Ct(v, 1) : Jt(v, 1), f(h, R)) : h;\n }, i = (v, R) => {\n let h = v;\n return l.value.years.includes(ye(h)) ? (h = R ? Mn(v, 1) : $n(v, 1), i(h, R)) : h;\n }, g = (v, R = !1) => {\n const h = Se(H(), { month: e.month, year: e.year });\n let T = v ? Ct(h, 1) : Jt(h, 1);\n e.disableYearSelect && (T = ut(T, e.year));\n let F = Me(T), _ = ye(T);\n l.value.months.includes(F) && (T = f(T, v), F = Me(T), _ = ye(T)), l.value.years.includes(_) && (T = i(T, v), _ = ye(T)), a(F, _, v, e.preventMinMaxNavigation) && d(F, _, R);\n }, d = (v, R, h) => {\n t(\"update-month-year\", { month: v, year: R, fromNav: h });\n }, P = j(() => (v) => Nn(\n Se(H(), { month: e.month, year: e.year }),\n n.value.maxDate,\n n.value.minDate,\n e.preventMinMaxNavigation,\n v\n ));\n return { handleMonthYearChange: g, isDisabled: P, updateMonthYear: d };\n}, va = {\n multiCalendars: { type: [Boolean, Number, String, Object], default: void 0 },\n modelValue: { type: [String, Date, Array, Object, Number], default: null },\n modelType: { type: String, default: null },\n position: { type: String, default: \"center\" },\n dark: { type: Boolean, default: !1 },\n format: {\n type: [String, Function],\n default: () => null\n },\n autoPosition: { type: [Boolean, String], default: !0 },\n altPosition: { type: Function, default: null },\n transitions: { type: [Boolean, Object], default: !0 },\n formatLocale: { type: Object, default: null },\n utc: { type: [Boolean, String], default: !1 },\n ariaLabels: { type: Object, default: () => ({}) },\n offset: { type: [Number, String], default: 10 },\n hideNavigation: { type: Array, default: () => [] },\n timezone: { type: [String, Object], default: null },\n vertical: { type: Boolean, default: !1 },\n disableMonthYearSelect: { type: Boolean, default: !1 },\n disableYearSelect: { type: Boolean, default: !1 },\n dayClass: {\n type: Function,\n default: null\n },\n yearRange: { type: Array, default: () => [1900, 2100] },\n enableTimePicker: { type: Boolean, default: !0 },\n autoApply: { type: Boolean, default: !1 },\n disabledDates: { type: [Array, Function], default: () => [] },\n monthNameFormat: { type: String, default: \"short\" },\n startDate: { type: [Date, String], default: null },\n startTime: { type: [Object, Array], default: null },\n hideOffsetDates: { type: Boolean, default: !1 },\n noToday: { type: Boolean, default: !1 },\n disabledWeekDays: { type: Array, default: () => [] },\n allowedDates: { type: Array, default: null },\n nowButtonLabel: { type: String, default: \"Now\" },\n markers: { type: Array, default: () => [] },\n escClose: { type: Boolean, default: !0 },\n spaceConfirm: { type: Boolean, default: !0 },\n monthChangeOnArrows: { type: Boolean, default: !0 },\n presetDates: { type: Array, default: () => [] },\n flow: { type: Array, default: () => [] },\n partialFlow: { type: Boolean, default: !1 },\n preventMinMaxNavigation: { type: Boolean, default: !1 },\n reverseYears: { type: Boolean, default: !1 },\n weekPicker: { type: Boolean, default: !1 },\n filters: { type: Object, default: () => ({}) },\n arrowNavigation: { type: Boolean, default: !1 },\n highlight: {\n type: [Function, Object],\n default: null\n },\n teleport: { type: [Boolean, String, Object], default: null },\n teleportCenter: { type: Boolean, default: !1 },\n locale: { type: String, default: \"en-Us\" },\n weekNumName: { type: String, default: \"W\" },\n weekStart: { type: [Number, String], default: 1 },\n weekNumbers: {\n type: [String, Function, Object],\n default: null\n },\n monthChangeOnScroll: { type: [Boolean, String], default: !0 },\n dayNames: {\n type: [Function, Array],\n default: null\n },\n monthPicker: { type: Boolean, default: !1 },\n customProps: { type: Object, default: null },\n yearPicker: { type: Boolean, default: !1 },\n modelAuto: { type: Boolean, default: !1 },\n selectText: { type: String, default: \"Select\" },\n cancelText: { type: String, default: \"Cancel\" },\n previewFormat: {\n type: [String, Function],\n default: () => \"\"\n },\n multiDates: { type: [Object, Boolean], default: !1 },\n ignoreTimeValidation: { type: Boolean, default: !1 },\n minDate: { type: [Date, String], default: null },\n maxDate: { type: [Date, String], default: null },\n minTime: { type: Object, default: null },\n maxTime: { type: Object, default: null },\n name: { type: String, default: null },\n placeholder: { type: String, default: \"\" },\n hideInputIcon: { type: Boolean, default: !1 },\n clearable: { type: Boolean, default: !0 },\n alwaysClearable: { type: Boolean, default: !1 },\n state: { type: Boolean, default: null },\n required: { type: Boolean, default: !1 },\n autocomplete: { type: String, default: \"off\" },\n timePicker: { type: Boolean, default: !1 },\n enableSeconds: { type: Boolean, default: !1 },\n is24: { type: Boolean, default: !0 },\n noHoursOverlay: { type: Boolean, default: !1 },\n noMinutesOverlay: { type: Boolean, default: !1 },\n noSecondsOverlay: { type: Boolean, default: !1 },\n hoursGridIncrement: { type: [String, Number], default: 1 },\n minutesGridIncrement: { type: [String, Number], default: 5 },\n secondsGridIncrement: { type: [String, Number], default: 5 },\n hoursIncrement: { type: [Number, String], default: 1 },\n minutesIncrement: { type: [Number, String], default: 1 },\n secondsIncrement: { type: [Number, String], default: 1 },\n range: { type: [Boolean, Object], default: !1 },\n uid: { type: String, default: null },\n disabled: { type: Boolean, default: !1 },\n readonly: { type: Boolean, default: !1 },\n inline: { type: [Boolean, Object], default: !1 },\n textInput: { type: [Boolean, Object], default: !1 },\n sixWeeks: { type: [Boolean, String], default: !1 },\n actionRow: { type: Object, default: () => ({}) },\n focusStartDate: { type: Boolean, default: !1 },\n disabledTimes: { type: [Function, Array], default: void 0 },\n timePickerInline: { type: Boolean, default: !1 },\n calendar: { type: Function, default: null },\n config: { type: Object, default: void 0 },\n quarterPicker: { type: Boolean, default: !1 },\n yearFirst: { type: Boolean, default: !1 },\n loading: { type: Boolean, default: !1 },\n onInternalModelChange: { type: [Function, Object], default: null },\n enableMinutes: { type: Boolean, default: !0 },\n ui: { type: Object, default: () => ({}) }\n}, dt = {\n ...va,\n shadow: { type: Boolean, default: !1 },\n flowStep: { type: Number, default: 0 },\n internalModelValue: { type: [Date, Array], default: null },\n noOverlayFocus: { type: Boolean, default: !1 },\n collapse: { type: Boolean, default: !1 },\n menuWrapRef: { type: Object, default: null },\n getInputRect: { type: Function, default: () => ({}) },\n isTextInputDate: { type: Boolean, default: !1 },\n isMobile: { type: Boolean, default: void 0 }\n}, sr = [\"title\"], ur = [\"disabled\"], ir = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"ActionRow\",\n props: {\n menuMount: { type: Boolean, default: !1 },\n calendarWidth: { type: Number, default: 0 },\n ...dt\n },\n emits: [\"close-picker\", \"select-date\", \"select-now\", \"invalid-select\"],\n setup(e, { emit: t }) {\n const l = t, n = e, {\n defaultedActionRow: a,\n defaultedPreviewFormat: f,\n defaultedMultiCalendars: i,\n defaultedTextInput: g,\n defaultedInline: d,\n defaultedRange: P,\n defaultedMultiDates: v\n } = Oe(n), { isTimeValid: R, isMonthValid: h } = Tt(n), { buildMatrix: T } = At(), F = Z(null), _ = Z(null), C = Z(!1), M = Z({}), A = Z(null), m = Z(null);\n Ue(() => {\n n.arrowNavigation && T([Le(F), Le(_)], \"actionRow\"), z(), window.addEventListener(\"resize\", z);\n }), Ut(() => {\n window.removeEventListener(\"resize\", z);\n });\n const z = () => {\n C.value = !1, setTimeout(() => {\n const p = A.value?.getBoundingClientRect(), Y = m.value?.getBoundingClientRect();\n p && Y && (M.value.maxWidth = `${Y.width - p.width - 20}px`), C.value = !0;\n }, 0);\n }, L = j(() => P.value.enabled && !P.value.partialRange && n.internalModelValue ? n.internalModelValue.length === 2 : !0), le = j(\n () => !R.value(n.internalModelValue) || !h.value(n.internalModelValue) || !L.value\n ), U = () => {\n const p = f.value;\n return n.timePicker || n.monthPicker, p(Ne(n.internalModelValue));\n }, $ = () => {\n const p = n.internalModelValue;\n return i.value.count > 0 ? `${ee(p[0])} - ${ee(p[1])}` : [ee(p[0]), ee(p[1])];\n }, ee = (p) => Ln(\n p,\n f.value,\n n.formatLocale,\n g.value.rangeSeparator,\n n.modelAuto,\n f.value\n ), O = j(() => !n.internalModelValue || !n.menuMount ? \"\" : typeof f.value == \"string\" ? Array.isArray(n.internalModelValue) ? n.internalModelValue.length === 2 && n.internalModelValue[1] ? $() : v.value.enabled ? n.internalModelValue.map((p) => `${ee(p)}`) : n.modelAuto ? `${ee(n.internalModelValue[0])}` : `${ee(n.internalModelValue[0])} -` : ee(n.internalModelValue) : U()), J = () => v.value.enabled ? \"; \" : \" - \", ce = j(\n () => Array.isArray(O.value) ? O.value.join(J()) : O.value\n ), pe = () => {\n R.value(n.internalModelValue) && h.value(n.internalModelValue) && L.value ? l(\"select-date\") : l(\"invalid-select\");\n };\n return (p, Y) => (w(), W(\"div\", {\n ref_key: \"actionRowRef\",\n ref: m,\n class: \"dp__action_row\"\n }, [\n p.$slots[\"action-row\"] ? ie(p.$slots, \"action-row\", ze(He({ key: 0 }, {\n internalModelValue: p.internalModelValue,\n disabled: le.value,\n selectDate: () => p.$emit(\"select-date\"),\n closePicker: () => p.$emit(\"close-picker\")\n }))) : (w(), W(ke, { key: 1 }, [\n s(a).showPreview ? (w(), W(\"div\", {\n key: 0,\n class: \"dp__selection_preview\",\n title: ce.value,\n style: lt(M.value)\n }, [\n p.$slots[\"action-preview\"] && C.value ? ie(p.$slots, \"action-preview\", {\n key: 0,\n value: p.internalModelValue\n }) : Q(\"\", !0),\n !p.$slots[\"action-preview\"] && C.value ? (w(), W(ke, { key: 1 }, [\n gt(Ke(ce.value), 1)\n ], 64)) : Q(\"\", !0)\n ], 12, sr)) : Q(\"\", !0),\n he(\"div\", {\n ref_key: \"actionBtnContainer\",\n ref: A,\n class: \"dp__action_buttons\",\n \"data-dp-element\": \"action-row\"\n }, [\n p.$slots[\"action-buttons\"] ? ie(p.$slots, \"action-buttons\", {\n key: 0,\n value: p.internalModelValue\n }) : Q(\"\", !0),\n p.$slots[\"action-buttons\"] ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n !s(d).enabled && s(a).showCancel ? (w(), W(\"button\", {\n key: 0,\n ref_key: \"cancelButtonRef\",\n ref: F,\n type: \"button\",\n class: \"dp__action_button dp__action_cancel\",\n onClick: Y[0] || (Y[0] = (te) => p.$emit(\"close-picker\")),\n onKeydown: Y[1] || (Y[1] = (te) => s(qe)(te, () => p.$emit(\"close-picker\")))\n }, Ke(p.cancelText), 545)) : Q(\"\", !0),\n s(a).showNow ? (w(), W(\"button\", {\n key: 1,\n type: \"button\",\n class: \"dp__action_button dp__action_cancel\",\n onClick: Y[2] || (Y[2] = (te) => p.$emit(\"select-now\")),\n onKeydown: Y[3] || (Y[3] = (te) => s(qe)(te, () => p.$emit(\"select-now\")))\n }, Ke(p.nowButtonLabel), 33)) : Q(\"\", !0),\n s(a).showSelect ? (w(), W(\"button\", {\n key: 2,\n ref_key: \"selectButtonRef\",\n ref: _,\n type: \"button\",\n class: \"dp__action_button dp__action_select\",\n disabled: le.value,\n \"data-test-id\": \"select-button\",\n onKeydown: Y[4] || (Y[4] = (te) => s(qe)(te, () => pe())),\n onClick: pe\n }, Ke(p.selectText), 41, ur)) : Q(\"\", !0)\n ], 64))\n ], 512)\n ], 64))\n ], 512));\n }\n}), dr = [\"role\", \"aria-label\", \"tabindex\"], cr = { class: \"dp__selection_grid_header\" }, fr = [\"aria-selected\", \"aria-disabled\", \"data-test-id\", \"onClick\", \"onKeydown\", \"onMouseover\"], vr = [\"aria-label\"], ta = /* @__PURE__ */ We({\n __name: \"SelectionOverlay\",\n props: {\n items: {},\n type: {},\n isLast: { type: Boolean },\n arrowNavigation: { type: Boolean },\n skipButtonRef: { type: Boolean },\n headerRefs: {},\n hideNavigation: {},\n escClose: { type: Boolean },\n useRelative: { type: Boolean },\n height: {},\n textInput: { type: [Boolean, Object] },\n config: {},\n noOverlayFocus: { type: Boolean },\n focusValue: {},\n menuWrapRef: {},\n ariaLabels: {},\n overlayLabel: {}\n },\n emits: [\"selected\", \"toggle\", \"reset-flow\", \"hover-value\"],\n setup(e, { expose: t, emit: l }) {\n const { setSelectionGrid: n, buildMultiLevelMatrix: a, setMonthPicker: f } = At(), i = l, g = e, { defaultedAriaLabels: d, defaultedTextInput: P, defaultedConfig: v, handleEventPropagation: R } = Oe(\n g\n ), { hideNavigationButtons: h } = ga(), T = Z(!1), F = Z(null), _ = Z(null), C = Z([]), M = Z(), A = Z(null), m = Z(0), z = Z(null);\n Zn(() => {\n F.value = null;\n }), Ue(() => {\n at().then(() => ce()), g.noOverlayFocus || le(), L(!0);\n }), Ut(() => L(!1));\n const L = (u) => {\n g.arrowNavigation && (g.headerRefs?.length ? f(u) : n(u));\n }, le = () => {\n const u = Le(_);\n u && (P.value.enabled || (F.value ? F.value?.focus({ preventScroll: !0 }) : u.focus({ preventScroll: !0 })), T.value = u.clientHeight < u.scrollHeight);\n }, U = j(\n () => ({\n dp__overlay: !0,\n \"dp--overlay-absolute\": !g.useRelative,\n \"dp--overlay-relative\": g.useRelative\n })\n ), $ = j(\n () => g.useRelative ? { height: `${g.height}px`, width: \"var(--dp-menu-min-width)\" } : void 0\n ), ee = j(() => ({\n dp__overlay_col: !0\n })), O = j(\n () => ({\n dp__btn: !0,\n dp__button: !0,\n dp__overlay_action: !0,\n dp__over_action_scroll: T.value,\n dp__button_bottom: g.isLast\n })\n ), J = j(() => ({\n dp__overlay_container: !0,\n dp__container_flex: g.items?.length <= 6,\n dp__container_block: g.items?.length > 6\n }));\n rt(\n () => g.items,\n () => ce(!1),\n { deep: !0 }\n );\n const ce = (u = !0) => {\n at().then(() => {\n const re = Le(F), G = Le(_), I = Le(A), x = Le(z), c = I ? I.getBoundingClientRect().height : 0;\n G && (G.getBoundingClientRect().height ? m.value = G.getBoundingClientRect().height - c : m.value = v.value.modeHeight - c), re && x && u && (x.scrollTop = re.offsetTop - x.offsetTop - (m.value / 2 - re.getBoundingClientRect().height) - c);\n });\n }, pe = (u) => {\n u.disabled || i(\"selected\", u.value);\n }, p = () => {\n i(\"toggle\"), i(\"reset-flow\");\n }, Y = (u) => {\n g.escClose && (p(), R(u));\n }, te = (u, re, G, I) => {\n u && ((re.active || re.value === g.focusValue) && (F.value = u), g.arrowNavigation && (Array.isArray(C.value[G]) ? C.value[G][I] = u : C.value[G] = [u], y()));\n }, y = () => {\n const u = g.headerRefs?.length ? [g.headerRefs].concat(C.value) : C.value.concat([g.skipButtonRef ? [] : [A.value]]);\n a(Ne(u), g.headerRefs?.length ? \"monthPicker\" : \"selectionGrid\");\n }, V = (u) => {\n g.arrowNavigation || Dt(u, v.value, !0);\n }, S = (u) => {\n M.value = u, i(\"hover-value\", u);\n }, q = () => {\n if (p(), !g.isLast) {\n const u = Fa(g.menuWrapRef ?? null, \"action-row\");\n u && Cn(u)?.focus();\n }\n }, k = (u) => {\n switch (u.key) {\n case Re.esc:\n return Y(u);\n case Re.arrowLeft:\n return V(u);\n case Re.arrowRight:\n return V(u);\n case Re.arrowUp:\n return V(u);\n case Re.arrowDown:\n return V(u);\n default:\n return;\n }\n }, se = (u) => {\n if (u.key === Re.enter) return p();\n if (u.key === Re.tab) return q();\n };\n return t({ focusGrid: le }), (u, re) => (w(), W(\"div\", {\n ref_key: \"gridWrapRef\",\n ref: _,\n class: De(U.value),\n style: lt($.value),\n role: e.useRelative ? void 0 : \"dialog\",\n \"aria-label\": e.overlayLabel,\n tabindex: e.useRelative ? void 0 : \"0\",\n onKeydown: k,\n onClick: re[0] || (re[0] = Xt(() => {\n }, [\"prevent\"]))\n }, [\n he(\"div\", {\n ref_key: \"containerRef\",\n ref: z,\n class: De(J.value),\n style: lt({ \"--dp-overlay-height\": `${m.value}px` }),\n role: \"grid\"\n }, [\n he(\"div\", cr, [\n ie(u.$slots, \"header\")\n ]),\n u.$slots.overlay ? ie(u.$slots, \"overlay\", { key: 0 }) : (w(!0), W(ke, { key: 1 }, Ce(e.items, (G, I) => (w(), W(\"div\", {\n key: I,\n class: De([\"dp__overlay_row\", { dp__flex_row: e.items.length >= 3 }]),\n role: \"row\"\n }, [\n (w(!0), W(ke, null, Ce(G, (x, c) => (w(), W(\"div\", {\n key: x.value,\n ref_for: !0,\n ref: (o) => te(o, x, I, c),\n role: \"gridcell\",\n class: De(ee.value),\n \"aria-selected\": x.active || void 0,\n \"aria-disabled\": x.disabled || void 0,\n tabindex: \"0\",\n \"data-test-id\": x.text,\n onClick: Xt((o) => pe(x), [\"prevent\"]),\n onKeydown: (o) => s(qe)(o, () => pe(x), !0),\n onMouseover: (o) => S(x.value)\n }, [\n he(\"div\", {\n class: De(x.className)\n }, [\n u.$slots.item ? ie(u.$slots, \"item\", {\n key: 0,\n item: x\n }) : Q(\"\", !0),\n u.$slots.item ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n gt(Ke(x.text), 1)\n ], 64))\n ], 2)\n ], 42, fr))), 128))\n ], 2))), 128))\n ], 6),\n u.$slots[\"button-icon\"] ? ua((w(), W(\"button\", {\n key: 0,\n ref_key: \"toggleButton\",\n ref: A,\n type: \"button\",\n \"aria-label\": s(d)?.toggleOverlay,\n class: De(O.value),\n tabindex: \"0\",\n onClick: p,\n onKeydown: se\n }, [\n ie(u.$slots, \"button-icon\")\n ], 42, vr)), [\n [ia, !s(h)(e.hideNavigation, e.type)]\n ]) : Q(\"\", !0)\n ], 46, dr));\n }\n}), mr = [\"data-dp-mobile\"], ma = /* @__PURE__ */ We({\n __name: \"InstanceWrap\",\n props: {\n multiCalendars: {},\n stretch: { type: Boolean },\n collapse: { type: Boolean },\n isMobile: { type: Boolean }\n },\n setup(e) {\n const t = e, l = j(\n () => t.multiCalendars > 0 ? [...Array(t.multiCalendars).keys()] : [0]\n ), n = j(() => ({\n dp__instance_calendar: t.multiCalendars > 0\n }));\n return (a, f) => (w(), W(\"div\", {\n class: De({\n dp__menu_inner: !e.stretch,\n \"dp--menu--inner-stretched\": e.stretch,\n dp__flex_display: e.multiCalendars > 0,\n \"dp--flex-display-collapsed\": e.collapse\n }),\n \"data-dp-mobile\": e.isMobile\n }, [\n (w(!0), W(ke, null, Ce(l.value, (i, g) => (w(), W(\"div\", {\n key: i,\n class: De(n.value)\n }, [\n ie(a.$slots, \"default\", {\n instance: i,\n index: g\n })\n ], 2))), 128))\n ], 10, mr));\n }\n}), pr = [\"data-dp-element\", \"aria-label\", \"aria-disabled\"], Qt = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"ArrowBtn\",\n props: {\n ariaLabel: {},\n elName: {},\n disabled: { type: Boolean }\n },\n emits: [\"activate\", \"set-ref\"],\n setup(e, { emit: t }) {\n const l = t, n = Z(null);\n return Ue(() => l(\"set-ref\", n)), (a, f) => (w(), W(\"button\", {\n ref_key: \"elRef\",\n ref: n,\n type: \"button\",\n \"data-dp-element\": e.elName,\n class: \"dp__btn dp--arrow-btn-nav\",\n tabindex: \"0\",\n \"aria-label\": e.ariaLabel,\n \"aria-disabled\": e.disabled || void 0,\n onClick: f[0] || (f[0] = (i) => l(\"activate\")),\n onKeydown: f[1] || (f[1] = (i) => s(qe)(i, () => l(\"activate\"), !0))\n }, [\n he(\"span\", {\n class: De([\"dp__inner_nav\", { dp__inner_nav_disabled: e.disabled }])\n }, [\n ie(a.$slots, \"default\")\n ], 2)\n ], 40, pr));\n }\n}), gr = [\"aria-label\", \"data-test-id\"], Wn = /* @__PURE__ */ We({\n __name: \"YearModePicker\",\n props: {\n ...dt,\n showYearPicker: { type: Boolean, default: !1 },\n items: { type: Array, default: () => [] },\n instance: { type: Number, default: 0 },\n year: { type: Number, default: 0 },\n isDisabled: { type: Function, default: () => !1 }\n },\n emits: [\"toggle-year-picker\", \"year-select\", \"handle-year\"],\n setup(e, { emit: t }) {\n const l = t, n = e, { showRightIcon: a, showLeftIcon: f } = ga(), { defaultedConfig: i, defaultedMultiCalendars: g, defaultedAriaLabels: d, defaultedTransitions: P, defaultedUI: v } = Oe(n), { showTransition: R, transitionName: h } = aa(P), T = Z(!1), F = j(() => Ja(n.year, n.locale)), _ = (A = !1, m) => {\n T.value = !T.value, l(\"toggle-year-picker\", { flow: A, show: m });\n }, C = (A) => {\n T.value = !1, l(\"year-select\", A);\n }, M = (A = !1) => {\n l(\"handle-year\", A);\n };\n return (A, m) => (w(), W(ke, null, [\n he(\"div\", {\n class: De([\"dp--year-mode-picker\", { \"dp--hidden-el\": T.value }])\n }, [\n s(f)(s(g), e.instance) ? (w(), Te(Qt, {\n key: 0,\n ref: \"mpPrevIconRef\",\n \"aria-label\": s(d)?.prevYear,\n disabled: e.isDisabled(!1),\n class: De(s(v)?.navBtnPrev),\n onActivate: m[0] || (m[0] = (z) => M(!1))\n }, {\n default: we(() => [\n A.$slots[\"arrow-left\"] ? ie(A.$slots, \"arrow-left\", { key: 0 }) : Q(\"\", !0),\n A.$slots[\"arrow-left\"] ? Q(\"\", !0) : (w(), Te(s(Ua), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"class\"])) : Q(\"\", !0),\n he(\"button\", {\n ref: \"mpYearButtonRef\",\n class: \"dp__btn dp--year-select\",\n type: \"button\",\n \"aria-label\": `${e.year}-${s(d)?.openYearsOverlay}`,\n \"data-test-id\": `year-mode-btn-${e.instance}`,\n onClick: m[1] || (m[1] = () => _(!1)),\n onKeydown: m[2] || (m[2] = xn(() => _(!1), [\"enter\"]))\n }, [\n A.$slots.year ? ie(A.$slots, \"year\", {\n key: 0,\n year: e.year,\n text: F.value,\n value: e.year\n }) : Q(\"\", !0),\n A.$slots.year ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n gt(Ke(F.value), 1)\n ], 64))\n ], 40, gr),\n s(a)(s(g), e.instance) ? (w(), Te(Qt, {\n key: 1,\n ref: \"mpNextIconRef\",\n \"aria-label\": s(d)?.nextYear,\n disabled: e.isDisabled(!0),\n class: De(s(v)?.navBtnNext),\n onActivate: m[3] || (m[3] = (z) => M(!0))\n }, {\n default: we(() => [\n A.$slots[\"arrow-right\"] ? ie(A.$slots, \"arrow-right\", { key: 0 }) : Q(\"\", !0),\n A.$slots[\"arrow-right\"] ? Q(\"\", !0) : (w(), Te(s(Va), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"class\"])) : Q(\"\", !0)\n ], 2),\n tt(Vt, {\n name: s(h)(e.showYearPicker),\n css: s(R)\n }, {\n default: we(() => [\n e.showYearPicker ? (w(), Te(ta, {\n key: 0,\n items: e.items,\n \"text-input\": A.textInput,\n \"esc-close\": A.escClose,\n config: A.config,\n \"is-last\": A.autoApply && !s(i).keepActionRow,\n \"hide-navigation\": A.hideNavigation,\n \"aria-labels\": A.ariaLabels,\n \"overlay-label\": s(d)?.yearPicker?.(!0),\n type: \"year\",\n onToggle: _,\n onSelected: m[4] || (m[4] = (z) => C(z))\n }, Ge({\n \"button-icon\": we(() => [\n A.$slots[\"calendar-icon\"] ? ie(A.$slots, \"calendar-icon\", { key: 0 }) : Q(\"\", !0),\n A.$slots[\"calendar-icon\"] ? Q(\"\", !0) : (w(), Te(s(jt), { key: 1 }))\n ]),\n _: 2\n }, [\n A.$slots[\"year-overlay-value\"] ? {\n name: \"item\",\n fn: we(({ item: z }) => [\n ie(A.$slots, \"year-overlay-value\", {\n text: z.text,\n value: z.value\n })\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"items\", \"text-input\", \"esc-close\", \"config\", \"is-last\", \"hide-navigation\", \"aria-labels\", \"overlay-label\"])) : Q(\"\", !0)\n ]),\n _: 3\n }, 8, [\"name\", \"css\"])\n ], 64));\n }\n}), en = (e, t, l) => {\n if (t.value && Array.isArray(t.value))\n if (t.value.some((n) => $e(e, n))) {\n const n = t.value.filter((a) => !$e(a, e));\n t.value = n.length ? n : null;\n } else (l && +l > t.value.length || !l) && t.value.push(e);\n else\n t.value = [e];\n}, tn = (e, t, l) => {\n let n = e.value ? e.value.slice() : [];\n return n.length === 2 && n[1] !== null && (n = []), n.length ? (Be(t, n[0]) ? n.unshift(t) : n[1] = t, l(\"range-end\", t)) : (n = [t], l(\"range-start\", t)), n;\n}, pa = (e, t, l, n) => {\n e && (e[0] && e[1] && l && t(\"auto-apply\"), e[0] && !e[1] && n && l && t(\"auto-apply\"));\n}, Un = (e) => {\n Array.isArray(e.value) && e.value.length <= 2 && e.range ? e.modelValue.value = e.value.map((t) => Ze(H(t), e.timezone)) : Array.isArray(e.value) || (e.modelValue.value = Ze(H(e.value), e.timezone));\n}, Vn = (e, t, l, n) => Array.isArray(t.value) && (t.value.length === 2 || t.value.length === 1 && n.value.partialRange) ? n.value.fixedStart && (Ee(e, t.value[0]) || $e(e, t.value[0])) ? [t.value[0], e] : n.value.fixedEnd && (Be(e, t.value[1]) || $e(e, t.value[1])) ? [e, t.value[1]] : (l(\"invalid-fixed-range\", e), t.value) : [], jn = ({\n multiCalendars: e,\n range: t,\n highlight: l,\n propDates: n,\n calendars: a,\n modelValue: f,\n props: i,\n filters: g,\n year: d,\n month: P,\n emit: v\n}) => {\n const R = j(() => qa(i.yearRange, i.locale, i.reverseYears)), h = Z([!1]), T = j(() => (O, J) => {\n const ce = Se(it(/* @__PURE__ */ new Date()), {\n month: P.value(O),\n year: d.value(O)\n }), pe = J ? An(ce) : Gt(ce);\n return Nn(\n pe,\n n.value.maxDate,\n n.value.minDate,\n i.preventMinMaxNavigation,\n J\n );\n }), F = () => Array.isArray(f.value) && e.value.solo && f.value[1], _ = () => {\n for (let O = 0; O < e.value.count; O++)\n if (O === 0)\n a.value[O] = a.value[0];\n else if (O === e.value.count - 1 && F())\n a.value[O] = {\n month: Me(f.value[1]),\n year: ye(f.value[1])\n };\n else {\n const J = Se(H(), a.value[O - 1]);\n a.value[O] = { month: Me(J), year: ye(Mn(J, 1)) };\n }\n }, C = (O) => {\n if (!O) return _();\n const J = Se(H(), a.value[O]);\n return a.value[0].year = ye($n(J, e.value.count - 1)), _();\n }, M = (O, J) => {\n const ce = vl(J, O);\n return t.value.showLastInRange && ce > 1 ? J : O;\n }, A = (O) => i.focusStartDate || e.value.solo ? O[0] : O[1] ? M(O[0], O[1]) : O[0], m = () => {\n if (f.value) {\n const O = Array.isArray(f.value) ? A(f.value) : f.value;\n a.value[0] = { month: Me(O), year: ye(O) };\n }\n }, z = () => {\n m(), e.value.count && _();\n };\n rt(f, (O, J) => {\n i.isTextInputDate && JSON.stringify(O ?? {}) !== JSON.stringify(J ?? {}) && z();\n }), Ue(() => {\n z();\n });\n const L = (O, J) => {\n a.value[J].year = O, v(\"update-month-year\", { instance: J, year: O, month: a.value[J].month }), e.value.count && !e.value.solo && C(J);\n }, le = j(() => (O) => Ht(R.value, (J) => {\n const ce = d.value(O) === J.value, pe = Zt(\n J.value,\n Wt(n.value.minDate),\n Wt(n.value.maxDate)\n ) || g.value.years?.includes(d.value(O)), p = xa(l.value, J.value);\n return { active: ce, disabled: pe, highlighted: p };\n })), U = (O, J) => {\n L(O, J), ee(J);\n }, $ = (O, J = !1) => {\n if (!T.value(O, J)) {\n const ce = J ? d.value(O) + 1 : d.value(O) - 1;\n L(ce, O);\n }\n }, ee = (O, J = !1, ce) => {\n J || v(\"reset-flow\"), ce !== void 0 ? h.value[O] = ce : h.value[O] = !h.value[O], h.value[O] ? v(\"overlay-toggle\", { open: !0, overlay: je.year }) : (v(\"overlay-closed\"), v(\"overlay-toggle\", { open: !1, overlay: je.year }));\n };\n return {\n isDisabled: T,\n groupedYears: le,\n showYearPicker: h,\n selectYear: L,\n toggleYearPicker: ee,\n handleYearSelect: U,\n handleYear: $\n };\n}, yr = (e, t) => {\n const {\n defaultedMultiCalendars: l,\n defaultedAriaLabels: n,\n defaultedTransitions: a,\n defaultedConfig: f,\n defaultedRange: i,\n defaultedHighlight: g,\n propDates: d,\n defaultedTz: P,\n defaultedFilters: v,\n defaultedMultiDates: R\n } = Oe(e), h = () => {\n e.isTextInputDate && z(ye(H(e.startDate)), 0);\n }, { modelValue: T, year: F, month: _, calendars: C } = na(e, t, h), M = j(() => Pn(e.formatLocale, e.locale, e.monthNameFormat)), A = Z(null), { checkMinMaxRange: m } = Tt(e), {\n selectYear: z,\n groupedYears: L,\n showYearPicker: le,\n toggleYearPicker: U,\n handleYearSelect: $,\n handleYear: ee,\n isDisabled: O\n } = jn({\n modelValue: T,\n multiCalendars: l,\n range: i,\n highlight: g,\n calendars: C,\n year: F,\n propDates: d,\n month: _,\n filters: v,\n props: e,\n emit: t\n });\n Ue(() => {\n e.startDate && (T.value && e.focusStartDate || !T.value) && z(ye(H(e.startDate)), 0);\n });\n const J = (I) => I ? { month: Me(I), year: ye(I) } : { month: null, year: null }, ce = () => T.value ? Array.isArray(T.value) ? T.value.map((I) => J(I)) : J(T.value) : J(), pe = (I, x) => {\n const c = C.value[I], o = ce();\n return Array.isArray(o) ? o.some((X) => X.year === c?.year && X.month === x) : c?.year === o.year && x === o.month;\n }, p = (I, x, c) => {\n const o = ce();\n return Array.isArray(o) ? F.value(x) === o[c]?.year && I === o[c]?.month : !1;\n }, Y = (I, x) => {\n if (i.value.enabled) {\n const c = ce();\n if (Array.isArray(T.value) && Array.isArray(c)) {\n const o = p(I, x, 0) || p(I, x, 1), X = pt(it(H()), I, F.value(x));\n return xt(T.value, A.value, X) && !o;\n }\n return !1;\n }\n return !1;\n }, te = j(() => (I) => Ht(M.value, (x) => {\n const c = pe(I, x.value), o = Zt(\n x.value,\n _n(F.value(I), d.value.minDate),\n Yn(F.value(I), d.value.maxDate)\n ) || zl(d.value.disabledDates, F.value(I), x.value) || v.value.months?.includes(x.value) || !Hl(d.value.allowedDates, F.value(I), x.value) || zn(e.yearRange, F.value(I)), X = Y(x.value, I), B = Fn(g.value, x.value, F.value(I));\n return { active: c, disabled: o, isBetween: X, highlighted: B };\n })), y = (I, x) => pt(it(H()), I, F.value(x)), V = (I, x) => {\n const c = T.value ? T.value : it(/* @__PURE__ */ new Date());\n T.value = pt(c, I, F.value(x)), t(\"auto-apply\"), t(\"update-flow-step\");\n }, S = (I, x) => {\n const c = y(I, x);\n i.value.fixedEnd || i.value.fixedStart ? T.value = Vn(c, T, t, i) : T.value ? m(c, T.value) && (T.value = tn(T, y(I, x), t)) : T.value = [y(I, x)], at().then(() => {\n pa(T.value, t, e.autoApply, e.modelAuto);\n });\n }, q = (I, x) => {\n en(y(I, x), T, R.value.limit), t(\"auto-apply\", !0);\n }, k = (I, x) => (C.value[x].month = I, u(x, C.value[x].year, I), R.value.enabled ? q(I, x) : i.value.enabled ? S(I, x) : V(I, x)), se = (I, x) => {\n z(I, x), u(x, I, null);\n }, u = (I, x, c) => {\n let o = c;\n if (!o && o !== 0) {\n const X = ce();\n o = Array.isArray(X) ? X[I].month : X.month;\n }\n t(\"update-month-year\", { instance: I, year: x, month: o });\n };\n return {\n groupedMonths: te,\n groupedYears: L,\n year: F,\n isDisabled: O,\n defaultedMultiCalendars: l,\n defaultedAriaLabels: n,\n defaultedTransitions: a,\n defaultedConfig: f,\n showYearPicker: le,\n modelValue: T,\n presetDate: (I, x) => {\n Un({\n value: I,\n modelValue: T,\n range: i.value.enabled,\n timezone: x ? void 0 : P.value.timezone\n }), t(\"auto-apply\");\n },\n setHoverDate: (I, x) => {\n A.value = y(I, x);\n },\n selectMonth: k,\n selectYear: se,\n toggleYearPicker: U,\n handleYearSelect: $,\n handleYear: ee,\n getModelMonthYear: ce\n };\n}, hr = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"MonthPicker\",\n props: {\n ...dt\n },\n emits: [\n \"update:internal-model-value\",\n \"overlay-closed\",\n \"reset-flow\",\n \"range-start\",\n \"range-end\",\n \"auto-apply\",\n \"update-month-year\",\n \"update-flow-step\",\n \"mount\",\n \"invalid-fixed-range\",\n \"overlay-toggle\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = Yt(), f = et(a, \"yearMode\"), i = e;\n Ue(() => {\n i.shadow || n(\"mount\", null);\n });\n const {\n groupedMonths: g,\n groupedYears: d,\n year: P,\n isDisabled: v,\n defaultedMultiCalendars: R,\n defaultedConfig: h,\n showYearPicker: T,\n modelValue: F,\n presetDate: _,\n setHoverDate: C,\n selectMonth: M,\n selectYear: A,\n toggleYearPicker: m,\n handleYearSelect: z,\n handleYear: L,\n getModelMonthYear: le\n } = yr(i, n);\n return t({ getSidebarProps: () => ({\n modelValue: F,\n year: P,\n getModelMonthYear: le,\n selectMonth: M,\n selectYear: A,\n handleYear: L\n }), presetDate: _, toggleYearPicker: ($) => m(0, $) }), ($, ee) => (w(), Te(ma, {\n \"multi-calendars\": s(R).count,\n collapse: $.collapse,\n stretch: \"\",\n \"is-mobile\": $.isMobile\n }, {\n default: we(({ instance: O }) => [\n $.$slots[\"top-extra\"] ? ie($.$slots, \"top-extra\", {\n key: 0,\n value: $.internalModelValue\n }) : Q(\"\", !0),\n $.$slots[\"month-year\"] ? ie($.$slots, \"month-year\", ze(He({ key: 1 }, {\n year: s(P),\n months: s(g)(O),\n years: s(d)(O),\n selectMonth: s(M),\n selectYear: s(A),\n instance: O\n }))) : (w(), Te(ta, {\n key: 2,\n items: s(g)(O),\n \"arrow-navigation\": $.arrowNavigation,\n \"is-last\": $.autoApply && !s(h).keepActionRow,\n \"esc-close\": $.escClose,\n height: s(h).modeHeight,\n config: $.config,\n \"no-overlay-focus\": !!($.noOverlayFocus || $.textInput),\n \"use-relative\": \"\",\n type: \"month\",\n onSelected: (J) => s(M)(J, O),\n onHoverValue: (J) => s(C)(J, O)\n }, Ge({\n header: we(() => [\n tt(Wn, He($.$props, {\n items: s(d)(O),\n instance: O,\n \"show-year-picker\": s(T)[O],\n year: s(P)(O),\n \"is-disabled\": (J) => s(v)(O, J),\n onHandleYear: (J) => s(L)(O, J),\n onYearSelect: (J) => s(z)(J, O),\n onToggleYearPicker: (J) => s(m)(O, J?.flow, J?.show)\n }), Ge({ _: 2 }, [\n Ce(s(f), (J, ce) => ({\n name: J,\n fn: we((pe) => [\n ie($.$slots, J, ze(Je(pe)))\n ])\n }))\n ]), 1040, [\"items\", \"instance\", \"show-year-picker\", \"year\", \"is-disabled\", \"onHandleYear\", \"onYearSelect\", \"onToggleYearPicker\"])\n ]),\n _: 2\n }, [\n $.$slots[\"month-overlay-value\"] ? {\n name: \"item\",\n fn: we(({ item: J }) => [\n ie($.$slots, \"month-overlay-value\", {\n text: J.text,\n value: J.value\n })\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"items\", \"arrow-navigation\", \"is-last\", \"esc-close\", \"height\", \"config\", \"no-overlay-focus\", \"onSelected\", \"onHoverValue\"]))\n ]),\n _: 3\n }, 8, [\"multi-calendars\", \"collapse\", \"is-mobile\"]));\n }\n}), br = (e, t) => {\n const l = () => {\n e.isTextInputDate && (v.value = ye(H(e.startDate)));\n }, { modelValue: n } = na(e, t, l), a = Z(null), { defaultedHighlight: f, defaultedMultiDates: i, defaultedFilters: g, defaultedRange: d, propDates: P } = Oe(e), v = Z();\n Ue(() => {\n e.startDate && (n.value && e.focusStartDate || !n.value) && (v.value = ye(H(e.startDate)));\n });\n const R = (m) => Array.isArray(n.value) ? n.value.some((z) => ye(z) === m) : n.value ? ye(n.value) === m : !1, h = (m) => d.value.enabled && Array.isArray(n.value) ? xt(n.value, a.value, C(m)) : !1, T = (m) => P.value.allowedDates instanceof Map ? P.value.allowedDates.size ? P.value.allowedDates.has(`${m}`) : !1 : !0, F = (m) => P.value.disabledDates instanceof Map ? P.value.disabledDates.size ? P.value.disabledDates.has(`${m}`) : !1 : typeof P.value.disabledDates == \"function\" ? P.value.disabledDates(ut(Fe(Gt(H())), m)) : !0, _ = j(() => Ht(qa(e.yearRange, e.locale, e.reverseYears), (m) => {\n const z = R(m.value), L = Zt(\n m.value,\n Wt(P.value.minDate),\n Wt(P.value.maxDate)\n ) || g.value.years.includes(m.value) || !T(m.value) || F(m.value), le = h(m.value) && !z, U = xa(f.value, m.value);\n return { active: z, disabled: L, isBetween: le, highlighted: U };\n })), C = (m) => ut(it(Gt(/* @__PURE__ */ new Date())), m);\n return {\n groupedYears: _,\n modelValue: n,\n focusYear: v,\n setHoverValue: (m) => {\n a.value = ut(it(/* @__PURE__ */ new Date()), m);\n },\n selectYear: (m) => {\n if (t(\"update-month-year\", { instance: 0, year: m }), i.value.enabled)\n return n.value ? Array.isArray(n.value) && ((n.value?.map((L) => ye(L))).includes(m) ? n.value = n.value.filter((L) => ye(L) !== m) : n.value.push(ut(Fe(H()), m))) : n.value = [ut(Fe(Gt(H())), m)], t(\"auto-apply\", !0);\n d.value.enabled ? (n.value = tn(n, C(m), t), at().then(() => {\n pa(n.value, t, e.autoApply, e.modelAuto);\n })) : (n.value = C(m), t(\"auto-apply\"));\n }\n };\n}, kr = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"YearPicker\",\n props: {\n ...dt\n },\n emits: [\n \"update:internal-model-value\",\n \"reset-flow\",\n \"range-start\",\n \"range-end\",\n \"auto-apply\",\n \"update-month-year\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, { groupedYears: f, modelValue: i, focusYear: g, selectYear: d, setHoverValue: P } = br(a, n), { defaultedConfig: v } = Oe(a);\n return t({ getSidebarProps: () => ({\n modelValue: i,\n selectYear: d\n }) }), (h, T) => (w(), W(\"div\", null, [\n h.$slots[\"top-extra\"] ? ie(h.$slots, \"top-extra\", {\n key: 0,\n value: h.internalModelValue\n }) : Q(\"\", !0),\n h.$slots[\"month-year\"] ? ie(h.$slots, \"month-year\", ze(He({ key: 1 }, {\n years: s(f),\n selectYear: s(d)\n }))) : (w(), Te(ta, {\n key: 2,\n items: s(f),\n \"is-last\": h.autoApply && !s(v).keepActionRow,\n height: s(v).modeHeight,\n config: h.config,\n \"no-overlay-focus\": !!(h.noOverlayFocus || h.textInput),\n \"focus-value\": s(g),\n type: \"year\",\n \"use-relative\": \"\",\n onSelected: s(d),\n onHoverValue: s(P)\n }, Ge({ _: 2 }, [\n h.$slots[\"year-overlay-value\"] ? {\n name: \"item\",\n fn: we(({ item: F }) => [\n ie(h.$slots, \"year-overlay-value\", {\n text: F.text,\n value: F.value\n })\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"items\", \"is-last\", \"height\", \"config\", \"no-overlay-focus\", \"focus-value\", \"onSelected\", \"onHoverValue\"]))\n ]));\n }\n}), wr = {\n key: 0,\n class: \"dp__time_input\"\n}, Dr = [\"data-compact\", \"data-collapsed\"], Mr = [\"data-test-id\", \"aria-label\", \"onKeydown\", \"onClick\", \"onMousedown\"], $r = [\"aria-label\", \"disabled\", \"data-test-id\", \"onKeydown\", \"onClick\"], Ar = [\"data-test-id\", \"aria-label\", \"onKeydown\", \"onClick\", \"onMousedown\"], Tr = { key: 0 }, Sr = [\"aria-label\", \"data-compact\"], Pr = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"TimeInput\",\n props: {\n hours: { type: Number, default: 0 },\n minutes: { type: Number, default: 0 },\n seconds: { type: Number, default: 0 },\n closeTimePickerBtn: { type: Object, default: null },\n order: { type: Number, default: 0 },\n disabledTimesConfig: { type: Function, default: null },\n validateTime: { type: Function, default: () => !1 },\n ...dt\n },\n emits: [\n \"set-hours\",\n \"set-minutes\",\n \"update:hours\",\n \"update:minutes\",\n \"update:seconds\",\n \"reset-flow\",\n \"mounted\",\n \"overlay-closed\",\n \"overlay-opened\",\n \"am-pm-change\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, { setTimePickerElements: f, setTimePickerBackRef: i } = At(), {\n defaultedAriaLabels: g,\n defaultedTransitions: d,\n defaultedFilters: P,\n defaultedConfig: v,\n defaultedRange: R,\n defaultedMultiCalendars: h\n } = Oe(a), { transitionName: T, showTransition: F } = aa(d), _ = ea({\n hours: !1,\n minutes: !1,\n seconds: !1\n }), C = Z(\"AM\"), M = Z(null), A = Z([]), m = Z(), z = Z(!1);\n Ue(() => {\n n(\"mounted\");\n });\n const L = (r) => Se(/* @__PURE__ */ new Date(), {\n hours: r.hours,\n minutes: r.minutes,\n seconds: a.enableSeconds ? r.seconds : 0,\n milliseconds: 0\n }), le = j(\n () => (r) => S(r, a[r]) || $(r, a[r])\n ), U = j(() => ({ hours: a.hours, minutes: a.minutes, seconds: a.seconds })), $ = (r, E) => R.value.enabled && !R.value.disableTimeRangeValidation ? !a.validateTime(r, E) : !1, ee = (r, E) => {\n if (R.value.enabled && !R.value.disableTimeRangeValidation) {\n const K = E ? +a[`${r}Increment`] : -+a[`${r}Increment`], oe = a[r] + K;\n return !a.validateTime(r, oe);\n }\n return !1;\n }, O = j(() => (r) => !re(+a[r] + +a[`${r}Increment`], r) || ee(r, !0)), J = j(() => (r) => !re(+a[r] - +a[`${r}Increment`], r) || ee(r, !1)), ce = (r, E) => Tn(Se(H(), r), E), pe = (r, E) => ml(Se(H(), r), E), p = j(\n () => ({\n dp__time_col: !0,\n dp__time_col_block: !a.timePickerInline,\n dp__time_col_reg_block: !a.enableSeconds && a.is24 && !a.timePickerInline,\n dp__time_col_reg_inline: !a.enableSeconds && a.is24 && a.timePickerInline,\n dp__time_col_reg_with_button: !a.enableSeconds && !a.is24,\n dp__time_col_sec: a.enableSeconds && a.is24,\n dp__time_col_sec_with_button: a.enableSeconds && !a.is24\n })\n ), Y = j(\n () => a.timePickerInline && R.value.enabled && !h.value.count\n ), te = j(() => {\n const r = [{ type: \"hours\" }];\n return a.enableMinutes && r.push({ type: \"\", separator: !0 }, {\n type: \"minutes\"\n }), a.enableSeconds && r.push({ type: \"\", separator: !0 }, {\n type: \"seconds\"\n }), r;\n }), y = j(() => te.value.filter((r) => !r.separator)), V = j(() => (r) => {\n if (r === \"hours\") {\n const E = X(+a.hours);\n return { text: E < 10 ? `0${E}` : `${E}`, value: E };\n }\n return { text: a[r] < 10 ? `0${a[r]}` : `${a[r]}`, value: a[r] };\n }), S = (r, E) => {\n if (!a.disabledTimesConfig) return !1;\n const K = a.disabledTimesConfig(a.order, r === \"hours\" ? E : void 0);\n return K[r] ? !!K[r]?.includes(E) : !0;\n }, q = (r, E) => E !== \"hours\" || C.value === \"AM\" ? r : r + 12, k = (r) => {\n const E = a.is24 ? 24 : 12, K = r === \"hours\" ? E : 60, oe = +a[`${r}GridIncrement`], ge = r === \"hours\" && !a.is24 ? oe : 0, _e = [];\n for (let Ye = ge; Ye < K; Ye += oe)\n _e.push({ value: a.is24 ? Ye : q(Ye, r), text: Ye < 10 ? `0${Ye}` : `${Ye}` });\n return r === \"hours\" && !a.is24 && _e.unshift({ value: C.value === \"PM\" ? 12 : 0, text: \"12\" }), Ht(_e, (Ye) => ({ active: !1, disabled: P.value.times[r].includes(Ye.value) || !re(Ye.value, r) || S(r, Ye.value) || $(r, Ye.value) }));\n }, se = (r) => r >= 0 ? r : 59, u = (r) => r >= 0 ? r : 23, re = (r, E) => {\n const K = a.minTime ? L(Sa(a.minTime)) : null, oe = a.maxTime ? L(Sa(a.maxTime)) : null, ge = L(\n Sa(\n U.value,\n E,\n E === \"minutes\" || E === \"seconds\" ? se(r) : u(r)\n )\n );\n return K && oe ? (Ft(ge, oe) || Nt(ge, oe)) && (_t(ge, K) || Nt(ge, K)) : K ? _t(ge, K) || Nt(ge, K) : oe ? Ft(ge, oe) || Nt(ge, oe) : !0;\n }, G = (r) => a[`no${r[0].toUpperCase() + r.slice(1)}Overlay`], I = (r) => {\n G(r) || (_[r] = !_[r], _[r] ? (z.value = !0, n(\"overlay-opened\", r)) : (z.value = !1, n(\"overlay-closed\", r)));\n }, x = (r) => r === \"hours\" ? yt : r === \"minutes\" ? $t : zt, c = () => {\n m.value && clearTimeout(m.value);\n }, o = (r, E = !0, K) => {\n const oe = E ? ce : pe, ge = E ? +a[`${r}Increment`] : -+a[`${r}Increment`];\n re(+a[r] + ge, r) && n(\n `update:${r}`,\n x(r)(oe({ [r]: +a[r] }, { [r]: +a[`${r}Increment`] }))\n ), !K?.keyboard && v.value.timeArrowHoldThreshold && (m.value = setTimeout(() => {\n o(r, E);\n }, v.value.timeArrowHoldThreshold));\n }, X = (r) => a.is24 ? r : (r >= 12 ? C.value = \"PM\" : C.value = \"AM\", Sl(r)), B = () => {\n C.value === \"PM\" ? (C.value = \"AM\", n(\"update:hours\", a.hours - 12)) : (C.value = \"PM\", n(\"update:hours\", a.hours + 12)), n(\"am-pm-change\", C.value);\n }, be = (r) => {\n _[r] = !0;\n }, Ae = (r, E, K) => {\n if (r && a.arrowNavigation) {\n Array.isArray(A.value[E]) ? A.value[E][K] = r : A.value[E] = [r];\n const oe = A.value.reduce(\n (ge, _e) => _e.map((Ye, nt) => [...ge[nt] || [], _e[nt]]),\n []\n );\n i(a.closeTimePickerBtn), M.value && (oe[1] = oe[1].concat(M.value)), f(oe, a.order);\n }\n }, ne = (r, E) => (I(r), n(`update:${r}`, E));\n return t({ openChildCmp: be }), (r, E) => r.disabled ? Q(\"\", !0) : (w(), W(\"div\", wr, [\n (w(!0), W(ke, null, Ce(te.value, (K, oe) => (w(), W(\"div\", {\n key: oe,\n class: De(p.value),\n \"data-compact\": Y.value && !r.enableSeconds,\n \"data-collapsed\": Y.value && r.enableSeconds\n }, [\n K.separator ? (w(), W(ke, { key: 0 }, [\n z.value ? Q(\"\", !0) : (w(), W(ke, { key: 0 }, [\n gt(\":\")\n ], 64))\n ], 64)) : (w(), W(ke, { key: 1 }, [\n he(\"button\", {\n ref_for: !0,\n ref: (ge) => Ae(ge, oe, 0),\n type: \"button\",\n class: De({\n dp__btn: !0,\n dp__inc_dec_button: !r.timePickerInline,\n dp__inc_dec_button_inline: r.timePickerInline,\n dp__tp_inline_btn_top: r.timePickerInline,\n dp__inc_dec_button_disabled: O.value(K.type),\n \"dp--hidden-el\": z.value\n }),\n \"data-test-id\": `${K.type}-time-inc-btn-${a.order}`,\n \"aria-label\": s(g)?.incrementValue(K.type),\n tabindex: \"0\",\n onKeydown: (ge) => s(qe)(ge, () => o(K.type, !0, { keyboard: !0 }), !0),\n onClick: (ge) => s(v).timeArrowHoldThreshold ? void 0 : o(K.type, !0),\n onMousedown: (ge) => s(v).timeArrowHoldThreshold ? o(K.type, !0) : void 0,\n onMouseup: c\n }, [\n a.timePickerInline ? (w(), W(ke, { key: 1 }, [\n r.$slots[\"tp-inline-arrow-up\"] ? ie(r.$slots, \"tp-inline-arrow-up\", { key: 0 }) : (w(), W(ke, { key: 1 }, [\n E[2] || (E[2] = he(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_l\" }, null, -1)),\n E[3] || (E[3] = he(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_r\" }, null, -1))\n ], 64))\n ], 64)) : (w(), W(ke, { key: 0 }, [\n r.$slots[\"arrow-up\"] ? ie(r.$slots, \"arrow-up\", { key: 0 }) : Q(\"\", !0),\n r.$slots[\"arrow-up\"] ? Q(\"\", !0) : (w(), Te(s(Ka), { key: 1 }))\n ], 64))\n ], 42, Mr),\n he(\"button\", {\n ref_for: !0,\n ref: (ge) => Ae(ge, oe, 1),\n type: \"button\",\n \"aria-label\": `${V.value(K.type).text}-${s(g)?.openTpOverlay(K.type)}`,\n class: De({\n dp__time_display: !0,\n dp__time_display_block: !r.timePickerInline,\n dp__time_display_inline: r.timePickerInline,\n \"dp--time-invalid\": le.value(K.type),\n \"dp--time-overlay-btn\": !le.value(K.type),\n \"dp--hidden-el\": z.value\n }),\n disabled: G(K.type),\n tabindex: \"0\",\n \"data-test-id\": `${K.type}-toggle-overlay-btn-${a.order}`,\n onKeydown: (ge) => s(qe)(ge, () => I(K.type), !0),\n onClick: (ge) => I(K.type)\n }, [\n r.$slots[K.type] ? ie(r.$slots, K.type, {\n key: 0,\n text: V.value(K.type).text,\n value: V.value(K.type).value\n }) : Q(\"\", !0),\n r.$slots[K.type] ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n gt(Ke(V.value(K.type).text), 1)\n ], 64))\n ], 42, $r),\n he(\"button\", {\n ref_for: !0,\n ref: (ge) => Ae(ge, oe, 2),\n type: \"button\",\n class: De({\n dp__btn: !0,\n dp__inc_dec_button: !r.timePickerInline,\n dp__inc_dec_button_inline: r.timePickerInline,\n dp__tp_inline_btn_bottom: r.timePickerInline,\n dp__inc_dec_button_disabled: J.value(K.type),\n \"dp--hidden-el\": z.value\n }),\n \"data-test-id\": `${K.type}-time-dec-btn-${a.order}`,\n \"aria-label\": s(g)?.decrementValue(K.type),\n tabindex: \"0\",\n onKeydown: (ge) => s(qe)(ge, () => o(K.type, !1, { keyboard: !0 }), !0),\n onClick: (ge) => s(v).timeArrowHoldThreshold ? void 0 : o(K.type, !1),\n onMousedown: (ge) => s(v).timeArrowHoldThreshold ? o(K.type, !1) : void 0,\n onMouseup: c\n }, [\n a.timePickerInline ? (w(), W(ke, { key: 1 }, [\n r.$slots[\"tp-inline-arrow-down\"] ? ie(r.$slots, \"tp-inline-arrow-down\", { key: 0 }) : (w(), W(ke, { key: 1 }, [\n E[4] || (E[4] = he(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_l\" }, null, -1)),\n E[5] || (E[5] = he(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_r\" }, null, -1))\n ], 64))\n ], 64)) : (w(), W(ke, { key: 0 }, [\n r.$slots[\"arrow-down\"] ? ie(r.$slots, \"arrow-down\", { key: 0 }) : Q(\"\", !0),\n r.$slots[\"arrow-down\"] ? Q(\"\", !0) : (w(), Te(s(Ga), { key: 1 }))\n ], 64))\n ], 42, Ar)\n ], 64))\n ], 10, Dr))), 128)),\n r.is24 ? Q(\"\", !0) : (w(), W(\"div\", Tr, [\n r.$slots[\"am-pm-button\"] ? ie(r.$slots, \"am-pm-button\", {\n key: 0,\n toggle: B,\n value: C.value\n }) : Q(\"\", !0),\n r.$slots[\"am-pm-button\"] ? Q(\"\", !0) : (w(), W(\"button\", {\n key: 1,\n ref_key: \"amPmButton\",\n ref: M,\n type: \"button\",\n class: \"dp__pm_am_button\",\n role: \"button\",\n \"aria-label\": s(g)?.amPmButton,\n tabindex: \"0\",\n \"data-compact\": Y.value,\n onClick: B,\n onKeydown: E[0] || (E[0] = (K) => s(qe)(K, () => B(), !0))\n }, Ke(C.value), 41, Sr))\n ])),\n (w(!0), W(ke, null, Ce(y.value, (K, oe) => (w(), Te(Vt, {\n key: oe,\n name: s(T)(_[K.type]),\n css: s(F)\n }, {\n default: we(() => [\n _[K.type] ? (w(), Te(ta, {\n key: 0,\n items: k(K.type),\n \"is-last\": r.autoApply && !s(v).keepActionRow,\n \"esc-close\": r.escClose,\n type: K.type,\n \"text-input\": r.textInput,\n config: r.config,\n \"arrow-navigation\": r.arrowNavigation,\n \"aria-labels\": r.ariaLabels,\n \"overlay-label\": s(g).timeOverlay?.(K.type),\n onSelected: (ge) => ne(K.type, ge),\n onToggle: (ge) => I(K.type),\n onResetFlow: E[1] || (E[1] = (ge) => r.$emit(\"reset-flow\"))\n }, Ge({\n \"button-icon\": we(() => [\n r.$slots[\"clock-icon\"] ? ie(r.$slots, \"clock-icon\", { key: 0 }) : Q(\"\", !0),\n r.$slots[\"clock-icon\"] ? Q(\"\", !0) : (w(), Te(fa(r.timePickerInline ? s(jt) : s(ja)), { key: 1 }))\n ]),\n _: 2\n }, [\n r.$slots[`${K.type}-overlay-value`] ? {\n name: \"item\",\n fn: we(({ item: ge }) => [\n ie(r.$slots, `${K.type}-overlay-value`, {\n text: ge.text,\n value: ge.value\n })\n ]),\n key: \"0\"\n } : void 0,\n r.$slots[`${K.type}-overlay-header`] ? {\n name: \"header\",\n fn: we(() => [\n ie(r.$slots, `${K.type}-overlay-header`, {\n toggle: () => I(K.type)\n })\n ]),\n key: \"1\"\n } : void 0\n ]), 1032, [\"items\", \"is-last\", \"esc-close\", \"type\", \"text-input\", \"config\", \"arrow-navigation\", \"aria-labels\", \"overlay-label\", \"onSelected\", \"onToggle\"])) : Q(\"\", !0)\n ]),\n _: 2\n }, 1032, [\"name\", \"css\"]))), 128))\n ]));\n }\n}), Rr = [\"data-dp-mobile\"], Cr = [\"aria-label\", \"tabindex\"], Or = [\"role\", \"aria-label\", \"tabindex\"], Br = [\"aria-label\"], Kn = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"TimePicker\",\n props: {\n hours: { type: [Number, Array], default: 0 },\n minutes: { type: [Number, Array], default: 0 },\n seconds: { type: [Number, Array], default: 0 },\n disabledTimesConfig: { type: Function, default: null },\n validateTime: {\n type: Function,\n default: () => !1\n },\n ...dt\n },\n emits: [\n \"update:hours\",\n \"update:minutes\",\n \"update:seconds\",\n \"mount\",\n \"reset-flow\",\n \"overlay-opened\",\n \"overlay-closed\",\n \"am-pm-change\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, { buildMatrix: f, setTimePicker: i } = At(), g = Yt(), { defaultedTransitions: d, defaultedAriaLabels: P, defaultedTextInput: v, defaultedConfig: R, defaultedRange: h } = Oe(a), { transitionName: T, showTransition: F } = aa(d), { hideNavigationButtons: _ } = ga(), C = Z(null), M = Z(null), A = Z([]), m = Z(null), z = Z(!1);\n Ue(() => {\n n(\"mount\"), !a.timePicker && a.arrowNavigation ? f([Le(C.value)], \"time\") : i(!0, a.timePicker);\n });\n const L = j(() => h.value.enabled && a.modelAuto ? Rn(a.internalModelValue) : !0), le = Z(!1), U = (S) => ({\n hours: Array.isArray(a.hours) ? a.hours[S] : a.hours,\n minutes: Array.isArray(a.minutes) ? a.minutes[S] : a.minutes,\n seconds: Array.isArray(a.seconds) ? a.seconds[S] : a.seconds\n }), $ = j(() => {\n const S = [];\n if (h.value.enabled)\n for (let q = 0; q < 2; q++)\n S.push(U(q));\n else\n S.push(U(0));\n return S;\n }), ee = (S, q = !1, k = \"\") => {\n q || n(\"reset-flow\"), le.value = S, n(S ? \"overlay-opened\" : \"overlay-closed\", je.time), a.arrowNavigation && i(S), at(() => {\n k !== \"\" && A.value[0] && A.value[0].openChildCmp(k);\n });\n }, O = j(() => ({\n dp__btn: !0,\n dp__button: !0,\n dp__button_bottom: a.autoApply && !R.value.keepActionRow\n })), J = et(g, \"timePicker\"), ce = (S, q, k) => h.value.enabled ? q === 0 ? [S, $.value[1][k]] : [$.value[0][k], S] : S, pe = (S) => {\n n(\"update:hours\", S);\n }, p = (S) => {\n n(\"update:minutes\", S);\n }, Y = (S) => {\n n(\"update:seconds\", S);\n }, te = () => {\n if (m.value && !v.value.enabled && !a.noOverlayFocus) {\n const S = Cn(m.value);\n S && S.focus({ preventScroll: !0 });\n }\n }, y = (S) => {\n z.value = !1, n(\"overlay-closed\", S);\n }, V = (S) => {\n z.value = !0, n(\"overlay-opened\", S);\n };\n return t({ toggleTimePicker: ee }), (S, q) => (w(), W(\"div\", {\n class: \"dp--tp-wrap\",\n \"data-dp-mobile\": S.isMobile\n }, [\n !S.timePicker && !S.timePickerInline ? ua((w(), W(\"button\", {\n key: 0,\n ref_key: \"openTimePickerBtn\",\n ref: C,\n type: \"button\",\n class: De({ ...O.value, \"dp--hidden-el\": le.value }),\n \"aria-label\": s(P)?.openTimePicker,\n tabindex: S.noOverlayFocus ? void 0 : 0,\n \"data-test-id\": \"open-time-picker-btn\",\n onKeydown: q[0] || (q[0] = (k) => s(qe)(k, () => ee(!0))),\n onClick: q[1] || (q[1] = (k) => ee(!0))\n }, [\n S.$slots[\"clock-icon\"] ? ie(S.$slots, \"clock-icon\", { key: 0 }) : Q(\"\", !0),\n S.$slots[\"clock-icon\"] ? Q(\"\", !0) : (w(), Te(s(ja), { key: 1 }))\n ], 42, Cr)), [\n [ia, !s(_)(S.hideNavigation, \"time\")]\n ]) : Q(\"\", !0),\n tt(Vt, {\n name: s(T)(le.value),\n css: s(F) && !S.timePickerInline\n }, {\n default: we(() => [\n le.value || S.timePicker || S.timePickerInline ? (w(), W(\"div\", {\n key: 0,\n ref_key: \"overlayRef\",\n ref: m,\n role: S.timePickerInline ? void 0 : \"dialog\",\n class: De({\n dp__overlay: !S.timePickerInline,\n \"dp--overlay-absolute\": !a.timePicker && !S.timePickerInline,\n \"dp--overlay-relative\": a.timePicker\n }),\n style: lt(S.timePicker ? { height: `${s(R).modeHeight}px` } : void 0),\n \"aria-label\": s(P)?.timePicker,\n tabindex: S.timePickerInline ? void 0 : 0\n }, [\n he(\"div\", {\n class: De(\n S.timePickerInline ? \"dp__time_picker_inline_container\" : \"dp__overlay_container dp__container_flex dp__time_picker_overlay_container\"\n ),\n style: { display: \"flex\" }\n }, [\n S.$slots[\"time-picker-overlay\"] ? ie(S.$slots, \"time-picker-overlay\", {\n key: 0,\n hours: e.hours,\n minutes: e.minutes,\n seconds: e.seconds,\n setHours: pe,\n setMinutes: p,\n setSeconds: Y\n }) : Q(\"\", !0),\n S.$slots[\"time-picker-overlay\"] ? Q(\"\", !0) : (w(), W(\"div\", {\n key: 1,\n class: De(S.timePickerInline ? \"dp__flex\" : \"dp__overlay_row dp__flex_row\")\n }, [\n (w(!0), W(ke, null, Ce($.value, (k, se) => ua((w(), Te(Pr, He({ key: se }, { ref_for: !0 }, {\n ...S.$props,\n order: se,\n hours: k.hours,\n minutes: k.minutes,\n seconds: k.seconds,\n closeTimePickerBtn: M.value,\n disabledTimesConfig: e.disabledTimesConfig,\n disabled: se === 0 ? s(h).fixedStart : s(h).fixedEnd\n }, {\n ref_for: !0,\n ref_key: \"timeInputRefs\",\n ref: A,\n \"validate-time\": (u, re) => e.validateTime(u, ce(re, se, u)),\n \"onUpdate:hours\": (u) => pe(ce(u, se, \"hours\")),\n \"onUpdate:minutes\": (u) => p(ce(u, se, \"minutes\")),\n \"onUpdate:seconds\": (u) => Y(ce(u, se, \"seconds\")),\n onMounted: te,\n onOverlayClosed: y,\n onOverlayOpened: V,\n onAmPmChange: q[2] || (q[2] = (u) => S.$emit(\"am-pm-change\", u))\n }), Ge({ _: 2 }, [\n Ce(s(J), (u, re) => ({\n name: u,\n fn: we((G) => [\n ie(S.$slots, u, He({ ref_for: !0 }, G))\n ])\n }))\n ]), 1040, [\"validate-time\", \"onUpdate:hours\", \"onUpdate:minutes\", \"onUpdate:seconds\"])), [\n [ia, se === 0 ? !0 : L.value]\n ])), 128))\n ], 2)),\n !S.timePicker && !S.timePickerInline ? ua((w(), W(\"button\", {\n key: 2,\n ref_key: \"closeTimePickerBtn\",\n ref: M,\n type: \"button\",\n class: De({ ...O.value, \"dp--hidden-el\": z.value }),\n \"aria-label\": s(P)?.closeTimePicker,\n tabindex: \"0\",\n onKeydown: q[3] || (q[3] = (k) => s(qe)(k, () => ee(!1))),\n onClick: q[4] || (q[4] = (k) => ee(!1))\n }, [\n S.$slots[\"calendar-icon\"] ? ie(S.$slots, \"calendar-icon\", { key: 0 }) : Q(\"\", !0),\n S.$slots[\"calendar-icon\"] ? Q(\"\", !0) : (w(), Te(s(jt), { key: 1 }))\n ], 42, Br)), [\n [ia, !s(_)(S.hideNavigation, \"time\")]\n ]) : Q(\"\", !0)\n ], 2)\n ], 14, Or)) : Q(\"\", !0)\n ]),\n _: 3\n }, 8, [\"name\", \"css\"])\n ], 8, Rr));\n }\n}), Gn = (e, t, l, n) => {\n const { defaultedRange: a } = Oe(e), f = (m, z) => Array.isArray(t[m]) ? t[m][z] : t[m], i = (m) => e.enableSeconds ? Array.isArray(t.seconds) ? t.seconds[m] : t.seconds : 0, g = (m, z) => m ? z !== void 0 ? Mt(m, f(\"hours\", z), f(\"minutes\", z), i(z)) : Mt(m, t.hours, t.minutes, i()) : wn(H(), i(z)), d = (m, z) => {\n t[m] = z;\n }, P = j(() => e.modelAuto && a.value.enabled ? Array.isArray(l.value) ? l.value.length > 1 : !1 : a.value.enabled), v = (m, z) => {\n const L = Object.fromEntries(\n Object.keys(t).map((le) => le === m ? [le, z] : [le, t[le]].slice())\n );\n if (P.value && !a.value.disableTimeRangeValidation) {\n const le = ($) => l.value ? Mt(\n l.value[$],\n L.hours[$],\n L.minutes[$],\n L.seconds[$]\n ) : null, U = ($) => Dn(l.value[$], 0);\n return !($e(le(0), le(1)) && (_t(le(0), U(1)) || Ft(le(1), U(0))));\n }\n return !0;\n }, R = (m, z) => {\n v(m, z) && (d(m, z), n && n());\n }, h = (m) => {\n R(\"hours\", m);\n }, T = (m) => {\n R(\"minutes\", m);\n }, F = (m) => {\n R(\"seconds\", m);\n }, _ = (m, z, L, le) => {\n z && h(m), !z && !L && T(m), L && F(m), l.value && le(l.value);\n }, C = (m) => {\n if (m) {\n const z = Array.isArray(m), L = z ? [+m[0].hours, +m[1].hours] : +m.hours, le = z ? [+m[0].minutes, +m[1].minutes] : +m.minutes, U = z ? [+m[0].seconds, +m[1].seconds] : +m.seconds;\n d(\"hours\", L), d(\"minutes\", le), e.enableSeconds && d(\"seconds\", U);\n }\n }, M = (m, z) => {\n const L = {\n hours: Array.isArray(t.hours) ? t.hours[m] : t.hours,\n disabledArr: []\n };\n return (z || z === 0) && (L.hours = z), Array.isArray(e.disabledTimes) && (L.disabledArr = a.value.enabled && Array.isArray(e.disabledTimes[m]) ? e.disabledTimes[m] : e.disabledTimes), L;\n }, A = j(() => (m, z) => {\n if (Array.isArray(e.disabledTimes)) {\n const { disabledArr: L, hours: le } = M(m, z), U = L.filter(($) => +$.hours === le);\n return U[0]?.minutes === \"*\" ? { hours: [le], minutes: void 0, seconds: void 0 } : {\n hours: [],\n minutes: U?.map(($) => +$.minutes) ?? [],\n seconds: U?.map(($) => $.seconds ? +$.seconds : void 0) ?? []\n };\n }\n return { hours: [], minutes: [], seconds: [] };\n });\n return {\n setTime: d,\n updateHours: h,\n updateMinutes: T,\n updateSeconds: F,\n getSetDateTime: g,\n updateTimeValues: _,\n getSecondsValue: i,\n assignStartTime: C,\n validateTime: v,\n disabledTimesConfig: A\n };\n}, _r = (e, t) => {\n const l = () => {\n e.isTextInputDate && z();\n }, { modelValue: n, time: a } = na(e, t, l), { defaultedStartTime: f, defaultedRange: i, defaultedTz: g } = Oe(e), { updateTimeValues: d, getSetDateTime: P, setTime: v, assignStartTime: R, disabledTimesConfig: h, validateTime: T } = Gn(e, a, n, F);\n function F() {\n t(\"update-flow-step\");\n }\n const _ = (U) => {\n const { hours: $, minutes: ee, seconds: O } = U;\n return { hours: +$, minutes: +ee, seconds: O ? +O : 0 };\n }, C = () => {\n if (e.startTime) {\n if (Array.isArray(e.startTime)) {\n const $ = _(e.startTime[0]), ee = _(e.startTime[1]);\n return [Se(H(), $), Se(H(), ee)];\n }\n const U = _(e.startTime);\n return Se(H(), U);\n }\n return i.value.enabled ? [null, null] : null;\n }, M = () => {\n if (i.value.enabled) {\n const [U, $] = C();\n n.value = [\n Ze(P(U, 0), g.value.timezone),\n Ze(P($, 1), g.value.timezone)\n ];\n } else\n n.value = Ze(P(C()), g.value.timezone);\n }, A = (U) => Array.isArray(U) ? [Bt(H(U[0])), Bt(H(U[1]))] : [Bt(U ?? H())], m = (U, $, ee) => {\n v(\"hours\", U), v(\"minutes\", $), v(\"seconds\", e.enableSeconds ? ee : 0);\n }, z = () => {\n const [U, $] = A(n.value);\n return i.value.enabled ? m(\n [U.hours, $.hours],\n [U.minutes, $.minutes],\n [U.seconds, $.seconds]\n ) : m(U.hours, U.minutes, U.seconds);\n };\n Ue(() => {\n if (!e.shadow)\n return R(f.value), n.value ? z() : M();\n });\n const L = () => {\n Array.isArray(n.value) ? n.value = n.value.map((U, $) => U && P(U, $)) : n.value = P(n.value), t(\"time-update\");\n };\n return {\n modelValue: n,\n time: a,\n disabledTimesConfig: h,\n updateTime: (U, $ = !0, ee = !1) => {\n d(U, $, ee, L);\n },\n validateTime: T\n };\n}, Yr = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"TimePickerSolo\",\n props: {\n ...dt\n },\n emits: [\n \"update:internal-model-value\",\n \"time-update\",\n \"am-pm-change\",\n \"mount\",\n \"reset-flow\",\n \"update-flow-step\",\n \"overlay-toggle\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, f = Yt(), i = et(f, \"timePicker\"), g = Z(null), { time: d, modelValue: P, disabledTimesConfig: v, updateTime: R, validateTime: h } = _r(a, n);\n return Ue(() => {\n a.shadow || n(\"mount\", null);\n }), t({ getSidebarProps: () => ({\n modelValue: P,\n time: d,\n updateTime: R\n }), toggleTimePicker: (_, C = !1, M = \"\") => {\n g.value?.toggleTimePicker(_, C, M);\n } }), (_, C) => (w(), Te(ma, {\n \"multi-calendars\": 0,\n stretch: \"\",\n \"is-mobile\": _.isMobile\n }, {\n default: we(() => [\n tt(Kn, He({\n ref_key: \"tpRef\",\n ref: g\n }, _.$props, {\n hours: s(d).hours,\n minutes: s(d).minutes,\n seconds: s(d).seconds,\n \"internal-model-value\": _.internalModelValue,\n \"disabled-times-config\": s(v),\n \"validate-time\": s(h),\n \"onUpdate:hours\": C[0] || (C[0] = (M) => s(R)(M)),\n \"onUpdate:minutes\": C[1] || (C[1] = (M) => s(R)(M, !1)),\n \"onUpdate:seconds\": C[2] || (C[2] = (M) => s(R)(M, !1, !0)),\n onAmPmChange: C[3] || (C[3] = (M) => _.$emit(\"am-pm-change\", M)),\n onResetFlow: C[4] || (C[4] = (M) => _.$emit(\"reset-flow\")),\n onOverlayClosed: C[5] || (C[5] = (M) => _.$emit(\"overlay-toggle\", { open: !1, overlay: M })),\n onOverlayOpened: C[6] || (C[6] = (M) => _.$emit(\"overlay-toggle\", { open: !0, overlay: M }))\n }), Ge({ _: 2 }, [\n Ce(s(i), (M, A) => ({\n name: M,\n fn: we((m) => [\n ie(_.$slots, M, ze(Je(m)))\n ])\n }))\n ]), 1040, [\"hours\", \"minutes\", \"seconds\", \"internal-model-value\", \"disabled-times-config\", \"validate-time\"])\n ]),\n _: 3\n }, 8, [\"is-mobile\"]));\n }\n}), Ir = { class: \"dp--header-wrap\" }, Er = {\n key: 0,\n class: \"dp__month_year_wrap\"\n}, Nr = { key: 0 }, Lr = { class: \"dp__month_year_wrap\" }, Fr = [\"data-dp-element\", \"aria-label\", \"data-test-id\", \"onClick\", \"onKeydown\"], zr = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"DpHeader\",\n props: {\n month: { type: Number, default: 0 },\n year: { type: Number, default: 0 },\n instance: { type: Number, default: 0 },\n years: { type: Array, default: () => [] },\n months: { type: Array, default: () => [] },\n ...dt\n },\n emits: [\"update-month-year\", \"mount\", \"reset-flow\", \"overlay-closed\", \"overlay-opened\"],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, {\n defaultedTransitions: f,\n defaultedAriaLabels: i,\n defaultedMultiCalendars: g,\n defaultedFilters: d,\n defaultedConfig: P,\n defaultedHighlight: v,\n propDates: R,\n defaultedUI: h\n } = Oe(a), { transitionName: T, showTransition: F } = aa(f), { buildMatrix: _ } = At(), { handleMonthYearChange: C, isDisabled: M, updateMonthYear: A } = or(a, n), { showLeftIcon: m, showRightIcon: z } = ga(), L = Z(!1), le = Z(!1), U = Z(!1), $ = Z([null, null, null, null]);\n Ue(() => {\n n(\"mount\");\n });\n const ee = (u) => ({\n get: () => a[u],\n set: (re) => {\n const G = u === ot.month ? ot.year : ot.month;\n n(\"update-month-year\", { [u]: re, [G]: a[G] }), u === ot.month ? y(!0) : V(!0);\n }\n }), O = j(ee(ot.month)), J = j(ee(ot.year)), ce = j(() => (u) => ({\n month: a.month,\n year: a.year,\n items: u === ot.month ? a.months : a.years,\n instance: a.instance,\n updateMonthYear: A,\n toggle: u === ot.month ? y : V\n })), pe = j(() => {\n const u = a.months.find((re) => re.value === a.month);\n return u || { text: \"\", value: 0 };\n }), p = j(() => Ht(a.months, (u) => {\n const re = a.month === u.value, G = Zt(\n u.value,\n _n(a.year, R.value.minDate),\n Yn(a.year, R.value.maxDate)\n ) || d.value.months.includes(u.value), I = Fn(v.value, u.value, a.year);\n return { active: re, disabled: G, highlighted: I };\n })), Y = j(() => Ht(a.years, (u) => {\n const re = a.year === u.value, G = Zt(\n u.value,\n Wt(R.value.minDate),\n Wt(R.value.maxDate)\n ) || d.value.years.includes(u.value), I = xa(v.value, u.value);\n return { active: re, disabled: G, highlighted: I };\n })), te = (u, re, G) => {\n G !== void 0 ? u.value = G : u.value = !u.value, u.value ? (U.value = !0, n(\"overlay-opened\", re)) : (U.value = !1, n(\"overlay-closed\", re));\n }, y = (u = !1, re) => {\n S(u), te(L, je.month, re);\n }, V = (u = !1, re) => {\n S(u), te(le, je.year, re);\n }, S = (u) => {\n u || n(\"reset-flow\");\n }, q = (u, re) => {\n a.arrowNavigation && ($.value[re] = Le(u), _($.value, \"monthYear\"));\n }, k = j(() => [\n {\n type: ot.month,\n index: 1,\n toggle: y,\n modelValue: O.value,\n updateModelValue: (u) => O.value = u,\n text: pe.value.text,\n showSelectionGrid: L.value,\n items: p.value,\n ariaLabel: i.value?.openMonthsOverlay,\n overlayLabel: i.value.monthPicker?.(!0) ?? void 0\n },\n {\n type: ot.year,\n index: 2,\n toggle: V,\n modelValue: J.value,\n updateModelValue: (u) => J.value = u,\n text: Ja(a.year, a.locale),\n showSelectionGrid: le.value,\n items: Y.value,\n ariaLabel: i.value?.openYearsOverlay,\n overlayLabel: i.value.yearPicker?.(!0) ?? void 0\n }\n ]), se = j(() => a.disableYearSelect ? [k.value[0]] : a.yearFirst ? [...k.value].reverse() : k.value);\n return t({\n toggleMonthPicker: y,\n toggleYearPicker: V,\n handleMonthYearChange: C\n }), (u, re) => (w(), W(\"div\", Ir, [\n u.$slots[\"month-year\"] ? (w(), W(\"div\", Er, [\n ie(u.$slots, \"month-year\", ze(Je({\n month: e.month,\n year: e.year,\n months: e.months,\n years: e.years,\n updateMonthYear: s(A),\n handleMonthYearChange: s(C),\n instance: e.instance,\n isDisabled: s(M)\n })))\n ])) : (w(), W(ke, { key: 1 }, [\n u.$slots[\"top-extra\"] ? (w(), W(\"div\", Nr, [\n ie(u.$slots, \"top-extra\", { value: u.internalModelValue })\n ])) : Q(\"\", !0),\n he(\"div\", Lr, [\n s(m)(s(g), e.instance) && !u.vertical ? (w(), Te(Qt, {\n key: 0,\n \"aria-label\": s(i)?.prevMonth,\n disabled: s(M)(!1),\n class: De(s(h)?.navBtnPrev),\n \"el-name\": \"action-prev\",\n onActivate: re[0] || (re[0] = (G) => s(C)(!1, !0)),\n onSetRef: re[1] || (re[1] = (G) => q(G, 0))\n }, {\n default: we(() => [\n u.$slots[\"arrow-left\"] ? ie(u.$slots, \"arrow-left\", { key: 0 }) : Q(\"\", !0),\n u.$slots[\"arrow-left\"] ? Q(\"\", !0) : (w(), Te(s(Ua), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"class\"])) : Q(\"\", !0),\n he(\"div\", {\n class: De([\"dp__month_year_wrap\", {\n dp__year_disable_select: u.disableYearSelect\n }])\n }, [\n (w(!0), W(ke, null, Ce(se.value, (G, I) => (w(), W(ke, {\n key: G.type\n }, [\n he(\"button\", {\n ref_for: !0,\n ref: (x) => q(x, I + 1),\n type: \"button\",\n \"data-dp-element\": `overlay-${G.type}`,\n class: De([\"dp__btn dp__month_year_select\", { \"dp--hidden-el\": U.value }]),\n \"aria-label\": `${G.text}-${G.ariaLabel}`,\n \"data-test-id\": `${G.type}-toggle-overlay-${e.instance}`,\n onClick: G.toggle,\n onKeydown: (x) => s(qe)(x, () => G.toggle(), !0)\n }, [\n u.$slots[G.type] ? ie(u.$slots, G.type, {\n key: 0,\n text: G.text,\n value: a[G.type]\n }) : Q(\"\", !0),\n u.$slots[G.type] ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n gt(Ke(G.text), 1)\n ], 64))\n ], 42, Fr),\n tt(Vt, {\n name: s(T)(G.showSelectionGrid),\n css: s(F)\n }, {\n default: we(() => [\n G.showSelectionGrid ? (w(), Te(ta, {\n key: 0,\n items: G.items,\n \"arrow-navigation\": u.arrowNavigation,\n \"hide-navigation\": u.hideNavigation,\n \"is-last\": u.autoApply && !s(P).keepActionRow,\n \"skip-button-ref\": !1,\n config: u.config,\n type: G.type,\n \"header-refs\": [],\n \"esc-close\": u.escClose,\n \"menu-wrap-ref\": u.menuWrapRef,\n \"text-input\": u.textInput,\n \"aria-labels\": u.ariaLabels,\n \"overlay-label\": G.overlayLabel,\n onSelected: G.updateModelValue,\n onToggle: G.toggle\n }, Ge({\n \"button-icon\": we(() => [\n u.$slots[\"calendar-icon\"] ? ie(u.$slots, \"calendar-icon\", { key: 0 }) : Q(\"\", !0),\n u.$slots[\"calendar-icon\"] ? Q(\"\", !0) : (w(), Te(s(jt), { key: 1 }))\n ]),\n _: 2\n }, [\n u.$slots[`${G.type}-overlay-value`] ? {\n name: \"item\",\n fn: we(({ item: x }) => [\n ie(u.$slots, `${G.type}-overlay-value`, {\n text: x.text,\n value: x.value\n })\n ]),\n key: \"0\"\n } : void 0,\n u.$slots[`${G.type}-overlay`] ? {\n name: \"overlay\",\n fn: we(() => [\n ie(u.$slots, `${G.type}-overlay`, He({ ref_for: !0 }, ce.value(G.type)))\n ]),\n key: \"1\"\n } : void 0,\n u.$slots[`${G.type}-overlay-header`] ? {\n name: \"header\",\n fn: we(() => [\n ie(u.$slots, `${G.type}-overlay-header`, {\n toggle: G.toggle\n })\n ]),\n key: \"2\"\n } : void 0\n ]), 1032, [\"items\", \"arrow-navigation\", \"hide-navigation\", \"is-last\", \"config\", \"type\", \"esc-close\", \"menu-wrap-ref\", \"text-input\", \"aria-labels\", \"overlay-label\", \"onSelected\", \"onToggle\"])) : Q(\"\", !0)\n ]),\n _: 2\n }, 1032, [\"name\", \"css\"])\n ], 64))), 128))\n ], 2),\n s(m)(s(g), e.instance) && u.vertical ? (w(), Te(Qt, {\n key: 1,\n \"aria-label\": s(i)?.prevMonth,\n \"el-name\": \"action-prev\",\n disabled: s(M)(!1),\n class: De(s(h)?.navBtnPrev),\n onActivate: re[2] || (re[2] = (G) => s(C)(!1, !0))\n }, {\n default: we(() => [\n u.$slots[\"arrow-up\"] ? ie(u.$slots, \"arrow-up\", { key: 0 }) : Q(\"\", !0),\n u.$slots[\"arrow-up\"] ? Q(\"\", !0) : (w(), Te(s(Ka), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"class\"])) : Q(\"\", !0),\n s(z)(s(g), e.instance) ? (w(), Te(Qt, {\n key: 2,\n ref: \"rightIcon\",\n \"el-name\": \"action-next\",\n disabled: s(M)(!0),\n \"aria-label\": s(i)?.nextMonth,\n class: De(s(h)?.navBtnNext),\n onActivate: re[3] || (re[3] = (G) => s(C)(!0, !0)),\n onSetRef: re[4] || (re[4] = (G) => q(G, u.disableYearSelect ? 2 : 3))\n }, {\n default: we(() => [\n u.$slots[u.vertical ? \"arrow-down\" : \"arrow-right\"] ? ie(u.$slots, u.vertical ? \"arrow-down\" : \"arrow-right\", { key: 0 }) : Q(\"\", !0),\n u.$slots[u.vertical ? \"arrow-down\" : \"arrow-right\"] ? Q(\"\", !0) : (w(), Te(fa(u.vertical ? s(Ga) : s(Va)), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"disabled\", \"aria-label\", \"class\"])) : Q(\"\", !0)\n ])\n ], 64))\n ]));\n }\n}), Hr = {\n class: \"dp__calendar_header\",\n role: \"row\"\n}, Wr = {\n key: 0,\n class: \"dp__calendar_header_item\",\n role: \"gridcell\"\n}, Ur = [\"aria-label\"], Vr = {\n key: 0,\n class: \"dp__calendar_item dp__week_num\",\n role: \"gridcell\"\n}, jr = { class: \"dp__cell_inner\" }, Kr = [\"id\", \"aria-selected\", \"aria-disabled\", \"aria-label\", \"tabindex\", \"data-test-id\", \"onClick\", \"onTouchend\", \"onKeydown\", \"onMouseenter\", \"onMouseleave\", \"onMousedown\"], Gr = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"DpCalendar\",\n props: {\n mappedDates: { type: Array, default: () => [] },\n instance: { type: Number, default: 0 },\n month: { type: Number, default: 0 },\n year: { type: Number, default: 0 },\n ...dt\n },\n emits: [\n \"select-date\",\n \"set-hover-date\",\n \"handle-scroll\",\n \"mount\",\n \"handle-swipe\",\n \"handle-space\",\n \"tooltip-open\",\n \"tooltip-close\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, { buildMultiLevelMatrix: f } = At(), {\n defaultedTransitions: i,\n defaultedConfig: g,\n defaultedAriaLabels: d,\n defaultedMultiCalendars: P,\n defaultedWeekNumbers: v,\n defaultedMultiDates: R,\n defaultedUI: h\n } = Oe(a), T = Z(null), F = Z({\n bottom: \"\",\n left: \"\",\n transform: \"\"\n }), _ = Z([]), C = Z(null), M = Z(!0), A = Z(\"\"), m = Z({ startX: 0, endX: 0, startY: 0, endY: 0 }), z = Z([]), L = Z({ left: \"50%\" }), le = Z(!1), U = j(() => a.calendar ? a.calendar(a.mappedDates) : a.mappedDates), $ = j(() => a.dayNames ? Array.isArray(a.dayNames) ? a.dayNames : a.dayNames(a.locale, +a.weekStart) : Tl(a.formatLocale, a.locale, +a.weekStart));\n Ue(() => {\n n(\"mount\", { cmp: \"calendar\", refs: _ }), g.value.noSwipe || C.value && (C.value.addEventListener(\"touchstart\", q, { passive: !1 }), C.value.addEventListener(\"touchend\", k, { passive: !1 }), C.value.addEventListener(\"touchmove\", se, { passive: !1 })), a.monthChangeOnScroll && C.value && C.value.addEventListener(\"wheel\", G, { passive: !1 });\n }), Ut(() => {\n g.value.noSwipe || C.value && (C.value.removeEventListener(\"touchstart\", q), C.value.removeEventListener(\"touchend\", k), C.value.removeEventListener(\"touchmove\", se)), a.monthChangeOnScroll && C.value && C.value.removeEventListener(\"wheel\", G);\n });\n const ee = (B) => B ? a.vertical ? \"vNext\" : \"next\" : a.vertical ? \"vPrevious\" : \"previous\", O = (B, be) => {\n if (a.transitions) {\n const Ae = Fe(pt(H(), a.month, a.year));\n A.value = Ee(Fe(pt(H(), B, be)), Ae) ? i.value[ee(!0)] : i.value[ee(!1)], M.value = !1, at(() => {\n M.value = !0;\n });\n }\n }, J = j(\n () => ({\n ...h.value.calendar ?? {}\n })\n ), ce = j(() => (B) => {\n const be = Pl(B);\n return {\n dp__marker_dot: be.type === \"dot\",\n dp__marker_line: be.type === \"line\"\n };\n }), pe = j(() => (B) => $e(B, T.value)), p = j(() => ({\n dp__calendar: !0,\n dp__calendar_next: P.value.count > 0 && a.instance !== 0\n })), Y = j(() => (B) => a.hideOffsetDates ? B.current : !0), te = async (B, be) => {\n const { width: Ae, height: ne } = B.getBoundingClientRect();\n T.value = be.value;\n let r = { left: `${Ae / 2}px` }, E = -50;\n if (await at(), z.value[0]) {\n const { left: K, width: oe } = z.value[0].getBoundingClientRect();\n K < 0 && (r = { left: \"0\" }, E = 0, L.value.left = `${Ae / 2}px`), window.innerWidth < K + oe && (r = { right: \"0\" }, E = 0, L.value.left = `${oe - Ae / 2}px`);\n }\n F.value = {\n bottom: `${ne}px`,\n ...r,\n transform: `translateX(${E}%)`\n };\n }, y = async (B, be, Ae) => {\n const ne = Le(_.value[be][Ae]);\n ne && (B.marker?.customPosition && B.marker?.tooltip?.length ? F.value = B.marker.customPosition(ne) : await te(ne, B), n(\"tooltip-open\", B.marker));\n }, V = async (B, be, Ae) => {\n if (le.value && R.value.enabled && R.value.dragSelect)\n return n(\"select-date\", B);\n if (n(\"set-hover-date\", B), B.marker?.tooltip?.length) {\n if (a.hideOffsetDates && !B.current) return;\n await y(B, be, Ae);\n }\n }, S = (B) => {\n T.value && (T.value = null, F.value = JSON.parse(JSON.stringify({ bottom: \"\", left: \"\", transform: \"\" })), n(\"tooltip-close\", B.marker));\n }, q = (B) => {\n m.value.startX = B.changedTouches[0].screenX, m.value.startY = B.changedTouches[0].screenY;\n }, k = (B) => {\n m.value.endX = B.changedTouches[0].screenX, m.value.endY = B.changedTouches[0].screenY, u();\n }, se = (B) => {\n a.vertical && !a.inline && B.preventDefault();\n }, u = () => {\n const B = a.vertical ? \"Y\" : \"X\";\n Math.abs(m.value[`start${B}`] - m.value[`end${B}`]) > 10 && n(\"handle-swipe\", m.value[`start${B}`] > m.value[`end${B}`] ? \"right\" : \"left\");\n }, re = (B, be, Ae) => {\n B && (Array.isArray(_.value[be]) ? _.value[be][Ae] = B : _.value[be] = [B]), a.arrowNavigation && f(_.value, \"calendar\");\n }, G = (B) => {\n a.monthChangeOnScroll && (B.preventDefault(), n(\"handle-scroll\", B));\n }, I = (B) => v.value.type === \"local\" ? pl(B.value, { weekStartsOn: +a.weekStart }) : v.value.type === \"iso\" ? gl(B.value) : typeof v.value.type == \"function\" ? v.value.type(B.value) : \"\", x = (B) => {\n const be = B[0];\n return v.value.hideOnOffsetDates ? B.some((Ae) => Ae.current) ? I(be) : \"\" : I(be);\n }, c = (B, be, Ae = !0) => {\n !Ae && _l() || (!R.value.enabled || g.value.allowPreventDefault) && (Dt(B, g.value), n(\"select-date\", be));\n }, o = (B) => {\n Dt(B, g.value);\n }, X = (B) => {\n R.value.enabled && R.value.dragSelect ? (le.value = !0, n(\"select-date\", B)) : R.value.enabled && n(\"select-date\", B);\n };\n return t({ triggerTransition: O }), (B, be) => (w(), W(\"div\", {\n class: De(p.value)\n }, [\n he(\"div\", {\n ref_key: \"calendarWrapRef\",\n ref: C,\n class: De(J.value),\n role: \"grid\"\n }, [\n he(\"div\", Hr, [\n B.weekNumbers ? (w(), W(\"div\", Wr, Ke(B.weekNumName), 1)) : Q(\"\", !0),\n (w(!0), W(ke, null, Ce($.value, (Ae, ne) => (w(), W(\"div\", {\n key: ne,\n class: \"dp__calendar_header_item\",\n role: \"gridcell\",\n \"data-test-id\": \"calendar-header\",\n \"aria-label\": s(d)?.weekDay?.(ne)\n }, [\n B.$slots[\"calendar-header\"] ? ie(B.$slots, \"calendar-header\", {\n key: 0,\n day: Ae,\n index: ne\n }) : Q(\"\", !0),\n B.$slots[\"calendar-header\"] ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n gt(Ke(Ae), 1)\n ], 64))\n ], 8, Ur))), 128))\n ]),\n be[2] || (be[2] = he(\"div\", { class: \"dp__calendar_header_separator\" }, null, -1)),\n tt(Vt, {\n name: A.value,\n css: !!B.transitions\n }, {\n default: we(() => [\n M.value ? (w(), W(\"div\", {\n key: 0,\n class: \"dp__calendar\",\n role: \"rowgroup\",\n onMouseleave: be[1] || (be[1] = (Ae) => le.value = !1)\n }, [\n (w(!0), W(ke, null, Ce(U.value, (Ae, ne) => (w(), W(\"div\", {\n key: ne,\n class: \"dp__calendar_row\",\n role: \"row\"\n }, [\n B.weekNumbers ? (w(), W(\"div\", Vr, [\n he(\"div\", jr, Ke(x(Ae.days)), 1)\n ])) : Q(\"\", !0),\n (w(!0), W(ke, null, Ce(Ae.days, (r, E) => (w(), W(\"div\", {\n id: s(Ha)(r.value),\n ref_for: !0,\n ref: (K) => re(K, ne, E),\n key: E + ne,\n role: \"gridcell\",\n class: \"dp__calendar_item\",\n \"aria-selected\": (r.classData.dp__active_date || r.classData.dp__range_start || r.classData.dp__range_end) ?? void 0,\n \"aria-disabled\": r.classData.dp__cell_disabled || void 0,\n \"aria-label\": s(d)?.day?.(r),\n tabindex: !r.current && B.hideOffsetDates ? void 0 : 0,\n \"data-test-id\": s(Ha)(r.value),\n onClick: Xt((K) => c(K, r), [\"prevent\"]),\n onTouchend: (K) => c(K, r, !1),\n onKeydown: (K) => s(qe)(K, () => B.$emit(\"select-date\", r)),\n onMouseenter: (K) => V(r, ne, E),\n onMouseleave: (K) => S(r),\n onMousedown: (K) => X(r),\n onMouseup: be[0] || (be[0] = (K) => le.value = !1)\n }, [\n he(\"div\", {\n class: De([\"dp__cell_inner\", r.classData])\n }, [\n B.$slots.day && Y.value(r) ? ie(B.$slots, \"day\", {\n key: 0,\n day: +r.text,\n date: r.value\n }) : Q(\"\", !0),\n B.$slots.day ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n gt(Ke(r.text), 1)\n ], 64)),\n r.marker && Y.value(r) ? (w(), W(ke, { key: 2 }, [\n B.$slots.marker ? ie(B.$slots, \"marker\", {\n key: 0,\n marker: r.marker,\n day: +r.text,\n date: r.value\n }) : (w(), W(\"div\", {\n key: 1,\n class: De(ce.value(r.marker)),\n style: lt(r.marker.color ? { backgroundColor: r.marker.color } : {})\n }, null, 6))\n ], 64)) : Q(\"\", !0),\n pe.value(r.value) ? (w(), W(\"div\", {\n key: 3,\n ref_for: !0,\n ref_key: \"activeTooltip\",\n ref: z,\n class: \"dp__marker_tooltip\",\n style: lt(F.value)\n }, [\n r.marker?.tooltip ? (w(), W(\"div\", {\n key: 0,\n class: \"dp__tooltip_content\",\n onClick: o\n }, [\n (w(!0), W(ke, null, Ce(r.marker.tooltip, (K, oe) => (w(), W(\"div\", {\n key: oe,\n class: \"dp__tooltip_text\"\n }, [\n B.$slots[\"marker-tooltip\"] ? ie(B.$slots, \"marker-tooltip\", {\n key: 0,\n tooltip: K,\n day: r.value\n }) : Q(\"\", !0),\n B.$slots[\"marker-tooltip\"] ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n he(\"div\", {\n class: \"dp__tooltip_mark\",\n style: lt(K.color ? { backgroundColor: K.color } : {})\n }, null, 4),\n he(\"div\", null, Ke(K.text), 1)\n ], 64))\n ]))), 128)),\n he(\"div\", {\n class: \"dp__arrow_bottom_tp\",\n style: lt(L.value)\n }, null, 4)\n ])) : Q(\"\", !0)\n ], 4)) : Q(\"\", !0)\n ], 2)\n ], 40, Kr))), 128))\n ]))), 128))\n ], 32)) : Q(\"\", !0)\n ]),\n _: 3\n }, 8, [\"name\", \"css\"])\n ], 2)\n ], 2));\n }\n}), yn = (e) => Array.isArray(e), Qr = (e, t, l, n) => {\n const a = Z([]), f = Z(/* @__PURE__ */ new Date()), i = Z(), g = () => k(e.isTextInputDate), { modelValue: d, calendars: P, time: v, today: R } = na(e, t, g), {\n defaultedMultiCalendars: h,\n defaultedStartTime: T,\n defaultedRange: F,\n defaultedConfig: _,\n defaultedTz: C,\n propDates: M,\n defaultedMultiDates: A\n } = Oe(e), { validateMonthYearInRange: m, isDisabled: z, isDateRangeAllowed: L, checkMinMaxRange: le } = Tt(e), { updateTimeValues: U, getSetDateTime: $, setTime: ee, assignStartTime: O, validateTime: J, disabledTimesConfig: ce } = Gn(e, v, d, n), pe = j(\n () => (b) => P.value[b] ? P.value[b].month : 0\n ), p = j(\n () => (b) => P.value[b] ? P.value[b].year : 0\n ), Y = (b) => !_.value.keepViewOnOffsetClick || b ? !0 : !i.value, te = (b, ae, ve, N = !1) => {\n Y(N) && (P.value[b] || (P.value[b] = { month: 0, year: 0 }), P.value[b].month = cn(ae) ? P.value[b]?.month : ae, P.value[b].year = cn(ve) ? P.value[b]?.year : ve);\n }, y = () => {\n e.autoApply && t(\"select-date\");\n }, V = () => {\n T.value && O(T.value);\n };\n Ue(() => {\n e.shadow || (d.value || (be(), V()), k(!0), e.focusStartDate && e.startDate && be());\n });\n const S = j(() => e.flow?.length && !e.partialFlow ? e.flowStep === e.flow.length : !0), q = () => {\n e.autoApply && S.value && t(\"auto-apply\", e.partialFlow ? e.flowStep !== e.flow.length : !1);\n }, k = (b = !1) => {\n if (d.value)\n return Array.isArray(d.value) ? (a.value = d.value, c(b)) : re(d.value, b);\n if (h.value.count && b && !e.startDate)\n return u(H(), b);\n }, se = () => Array.isArray(d.value) && F.value.enabled ? Me(d.value[0]) === Me(d.value[1] ?? d.value[0]) : !1, u = (b = /* @__PURE__ */ new Date(), ae = !1) => {\n if ((!h.value.count || !h.value.static || ae) && te(0, Me(b), ye(b)), h.value.count && (!d.value || se() || !h.value.solo) && (!h.value.solo || ae))\n for (let ve = 1; ve < h.value.count; ve++) {\n const N = Se(H(), { month: pe.value(ve - 1), year: p.value(ve - 1) }), ue = Tn(N, { months: 1 });\n P.value[ve] = { month: Me(ue), year: ye(ue) };\n }\n }, re = (b, ae) => {\n u(b), ee(\"hours\", yt(b)), ee(\"minutes\", $t(b)), ee(\"seconds\", zt(b)), h.value.count && ae && B();\n }, G = (b) => {\n if (h.value.count) {\n if (h.value.solo) return 0;\n const ae = Me(b[0]), ve = Me(b[1]);\n return Math.abs(ve - ae) < h.value.count ? 0 : 1;\n }\n return 1;\n }, I = (b, ae) => {\n b[1] && F.value.showLastInRange ? u(b[G(b)], ae) : u(b[0], ae);\n const ve = (N, ue) => [\n N(b[0]),\n b[1] ? N(b[1]) : v[ue][1]\n ];\n ee(\"hours\", ve(yt, \"hours\")), ee(\"minutes\", ve($t, \"minutes\")), ee(\"seconds\", ve(zt, \"seconds\"));\n }, x = (b, ae) => {\n if ((F.value.enabled || e.weekPicker) && !A.value.enabled)\n return I(b, ae);\n if (A.value.enabled && ae) {\n const ve = b[b.length - 1];\n return re(ve, ae);\n }\n }, c = (b) => {\n const ae = d.value;\n x(ae, b), h.value.count && h.value.solo && B();\n }, o = (b, ae) => {\n const ve = Se(H(), { month: pe.value(ae), year: p.value(ae) }), N = b < 0 ? Ct(ve, 1) : Jt(ve, 1);\n m(Me(N), ye(N), b < 0, e.preventMinMaxNavigation) && (te(ae, Me(N), ye(N)), t(\"update-month-year\", { instance: ae, month: Me(N), year: ye(N) }), h.value.count && !h.value.solo && X(ae), l());\n }, X = (b) => {\n for (let ae = b - 1; ae >= 0; ae--) {\n const ve = Jt(Se(H(), { month: pe.value(ae + 1), year: p.value(ae + 1) }), 1);\n te(ae, Me(ve), ye(ve));\n }\n for (let ae = b + 1; ae <= h.value.count - 1; ae++) {\n const ve = Ct(Se(H(), { month: pe.value(ae - 1), year: p.value(ae - 1) }), 1);\n te(ae, Me(ve), ye(ve));\n }\n }, B = () => {\n if (Array.isArray(d.value) && d.value.length === 2) {\n const b = H(\n H(d.value[1] ? d.value[1] : Ct(d.value[0], 1))\n ), [ae, ve] = [Me(d.value[0]), ye(d.value[0])], [N, ue] = [Me(d.value[1]), ye(d.value[1])];\n (ae !== N || ae === N && ve !== ue) && h.value.solo && te(1, Me(b), ye(b));\n } else d.value && !Array.isArray(d.value) && (te(0, Me(d.value), ye(d.value)), u(H()));\n }, be = () => {\n e.startDate && (te(0, Me(H(e.startDate)), ye(H(e.startDate))), h.value.count && X(0));\n }, Ae = (b, ae) => {\n if (e.monthChangeOnScroll) {\n const ve = (/* @__PURE__ */ new Date()).getTime() - f.value.getTime(), N = Math.abs(b.deltaY);\n let ue = 500;\n N > 1 && (ue = 100), N > 100 && (ue = 0), ve > ue && (f.value = /* @__PURE__ */ new Date(), o(e.monthChangeOnScroll !== \"inverse\" ? -b.deltaY : b.deltaY, ae));\n }\n }, ne = (b, ae, ve = !1) => {\n e.monthChangeOnArrows && e.vertical === ve && r(b, ae);\n }, r = (b, ae) => {\n o(b === \"right\" ? -1 : 1, ae);\n }, E = (b) => {\n if (M.value.markers)\n return ca(b.value, M.value.markers);\n }, K = (b, ae) => {\n switch (e.sixWeeks === !0 ? \"append\" : e.sixWeeks) {\n case \"prepend\":\n return [!0, !1];\n case \"center\":\n return [b == 0, !0];\n case \"fair\":\n return [b == 0 || ae > b, !0];\n case \"append\":\n return [!1, !1];\n default:\n return [!1, !1];\n }\n }, oe = (b, ae, ve, N) => {\n if (e.sixWeeks && b.length < 6) {\n const ue = 6 - b.length, me = (ae.getDay() + 7 - N) % 7, ct = 6 - (ve.getDay() + 7 - N) % 7, [Pt, $a] = K(me, ct);\n for (let Rt = 1; Rt <= ue; Rt++)\n if ($a ? !!(Rt % 2) == Pt : Pt) {\n const ra = b[0].days[0], Aa = ge(kt(ra.value, -7), Me(ae));\n b.unshift({ days: Aa });\n } else {\n const ra = b[b.length - 1], Aa = ra.days[ra.days.length - 1], Xn = ge(kt(Aa.value, 1), Me(ae));\n b.push({ days: Xn });\n }\n }\n return b;\n }, ge = (b, ae) => {\n const ve = H(b), N = [];\n for (let ue = 0; ue < 7; ue++) {\n const me = kt(ve, ue), vt = Me(me) !== ae;\n N.push({\n text: e.hideOffsetDates && vt ? \"\" : me.getDate(),\n value: me,\n current: !vt,\n classData: {}\n });\n }\n return N;\n }, _e = (b, ae) => {\n const ve = [], N = new Date(ae, b), ue = new Date(ae, b + 1, 0), me = e.weekStart, vt = Wa(N, { weekStartsOn: me }), ct = (Pt) => {\n const $a = ge(Pt, b);\n if (ve.push({ days: $a }), !ve[ve.length - 1].days.some(\n (Rt) => $e(Fe(Rt.value), Fe(ue))\n )) {\n const Rt = kt(Pt, 7);\n ct(Rt);\n }\n };\n return ct(vt), oe(ve, N, ue, me);\n }, Ye = (b) => {\n const ae = Mt(H(b.value), v.hours, v.minutes, xe());\n t(\"date-update\", ae), A.value.enabled ? en(ae, d, A.value.limit) : d.value = ae, n(), at().then(() => {\n q();\n });\n }, nt = (b) => F.value.noDisabledRange ? In(a.value[0], b).some((ve) => z(ve)) : !1, St = () => {\n a.value = d.value ? d.value.slice() : [], a.value.length === 2 && !(F.value.fixedStart || F.value.fixedEnd) && (a.value = []);\n }, D = (b, ae) => {\n const ve = [\n H(b.value),\n kt(H(b.value), +F.value.autoRange)\n ];\n L(ve) ? (ae && de(b.value), a.value = ve) : t(\"invalid-date\", b.value);\n }, de = (b) => {\n const ae = Me(H(b)), ve = ye(H(b));\n if (te(0, ae, ve), h.value.count > 0)\n for (let N = 1; N < h.value.count; N++) {\n const ue = El(\n Se(H(b), { year: p.value(N - 1), month: pe.value(N - 1) })\n );\n te(N, ue.month, ue.year);\n }\n }, fe = (b) => {\n if (nt(b.value) || !le(b.value, d.value, F.value.fixedStart ? 0 : 1))\n return t(\"invalid-date\", b.value);\n a.value = Vn(H(b.value), d, t, F);\n }, ht = (b, ae) => {\n if (St(), F.value.autoRange) return D(b, ae);\n if (F.value.fixedStart || F.value.fixedEnd) return fe(b);\n a.value[0] ? le(H(b.value), d.value) && !nt(b.value) ? Be(H(b.value), H(a.value[0])) ? (a.value.unshift(H(b.value)), t(\"range-end\", a.value[0])) : (a.value[1] = H(b.value), t(\"range-end\", a.value[1])) : (e.autoApply && t(\"auto-apply-invalid\", b.value), t(\"invalid-date\", b.value)) : (a.value[0] = H(b.value), t(\"range-start\", a.value[0]));\n }, xe = (b = !0) => e.enableSeconds ? Array.isArray(v.seconds) ? b ? v.seconds[0] : v.seconds[1] : v.seconds : 0, Xe = (b) => {\n a.value[b] = Mt(\n a.value[b],\n v.hours[b],\n v.minutes[b],\n xe(b !== 1)\n );\n }, ya = () => {\n a.value[0] && a.value[1] && +a.value?.[0] > +a.value?.[1] && (a.value.reverse(), t(\"range-start\", a.value[0]), t(\"range-end\", a.value[1]));\n }, ha = () => {\n a.value.length && (a.value[0] && !a.value[1] ? Xe(0) : (Xe(0), Xe(1), n()), ya(), d.value = a.value.slice(), pa(a.value, t, e.autoApply, e.modelAuto));\n }, la = (b, ae = !1) => {\n if (z(b.value) || !b.current && e.hideOffsetDates) return t(\"invalid-date\", b.value);\n if (i.value = JSON.parse(JSON.stringify(b)), !F.value.enabled) return Ye(b);\n yn(v.hours) && yn(v.minutes) && !A.value.enabled && (ht(b, ae), ha());\n }, ba = (b, ae) => {\n te(b, ae.month, ae.year, !0), h.value.count && !h.value.solo && X(b), t(\"update-month-year\", { instance: b, month: ae.month, year: ae.year }), l(h.value.solo ? b : void 0);\n const ve = e.flow?.length ? e.flow[e.flowStep] : void 0;\n !ae.fromNav && (ve === je.month || ve === je.year) && n();\n }, ka = (b, ae) => {\n Un({\n value: b,\n modelValue: d,\n range: F.value.enabled,\n timezone: ae ? void 0 : C.value.timezone\n }), y(), e.multiCalendars && at().then(() => k(!0));\n }, wa = () => {\n const b = Qa(H(), C.value);\n !F.value.enabled && !A.value.enabled ? d.value = b : d.value && Array.isArray(d.value) && d.value[0] ? A.value.enabled ? d.value = [...d.value, b] : d.value = Be(b, d.value[0]) ? [b, d.value[0]] : [d.value[0], b] : d.value = [b], y();\n }, Da = () => {\n if (Array.isArray(d.value))\n if (A.value.enabled) {\n const b = Ma();\n d.value[d.value.length - 1] = $(b);\n } else\n d.value = d.value.map((b, ae) => b && $(b, ae));\n else\n d.value = $(d.value);\n t(\"time-update\");\n }, Ma = () => Array.isArray(d.value) && d.value.length ? d.value[d.value.length - 1] : null;\n return {\n calendars: P,\n modelValue: d,\n month: pe,\n year: p,\n time: v,\n disabledTimesConfig: ce,\n today: R,\n validateTime: J,\n getCalendarDays: _e,\n getMarker: E,\n handleScroll: Ae,\n handleSwipe: r,\n handleArrow: ne,\n selectDate: la,\n updateMonthYear: ba,\n presetDate: ka,\n selectCurrentDate: wa,\n updateTime: (b, ae = !0, ve = !1) => {\n U(b, ae, ve, Da);\n },\n assignMonthAndYear: u,\n setStartTime: V\n };\n}, qr = { key: 0 }, Xr = /* @__PURE__ */ We({\n __name: \"DatePicker\",\n props: {\n ...dt\n },\n emits: [\n \"tooltip-open\",\n \"tooltip-close\",\n \"mount\",\n \"update:internal-model-value\",\n \"update-flow-step\",\n \"reset-flow\",\n \"auto-apply\",\n \"focus-menu\",\n \"select-date\",\n \"range-start\",\n \"range-end\",\n \"invalid-fixed-range\",\n \"time-update\",\n \"am-pm-change\",\n \"time-picker-open\",\n \"time-picker-close\",\n \"recalculate-position\",\n \"update-month-year\",\n \"auto-apply-invalid\",\n \"date-update\",\n \"invalid-date\",\n \"overlay-toggle\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, {\n calendars: f,\n month: i,\n year: g,\n modelValue: d,\n time: P,\n disabledTimesConfig: v,\n today: R,\n validateTime: h,\n getCalendarDays: T,\n getMarker: F,\n handleArrow: _,\n handleScroll: C,\n handleSwipe: M,\n selectDate: A,\n updateMonthYear: m,\n presetDate: z,\n selectCurrentDate: L,\n updateTime: le,\n assignMonthAndYear: U,\n setStartTime: $\n } = Qr(a, n, se, u), ee = Yt(), { setHoverDate: O, getDayClassData: J, clearHoverDate: ce } = mo(d, a), { defaultedMultiCalendars: pe } = Oe(a), p = Z([]), Y = Z([]), te = Z(null), y = et(ee, \"calendar\"), V = et(ee, \"monthYear\"), S = et(ee, \"timePicker\"), q = (ne) => {\n a.shadow || n(\"mount\", ne);\n };\n rt(\n f,\n () => {\n a.shadow || setTimeout(() => {\n n(\"recalculate-position\");\n }, 0);\n },\n { deep: !0 }\n ), rt(\n pe,\n (ne, r) => {\n ne.count - r.count > 0 && U();\n },\n { deep: !0 }\n );\n const k = j(() => (ne) => T(i.value(ne), g.value(ne)).map((r) => ({\n ...r,\n days: r.days.map((E) => (E.marker = F(E), E.classData = J(E), E))\n })));\n function se(ne) {\n ne || ne === 0 ? Y.value[ne]?.triggerTransition(i.value(ne), g.value(ne)) : Y.value.forEach((r, E) => r.triggerTransition(i.value(E), g.value(E)));\n }\n function u() {\n n(\"update-flow-step\");\n }\n const re = (ne, r = !1) => {\n A(ne, r), a.spaceConfirm && n(\"select-date\");\n }, G = (ne, r, E = 0) => {\n p.value[E]?.toggleMonthPicker(ne, r);\n }, I = (ne, r, E = 0) => {\n p.value[E]?.toggleYearPicker(ne, r);\n }, x = (ne, r, E) => {\n te.value?.toggleTimePicker(ne, r, E);\n }, c = (ne, r) => {\n if (!a.range) {\n const E = d.value ? d.value : R, K = r ? new Date(r) : E, oe = ne ? Wa(K, { weekStartsOn: 1 }) : kn(K, { weekStartsOn: 1 });\n A({\n value: oe,\n current: Me(K) === i.value(0),\n text: \"\",\n classData: {}\n }), document.getElementById(Ha(oe))?.focus();\n }\n }, o = (ne) => {\n p.value[0]?.handleMonthYearChange(ne, !0);\n }, X = (ne) => {\n m(0, { month: i.value(0), year: g.value(0) + (ne ? 1 : -1), fromNav: !0 });\n }, B = (ne, r) => {\n ne === je.time && n(`time-picker-${r ? \"open\" : \"close\"}`), n(\"overlay-toggle\", { open: r, overlay: ne });\n }, be = (ne) => {\n n(\"overlay-toggle\", { open: !1, overlay: ne }), n(\"focus-menu\");\n };\n return t({\n clearHoverDate: ce,\n presetDate: z,\n selectCurrentDate: L,\n toggleMonthPicker: G,\n toggleYearPicker: I,\n toggleTimePicker: x,\n handleArrow: _,\n updateMonthYear: m,\n getSidebarProps: () => ({\n modelValue: d,\n month: i,\n year: g,\n time: P,\n updateTime: le,\n updateMonthYear: m,\n selectDate: A,\n presetDate: z\n }),\n changeMonth: o,\n changeYear: X,\n selectWeekDate: c,\n setStartTime: $\n }), (ne, r) => (w(), W(ke, null, [\n tt(ma, {\n \"multi-calendars\": s(pe).count,\n collapse: ne.collapse,\n \"is-mobile\": ne.isMobile\n }, {\n default: we(({ instance: E, index: K }) => [\n ne.disableMonthYearSelect ? Q(\"\", !0) : (w(), Te(zr, He({\n key: 0,\n ref: (oe) => {\n oe && (p.value[K] = oe);\n },\n months: s(Pn)(ne.formatLocale, ne.locale, ne.monthNameFormat),\n years: s(qa)(ne.yearRange, ne.locale, ne.reverseYears),\n month: s(i)(E),\n year: s(g)(E),\n instance: E\n }, ne.$props, {\n onMount: r[0] || (r[0] = (oe) => q(s(Ot).header)),\n onResetFlow: r[1] || (r[1] = (oe) => ne.$emit(\"reset-flow\")),\n onUpdateMonthYear: (oe) => s(m)(E, oe),\n onOverlayClosed: be,\n onOverlayOpened: r[2] || (r[2] = (oe) => ne.$emit(\"overlay-toggle\", { open: !0, overlay: oe }))\n }), Ge({ _: 2 }, [\n Ce(s(V), (oe, ge) => ({\n name: oe,\n fn: we((_e) => [\n ie(ne.$slots, oe, ze(Je(_e)))\n ])\n }))\n ]), 1040, [\"months\", \"years\", \"month\", \"year\", \"instance\", \"onUpdateMonthYear\"])),\n tt(Gr, He({\n ref: (oe) => {\n oe && (Y.value[K] = oe);\n },\n \"mapped-dates\": k.value(E),\n month: s(i)(E),\n year: s(g)(E),\n instance: E\n }, ne.$props, {\n onSelectDate: (oe) => s(A)(oe, E !== 1),\n onHandleSpace: (oe) => re(oe, E !== 1),\n onSetHoverDate: r[3] || (r[3] = (oe) => s(O)(oe)),\n onHandleScroll: (oe) => s(C)(oe, E),\n onHandleSwipe: (oe) => s(M)(oe, E),\n onMount: r[4] || (r[4] = (oe) => q(s(Ot).calendar)),\n onResetFlow: r[5] || (r[5] = (oe) => ne.$emit(\"reset-flow\")),\n onTooltipOpen: r[6] || (r[6] = (oe) => ne.$emit(\"tooltip-open\", oe)),\n onTooltipClose: r[7] || (r[7] = (oe) => ne.$emit(\"tooltip-close\", oe))\n }), Ge({ _: 2 }, [\n Ce(s(y), (oe, ge) => ({\n name: oe,\n fn: we((_e) => [\n ie(ne.$slots, oe, ze(Je({ ..._e })))\n ])\n }))\n ]), 1040, [\"mapped-dates\", \"month\", \"year\", \"instance\", \"onSelectDate\", \"onHandleSpace\", \"onHandleScroll\", \"onHandleSwipe\"])\n ]),\n _: 3\n }, 8, [\"multi-calendars\", \"collapse\", \"is-mobile\"]),\n ne.enableTimePicker ? (w(), W(\"div\", qr, [\n ne.$slots[\"time-picker\"] ? ie(ne.$slots, \"time-picker\", ze(He({ key: 0 }, { time: s(P), updateTime: s(le) }))) : (w(), Te(Kn, He({\n key: 1,\n ref_key: \"timePickerRef\",\n ref: te\n }, ne.$props, {\n hours: s(P).hours,\n minutes: s(P).minutes,\n seconds: s(P).seconds,\n \"internal-model-value\": ne.internalModelValue,\n \"disabled-times-config\": s(v),\n \"validate-time\": s(h),\n onMount: r[8] || (r[8] = (E) => q(s(Ot).timePicker)),\n \"onUpdate:hours\": r[9] || (r[9] = (E) => s(le)(E)),\n \"onUpdate:minutes\": r[10] || (r[10] = (E) => s(le)(E, !1)),\n \"onUpdate:seconds\": r[11] || (r[11] = (E) => s(le)(E, !1, !0)),\n onResetFlow: r[12] || (r[12] = (E) => ne.$emit(\"reset-flow\")),\n onOverlayClosed: r[13] || (r[13] = (E) => B(E, !1)),\n onOverlayOpened: r[14] || (r[14] = (E) => B(E, !0)),\n onAmPmChange: r[15] || (r[15] = (E) => ne.$emit(\"am-pm-change\", E))\n }), Ge({ _: 2 }, [\n Ce(s(S), (E, K) => ({\n name: E,\n fn: we((oe) => [\n ie(ne.$slots, E, ze(Je(oe)))\n ])\n }))\n ]), 1040, [\"hours\", \"minutes\", \"seconds\", \"internal-model-value\", \"disabled-times-config\", \"validate-time\"]))\n ])) : Q(\"\", !0)\n ], 64));\n }\n}), Jr = (e, t) => {\n const l = Z(), {\n defaultedMultiCalendars: n,\n defaultedConfig: a,\n defaultedHighlight: f,\n defaultedRange: i,\n propDates: g,\n defaultedFilters: d,\n defaultedMultiDates: P\n } = Oe(e), { modelValue: v, year: R, month: h, calendars: T } = na(e, t), { isDisabled: F } = Tt(e), { selectYear: _, groupedYears: C, showYearPicker: M, isDisabled: A, toggleYearPicker: m, handleYearSelect: z, handleYear: L } = jn({\n modelValue: v,\n multiCalendars: n,\n range: i,\n highlight: f,\n calendars: T,\n propDates: g,\n month: h,\n year: R,\n filters: d,\n props: e,\n emit: t\n }), le = (y, V) => [y, V].map((S) => ft(S, \"MMMM\", { locale: e.formatLocale })).join(\"-\"), U = j(() => (y) => v.value ? Array.isArray(v.value) ? v.value.some((V) => rn(y, V)) : rn(v.value, y) : !1), $ = (y) => {\n if (i.value.enabled) {\n if (Array.isArray(v.value)) {\n const V = $e(y, v.value[0]) || $e(y, v.value[1]);\n return xt(v.value, l.value, y) && !V;\n }\n return !1;\n }\n return !1;\n }, ee = (y, V) => y.quarter === sn(V) && y.year === ye(V), O = (y) => typeof f.value == \"function\" ? f.value({ quarter: sn(y), year: ye(y) }) : !!f.value.quarters.find((V) => ee(V, y)), J = j(() => (y) => {\n const V = Se(/* @__PURE__ */ new Date(), { year: R.value(y) });\n return yl({\n start: Gt(V),\n end: An(V)\n }).map((S) => {\n const q = hl(S), k = on(S), se = F(S), u = $(q), re = O(q);\n return {\n text: le(q, k),\n value: q,\n active: U.value(q),\n highlighted: re,\n disabled: se,\n isBetween: u\n };\n });\n }), ce = (y) => {\n en(y, v, P.value.limit), t(\"auto-apply\", !0);\n }, pe = (y) => {\n v.value = tn(v, y, t), pa(v.value, t, e.autoApply, e.modelAuto);\n }, p = (y) => {\n v.value = y, t(\"auto-apply\");\n };\n return {\n defaultedConfig: a,\n defaultedMultiCalendars: n,\n groupedYears: C,\n year: R,\n isDisabled: A,\n quarters: J,\n showYearPicker: M,\n modelValue: v,\n setHoverDate: (y) => {\n l.value = y;\n },\n selectYear: _,\n selectQuarter: (y, V, S) => {\n if (!S)\n return T.value[V].month = Me(on(y)), P.value.enabled ? ce(y) : i.value.enabled ? pe(y) : p(y);\n },\n toggleYearPicker: m,\n handleYearSelect: z,\n handleYear: L\n };\n}, Zr = { class: \"dp--quarter-items\" }, xr = [\"data-test-id\", \"disabled\", \"onClick\", \"onMouseover\"], eo = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"QuarterPicker\",\n props: {\n ...dt\n },\n emits: [\n \"update:internal-model-value\",\n \"reset-flow\",\n \"overlay-closed\",\n \"auto-apply\",\n \"range-start\",\n \"range-end\",\n \"overlay-toggle\",\n \"update-month-year\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, f = Yt(), i = et(f, \"yearMode\"), {\n defaultedMultiCalendars: g,\n defaultedConfig: d,\n groupedYears: P,\n year: v,\n isDisabled: R,\n quarters: h,\n modelValue: T,\n showYearPicker: F,\n setHoverDate: _,\n selectQuarter: C,\n toggleYearPicker: M,\n handleYearSelect: A,\n handleYear: m\n } = Jr(a, n);\n return t({ getSidebarProps: () => ({\n modelValue: T,\n year: v,\n selectQuarter: C,\n handleYearSelect: A,\n handleYear: m\n }) }), (L, le) => (w(), Te(ma, {\n \"multi-calendars\": s(g).count,\n collapse: L.collapse,\n stretch: \"\",\n \"is-mobile\": L.isMobile\n }, {\n default: we(({ instance: U }) => [\n he(\"div\", {\n class: \"dp-quarter-picker-wrap\",\n style: lt({ minHeight: `${s(d).modeHeight}px` })\n }, [\n L.$slots[\"top-extra\"] ? ie(L.$slots, \"top-extra\", {\n key: 0,\n value: L.internalModelValue\n }) : Q(\"\", !0),\n he(\"div\", null, [\n tt(Wn, He(L.$props, {\n items: s(P)(U),\n instance: U,\n \"show-year-picker\": s(F)[U],\n year: s(v)(U),\n \"is-disabled\": ($) => s(R)(U, $),\n onHandleYear: ($) => s(m)(U, $),\n onYearSelect: ($) => s(A)($, U),\n onToggleYearPicker: ($) => s(M)(U, $?.flow, $?.show)\n }), Ge({ _: 2 }, [\n Ce(s(i), ($, ee) => ({\n name: $,\n fn: we((O) => [\n ie(L.$slots, $, ze(Je(O)))\n ])\n }))\n ]), 1040, [\"items\", \"instance\", \"show-year-picker\", \"year\", \"is-disabled\", \"onHandleYear\", \"onYearSelect\", \"onToggleYearPicker\"])\n ]),\n he(\"div\", Zr, [\n (w(!0), W(ke, null, Ce(s(h)(U), ($, ee) => (w(), W(\"div\", { key: ee }, [\n he(\"button\", {\n type: \"button\",\n class: De([\"dp--qr-btn\", {\n \"dp--qr-btn-active\": $.active,\n \"dp--qr-btn-between\": $.isBetween,\n \"dp--qr-btn-disabled\": $.disabled,\n \"dp--highlighted\": $.highlighted\n }]),\n \"data-test-id\": $.value,\n disabled: $.disabled,\n onClick: (O) => s(C)($.value, U, $.disabled),\n onMouseover: (O) => s(_)($.value)\n }, [\n L.$slots.quarter ? ie(L.$slots, \"quarter\", {\n key: 0,\n value: $.value,\n text: $.text\n }) : (w(), W(ke, { key: 1 }, [\n gt(Ke($.text), 1)\n ], 64))\n ], 42, xr)\n ]))), 128))\n ])\n ], 4)\n ]),\n _: 3\n }, 8, [\"multi-calendars\", \"collapse\", \"is-mobile\"]));\n }\n}), Qn = (e, t) => {\n const l = Z(0);\n Ue(() => {\n n(), window.addEventListener(\"resize\", n, { passive: !0 });\n }), Ut(() => {\n window.removeEventListener(\"resize\", n);\n });\n const n = () => {\n l.value = window.document.documentElement.clientWidth;\n };\n return {\n isMobile: j(\n () => l.value <= e.value.mobileBreakpoint && !t ? !0 : void 0\n )\n };\n}, to = [\"id\", \"tabindex\", \"role\", \"aria-label\"], ao = {\n key: 0,\n class: \"dp--menu-load-container\"\n}, no = {\n key: 1,\n class: \"dp--menu-header\"\n}, lo = [\"data-dp-mobile\"], ro = {\n key: 0,\n class: \"dp__sidebar_left\"\n}, oo = [\"data-dp-mobile\"], so = [\"data-test-id\", \"data-dp-mobile\", \"onClick\", \"onKeydown\"], uo = {\n key: 2,\n class: \"dp__sidebar_right\"\n}, io = {\n key: 3,\n class: \"dp__action_extra\"\n}, hn = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"DatepickerMenu\",\n props: {\n ...va,\n shadow: { type: Boolean, default: !1 },\n openOnTop: { type: Boolean, default: !1 },\n internalModelValue: { type: [Date, Array], default: null },\n noOverlayFocus: { type: Boolean, default: !1 },\n collapse: { type: Boolean, default: !1 },\n getInputRect: { type: Function, default: () => ({}) },\n isTextInputDate: { type: Boolean, default: !1 }\n },\n emits: [\n \"close-picker\",\n \"select-date\",\n \"auto-apply\",\n \"time-update\",\n \"flow-step\",\n \"update-month-year\",\n \"invalid-select\",\n \"update:internal-model-value\",\n \"recalculate-position\",\n \"invalid-fixed-range\",\n \"tooltip-open\",\n \"tooltip-close\",\n \"time-picker-open\",\n \"time-picker-close\",\n \"am-pm-change\",\n \"range-start\",\n \"range-end\",\n \"auto-apply-invalid\",\n \"date-update\",\n \"invalid-date\",\n \"overlay-toggle\",\n \"menu-blur\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, f = Z(null), i = j(() => {\n const { openOnTop: D, ...de } = a;\n return {\n ...de,\n isMobile: C.value,\n flowStep: pe.value,\n menuWrapRef: f.value\n };\n }), { setMenuFocused: g, setShiftKey: d, control: P } = Hn(), v = Yt(), { defaultedTextInput: R, defaultedInline: h, defaultedConfig: T, defaultedUI: F, handleEventPropagation: _ } = Oe(a), { isMobile: C } = Qn(T, a.shadow), M = Z(null), A = Z(0), m = Z(null), z = Z(!1), L = Z(null), le = Z(!1), U = (D) => {\n le.value = !0, T.value.allowPreventDefault && D.preventDefault(), Dt(D, T.value, !0);\n };\n Ue(() => {\n if (!a.shadow) {\n z.value = !0, $(), window.addEventListener(\"resize\", $);\n const D = Le(f);\n D && !R.value.enabled && !h.value.enabled && (g(!0), q()), D && (D.addEventListener(\"pointerdown\", U), D.addEventListener(\"mousedown\", U));\n }\n document.addEventListener(\"mousedown\", nt);\n }), Ut(() => {\n window.removeEventListener(\"resize\", $), document.removeEventListener(\"mousedown\", nt);\n const D = Le(f);\n D && (D.removeEventListener(\"pointerdown\", U), D.removeEventListener(\"mousedown\", U));\n });\n const $ = () => {\n const D = Le(m);\n D && (A.value = D.getBoundingClientRect().width);\n }, { arrowRight: ee, arrowLeft: O, arrowDown: J, arrowUp: ce } = At(), { flowStep: pe, updateFlowStep: p, childMount: Y, resetFlow: te, handleFlow: y } = po(a, n, L), V = j(() => a.monthPicker ? hr : a.yearPicker ? kr : a.timePicker ? Yr : a.quarterPicker ? eo : Xr), S = j(() => {\n if (T.value.arrowLeft) return T.value.arrowLeft;\n const D = f.value?.getBoundingClientRect(), de = a.getInputRect();\n return de?.width < A?.value && de?.left <= (D?.left ?? 0) ? `${de?.width / 2}px` : de?.right >= (D?.right ?? 0) && de?.width < A?.value ? `${A?.value - de?.width / 2}px` : \"50%\";\n }), q = () => {\n const D = Le(f);\n D && D.focus({ preventScroll: !0 });\n }, k = j(() => L.value?.getSidebarProps() || {}), se = () => {\n a.openOnTop && n(\"recalculate-position\");\n }, u = et(v, \"action\"), re = j(() => a.monthPicker || a.yearPicker ? et(v, \"monthYear\") : a.timePicker ? et(v, \"timePicker\") : et(v, \"shared\")), G = j(() => a.openOnTop ? \"dp__arrow_bottom\" : \"dp__arrow_top\"), I = j(() => ({\n dp__menu_disabled: a.disabled,\n dp__menu_readonly: a.readonly,\n \"dp-menu-loading\": a.loading\n })), x = j(\n () => ({\n dp__menu: !0,\n dp__menu_index: !h.value.enabled,\n dp__relative: h.value.enabled,\n ...F.value.menu ?? {}\n })\n ), c = (D) => {\n Dt(D, T.value, !0);\n }, o = (D) => {\n a.escClose && (n(\"close-picker\"), _(D));\n }, X = (D) => {\n if (a.arrowNavigation) {\n if (D === Qe.up) return ce();\n if (D === Qe.down) return J();\n if (D === Qe.left) return O();\n if (D === Qe.right) return ee();\n } else D === Qe.left || D === Qe.up ? r(\"handleArrow\", Qe.left, 0, D === Qe.up) : r(\"handleArrow\", Qe.right, 0, D === Qe.down);\n }, B = (D) => {\n d(D.shiftKey), !a.disableMonthYearSelect && D.code === Re.tab && D.target.classList.contains(\"dp__menu\") && P.value.shiftKeyInMenu && (D.preventDefault(), Dt(D, T.value, !0), n(\"close-picker\"));\n }, be = () => {\n q(), n(\"time-picker-close\");\n }, Ae = (D) => {\n L.value?.toggleTimePicker(!1, !1), L.value?.toggleMonthPicker(!1, !1, D), L.value?.toggleYearPicker(!1, !1, D);\n }, ne = (D, de = 0) => D === \"month\" ? L.value?.toggleMonthPicker(!1, !0, de) : D === \"year\" ? L.value?.toggleYearPicker(!1, !0, de) : D === \"time\" ? L.value?.toggleTimePicker(!0, !1) : Ae(de), r = (D, ...de) => {\n L.value?.[D] && L.value?.[D](...de);\n }, E = () => {\n r(\"selectCurrentDate\");\n }, K = (D, de) => {\n r(\"presetDate\", el(D), de);\n }, oe = () => {\n r(\"clearHoverDate\");\n }, ge = (D, de) => {\n r(\"updateMonthYear\", D, de);\n }, _e = (D, de) => {\n D.preventDefault(), X(de);\n }, Ye = (D) => {\n if (B(D), D.key === Re.home || D.key === Re.end)\n return r(\n \"selectWeekDate\",\n D.key === Re.home,\n D.target.getAttribute(\"id\")\n );\n switch ((D.key === Re.pageUp || D.key === Re.pageDown) && (D.shiftKey ? (r(\"changeYear\", D.key === Re.pageUp), Fa(f.value, \"overlay-year\")?.focus()) : (r(\"changeMonth\", D.key === Re.pageUp), Fa(f.value, D.key === Re.pageUp ? \"action-prev\" : \"action-next\")?.focus()), D.target.getAttribute(\"id\") && f.value?.focus({ preventScroll: !0 })), D.key) {\n case Re.esc:\n return o(D);\n case Re.arrowLeft:\n return _e(D, Qe.left);\n case Re.arrowRight:\n return _e(D, Qe.right);\n case Re.arrowUp:\n return _e(D, Qe.up);\n case Re.arrowDown:\n return _e(D, Qe.down);\n default:\n return;\n }\n }, nt = (D) => {\n h.value.enabled && !h.value.input && !f.value?.contains(D.target) && le.value && (le.value = !1, n(\"menu-blur\"));\n };\n return t({\n updateMonthYear: ge,\n switchView: ne,\n handleFlow: y,\n onValueCleared: () => {\n L.value?.setStartTime?.();\n }\n }), (D, de) => (w(), W(\"div\", {\n id: D.uid ? `dp-menu-${D.uid}` : void 0,\n ref_key: \"dpMenuRef\",\n ref: f,\n tabindex: s(h).enabled ? void 0 : \"0\",\n role: s(h).enabled ? void 0 : \"dialog\",\n \"aria-label\": D.ariaLabels?.menu,\n class: De(x.value),\n style: lt({ \"--dp-arrow-left\": S.value }),\n onMouseleave: oe,\n onClick: c,\n onKeydown: Ye\n }, [\n (D.disabled || D.readonly) && s(h).enabled || D.loading ? (w(), W(\"div\", {\n key: 0,\n class: De(I.value)\n }, [\n D.loading ? (w(), W(\"div\", ao, [...de[19] || (de[19] = [\n he(\"span\", { class: \"dp--menu-loader\" }, null, -1)\n ])])) : Q(\"\", !0)\n ], 2)) : Q(\"\", !0),\n D.$slots[\"menu-header\"] ? (w(), W(\"div\", no, [\n ie(D.$slots, \"menu-header\")\n ])) : Q(\"\", !0),\n !s(h).enabled && !D.teleportCenter ? (w(), W(\"div\", {\n key: 2,\n class: De(G.value)\n }, null, 2)) : Q(\"\", !0),\n he(\"div\", {\n ref_key: \"innerMenuRef\",\n ref: m,\n class: De({\n dp__menu_content_wrapper: D.presetDates?.length || !!D.$slots[\"left-sidebar\"] || !!D.$slots[\"right-sidebar\"],\n \"dp--menu-content-wrapper-collapsed\": e.collapse && (D.presetDates?.length || !!D.$slots[\"left-sidebar\"] || !!D.$slots[\"right-sidebar\"])\n }),\n \"data-dp-mobile\": s(C),\n style: lt({ \"--dp-menu-width\": `${A.value}px` })\n }, [\n D.$slots[\"left-sidebar\"] ? (w(), W(\"div\", ro, [\n ie(D.$slots, \"left-sidebar\", ze(Je(k.value)))\n ])) : Q(\"\", !0),\n D.presetDates.length ? (w(), W(\"div\", {\n key: 1,\n class: De({ \"dp--preset-dates-collapsed\": e.collapse, \"dp--preset-dates\": !0 }),\n \"data-dp-mobile\": s(C)\n }, [\n (w(!0), W(ke, null, Ce(D.presetDates, (fe, ht) => (w(), W(ke, { key: ht }, [\n fe.slot ? ie(D.$slots, fe.slot, {\n key: 0,\n presetDate: K,\n label: fe.label,\n value: fe.value\n }) : (w(), W(\"button\", {\n key: 1,\n type: \"button\",\n style: lt(fe.style || {}),\n class: De([\"dp__btn dp--preset-range\", { \"dp--preset-range-collapsed\": e.collapse }]),\n \"data-test-id\": fe.testId ?? void 0,\n \"data-dp-mobile\": s(C),\n onClick: Xt((xe) => K(fe.value, fe.noTz), [\"prevent\"]),\n onKeydown: (xe) => s(qe)(xe, () => K(fe.value, fe.noTz), !0)\n }, Ke(fe.label), 47, so))\n ], 64))), 128))\n ], 10, oo)) : Q(\"\", !0),\n he(\"div\", {\n ref_key: \"calendarWrapperRef\",\n ref: M,\n class: \"dp__instance_calendar\",\n role: \"document\"\n }, [\n (w(), Te(fa(V.value), He({\n ref_key: \"dynCmpRef\",\n ref: L\n }, i.value, {\n \"flow-step\": s(pe),\n onMount: s(Y),\n onUpdateFlowStep: s(p),\n onResetFlow: s(te),\n onFocusMenu: q,\n onSelectDate: de[0] || (de[0] = (fe) => D.$emit(\"select-date\")),\n onDateUpdate: de[1] || (de[1] = (fe) => D.$emit(\"date-update\", fe)),\n onTooltipOpen: de[2] || (de[2] = (fe) => D.$emit(\"tooltip-open\", fe)),\n onTooltipClose: de[3] || (de[3] = (fe) => D.$emit(\"tooltip-close\", fe)),\n onAutoApply: de[4] || (de[4] = (fe) => D.$emit(\"auto-apply\", fe)),\n onRangeStart: de[5] || (de[5] = (fe) => D.$emit(\"range-start\", fe)),\n onRangeEnd: de[6] || (de[6] = (fe) => D.$emit(\"range-end\", fe)),\n onInvalidFixedRange: de[7] || (de[7] = (fe) => D.$emit(\"invalid-fixed-range\", fe)),\n onTimeUpdate: de[8] || (de[8] = (fe) => D.$emit(\"time-update\")),\n onAmPmChange: de[9] || (de[9] = (fe) => D.$emit(\"am-pm-change\", fe)),\n onTimePickerOpen: de[10] || (de[10] = (fe) => D.$emit(\"time-picker-open\", fe)),\n onTimePickerClose: be,\n onRecalculatePosition: se,\n onUpdateMonthYear: de[11] || (de[11] = (fe) => D.$emit(\"update-month-year\", fe)),\n onAutoApplyInvalid: de[12] || (de[12] = (fe) => D.$emit(\"auto-apply-invalid\", fe)),\n onInvalidDate: de[13] || (de[13] = (fe) => D.$emit(\"invalid-date\", fe)),\n onOverlayToggle: de[14] || (de[14] = (fe) => D.$emit(\"overlay-toggle\", fe)),\n \"onUpdate:internalModelValue\": de[15] || (de[15] = (fe) => D.$emit(\"update:internal-model-value\", fe))\n }), Ge({ _: 2 }, [\n Ce(re.value, (fe, ht) => ({\n name: fe,\n fn: we((xe) => [\n ie(D.$slots, fe, ze(Je({ ...xe })))\n ])\n }))\n ]), 1040, [\"flow-step\", \"onMount\", \"onUpdateFlowStep\", \"onResetFlow\"]))\n ], 512),\n D.$slots[\"right-sidebar\"] ? (w(), W(\"div\", uo, [\n ie(D.$slots, \"right-sidebar\", ze(Je(k.value)))\n ])) : Q(\"\", !0),\n D.$slots[\"action-extra\"] ? (w(), W(\"div\", io, [\n D.$slots[\"action-extra\"] ? ie(D.$slots, \"action-extra\", {\n key: 0,\n selectCurrentDate: E\n }) : Q(\"\", !0)\n ])) : Q(\"\", !0)\n ], 14, lo),\n !D.autoApply || s(T).keepActionRow ? (w(), Te(ir, He({\n key: 3,\n \"menu-mount\": z.value\n }, i.value, {\n \"calendar-width\": A.value,\n onClosePicker: de[16] || (de[16] = (fe) => D.$emit(\"close-picker\")),\n onSelectDate: de[17] || (de[17] = (fe) => D.$emit(\"select-date\")),\n onInvalidSelect: de[18] || (de[18] = (fe) => D.$emit(\"invalid-select\")),\n onSelectNow: E\n }), Ge({ _: 2 }, [\n Ce(s(u), (fe, ht) => ({\n name: fe,\n fn: we((xe) => [\n ie(D.$slots, fe, ze(Je({ ...xe })))\n ])\n }))\n ]), 1040, [\"menu-mount\", \"calendar-width\"])) : Q(\"\", !0)\n ], 46, to));\n }\n});\nvar Et = /* @__PURE__ */ ((e) => (e.center = \"center\", e.left = \"left\", e.right = \"right\", e))(Et || {});\nconst co = ({\n menuRef: e,\n menuRefInner: t,\n inputRef: l,\n pickerWrapperRef: n,\n inline: a,\n emit: f,\n props: i,\n slots: g\n}) => {\n const { defaultedConfig: d } = Oe(i), P = Z({}), v = Z(!1), R = Z({\n top: \"0\",\n left: \"0\"\n }), h = Z(!1), T = qt(i, \"teleportCenter\");\n rt(T, () => {\n R.value = JSON.parse(JSON.stringify({})), L();\n });\n const F = (y) => {\n if (i.teleport) {\n const V = y.getBoundingClientRect();\n return {\n left: V.left + window.scrollX,\n top: V.top + window.scrollY\n };\n }\n return { top: 0, left: 0 };\n }, _ = (y, V) => {\n R.value.left = `${y + V - P.value.width}px`;\n }, C = (y) => {\n R.value.left = `${y}px`;\n }, M = (y, V) => {\n i.position === Et.left && C(y), i.position === Et.right && _(y, V), i.position === Et.center && (R.value.left = `${y + V / 2 - P.value.width / 2}px`);\n }, A = (y) => {\n const { width: V, height: S } = y.getBoundingClientRect(), { top: q, left: k } = F(y);\n return { top: +q, left: +k, width: V, height: S };\n }, m = () => {\n R.value.left = \"50%\", R.value.top = \"50%\", R.value.transform = \"translate(-50%, -50%)\", R.value.position = \"fixed\", delete R.value.opacity;\n }, z = () => {\n const y = Le(l);\n R.value = i.altPosition(y);\n }, L = (y = !0) => {\n if (!a.value.enabled) {\n if (T.value) return m();\n if (i.altPosition !== null) return z();\n if (y) {\n const V = i.teleport ? t.value?.$el : e.value;\n V && (P.value = V.getBoundingClientRect()), f(\"recalculate-position\");\n }\n return ce();\n }\n }, le = ({ inputEl: y, left: V, width: S }) => {\n window.screen.width > 768 && !v.value && M(V, S), ee(y);\n }, U = (y) => {\n const { top: V, left: S, height: q, width: k } = A(y);\n R.value.top = `${q + V + +i.offset}px`, h.value = !1, v.value || (R.value.left = `${S + k / 2 - P.value.width / 2}px`), le({ inputEl: y, left: S, width: k });\n }, $ = (y) => {\n const { top: V, left: S, width: q } = A(y);\n R.value.top = `${V - +i.offset - P.value.height}px`, h.value = !0, le({ inputEl: y, left: S, width: q });\n }, ee = (y) => {\n if (i.autoPosition) {\n const { left: V, width: S } = A(y), { left: q, right: k } = P.value;\n if (!v.value) {\n if (Math.abs(q) !== Math.abs(k)) {\n if (q <= 0)\n return v.value = !0, C(V);\n if (k >= document.documentElement.clientWidth)\n return v.value = !0, _(V, S);\n }\n return M(V, S);\n }\n }\n }, O = () => {\n const y = Le(l);\n if (y) {\n if (i.autoPosition === st.top) return st.top;\n if (i.autoPosition === st.bottom) return st.bottom;\n const { height: V } = P.value, { top: S, height: q } = y.getBoundingClientRect(), se = window.innerHeight - S - q, u = S;\n return V <= se ? st.bottom : V > se && V <= u ? st.top : se >= u ? st.bottom : st.top;\n }\n return st.bottom;\n }, J = (y) => O() === st.bottom ? U(y) : $(y), ce = () => {\n const y = Le(l);\n if (y)\n return i.autoPosition ? J(y) : U(y);\n }, pe = function(y) {\n if (y) {\n const V = y.scrollHeight > y.clientHeight, q = window.getComputedStyle(y).overflowY.indexOf(\"hidden\") !== -1;\n return V && !q;\n }\n return !0;\n }, p = function(y) {\n return !y || y === document.body || y.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? window : pe(y) ? y : p(\n y.assignedSlot && d.value.shadowDom ? y.assignedSlot.parentNode : y.parentNode\n );\n }, Y = (y) => {\n if (y)\n switch (i.position) {\n case Et.left:\n return { left: 0, transform: \"translateX(0)\" };\n case Et.right:\n return { left: `${y.width}px`, transform: \"translateX(-100%)\" };\n default:\n return { left: `${y.width / 2}px`, transform: \"translateX(-50%)\" };\n }\n return {};\n };\n return {\n openOnTop: h,\n menuStyle: R,\n xCorrect: v,\n setMenuPosition: L,\n getScrollableParent: p,\n shadowRender: (y, V, S) => {\n const q = document.createElement(\"div\"), k = Le(l)?.getBoundingClientRect();\n q.setAttribute(\"id\", \"dp--temp-container\");\n const se = n.value?.clientWidth ? n.value : document.body;\n se.append(q);\n const u = Y(k), re = d.value.shadowDom ? Object.keys(g).filter(\n (I) => [\"right-sidebar\", \"left-sidebar\", \"top-extra\", \"action-extra\"].includes(I)\n ) : Object.keys(g), G = tl(\n V,\n {\n ...S,\n shadow: !0,\n style: { opacity: 0, position: \"absolute\", ...u }\n },\n Object.fromEntries(re.map((I) => [I, g[I]]))\n );\n y != null && (G.appContext = y.appContext), nn(G, q), P.value = G.el?.getBoundingClientRect(), nn(null, q), se.removeChild(q);\n }\n };\n}, bt = [\n { name: \"clock-icon\", use: [\"time\", \"calendar\", \"shared\"] },\n { name: \"arrow-left\", use: [\"month-year\", \"calendar\", \"shared\", \"year-mode\"] },\n { name: \"arrow-right\", use: [\"month-year\", \"calendar\", \"shared\", \"year-mode\"] },\n { name: \"arrow-up\", use: [\"time\", \"calendar\", \"month-year\", \"shared\"] },\n { name: \"arrow-down\", use: [\"time\", \"calendar\", \"month-year\", \"shared\"] },\n { name: \"calendar-icon\", use: [\"month-year\", \"time\", \"calendar\", \"shared\", \"year-mode\"] },\n { name: \"day\", use: [\"calendar\", \"shared\"] },\n { name: \"month-overlay-value\", use: [\"calendar\", \"month-year\", \"shared\"] },\n { name: \"year-overlay-value\", use: [\"calendar\", \"month-year\", \"shared\", \"year-mode\"] },\n { name: \"year-overlay\", use: [\"month-year\", \"shared\"] },\n { name: \"month-overlay\", use: [\"month-year\", \"shared\"] },\n { name: \"month-overlay-header\", use: [\"month-year\", \"shared\"] },\n { name: \"year-overlay-header\", use: [\"month-year\", \"shared\"] },\n { name: \"hours-overlay-value\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"hours-overlay-header\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"minutes-overlay-value\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"minutes-overlay-header\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"seconds-overlay-value\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"seconds-overlay-header\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"hours\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"minutes\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"month\", use: [\"calendar\", \"month-year\", \"shared\"] },\n { name: \"year\", use: [\"calendar\", \"month-year\", \"shared\", \"year-mode\"] },\n { name: \"action-buttons\", use: [\"action\"] },\n { name: \"action-preview\", use: [\"action\"] },\n { name: \"calendar-header\", use: [\"calendar\", \"shared\"] },\n { name: \"marker-tooltip\", use: [\"calendar\", \"shared\"] },\n { name: \"action-extra\", use: [\"menu\"] },\n { name: \"time-picker-overlay\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"am-pm-button\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"left-sidebar\", use: [\"menu\"] },\n { name: \"right-sidebar\", use: [\"menu\"] },\n { name: \"month-year\", use: [\"month-year\", \"shared\"] },\n { name: \"time-picker\", use: [\"menu\", \"shared\"] },\n { name: \"action-row\", use: [\"action\"] },\n { name: \"marker\", use: [\"calendar\", \"shared\"] },\n { name: \"quarter\", use: [\"shared\"] },\n { name: \"top-extra\", use: [\"shared\", \"month-year\"] },\n { name: \"tp-inline-arrow-up\", use: [\"shared\", \"time\"] },\n { name: \"tp-inline-arrow-down\", use: [\"shared\", \"time\"] },\n { name: \"menu-header\", use: [\"menu\"] }\n], fo = [{ name: \"trigger\" }, { name: \"input-icon\" }, { name: \"clear-icon\" }, { name: \"dp-input\" }], vo = {\n all: () => bt,\n monthYear: () => bt.filter((e) => e.use.includes(\"month-year\")),\n input: () => fo,\n timePicker: () => bt.filter((e) => e.use.includes(\"time\")),\n action: () => bt.filter((e) => e.use.includes(\"action\")),\n calendar: () => bt.filter((e) => e.use.includes(\"calendar\")),\n menu: () => bt.filter((e) => e.use.includes(\"menu\")),\n shared: () => bt.filter((e) => e.use.includes(\"shared\")),\n yearMode: () => bt.filter((e) => e.use.includes(\"year-mode\"))\n}, et = (e, t, l) => {\n const n = [];\n return vo[t]().forEach((a) => {\n e[a.name] && n.push(a.name);\n }), l?.length && l.forEach((a) => {\n a.slot && n.push(a.slot);\n }), n;\n}, aa = (e) => {\n const t = j(() => (n) => e.value ? n ? e.value.open : e.value.close : \"\"), l = j(() => (n) => e.value ? n ? e.value.menuAppearTop : e.value.menuAppearBottom : \"\");\n return { transitionName: t, showTransition: !!e.value, menuTransition: l };\n}, na = (e, t, l) => {\n const { defaultedRange: n, defaultedTz: a } = Oe(e), f = H(Ze(H(), a.value.timezone)), i = Z([{ month: Me(f), year: ye(f) }]), g = (h) => {\n const T = {\n hours: yt(f),\n minutes: $t(f),\n seconds: 0\n };\n return n.value.enabled ? [T[h], T[h]] : T[h];\n }, d = ea({\n hours: g(\"hours\"),\n minutes: g(\"minutes\"),\n seconds: g(\"seconds\")\n });\n rt(\n n,\n (h, T) => {\n h.enabled !== T.enabled && (d.hours = g(\"hours\"), d.minutes = g(\"minutes\"), d.seconds = g(\"seconds\"));\n },\n { deep: !0 }\n );\n const P = j({\n get: () => e.internalModelValue,\n set: (h) => {\n !e.readonly && !e.disabled && t(\"update:internal-model-value\", h);\n }\n }), v = j(\n () => (h) => i.value[h] ? i.value[h].month : 0\n ), R = j(\n () => (h) => i.value[h] ? i.value[h].year : 0\n );\n return rt(\n P,\n (h, T) => {\n l && JSON.stringify(h ?? {}) !== JSON.stringify(T ?? {}) && l();\n },\n { deep: !0 }\n ), {\n calendars: i,\n time: d,\n modelValue: P,\n month: v,\n year: R,\n today: f\n };\n}, mo = (e, t) => {\n const {\n defaultedMultiCalendars: l,\n defaultedMultiDates: n,\n defaultedUI: a,\n defaultedHighlight: f,\n defaultedTz: i,\n propDates: g,\n defaultedRange: d\n } = Oe(t), { isDisabled: P } = Tt(t), v = Z(null), R = Z(Ze(/* @__PURE__ */ new Date(), i.value.timezone)), h = (c) => {\n !c.current && t.hideOffsetDates || (v.value = c.value);\n }, T = () => {\n v.value = null;\n }, F = (c) => Array.isArray(e.value) && d.value.enabled && e.value[0] && v.value ? c ? Ee(v.value, e.value[0]) : Be(v.value, e.value[0]) : !0, _ = (c, o) => {\n const X = () => e.value ? o ? e.value[0] || null : e.value[1] : null, B = e.value && Array.isArray(e.value) ? X() : null;\n return $e(H(c.value), B);\n }, C = (c) => {\n const o = Array.isArray(e.value) ? e.value[0] : null;\n return c ? !Be(v.value ?? null, o) : !0;\n }, M = (c, o = !0) => (d.value.enabled || t.weekPicker) && Array.isArray(e.value) && e.value.length === 2 ? t.hideOffsetDates && !c.current ? !1 : $e(H(c.value), e.value[o ? 0 : 1]) : d.value.enabled ? _(c, o) && C(o) || $e(c.value, Array.isArray(e.value) ? e.value[0] : null) && F(o) : !1, A = (c, o) => {\n if (Array.isArray(e.value) && e.value[0] && e.value.length === 1) {\n const X = $e(c.value, v.value);\n return o ? Ee(e.value[0], c.value) && X : Be(e.value[0], c.value) && X;\n }\n return !1;\n }, m = (c) => !e.value || t.hideOffsetDates && !c.current ? !1 : d.value.enabled ? t.modelAuto && Array.isArray(e.value) ? $e(c.value, e.value[0] ? e.value[0] : R.value) : !1 : n.value.enabled && Array.isArray(e.value) ? e.value.some((o) => $e(o, c.value)) : $e(c.value, e.value ? e.value : R.value), z = (c) => {\n if (d.value.autoRange || t.weekPicker) {\n if (v.value) {\n if (t.hideOffsetDates && !c.current) return !1;\n const o = kt(v.value, +d.value.autoRange), X = mt(H(v.value), t.weekStart);\n return t.weekPicker ? $e(X[1], H(c.value)) : $e(o, H(c.value));\n }\n return !1;\n }\n return !1;\n }, L = (c) => {\n if (d.value.autoRange || t.weekPicker) {\n if (v.value) {\n const o = kt(v.value, +d.value.autoRange);\n if (t.hideOffsetDates && !c.current) return !1;\n const X = mt(H(v.value), t.weekStart);\n return t.weekPicker ? Ee(c.value, X[0]) && Be(c.value, X[1]) : Ee(c.value, v.value) && Be(c.value, o);\n }\n return !1;\n }\n return !1;\n }, le = (c) => {\n if (d.value.autoRange || t.weekPicker) {\n if (v.value) {\n if (t.hideOffsetDates && !c.current) return !1;\n const o = mt(H(v.value), t.weekStart);\n return t.weekPicker ? $e(o[0], c.value) : $e(v.value, c.value);\n }\n return !1;\n }\n return !1;\n }, U = (c) => xt(e.value, v.value, c.value), $ = () => t.modelAuto && Array.isArray(t.internalModelValue) ? !!t.internalModelValue[0] : !1, ee = () => t.modelAuto ? Rn(t.internalModelValue) : !0, O = (c) => {\n if (t.weekPicker) return !1;\n const o = d.value.enabled ? !M(c) && !M(c, !1) : !0;\n return !P(c.value) && !m(c) && !(!c.current && t.hideOffsetDates) && o;\n }, J = (c) => d.value.enabled ? t.modelAuto ? $() && m(c) : !1 : m(c), ce = (c) => f.value ? Bl(c.value, g.value.highlight) : !1, pe = (c) => {\n const o = P(c.value);\n return o && (typeof f.value == \"function\" ? !f.value(c.value, o) : !f.value.options.highlightDisabled);\n }, p = (c) => typeof f.value == \"function\" ? f.value(c.value) : f.value.weekdays?.includes(c.value.getDay()), Y = (c) => (d.value.enabled || t.weekPicker) && (!(l.value.count > 0) || c.current) && ee() && !(!c.current && t.hideOffsetDates) && !m(c) ? U(c) : !1, te = (c) => {\n if (Array.isArray(e.value) && e.value.length === 1) {\n const { before: o, after: X } = mn(+d.value.maxRange, e.value[0]);\n return Ft(c.value, o) || _t(c.value, X);\n }\n return !1;\n }, y = (c) => {\n if (Array.isArray(e.value) && e.value.length === 1) {\n const { before: o, after: X } = mn(+d.value.minRange, e.value[0]);\n return xt([o, X], e.value[0], c.value);\n }\n return !1;\n }, V = (c) => d.value.enabled && (d.value.maxRange || d.value.minRange) ? d.value.maxRange && d.value.minRange ? te(c) || y(c) : d.value.maxRange ? te(c) : y(c) : !1, S = (c) => {\n const { isRangeStart: o, isRangeEnd: X } = u(c), B = d.value.enabled ? o || X : !1;\n return {\n dp__cell_offset: !c.current,\n dp__pointer: !t.disabled && !(!c.current && t.hideOffsetDates) && !P(c.value) && !V(c),\n dp__cell_disabled: P(c.value) || V(c),\n dp__cell_highlight: !pe(c) && (ce(c) || p(c)) && !J(c) && !B && !le(c) && !(Y(c) && t.weekPicker) && !X,\n dp__cell_highlight_active: !pe(c) && (ce(c) || p(c)) && J(c),\n dp__today: !t.noToday && $e(c.value, R.value) && c.current,\n \"dp--past\": Be(c.value, R.value),\n \"dp--future\": Ee(c.value, R.value)\n };\n }, q = (c) => ({\n dp__active_date: J(c),\n dp__date_hover: O(c)\n }), k = (c) => {\n if (e.value && !Array.isArray(e.value)) {\n const o = mt(e.value, t.weekStart);\n return {\n ...G(c),\n dp__range_start: $e(o[0], c.value),\n dp__range_end: $e(o[1], c.value),\n dp__range_between_week: Ee(c.value, o[0]) && Be(c.value, o[1])\n };\n }\n return {\n ...G(c)\n };\n }, se = (c) => {\n if (e.value && Array.isArray(e.value)) {\n const o = mt(e.value[0], t.weekStart), X = e.value[1] ? mt(e.value[1], t.weekStart) : [];\n return {\n ...G(c),\n dp__range_start: $e(o[0], c.value) || $e(X[0], c.value),\n dp__range_end: $e(o[1], c.value) || $e(X[1], c.value),\n dp__range_between_week: Ee(c.value, o[0]) && Be(c.value, o[1]) || Ee(c.value, X[0]) && Be(c.value, X[1]),\n dp__range_between: Ee(c.value, o[1]) && Be(c.value, X[0])\n };\n }\n return {\n ...G(c)\n };\n }, u = (c) => {\n const o = l.value.count > 0 ? c.current && M(c) && ee() : M(c) && ee(), X = l.value.count > 0 ? c.current && M(c, !1) && ee() : M(c, !1) && ee();\n return { isRangeStart: o, isRangeEnd: X };\n }, re = (c) => {\n const { isRangeStart: o, isRangeEnd: X } = u(c);\n return {\n dp__range_start: o,\n dp__range_end: X,\n dp__range_between: Y(c),\n dp__date_hover: $e(c.value, v.value) && !o && !X && !t.weekPicker,\n dp__date_hover_start: A(c, !0),\n dp__date_hover_end: A(c, !1)\n };\n }, G = (c) => ({\n ...re(c),\n dp__cell_auto_range: L(c),\n dp__cell_auto_range_start: le(c),\n dp__cell_auto_range_end: z(c)\n }), I = (c) => d.value.enabled ? d.value.autoRange ? G(c) : t.modelAuto ? { ...q(c), ...re(c) } : t.weekPicker ? se(c) : re(c) : t.weekPicker ? k(c) : q(c);\n return {\n setHoverDate: h,\n clearHoverDate: T,\n getDayClassData: (c) => t.hideOffsetDates && !c.current ? {} : {\n ...S(c),\n ...I(c),\n [t.dayClass ? t.dayClass(c.value, t.internalModelValue) : \"\"]: !0,\n ...a.value.calendarCell ?? {}\n }\n };\n}, Tt = (e) => {\n const { defaultedFilters: t, defaultedRange: l, propDates: n, defaultedMultiDates: a } = Oe(e), f = (p) => n.value.disabledDates ? typeof n.value.disabledDates == \"function\" ? n.value.disabledDates(H(p)) : !!ca(p, n.value.disabledDates) : !1, i = (p) => n.value.maxDate ? e.yearPicker ? ye(p) > ye(n.value.maxDate) : Ee(p, n.value.maxDate) : !1, g = (p) => n.value.minDate ? e.yearPicker ? ye(p) < ye(n.value.minDate) : Be(p, n.value.minDate) : !1, d = (p) => {\n const Y = i(p), te = g(p), y = f(p), S = t.value.months.map((re) => +re).includes(Me(p)), q = e.disabledWeekDays.length ? e.disabledWeekDays.some((re) => +re === kl(p)) : !1, k = T(p), se = ye(p), u = zn(e.yearRange, se);\n return !(Y || te || y || S || u || q || k);\n }, P = (p, Y) => Be(...wt(n.value.minDate, p, Y)) || $e(...wt(n.value.minDate, p, Y)), v = (p, Y) => Ee(...wt(n.value.maxDate, p, Y)) || $e(...wt(n.value.maxDate, p, Y)), R = (p, Y, te) => {\n let y = !1;\n return n.value.maxDate && te && v(p, Y) && (y = !0), n.value.minDate && !te && P(p, Y) && (y = !0), y;\n }, h = (p, Y, te, y) => {\n let V = !1;\n return y && (n.value.minDate || n.value.maxDate) ? n.value.minDate && n.value.maxDate ? V = R(p, Y, te) : (n.value.minDate && P(p, Y) || n.value.maxDate && v(p, Y)) && (V = !0) : V = !0, V;\n }, T = (p) => Array.isArray(n.value.allowedDates) && !n.value.allowedDates.length ? !0 : n.value.allowedDates ? !ca(p, n.value.allowedDates, On(e.monthPicker, e.yearPicker)) : !1, F = (p) => !d(p), _ = (p) => l.value.noDisabledRange ? !bn({ start: p[0], end: p[1] }).some((te) => F(te)) : !0, C = (p) => {\n if (p) {\n const Y = ye(p);\n return Y >= +e.yearRange[0] && Y <= e.yearRange[1];\n }\n return !0;\n }, M = (p, Y) => !!(Array.isArray(p) && p[Y] && (l.value.maxRange || l.value.minRange) && C(p[Y])), A = (p, Y, te = 0) => {\n if (M(Y, te) && C(p)) {\n const y = bl(p, Y[te]), V = In(Y[te], p), S = V.length === 1 ? 0 : V.filter((k) => F(k)).length, q = Math.abs(y) - (l.value.minMaxRawRange ? 0 : S);\n if (l.value.minRange && l.value.maxRange)\n return q >= +l.value.minRange && q <= +l.value.maxRange;\n if (l.value.minRange) return q >= +l.value.minRange;\n if (l.value.maxRange) return q <= +l.value.maxRange;\n }\n return !0;\n }, m = () => !e.enableTimePicker || e.monthPicker || e.yearPicker || e.ignoreTimeValidation, z = (p) => Array.isArray(p) ? [p[0] ? Ca(p[0]) : null, p[1] ? Ca(p[1]) : null] : Ca(p), L = (p, Y, te) => p.find(\n (y) => +y.hours === yt(Y) && y.minutes === \"*\" ? !0 : +y.minutes === $t(Y) && +y.hours === yt(Y)\n ) && te, le = (p, Y, te) => {\n const [y, V] = p, [S, q] = Y;\n return !L(y, S, te) && !L(V, q, te) && te;\n }, U = (p, Y) => {\n const te = Array.isArray(Y) ? Y : [Y];\n return Array.isArray(e.disabledTimes) ? Array.isArray(e.disabledTimes[0]) ? le(e.disabledTimes, te, p) : !te.some((y) => L(e.disabledTimes, y, p)) : p;\n }, $ = (p, Y) => {\n const te = Array.isArray(Y) ? [Bt(Y[0]), Y[1] ? Bt(Y[1]) : void 0] : Bt(Y), y = !e.disabledTimes(te);\n return p && y;\n }, ee = (p, Y) => e.disabledTimes ? Array.isArray(e.disabledTimes) ? U(Y, p) : $(Y, p) : Y, O = (p) => {\n let Y = !0;\n if (!p || m()) return !0;\n const te = !n.value.minDate && !n.value.maxDate ? z(p) : p;\n return (e.maxTime || n.value.maxDate) && (Y = vn(\n e.maxTime,\n n.value.maxDate,\n \"max\",\n Ne(te),\n Y\n )), (e.minTime || n.value.minDate) && (Y = vn(\n e.minTime,\n n.value.minDate,\n \"min\",\n Ne(te),\n Y\n )), ee(p, Y);\n }, J = (p) => {\n if (!e.monthPicker) return !0;\n let Y = !0;\n const te = H(it(p));\n if (n.value.minDate && n.value.maxDate) {\n const y = H(it(n.value.minDate)), V = H(it(n.value.maxDate));\n return Ee(te, y) && Be(te, V) || $e(te, y) || $e(te, V);\n }\n if (n.value.minDate) {\n const y = H(it(n.value.minDate));\n Y = Ee(te, y) || $e(te, y);\n }\n if (n.value.maxDate) {\n const y = H(it(n.value.maxDate));\n Y = Be(te, y) || $e(te, y);\n }\n return Y;\n }, ce = j(() => (p) => !e.enableTimePicker || e.ignoreTimeValidation ? !0 : O(p)), pe = j(() => (p) => e.monthPicker ? Array.isArray(p) && (l.value.enabled || a.value.enabled) ? !p.filter((te) => !J(te)).length : J(p) : !0);\n return {\n isDisabled: F,\n validateDate: d,\n validateMonthYearInRange: h,\n isDateRangeAllowed: _,\n checkMinMaxRange: A,\n isValidTime: O,\n isTimeValid: ce,\n isMonthValid: pe\n };\n}, ga = () => {\n const e = j(() => (n, a) => n?.includes(a)), t = j(() => (n, a) => n.count ? n.solo ? !0 : a === 0 : !0), l = j(() => (n, a) => n.count ? n.solo ? !0 : a === n.count - 1 : !0);\n return { hideNavigationButtons: e, showLeftIcon: t, showRightIcon: l };\n}, po = (e, t, l) => {\n const n = Z(0), a = ea({\n [Ot.timePicker]: !e.enableTimePicker || e.timePicker || e.monthPicker,\n [Ot.calendar]: !1,\n [Ot.header]: !1\n }), f = j(() => e.monthPicker || e.timePicker), i = (R) => {\n if (e.flow?.length) {\n if (!R && f.value) return v();\n a[R] = !0, Object.keys(a).filter((h) => !a[h]).length || v();\n }\n }, g = () => {\n e.flow?.length && n.value !== -1 && (n.value += 1, t(\"flow-step\", n.value), v()), e.flow?.length === n.value && at().then(() => d());\n }, d = () => {\n n.value = -1;\n }, P = (R, h, ...T) => {\n e.flow[n.value] === R && l.value && l.value[h]?.(...T);\n }, v = (R = 0) => {\n R && (n.value += R), P(je.month, \"toggleMonthPicker\", !0), P(je.year, \"toggleYearPicker\", !0), P(je.calendar, \"toggleTimePicker\", !1, !0), P(je.time, \"toggleTimePicker\", !0, !0);\n const h = e.flow[n.value];\n (h === je.hours || h === je.minutes || h === je.seconds) && P(h, \"toggleTimePicker\", !0, !0, h);\n };\n return { childMount: i, updateFlowStep: g, resetFlow: d, handleFlow: v, flowStep: n };\n}, go = {\n key: 1,\n class: \"dp__input_wrap\"\n}, yo = [\"id\", \"name\", \"inputmode\", \"placeholder\", \"disabled\", \"readonly\", \"required\", \"value\", \"autocomplete\", \"aria-label\", \"aria-disabled\", \"aria-invalid\"], ho = {\n key: 2,\n class: \"dp--clear-btn\"\n}, bo = [\"aria-label\"], ko = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"DatepickerInput\",\n props: {\n isMenuOpen: { type: Boolean, default: !1 },\n inputValue: { type: String, default: \"\" },\n ...va\n },\n emits: [\n \"clear\",\n \"open\",\n \"update:input-value\",\n \"set-input-date\",\n \"close\",\n \"select-date\",\n \"set-empty-date\",\n \"toggle\",\n \"focus-prev\",\n \"focus\",\n \"blur\",\n \"real-blur\",\n \"text-input\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, {\n defaultedTextInput: f,\n defaultedAriaLabels: i,\n defaultedInline: g,\n defaultedConfig: d,\n defaultedRange: P,\n defaultedMultiDates: v,\n defaultedUI: R,\n getDefaultPattern: h,\n getDefaultStartTime: T\n } = Oe(a), { checkMinMaxRange: F } = Tt(a), _ = Z(), C = Z(null), M = Z(!1), A = Z(!1), m = j(\n () => ({\n dp__pointer: !a.disabled && !a.readonly && !f.value.enabled,\n dp__disabled: a.disabled,\n dp__input_readonly: !f.value.enabled,\n dp__input: !0,\n dp__input_not_clearable: !a.clearable,\n dp__input_icon_pad: !a.hideInputIcon,\n dp__input_valid: typeof a.state == \"boolean\" ? a.state : !1,\n dp__input_invalid: typeof a.state == \"boolean\" ? !a.state : !1,\n dp__input_focus: M.value || a.isMenuOpen,\n dp__input_reg: !f.value.enabled,\n ...R.value.input ?? {}\n })\n ), z = () => {\n n(\"set-input-date\", null), a.clearable && a.autoApply && (n(\"set-empty-date\"), _.value = null);\n }, L = (k) => {\n const se = T();\n return Yl(\n k,\n f.value.format ?? h(),\n se ?? En({}, a.enableSeconds),\n a.inputValue,\n A.value,\n a.formatLocale\n );\n }, le = (k) => {\n const { rangeSeparator: se } = f.value, [u, re] = k.split(`${se}`);\n if (u) {\n const G = L(u.trim()), I = re ? L(re.trim()) : void 0;\n if (_t(G, I)) return;\n const x = G && I ? [G, I] : [G];\n F(I, x, 0) && (_.value = G ? x : null);\n }\n }, U = () => {\n A.value = !0;\n }, $ = (k) => {\n if (P.value.enabled)\n le(k);\n else if (v.value.enabled) {\n const se = k.split(\";\");\n _.value = se.map((u) => L(u.trim())).filter((u) => u);\n } else\n _.value = L(k);\n }, ee = (k) => {\n const se = typeof k == \"string\" ? k : k.target?.value;\n se !== \"\" ? (f.value.openMenu && !a.isMenuOpen && n(\"open\"), $(se), n(\"set-input-date\", _.value)) : z(), A.value = !1, n(\"update:input-value\", se), n(\"text-input\", k, _.value);\n }, O = (k) => {\n f.value.enabled ? ($(k.target.value), f.value.enterSubmit && za(_.value) && a.inputValue !== \"\" ? (n(\"set-input-date\", _.value, !0), _.value = null) : f.value.enterSubmit && a.inputValue === \"\" && (_.value = null, n(\"clear\"))) : pe(k);\n }, J = (k, se) => {\n f.value.enabled && f.value.tabSubmit && !se && $(k.target.value), f.value.tabSubmit && za(_.value) && a.inputValue !== \"\" ? (n(\"set-input-date\", _.value, !0, !0), _.value = null) : f.value.tabSubmit && a.inputValue === \"\" && (_.value = null, n(\"clear\", !0));\n }, ce = () => {\n M.value = !0, n(\"focus\"), at().then(() => {\n f.value.enabled && f.value.selectOnFocus && C.value?.select();\n });\n }, pe = (k) => {\n if (Dt(k, d.value, !0), f.value.enabled && f.value.openMenu && !g.value.input) {\n if (f.value.openMenu === \"open\" && !a.isMenuOpen) return n(\"open\");\n if (f.value.openMenu === \"toggle\") return n(\"toggle\");\n } else f.value.enabled || n(\"toggle\");\n }, p = () => {\n n(\"real-blur\"), M.value = !1, (!a.isMenuOpen || g.value.enabled && g.value.input) && n(\"blur\"), a.autoApply && f.value.enabled && _.value && !a.isMenuOpen && (n(\"set-input-date\", _.value), n(\"select-date\"), _.value = null);\n }, Y = (k) => {\n Dt(k, d.value, !0), n(\"clear\");\n }, te = () => {\n n(\"close\");\n }, y = (k) => {\n if (k.key === \"Tab\" && J(k), k.key === \"Enter\" && O(k), k.key === \"Escape\" && f.value.escClose && te(), !f.value.enabled) {\n if (k.code === \"Tab\") return;\n k.preventDefault();\n }\n }, V = () => {\n C.value?.focus({ preventScroll: !0 });\n }, S = (k) => {\n _.value = k;\n }, q = (k) => {\n k.key === Re.tab && J(k, !0);\n };\n return t({\n focusInput: V,\n setParsedDate: S\n }), (k, se) => (w(), W(\"div\", { onClick: pe }, [\n k.$slots.trigger && !k.$slots[\"dp-input\"] && !s(g).enabled ? ie(k.$slots, \"trigger\", { key: 0 }) : Q(\"\", !0),\n !k.$slots.trigger && (!s(g).enabled || s(g).input) ? (w(), W(\"div\", go, [\n k.$slots[\"dp-input\"] && !k.$slots.trigger && (!s(g).enabled || s(g).enabled && s(g).input) ? ie(k.$slots, \"dp-input\", {\n key: 0,\n value: e.inputValue,\n isMenuOpen: e.isMenuOpen,\n onInput: ee,\n onEnter: O,\n onTab: J,\n onClear: Y,\n onBlur: p,\n onKeypress: y,\n onPaste: U,\n onFocus: ce,\n openMenu: () => k.$emit(\"open\"),\n closeMenu: () => k.$emit(\"close\"),\n toggleMenu: () => k.$emit(\"toggle\")\n }) : Q(\"\", !0),\n k.$slots[\"dp-input\"] ? Q(\"\", !0) : (w(), W(\"input\", {\n key: 1,\n id: k.uid ? `dp-input-${k.uid}` : void 0,\n ref_key: \"inputRef\",\n ref: C,\n \"data-test-id\": \"dp-input\",\n name: k.name,\n class: De(m.value),\n inputmode: s(f).enabled ? \"text\" : \"none\",\n placeholder: k.placeholder,\n disabled: k.disabled,\n readonly: k.readonly,\n required: k.required,\n value: e.inputValue,\n autocomplete: k.autocomplete,\n \"aria-label\": s(i)?.input,\n \"aria-disabled\": k.disabled || void 0,\n \"aria-invalid\": k.state === !1 ? !0 : void 0,\n onInput: ee,\n onBlur: p,\n onFocus: ce,\n onKeypress: y,\n onKeydown: se[0] || (se[0] = (u) => y(u)),\n onPaste: U\n }, null, 42, yo)),\n he(\"div\", {\n onClick: se[3] || (se[3] = (u) => n(\"toggle\"))\n }, [\n k.$slots[\"input-icon\"] && !k.hideInputIcon ? (w(), W(\"span\", {\n key: 0,\n class: \"dp__input_icon\",\n onClick: se[1] || (se[1] = (u) => n(\"toggle\"))\n }, [\n ie(k.$slots, \"input-icon\")\n ])) : Q(\"\", !0),\n !k.$slots[\"input-icon\"] && !k.hideInputIcon && !k.$slots[\"dp-input\"] ? (w(), Te(s(jt), {\n key: 1,\n \"aria-label\": s(i)?.calendarIcon,\n class: \"dp__input_icon dp__input_icons\",\n onClick: se[2] || (se[2] = (u) => n(\"toggle\"))\n }, null, 8, [\"aria-label\"])) : Q(\"\", !0)\n ]),\n k.$slots[\"clear-icon\"] && (k.alwaysClearable || e.inputValue && k.clearable && !k.disabled && !k.readonly) ? (w(), W(\"span\", ho, [\n ie(k.$slots, \"clear-icon\", { clear: Y })\n ])) : Q(\"\", !0),\n !k.$slots[\"clear-icon\"] && (k.alwaysClearable || k.clearable && e.inputValue && !k.disabled && !k.readonly) ? (w(), W(\"button\", {\n key: 3,\n \"aria-label\": s(i)?.clearInput,\n class: \"dp--clear-btn\",\n type: \"button\",\n onKeydown: se[4] || (se[4] = (u) => s(qe)(u, () => Y(u), !0, q)),\n onClick: se[5] || (se[5] = Xt((u) => Y(u), [\"prevent\"]))\n }, [\n tt(s(Sn), {\n class: \"dp__input_icons\",\n \"data-test-id\": \"clear-icon\"\n })\n ], 40, bo)) : Q(\"\", !0)\n ])) : Q(\"\", !0)\n ]));\n }\n}), wo = typeof window < \"u\" ? window : void 0, Ea = () => {\n}, Do = (e) => al() ? (nl(e), !0) : !1, Mo = (e, t, l, n) => {\n if (!e) return Ea;\n let a = Ea;\n const f = rt(\n () => s(e),\n (g) => {\n a(), g && (g.removeEventListener(t, l), g.addEventListener(t, l, n), a = () => {\n g.removeEventListener(t, l, n), a = Ea;\n });\n },\n { immediate: !0, flush: \"post\" }\n ), i = () => {\n f(), a();\n };\n return Do(i), i;\n}, $o = (e, t, l, n = {}) => {\n const { window: a = wo, event: f = \"pointerdown\" } = n;\n return a ? Mo(a, f, (g) => {\n const d = Le(e), P = Le(t);\n !d || !P || d === g.target || g.composedPath().includes(d) || g.composedPath().includes(P) || l(g);\n }, { passive: !0 }) : void 0;\n}, Ao = [\"data-dp-mobile\"], To = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"VueDatePicker\",\n props: {\n ...va\n },\n emits: [\n \"update:model-value\",\n \"update:model-timezone-value\",\n \"text-submit\",\n \"closed\",\n \"cleared\",\n \"open\",\n \"focus\",\n \"blur\",\n \"internal-model-change\",\n \"recalculate-position\",\n \"flow-step\",\n \"update-month-year\",\n \"invalid-select\",\n \"invalid-fixed-range\",\n \"tooltip-open\",\n \"tooltip-close\",\n \"time-picker-open\",\n \"time-picker-close\",\n \"am-pm-change\",\n \"range-start\",\n \"range-end\",\n \"date-update\",\n \"invalid-date\",\n \"overlay-toggle\",\n \"text-input\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, f = Yt(), i = Z(!1), g = qt(a, \"modelValue\"), d = qt(a, \"timezone\"), P = Z(null), v = Z(null), R = Z(null), h = Z(!1), T = Z(null), F = Z(!1), _ = Z(!1), C = Z(!1), M = Z(!1), { setMenuFocused: A, setShiftKey: m } = Hn(), { clearArrowNav: z } = At(), { validateDate: L, isValidTime: le } = Tt(a), {\n defaultedTransitions: U,\n defaultedTextInput: $,\n defaultedInline: ee,\n defaultedConfig: O,\n defaultedRange: J,\n defaultedMultiDates: ce\n } = Oe(a), { menuTransition: pe, showTransition: p } = aa(U), { isMobile: Y } = Qn(O), te = ll();\n Ue(() => {\n x(a.modelValue), at().then(() => {\n ee.value.enabled || (u(T.value)?.addEventListener(\"scroll\", K), window?.addEventListener(\"resize\", oe));\n }), ee.value.enabled && (i.value = !0), window?.addEventListener(\"keyup\", ge), window?.addEventListener(\"keydown\", _e);\n }), Ut(() => {\n ee.value.enabled || (u(T.value)?.removeEventListener(\"scroll\", K), window?.removeEventListener(\"resize\", oe)), window?.removeEventListener(\"keyup\", ge), window?.removeEventListener(\"keydown\", _e);\n });\n const y = et(f, \"all\", a.presetDates), V = et(f, \"input\");\n rt(\n [g, d],\n () => {\n x(g.value);\n },\n { deep: !0 }\n );\n const { openOnTop: S, menuStyle: q, xCorrect: k, setMenuPosition: se, getScrollableParent: u, shadowRender: re } = co({\n menuRef: P,\n menuRefInner: v,\n inputRef: R,\n pickerWrapperRef: T,\n inline: ee,\n emit: n,\n props: a,\n slots: f\n }), {\n inputValue: G,\n internalModelValue: I,\n parseExternalModelValue: x,\n emitModelValue: c,\n formatInputValue: o,\n checkBeforeEmit: X\n } = rr(n, a, { isInputFocused: h, isTextInputDate: M }), B = j(\n () => ({\n dp__main: !0,\n dp__theme_dark: a.dark,\n dp__theme_light: !a.dark,\n dp__flex_display: ee.value.enabled,\n \"dp--flex-display-collapsed\": C.value,\n dp__flex_display_with_input: ee.value.input\n })\n ), be = j(() => a.dark ? \"dp__theme_dark\" : \"dp__theme_light\"), Ae = j(() => a.teleport ? {\n to: typeof a.teleport == \"boolean\" ? \"body\" : a.teleport,\n disabled: !a.teleport || ee.value.enabled\n } : {}), ne = j(() => ({ class: \"dp__outer_menu_wrap\" })), r = j(() => ee.value.enabled && (a.timePicker || a.monthPicker || a.yearPicker || a.quarterPicker)), E = () => R.value?.$el?.getBoundingClientRect() ?? { width: 0, left: 0, right: 0 }, K = () => {\n i.value && (O.value.closeOnScroll ? Xe() : se());\n }, oe = () => {\n i.value && se();\n const N = v.value?.$el.getBoundingClientRect().width ?? 0;\n C.value = document.body.offsetWidth <= N;\n }, ge = (N) => {\n N.key === \"Tab\" && !ee.value.enabled && !a.teleport && O.value.tabOutClosesMenu && (T.value.contains(document.activeElement) || Xe()), _.value = N.shiftKey;\n }, _e = (N) => {\n _.value = N.shiftKey;\n }, Ye = () => {\n !a.disabled && !a.readonly && (re(te, hn, a), se(!1), i.value = !0, i.value && n(\"open\"), i.value || xe(), x(a.modelValue));\n }, nt = () => {\n G.value = \"\", xe(), v.value?.onValueCleared(), R.value?.setParsedDate(null), n(\"update:model-value\", null), n(\"update:model-timezone-value\", null), n(\"cleared\"), O.value.closeOnClearValue && Xe();\n }, St = () => {\n const N = I.value;\n return !N || !Array.isArray(N) && L(N) ? !0 : Array.isArray(N) ? ce.value.enabled || N.length === 2 && L(N[0]) && L(N[1]) ? !0 : J.value.partialRange && !a.timePicker ? L(N[0]) : !1 : !1;\n }, D = () => {\n X() && St() ? (c(), Xe()) : n(\"invalid-select\", I.value);\n }, de = (N) => {\n fe(), c(), O.value.closeOnAutoApply && !N && Xe();\n }, fe = () => {\n R.value && $.value.enabled && R.value.setParsedDate(I.value);\n }, ht = (N = !1) => {\n a.autoApply && le(I.value) && St() && (J.value.enabled && Array.isArray(I.value) ? (J.value.partialRange || I.value.length === 2) && de(N) : de(N));\n }, xe = () => {\n $.value.enabled || (I.value = null);\n }, Xe = (N = !1) => {\n N && I.value && O.value.setDateOnMenuClose && D(), ee.value.enabled || (i.value && (i.value = !1, k.value = !1, A(!1), m(!1), z(), n(\"closed\"), G.value && x(g.value)), xe(), n(\"blur\"), v.value?.$el?.remove());\n }, ya = (N, ue, me = !1) => {\n if (!N) {\n I.value = null;\n return;\n }\n const vt = Array.isArray(N) ? !N.some((Pt) => !L(Pt)) : L(N), ct = le(N);\n vt && ct ? (M.value = !0, I.value = N, ue ? (F.value = me, D(), n(\"text-submit\")) : a.autoApply && ht(!0), at().then(() => {\n M.value = !1;\n })) : n(\"invalid-date\", N);\n }, ha = () => {\n a.autoApply && le(I.value) && c(), fe();\n }, la = () => i.value ? Xe() : Ye(), ba = (N) => {\n I.value = N;\n }, ka = () => {\n $.value.enabled && (h.value = !0, o()), n(\"focus\");\n }, wa = () => {\n $.value.enabled && (h.value = !1, x(a.modelValue), F.value && Ol(T.value, _.value)?.focus()), n(\"blur\");\n }, Da = (N) => {\n v.value && v.value.updateMonthYear(0, {\n month: dn(N.month),\n year: dn(N.year)\n });\n }, Ma = (N) => {\n x(N ?? a.modelValue);\n }, an = (N, ue) => {\n v.value?.switchView(N, ue);\n }, b = (N, ue) => O.value.onClickOutside ? O.value.onClickOutside(N, ue) : Xe(!0), ae = (N = 0) => {\n v.value?.handleFlow(N);\n }, ve = () => P;\n return $o(\n P,\n R,\n (N) => b(St, N)\n ), t({\n closeMenu: Xe,\n selectDate: D,\n clearValue: nt,\n openMenu: Ye,\n onScroll: K,\n formatInputValue: o,\n // exposed for testing purposes\n updateInternalModelValue: ba,\n // modify internal modelValue\n setMonthYear: Da,\n parseModel: Ma,\n switchView: an,\n toggleMenu: la,\n handleFlow: ae,\n getDpWrapMenuRef: ve\n }), (N, ue) => (w(), W(\"div\", {\n ref_key: \"pickerWrapperRef\",\n ref: T,\n class: De(B.value),\n \"data-datepicker-instance\": \"\",\n \"data-dp-mobile\": s(Y)\n }, [\n tt(ko, He({\n ref_key: \"inputRef\",\n ref: R,\n \"input-value\": s(G),\n \"onUpdate:inputValue\": ue[0] || (ue[0] = (me) => ln(G) ? G.value = me : null),\n \"is-menu-open\": i.value\n }, N.$props, {\n onClear: nt,\n onOpen: Ye,\n onSetInputDate: ya,\n onSetEmptyDate: s(c),\n onSelectDate: D,\n onToggle: la,\n onClose: Xe,\n onFocus: ka,\n onBlur: wa,\n onRealBlur: ue[1] || (ue[1] = (me) => h.value = !1),\n onTextInput: ue[2] || (ue[2] = (me) => N.$emit(\"text-input\", me))\n }), Ge({ _: 2 }, [\n Ce(s(V), (me, vt) => ({\n name: me,\n fn: we((ct) => [\n ie(N.$slots, me, ze(Je(ct)))\n ])\n }))\n ]), 1040, [\"input-value\", \"is-menu-open\", \"onSetEmptyDate\"]),\n (w(), Te(fa(N.teleport ? rl : \"div\"), ze(Je(Ae.value)), {\n default: we(() => [\n tt(Vt, {\n name: s(pe)(s(S)),\n css: s(p) && !s(ee).enabled\n }, {\n default: we(() => [\n i.value ? (w(), W(\"div\", He({\n key: 0,\n ref_key: \"dpWrapMenuRef\",\n ref: P\n }, ne.value, {\n class: { \"dp--menu-wrapper\": !s(ee).enabled },\n style: s(ee).enabled ? void 0 : s(q)\n }), [\n tt(hn, He({\n ref_key: \"dpMenuRef\",\n ref: v\n }, N.$props, {\n \"internal-model-value\": s(I),\n \"onUpdate:internalModelValue\": ue[3] || (ue[3] = (me) => ln(I) ? I.value = me : null),\n class: { [be.value]: !0, \"dp--menu-wrapper\": N.teleport },\n \"open-on-top\": s(S),\n \"no-overlay-focus\": r.value,\n collapse: C.value,\n \"get-input-rect\": E,\n \"is-text-input-date\": M.value,\n onClosePicker: Xe,\n onSelectDate: D,\n onAutoApply: ht,\n onTimeUpdate: ha,\n onFlowStep: ue[4] || (ue[4] = (me) => N.$emit(\"flow-step\", me)),\n onUpdateMonthYear: ue[5] || (ue[5] = (me) => N.$emit(\"update-month-year\", me)),\n onInvalidSelect: ue[6] || (ue[6] = (me) => N.$emit(\"invalid-select\", s(I))),\n onAutoApplyInvalid: ue[7] || (ue[7] = (me) => N.$emit(\"invalid-select\", me)),\n onInvalidFixedRange: ue[8] || (ue[8] = (me) => N.$emit(\"invalid-fixed-range\", me)),\n onRecalculatePosition: s(se),\n onTooltipOpen: ue[9] || (ue[9] = (me) => N.$emit(\"tooltip-open\", me)),\n onTooltipClose: ue[10] || (ue[10] = (me) => N.$emit(\"tooltip-close\", me)),\n onTimePickerOpen: ue[11] || (ue[11] = (me) => N.$emit(\"time-picker-open\", me)),\n onTimePickerClose: ue[12] || (ue[12] = (me) => N.$emit(\"time-picker-close\", me)),\n onAmPmChange: ue[13] || (ue[13] = (me) => N.$emit(\"am-pm-change\", me)),\n onRangeStart: ue[14] || (ue[14] = (me) => N.$emit(\"range-start\", me)),\n onRangeEnd: ue[15] || (ue[15] = (me) => N.$emit(\"range-end\", me)),\n onDateUpdate: ue[16] || (ue[16] = (me) => N.$emit(\"date-update\", me)),\n onInvalidDate: ue[17] || (ue[17] = (me) => N.$emit(\"invalid-date\", me)),\n onOverlayToggle: ue[18] || (ue[18] = (me) => N.$emit(\"overlay-toggle\", me)),\n onMenuBlur: ue[19] || (ue[19] = (me) => N.$emit(\"blur\"))\n }), Ge({ _: 2 }, [\n Ce(s(y), (me, vt) => ({\n name: me,\n fn: we((ct) => [\n ie(N.$slots, me, ze(Je({ ...ct })))\n ])\n }))\n ]), 1040, [\"internal-model-value\", \"class\", \"open-on-top\", \"no-overlay-focus\", \"collapse\", \"is-text-input-date\", \"onRecalculatePosition\"])\n ], 16)) : Q(\"\", !0)\n ]),\n _: 3\n }, 8, [\"name\", \"css\"])\n ]),\n _: 3\n }, 16))\n ], 10, Ao));\n }\n}), qn = /* @__PURE__ */ (() => {\n const e = To;\n return e.install = (t) => {\n t.component(\"Vue3DatePicker\", e);\n }, e;\n})(), So = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: qn\n}, Symbol.toStringTag, { value: \"Module\" }));\nObject.entries(So).forEach(([e, t]) => {\n e !== \"default\" && (qn[e] = t);\n});\nexport {\n qn as default\n};\n","import { defineComponent, useModel, computed, openBlock, createBlock, unref, mergeModels } from \"vue\";\nimport { N as NcSelect } from \"./NcSelect-BOFzoCwK.mjs\";\nimport { r as register, h as t45, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nregister(t45);\nfunction formatTimezoneId(timezoneId) {\n return timezoneId.slice(timezoneId.indexOf(\"/\") + 1).replaceAll(\"/\", \" - \").replaceAll(\"_\", \" \");\n}\nfunction getTimezones() {\n return Intl.supportedValuesOf(\"timeZone\").filter((tz) => !tz.startsWith(\"Etc/\")).map((timezoneId) => ({\n timezoneId,\n label: formatTimezoneId(timezoneId)\n })).sort((a, b) => a.timezoneId.localeCompare(b.timezoneId));\n}\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcTimezonePicker\",\n props: /* @__PURE__ */ mergeModels({\n additionalTimezones: { default: () => [] },\n uid: { default: createElementId() }\n }, {\n \"modelValue\": { default: \"floating\" },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n const formattedAdditionalTimezones = computed(() => {\n return props.additionalTimezones.map(({ timezoneId, label }) => ({\n timezoneId,\n label\n }));\n });\n const options = computed(() => {\n const timezones = getTimezones();\n timezones.unshift(...formattedAdditionalTimezones.value);\n return timezones;\n });\n function filterBy(option, label, search) {\n const terms = search.trim().split(/\\s+/);\n const values = Object.values(option);\n return terms.every((term) => {\n return values.some((value) => value.toLowerCase().includes(term.toLowerCase()));\n });\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcSelect, {\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),\n \"aria-label-combobox\": unref(t)(\"Search for time zone\"),\n clearable: false,\n filterBy,\n multiple: false,\n options: options.value,\n placeholder: unref(t)(\"Type to search time zone\"),\n uid: __props.uid,\n reduce: (option) => option.timezoneId,\n label: \"label\"\n }, null, 8, [\"modelValue\", \"aria-label-combobox\", \"options\", \"placeholder\", \"uid\", \"reduce\"]);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcTimezonePicker.vue_vue_type_script_setup_true_lang-Csd1JQe6.mjs.map\n","import '../assets/NcDateTimePicker-HT1ZTE-Z.css';\nimport { defineComponent, useModel, useTemplateRef, computed, openBlock, createElementBlock, createVNode, unref, mergeProps, createSlots, withCtx, createTextVNode, toDisplayString, createBlock, Teleport, createElementVNode, mergeModels } from \"vue\";\nimport { x as mdiChevronUp, y as mdiChevronDown, c as mdiChevronRight, z as mdiChevronLeft, A as mdiClock, B as mdiCalendarBlank, b as mdiClose } from \"./mdi-CpchYUUV.mjs\";\nimport { getCanonicalLocale, getFirstDay, getDayNamesMin, getDayNames } from \"@nextcloud/l10n\";\nimport VueDatePicker from \"@vuepic/vue-datepicker\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { _ as _sfc_main$1 } from \"./NcTimezonePicker.vue_vue_type_script_setup_true_lang-Csd1JQe6.mjs\";\nimport { r as register, y as t13, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t13);\nconst _hoisted_1 = { class: \"vue-date-time-picker__wrapper\" };\nconst _hoisted_2 = {\n ref: \"target\",\n class: \"vue-date-time-picker__wrapper vue-date-time-picker__wrapper--teleport\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcDateTimePicker\",\n props: /* @__PURE__ */ mergeModels({\n appendToBody: { type: Boolean },\n ariaLabel: { default: t(\"Datepicker input\") },\n ariaLabelMenu: { default: t(\"Datepicker menu\") },\n clearable: { type: Boolean },\n confirm: { type: Boolean },\n format: { type: [String, Function], default: void 0 },\n locale: { default: getCanonicalLocale() },\n max: { default: void 0 },\n min: { default: void 0 },\n minuteStep: { default: 10 },\n modelValue: { default: null },\n placeholder: { default: void 0 },\n showTimezoneSelect: { type: Boolean },\n showWeekNumber: { type: Boolean },\n type: { default: \"date\" },\n inline: { type: Boolean, default: false }\n }, {\n \"timezoneId\": { default: \"UTC\" },\n \"timezoneIdModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"update:modelValue\", \"update:timezoneId\", \"blur\"], [\"update:timezoneId\"]),\n setup(__props, { emit: __emit }) {\n const timezoneId = useModel(__props, \"timezoneId\");\n const props = __props;\n const emit = __emit;\n const targetElement = useTemplateRef(\"target\");\n const pickerInstance = useTemplateRef(\"picker\");\n const value = computed(() => {\n if (props.modelValue === null && props.clearable) {\n return null;\n }\n if (props.type === \"week\") {\n const date = props.modelValue instanceof Date ? props.modelValue : /* @__PURE__ */ new Date();\n const end = new Date(date);\n end.setUTCDate(date.getUTCDate() + 6);\n return [date, end];\n } else if (props.type === \"year\") {\n const date = props.modelValue instanceof Date ? props.modelValue : /* @__PURE__ */ new Date();\n return date.getUTCFullYear();\n } else if (props.type === \"month\") {\n const date = props.modelValue instanceof Date ? props.modelValue : /* @__PURE__ */ new Date();\n return { year: date.getUTCFullYear(), month: date.getUTCMonth() };\n } else if (props.type === \"time\") {\n const time = props.modelValue instanceof Date ? props.modelValue : /* @__PURE__ */ new Date();\n return {\n hours: time.getHours(),\n minutes: time.getMinutes(),\n seconds: time.getSeconds()\n };\n } else if (props.type === \"time-range\") {\n const time = [props.modelValue].flat();\n if (time.length !== 2) {\n const start = /* @__PURE__ */ new Date();\n const end = new Date(start);\n end.setHours(end.getHours() + 1);\n time.splice(0, 2, start, end);\n }\n return time.map((date) => ({\n hours: date.getHours(),\n minutes: date.getMinutes(),\n seconds: date.getSeconds()\n }));\n } else if (props.type.endsWith(\"-range\")) {\n if (props.modelValue === void 0) {\n const start = /* @__PURE__ */ new Date();\n const end = new Date(start);\n end.setUTCDate(start.getUTCDate() + 7);\n return [start, end];\n }\n return props.modelValue;\n }\n return props.modelValue ?? /* @__PURE__ */ new Date();\n });\n const placeholderFallback = computed(() => {\n if (props.type === \"date\") {\n return t(\"Select date\");\n } else if (props.type === \"time\") {\n return t(\"Select time\");\n } else if (props.type === \"datetime\") {\n return t(\"Select date and time\");\n } else if (props.type === \"week\") {\n return t(\"Select week\");\n } else if (props.type === \"month\") {\n return t(\"Select month\");\n } else if (props.type === \"year\") {\n return t(\"Select year\");\n } else if (props.type.endsWith(\"-range\")) {\n return t(\"Select time range\");\n }\n return t(\"Select date and time\");\n });\n const realFormat = computed(() => {\n if (props.format) {\n return props.format;\n } else if (props.type === \"week\") {\n return \"RR-II\";\n }\n let formatter;\n if (props.type === \"date\" || props.type === \"date-range\") {\n formatter = new Intl.DateTimeFormat(getCanonicalLocale(), { dateStyle: \"medium\" });\n } else if (props.type === \"time\" || props.type === \"time-range\") {\n formatter = new Intl.DateTimeFormat(getCanonicalLocale(), { timeStyle: \"short\" });\n } else if (props.type === \"datetime\" || props.type === \"datetime-range\") {\n formatter = new Intl.DateTimeFormat(getCanonicalLocale(), { dateStyle: \"medium\", timeStyle: \"short\" });\n } else if (props.type === \"month\") {\n formatter = new Intl.DateTimeFormat(getCanonicalLocale(), { year: \"numeric\", month: \"2-digit\" });\n } else if (props.type === \"year\") {\n formatter = new Intl.DateTimeFormat(getCanonicalLocale(), { year: \"numeric\" });\n }\n if (formatter) {\n return (input) => Array.isArray(input) ? formatter.formatRange(input[0], input[1]) : formatter.format(input);\n }\n return void 0;\n });\n const pickerType = computed(() => ({\n timePicker: props.type === \"time\" || props.type === \"time-range\",\n yearPicker: props.type === \"year\",\n monthPicker: props.type === \"month\",\n weekPicker: props.type === \"week\",\n range: props.type.endsWith(\"-range\") && {\n // do not use partial ranges (meaning after selecting the start [Date, null] will be emitted)\n // if this is needed someday we can enable it,\n // but its not covered by our component interface (props / events) documentation so just disabled for now.\n partialRange: false\n },\n enableTimePicker: !(props.type === \"date\" || props.type === \"date-range\"),\n flow: props.type === \"datetime\" ? [\"calendar\", \"time\"] : void 0\n }));\n const minTime = computed(() => props.min && { hours: props.min.getHours(), minutes: props.min.getMinutes(), seconds: props.min.getSeconds() });\n const maxTime = computed(() => props.max && { hours: props.max.getHours(), minutes: props.max.getMinutes(), seconds: props.max.getSeconds() });\n function onUpdateModelValue(value2) {\n if (value2 === null) {\n return emit(\"update:modelValue\", null);\n }\n if (props.type === \"time\") {\n emit(\"update:modelValue\", formatLibraryTime(value2));\n } else if (props.type === \"time-range\") {\n const start = formatLibraryTime(value2[0]);\n const end = formatLibraryTime(value2[1]);\n if (end.getTime() < start.getTime()) {\n end.setDate(end.getDate() + 1);\n }\n emit(\"update:modelValue\", [start, end]);\n } else if (props.type === \"month\") {\n const data = value2;\n emit(\"update:modelValue\", new Date(data.year, data.month, 1));\n } else if (props.type === \"year\") {\n emit(\"update:modelValue\", new Date(value2, 0));\n } else if (props.type === \"week\") {\n emit(\"update:modelValue\", value2[0]);\n } else {\n emit(\"update:modelValue\", value2);\n }\n }\n function formatLibraryTime(time) {\n const date = /* @__PURE__ */ new Date();\n date.setHours(time.hours);\n date.setMinutes(time.minutes);\n date.setSeconds(time.seconds);\n return date;\n }\n const weekStart = getFirstDay();\n const dayNames = [...getDayNamesMin()];\n for (let i = 0; i < weekStart; i++) {\n dayNames.push(dayNames.shift());\n }\n const weekNumName = t(\"W\");\n const ariaLabels = computed(() => ({\n toggleOverlay: t(\"Toggle overlay\"),\n menu: props.ariaLabelMenu,\n input: props.ariaLabel,\n openTimePicker: t(\"Open time picker\"),\n closeTimePicker: t(\"Close time Picker\"),\n incrementValue: (type) => {\n if (type === \"hours\") {\n return t(\"Increment hours\");\n } else if (type === \"minutes\") {\n return t(\"Increment minutes\");\n }\n return t(\"Increment seconds\");\n },\n decrementValue: (type) => {\n if (type === \"hours\") {\n return t(\"Decrement hours\");\n } else if (type === \"minutes\") {\n return t(\"Decrement minutes\");\n }\n return t(\"Decrement seconds\");\n },\n openTpOverlay: (type) => {\n if (type === \"hours\") {\n return t(\"Open hours overlay\");\n } else if (type === \"minutes\") {\n return t(\"Open minutes overlay\");\n }\n return t(\"Open seconds overlay\");\n },\n amPmButton: t(\"Switch AM/PM mode\"),\n openYearsOverlay: t(\"Open years overlay\"),\n openMonthsOverlay: t(\"Open months overlay\"),\n nextMonth: t(\"Next month\"),\n prevMonth: t(\"Previous month\"),\n nextYear: t(\"Next year\"),\n prevYear: t(\"Previous year\"),\n weekDay: (day) => getDayNames()[day],\n clearInput: t(\"Clear value\"),\n calendarIcon: t(\"Calendar icon\"),\n timePicker: t(\"Time picker\"),\n monthPicker: (overlay) => overlay ? t(\"Month picker overlay\") : t(\"Month picker\"),\n yearPicker: (overlay) => overlay ? t(\"Year picker overlay\") : t(\"Year picker\")\n }));\n function selectDate() {\n pickerInstance.value.selectDate();\n }\n function cancelSelection() {\n pickerInstance.value.closeMenu();\n }\n const calcMinMaxTime = computed(() => {\n if (props.type === \"datetime\") {\n return {\n minDate: props.min,\n maxDate: props.max,\n minTime: props.min && value.value && sameDay(props.min, value.value) ? minTime.value : void 0,\n maxTime: props.max && value.value && sameDay(props.max, value.value) ? maxTime.value : void 0\n };\n }\n if (props.type === \"datetime-range\") {\n return {\n minDate: props.min,\n maxDate: props.max,\n minTime: props.min && value.value ? sameDay(props.min, value.value[0]) ? minTime.value : void 0 : void 0,\n maxTime: props.max && value.value ? sameDay(props.max, value.value[1]) ? maxTime.value : void 0 : void 0\n };\n }\n if (props.type === \"time\" || props.type === \"time-range\") {\n return {\n minTime: props.min ? minTime.value : void 0,\n maxTime: props.max ? maxTime.value : void 0\n };\n }\n return {\n minDate: props.min,\n maxDate: props.max\n };\n });\n function sameDay(a, b) {\n return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createVNode(unref(VueDatePicker), mergeProps({\n ref: \"picker\",\n \"aria-labels\": ariaLabels.value,\n autoApply: !__props.confirm,\n class: [\"vue-date-time-picker\", { \"vue-date-time-picker--clearable\": __props.clearable }],\n cancelText: unref(t)(\"Cancel\"),\n clearable: __props.clearable,\n dayNames,\n placeholder: __props.placeholder ?? placeholderFallback.value,\n format: realFormat.value,\n locale: __props.locale,\n minDate: calcMinMaxTime.value.minDate,\n maxDate: calcMinMaxTime.value.maxDate,\n minTime: calcMinMaxTime.value.minTime,\n maxTime: calcMinMaxTime.value.maxTime,\n minutesIncrement: __props.minuteStep,\n modelValue: value.value,\n nowButtonLabel: unref(t)(\"Now\"),\n selectText: unref(t)(\"Pick\"),\n sixWeeks: \"fair\",\n inline: __props.inline,\n teleport: __props.appendToBody ? targetElement.value || void 0 : false,\n textInput: \"\",\n weekNumName: unref(weekNumName),\n weekNumbers: __props.showWeekNumber ? { type: \"iso\" } : void 0,\n weekStart: unref(weekStart)\n }, pickerType.value, {\n \"onUpdate:modelValue\": onUpdateModelValue,\n onBlur: _cache[1] || (_cache[1] = ($event) => emit(\"blur\"))\n }), createSlots({\n \"action-buttons\": withCtx(() => [\n createVNode(unref(NcButton), {\n size: \"small\",\n variant: \"tertiary\",\n onClick: cancelSelection\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Cancel\")), 1)\n ]),\n _: 1\n }),\n createVNode(unref(NcButton), {\n size: \"small\",\n variant: \"primary\",\n onClick: selectDate\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Pick\")), 1)\n ]),\n _: 1\n })\n ]),\n \"clear-icon\": withCtx(({ clear }) => [\n createVNode(unref(NcButton), {\n \"aria-label\": unref(t)(\"Clear value\"),\n variant: \"tertiary-no-background\",\n onClick: clear\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n inline: \"\",\n path: unref(mdiClose),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"])\n ]),\n \"input-icon\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: unref(mdiCalendarBlank),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n \"clock-icon\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n inline: \"\",\n path: unref(mdiClock),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n \"arrow-left\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n inline: \"\",\n path: unref(mdiChevronLeft),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n \"arrow-right\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n inline: \"\",\n path: unref(mdiChevronRight),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n \"arrow-down\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n inline: \"\",\n path: unref(mdiChevronDown),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n \"arrow-up\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n inline: \"\",\n path: unref(mdiChevronUp),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n _: 2\n }, [\n __props.showTimezoneSelect ? {\n name: \"action-extra\",\n fn: withCtx(() => [\n createVNode(_sfc_main$1, {\n modelValue: timezoneId.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => timezoneId.value = $event),\n class: \"vue-date-time-picker__timezone\",\n appendToBody: false,\n inputLabel: unref(t)(\"Time zone\")\n }, null, 8, [\"modelValue\", \"inputLabel\"])\n ]),\n key: \"0\"\n } : void 0\n ]), 1040, [\"aria-labels\", \"autoApply\", \"class\", \"cancelText\", \"clearable\", \"placeholder\", \"format\", \"locale\", \"minDate\", \"maxDate\", \"minTime\", \"maxTime\", \"minutesIncrement\", \"modelValue\", \"nowButtonLabel\", \"selectText\", \"inline\", \"teleport\", \"weekNumName\", \"weekNumbers\", \"weekStart\"]),\n (openBlock(), createBlock(Teleport, {\n to: \"body\",\n disabled: !__props.appendToBody\n }, [\n createElementVNode(\"div\", _hoisted_2, null, 512)\n ], 8, [\"disabled\"]))\n ]);\n };\n }\n});\nconst NcDateTimePicker = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-e6654786\"]]);\nexport {\n NcDateTimePicker as N\n};\n//# sourceMappingURL=NcDateTimePicker-CK4rhfEB.mjs.map\n"],"names":["millisecondsInWeek","millisecondsInDay","millisecondsInMinute","millisecondsInHour","millisecondsInSecond","constructFromSymbol","constructFrom","date","value","toDate","argument","context","addDays","amount","options","_date","addMonths","dayOfMonth","endOfDesiredMonth","daysInMonth","add","duration","years","months","weeks","days","hours","minutes","seconds","dateWithMonths","dateWithDays","minutesToAdd","msToAdd","addMilliseconds","addHours","defaultOptions","getDefaultOptions","startOfWeek","weekStartsOn","day","diff","startOfISOWeek","getISOWeekYear","year","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","getTimezoneOffsetInMilliseconds","utcDate","normalizeDates","dates","normalize","startOfDay","differenceInCalendarDays","laterDate","earlierDate","laterDate_","earlierDate_","laterStartOfDay","earlierStartOfDay","laterTimestamp","earlierTimestamp","startOfISOWeekYear","fourthOfJanuary","addQuarters","addYears","compareAsc","dateLeft","dateRight","isDate","isValid","getQuarter","differenceInCalendarYears","differenceInYears","sign","partial","result","normalizeInterval","interval","start","end","eachDayOfInterval","reversed","endTime","step","startOfQuarter","currentMonth","month","eachQuarterOfInterval","startOfMonth","endOfYear","startOfYear","date_","endOfWeek","endOfQuarter","formatDistanceLocale","formatDistance","token","count","tokenValue","buildFormatLongFn","args","width","dateFormats","timeFormats","dateTimeFormats","formatLong","formatRelativeLocale","formatRelative","_baseDate","_options","buildLocalizeFn","valuesArray","defaultWidth","index","eraValues","quarterValues","monthValues","dayValues","dayPeriodValues","formattingDayPeriodValues","ordinalNumber","dirtyNumber","number","rem100","localize","quarter","buildMatchFn","string","matchPattern","matchResult","matchedString","parsePatterns","key","findIndex","pattern","findKey","rest","object","predicate","array","buildMatchPatternFn","parseResult","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","match","enUS","getDayOfYear","getISOWeek","getWeekYear","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfWeekYear","firstWeek","getWeek","addLeadingZeros","targetLength","output","lightFormatters","signedYear","dayPeriodEnumValue","numberOfDigits","milliseconds","fractionalSeconds","dayPeriodEnum","formatters","era","signedWeekYear","weekYear","twoDigitYear","isoWeekYear","week","isoWeek","dayOfYear","dayOfWeek","localDayOfWeek","isoDayOfWeek","_localize","timezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","timestamp","offset","delimiter","absOffset","dateLongFormatter","timeLongFormatter","dateTimeLongFormatter","datePattern","timePattern","dateTimeFormat","longFormatters","dayOfYearTokenRE","weekYearTokenRE","throwTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","warnOrThrowProtectedError","format","input","_message","message","subject","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","formatStr","locale","defaultLocale","originalDate","parts","substring","firstCharacter","longFormatter","cleanEscapedString","formatterOptions","part","formatter","matched","getDay","getDaysInMonth","monthIndex","lastDayOfMonth","getInternalDefaultOptions","getHours","getISODay","getMinutes","getMonth","getSeconds","getYear","isAfter","dateToCompare","isBefore","isEqual","leftDate","rightDate","transpose","constructor","isConstructor","TIMEZONE_UNIT_PRIORITY","Setter","_utcDate","ValueSetter","validateValue","setValue","priority","subPriority","flags","DateTimezoneSetter","reference","Parser","dateString","_value","EraParser","numericPatterns","timezonePatterns","mapValue","parseFnResult","mapFn","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","n","parseNDigitsSigned","dayPeriodEnumToHours","dayPeriod","normalizeTwoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","rangeEndCentury","isPreviousCentury","isLeapYearIndex","YearParser","valueCallback","normalizedTwoDigitYear","LocalWeekYearParser","ISOWeekYearParser","_flags","firstWeekOfYear","ExtendedYearParser","QuarterParser","StandAloneQuarterParser","MonthParser","StandAloneMonthParser","setWeek","LocalWeekParser","setISOWeek","ISOWeekParser","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","DateParser","isLeapYear","DayOfYearParser","setDay","currentDay","dayIndex","delta","DayParser","LocalDayParser","wholeWeekDays","StandAloneLocalDayParser","setISODay","ISODayParser","AMPMParser","AMPMMidnightParser","DayPeriodParser","Hour1to12Parser","isPM","Hour0to23Parser","Hour0To11Parser","Hour1To24Parser","MinuteParser","SecondParser","FractionOfSecondParser","ISOTimezoneWithZParser","ISOTimezoneParser","TimestampSecondsParser","TimestampMillisecondsParser","parsers","notWhitespaceRegExp","parse","dateStr","referenceDate","invalidDate","subFnOptions","setters","tokens","usedTokens","parser","incompatibleTokens","incompatibleToken","usedToken","uniquePrioritySetters","setter","a","b","setterArray","isSameQuarter","dateLeft_","dateRight_","subDays","setMonth","midMonth","set","values","setHours","setMilliseconds","setMinutes","setSeconds","setYear","subMonths","sub","withoutMonths","withoutDays","minutesToSub","msToSub","subYears","jt","Jn","w","W","he","Sn","Ua","Va","ja","Ka","Ga","Ze","Qa","l","La","H","wl","Fe","Dl","Ml","i","ot","st","Ot","je","$l","Qe","Re","Lt","un","Al","ft","Tl","f","qa","Ja","Pn","g","d","Sl","Le","s","Pl","Rn","Xa","Ne","dn","cn","Cn","Rl","Zt","Ht","Dt","Cl","Ol","Fa","Za","Ta","ca","Bl","qe","_l","On","Bn","fn","Na","da","dl","Se","Yl","Il","ol","Mt","ul","il","wn","Dn","Be","Ft","$e","Nt","Ee","_t","xt","it","Sa","Bt","yt","$t","zt","_n","ye","Me","Yn","Wt","In","bn","El","Ct","mt","Wa","kn","En","wt","pt","sl","ut","Nn","Jt","Ll","Nl","Ln","It","oa","za","Fl","Pa","Ra","vn","Ca","zl","Hl","Fn","xa","Ha","mn","cl","kt","zn","Kt","ea","Hn","j","Pe","Oa","Z","sa","Ba","_a","Ya","Ve","Ie","At","M","A","P","v","pn","Wl","gn","Ul","Vl","jl","Kl","Gl","Ql","ql","Xl","Jl","Zl","xl","er","Ia","tr","ar","nr","lr","Oe","U","$","C","z","R","h","T","F","_","m","L","rr","qt","rt","x","o","X","S","fl","B","k","q","le","ee","O","J","ce","pe","p","Y","te","y","V","se","be","Ae","u","re","G","I","or","Tt","Mn","$n","va","dt","sr","ur","ir","We","Ue","Ut","ie","ze","He","ke","lt","Q","gt","Ke","dr","cr","fr","vr","ta","ga","Zn","at","c","De","Xt","Ce","ua","ia","mr","ma","pr","Qt","gr","Wn","aa","Te","we","xn","tt","Vt","Ge","en","tn","pa","Un","Vn","jn","An","Gt","vl","yr","na","hr","Yt","et","Je","br","kr","wr","Dr","Mr","$r","Ar","Tr","Sr","Pr","r","E","K","oe","Tn","ml","ge","_e","Ye","nt","ne","fa","Rr","Cr","Or","Br","Kn","Gn","_r","Yr","Ir","Er","Nr","Lr","Fr","zr","Hr","Wr","Ur","Vr","jr","Kr","Gr","pl","gl","yn","Qr","ae","ve","N","ue","me","ct","Pt","$a","Rt","ra","Aa","Xn","vt","xe","St","D","fe","ht","Xe","ya","ha","la","ba","ka","wa","Da","Ma","qr","Xr","mo","Jr","rn","sn","yl","hl","on","Zr","xr","eo","Qn","to","ao","no","lo","ro","oo","so","uo","io","hn","de","po","el","Et","co","tl","nn","bt","fo","vo","kl","bl","go","yo","ho","bo","ko","wo","Ea","Do","al","nl","Mo","$o","Ao","To","ll","an","ln","rl","qn","So","register","t45","formatTimezoneId","timezoneId","getTimezones","tz","_sfc_main","defineComponent","mergeModels","createElementId","__props","modelValue","useModel","props","formattedAdditionalTimezones","computed","label","timezones","filterBy","option","search","terms","term","_ctx","_cache","openBlock","createBlock","NcSelect","$event","unref","t","t13","_hoisted_1","_hoisted_2","getCanonicalLocale","__emit","emit","targetElement","useTemplateRef","pickerInstance","time","placeholderFallback","realFormat","pickerType","minTime","maxTime","onUpdateModelValue","value2","formatLibraryTime","data","weekStart","getFirstDay","dayNames","getDayNamesMin","weekNumName","ariaLabels","type","getDayNames","overlay","selectDate","cancelSelection","calcMinMaxTime","sameDay","createElementBlock","createVNode","VueDatePicker","mergeProps","createSlots","withCtx","NcButton","createTextVNode","toDisplayString","clear","NcIconSvgWrapper","mdiClose","mdiCalendarBlank","mdiClock","mdiChevronLeft","mdiChevronRight","mdiChevronDown","mdiChevronUp","_sfc_main$1","Teleport","createElementVNode","NcDateTimePicker","_export_sfc"],"mappings":"w7BA4EO,MAAMA,GAAqB,OAOrBC,GAAoB,MAOpBC,GAAuB,IAOvBC,GAAqB,KAOrBC,GAAuB,IA+GvBC,GAAsB,OAAO,IAAI,mBAAmB,EClL1D,SAASC,GAAcC,EAAMC,EAAO,CACzC,OAAI,OAAOD,GAAS,WAAmBA,EAAKC,CAAK,EAE7CD,GAAQ,OAAOA,GAAS,UAAYF,MAAuBE,EACtDA,EAAKF,EAAmB,EAAEG,CAAK,EAEpCD,aAAgB,KAAa,IAAIA,EAAK,YAAYC,CAAK,EAEpD,IAAI,KAAKA,CAAK,CACvB,CCNO,SAASC,GAAOC,EAAUC,EAAS,CAExC,OAAOL,GAAcK,GAAWD,EAAUA,CAAQ,CACpD,CCdO,SAASE,GAAQL,EAAMM,EAAQC,EAAS,CAC7C,MAAMC,EAAQN,GAAOF,EAAMO,GAAS,EAAE,EACtC,OAAI,MAAMD,CAAM,EAAUP,GAAcQ,GAAS,IAAMP,EAAM,GAAG,GAG3DM,GAELE,EAAM,QAAQA,EAAM,QAAO,EAAKF,CAAM,EAC/BE,EACT,CCLO,SAASC,GAAUT,EAAMM,EAAQC,EAAS,CAC/C,MAAMC,EAAQN,GAAOF,EAAMO,GAAS,EAAE,EACtC,GAAI,MAAMD,CAAM,EAAG,OAAOP,GAA6BC,EAAM,GAAG,EAChE,GAAI,CAACM,EAEH,OAAOE,EAET,MAAME,EAAaF,EAAM,QAAO,EAU1BG,EAAoBZ,GAA6BC,EAAMQ,EAAM,QAAO,CAAE,EAC5EG,EAAkB,SAASH,EAAM,SAAQ,EAAKF,EAAS,EAAG,CAAC,EAC3D,MAAMM,EAAcD,EAAkB,QAAO,EAC7C,OAAID,GAAcE,EAGTD,GASPH,EAAM,YACJG,EAAkB,YAAW,EAC7BA,EAAkB,SAAQ,EAC1BD,CACN,EACWF,EAEX,CCjCO,SAASK,GAAIb,EAAMc,EAAUP,EAAS,CAC3C,KAAM,CACJ,MAAAQ,EAAQ,EACR,OAAAC,EAAS,EACT,MAAAC,EAAQ,EACR,KAAAC,EAAO,EACP,MAAAC,EAAQ,EACR,QAAAC,EAAU,EACV,QAAAC,EAAU,CACd,EAAMP,EAGEN,EAAQN,GAAOF,EAAMO,GAAS,EAAE,EAChCe,EACJN,GAAUD,EAAQN,GAAUD,EAAOQ,EAASD,EAAQ,EAAE,EAAIP,EAGtDe,EACJL,GAAQD,EAAQZ,GAAQiB,EAAgBJ,EAAOD,EAAQ,CAAC,EAAIK,EAGxDE,EAAeJ,EAAUD,EAAQ,GAEjCM,GADeJ,EAAUG,EAAe,IACf,IAE/B,OAAOzB,GAA6BC,EAAM,CAACuB,EAAeE,CAAO,CACnE,CCpCO,SAASC,GAAgB1B,EAAMM,EAAQC,EAAS,CACrD,OAAOR,GAA6BC,EAAM,CAACE,GAAOF,CAAI,EAAIM,CAAM,CAClE,CCFO,SAASqB,GAAS3B,EAAMM,EAAQC,EAAS,CAC9C,OAAOmB,GAAgB1B,EAAMM,EAASV,EAA2B,CACnE,CC/BA,IAAIgC,GAAiB,CAAA,EAEd,SAASC,IAAoB,CAClC,OAAOD,EACT,CC8BO,SAASE,GAAY9B,EAAMO,EAAS,CACzC,MAAMqB,EAAiBC,GAAiB,EAClCE,EACJxB,GAAS,cACTA,GAAS,QAAQ,SAAS,cAC1BqB,EAAe,cACfA,EAAe,QAAQ,SAAS,cAChC,EAEIpB,EAAQN,GAAOF,EAAMO,GAAS,EAAE,EAChCyB,EAAMxB,EAAM,OAAM,EAClByB,GAAQD,EAAMD,EAAe,EAAI,GAAKC,EAAMD,EAElD,OAAAvB,EAAM,QAAQA,EAAM,QAAO,EAAKyB,CAAI,EACpCzB,EAAM,SAAS,EAAG,EAAG,EAAG,CAAC,EAClBA,CACT,CCpBO,SAAS0B,GAAelC,EAAMO,EAAS,CAC5C,OAAOuB,GAAY9B,EAAM,CAAE,GAAGO,EAAS,aAAc,EAAG,CAC1D,CCJO,SAAS4B,GAAenC,EAAMO,EAAS,CAC5C,MAAMC,EAAQN,GAAOF,EAAMO,GAAS,EAAE,EAChC6B,EAAO5B,EAAM,YAAW,EAExB6B,EAA4BtC,GAAcS,EAAO,CAAC,EACxD6B,EAA0B,YAAYD,EAAO,EAAG,EAAG,CAAC,EACpDC,EAA0B,SAAS,EAAG,EAAG,EAAG,CAAC,EAC7C,MAAMC,EAAkBJ,GAAeG,CAAyB,EAE1DE,EAA4BxC,GAAcS,EAAO,CAAC,EACxD+B,EAA0B,YAAYH,EAAM,EAAG,CAAC,EAChDG,EAA0B,SAAS,EAAG,EAAG,EAAG,CAAC,EAC7C,MAAMC,EAAkBN,GAAeK,CAAyB,EAEhE,OAAI/B,EAAM,QAAO,GAAM8B,EAAgB,QAAO,EACrCF,EAAO,EACL5B,EAAM,QAAO,GAAMgC,EAAgB,QAAO,EAC5CJ,EAEAA,EAAO,CAElB,CCpCO,SAASK,GAAgCzC,EAAM,CACpD,MAAMQ,EAAQN,GAAOF,CAAI,EACnB0C,EAAU,IAAI,KAClB,KAAK,IACHlC,EAAM,YAAW,EACjBA,EAAM,SAAQ,EACdA,EAAM,QAAO,EACbA,EAAM,SAAQ,EACdA,EAAM,WAAU,EAChBA,EAAM,WAAU,EAChBA,EAAM,gBAAe,CAC3B,CACA,EACE,OAAAkC,EAAQ,eAAelC,EAAM,aAAa,EACnC,CAACR,EAAO,CAAC0C,CAClB,CC1BO,SAASC,GAAevC,KAAYwC,EAAO,CAChD,MAAMC,EAAY9C,GAAc,KAC9B,KACW6C,EAAM,KAAM5C,GAAS,OAAOA,GAAS,QAAQ,CAC5D,EACE,OAAO4C,EAAM,IAAIC,CAAS,CAC5B,CCoBO,SAASC,GAAW9C,EAAMO,EAAS,CACxC,MAAMC,EAAQN,GAAOF,EAAMO,GAAS,EAAE,EACtC,OAAAC,EAAM,SAAS,EAAG,EAAG,EAAG,CAAC,EAClBA,CACT,CCQO,SAASuC,GAAyBC,EAAWC,EAAa1C,EAAS,CACxE,KAAM,CAAC2C,EAAYC,CAAY,EAAIR,GACjCpC,GAAS,GACTyC,EACAC,CACJ,EAEQG,EAAkBN,GAAWI,CAAU,EACvCG,EAAoBP,GAAWK,CAAY,EAE3CG,EACJ,CAACF,EAAkBX,GAAgCW,CAAe,EAC9DG,EACJ,CAACF,EAAoBZ,GAAgCY,CAAiB,EAKxE,OAAO,KAAK,OAAOC,EAAiBC,GAAoB7D,EAAiB,CAC3E,CC1BO,SAAS8D,GAAmBxD,EAAMO,EAAS,CAChD,MAAM6B,EAAOD,GAAenC,EAAMO,CAAO,EACnCkD,EAAkB1D,GAA6BC,EAAM,CAAC,EAC5D,OAAAyD,EAAgB,YAAYrB,EAAM,EAAG,CAAC,EACtCqB,EAAgB,SAAS,EAAG,EAAG,EAAG,CAAC,EAC5BvB,GAAeuB,CAAe,CACvC,CCXO,SAASC,GAAY1D,EAAMM,EAAQC,EAAS,CACjD,OAAOE,GAAUT,EAAMM,EAAS,EAAGC,CAAO,CAC5C,CCFO,SAASoD,GAAS3D,EAAMM,EAAQC,EAAS,CAC9C,OAAOE,GAAUT,EAAMM,EAAS,GAAIC,CAAO,CAC7C,CCIO,SAASqD,GAAWC,EAAUC,EAAW,CAC9C,MAAM7B,EAAO,CAAC/B,GAAO2D,CAAQ,EAAI,CAAC3D,GAAO4D,CAAS,EAElD,OAAI7B,EAAO,EAAU,GACZA,EAAO,EAAU,EAGnBA,CACT,CCVO,SAAS8B,GAAO9D,EAAO,CAC5B,OACEA,aAAiB,MAChB,OAAOA,GAAU,UAChB,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,eAEhD,CCJO,SAAS+D,GAAQhE,EAAM,CAC5B,MAAO,EAAG,CAAC+D,GAAO/D,CAAI,GAAK,OAAOA,GAAS,UAAa,MAAM,CAACE,GAAOF,CAAI,CAAC,EAC7E,CCZO,SAASiE,GAAWjE,EAAMO,EAAS,CACxC,MAAMC,EAAQN,GAAOF,EAAMO,GAAS,EAAE,EAEtC,OADgB,KAAK,MAAMC,EAAM,SAAQ,EAAK,CAAC,EAAI,CAErD,CCAO,SAAS0D,GAA0BlB,EAAWC,EAAa1C,EAAS,CACzE,KAAM,CAAC2C,EAAYC,CAAY,EAAIR,GACjCpC,GAAS,GACTyC,EACAC,CACJ,EACE,OAAOC,EAAW,cAAgBC,EAAa,YAAW,CAC5D,CCRO,SAASgB,GAAkBnB,EAAWC,EAAa1C,EAAS,CACjE,KAAM,CAAC2C,EAAYC,CAAY,EAAIR,GACjCpC,GAAS,GACTyC,EACAC,CACJ,EAIQmB,EAAOR,GAAWV,EAAYC,CAAY,EAI1ClB,EAAO,KAAK,IAAIiC,GAA0BhB,EAAYC,CAAY,CAAC,EAKzED,EAAW,YAAY,IAAI,EAC3BC,EAAa,YAAY,IAAI,EAO7B,MAAMkB,EAAUT,GAAWV,EAAYC,CAAY,IAAM,CAACiB,EAEpDE,EAASF,GAAQnC,EAAO,CAACoC,GAG/B,OAAOC,IAAW,EAAI,EAAIA,CAC5B,CCzDO,SAASC,GAAkBnE,EAASoE,EAAU,CACnD,KAAM,CAACC,EAAOC,CAAG,EAAI/B,GAAevC,EAASoE,EAAS,MAAOA,EAAS,GAAG,EACzE,MAAO,CAAE,MAAAC,EAAO,IAAAC,CAAG,CACrB,CCuCO,SAASC,GAAkBH,EAAUjE,EAAS,CACnD,KAAM,CAAE,MAAAkE,EAAO,IAAAC,CAAG,EAAKH,GAAkBhE,GAAS,GAAIiE,CAAQ,EAE9D,IAAII,EAAW,CAACH,EAAQ,CAACC,EACzB,MAAMG,EAAUD,EAAW,CAACH,EAAQ,CAACC,EAC/B1E,EAAO4E,EAAWF,EAAMD,EAC9BzE,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EAExB,IAAI8E,EAAwB,EAO5B,MAAMlC,EAAQ,CAAA,EAEd,KAAO,CAAC5C,GAAQ6E,GACdjC,EAAM,KAAK7C,GAAc0E,EAAOzE,CAAI,CAAC,EACrCA,EAAK,QAAQA,EAAK,QAAO,EAAK8E,CAAI,EAClC9E,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EAG1B,OAAO4E,EAAWhC,EAAM,QAAO,EAAKA,CACtC,CCxCO,SAASmC,GAAe/E,EAAMO,EAAS,CAC5C,MAAMC,EAAQN,GAAOF,EAAMO,GAAS,EAAE,EAChCyE,EAAexE,EAAM,SAAQ,EAC7ByE,EAAQD,EAAgBA,EAAe,EAC7C,OAAAxE,EAAM,SAASyE,EAAO,CAAC,EACvBzE,EAAM,SAAS,EAAG,EAAG,EAAG,CAAC,EAClBA,CACT,CCSO,SAAS0E,GAAsBV,EAAUjE,EAAS,CACvD,KAAM,CAAE,MAAAkE,EAAO,IAAAC,CAAG,EAAKH,GAAkBhE,GAAS,GAAIiE,CAAQ,EAE9D,IAAII,EAAW,CAACH,EAAQ,CAACC,EACzB,MAAMG,EAAUD,EAAW,CAACG,GAAeN,CAAK,EAAI,CAACM,GAAeL,CAAG,EACvE,IAAI1E,EAAkB+E,GAAXH,EAA0BF,EAAsBD,CAAnB,EAEpCK,EAAwB,EAO5B,MAAMlC,EAAQ,CAAA,EAEd,KAAO,CAAC5C,GAAQ6E,GACdjC,EAAM,KAAK7C,GAAc0E,EAAOzE,CAAI,CAAC,EACrCA,EAAO0D,GAAY1D,EAAM8E,CAAI,EAG/B,OAAOF,EAAWhC,EAAM,QAAO,EAAKA,CACtC,CCrCO,SAASuC,GAAanF,EAAMO,EAAS,CAC1C,MAAMC,EAAQN,GAAOF,EAAMO,GAAS,EAAE,EACtC,OAAAC,EAAM,QAAQ,CAAC,EACfA,EAAM,SAAS,EAAG,EAAG,EAAG,CAAC,EAClBA,CACT,CCNO,SAAS4E,GAAUpF,EAAMO,EAAS,CACvC,MAAMC,EAAQN,GAAOF,EAAMO,GAAS,EAAE,EAChC6B,EAAO5B,EAAM,YAAW,EAC9B,OAAAA,EAAM,YAAY4B,EAAO,EAAG,EAAG,CAAC,EAChC5B,EAAM,SAAS,GAAI,GAAI,GAAI,GAAG,EACvBA,CACT,CCNO,SAAS6E,GAAYrF,EAAMO,EAAS,CACzC,MAAM+E,EAAQpF,GAAOF,EAAMO,GAAS,EAAE,EACtC,OAAA+E,EAAM,YAAYA,EAAM,YAAW,EAAI,EAAG,CAAC,EAC3CA,EAAM,SAAS,EAAG,EAAG,EAAG,CAAC,EAClBA,CACT,CCCO,SAASC,GAAUvF,EAAMO,EAAS,CACvC,MAAMqB,EAAiBC,GAAiB,EAClCE,EACJxB,GAAS,cACTA,GAAS,QAAQ,SAAS,cAC1BqB,EAAe,cACfA,EAAe,QAAQ,SAAS,cAChC,EAEIpB,EAAQN,GAAOF,EAAMO,GAAS,EAAE,EAChCyB,EAAMxB,EAAM,OAAM,EAClByB,GAAQD,EAAMD,EAAe,GAAK,GAAK,GAAKC,EAAMD,GAExD,OAAAvB,EAAM,QAAQA,EAAM,QAAO,EAAKyB,CAAI,EACpCzB,EAAM,SAAS,GAAI,GAAI,GAAI,GAAG,EACvBA,CACT,CCtBO,SAASgF,GAAaxF,EAAMO,EAAS,CAC1C,MAAMC,EAAQN,GAAOF,EAAMO,GAAS,EAAE,EAChCyE,EAAexE,EAAM,SAAQ,EAC7ByE,EAAQD,EAAgBA,EAAe,EAAK,EAClD,OAAAxE,EAAM,SAASyE,EAAO,CAAC,EACvBzE,EAAM,SAAS,GAAI,GAAI,GAAI,GAAG,EACvBA,CACT,CCnCA,MAAMiF,GAAuB,CAC3B,iBAAkB,CAChB,IAAK,qBACL,MAAO,6BACX,EAEE,SAAU,CACR,IAAK,WACL,MAAO,mBACX,EAEE,YAAa,gBAEb,iBAAkB,CAChB,IAAK,qBACL,MAAO,6BACX,EAEE,SAAU,CACR,IAAK,WACL,MAAO,mBACX,EAEE,YAAa,CACX,IAAK,eACL,MAAO,uBACX,EAEE,OAAQ,CACN,IAAK,SACL,MAAO,iBACX,EAEE,MAAO,CACL,IAAK,QACL,MAAO,gBACX,EAEE,YAAa,CACX,IAAK,eACL,MAAO,uBACX,EAEE,OAAQ,CACN,IAAK,SACL,MAAO,iBACX,EAEE,aAAc,CACZ,IAAK,gBACL,MAAO,wBACX,EAEE,QAAS,CACP,IAAK,UACL,MAAO,kBACX,EAEE,YAAa,CACX,IAAK,eACL,MAAO,uBACX,EAEE,OAAQ,CACN,IAAK,SACL,MAAO,iBACX,EAEE,WAAY,CACV,IAAK,cACL,MAAO,sBACX,EAEE,aAAc,CACZ,IAAK,gBACL,MAAO,wBACX,CACA,EAEaC,GAAiB,CAACC,EAAOC,EAAOrF,IAAY,CACvD,IAAI+D,EAEJ,MAAMuB,EAAaJ,GAAqBE,CAAK,EAS7C,OARI,OAAOE,GAAe,SACxBvB,EAASuB,EACAD,IAAU,EACnBtB,EAASuB,EAAW,IAEpBvB,EAASuB,EAAW,MAAM,QAAQ,YAAaD,EAAM,UAAU,EAG7DrF,GAAS,UACPA,EAAQ,YAAcA,EAAQ,WAAa,EACtC,MAAQ+D,EAERA,EAAS,OAIbA,CACT,ECpGO,SAASwB,GAAkBC,EAAM,CACtC,MAAO,CAACxF,EAAU,KAAO,CAEvB,MAAMyF,EAAQzF,EAAQ,MAAQ,OAAOA,EAAQ,KAAK,EAAIwF,EAAK,aAE3D,OADeA,EAAK,QAAQC,CAAK,GAAKD,EAAK,QAAQA,EAAK,YAAY,CAEtE,CACF,CCLA,MAAME,GAAc,CAClB,KAAM,mBACN,KAAM,aACN,OAAQ,WACR,MAAO,YACT,EAEMC,GAAc,CAClB,KAAM,iBACN,KAAM,cACN,OAAQ,YACR,MAAO,QACT,EAEMC,GAAkB,CACtB,KAAM,yBACN,KAAM,yBACN,OAAQ,qBACR,MAAO,oBACT,EAEaC,GAAa,CACxB,KAAMN,GAAkB,CACtB,QAASG,GACT,aAAc,MAClB,CAAG,EAED,KAAMH,GAAkB,CACtB,QAASI,GACT,aAAc,MAClB,CAAG,EAED,SAAUJ,GAAkB,CAC1B,QAASK,GACT,aAAc,MAClB,CAAG,CACH,ECtCME,GAAuB,CAC3B,SAAU,qBACV,UAAW,mBACX,MAAO,eACP,SAAU,kBACV,SAAU,cACV,MAAO,GACT,EAEaC,GAAiB,CAACX,EAAOnF,EAAO+F,EAAWC,IACtDH,GAAqBV,CAAK,EC6BrB,SAASc,GAAgBV,EAAM,CACpC,MAAO,CAAC9F,EAAOM,IAAY,CACzB,MAAMH,EAAUG,GAAS,QAAU,OAAOA,EAAQ,OAAO,EAAI,aAE7D,IAAImG,EACJ,GAAItG,IAAY,cAAgB2F,EAAK,iBAAkB,CACrD,MAAMY,EAAeZ,EAAK,wBAA0BA,EAAK,aACnDC,EAAQzF,GAAS,MAAQ,OAAOA,EAAQ,KAAK,EAAIoG,EAEvDD,EACEX,EAAK,iBAAiBC,CAAK,GAAKD,EAAK,iBAAiBY,CAAY,CACtE,KAAO,CACL,MAAMA,EAAeZ,EAAK,aACpBC,EAAQzF,GAAS,MAAQ,OAAOA,EAAQ,KAAK,EAAIwF,EAAK,aAE5DW,EAAcX,EAAK,OAAOC,CAAK,GAAKD,EAAK,OAAOY,CAAY,CAC9D,CACA,MAAMC,EAAQb,EAAK,iBAAmBA,EAAK,iBAAiB9F,CAAK,EAAIA,EAGrE,OAAOyG,EAAYE,CAAK,CAC1B,CACF,CC3DA,MAAMC,GAAY,CAChB,OAAQ,CAAC,IAAK,GAAG,EACjB,YAAa,CAAC,KAAM,IAAI,EACxB,KAAM,CAAC,gBAAiB,aAAa,CACvC,EAEMC,GAAgB,CACpB,OAAQ,CAAC,IAAK,IAAK,IAAK,GAAG,EAC3B,YAAa,CAAC,KAAM,KAAM,KAAM,IAAI,EACpC,KAAM,CAAC,cAAe,cAAe,cAAe,aAAa,CACnE,EAMMC,GAAc,CAClB,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EACnE,YAAa,CACX,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACJ,EAEE,KAAM,CACJ,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,UACJ,CACA,EAEMC,GAAY,CAChB,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAC1C,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EAChD,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAC7D,KAAM,CACJ,SACA,SACA,UACA,YACA,WACA,SACA,UACJ,CACA,EAEMC,GAAkB,CACtB,OAAQ,CACN,GAAI,IACJ,GAAI,IACJ,SAAU,KACV,KAAM,IACN,QAAS,UACT,UAAW,YACX,QAAS,UACT,MAAO,OACX,EACE,YAAa,CACX,GAAI,KACJ,GAAI,KACJ,SAAU,WACV,KAAM,OACN,QAAS,UACT,UAAW,YACX,QAAS,UACT,MAAO,OACX,EACE,KAAM,CACJ,GAAI,OACJ,GAAI,OACJ,SAAU,WACV,KAAM,OACN,QAAS,UACT,UAAW,YACX,QAAS,UACT,MAAO,OACX,CACA,EAEMC,GAA4B,CAChC,OAAQ,CACN,GAAI,IACJ,GAAI,IACJ,SAAU,KACV,KAAM,IACN,QAAS,iBACT,UAAW,mBACX,QAAS,iBACT,MAAO,UACX,EACE,YAAa,CACX,GAAI,KACJ,GAAI,KACJ,SAAU,WACV,KAAM,OACN,QAAS,iBACT,UAAW,mBACX,QAAS,iBACT,MAAO,UACX,EACE,KAAM,CACJ,GAAI,OACJ,GAAI,OACJ,SAAU,WACV,KAAM,OACN,QAAS,iBACT,UAAW,mBACX,QAAS,iBACT,MAAO,UACX,CACA,EAEMC,GAAgB,CAACC,EAAaZ,IAAa,CAC/C,MAAMa,EAAS,OAAOD,CAAW,EAS3BE,EAASD,EAAS,IACxB,GAAIC,EAAS,IAAMA,EAAS,GAC1B,OAAQA,EAAS,GAAE,CACjB,IAAK,GACH,OAAOD,EAAS,KAClB,IAAK,GACH,OAAOA,EAAS,KAClB,OACE,OAAOA,EAAS,IACxB,CAEE,OAAOA,EAAS,IAClB,EAEaE,GAAW,CACtB,cAAAJ,GAEA,IAAKV,GAAgB,CACnB,OAAQI,GACR,aAAc,MAClB,CAAG,EAED,QAASJ,GAAgB,CACvB,OAAQK,GACR,aAAc,OACd,iBAAmBU,GAAYA,EAAU,CAC7C,CAAG,EAED,MAAOf,GAAgB,CACrB,OAAQM,GACR,aAAc,MAClB,CAAG,EAED,IAAKN,GAAgB,CACnB,OAAQO,GACR,aAAc,MAClB,CAAG,EAED,UAAWP,GAAgB,CACzB,OAAQQ,GACR,aAAc,OACd,iBAAkBC,GAClB,uBAAwB,MAC5B,CAAG,CACH,EC1LO,SAASO,GAAa1B,EAAM,CACjC,MAAO,CAAC2B,EAAQnH,EAAU,KAAO,CAC/B,MAAMyF,EAAQzF,EAAQ,MAEhBoH,EACH3B,GAASD,EAAK,cAAcC,CAAK,GAClCD,EAAK,cAAcA,EAAK,iBAAiB,EACrC6B,EAAcF,EAAO,MAAMC,CAAY,EAE7C,GAAI,CAACC,EACH,OAAO,KAET,MAAMC,EAAgBD,EAAY,CAAC,EAE7BE,EACH9B,GAASD,EAAK,cAAcC,CAAK,GAClCD,EAAK,cAAcA,EAAK,iBAAiB,EAErCgC,EAAM,MAAM,QAAQD,CAAa,EACnCE,GAAUF,EAAgBG,GAAYA,EAAQ,KAAKJ,CAAa,CAAC,EAEjEK,GAAQJ,EAAgBG,GAAYA,EAAQ,KAAKJ,CAAa,CAAC,EAEnE,IAAI5H,EAEJA,EAAQ8F,EAAK,cAAgBA,EAAK,cAAcgC,CAAG,EAAIA,EACvD9H,EAAQM,EAAQ,cAEZA,EAAQ,cAAcN,CAAK,EAC3BA,EAEJ,MAAMkI,EAAOT,EAAO,MAAMG,EAAc,MAAM,EAE9C,MAAO,CAAE,MAAA5H,EAAO,KAAAkI,CAAI,CACtB,CACF,CAEA,SAASD,GAAQE,EAAQC,EAAW,CAClC,UAAWN,KAAOK,EAChB,GACE,OAAO,UAAU,eAAe,KAAKA,EAAQL,CAAG,GAChDM,EAAUD,EAAOL,CAAG,CAAC,EAErB,OAAOA,CAIb,CAEA,SAASC,GAAUM,EAAOD,EAAW,CACnC,QAASN,EAAM,EAAGA,EAAMO,EAAM,OAAQP,IACpC,GAAIM,EAAUC,EAAMP,CAAG,CAAC,EACtB,OAAOA,CAIb,CCxDO,SAASQ,GAAoBxC,EAAM,CACxC,MAAO,CAAC2B,EAAQnH,EAAU,KAAO,CAC/B,MAAMqH,EAAcF,EAAO,MAAM3B,EAAK,YAAY,EAClD,GAAI,CAAC6B,EAAa,OAAO,KACzB,MAAMC,EAAgBD,EAAY,CAAC,EAE7BY,EAAcd,EAAO,MAAM3B,EAAK,YAAY,EAClD,GAAI,CAACyC,EAAa,OAAO,KACzB,IAAIvI,EAAQ8F,EAAK,cACbA,EAAK,cAAcyC,EAAY,CAAC,CAAC,EACjCA,EAAY,CAAC,EAGjBvI,EAAQM,EAAQ,cAAgBA,EAAQ,cAAcN,CAAK,EAAIA,EAE/D,MAAMkI,EAAOT,EAAO,MAAMG,EAAc,MAAM,EAE9C,MAAO,CAAE,MAAA5H,EAAO,KAAAkI,CAAI,CACtB,CACF,CChBA,MAAMM,GAA4B,wBAC5BC,GAA4B,OAE5BC,GAAmB,CACvB,OAAQ,UACR,YAAa,6DACb,KAAM,4DACR,EACMC,GAAmB,CACvB,IAAK,CAAC,MAAO,SAAS,CACxB,EAEMC,GAAuB,CAC3B,OAAQ,WACR,YAAa,YACb,KAAM,gCACR,EACMC,GAAuB,CAC3B,IAAK,CAAC,KAAM,KAAM,KAAM,IAAI,CAC9B,EAEMC,GAAqB,CACzB,OAAQ,eACR,YAAa,sDACb,KAAM,2FACR,EACMC,GAAqB,CACzB,OAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACJ,EAEE,IAAK,CACH,OACA,MACA,QACA,OACA,QACA,QACA,QACA,OACA,MACA,MACA,MACA,KACJ,CACA,EAEMC,GAAmB,CACvB,OAAQ,YACR,MAAO,2BACP,YAAa,kCACb,KAAM,8DACR,EACMC,GAAmB,CACvB,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EACxD,IAAK,CAAC,OAAQ,MAAO,OAAQ,MAAO,OAAQ,MAAO,MAAM,CAC3D,EAEMC,GAAyB,CAC7B,OAAQ,6DACR,IAAK,gFACP,EACMC,GAAyB,CAC7B,IAAK,CACH,GAAI,MACJ,GAAI,MACJ,SAAU,OACV,KAAM,OACN,QAAS,WACT,UAAW,aACX,QAAS,WACT,MAAO,QACX,CACA,EAEaC,GAAQ,CACnB,cAAed,GAAoB,CACjC,aAAcE,GACd,aAAcC,GACd,cAAgBzI,GAAU,SAASA,EAAO,EAAE,CAChD,CAAG,EAED,IAAKwH,GAAa,CAChB,cAAekB,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,KACvB,CAAG,EAED,QAASnB,GAAa,CACpB,cAAeoB,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,MACnB,cAAgBlC,GAAUA,EAAQ,CACtC,CAAG,EAED,MAAOa,GAAa,CAClB,cAAesB,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,KACvB,CAAG,EAED,IAAKvB,GAAa,CAChB,cAAewB,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,KACvB,CAAG,EAED,UAAWzB,GAAa,CACtB,cAAe0B,GACf,kBAAmB,MACnB,cAAeC,GACf,kBAAmB,KACvB,CAAG,CACH,ECrHaE,GAAO,CAClB,KAAM,QACN,eAAgB5D,GAChB,WAAYU,GACZ,eAAgBE,GAChB,SAAUiB,GACV,MAAO8B,GACP,QAAS,CACP,aAAc,EACd,sBAAuB,CAC3B,CACA,ECCO,SAASE,GAAavJ,EAAMO,EAAS,CAC1C,MAAMC,EAAQN,GAAOF,EAAMO,GAAS,EAAE,EAGtC,OAFawC,GAAyBvC,EAAO6E,GAAY7E,CAAK,CAAC,EACtC,CAE3B,CCFO,SAASgJ,GAAWxJ,EAAMO,EAAS,CACxC,MAAMC,EAAQN,GAAOF,EAAMO,GAAS,EAAE,EAChC0B,EAAO,CAACC,GAAe1B,CAAK,EAAI,CAACgD,GAAmBhD,CAAK,EAK/D,OAAO,KAAK,MAAMyB,EAAOxC,EAAkB,EAAI,CACjD,CCMO,SAASgK,GAAYzJ,EAAMO,EAAS,CACzC,MAAMC,EAAQN,GAAOF,EAAMO,GAAS,EAAE,EAChC6B,EAAO5B,EAAM,YAAW,EAExBoB,EAAiBC,GAAiB,EAClC6H,EACJnJ,GAAS,uBACTA,GAAS,QAAQ,SAAS,uBAC1BqB,EAAe,uBACfA,EAAe,QAAQ,SAAS,uBAChC,EAEI+H,EAAsB5J,GAAcQ,GAAS,IAAMP,EAAM,CAAC,EAChE2J,EAAoB,YAAYvH,EAAO,EAAG,EAAGsH,CAAqB,EAClEC,EAAoB,SAAS,EAAG,EAAG,EAAG,CAAC,EACvC,MAAMrH,EAAkBR,GAAY6H,EAAqBpJ,CAAO,EAE1DqJ,EAAsB7J,GAAcQ,GAAS,IAAMP,EAAM,CAAC,EAChE4J,EAAoB,YAAYxH,EAAM,EAAGsH,CAAqB,EAC9DE,EAAoB,SAAS,EAAG,EAAG,EAAG,CAAC,EACvC,MAAMpH,EAAkBV,GAAY8H,EAAqBrJ,CAAO,EAEhE,MAAI,CAACC,GAAS,CAAC8B,EACNF,EAAO,EACL,CAAC5B,GAAS,CAACgC,EACbJ,EAEAA,EAAO,CAElB,CC1BO,SAASyH,GAAgB7J,EAAMO,EAAS,CAC7C,MAAMqB,EAAiBC,GAAiB,EAClC6H,EACJnJ,GAAS,uBACTA,GAAS,QAAQ,SAAS,uBAC1BqB,EAAe,uBACfA,EAAe,QAAQ,SAAS,uBAChC,EAEIQ,EAAOqH,GAAYzJ,EAAMO,CAAO,EAChCuJ,EAAY/J,GAAcQ,GAAS,IAAMP,EAAM,CAAC,EACtD,OAAA8J,EAAU,YAAY1H,EAAM,EAAGsH,CAAqB,EACpDI,EAAU,SAAS,EAAG,EAAG,EAAG,CAAC,EACfhI,GAAYgI,EAAWvJ,CAAO,CAE9C,CClBO,SAASwJ,GAAQ/J,EAAMO,EAAS,CACrC,MAAMC,EAAQN,GAAOF,EAAMO,GAAS,EAAE,EAChC0B,EAAO,CAACH,GAAYtB,EAAOD,CAAO,EAAI,CAACsJ,GAAgBrJ,EAAOD,CAAO,EAK3E,OAAO,KAAK,MAAM0B,EAAOxC,EAAkB,EAAI,CACjD,CCnDO,SAASuK,GAAgB3C,EAAQ4C,EAAc,CACpD,MAAM7F,EAAOiD,EAAS,EAAI,IAAM,GAC1B6C,EAAS,KAAK,IAAI7C,CAAM,EAAE,WAAW,SAAS4C,EAAc,GAAG,EACrE,OAAO7F,EAAO8F,CAChB,CCWO,MAAMC,GAAkB,CAE7B,EAAEnK,EAAM2F,EAAO,CAUb,MAAMyE,EAAapK,EAAK,YAAW,EAE7BoC,EAAOgI,EAAa,EAAIA,EAAa,EAAIA,EAC/C,OAAOJ,GAAgBrE,IAAU,KAAOvD,EAAO,IAAMA,EAAMuD,EAAM,MAAM,CACzE,EAGA,EAAE3F,EAAM2F,EAAO,CACb,MAAMV,EAAQjF,EAAK,SAAQ,EAC3B,OAAO2F,IAAU,IAAM,OAAOV,EAAQ,CAAC,EAAI+E,GAAgB/E,EAAQ,EAAG,CAAC,CACzE,EAGA,EAAEjF,EAAM2F,EAAO,CACb,OAAOqE,GAAgBhK,EAAK,QAAO,EAAI2F,EAAM,MAAM,CACrD,EAGA,EAAE3F,EAAM2F,EAAO,CACb,MAAM0E,EAAqBrK,EAAK,SAAQ,EAAK,IAAM,EAAI,KAAO,KAE9D,OAAQ2F,EAAK,CACX,IAAK,IACL,IAAK,KACH,OAAO0E,EAAmB,YAAW,EACvC,IAAK,MACH,OAAOA,EACT,IAAK,QACH,OAAOA,EAAmB,CAAC,EAE7B,QACE,OAAOA,IAAuB,KAAO,OAAS,MACtD,CACE,EAGA,EAAErK,EAAM2F,EAAO,CACb,OAAOqE,GAAgBhK,EAAK,SAAQ,EAAK,IAAM,GAAI2F,EAAM,MAAM,CACjE,EAGA,EAAE3F,EAAM2F,EAAO,CACb,OAAOqE,GAAgBhK,EAAK,SAAQ,EAAI2F,EAAM,MAAM,CACtD,EAGA,EAAE3F,EAAM2F,EAAO,CACb,OAAOqE,GAAgBhK,EAAK,WAAU,EAAI2F,EAAM,MAAM,CACxD,EAGA,EAAE3F,EAAM2F,EAAO,CACb,OAAOqE,GAAgBhK,EAAK,WAAU,EAAI2F,EAAM,MAAM,CACxD,EAGA,EAAE3F,EAAM2F,EAAO,CACb,MAAM2E,EAAiB3E,EAAM,OACvB4E,EAAevK,EAAK,gBAAe,EACnCwK,EAAoB,KAAK,MAC7BD,EAAe,KAAK,IAAI,GAAID,EAAiB,CAAC,CACpD,EACI,OAAON,GAAgBQ,EAAmB7E,EAAM,MAAM,CACxD,CACF,EClFM8E,GAAgB,CAGpB,SAAU,WACV,KAAM,OACN,QAAS,UACT,UAAW,YACX,QAAS,UACT,MAAO,OACT,EAgDaC,GAAa,CAExB,EAAG,SAAU1K,EAAM2F,EAAO4B,EAAU,CAClC,MAAMoD,EAAM3K,EAAK,YAAW,EAAK,EAAI,EAAI,EACzC,OAAQ2F,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO4B,EAAS,IAAIoD,EAAK,CAAE,MAAO,aAAa,CAAE,EAEnD,IAAK,QACH,OAAOpD,EAAS,IAAIoD,EAAK,CAAE,MAAO,QAAQ,CAAE,EAG9C,QACE,OAAOpD,EAAS,IAAIoD,EAAK,CAAE,MAAO,MAAM,CAAE,CAClD,CACE,EAGA,EAAG,SAAU3K,EAAM2F,EAAO4B,EAAU,CAElC,GAAI5B,IAAU,KAAM,CAClB,MAAMyE,EAAapK,EAAK,YAAW,EAE7BoC,EAAOgI,EAAa,EAAIA,EAAa,EAAIA,EAC/C,OAAO7C,EAAS,cAAcnF,EAAM,CAAE,KAAM,MAAM,CAAE,CACtD,CAEA,OAAO+H,GAAgB,EAAEnK,EAAM2F,CAAK,CACtC,EAGA,EAAG,SAAU3F,EAAM2F,EAAO4B,EAAUhH,EAAS,CAC3C,MAAMqK,EAAiBnB,GAAYzJ,EAAMO,CAAO,EAE1CsK,EAAWD,EAAiB,EAAIA,EAAiB,EAAIA,EAG3D,GAAIjF,IAAU,KAAM,CAClB,MAAMmF,EAAeD,EAAW,IAChC,OAAOb,GAAgBc,EAAc,CAAC,CACxC,CAGA,OAAInF,IAAU,KACL4B,EAAS,cAAcsD,EAAU,CAAE,KAAM,MAAM,CAAE,EAInDb,GAAgBa,EAAUlF,EAAM,MAAM,CAC/C,EAGA,EAAG,SAAU3F,EAAM2F,EAAO,CACxB,MAAMoF,EAAc5I,GAAenC,CAAI,EAGvC,OAAOgK,GAAgBe,EAAapF,EAAM,MAAM,CAClD,EAWA,EAAG,SAAU3F,EAAM2F,EAAO,CACxB,MAAMvD,EAAOpC,EAAK,YAAW,EAC7B,OAAOgK,GAAgB5H,EAAMuD,EAAM,MAAM,CAC3C,EAGA,EAAG,SAAU3F,EAAM2F,EAAO4B,EAAU,CAClC,MAAMC,EAAU,KAAK,MAAMxH,EAAK,SAAQ,EAAK,GAAK,CAAC,EACnD,OAAQ2F,EAAK,CAEX,IAAK,IACH,OAAO,OAAO6B,CAAO,EAEvB,IAAK,KACH,OAAOwC,GAAgBxC,EAAS,CAAC,EAEnC,IAAK,KACH,OAAOD,EAAS,cAAcC,EAAS,CAAE,KAAM,SAAS,CAAE,EAE5D,IAAK,MACH,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,SACP,QAAS,YACnB,CAAS,EAGH,QACE,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACE,EAGA,EAAG,SAAUxH,EAAM2F,EAAO4B,EAAU,CAClC,MAAMC,EAAU,KAAK,MAAMxH,EAAK,SAAQ,EAAK,GAAK,CAAC,EACnD,OAAQ2F,EAAK,CAEX,IAAK,IACH,OAAO,OAAO6B,CAAO,EAEvB,IAAK,KACH,OAAOwC,GAAgBxC,EAAS,CAAC,EAEnC,IAAK,KACH,OAAOD,EAAS,cAAcC,EAAS,CAAE,KAAM,SAAS,CAAE,EAE5D,IAAK,MACH,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,SACP,QAAS,YACnB,CAAS,EAGH,QACE,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACE,EAGA,EAAG,SAAUxH,EAAM2F,EAAO4B,EAAU,CAClC,MAAMtC,EAAQjF,EAAK,SAAQ,EAC3B,OAAQ2F,EAAK,CACX,IAAK,IACL,IAAK,KACH,OAAOwE,GAAgB,EAAEnK,EAAM2F,CAAK,EAEtC,IAAK,KACH,OAAO4B,EAAS,cAActC,EAAQ,EAAG,CAAE,KAAM,QAAS,EAE5D,IAAK,MACH,OAAOsC,EAAS,MAAMtC,EAAO,CAC3B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOsC,EAAS,MAAMtC,EAAO,CAC3B,MAAO,SACP,QAAS,YACnB,CAAS,EAGH,QACE,OAAOsC,EAAS,MAAMtC,EAAO,CAAE,MAAO,OAAQ,QAAS,aAAc,CAC7E,CACE,EAGA,EAAG,SAAUjF,EAAM2F,EAAO4B,EAAU,CAClC,MAAMtC,EAAQjF,EAAK,SAAQ,EAC3B,OAAQ2F,EAAK,CAEX,IAAK,IACH,OAAO,OAAOV,EAAQ,CAAC,EAEzB,IAAK,KACH,OAAO+E,GAAgB/E,EAAQ,EAAG,CAAC,EAErC,IAAK,KACH,OAAOsC,EAAS,cAActC,EAAQ,EAAG,CAAE,KAAM,QAAS,EAE5D,IAAK,MACH,OAAOsC,EAAS,MAAMtC,EAAO,CAC3B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOsC,EAAS,MAAMtC,EAAO,CAC3B,MAAO,SACP,QAAS,YACnB,CAAS,EAGH,QACE,OAAOsC,EAAS,MAAMtC,EAAO,CAAE,MAAO,OAAQ,QAAS,aAAc,CAC7E,CACE,EAGA,EAAG,SAAUjF,EAAM2F,EAAO4B,EAAUhH,EAAS,CAC3C,MAAMyK,EAAOjB,GAAQ/J,EAAMO,CAAO,EAElC,OAAIoF,IAAU,KACL4B,EAAS,cAAcyD,EAAM,CAAE,KAAM,MAAM,CAAE,EAG/ChB,GAAgBgB,EAAMrF,EAAM,MAAM,CAC3C,EAGA,EAAG,SAAU3F,EAAM2F,EAAO4B,EAAU,CAClC,MAAM0D,EAAUzB,GAAWxJ,CAAI,EAE/B,OAAI2F,IAAU,KACL4B,EAAS,cAAc0D,EAAS,CAAE,KAAM,MAAM,CAAE,EAGlDjB,GAAgBiB,EAAStF,EAAM,MAAM,CAC9C,EAGA,EAAG,SAAU3F,EAAM2F,EAAO4B,EAAU,CAClC,OAAI5B,IAAU,KACL4B,EAAS,cAAcvH,EAAK,QAAO,EAAI,CAAE,KAAM,OAAQ,EAGzDmK,GAAgB,EAAEnK,EAAM2F,CAAK,CACtC,EAGA,EAAG,SAAU3F,EAAM2F,EAAO4B,EAAU,CAClC,MAAM2D,EAAY3B,GAAavJ,CAAI,EAEnC,OAAI2F,IAAU,KACL4B,EAAS,cAAc2D,EAAW,CAAE,KAAM,WAAW,CAAE,EAGzDlB,GAAgBkB,EAAWvF,EAAM,MAAM,CAChD,EAGA,EAAG,SAAU3F,EAAM2F,EAAO4B,EAAU,CAClC,MAAM4D,EAAYnL,EAAK,OAAM,EAC7B,OAAQ2F,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO4B,EAAS,IAAI4D,EAAW,CAC7B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAO5D,EAAS,IAAI4D,EAAW,CAC7B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OAAO5D,EAAS,IAAI4D,EAAW,CAC7B,MAAO,QACP,QAAS,YACnB,CAAS,EAGH,QACE,OAAO5D,EAAS,IAAI4D,EAAW,CAC7B,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACE,EAGA,EAAG,SAAUnL,EAAM2F,EAAO4B,EAAUhH,EAAS,CAC3C,MAAM4K,EAAYnL,EAAK,OAAM,EACvBoL,GAAkBD,EAAY5K,EAAQ,aAAe,GAAK,GAAK,EACrE,OAAQoF,EAAK,CAEX,IAAK,IACH,OAAO,OAAOyF,CAAc,EAE9B,IAAK,KACH,OAAOpB,GAAgBoB,EAAgB,CAAC,EAE1C,IAAK,KACH,OAAO7D,EAAS,cAAc6D,EAAgB,CAAE,KAAM,KAAK,CAAE,EAC/D,IAAK,MACH,OAAO7D,EAAS,IAAI4D,EAAW,CAC7B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAO5D,EAAS,IAAI4D,EAAW,CAC7B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OAAO5D,EAAS,IAAI4D,EAAW,CAC7B,MAAO,QACP,QAAS,YACnB,CAAS,EAGH,QACE,OAAO5D,EAAS,IAAI4D,EAAW,CAC7B,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACE,EAGA,EAAG,SAAUnL,EAAM2F,EAAO4B,EAAUhH,EAAS,CAC3C,MAAM4K,EAAYnL,EAAK,OAAM,EACvBoL,GAAkBD,EAAY5K,EAAQ,aAAe,GAAK,GAAK,EACrE,OAAQoF,EAAK,CAEX,IAAK,IACH,OAAO,OAAOyF,CAAc,EAE9B,IAAK,KACH,OAAOpB,GAAgBoB,EAAgBzF,EAAM,MAAM,EAErD,IAAK,KACH,OAAO4B,EAAS,cAAc6D,EAAgB,CAAE,KAAM,KAAK,CAAE,EAC/D,IAAK,MACH,OAAO7D,EAAS,IAAI4D,EAAW,CAC7B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAO5D,EAAS,IAAI4D,EAAW,CAC7B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OAAO5D,EAAS,IAAI4D,EAAW,CAC7B,MAAO,QACP,QAAS,YACnB,CAAS,EAGH,QACE,OAAO5D,EAAS,IAAI4D,EAAW,CAC7B,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACE,EAGA,EAAG,SAAUnL,EAAM2F,EAAO4B,EAAU,CAClC,MAAM4D,EAAYnL,EAAK,OAAM,EACvBqL,EAAeF,IAAc,EAAI,EAAIA,EAC3C,OAAQxF,EAAK,CAEX,IAAK,IACH,OAAO,OAAO0F,CAAY,EAE5B,IAAK,KACH,OAAOrB,GAAgBqB,EAAc1F,EAAM,MAAM,EAEnD,IAAK,KACH,OAAO4B,EAAS,cAAc8D,EAAc,CAAE,KAAM,KAAK,CAAE,EAE7D,IAAK,MACH,OAAO9D,EAAS,IAAI4D,EAAW,CAC7B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAO5D,EAAS,IAAI4D,EAAW,CAC7B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OAAO5D,EAAS,IAAI4D,EAAW,CAC7B,MAAO,QACP,QAAS,YACnB,CAAS,EAGH,QACE,OAAO5D,EAAS,IAAI4D,EAAW,CAC7B,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACE,EAGA,EAAG,SAAUnL,EAAM2F,EAAO4B,EAAU,CAElC,MAAM8C,EADQrK,EAAK,SAAQ,EACQ,IAAM,EAAI,KAAO,KAEpD,OAAQ2F,EAAK,CACX,IAAK,IACL,IAAK,KACH,OAAO4B,EAAS,UAAU8C,EAAoB,CAC5C,MAAO,cACP,QAAS,YACnB,CAAS,EACH,IAAK,MACH,OAAO9C,EACJ,UAAU8C,EAAoB,CAC7B,MAAO,cACP,QAAS,YACrB,CAAW,EACA,YAAW,EAChB,IAAK,QACH,OAAO9C,EAAS,UAAU8C,EAAoB,CAC5C,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,QACE,OAAO9C,EAAS,UAAU8C,EAAoB,CAC5C,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACE,EAGA,EAAG,SAAUrK,EAAM2F,EAAO4B,EAAU,CAClC,MAAMpG,EAAQnB,EAAK,SAAQ,EAC3B,IAAIqK,EASJ,OARIlJ,IAAU,GACZkJ,EAAqBI,GAAc,KAC1BtJ,IAAU,EACnBkJ,EAAqBI,GAAc,SAEnCJ,EAAqBlJ,EAAQ,IAAM,EAAI,KAAO,KAGxCwE,EAAK,CACX,IAAK,IACL,IAAK,KACH,OAAO4B,EAAS,UAAU8C,EAAoB,CAC5C,MAAO,cACP,QAAS,YACnB,CAAS,EACH,IAAK,MACH,OAAO9C,EACJ,UAAU8C,EAAoB,CAC7B,MAAO,cACP,QAAS,YACrB,CAAW,EACA,YAAW,EAChB,IAAK,QACH,OAAO9C,EAAS,UAAU8C,EAAoB,CAC5C,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,QACE,OAAO9C,EAAS,UAAU8C,EAAoB,CAC5C,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACE,EAGA,EAAG,SAAUrK,EAAM2F,EAAO4B,EAAU,CAClC,MAAMpG,EAAQnB,EAAK,SAAQ,EAC3B,IAAIqK,EAWJ,OAVIlJ,GAAS,GACXkJ,EAAqBI,GAAc,QAC1BtJ,GAAS,GAClBkJ,EAAqBI,GAAc,UAC1BtJ,GAAS,EAClBkJ,EAAqBI,GAAc,QAEnCJ,EAAqBI,GAAc,MAG7B9E,EAAK,CACX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO4B,EAAS,UAAU8C,EAAoB,CAC5C,MAAO,cACP,QAAS,YACnB,CAAS,EACH,IAAK,QACH,OAAO9C,EAAS,UAAU8C,EAAoB,CAC5C,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,QACE,OAAO9C,EAAS,UAAU8C,EAAoB,CAC5C,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACE,EAGA,EAAG,SAAUrK,EAAM2F,EAAO4B,EAAU,CAClC,GAAI5B,IAAU,KAAM,CAClB,IAAIxE,EAAQnB,EAAK,SAAQ,EAAK,GAC9B,OAAImB,IAAU,IAAGA,EAAQ,IAClBoG,EAAS,cAAcpG,EAAO,CAAE,KAAM,MAAM,CAAE,CACvD,CAEA,OAAOgJ,GAAgB,EAAEnK,EAAM2F,CAAK,CACtC,EAGA,EAAG,SAAU3F,EAAM2F,EAAO4B,EAAU,CAClC,OAAI5B,IAAU,KACL4B,EAAS,cAAcvH,EAAK,SAAQ,EAAI,CAAE,KAAM,OAAQ,EAG1DmK,GAAgB,EAAEnK,EAAM2F,CAAK,CACtC,EAGA,EAAG,SAAU3F,EAAM2F,EAAO4B,EAAU,CAClC,MAAMpG,EAAQnB,EAAK,SAAQ,EAAK,GAEhC,OAAI2F,IAAU,KACL4B,EAAS,cAAcpG,EAAO,CAAE,KAAM,MAAM,CAAE,EAGhD6I,GAAgB7I,EAAOwE,EAAM,MAAM,CAC5C,EAGA,EAAG,SAAU3F,EAAM2F,EAAO4B,EAAU,CAClC,IAAIpG,EAAQnB,EAAK,SAAQ,EAGzB,OAFImB,IAAU,IAAGA,EAAQ,IAErBwE,IAAU,KACL4B,EAAS,cAAcpG,EAAO,CAAE,KAAM,MAAM,CAAE,EAGhD6I,GAAgB7I,EAAOwE,EAAM,MAAM,CAC5C,EAGA,EAAG,SAAU3F,EAAM2F,EAAO4B,EAAU,CAClC,OAAI5B,IAAU,KACL4B,EAAS,cAAcvH,EAAK,WAAU,EAAI,CAAE,KAAM,SAAU,EAG9DmK,GAAgB,EAAEnK,EAAM2F,CAAK,CACtC,EAGA,EAAG,SAAU3F,EAAM2F,EAAO4B,EAAU,CAClC,OAAI5B,IAAU,KACL4B,EAAS,cAAcvH,EAAK,WAAU,EAAI,CAAE,KAAM,SAAU,EAG9DmK,GAAgB,EAAEnK,EAAM2F,CAAK,CACtC,EAGA,EAAG,SAAU3F,EAAM2F,EAAO,CACxB,OAAOwE,GAAgB,EAAEnK,EAAM2F,CAAK,CACtC,EAGA,EAAG,SAAU3F,EAAM2F,EAAO2F,EAAW,CACnC,MAAMC,EAAiBvL,EAAK,kBAAiB,EAE7C,GAAIuL,IAAmB,EACrB,MAAO,IAGT,OAAQ5F,EAAK,CAEX,IAAK,IACH,OAAO6F,GAAkCD,CAAc,EAKzD,IAAK,OACL,IAAK,KACH,OAAOE,GAAeF,CAAc,EAOtC,QACE,OAAOE,GAAeF,EAAgB,GAAG,CACjD,CACE,EAGA,EAAG,SAAUvL,EAAM2F,EAAO2F,EAAW,CACnC,MAAMC,EAAiBvL,EAAK,kBAAiB,EAE7C,OAAQ2F,EAAK,CAEX,IAAK,IACH,OAAO6F,GAAkCD,CAAc,EAKzD,IAAK,OACL,IAAK,KACH,OAAOE,GAAeF,CAAc,EAOtC,QACE,OAAOE,GAAeF,EAAgB,GAAG,CACjD,CACE,EAGA,EAAG,SAAUvL,EAAM2F,EAAO2F,EAAW,CACnC,MAAMC,EAAiBvL,EAAK,kBAAiB,EAE7C,OAAQ2F,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQ+F,GAAoBH,EAAgB,GAAG,EAGxD,QACE,MAAO,MAAQE,GAAeF,EAAgB,GAAG,CACzD,CACE,EAGA,EAAG,SAAUvL,EAAM2F,EAAO2F,EAAW,CACnC,MAAMC,EAAiBvL,EAAK,kBAAiB,EAE7C,OAAQ2F,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQ+F,GAAoBH,EAAgB,GAAG,EAGxD,QACE,MAAO,MAAQE,GAAeF,EAAgB,GAAG,CACzD,CACE,EAGA,EAAG,SAAUvL,EAAM2F,EAAO2F,EAAW,CACnC,MAAMK,EAAY,KAAK,MAAM,CAAC3L,EAAO,GAAI,EACzC,OAAOgK,GAAgB2B,EAAWhG,EAAM,MAAM,CAChD,EAGA,EAAG,SAAU3F,EAAM2F,EAAO2F,EAAW,CACnC,OAAOtB,GAAgB,CAAChK,EAAM2F,EAAM,MAAM,CAC5C,CACF,EAEA,SAAS+F,GAAoBE,EAAQC,EAAY,GAAI,CACnD,MAAMzH,EAAOwH,EAAS,EAAI,IAAM,IAC1BE,EAAY,KAAK,IAAIF,CAAM,EAC3BzK,EAAQ,KAAK,MAAM2K,EAAY,EAAE,EACjC1K,EAAU0K,EAAY,GAC5B,OAAI1K,IAAY,EACPgD,EAAO,OAAOjD,CAAK,EAErBiD,EAAO,OAAOjD,CAAK,EAAI0K,EAAY7B,GAAgB5I,EAAS,CAAC,CACtE,CAEA,SAASoK,GAAkCI,EAAQC,EAAW,CAC5D,OAAID,EAAS,KAAO,GACLA,EAAS,EAAI,IAAM,KAClB5B,GAAgB,KAAK,IAAI4B,CAAM,EAAI,GAAI,CAAC,EAEjDH,GAAeG,EAAQC,CAAS,CACzC,CAEA,SAASJ,GAAeG,EAAQC,EAAY,GAAI,CAC9C,MAAMzH,EAAOwH,EAAS,EAAI,IAAM,IAC1BE,EAAY,KAAK,IAAIF,CAAM,EAC3BzK,EAAQ6I,GAAgB,KAAK,MAAM8B,EAAY,EAAE,EAAG,CAAC,EACrD1K,EAAU4I,GAAgB8B,EAAY,GAAI,CAAC,EACjD,OAAO1H,EAAOjD,EAAQ0K,EAAYzK,CACpC,CCvwBA,MAAM2K,GAAoB,CAAC9D,EAAS7B,IAAe,CACjD,OAAQ6B,EAAO,CACb,IAAK,IACH,OAAO7B,EAAW,KAAK,CAAE,MAAO,OAAO,CAAE,EAC3C,IAAK,KACH,OAAOA,EAAW,KAAK,CAAE,MAAO,QAAQ,CAAE,EAC5C,IAAK,MACH,OAAOA,EAAW,KAAK,CAAE,MAAO,MAAM,CAAE,EAE1C,QACE,OAAOA,EAAW,KAAK,CAAE,MAAO,MAAM,CAAE,CAC9C,CACA,EAEM4F,GAAoB,CAAC/D,EAAS7B,IAAe,CACjD,OAAQ6B,EAAO,CACb,IAAK,IACH,OAAO7B,EAAW,KAAK,CAAE,MAAO,OAAO,CAAE,EAC3C,IAAK,KACH,OAAOA,EAAW,KAAK,CAAE,MAAO,QAAQ,CAAE,EAC5C,IAAK,MACH,OAAOA,EAAW,KAAK,CAAE,MAAO,MAAM,CAAE,EAE1C,QACE,OAAOA,EAAW,KAAK,CAAE,MAAO,MAAM,CAAE,CAC9C,CACA,EAEM6F,GAAwB,CAAChE,EAAS7B,IAAe,CACrD,MAAMwB,EAAcK,EAAQ,MAAM,WAAW,GAAK,CAAA,EAC5CiE,EAActE,EAAY,CAAC,EAC3BuE,EAAcvE,EAAY,CAAC,EAEjC,GAAI,CAACuE,EACH,OAAOJ,GAAkB9D,EAAS7B,CAAU,EAG9C,IAAIgG,EAEJ,OAAQF,EAAW,CACjB,IAAK,IACHE,EAAiBhG,EAAW,SAAS,CAAE,MAAO,OAAO,CAAE,EACvD,MACF,IAAK,KACHgG,EAAiBhG,EAAW,SAAS,CAAE,MAAO,QAAQ,CAAE,EACxD,MACF,IAAK,MACHgG,EAAiBhG,EAAW,SAAS,CAAE,MAAO,MAAM,CAAE,EACtD,MAEF,QACEgG,EAAiBhG,EAAW,SAAS,CAAE,MAAO,MAAM,CAAE,EACtD,KACN,CAEE,OAAOgG,EACJ,QAAQ,WAAYL,GAAkBG,EAAa9F,CAAU,CAAC,EAC9D,QAAQ,WAAY4F,GAAkBG,EAAa/F,CAAU,CAAC,CACnE,EAEaiG,GAAiB,CAC5B,EAAGL,GACH,EAAGC,EACL,EC/DMK,GAAmB,OACnBC,GAAkB,OAElBC,GAAc,CAAC,IAAK,KAAM,KAAM,MAAM,EAErC,SAASC,GAA0B9G,EAAO,CAC/C,OAAO2G,GAAiB,KAAK3G,CAAK,CACpC,CAEO,SAAS+G,GAAyB/G,EAAO,CAC9C,OAAO4G,GAAgB,KAAK5G,CAAK,CACnC,CAEO,SAASgH,GAA0BhH,EAAOiH,EAAQC,EAAO,CAC9D,MAAMC,EAAWC,GAAQpH,EAAOiH,EAAQC,CAAK,EAE7C,GADA,QAAQ,KAAKC,CAAQ,EACjBN,GAAY,SAAS7G,CAAK,EAAG,MAAM,IAAI,WAAWmH,CAAQ,CAChE,CAEA,SAASC,GAAQpH,EAAOiH,EAAQC,EAAO,CACrC,MAAMG,EAAUrH,EAAM,CAAC,IAAM,IAAM,QAAU,oBAC7C,MAAO,SAASA,EAAM,YAAW,CAAE,mBAAmBA,CAAK,YAAYiH,CAAM,sBAAsBI,CAAO,mBAAmBH,CAAK,iFACpI,CCKA,MAAMI,GACJ,wDAIIC,GAA6B,oCAE7BC,GAAsB,eACtBC,GAAoB,MACpBC,GAAgC,WAoS/B,SAAST,GAAO5M,EAAMsN,EAAW/M,EAAS,CAC/C,MAAMqB,EAAiBC,GAAiB,EAClC0L,EAAShN,GAAS,QAAUqB,EAAe,QAAU4L,GAErD9D,EACJnJ,GAAS,uBACTA,GAAS,QAAQ,SAAS,uBAC1BqB,EAAe,uBACfA,EAAe,QAAQ,SAAS,uBAChC,EAEIG,EACJxB,GAAS,cACTA,GAAS,QAAQ,SAAS,cAC1BqB,EAAe,cACfA,EAAe,QAAQ,SAAS,cAChC,EAEI6L,EAAevN,GAAOF,EAAMO,GAAS,EAAE,EAE7C,GAAI,CAACyD,GAAQyJ,CAAY,EACvB,MAAM,IAAI,WAAW,oBAAoB,EAG3C,IAAIC,EAAQJ,EACT,MAAMJ,EAA0B,EAChC,IAAKS,GAAc,CAClB,MAAMC,EAAiBD,EAAU,CAAC,EAClC,GAAIC,IAAmB,KAAOA,IAAmB,IAAK,CACpD,MAAMC,EAAgBxB,GAAeuB,CAAc,EACnD,OAAOC,EAAcF,EAAWJ,EAAO,UAAU,CACnD,CACA,OAAOI,CACT,CAAC,EACA,KAAK,EAAE,EACP,MAAMV,EAAsB,EAC5B,IAAKU,GAAc,CAElB,GAAIA,IAAc,KAChB,MAAO,CAAE,QAAS,GAAO,MAAO,GAAG,EAGrC,MAAMC,EAAiBD,EAAU,CAAC,EAClC,GAAIC,IAAmB,IACrB,MAAO,CAAE,QAAS,GAAO,MAAOE,GAAmBH,CAAS,CAAC,EAG/D,GAAIjD,GAAWkD,CAAc,EAC3B,MAAO,CAAE,QAAS,GAAM,MAAOD,CAAS,EAG1C,GAAIC,EAAe,MAAMP,EAA6B,EACpD,MAAM,IAAI,WACR,iEACEO,EACA,GACZ,EAGM,MAAO,CAAE,QAAS,GAAO,MAAOD,CAAS,CAC3C,CAAC,EAGCJ,EAAO,SAAS,eAClBG,EAAQH,EAAO,SAAS,aAAaE,EAAcC,CAAK,GAG1D,MAAMK,EAAmB,CACvB,sBAAArE,EACA,aAAA3H,EACA,OAAAwL,CACJ,EAEE,OAAOG,EACJ,IAAKM,GAAS,CACb,GAAI,CAACA,EAAK,QAAS,OAAOA,EAAK,MAE/B,MAAMrI,EAAQqI,EAAK,OAGhB,CAACzN,GAAS,6BACTmM,GAAyB/G,CAAK,GAC/B,CAACpF,GAAS,8BACTkM,GAA0B9G,CAAK,IAEjCgH,GAA0BhH,EAAO2H,EAAW,OAAOtN,CAAI,CAAC,EAG1D,MAAMiO,EAAYvD,GAAW/E,EAAM,CAAC,CAAC,EACrC,OAAOsI,EAAUR,EAAc9H,EAAO4H,EAAO,SAAUQ,CAAgB,CACzE,CAAC,EACA,KAAK,EAAE,CACZ,CAEA,SAASD,GAAmBjB,EAAO,CACjC,MAAMqB,EAAUrB,EAAM,MAAMM,EAAmB,EAE/C,OAAKe,EAIEA,EAAQ,CAAC,EAAE,QAAQd,GAAmB,GAAG,EAHvCP,CAIX,CCtZO,SAASsB,GAAOnO,EAAMO,EAAS,CACpC,OAAOL,GAAOF,EAAMO,GAAS,EAAE,EAAE,OAAM,CACzC,CCDO,SAAS6N,GAAepO,EAAMO,EAAS,CAC5C,MAAMC,EAAQN,GAAOF,EAAMO,GAAS,EAAE,EAChC6B,EAAO5B,EAAM,YAAW,EACxB6N,EAAa7N,EAAM,SAAQ,EAC3B8N,EAAiBvO,GAAcS,EAAO,CAAC,EAC7C,OAAA8N,EAAe,YAAYlM,EAAMiM,EAAa,EAAG,CAAC,EAClDC,EAAe,SAAS,EAAG,EAAG,EAAG,CAAC,EAC3BA,EAAe,QAAO,CAC/B,CCPO,SAASzM,IAAoB,CAClC,OAAO,OAAO,OAAO,CAAA,EAAI0M,GAAyB,CAAE,CACtD,CCJO,SAASC,GAASxO,EAAMO,EAAS,CACtC,OAAOL,GAAOF,EAAMO,GAAS,EAAE,EAAE,SAAQ,CAC3C,CCCO,SAASkO,GAAUzO,EAAMO,EAAS,CACvC,MAAMyB,EAAM9B,GAAOF,EAAMO,GAAS,EAAE,EAAE,OAAM,EAC5C,OAAOyB,IAAQ,EAAI,EAAIA,CACzB,CCNO,SAAS0M,GAAW1O,EAAMO,EAAS,CACxC,OAAOL,GAAOF,EAAMO,GAAS,EAAE,EAAE,WAAU,CAC7C,CCFO,SAASoO,GAAS3O,EAAMO,EAAS,CACtC,OAAOL,GAAOF,EAAMO,GAAS,EAAE,EAAE,SAAQ,CAC3C,CCPO,SAASqO,GAAW5O,EAAM,CAC/B,OAAOE,GAAOF,CAAI,EAAE,WAAU,CAChC,CCGO,SAAS6O,GAAQ7O,EAAMO,EAAS,CACrC,OAAOL,GAAOF,EAAMO,GAAS,EAAE,EAAE,YAAW,CAC9C,CCNO,SAASuO,GAAQ9O,EAAM+O,EAAe,CAC3C,MAAO,CAAC7O,GAAOF,CAAI,EAAI,CAACE,GAAO6O,CAAa,CAC9C,CCFO,SAASC,GAAShP,EAAM+O,EAAe,CAC5C,MAAO,CAAC7O,GAAOF,CAAI,EAAI,CAACE,GAAO6O,CAAa,CAC9C,CCCO,SAASE,GAAQC,EAAUC,EAAW,CAC3C,MAAO,CAACjP,GAAOgP,CAAQ,GAAM,CAAChP,GAAOiP,CAAS,CAChD,CCKO,SAASC,GAAUpP,EAAMqP,EAAa,CAC3C,MAAM/J,EAAQgK,GAAcD,CAAW,EACnC,IAAIA,EAAY,CAAC,EACjBtP,GAAcsP,EAAa,CAAC,EAChC,OAAA/J,EAAM,YAAYtF,EAAK,YAAW,EAAIA,EAAK,SAAQ,EAAIA,EAAK,SAAS,EACrEsF,EAAM,SACJtF,EAAK,SAAQ,EACbA,EAAK,WAAU,EACfA,EAAK,WAAU,EACfA,EAAK,gBAAe,CACxB,EACSsF,CACT,CAEA,SAASgK,GAAcD,EAAa,CAClC,OACE,OAAOA,GAAgB,YACvBA,EAAY,WAAW,cAAgBA,CAE3C,CC9CA,MAAME,GAAyB,GAExB,MAAMC,EAAO,CAClB,YAAc,EAEd,SAASC,EAAUjJ,EAAU,CAC3B,MAAO,EACT,CACF,CAEO,MAAMkJ,WAAoBF,EAAO,CACtC,YACEvP,EAEA0P,EAEAC,EAEAC,EACAC,EACA,CACA,MAAK,EACL,KAAK,MAAQ7P,EACb,KAAK,cAAgB0P,EACrB,KAAK,SAAWC,EAChB,KAAK,SAAWC,EACZC,IACF,KAAK,YAAcA,EAEvB,CAEA,SAAS9P,EAAMO,EAAS,CACtB,OAAO,KAAK,cAAcP,EAAM,KAAK,MAAOO,CAAO,CACrD,CAEA,IAAIP,EAAM+P,EAAOxP,EAAS,CACxB,OAAO,KAAK,SAASP,EAAM+P,EAAO,KAAK,MAAOxP,CAAO,CACvD,CACF,CAEO,MAAMyP,WAA2BR,EAAO,CAC7C,SAAWD,GACX,YAAc,GAEd,YAAYnP,EAAS6P,EAAW,CAC9B,MAAK,EACL,KAAK,QAAU7P,IAAaJ,GAASD,GAAckQ,EAAWjQ,CAAI,EACpE,CAEA,IAAIA,EAAM+P,EAAO,CACf,OAAIA,EAAM,eAAuB/P,EAC1BD,GAAcC,EAAMoP,GAAUpP,EAAM,KAAK,OAAO,CAAC,CAC1D,CACF,CCtDO,MAAMkQ,EAAO,CAClB,IAAIC,EAAYxK,EAAO0D,EAAO9I,EAAS,CACrC,MAAM+D,EAAS,KAAK,MAAM6L,EAAYxK,EAAO0D,EAAO9I,CAAO,EAC3D,OAAK+D,EAIE,CACL,OAAQ,IAAIoL,GACVpL,EAAO,MACP,KAAK,SACL,KAAK,IACL,KAAK,SACL,KAAK,WACb,EACM,KAAMA,EAAO,IACnB,EAZa,IAaX,CAEA,SAASmL,EAAUW,EAAQ5J,EAAU,CACnC,MAAO,EACT,CACF,CCtBO,MAAM6J,WAAkBH,EAAO,CACpC,SAAW,IAEX,MAAMC,EAAYxK,EAAO0D,EAAO,CAC9B,OAAQ1D,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OACE0D,EAAM,IAAI8G,EAAY,CAAE,MAAO,aAAa,CAAE,GAC9C9G,EAAM,IAAI8G,EAAY,CAAE,MAAO,QAAQ,CAAE,EAI7C,IAAK,QACH,OAAO9G,EAAM,IAAI8G,EAAY,CAAE,MAAO,QAAQ,CAAE,EAGlD,QACE,OACE9G,EAAM,IAAI8G,EAAY,CAAE,MAAO,MAAM,CAAE,GACvC9G,EAAM,IAAI8G,EAAY,CAAE,MAAO,aAAa,CAAE,GAC9C9G,EAAM,IAAI8G,EAAY,CAAE,MAAO,QAAQ,CAAE,CAEnD,CACE,CAEA,IAAInQ,EAAM+P,EAAO9P,EAAO,CACtB,OAAA8P,EAAM,IAAM9P,EACZD,EAAK,YAAYC,EAAO,EAAG,CAAC,EAC5BD,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CAEA,mBAAqB,CAAC,IAAK,IAAK,IAAK,GAAG,CAC1C,CCtCO,MAAMsQ,GAAkB,CAC7B,MAAO,iBACP,KAAM,qBACN,UAAW,kCACX,KAAM,qBACN,QAAS,qBACT,QAAS,qBACT,QAAS,iBACT,QAAS,iBACT,OAAQ,YACR,OAAQ,YAER,YAAa,MACb,UAAW,WACX,YAAa,WACb,WAAY,WAEZ,gBAAiB,SACjB,kBAAmB,QACnB,gBAAiB,aACjB,kBAAmB,aACnB,iBAAkB,YACpB,EAEaC,GAAmB,CAC9B,qBAAsB,2BACtB,MAAO,0BACP,qBAAsB,oCACtB,SAAU,2BACV,wBAAyB,qCAC3B,ECtBO,SAASC,GAASC,EAAeC,EAAO,CAC7C,OAAKD,GAIE,CACL,MAAOC,EAAMD,EAAc,KAAK,EAChC,KAAMA,EAAc,IACxB,CACA,CAEO,SAASE,GAAoB1I,EAASkI,EAAY,CACvD,MAAMvI,EAAcuI,EAAW,MAAMlI,CAAO,EAE5C,OAAKL,EAIE,CACL,MAAO,SAASA,EAAY,CAAC,EAAG,EAAE,EAClC,KAAMuI,EAAW,MAAMvI,EAAY,CAAC,EAAE,MAAM,CAChD,EANW,IAOX,CAEO,SAASgJ,GAAqB3I,EAASkI,EAAY,CACxD,MAAMvI,EAAcuI,EAAW,MAAMlI,CAAO,EAE5C,GAAI,CAACL,EACH,OAAO,KAIT,GAAIA,EAAY,CAAC,IAAM,IACrB,MAAO,CACL,MAAO,EACP,KAAMuI,EAAW,MAAM,CAAC,CAC9B,EAGE,MAAM/L,EAAOwD,EAAY,CAAC,IAAM,IAAM,EAAI,GACpCzG,EAAQyG,EAAY,CAAC,EAAI,SAASA,EAAY,CAAC,EAAG,EAAE,EAAI,EACxDxG,EAAUwG,EAAY,CAAC,EAAI,SAASA,EAAY,CAAC,EAAG,EAAE,EAAI,EAC1DvG,EAAUuG,EAAY,CAAC,EAAI,SAASA,EAAY,CAAC,EAAG,EAAE,EAAI,EAEhE,MAAO,CACL,MACExD,GACCjD,EAAQvB,GACPwB,EAAUzB,GACV0B,EAAUxB,IACd,KAAMsQ,EAAW,MAAMvI,EAAY,CAAC,EAAE,MAAM,CAChD,CACA,CAEO,SAASiJ,GAAqBV,EAAY,CAC/C,OAAOQ,GAAoBL,GAAgB,gBAAiBH,CAAU,CACxE,CAEO,SAASW,GAAaC,EAAGZ,EAAY,CAC1C,OAAQY,EAAC,CACP,IAAK,GACH,OAAOJ,GAAoBL,GAAgB,YAAaH,CAAU,EACpE,IAAK,GACH,OAAOQ,GAAoBL,GAAgB,UAAWH,CAAU,EAClE,IAAK,GACH,OAAOQ,GAAoBL,GAAgB,YAAaH,CAAU,EACpE,IAAK,GACH,OAAOQ,GAAoBL,GAAgB,WAAYH,CAAU,EACnE,QACE,OAAOQ,GAAoB,IAAI,OAAO,UAAYI,EAAI,GAAG,EAAGZ,CAAU,CAC5E,CACA,CAEO,SAASa,GAAmBD,EAAGZ,EAAY,CAChD,OAAQY,EAAC,CACP,IAAK,GACH,OAAOJ,GAAoBL,GAAgB,kBAAmBH,CAAU,EAC1E,OACE,OAAOQ,GAAoBL,GAAgB,gBAAiBH,CAAU,EACxE,IAAK,GACH,OAAOQ,GAAoBL,GAAgB,kBAAmBH,CAAU,EAC1E,IAAK,GACH,OAAOQ,GAAoBL,GAAgB,iBAAkBH,CAAU,EACzE,QACE,OAAOQ,GAAoB,IAAI,OAAO,YAAcI,EAAI,GAAG,EAAGZ,CAAU,CAC9E,CACA,CAEO,SAASc,GAAqBC,EAAW,CAC9C,OAAQA,EAAS,CACf,IAAK,UACH,SACF,IAAK,UACH,MAAO,IACT,IAAK,KACL,IAAK,OACL,IAAK,YACH,MAAO,IAIT,QACE,MAAO,EACb,CACA,CAEO,SAASC,GAAsBrG,EAAcsG,EAAa,CAC/D,MAAMC,EAAcD,EAAc,EAK5BE,EAAiBD,EAAcD,EAAc,EAAIA,EAEvD,IAAI9M,EACJ,GAAIgN,GAAkB,GACpBhN,EAASwG,GAAgB,QACpB,CACL,MAAMyG,EAAWD,EAAiB,GAC5BE,EAAkB,KAAK,MAAMD,EAAW,GAAG,EAAI,IAC/CE,EAAoB3G,GAAgByG,EAAW,IACrDjN,EAASwG,EAAe0G,GAAmBC,EAAoB,IAAM,EACvE,CAEA,OAAOJ,EAAc/M,EAAS,EAAIA,CACpC,CAEO,SAASoN,GAAgBtP,EAAM,CACpC,OAAOA,EAAO,MAAQ,GAAMA,EAAO,IAAM,GAAKA,EAAO,MAAQ,CAC/D,CC7HO,MAAMuP,WAAmBzB,EAAO,CACrC,SAAW,IACX,mBAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAEtE,MAAMC,EAAYxK,EAAO0D,EAAO,CAC9B,MAAMuI,EAAiBxP,IAAU,CAC/B,KAAAA,EACA,eAAgBuD,IAAU,IAChC,GAEI,OAAQA,EAAK,CACX,IAAK,IACH,OAAO6K,GAASM,GAAa,EAAGX,CAAU,EAAGyB,CAAa,EAC5D,IAAK,KACH,OAAOpB,GACLnH,EAAM,cAAc8G,EAAY,CAC9B,KAAM,MAClB,CAAW,EACDyB,CACV,EACM,QACE,OAAOpB,GAASM,GAAanL,EAAM,OAAQwK,CAAU,EAAGyB,CAAa,CAC7E,CACE,CAEA,SAASpR,EAAOP,EAAO,CACrB,OAAOA,EAAM,gBAAkBA,EAAM,KAAO,CAC9C,CAEA,IAAID,EAAM+P,EAAO9P,EAAO,CACtB,MAAMmR,EAAcpR,EAAK,YAAW,EAEpC,GAAIC,EAAM,eAAgB,CACxB,MAAM4R,EAAyBV,GAC7BlR,EAAM,KACNmR,CACR,EACM,OAAApR,EAAK,YAAY6R,EAAwB,EAAG,CAAC,EAC7C7R,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CAEA,MAAMoC,EACJ,EAAE,QAAS2N,IAAUA,EAAM,MAAQ,EAAI9P,EAAM,KAAO,EAAIA,EAAM,KAChE,OAAAD,EAAK,YAAYoC,EAAM,EAAG,CAAC,EAC3BpC,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CACF,CCpDO,MAAM8R,WAA4B5B,EAAO,CAC9C,SAAW,IAEX,MAAMC,EAAYxK,EAAO0D,EAAO,CAC9B,MAAMuI,EAAiBxP,IAAU,CAC/B,KAAAA,EACA,eAAgBuD,IAAU,IAChC,GAEI,OAAQA,EAAK,CACX,IAAK,IACH,OAAO6K,GAASM,GAAa,EAAGX,CAAU,EAAGyB,CAAa,EAC5D,IAAK,KACH,OAAOpB,GACLnH,EAAM,cAAc8G,EAAY,CAC9B,KAAM,MAClB,CAAW,EACDyB,CACV,EACM,QACE,OAAOpB,GAASM,GAAanL,EAAM,OAAQwK,CAAU,EAAGyB,CAAa,CAC7E,CACE,CAEA,SAASpR,EAAOP,EAAO,CACrB,OAAOA,EAAM,gBAAkBA,EAAM,KAAO,CAC9C,CAEA,IAAID,EAAM+P,EAAO9P,EAAOM,EAAS,CAC/B,MAAM6Q,EAAc3H,GAAYzJ,EAAMO,CAAO,EAE7C,GAAIN,EAAM,eAAgB,CACxB,MAAM4R,EAAyBV,GAC7BlR,EAAM,KACNmR,CACR,EACM,OAAApR,EAAK,YACH6R,EACA,EACAtR,EAAQ,qBAChB,EACMP,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjB8B,GAAY9B,EAAMO,CAAO,CAClC,CAEA,MAAM6B,EACJ,EAAE,QAAS2N,IAAUA,EAAM,MAAQ,EAAI9P,EAAM,KAAO,EAAIA,EAAM,KAChE,OAAAD,EAAK,YAAYoC,EAAM,EAAG7B,EAAQ,qBAAqB,EACvDP,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjB8B,GAAY9B,EAAMO,CAAO,CAClC,CAEA,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,CACA,CCpEO,MAAMwR,WAA0B7B,EAAO,CAC5C,SAAW,IAEX,MAAMC,EAAYxK,EAAO,CACvB,OACSqL,GADLrL,IAAU,IACc,EAGFA,EAAM,OAHDwK,CAAU,CAI3C,CAEA,IAAInQ,EAAMgS,EAAQ/R,EAAO,CACvB,MAAMgS,EAAkBlS,GAAcC,EAAM,CAAC,EAC7C,OAAAiS,EAAgB,YAAYhS,EAAO,EAAG,CAAC,EACvCgS,EAAgB,SAAS,EAAG,EAAG,EAAG,CAAC,EAC5B/P,GAAe+P,CAAe,CACvC,CAEA,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,CACA,CCtCO,MAAMC,WAA2BhC,EAAO,CAC7C,SAAW,IAEX,MAAMC,EAAYxK,EAAO,CACvB,OACSqL,GADLrL,IAAU,IACc,EAGFA,EAAM,OAHDwK,CAAU,CAI3C,CAEA,IAAInQ,EAAMgS,EAAQ/R,EAAO,CACvB,OAAAD,EAAK,YAAYC,EAAO,EAAG,CAAC,EAC5BD,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CAEA,mBAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CAC7E,CClBO,MAAMmS,WAAsBjC,EAAO,CACxC,SAAW,IAEX,MAAMC,EAAYxK,EAAO0D,EAAO,CAC9B,OAAQ1D,EAAK,CAEX,IAAK,IACL,IAAK,KACH,OAAOmL,GAAanL,EAAM,OAAQwK,CAAU,EAE9C,IAAK,KACH,OAAO9G,EAAM,cAAc8G,EAAY,CAAE,KAAM,SAAS,CAAE,EAE5D,IAAK,MACH,OACE9G,EAAM,QAAQ8G,EAAY,CACxB,MAAO,cACP,QAAS,YACrB,CAAW,GACD9G,EAAM,QAAQ8G,EAAY,CACxB,MAAO,SACP,QAAS,YACrB,CAAW,EAIL,IAAK,QACH,OAAO9G,EAAM,QAAQ8G,EAAY,CAC/B,MAAO,SACP,QAAS,YACnB,CAAS,EAGH,QACE,OACE9G,EAAM,QAAQ8G,EAAY,CACxB,MAAO,OACP,QAAS,YACrB,CAAW,GACD9G,EAAM,QAAQ8G,EAAY,CACxB,MAAO,cACP,QAAS,YACrB,CAAW,GACD9G,EAAM,QAAQ8G,EAAY,CACxB,MAAO,SACP,QAAS,YACrB,CAAW,CAEX,CACE,CAEA,SAAS3P,EAAOP,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,CAChC,CAEA,IAAID,EAAMgS,EAAQ/R,EAAO,CACvB,OAAAD,EAAK,UAAUC,EAAQ,GAAK,EAAG,CAAC,EAChCD,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CAEA,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,CACA,CC7EO,MAAMoS,WAAgClC,EAAO,CAClD,SAAW,IAEX,MAAMC,EAAYxK,EAAO0D,EAAO,CAC9B,OAAQ1D,EAAK,CAEX,IAAK,IACL,IAAK,KACH,OAAOmL,GAAanL,EAAM,OAAQwK,CAAU,EAE9C,IAAK,KACH,OAAO9G,EAAM,cAAc8G,EAAY,CAAE,KAAM,SAAS,CAAE,EAE5D,IAAK,MACH,OACE9G,EAAM,QAAQ8G,EAAY,CACxB,MAAO,cACP,QAAS,YACrB,CAAW,GACD9G,EAAM,QAAQ8G,EAAY,CACxB,MAAO,SACP,QAAS,YACrB,CAAW,EAIL,IAAK,QACH,OAAO9G,EAAM,QAAQ8G,EAAY,CAC/B,MAAO,SACP,QAAS,YACnB,CAAS,EAGH,QACE,OACE9G,EAAM,QAAQ8G,EAAY,CACxB,MAAO,OACP,QAAS,YACrB,CAAW,GACD9G,EAAM,QAAQ8G,EAAY,CACxB,MAAO,cACP,QAAS,YACrB,CAAW,GACD9G,EAAM,QAAQ8G,EAAY,CACxB,MAAO,SACP,QAAS,YACrB,CAAW,CAEX,CACE,CAEA,SAAS3P,EAAOP,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,CAChC,CAEA,IAAID,EAAMgS,EAAQ/R,EAAO,CACvB,OAAAD,EAAK,UAAUC,EAAQ,GAAK,EAAG,CAAC,EAChCD,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CAEA,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,CACA,CC5EO,MAAMqS,WAAoBnC,EAAO,CACtC,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,EAEE,SAAW,IAEX,MAAMC,EAAYxK,EAAO0D,EAAO,CAC9B,MAAMuI,EAAiB3R,GAAUA,EAAQ,EAEzC,OAAQ0F,EAAK,CAEX,IAAK,IACH,OAAO6K,GACLG,GAAoBL,GAAgB,MAAOH,CAAU,EACrDyB,CACV,EAEM,IAAK,KACH,OAAOpB,GAASM,GAAa,EAAGX,CAAU,EAAGyB,CAAa,EAE5D,IAAK,KACH,OAAOpB,GACLnH,EAAM,cAAc8G,EAAY,CAC9B,KAAM,OAClB,CAAW,EACDyB,CACV,EAEM,IAAK,MACH,OACEvI,EAAM,MAAM8G,EAAY,CACtB,MAAO,cACP,QAAS,YACrB,CAAW,GACD9G,EAAM,MAAM8G,EAAY,CAAE,MAAO,SAAU,QAAS,YAAY,CAAE,EAItE,IAAK,QACH,OAAO9G,EAAM,MAAM8G,EAAY,CAC7B,MAAO,SACP,QAAS,YACnB,CAAS,EAGH,QACE,OACE9G,EAAM,MAAM8G,EAAY,CAAE,MAAO,OAAQ,QAAS,aAAc,GAChE9G,EAAM,MAAM8G,EAAY,CACtB,MAAO,cACP,QAAS,YACrB,CAAW,GACD9G,EAAM,MAAM8G,EAAY,CAAE,MAAO,SAAU,QAAS,YAAY,CAAE,CAE5E,CACE,CAEA,SAAS3P,EAAOP,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,IAAID,EAAMgS,EAAQ/R,EAAO,CACvB,OAAAD,EAAK,SAASC,EAAO,CAAC,EACtBD,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CACF,CC/EO,MAAMsS,WAA8BpC,EAAO,CAChD,SAAW,IAEX,MAAMC,EAAYxK,EAAO0D,EAAO,CAC9B,MAAMuI,EAAiB3R,GAAUA,EAAQ,EAEzC,OAAQ0F,EAAK,CAEX,IAAK,IACH,OAAO6K,GACLG,GAAoBL,GAAgB,MAAOH,CAAU,EACrDyB,CACV,EAEM,IAAK,KACH,OAAOpB,GAASM,GAAa,EAAGX,CAAU,EAAGyB,CAAa,EAE5D,IAAK,KACH,OAAOpB,GACLnH,EAAM,cAAc8G,EAAY,CAC9B,KAAM,OAClB,CAAW,EACDyB,CACV,EAEM,IAAK,MACH,OACEvI,EAAM,MAAM8G,EAAY,CACtB,MAAO,cACP,QAAS,YACrB,CAAW,GACD9G,EAAM,MAAM8G,EAAY,CAAE,MAAO,SAAU,QAAS,YAAY,CAAE,EAItE,IAAK,QACH,OAAO9G,EAAM,MAAM8G,EAAY,CAC7B,MAAO,SACP,QAAS,YACnB,CAAS,EAGH,QACE,OACE9G,EAAM,MAAM8G,EAAY,CAAE,MAAO,OAAQ,QAAS,aAAc,GAChE9G,EAAM,MAAM8G,EAAY,CACtB,MAAO,cACP,QAAS,YACrB,CAAW,GACD9G,EAAM,MAAM8G,EAAY,CAAE,MAAO,SAAU,QAAS,YAAY,CAAE,CAE5E,CACE,CAEA,SAAS3P,EAAOP,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,IAAID,EAAMgS,EAAQ/R,EAAO,CACvB,OAAAD,EAAK,SAASC,EAAO,CAAC,EACtBD,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CAEA,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,CACA,CCvCO,SAASuS,GAAQvS,EAAMgL,EAAMzK,EAAS,CAC3C,MAAM+E,EAAQpF,GAAOF,EAAMO,GAAS,EAAE,EAChC0B,EAAO8H,GAAQzE,EAAO/E,CAAO,EAAIyK,EACvC,OAAA1F,EAAM,QAAQA,EAAM,QAAO,EAAKrD,EAAO,CAAC,EACjC/B,GAAOoF,EAAO/E,GAAS,EAAE,CAClC,CC1CO,MAAMiS,WAAwBtC,EAAO,CAC1C,SAAW,IAEX,MAAMC,EAAYxK,EAAO0D,EAAO,CAC9B,OAAQ1D,EAAK,CACX,IAAK,IACH,OAAOgL,GAAoBL,GAAgB,KAAMH,CAAU,EAC7D,IAAK,KACH,OAAO9G,EAAM,cAAc8G,EAAY,CAAE,KAAM,MAAM,CAAE,EACzD,QACE,OAAOW,GAAanL,EAAM,OAAQwK,CAAU,CACpD,CACE,CAEA,SAAS3P,EAAOP,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,IAAID,EAAMgS,EAAQ/R,EAAOM,EAAS,CAChC,OAAOuB,GAAYyQ,GAAQvS,EAAMC,EAAOM,CAAO,EAAGA,CAAO,CAC3D,CAEA,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,CACA,CCdO,SAASkS,GAAWzS,EAAMgL,EAAMzK,EAAS,CAC9C,MAAMC,EAAQN,GAAOF,EAAMO,GAAS,EAAE,EAChC0B,EAAOuH,GAAWhJ,EAAOD,CAAO,EAAIyK,EAC1C,OAAAxK,EAAM,QAAQA,EAAM,QAAO,EAAKyB,EAAO,CAAC,EACjCzB,CACT,CC5BO,MAAMkS,WAAsBxC,EAAO,CACxC,SAAW,IAEX,MAAMC,EAAYxK,EAAO0D,EAAO,CAC9B,OAAQ1D,EAAK,CACX,IAAK,IACH,OAAOgL,GAAoBL,GAAgB,KAAMH,CAAU,EAC7D,IAAK,KACH,OAAO9G,EAAM,cAAc8G,EAAY,CAAE,KAAM,MAAM,CAAE,EACzD,QACE,OAAOW,GAAanL,EAAM,OAAQwK,CAAU,CACpD,CACE,CAEA,SAAS3P,EAAOP,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,IAAID,EAAMgS,EAAQ/R,EAAO,CACvB,OAAOiC,GAAeuQ,GAAWzS,EAAMC,CAAK,CAAC,CAC/C,CAEA,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,CACA,CCrCA,MAAM0S,GAAgB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAC/DC,GAA0B,CAC9B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAC9C,EAGO,MAAMC,WAAmB3C,EAAO,CACrC,SAAW,GACX,YAAc,EAEd,MAAMC,EAAYxK,EAAO0D,EAAO,CAC9B,OAAQ1D,EAAK,CACX,IAAK,IACH,OAAOgL,GAAoBL,GAAgB,KAAMH,CAAU,EAC7D,IAAK,KACH,OAAO9G,EAAM,cAAc8G,EAAY,CAAE,KAAM,MAAM,CAAE,EACzD,QACE,OAAOW,GAAanL,EAAM,OAAQwK,CAAU,CACpD,CACE,CAEA,SAASnQ,EAAMC,EAAO,CACpB,MAAMmC,EAAOpC,EAAK,YAAW,EACvB8S,EAAapB,GAAgBtP,CAAI,EACjC6C,EAAQjF,EAAK,SAAQ,EAC3B,OAAI8S,EACK7S,GAAS,GAAKA,GAAS2S,GAAwB3N,CAAK,EAEpDhF,GAAS,GAAKA,GAAS0S,GAAc1N,CAAK,CAErD,CAEA,IAAIjF,EAAMgS,EAAQ/R,EAAO,CACvB,OAAAD,EAAK,QAAQC,CAAK,EAClBD,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CAEA,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,CACA,CCpDO,MAAM+S,WAAwB7C,EAAO,CAC1C,SAAW,GAEX,YAAc,EAEd,MAAMC,EAAYxK,EAAO0D,EAAO,CAC9B,OAAQ1D,EAAK,CACX,IAAK,IACL,IAAK,KACH,OAAOgL,GAAoBL,GAAgB,UAAWH,CAAU,EAClE,IAAK,KACH,OAAO9G,EAAM,cAAc8G,EAAY,CAAE,KAAM,MAAM,CAAE,EACzD,QACE,OAAOW,GAAanL,EAAM,OAAQwK,CAAU,CACpD,CACE,CAEA,SAASnQ,EAAMC,EAAO,CACpB,MAAMmC,EAAOpC,EAAK,YAAW,EAE7B,OADmB0R,GAAgBtP,CAAI,EAE9BnC,GAAS,GAAKA,GAAS,IAEvBA,GAAS,GAAKA,GAAS,GAElC,CAEA,IAAID,EAAMgS,EAAQ/R,EAAO,CACvB,OAAAD,EAAK,SAAS,EAAGC,CAAK,EACtBD,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CAEA,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,CACA,CCxBO,SAASgT,GAAOhT,EAAMgC,EAAKzB,EAAS,CACzC,MAAMqB,EAAiBC,GAAiB,EAClCE,EACJxB,GAAS,cACTA,GAAS,QAAQ,SAAS,cAC1BqB,EAAe,cACfA,EAAe,QAAQ,SAAS,cAChC,EAEI0D,EAAQpF,GAAOF,EAAMO,GAAS,EAAE,EAChC0S,EAAa3N,EAAM,OAAM,EAGzB4N,GADYlR,EAAM,EACM,GAAK,EAE7BmR,EAAQ,EAAIpR,EACZE,EACJD,EAAM,GAAKA,EAAM,EACbA,GAAQiR,EAAaE,GAAS,GAC5BD,EAAWC,GAAS,GAAOF,EAAaE,GAAS,EACzD,OAAO9S,GAAQiF,EAAOrD,EAAM1B,CAAO,CACrC,CCpDO,MAAM6S,WAAkBlD,EAAO,CACpC,SAAW,GAEX,MAAMC,EAAYxK,EAAO0D,EAAO,CAC9B,OAAQ1D,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OACE0D,EAAM,IAAI8G,EAAY,CACpB,MAAO,cACP,QAAS,YACrB,CAAW,GACD9G,EAAM,IAAI8G,EAAY,CAAE,MAAO,QAAS,QAAS,aAAc,GAC/D9G,EAAM,IAAI8G,EAAY,CAAE,MAAO,SAAU,QAAS,YAAY,CAAE,EAIpE,IAAK,QACH,OAAO9G,EAAM,IAAI8G,EAAY,CAC3B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OACE9G,EAAM,IAAI8G,EAAY,CAAE,MAAO,QAAS,QAAS,aAAc,GAC/D9G,EAAM,IAAI8G,EAAY,CAAE,MAAO,SAAU,QAAS,YAAY,CAAE,EAKpE,QACE,OACE9G,EAAM,IAAI8G,EAAY,CAAE,MAAO,OAAQ,QAAS,aAAc,GAC9D9G,EAAM,IAAI8G,EAAY,CACpB,MAAO,cACP,QAAS,YACrB,CAAW,GACD9G,EAAM,IAAI8G,EAAY,CAAE,MAAO,QAAS,QAAS,aAAc,GAC/D9G,EAAM,IAAI8G,EAAY,CAAE,MAAO,SAAU,QAAS,YAAY,CAAE,CAE1E,CACE,CAEA,SAAS3P,EAAOP,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,CAChC,CAEA,IAAID,EAAMgS,EAAQ/R,EAAOM,EAAS,CAChC,OAAAP,EAAOgT,GAAOhT,EAAMC,EAAOM,CAAO,EAClCP,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CAEA,mBAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CACpD,CCvDO,MAAMqT,WAAuBnD,EAAO,CACzC,SAAW,GACX,MAAMC,EAAYxK,EAAO0D,EAAO9I,EAAS,CACvC,MAAMqR,EAAiB3R,GAAU,CAE/B,MAAMqT,EAAgB,KAAK,OAAOrT,EAAQ,GAAK,CAAC,EAAI,EACpD,OAASA,EAAQM,EAAQ,aAAe,GAAK,EAAK+S,CACpD,EAEA,OAAQ3N,EAAK,CAEX,IAAK,IACL,IAAK,KACH,OAAO6K,GAASM,GAAanL,EAAM,OAAQwK,CAAU,EAAGyB,CAAa,EAEvE,IAAK,KACH,OAAOpB,GACLnH,EAAM,cAAc8G,EAAY,CAC9B,KAAM,KAClB,CAAW,EACDyB,CACV,EAEM,IAAK,MACH,OACEvI,EAAM,IAAI8G,EAAY,CACpB,MAAO,cACP,QAAS,YACrB,CAAW,GACD9G,EAAM,IAAI8G,EAAY,CAAE,MAAO,QAAS,QAAS,aAAc,GAC/D9G,EAAM,IAAI8G,EAAY,CAAE,MAAO,SAAU,QAAS,YAAY,CAAE,EAIpE,IAAK,QACH,OAAO9G,EAAM,IAAI8G,EAAY,CAC3B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OACE9G,EAAM,IAAI8G,EAAY,CAAE,MAAO,QAAS,QAAS,aAAc,GAC/D9G,EAAM,IAAI8G,EAAY,CAAE,MAAO,SAAU,QAAS,YAAY,CAAE,EAKpE,QACE,OACE9G,EAAM,IAAI8G,EAAY,CAAE,MAAO,OAAQ,QAAS,aAAc,GAC9D9G,EAAM,IAAI8G,EAAY,CACpB,MAAO,cACP,QAAS,YACrB,CAAW,GACD9G,EAAM,IAAI8G,EAAY,CAAE,MAAO,QAAS,QAAS,aAAc,GAC/D9G,EAAM,IAAI8G,EAAY,CAAE,MAAO,SAAU,QAAS,YAAY,CAAE,CAE1E,CACE,CAEA,SAAS3P,EAAOP,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,CAChC,CAEA,IAAID,EAAMgS,EAAQ/R,EAAOM,EAAS,CAChC,OAAAP,EAAOgT,GAAOhT,EAAMC,EAAOM,CAAO,EAClCP,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CAEA,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,CACA,CCxFO,MAAMuT,WAAiCrD,EAAO,CACnD,SAAW,GAEX,MAAMC,EAAYxK,EAAO0D,EAAO9I,EAAS,CACvC,MAAMqR,EAAiB3R,GAAU,CAE/B,MAAMqT,EAAgB,KAAK,OAAOrT,EAAQ,GAAK,CAAC,EAAI,EACpD,OAASA,EAAQM,EAAQ,aAAe,GAAK,EAAK+S,CACpD,EAEA,OAAQ3N,EAAK,CAEX,IAAK,IACL,IAAK,KACH,OAAO6K,GAASM,GAAanL,EAAM,OAAQwK,CAAU,EAAGyB,CAAa,EAEvE,IAAK,KACH,OAAOpB,GACLnH,EAAM,cAAc8G,EAAY,CAC9B,KAAM,KAClB,CAAW,EACDyB,CACV,EAEM,IAAK,MACH,OACEvI,EAAM,IAAI8G,EAAY,CACpB,MAAO,cACP,QAAS,YACrB,CAAW,GACD9G,EAAM,IAAI8G,EAAY,CAAE,MAAO,QAAS,QAAS,aAAc,GAC/D9G,EAAM,IAAI8G,EAAY,CAAE,MAAO,SAAU,QAAS,YAAY,CAAE,EAIpE,IAAK,QACH,OAAO9G,EAAM,IAAI8G,EAAY,CAC3B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OACE9G,EAAM,IAAI8G,EAAY,CAAE,MAAO,QAAS,QAAS,aAAc,GAC/D9G,EAAM,IAAI8G,EAAY,CAAE,MAAO,SAAU,QAAS,YAAY,CAAE,EAKpE,QACE,OACE9G,EAAM,IAAI8G,EAAY,CAAE,MAAO,OAAQ,QAAS,aAAc,GAC9D9G,EAAM,IAAI8G,EAAY,CACpB,MAAO,cACP,QAAS,YACrB,CAAW,GACD9G,EAAM,IAAI8G,EAAY,CAAE,MAAO,QAAS,QAAS,aAAc,GAC/D9G,EAAM,IAAI8G,EAAY,CAAE,MAAO,SAAU,QAAS,YAAY,CAAE,CAE1E,CACE,CAEA,SAAS3P,EAAOP,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,CAChC,CAEA,IAAID,EAAMgS,EAAQ/R,EAAOM,EAAS,CAChC,OAAAP,EAAOgT,GAAOhT,EAAMC,EAAOM,CAAO,EAClCP,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CAEA,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,CACA,CC/DO,SAASwT,GAAUxT,EAAMgC,EAAKzB,EAAS,CAC5C,MAAM+E,EAAQpF,GAAOF,EAAMO,GAAS,EAAE,EAChC0S,EAAaxE,GAAUnJ,EAAO/E,CAAO,EACrC0B,EAAOD,EAAMiR,EACnB,OAAO5S,GAAQiF,EAAOrD,EAAM1B,CAAO,CACrC,CC/BO,MAAMkT,WAAqBvD,EAAO,CACvC,SAAW,GAEX,MAAMC,EAAYxK,EAAO0D,EAAO,CAC9B,MAAMuI,EAAiB3R,GACjBA,IAAU,EACL,EAEFA,EAGT,OAAQ0F,EAAK,CAEX,IAAK,IACL,IAAK,KACH,OAAOmL,GAAanL,EAAM,OAAQwK,CAAU,EAE9C,IAAK,KACH,OAAO9G,EAAM,cAAc8G,EAAY,CAAE,KAAM,KAAK,CAAE,EAExD,IAAK,MACH,OAAOK,GACLnH,EAAM,IAAI8G,EAAY,CACpB,MAAO,cACP,QAAS,YACrB,CAAW,GACC9G,EAAM,IAAI8G,EAAY,CACpB,MAAO,QACP,QAAS,YACvB,CAAa,GACD9G,EAAM,IAAI8G,EAAY,CACpB,MAAO,SACP,QAAS,YACvB,CAAa,EACHyB,CACV,EAEM,IAAK,QACH,OAAOpB,GACLnH,EAAM,IAAI8G,EAAY,CACpB,MAAO,SACP,QAAS,YACrB,CAAW,EACDyB,CACV,EAEM,IAAK,SACH,OAAOpB,GACLnH,EAAM,IAAI8G,EAAY,CACpB,MAAO,QACP,QAAS,YACrB,CAAW,GACC9G,EAAM,IAAI8G,EAAY,CACpB,MAAO,SACP,QAAS,YACvB,CAAa,EACHyB,CACV,EAGM,QACE,OAAOpB,GACLnH,EAAM,IAAI8G,EAAY,CACpB,MAAO,OACP,QAAS,YACrB,CAAW,GACC9G,EAAM,IAAI8G,EAAY,CACpB,MAAO,cACP,QAAS,YACvB,CAAa,GACD9G,EAAM,IAAI8G,EAAY,CACpB,MAAO,QACP,QAAS,YACvB,CAAa,GACD9G,EAAM,IAAI8G,EAAY,CACpB,MAAO,SACP,QAAS,YACvB,CAAa,EACHyB,CACV,CACA,CACE,CAEA,SAASpR,EAAOP,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,CAChC,CAEA,IAAID,EAAMgS,EAAQ/R,EAAO,CACvB,OAAAD,EAAOwT,GAAUxT,EAAMC,CAAK,EAC5BD,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CAEA,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,CACA,CChHO,MAAM0T,WAAmBxD,EAAO,CACrC,SAAW,GAEX,MAAMC,EAAYxK,EAAO0D,EAAO,CAC9B,OAAQ1D,EAAK,CACX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OACE0D,EAAM,UAAU8G,EAAY,CAC1B,MAAO,cACP,QAAS,YACrB,CAAW,GACD9G,EAAM,UAAU8G,EAAY,CAC1B,MAAO,SACP,QAAS,YACrB,CAAW,EAGL,IAAK,QACH,OAAO9G,EAAM,UAAU8G,EAAY,CACjC,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,QACE,OACE9G,EAAM,UAAU8G,EAAY,CAC1B,MAAO,OACP,QAAS,YACrB,CAAW,GACD9G,EAAM,UAAU8G,EAAY,CAC1B,MAAO,cACP,QAAS,YACrB,CAAW,GACD9G,EAAM,UAAU8G,EAAY,CAC1B,MAAO,SACP,QAAS,YACrB,CAAW,CAEX,CACE,CAEA,IAAInQ,EAAMgS,EAAQ/R,EAAO,CACvB,OAAAD,EAAK,SAASiR,GAAqBhR,CAAK,EAAG,EAAG,EAAG,CAAC,EAC3CD,CACT,CAEA,mBAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CACpD,CCjDO,MAAM2T,WAA2BzD,EAAO,CAC7C,SAAW,GAEX,MAAMC,EAAYxK,EAAO0D,EAAO,CAC9B,OAAQ1D,EAAK,CACX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OACE0D,EAAM,UAAU8G,EAAY,CAC1B,MAAO,cACP,QAAS,YACrB,CAAW,GACD9G,EAAM,UAAU8G,EAAY,CAC1B,MAAO,SACP,QAAS,YACrB,CAAW,EAGL,IAAK,QACH,OAAO9G,EAAM,UAAU8G,EAAY,CACjC,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,QACE,OACE9G,EAAM,UAAU8G,EAAY,CAC1B,MAAO,OACP,QAAS,YACrB,CAAW,GACD9G,EAAM,UAAU8G,EAAY,CAC1B,MAAO,cACP,QAAS,YACrB,CAAW,GACD9G,EAAM,UAAU8G,EAAY,CAC1B,MAAO,SACP,QAAS,YACrB,CAAW,CAEX,CACE,CAEA,IAAInQ,EAAMgS,EAAQ/R,EAAO,CACvB,OAAAD,EAAK,SAASiR,GAAqBhR,CAAK,EAAG,EAAG,EAAG,CAAC,EAC3CD,CACT,CAEA,mBAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CACpD,CChDO,MAAM4T,WAAwB1D,EAAO,CAC1C,SAAW,GAEX,MAAMC,EAAYxK,EAAO0D,EAAO,CAC9B,OAAQ1D,EAAK,CACX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OACE0D,EAAM,UAAU8G,EAAY,CAC1B,MAAO,cACP,QAAS,YACrB,CAAW,GACD9G,EAAM,UAAU8G,EAAY,CAC1B,MAAO,SACP,QAAS,YACrB,CAAW,EAGL,IAAK,QACH,OAAO9G,EAAM,UAAU8G,EAAY,CACjC,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,QACE,OACE9G,EAAM,UAAU8G,EAAY,CAC1B,MAAO,OACP,QAAS,YACrB,CAAW,GACD9G,EAAM,UAAU8G,EAAY,CAC1B,MAAO,cACP,QAAS,YACrB,CAAW,GACD9G,EAAM,UAAU8G,EAAY,CAC1B,MAAO,SACP,QAAS,YACrB,CAAW,CAEX,CACE,CAEA,IAAInQ,EAAMgS,EAAQ/R,EAAO,CACvB,OAAAD,EAAK,SAASiR,GAAqBhR,CAAK,EAAG,EAAG,EAAG,CAAC,EAC3CD,CACT,CAEA,mBAAqB,CAAC,IAAK,IAAK,IAAK,GAAG,CAC1C,CCjDO,MAAM6T,WAAwB3D,EAAO,CAC1C,SAAW,GAEX,MAAMC,EAAYxK,EAAO0D,EAAO,CAC9B,OAAQ1D,EAAK,CACX,IAAK,IACH,OAAOgL,GAAoBL,GAAgB,QAASH,CAAU,EAChE,IAAK,KACH,OAAO9G,EAAM,cAAc8G,EAAY,CAAE,KAAM,MAAM,CAAE,EACzD,QACE,OAAOW,GAAanL,EAAM,OAAQwK,CAAU,CACpD,CACE,CAEA,SAAS3P,EAAOP,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,IAAID,EAAMgS,EAAQ/R,EAAO,CACvB,MAAM6T,EAAO9T,EAAK,SAAQ,GAAM,GAChC,OAAI8T,GAAQ7T,EAAQ,GAClBD,EAAK,SAASC,EAAQ,GAAI,EAAG,EAAG,CAAC,EACxB,CAAC6T,GAAQ7T,IAAU,GAC5BD,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EAExBA,EAAK,SAASC,EAAO,EAAG,EAAG,CAAC,EAEvBD,CACT,CAEA,mBAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,GAAG,CAC/C,CC/BO,MAAM+T,WAAwB7D,EAAO,CAC1C,SAAW,GAEX,MAAMC,EAAYxK,EAAO0D,EAAO,CAC9B,OAAQ1D,EAAK,CACX,IAAK,IACH,OAAOgL,GAAoBL,GAAgB,QAASH,CAAU,EAChE,IAAK,KACH,OAAO9G,EAAM,cAAc8G,EAAY,CAAE,KAAM,MAAM,CAAE,EACzD,QACE,OAAOW,GAAanL,EAAM,OAAQwK,CAAU,CACpD,CACE,CAEA,SAAS3P,EAAOP,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,IAAID,EAAMgS,EAAQ/R,EAAO,CACvB,OAAAD,EAAK,SAASC,EAAO,EAAG,EAAG,CAAC,EACrBD,CACT,CAEA,mBAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CACzD,CCxBO,MAAMgU,WAAwB9D,EAAO,CAC1C,SAAW,GAEX,MAAMC,EAAYxK,EAAO0D,EAAO,CAC9B,OAAQ1D,EAAK,CACX,IAAK,IACH,OAAOgL,GAAoBL,GAAgB,QAASH,CAAU,EAChE,IAAK,KACH,OAAO9G,EAAM,cAAc8G,EAAY,CAAE,KAAM,MAAM,CAAE,EACzD,QACE,OAAOW,GAAanL,EAAM,OAAQwK,CAAU,CACpD,CACE,CAEA,SAAS3P,EAAOP,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,IAAID,EAAMgS,EAAQ/R,EAAO,CAEvB,OADaD,EAAK,SAAQ,GAAM,IACpBC,EAAQ,GAClBD,EAAK,SAASC,EAAQ,GAAI,EAAG,EAAG,CAAC,EAEjCD,EAAK,SAASC,EAAO,EAAG,EAAG,CAAC,EAEvBD,CACT,CAEA,mBAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,GAAG,CAC/C,CC7BO,MAAMiU,WAAwB/D,EAAO,CAC1C,SAAW,GAEX,MAAMC,EAAYxK,EAAO0D,EAAO,CAC9B,OAAQ1D,EAAK,CACX,IAAK,IACH,OAAOgL,GAAoBL,GAAgB,QAASH,CAAU,EAChE,IAAK,KACH,OAAO9G,EAAM,cAAc8G,EAAY,CAAE,KAAM,MAAM,CAAE,EACzD,QACE,OAAOW,GAAanL,EAAM,OAAQwK,CAAU,CACpD,CACE,CAEA,SAAS3P,EAAOP,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,IAAID,EAAMgS,EAAQ/R,EAAO,CACvB,MAAMkB,EAAQlB,GAAS,GAAKA,EAAQ,GAAKA,EACzC,OAAAD,EAAK,SAASmB,EAAO,EAAG,EAAG,CAAC,EACrBnB,CACT,CAEA,mBAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CACzD,CCzBO,MAAMkU,WAAqBhE,EAAO,CACvC,SAAW,GAEX,MAAMC,EAAYxK,EAAO0D,EAAO,CAC9B,OAAQ1D,EAAK,CACX,IAAK,IACH,OAAOgL,GAAoBL,GAAgB,OAAQH,CAAU,EAC/D,IAAK,KACH,OAAO9G,EAAM,cAAc8G,EAAY,CAAE,KAAM,QAAQ,CAAE,EAC3D,QACE,OAAOW,GAAanL,EAAM,OAAQwK,CAAU,CACpD,CACE,CAEA,SAAS3P,EAAOP,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,IAAID,EAAMgS,EAAQ/R,EAAO,CACvB,OAAAD,EAAK,WAAWC,EAAO,EAAG,CAAC,EACpBD,CACT,CAEA,mBAAqB,CAAC,IAAK,GAAG,CAChC,CCxBO,MAAMmU,WAAqBjE,EAAO,CACvC,SAAW,GAEX,MAAMC,EAAYxK,EAAO0D,EAAO,CAC9B,OAAQ1D,EAAK,CACX,IAAK,IACH,OAAOgL,GAAoBL,GAAgB,OAAQH,CAAU,EAC/D,IAAK,KACH,OAAO9G,EAAM,cAAc8G,EAAY,CAAE,KAAM,QAAQ,CAAE,EAC3D,QACE,OAAOW,GAAanL,EAAM,OAAQwK,CAAU,CACpD,CACE,CAEA,SAAS3P,EAAOP,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,IAAID,EAAMgS,EAAQ/R,EAAO,CACvB,OAAAD,EAAK,WAAWC,EAAO,CAAC,EACjBD,CACT,CAEA,mBAAqB,CAAC,IAAK,GAAG,CAChC,CCzBO,MAAMoU,WAA+BlE,EAAO,CACjD,SAAW,GAEX,MAAMC,EAAYxK,EAAO,CACvB,MAAMiM,EAAiB3R,GACrB,KAAK,MAAMA,EAAQ,KAAK,IAAI,GAAI,CAAC0F,EAAM,OAAS,CAAC,CAAC,EACpD,OAAO6K,GAASM,GAAanL,EAAM,OAAQwK,CAAU,EAAGyB,CAAa,CACvE,CAEA,IAAI5R,EAAMgS,EAAQ/R,EAAO,CACvB,OAAAD,EAAK,gBAAgBC,CAAK,EACnBD,CACT,CAEA,mBAAqB,CAAC,IAAK,GAAG,CAChC,CCXO,MAAMqU,WAA+BnE,EAAO,CACjD,SAAW,GAEX,MAAMC,EAAYxK,EAAO,CACvB,OAAQA,EAAK,CACX,IAAK,IACH,OAAOiL,GACLL,GAAiB,qBACjBJ,CACV,EACM,IAAK,KACH,OAAOS,GAAqBL,GAAiB,MAAOJ,CAAU,EAChE,IAAK,OACH,OAAOS,GACLL,GAAiB,qBACjBJ,CACV,EACM,IAAK,QACH,OAAOS,GACLL,GAAiB,wBACjBJ,CACV,EAEM,QACE,OAAOS,GAAqBL,GAAiB,SAAUJ,CAAU,CACzE,CACE,CAEA,IAAInQ,EAAM+P,EAAO9P,EAAO,CACtB,OAAI8P,EAAM,eAAuB/P,EAC1BD,GACLC,EACAA,EAAK,QAAO,EAAKyC,GAAgCzC,CAAI,EAAIC,CAC/D,CACE,CAEA,mBAAqB,CAAC,IAAK,IAAK,GAAG,CACrC,CCrCO,MAAMqU,WAA0BpE,EAAO,CAC5C,SAAW,GAEX,MAAMC,EAAYxK,EAAO,CACvB,OAAQA,EAAK,CACX,IAAK,IACH,OAAOiL,GACLL,GAAiB,qBACjBJ,CACV,EACM,IAAK,KACH,OAAOS,GAAqBL,GAAiB,MAAOJ,CAAU,EAChE,IAAK,OACH,OAAOS,GACLL,GAAiB,qBACjBJ,CACV,EACM,IAAK,QACH,OAAOS,GACLL,GAAiB,wBACjBJ,CACV,EAEM,QACE,OAAOS,GAAqBL,GAAiB,SAAUJ,CAAU,CACzE,CACE,CAEA,IAAInQ,EAAM+P,EAAO9P,EAAO,CACtB,OAAI8P,EAAM,eAAuB/P,EAC1BD,GACLC,EACAA,EAAK,QAAO,EAAKyC,GAAgCzC,CAAI,EAAIC,CAC/D,CACE,CAEA,mBAAqB,CAAC,IAAK,IAAK,GAAG,CACrC,CCxCO,MAAMsU,WAA+BrE,EAAO,CACjD,SAAW,GAEX,MAAMC,EAAY,CAChB,OAAOU,GAAqBV,CAAU,CACxC,CAEA,IAAInQ,EAAMgS,EAAQ/R,EAAO,CACvB,MAAO,CAACF,GAAcC,EAAMC,EAAQ,GAAI,EAAG,CAAE,eAAgB,GAAM,CACrE,CAEA,mBAAqB,GACvB,CCZO,MAAMuU,WAAoCtE,EAAO,CACtD,SAAW,GAEX,MAAMC,EAAY,CAChB,OAAOU,GAAqBV,CAAU,CACxC,CAEA,IAAInQ,EAAMgS,EAAQ/R,EAAO,CACvB,MAAO,CAACF,GAAcC,EAAMC,CAAK,EAAG,CAAE,eAAgB,GAAM,CAC9D,CAEA,mBAAqB,GACvB,CC0DO,MAAMwU,GAAU,CACrB,EAAG,IAAIpE,GACP,EAAG,IAAIsB,GACP,EAAG,IAAIG,GACP,EAAG,IAAIC,GACP,EAAG,IAAIG,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,GACP,EAAG,IAAIE,GACP,EAAG,IAAIE,GACP,EAAG,IAAIG,GACP,EAAG,IAAIE,GACP,EAAG,IAAIK,GACP,EAAG,IAAIC,GACP,EAAG,IAAIE,GACP,EAAG,IAAIE,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,GACP,EAAG,IAAIE,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,EACT,EC1EMvH,GACJ,wDAIIC,GAA6B,oCAE7BC,GAAsB,eACtBC,GAAoB,MAEpBsH,GAAsB,KACtBrH,GAAgC,WA4S/B,SAASsH,GAAMC,EAAStH,EAAWuH,EAAetU,EAAS,CAChE,MAAMuU,EAAc,IAAM/U,GAAcQ,GAAS,IAAMsU,EAAe,GAAG,EACnEjT,EAAiBC,GAAiB,EAClC0L,EAAShN,GAAS,QAAUqB,EAAe,QAAU4L,GAErD9D,EACJnJ,GAAS,uBACTA,GAAS,QAAQ,SAAS,uBAC1BqB,EAAe,uBACfA,EAAe,QAAQ,SAAS,uBAChC,EAEIG,EACJxB,GAAS,cACTA,GAAS,QAAQ,SAAS,cAC1BqB,EAAe,cACfA,EAAe,QAAQ,SAAS,cAChC,EAEF,GAAI,CAAC0L,EACH,OAAOsH,EAAUE,EAAW,EAAK5U,GAAO2U,EAAetU,GAAS,EAAE,EAEpE,MAAMwU,EAAe,CACnB,sBAAArL,EACA,aAAA3H,EACA,OAAAwL,CACJ,EAIQyH,EAAU,CAAC,IAAIhF,GAAmBzP,GAAS,GAAIsU,CAAa,CAAC,EAE7DI,EAAS3H,EACZ,MAAMJ,EAA0B,EAChC,IAAKS,GAAc,CAClB,MAAMC,EAAiBD,EAAU,CAAC,EAClC,GAAIC,KAAkBvB,GAAgB,CACpC,MAAMwB,EAAgBxB,GAAeuB,CAAc,EACnD,OAAOC,EAAcF,EAAWJ,EAAO,UAAU,CACnD,CACA,OAAOI,CACT,CAAC,EACA,KAAK,EAAE,EACP,MAAMV,EAAsB,EAEzBiI,EAAa,CAAA,EAEnB,QAASvP,KAASsP,EAAQ,CAEtB,CAAC1U,GAAS,6BACVmM,GAAyB/G,CAAK,GAE9BgH,GAA0BhH,EAAO2H,EAAWsH,CAAO,EAGnD,CAACrU,GAAS,8BACVkM,GAA0B9G,CAAK,GAE/BgH,GAA0BhH,EAAO2H,EAAWsH,CAAO,EAGrD,MAAMhH,EAAiBjI,EAAM,CAAC,EACxBwP,EAASV,GAAQ7G,CAAc,EACrC,GAAIuH,EAAQ,CACV,KAAM,CAAE,mBAAAC,CAAkB,EAAKD,EAC/B,GAAI,MAAM,QAAQC,CAAkB,EAAG,CACrC,MAAMC,EAAoBH,EAAW,KAClCI,GACCF,EAAmB,SAASE,EAAU,KAAK,GAC3CA,EAAU,QAAU1H,CAChC,EACQ,GAAIyH,EACF,MAAM,IAAI,WACR,uCAAuCA,EAAkB,SAAS,YAAY1P,CAAK,qBAC/F,CAEM,SAAWwP,EAAO,qBAAuB,KAAOD,EAAW,OAAS,EAClE,MAAM,IAAI,WACR,uCAAuCvP,CAAK,yCACtD,EAGMuP,EAAW,KAAK,CAAE,MAAOtH,EAAgB,UAAWjI,EAAO,EAE3D,MAAM6C,EAAc2M,EAAO,IACzBP,EACAjP,EACA4H,EAAO,MACPwH,CACR,EAEM,GAAI,CAACvM,EACH,OAAOsM,EAAW,EAGpBE,EAAQ,KAAKxM,EAAY,MAAM,EAE/BoM,EAAUpM,EAAY,IACxB,KAAO,CACL,GAAIoF,EAAe,MAAMP,EAA6B,EACpD,MAAM,IAAI,WACR,iEACEO,EACA,GACZ,EAWM,GAPIjI,IAAU,KACZA,EAAQ,IACCiI,IAAmB,MAC5BjI,EAAQmI,GAAmBnI,CAAK,GAI9BiP,EAAQ,QAAQjP,CAAK,IAAM,EAC7BiP,EAAUA,EAAQ,MAAMjP,EAAM,MAAM,MAEpC,QAAOmP,EAAW,CAEtB,CACF,CAGA,GAAIF,EAAQ,OAAS,GAAKF,GAAoB,KAAKE,CAAO,EACxD,OAAOE,EAAW,EAGpB,MAAMS,EAAwBP,EAC3B,IAAKQ,GAAWA,EAAO,QAAQ,EAC/B,KAAK,CAACC,EAAGC,IAAMA,EAAID,CAAC,EACpB,OAAO,CAAC5F,EAAUjJ,EAAO0B,IAAUA,EAAM,QAAQuH,CAAQ,IAAMjJ,CAAK,EACpE,IAAKiJ,GACJmF,EACG,OAAQQ,GAAWA,EAAO,WAAa3F,CAAQ,EAC/C,KAAK,CAAC4F,EAAGC,IAAMA,EAAE,YAAcD,EAAE,WAAW,CACrD,EACK,IAAKE,GAAgBA,EAAY,CAAC,CAAC,EAEtC,IAAI3V,EAAOE,GAAO2U,EAAetU,GAAS,EAAE,EAE5C,GAAI,MAAM,CAACP,CAAI,EAAG,OAAO8U,EAAW,EAEpC,MAAM/E,EAAQ,CAAA,EACd,UAAWyF,KAAUD,EAAuB,CAC1C,GAAI,CAACC,EAAO,SAASxV,EAAM+U,CAAY,EACrC,OAAOD,EAAW,EAGpB,MAAMxQ,EAASkR,EAAO,IAAIxV,EAAM+P,EAAOgF,CAAY,EAE/C,MAAM,QAAQzQ,CAAM,GACtBtE,EAAOsE,EAAO,CAAC,EACf,OAAO,OAAOyL,EAAOzL,EAAO,CAAC,CAAC,GAG9BtE,EAAOsE,CAEX,CAEA,OAAOtE,CACT,CAEA,SAAS8N,GAAmBjB,EAAO,CACjC,OAAOA,EAAM,MAAMM,EAAmB,EAAE,CAAC,EAAE,QAAQC,GAAmB,GAAG,CAC3E,CC9dO,SAASwI,GAAc5S,EAAWC,EAAa1C,EAAS,CAC7D,KAAM,CAACsV,EAAWC,CAAU,EAAInT,GAC9BpC,GAAS,GACTyC,EACAC,CACJ,EACE,MAAO,CAAC8B,GAAe8Q,CAAS,GAAM,CAAC9Q,GAAe+Q,CAAU,CAClE,CCbO,SAASC,GAAQ/V,EAAMM,EAAQC,EAAS,CAC7C,OAAOF,GAAQL,EAAM,CAACM,EAAQC,CAAO,CACvC,CCGO,SAASyV,GAAShW,EAAMiF,EAAO1E,EAAS,CAC7C,MAAMC,EAAQN,GAAOF,EAAMO,GAAS,EAAE,EAChC6B,EAAO5B,EAAM,YAAW,EACxBwB,EAAMxB,EAAM,QAAO,EAEnByV,EAAWlW,GAA6BC,EAAM,CAAC,EACrDiW,EAAS,YAAY7T,EAAM6C,EAAO,EAAE,EACpCgR,EAAS,SAAS,EAAG,EAAG,EAAG,CAAC,EAC5B,MAAMrV,EAAcwN,GAAe6H,CAAQ,EAG3C,OAAAzV,EAAM,SAASyE,EAAO,KAAK,IAAIjD,EAAKpB,CAAW,CAAC,EACzCJ,CACT,CCDO,SAAS0V,GAAIlW,EAAMmW,EAAQ5V,EAAS,CACzC,IAAIC,EAAQN,GAAOF,EAAMO,GAAS,EAAE,EAGpC,OAAI,MAAM,CAACC,CAAK,EAAUT,GAA6BC,EAAM,GAAG,GAE5DmW,EAAO,MAAQ,MAAM3V,EAAM,YAAY2V,EAAO,IAAI,EAClDA,EAAO,OAAS,OAAM3V,EAAQwV,GAASxV,EAAO2V,EAAO,KAAK,GAC1DA,EAAO,MAAQ,MAAM3V,EAAM,QAAQ2V,EAAO,IAAI,EAC9CA,EAAO,OAAS,MAAM3V,EAAM,SAAS2V,EAAO,KAAK,EACjDA,EAAO,SAAW,MAAM3V,EAAM,WAAW2V,EAAO,OAAO,EACvDA,EAAO,SAAW,MAAM3V,EAAM,WAAW2V,EAAO,OAAO,EACvDA,EAAO,cAAgB,MAAM3V,EAAM,gBAAgB2V,EAAO,YAAY,EAEnE3V,EACT,CC7BO,SAAS4V,GAASpW,EAAMmB,EAAOZ,EAAS,CAC7C,MAAMC,EAAQN,GAAOF,EAAMO,GAAS,EAAE,EACtC,OAAAC,EAAM,SAASW,CAAK,EACbX,CACT,CCJO,SAAS6V,GAAgBrW,EAAMuK,EAAchK,EAAS,CAC3D,MAAMC,EAAQN,GAAOF,EAAMO,GAAS,EAAE,EACtC,OAAAC,EAAM,gBAAgB+J,CAAY,EAC3B/J,CACT,CCJO,SAAS8V,GAAWtW,EAAMoB,EAASb,EAAS,CACjD,MAAM+E,EAAQpF,GAAOF,EAAMO,GAAS,EAAE,EACtC,OAAA+E,EAAM,WAAWlE,CAAO,EACjBkE,CACT,CCJO,SAASiR,GAAWvW,EAAMqB,EAASd,EAAS,CACjD,MAAMC,EAAQN,GAAOF,EAAMO,GAAS,EAAE,EACtC,OAAAC,EAAM,WAAWa,CAAO,EACjBb,CACT,CCHO,SAASgW,GAAQxW,EAAMoC,EAAM7B,EAAS,CAC3C,MAAM+E,EAAQpF,GAAOF,EAAMO,GAAS,EAAE,EAGtC,OAAI,MAAM,CAAC+E,CAAK,EAAUvF,GAA6BC,EAAM,GAAG,GAEhEsF,EAAM,YAAYlD,CAAI,EACfkD,EACT,CCTO,SAASmR,GAAUzW,EAAMM,EAAQC,EAAS,CAC/C,OAAOE,GAAUT,EAAM,CAACM,EAAQC,CAAO,CACzC,CCoBO,SAASmW,GAAI1W,EAAMc,EAAUP,EAAS,CAC3C,KAAM,CACJ,MAAAQ,EAAQ,EACR,OAAAC,EAAS,EACT,MAAAC,EAAQ,EACR,KAAAC,EAAO,EACP,MAAAC,EAAQ,EACR,QAAAC,EAAU,EACV,QAAAC,EAAU,CACd,EAAMP,EAEE6V,EAAgBF,GAAUzW,EAAMgB,EAASD,EAAQ,GAAIR,CAAO,EAC5DqW,EAAcb,GAAQY,EAAezV,EAAOD,EAAQ,EAAGV,CAAO,EAE9DsW,EAAezV,EAAUD,EAAQ,GAEjC2V,GADezV,EAAUwV,EAAe,IACf,IAE/B,OAAO9W,GAA6BC,EAAM,CAAC4W,EAAcE,CAAO,CAClE,CCzCO,SAASC,GAAS/W,EAAMM,EAAQC,EAAS,CAC9C,OAAOoD,GAAS3D,EAAM,CAACM,EAAQC,CAAO,CACxC,CC5BA,SAASyW,IAAK,CACZ,MAAM,EAAIC,GAAE,EACZ,OAAOC,EAAC,EAAIC,EACV,MACA,CACE,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,OACf,MAAO,WACP,KAAM,MACN,GAAG,CACT,EACI,CACEC,GAAG,OAAQ,CACT,EAAG,8UACX,CAAO,EACDA,GAAG,OAAQ,CACT,EAAG,0IACX,CAAO,EACDA,GAAG,OAAQ,CACT,EAAG,6IACX,CAAO,EACDA,GAAG,OAAQ,CACT,EAAG,qIACX,CAAO,CACP,CACA,CACA,CACAJ,GAAG,aAAe,CAChB,KAAM,CACR,EACA,SAASK,IAAK,CACZ,OAAOH,EAAC,EAAIC,EACV,MACA,CACE,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,OACf,MAAO,WACP,KAAM,KACZ,EACI,CACEC,GAAG,OAAQ,CACT,EAAG,+HACX,CAAO,EACDA,GAAG,OAAQ,CACT,EAAG,8HACX,CAAO,CACP,CACA,CACA,CACAC,GAAG,aAAe,CAChB,KAAM,CACR,EACA,SAASC,IAAK,CACZ,OAAOJ,EAAC,EAAIC,EACV,MACA,CACE,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,OACf,MAAO,WACP,KAAM,KACZ,EACI,CACEC,GAAG,OAAQ,CACT,EAAG,qMACX,CAAO,CACP,CACA,CACA,CACAE,GAAG,aAAe,CAChB,KAAM,CACR,EACA,SAASC,IAAK,CACZ,OAAOL,EAAC,EAAIC,EACV,MACA,CACE,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,OACf,MAAO,WACP,KAAM,KACZ,EACI,CACEC,GAAG,OAAQ,CACT,EAAG,oMACX,CAAO,CACP,CACA,CACA,CACAG,GAAG,aAAe,CAChB,KAAM,CACR,EACA,SAASC,IAAK,CACZ,OAAON,EAAC,EAAIC,EACV,MACA,CACE,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,OACf,MAAO,WACP,KAAM,KACZ,EACI,CACEC,GAAG,OAAQ,CACT,EAAG,8NACX,CAAO,EACDA,GAAG,OAAQ,CACT,EAAG,8MACX,CAAO,CACP,CACA,CACA,CACAI,GAAG,aAAe,CAChB,KAAM,CACR,EACA,SAASC,IAAK,CACZ,OAAOP,EAAC,EAAIC,EACV,MACA,CACE,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,OACf,MAAO,WACP,KAAM,KACZ,EACI,CACEC,GAAG,OAAQ,CACT,EAAG,qMACX,CAAO,CACP,CACA,CACA,CACAK,GAAG,aAAe,CAChB,KAAM,CACR,EACA,SAASC,IAAK,CACZ,OAAOR,EAAC,EAAIC,EACV,MACA,CACE,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,OACf,MAAO,WACP,KAAM,KACZ,EACI,CACEC,GAAG,OAAQ,CACT,EAAG,mMACX,CAAO,CACP,CACA,CACA,CACAM,GAAG,aAAe,CAChB,KAAM,CACR,EACA,MAAMC,GAAK,CAAC,EAAG,IAAM,EAAI,IAAI,KAAK,EAAE,eAAe,QAAS,CAAE,SAAU,EAAG,CAAC,EAAI,IAAI,KAAK,CAAC,EAAGC,GAAK,CAAC,EAAG,EAAGC,IAC7FC,GAAG,EAAG,EAAGD,CAAC,GACRE,EAAC,EACZC,GAAK,CAAC,EAAG,EAAGH,IAAM,CACnB,MAAM9G,EAAI,EAAE,SAAW4G,GAAG,IAAI,KAAK,CAAC,EAAG,EAAE,QAAQ,EAAII,EAAE,CAAC,EACxD,OAAOF,EAAII,GAAGlH,EAAG,EAAE,EAAIA,CACzB,EAAG+G,GAAK,CAAC,EAAG,EAAGD,IAAM,CACnB,GAAI,CAAC,EAAG,OAAO,KACf,MAAM9G,EAAI8G,EAAII,GAAGF,EAAE,CAAC,EAAG,EAAE,EAAIA,EAAE,CAAC,EAChC,OAAO,EAAI,EAAE,WAAaC,GAAG,EAAG,EAAGH,CAAC,EAAIF,GAAG5G,EAAG,EAAE,QAAQ,EAAIA,CAC9D,EAAGmH,GAAM,GAAM,CACb,MAAML,EAAI,IAAI,KAAK,EAAE,YAAW,EAAI,EAAG,CAAC,EAAE,kBAAiB,EAC3D,OAAO,EAAE,kBAAiB,EAAKA,CACjC,EAAGM,GAAK,CAAC,EAAG,IAAM,CAChB,GAAI,CAAC,EAAG,SACR,MAAMN,EAAoB,IAAI,KAAQ9G,EAAI,IAAI,KAAK8G,EAAE,eAAe,QAAS,CAAE,SAAU,KAAK,CAAE,CAAC,EAAGpC,EAAI,IAAI,KAAKoC,EAAE,eAAe,QAAS,CAAE,SAAU,CAAC,CAAE,CAAC,EAAGO,GAAKF,GAAG,GAAKzC,CAAC,EAAIA,EAAI,GAAKA,GAAG,kBAAiB,EAAK,GAClN,OAAQ,CAAC1E,EAAI,CAAC0E,IAAM,IAAM,GAAK,IAAM2C,CACvC,EACA,IAAIC,IAAuB,IAAO,EAAE,MAAQ,QAAS,EAAE,KAAO,OAAQ,IAAIA,IAAM,CAAA,CAAE,EAAGC,IAAuB,IAAO,EAAE,IAAM,MAAO,EAAE,OAAS,SAAU,IAAIA,IAAM,CAAA,CAAE,EAAGC,IAAuB,IAAO,EAAE,OAAS,SAAU,EAAE,SAAW,WAAY,EAAE,WAAa,aAAc,IAAIA,IAAM,CAAA,CAAE,EAAGC,IAAuB,IAAO,EAAE,MAAQ,QAAS,EAAE,KAAO,OAAQ,EAAE,SAAW,WAAY,EAAE,KAAO,OAAQ,EAAE,QAAU,UAAW,EAAE,MAAQ,QAAS,EAAE,QAAU,UAAW,IAAIA,IAAM,EAAE,EACvd,MAAMC,GAAK,CAAC,YAAa,OAAQ,KAAK,EACtC,IAAIC,IAAuB,IAAO,EAAE,GAAK,KAAM,EAAE,KAAO,OAAQ,EAAE,KAAO,OAAQ,EAAE,MAAQ,QAAS,IAAIA,IAAM,CAAA,CAAE,EAAGC,IAAuB,IAAO,EAAE,QAAU,UAAW,EAAE,UAAY,YAAa,EAAE,UAAY,YAAa,EAAE,WAAa,aAAc,EAAE,MAAQ,QAAS,EAAE,MAAQ,IAAK,EAAE,IAAM,SAAU,EAAE,IAAM,MAAO,EAAE,KAAO,OAAQ,EAAE,IAAM,MAAO,EAAE,OAAS,SAAU,EAAE,SAAW,WAAY,IAAIA,IAAM,CAAA,CAAE,EAAGC,IAAuB,IAAO,EAAE,eAAiB,UAAW,EAAE,KAAO,OAAQ,EAAE,KAAO,aAAc,IAAIA,IAAM,EAAE,EAC3gB,SAASC,GAAG,EAAG,CACb,OAAQ,GAAM,CACZ,MAAMhB,EAAI,IAAI,KAAK,eAAe,EAAG,CACnC,QAAS,QACT,SAAU,KAChB,CAAK,EAAE,OAAuB,IAAI,KAAK,YAAY,CAAC,iBAAiB,CAAC,EAClE,OAAO,IAAM,KAAOA,EAAE,MAAM,EAAG,CAAC,EAAIA,EAAE,MAAM,EAAG,CAAC,CAClD,CACF,CACA,SAASiB,GAAG,EAAG,CACb,OAAQ,GAAMC,GAAGpB,GAAmB,IAAI,KAAK,YAAY,CAAC,iBAAiB,EAAG,KAAK,EAAG,SAAU,CAAE,OAAQ,EAAG,CAC/G,CACA,MAAMqB,GAAK,CAAC,EAAG,EAAGnB,IAAM,CACtB,MAAM9G,EAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAC9B,IAAI0E,EACJ,GAAI,IAAM,KACR,GAAI,CACFA,EAAI1E,EAAE,IAAI+H,GAAG,CAAC,CAAC,CACjB,MAAQ,CACNrD,EAAI1E,EAAE,IAAI8H,GAAG,CAAC,CAAC,CACjB,MAEApD,EAAI1E,EAAE,IAAI8H,GAAG,CAAC,CAAC,EACjB,MAAMI,EAAIxD,EAAE,MAAM,EAAGoC,CAAC,EAAGO,EAAI3C,EAAE,MAAMoC,EAAI,EAAGpC,EAAE,MAAM,EACpD,MAAO,CAACA,EAAEoC,CAAC,CAAC,EAAE,OAAO,GAAGO,CAAC,EAAE,OAAO,GAAGa,CAAC,CACxC,EAAGC,GAAK,CAAC,EAAG,EAAGrB,IAAM,CACnB,MAAM9G,EAAI,CAAA,EACV,QAAS0E,EAAI,CAAC,EAAE,CAAC,EAAGA,GAAK,CAAC,EAAE,CAAC,EAAGA,IAC9B1E,EAAE,KAAK,CAAE,MAAO,CAAC0E,EAAG,KAAM0D,GAAG1D,EAAG,CAAC,EAAG,EACtC,OAAOoC,EAAI9G,EAAE,QAAO,EAAKA,CAC3B,EAAGqI,GAAK,CAAC,EAAG,EAAGvB,IAAM,CACnB,MAAM9G,EAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAE,EAAE,IAAKkI,GAAM,CAC3D,MAAMb,EAAIa,EAAI,GAAK,IAAIA,CAAC,GAAKA,EAC7B,OAAuB,IAAI,KAAK,QAAQb,CAAC,oBAAoB,CAC/D,CAAC,EACD,GAAI,IAAM,KACR,GAAI,CACF,MAAMa,EAAIpB,IAAM,OAAS,OAAS,MAClC,OAAO9G,EAAE,IAAI,CAACqH,EAAGiB,IAAM,CACrB,MAAMC,EAAIP,GAAGpB,GAAGS,EAAG,KAAK,EAAGa,EAAG,CAAE,OAAQ,EAAG,EAC3C,MAAO,CACL,KAAMK,EAAE,OAAO,CAAC,EAAE,cAAgBA,EAAE,UAAU,CAAC,EAC/C,MAAOD,CACjB,CACM,CAAC,CACH,MAAQ,CACR,CACF,MAAM5D,EAAI,IAAI,KAAK,eAAe,EAAG,CAAE,MAAOoC,EAAG,SAAU,MAAO,EAClE,OAAO9G,EAAE,IAAI,CAACkI,EAAGb,IAAM,CACrB,MAAMiB,EAAI5D,EAAE,OAAOwD,CAAC,EACpB,MAAO,CACL,KAAMI,EAAE,OAAO,CAAC,EAAE,cAAgBA,EAAE,UAAU,CAAC,EAC/C,MAAOjB,CACb,CACE,CAAC,CACH,EAAGmB,GAAM,GAAM,CAAC,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAE,EAAE,CAAC,EAAGC,GAAM,GAAM,CAC5G,MAAM,EAAIC,EAAE,CAAC,EACb,OAAO,GAAG,IAAM,GAAG,IAAM,CAC3B,EAAGC,GAAM,IAAO,CAAE,KAAM,MAAO,GAAG,GAAK,CAAA,CAAE,GAAKC,GAAM,GAAM,MAAM,QAAQ,CAAC,EAAI,CAAC,CAAC,EAAE,CAAC,GAAK,CAAC,CAAC,EAAE,CAAC,EAAI,GAAIC,GAAK,CACvG,KAAO,GAAM,IAAI,CAAC,0BAClB,QAAU,GAAM,uEAAuE,CAAC,GAC1F,EAAGC,GAAM,GAAM,EAAGC,GAAM,GAAM,IAAM,EAAI,EAAI,CAAC,GAAK,MAAM,CAAC,CAAC,EAAI,KAAO,CAAC,EAAGC,GAAM,GAAM,IAAM,KAAMC,GAAM,GAAM,CAC3G,GAAI,EACF,MAAO,CAAC,GAAG,EAAE,iBAAiB,0CAA0C,CAAC,EAAE,CAAC,CAChF,EAAGC,GAAM,GAAM,CACb,MAAM,EAAI,GAAIpC,EAAK9G,GAAMA,EAAE,OAAQ0E,GAAMA,CAAC,EAC1C,QAAS1E,EAAI,EAAGA,EAAI,EAAE,OAAQA,GAAK,EAAG,CACpC,MAAM0E,EAAI,CAAC,EAAE1E,CAAC,EAAG,EAAEA,EAAI,CAAC,EAAG,EAAEA,EAAI,CAAC,CAAC,EACnC,EAAE,KAAK8G,EAAEpC,CAAC,CAAC,CACb,CACA,OAAO,CACT,EAAGyE,GAAK,CAAC,EAAG,EAAGrC,IAAM,CACnB,MAAM9G,EAAI8G,GAAK,KAAMpC,EAAI,GAAK,KAC9B,GAAI,CAAC1E,GAAK,CAAC0E,EAAG,MAAO,GACrB,MAAMwD,EAAI,CAACpB,EAAGO,EAAI,CAAC,EACnB,OAAOrH,GAAK0E,EAAI,CAAC,EAAIwD,GAAK,CAAC,EAAIb,EAAIrH,EAAI,CAAC,EAAIkI,EAAIxD,EAAI,CAAC,EAAI2C,EAAI,EAC/D,EAAG+B,GAAK,CAAC,EAAG,IAAMF,GAAG,CAAC,EAAE,IAAKpC,GAAMA,EAAE,IAAK9G,GAAM,CAC9C,KAAM,CAAE,OAAQ0E,EAAG,SAAUwD,EAAG,UAAWb,EAAG,YAAaiB,GAAM,EAAEtI,CAAC,EACpE,MAAO,CACL,GAAGA,EACH,OAAQ0E,EACR,SAAUwD,EACV,UAAW,CACT,wBAAyBxD,EACzB,iBAAkB,CAACA,EACnB,0BAA2BwD,EAC3B,qBAAsB,GACtB,iCAAkCA,GAAKxD,EACvC,oBAAqB2C,EACrB,kBAAmBiB,CACzB,CACA,CACA,CAAC,CAAC,EAAGe,GAAK,CAAC,EAAG,EAAGvC,EAAI,KAAO,CAC1B,GAAK,EAAE,uBAAyBA,GAAK,EAAE,yBAAwB,EAAI,EAAE,kBACvE,EAAGwC,GAAK,IAAM,CACZ,UACA,aACA,6CACA,yBACA,2BACA,yBACA,kCACA,4BACF,EAAE,KAAK,IAAI,EACX,SAASC,GAAG,EAAG,EAAG,CAChB,IAAIzC,EAAI,CAAC,GAAG,SAAS,iBAAiBwC,GAAE,CAAE,CAAC,EAC3CxC,EAAIA,EAAE,OAAQpC,GAAM,CAAC,EAAE,SAASA,CAAC,GAAKA,EAAE,aAAa,0BAA0B,CAAC,EAChF,MAAM1E,EAAI8G,EAAE,QAAQ,CAAC,EACrB,GAAI9G,GAAK,IAAM,EAAIA,EAAI,GAAK,EAAIA,EAAI,GAAK8G,EAAE,QACzC,OAAOA,EAAE9G,GAAK,EAAI,GAAK,EAAE,CAC7B,CACA,MAAMwJ,GAAK,CAAC,EAAG,IAAM,GAAG,cAAc,qBAAqB,CAAC,IAAI,EAAGpB,GAAK,CAAC,EAAG,IAAM,IAAI,KAAK,aAAa,EAAG,CAAE,YAAa,GAAI,MAAO,UAAW,EAAE,OAAO,CAAC,EAAGqB,GAAK,CAAC,EAAG,IAAMzB,GAAG,EAAG,GAAKH,GAAG,IAAI,EAAG6B,GAAM,GAAM,MAAM,QAAQ,CAAC,EAAGC,GAAK,CAAC,EAAG,EAAG7C,IAAM,EAAE,IAAI2C,GAAG,EAAG3C,CAAC,CAAC,EAAG8C,GAAK,CAAC,EAAG,IAAM,EAAI,EAAI,aAAa,IAAM,CAAC,CAACD,GAAG,EAAG,CAAC,EAAI,EAAE3C,EAAE,CAAC,CAAC,EAAI,GAAK,GAAI6C,GAAK,CAAC,EAAG,EAAG/C,EAAI,GAAI9G,IAAM,CACpW,GAAI,EAAE,MAAQ4H,GAAG,OAAS,EAAE,MAAQA,GAAG,MACrC,OAAOd,GAAK,EAAE,eAAc,EAAI,EAAC,EACnC,GAAI9G,EAAG,OAAOA,EAAE,CAAC,CACnB,EAAG8J,GAAK,IAAM,iBAAkB,QAAU,UAAU,eAAiB,EAAGC,GAAK,CAAC,EAAG,IAAM,EAAIlC,GAAG,eAAiB,EAAIA,GAAG,KAAOA,GAAG,KAAMmC,GAAM,GAAM,EAAI,GAAK,IAAI,CAAC,GAAK,EAAGC,GAAK,CAAC,EAAG,EAAGnD,EAAG9G,EAAG0E,EAAGwD,IAAM,CACjM,MAAMb,EAAI6C,GAAG,EAAG,EAAE,MAAM,EAAG,EAAE,MAAM,EAAmB,IAAI,KAAQ,CAAE,OAAQhC,CAAC,CAAE,EAC/E,OAAOiC,GAAG9C,CAAC,GAAK+C,GAAG/C,CAAC,EAAIrH,GAAK0E,EAAI2C,EAAIgD,GAAGhD,EAAG,CACzC,MAAO,CAACP,EAAE,MACV,QAAS,CAACA,GAAG,QACb,QAAS,CAACA,GAAG,QACb,aAAc,CAClB,CAAG,EAAI,IACP,EAAGwD,GAAK,CAAC,EAAG,EAAGxD,EAAG9G,EAAG0E,EAAGwD,IAAM,CAC5B,MAAMb,EAAI,MAAM,QAAQP,CAAC,EAAIA,EAAE,CAAC,EAAIA,EACpC,GAAI,OAAO,GAAK,SACd,OAAOmD,GAAG,EAAG,EAAG5C,EAAGrH,EAAG0E,EAAGwD,CAAC,EAC5B,GAAI,MAAM,QAAQ,CAAC,EAAG,CACpB,IAAII,EAAI,KACR,UAAWC,KAAK,EACd,GAAID,EAAI2B,GAAG,EAAG1B,EAAGlB,EAAGrH,EAAG0E,EAAGwD,CAAC,EAAGI,EAC5B,MACJ,OAAOA,CACT,CACA,OAAO,OAAO,GAAK,WAAa,EAAE,CAAC,EAAI,IACzC,EAAGtB,EAAK,GAAM,EAAI,IAAI,KAAK,CAAC,EAAoB,IAAI,KAAQuD,GAAK,CAAC,EAAG,EAAGzD,IAAM,CAC5E,GAAI,EAAG,CACL,MAAMpC,GAAK,EAAE,SAAQ,EAAK,GAAG,WAAW,SAAS,EAAG,GAAG,EAAGwD,EAAI,EAAE,QAAO,EAAG,SAAQ,EAAG,SAAS,EAAG,GAAG,EAAGb,EAAI,EAAE,SAAQ,EAAG,SAAQ,EAAG,SAAS,EAAG,GAAG,EAAGiB,EAAI,EAAE,aAAa,WAAW,SAAS,EAAG,GAAG,EAAGC,EAAIzB,EAAI,EAAE,WAAU,EAAG,SAAQ,EAAG,SAAS,EAAG,GAAG,EAAI,KAC1P,MAAO,GAAG,EAAE,YAAW,CAAE,IAAIpC,CAAC,IAAIwD,CAAC,IAAIb,CAAC,IAAIiB,CAAC,IAAIC,CAAC,OACpD,CACA,MAAMvI,EAAI,KAAK,IACb,EAAE,eAAc,EAChB,EAAE,YAAW,EACb,EAAE,WAAU,EACZ,EAAE,YAAW,EACb,EAAE,cAAa,EACf,EAAE,cAAa,CACnB,EACE,OAAO,IAAI,KAAKA,CAAC,EAAE,YAAW,CAChC,EAAGkH,GAAK,CAAC,EAAG,IAAM,CAChB,MAAMJ,EAAIE,EAAE,KAAK,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,EAAGhH,EAAIqK,GAAGvD,EAAG,CAAE,MAAO,EAAG,QAAS,EAAG,QAAS,EAAG,aAAc,EAAG,EAC3G,OAAO,EAAI0D,GAAGxK,CAAC,EAAIA,CACrB,EAAGyK,GAAK,CAAC,EAAG,EAAG3D,EAAG9G,IAAM,CACtB,IAAI0E,EAAI,EAAIsC,EAAE,CAAC,EAAIA,EAAC,EACpB,OAAQ,GAAK,IAAM,KAAOtC,EAAIgG,GAAGhG,EAAG,CAAC,CAAC,IAAKoC,GAAKA,IAAM,KAAOpC,EAAIiG,GAAGjG,EAAG,CAACoC,CAAC,IAAK9G,GAAKA,IAAM,KAAO0E,EAAIkG,GAAGlG,EAAG,CAAC1E,CAAC,GAAI6K,GAAGnG,EAAG,CAAC,CACzH,EAAGoG,GAAK,CAAC,EAAG,IAAM,CAAC,GAAK,CAAC,EAAI,GAAKC,GAAG7D,GAAG,CAAC,EAAGA,GAAG,CAAC,CAAC,EAAG8D,GAAK,CAAC,EAAG,IAAM,CAAC,GAAK,CAAC,EAAI,GAAKC,GAAG/D,GAAG,CAAC,EAAGA,GAAG,CAAC,CAAC,EAAGgE,GAAK,CAAC,EAAG,IAAM,CAAC,GAAK,CAAC,EAAI,GAAKC,GAAGjE,GAAG,CAAC,EAAGA,GAAG,CAAC,CAAC,EAAGkE,GAAK,CAAC,EAAG,EAAGtE,IAAM,IAAI,CAAC,GAAK,IAAI,CAAC,EAAIoE,GAAGpE,EAAG,EAAE,CAAC,CAAC,GAAKgE,GAAGhE,EAAG,EAAE,CAAC,CAAC,EAAI,IAAI,CAAC,GAAK,EAAIoE,GAAGpE,EAAG,EAAE,CAAC,CAAC,GAAKgE,GAAGhE,EAAG,CAAC,GAAKgE,GAAGhE,EAAG,EAAE,CAAC,CAAC,GAAKoE,GAAGpE,EAAG,CAAC,EAAI,GAAIuE,GAAM,GAAM,CACzS,MAAM,EAAIhB,GAAG,IAAI,KAAK,CAAC,EAAG,CAAE,KAAM,EAAG,EACrC,OAAOnD,GAAG,CAAC,CACb,EAAGoE,GAAK,CAAC,EAAG,EAAGxE,IAAM,IAAMA,GAAKA,IAAM,GAAK,OAAO,YAChD,CAAC,QAAS,UAAW,SAAS,EAAE,IAAK9G,GAAMA,IAAM,EAAI,CAACA,EAAG8G,CAAC,EAAI,CAAC9G,EAAG,MAAM,CAAC,EAAEA,CAAC,CAAC,EAAI,OAAS,CAAC,EAAEA,CAAC,CAAC,CAAC,CAClG,EAAI,CACF,MAAO,MAAM,CAAC,EAAE,KAAK,EAAI,OAAS,CAAC,EAAE,MACrC,QAAS,MAAM,CAAC,EAAE,OAAO,EAAI,OAAS,CAAC,EAAE,QACzC,QAAS,MAAM,CAAC,EAAE,OAAO,EAAI,OAAS,CAAC,EAAE,OAC3C,EAAGuL,GAAM,IAAO,CACd,MAAOC,GAAG,CAAC,EACX,QAASC,GAAG,CAAC,EACb,QAASC,GAAG,CAAC,CACf,GAAIC,GAAK,CAAC,EAAG,IAAM,CACjB,GAAI,EAAG,CACL,MAAM7E,EAAI8E,GAAG5E,EAAE,CAAC,CAAC,EACjB,GAAIF,EAAI,EAAG,MAAO,IAClB,GAAIA,IAAM,EAAG,OAAO+E,GAAG7E,EAAE,CAAC,CAAC,CAC7B,CACF,EAAG8E,GAAK,CAAC,EAAG,IAAM,CAChB,GAAI,EAAG,CACL,MAAMhF,EAAI8E,GAAG5E,EAAE,CAAC,CAAC,EACjB,OAAOF,EAAI,EAAI,GAAKA,IAAM,EAAI+E,GAAG7E,EAAE,CAAC,CAAC,EAAI,MAC3C,CACF,EAAG+E,GAAM,GAAM,CACb,GAAI,EAAG,OAAOH,GAAG5E,EAAE,CAAC,CAAC,CACvB,EAAGgF,GAAK,CAAC,EAAG,IAAM,CAChB,MAAMlF,EAAIoE,GAAG,EAAG,CAAC,EAAI,EAAI,EAAGlL,EAAIkL,GAAG,EAAG,CAAC,EAAI,EAAI,EAC/C,OAAOe,GAAG,CAAE,MAAOnF,EAAG,IAAK9G,CAAC,CAAE,CAChC,EAAGkM,GAAM,GAAM,CACb,MAAM,EAAIC,GAAG,EAAG,CAAC,EACjB,MAAO,CAAE,MAAON,GAAG,CAAC,EAAG,KAAMD,GAAG,CAAC,CAAC,CACpC,EAAGQ,GAAK,CAAC,EAAG,IAAM,CAChB,MAAMtF,EAAIuF,GAAG,EAAG,CAAE,aAAc,CAAC,CAAC,CAAE,EAAGrM,EAAIsM,GAAG,EAAG,CAAE,aAAc,CAAC,CAAC,CAAE,EACrE,MAAO,CAACxF,EAAG9G,CAAC,CACd,EAAGuM,GAAK,CAAC,EAAG,IAAM,CAChB,MAAMzF,EAAI,CACR,MAAO0E,GAAGxE,GAAG,EACb,QAASyE,GAAGzE,GAAG,EACf,QAAS,EAAI0E,GAAG1E,EAAC,CAAE,EAAI,CAC3B,EACE,OAAO,OAAO,OAAOF,EAAG,CAAC,CAC3B,EAAG0F,GAAK,CAAC,EAAG,EAAG1F,IAAM,CAACuD,GAAGrD,EAAE,CAAC,EAAG,CAAE,KAAM,CAAC,CAAE,EAAGqD,GAAGrD,EAAC,EAAI,CAAE,MAAO,EAAG,KAAMF,EAAG,KAAM,CAAC,CAAE,CAAC,EAAG2F,GAAK,CAAC,EAAG,EAAG3F,IAAM,CACvG,IAAI9G,EAAI,EAAIgH,EAAE,CAAC,EAAIA,EAAC,EACpB,OAAQ,GAAK,IAAM,KAAOhH,EAAI0M,GAAG1M,EAAG,CAAC,GAAI8G,IAAM9G,EAAI2M,GAAG3M,EAAG8G,CAAC,GAAI9G,CAChE,EAAG4M,GAAK,CAAC,EAAG,EAAG9F,EAAG9G,EAAG0E,IAAM,CACzB,GAAI,CAAC1E,GAAK0E,GAAK,CAAC,GAAK,CAACA,GAAK,CAACoC,EAAG,MAAO,GACtC,MAAMoB,EAAIxD,EAAIyH,GAAG,EAAG,CAAC,EAAIU,GAAG,EAAG,CAAC,EAAGxF,EAAI,CAACwE,GAAG3D,CAAC,EAAG0D,GAAG1D,CAAC,CAAC,EACpD,OAAOxD,EAAI,CAACoI,GAAG,GAAGzF,EAAG,CAAC,EAAI,CAAC0F,GAAG,GAAG1F,EAAGP,CAAC,CACvC,EAAGiG,GAAK,CAAC,EAAG,EAAGjG,IAAMgE,GAAG,GAAG0B,GAAG1F,EAAG,EAAG,CAAC,CAAC,GAAKkE,GAAG,GAAGwB,GAAG1F,EAAG,EAAG,CAAC,CAAC,EAAGgG,GAAK,CAAC,EAAG,EAAGhG,IAAMoE,GAAG,GAAGsB,GAAG1F,EAAG,EAAG,CAAC,CAAC,GAAKkE,GAAG,GAAGwB,GAAG1F,EAAG,EAAG,CAAC,CAAC,EAAGkG,GAAK,CAAC,EAAG,EAAGlG,EAAG9G,EAAG0E,EAAGwD,EAAGb,IAAM,CACvJ,GAAI,OAAO,GAAK,YAAc,CAACA,EAAG,OAAO,EAAE,CAAC,EAC5C,MAAMiB,EAAIxB,EAAI,CAAE,OAAQA,CAAC,EAAK,OAC9B,OAAO,MAAM,QAAQ,CAAC,EAAI,GAAGkB,GAAG,EAAE,CAAC,EAAGE,EAAGI,CAAC,CAAC,GAAG5D,GAAK,CAAC,EAAE,CAAC,EAAI,GAAK1E,CAAC,GAAG,EAAE,CAAC,EAAIgI,GAAG,EAAE,CAAC,EAAGE,EAAGI,CAAC,EAAI,EAAE,GAAKN,GAAG,EAAGE,EAAGI,CAAC,CAC/G,EAAG2E,GAAM,GAAM,CACb,GAAI,EAAG,OAAO,KACd,MAAM,IAAI,MAAMpE,GAAG,KAAK,eAAe,CAAC,CAC1C,EAAGqE,GAAK,CAAC,EAAG,IAAM,CAChB,GAAI,EAAG,OAAO,EAAC,EACf,MAAM,IAAI,MAAMrE,GAAG,KAAK,OAAO,CAAC,CAClC,EAAGsE,GAAM,GAAM,MAAM,QAAQ,CAAC,EAAIhD,GAAG,EAAE,CAAC,CAAC,IAAM,EAAE,CAAC,EAAIA,GAAG,EAAE,CAAC,CAAC,EAAI,IAAM,EAAIA,GAAG,CAAC,EAAI,GAAIiD,GAAK,CAAC,EAAG,IAAM/C,GAAG,GAAKrD,EAAC,EAAI,CACjH,MAAO,CAAC,EAAE,OAAS,EACnB,QAAS,CAAC,EAAE,SAAW,EACvB,QAAS,CAAC,EAAE,SAAW,CACzB,CAAC,EAAGqG,GAAK,CAAC,EAAG,EAAGvG,EAAG9G,IAAM,CACvB,GAAI,CAAC,EAAG,MAAO,GACf,GAAIA,EAAG,CACL,MAAM0E,EAAIoC,IAAM,MAAQiE,GAAG,EAAG,CAAC,EAAII,GAAG,EAAG,CAAC,EAAGjD,EAAI,CAAE,QAAS,EAAG,aAAc,CAAC,EAC9E,OAAOxD,GAAKuG,GAAGZ,GAAG,EAAGnC,CAAC,EAAGmC,GAAG,EAAGnC,CAAC,CAAC,CACnC,CACA,OAAOpB,IAAM,MAAQ,EAAE,QAAO,GAAM,EAAE,QAAO,EAAK,EAAE,WAAa,EAAE,QAAO,CAC5E,EAAGwG,GAAK,CAAC,EAAG,EAAGxG,IAAM,EAAIsG,GAAG,EAAG,CAAC,EAAIpG,EAAEF,GAAK,CAAC,EAAGyG,GAAK,CAAC,EAAG,EAAGzG,EAAG9G,EAAG0E,IAAM,CACrE,GAAI,MAAM,QAAQ1E,CAAC,EAAG,CACpB,MAAMqH,EAAIiG,GAAG,EAAGtN,EAAE,CAAC,EAAG,CAAC,EAAGsI,EAAIgF,GAAG,EAAGtN,EAAE,CAAC,EAAG,CAAC,EAC3C,OAAOqN,GAAGrN,EAAE,CAAC,EAAGqH,EAAGP,EAAG,CAAC,CAAC,CAAC,GAAKuG,GAAGrN,EAAE,CAAC,EAAGsI,EAAGxB,EAAG,CAAC,CAAC,CAAC,GAAKpC,CACvD,CACA,MAAMwD,EAAIoF,GAAG,EAAGtN,EAAG,CAAC,EACpB,OAAOqN,GAAGrN,EAAGkI,EAAGpB,EAAG,CAAC,CAAC,CAAC,GAAKpC,CAC7B,EAAG8I,GAAM,GAAMnD,GAAGrD,EAAC,EAAIuE,GAAG,CAAC,CAAC,EAAGkC,GAAK,CAAC,EAAG,EAAG3G,IAAM,CAC/C,GAAI,aAAa,IAAK,CACpB,MAAM9G,EAAI,GAAGgK,GAAGlD,EAAI,CAAC,CAAC,IAAI,CAAC,GAC3B,OAAO,EAAE,KAAO,EAAE,IAAI9G,CAAC,EAAI,EAC7B,CACA,OAAO,OAAO,GAAK,WAAa,EAAEkH,GAAGmD,GAAGrD,EAAC,EAAI,CAAE,MAAOF,EAAG,KAAM,CAAC,CAAE,EAAG,EAAE,CAAC,EAAI,EAC9E,EAAG4G,GAAK,CAAC,EAAG,EAAG5G,IAAM,CACnB,GAAI,aAAa,IAAK,CACpB,MAAM9G,EAAI,GAAGgK,GAAGlD,EAAI,CAAC,CAAC,IAAI,CAAC,GAC3B,OAAO,EAAE,KAAO,EAAE,IAAI9G,CAAC,EAAI,EAC7B,CACA,MAAO,EACT,EAAG2N,GAAK,CAAC,EAAG,EAAG7G,IAAM,OAAO,GAAK,WAAa,EAAE,CAAE,MAAO,EAAG,KAAMA,CAAC,CAAE,EAAI,CAAC,CAAC,EAAE,OAAO,KAAM9G,GAAMA,EAAE,QAAU,GAAKA,EAAE,OAAS8G,CAAC,EAAG8G,GAAK,CAAC,EAAG,IAAM,OAAO,GAAK,WAAa,EAAE,CAAC,EAAI,EAAE,MAAM,SAAS,CAAC,EAAGC,GAAM,GAAM,MAAM7F,GAAG,EAAG,YAAY,CAAC,GAAI8F,GAAK,CAAC,EAAG,IAAM,CAC1P,MAAMhH,EAAIiH,GAAG7G,GAAG,CAAC,EAAG,CAAC,EAAGlH,EAAIgO,GAAG9G,GAAG,CAAC,EAAG,CAAC,EACvC,MAAO,CAAE,OAAQJ,EAAG,MAAO9G,CAAC,CAC9B,EAAGiO,GAAK,CAAC,EAAG,IAAM,EAAI,CAAC,EAAE,CAAC,GAAK,EAAI,CAAC,EAAE,CAAC,EAAGC,GAAKC,GAAG,CAChD,YAAa,GACb,eAAgB,EAClB,CAAC,EAAGC,GAAK,IAAM,CACb,MAAM,EAAK,GAAM,CACfF,GAAG,YAAc,CACnB,EAAG,EAAK,GAAM,CACZA,GAAG,iBAAmB,IAAMA,GAAG,eAAiB,EAClD,EACA,MAAO,CACL,QAASG,EAAE,KAAO,CAAE,eAAgBH,GAAG,eAAgB,YAAaA,GAAG,WAAW,EAAG,EACrF,eAAgB,EAChB,YAAa,CACjB,CACA,EAAGI,GAAKH,GAAG,CACT,UAAW,CAAA,EACX,SAAU,CAAA,EACV,KAAM,CAAA,EACN,UAAW,CAAA,EACX,cAAe,CAAA,EACf,WAAY,CACV,EAAG,CAAA,EACH,EAAG,CAAA,CACP,EACE,YAAa,CAAA,CACf,CAAC,EAAGI,GAAKC,EAAE,IAAI,EAAGC,GAAKD,EAAE,EAAE,EAAGE,GAAKF,EAAE,EAAE,EAAGG,GAAKH,EAAE,EAAE,EAAGI,GAAKJ,EAAE,EAAE,EAAGK,GAAKL,EAAE,CAAC,EAAGM,GAAKN,EAAE,CAAC,EAAGO,GAAK,IAAM,CACjG,MAAM,EAAIV,EAAE,IAAMI,GAAG,MAAQ,CAAC,GAAGH,GAAG,cAAeA,GAAG,SAAS,EAAE,OAAQU,GAAMA,EAAE,MAAM,EAAIN,GAAG,MAAQ,CACpG,GAAGJ,GAAG,WAAW,CAAC,EAClB,GAAGA,GAAG,WAAW,CAAC,EAClBM,GAAG,MAAQ,CAAA,EAAK,CAACL,GAAG,KAAK,EACzBD,GAAG,SACP,EAAI,OAAQU,GAAMA,EAAE,MAAM,EAAIL,GAAG,MAAQ,CAAC,GAAGL,GAAG,YAAaA,GAAG,SAAS,EAAI,CAACA,GAAG,UAAW,GAAGA,GAAG,SAAUA,GAAG,KAAMA,GAAG,SAAS,EAAE,OAAQU,GAAMA,EAAE,MAAM,CAAC,EAAG,EAAKA,GAAM,CACpKH,GAAG,MAAQG,EAAIH,GAAG,MAAQ,EAAIA,GAAG,MAAQ,EACzC,IAAII,EAAI,KACR,EAAE,MAAMH,GAAG,KAAK,IAAMG,EAAI,EAAE,MAAMH,GAAG,KAAK,EAAED,GAAG,KAAK,GAAI,CAACI,GAAK,EAAE,MAAMH,GAAG,OAASE,EAAI,EAAI,GAAG,GAAKF,GAAG,MAAQA,GAAG,OAASE,EAAI,EAAI,IAAKH,GAAG,MAAQG,EAAI,EAAI,EAAE,MAAMF,GAAG,KAAK,EAAE,OAAS,GAAKG,IAAMJ,GAAG,MAAQG,EAAIH,GAAG,MAAQ,EAAIA,GAAG,MAAQ,EAC1O,EAAG/H,EAAKkI,GAAM,CACRF,GAAG,QAAU,GAAK,CAACE,GAAKF,GAAG,QAAU,EAAE,MAAM,QAAUE,IAC3DF,GAAG,MAAQE,EAAIF,GAAG,MAAQ,EAAIA,GAAG,MAAQ,EAAG,EAAE,MAAMA,GAAG,KAAK,EAAI,EAAE,MAAMA,GAAG,KAAK,GAAK,CAAC,EAAE,MAAMA,GAAG,KAAK,EAAED,GAAG,KAAK,GAAKA,GAAG,QAAU,IAAMA,GAAG,MAAQ,EAAE,MAAMC,GAAG,KAAK,EAAE,OAAS,GAAKA,GAAG,MAAQE,EAAIF,GAAG,MAAQ,EAAIA,GAAG,MAAQ,EAC9N,EAAG9O,EAAKgP,GAAM,CACZ,IAAIC,EAAI,KACR,EAAE,MAAMH,GAAG,KAAK,IAAMG,EAAI,EAAE,MAAMH,GAAG,KAAK,EAAED,GAAG,KAAK,GAAII,EAAIA,EAAE,MAAM,CAAE,cAAe,CAACR,GAAG,KAAK,CAAE,EAAII,GAAG,MAAQG,EAAIH,GAAG,MAAQ,EAAIA,GAAG,MAAQ,CAC/I,EAAGnK,EAAI,IAAM,CACX,EAAE,EAAE,EAAG1E,EAAE,EAAE,CACb,EAAGkI,EAAI,IAAM,CACX,EAAE,EAAE,EAAGlI,EAAE,EAAE,CACb,EAAGqH,EAAI,IAAM,CACXP,EAAE,EAAE,EAAG9G,EAAE,EAAE,CACb,EAAGsI,EAAI,IAAM,CACXxB,EAAE,EAAE,EAAG9G,EAAE,EAAE,CACb,EAAGuI,EAAI,CAACyG,EAAGC,IAAM,CACfX,GAAGW,CAAC,EAAID,CACV,EAAGE,EAAI,CAACF,EAAGC,IAAM,CACfX,GAAGW,CAAC,EAAID,CACV,EAAGG,EAAI,IAAM,CACXN,GAAG,MAAQ,EAAGC,GAAG,MAAQ,CAC3B,EACA,MAAO,CACL,YAAavG,EACb,sBAAuB2G,EACvB,qBAAuBF,GAAM,CAC3BT,GAAG,MAAQS,CACb,EACA,iBAAmBA,GAAM,CACvBP,GAAG,MAAQO,EAAGG,EAAC,EAAIH,IAAMV,GAAG,cAAgB,GAC9C,EACA,cAAe,CAACU,EAAGC,EAAI,KAAO,CAC5BP,GAAG,MAAQM,EAAGJ,GAAG,MAAQK,EAAGE,EAAC,EAAIH,IAAMV,GAAG,WAAW,CAAC,EAAI,CAAA,EAAIA,GAAG,WAAW,CAAC,EAAI,GACnF,EACA,sBAAuB,CAACU,EAAGC,EAAI,IAAM,CACnCX,GAAG,WAAWW,CAAC,EAAID,CACrB,EACA,WAAYtK,EACZ,UAAWwD,EACX,QAASb,EACT,UAAWiB,EACX,cAAe,IAAM,CACnBgG,GAAG,UAAY,CAAA,EAAIA,GAAG,SAAW,GAAIA,GAAG,KAAO,CAAA,EAAIA,GAAG,UAAY,CAAA,EAAIA,GAAG,cAAgB,CAAA,EAAIA,GAAG,WAAW,CAAC,EAAI,CAAA,EAAIA,GAAG,WAAW,CAAC,EAAI,GAAIG,GAAG,MAAQ,GAAIC,GAAG,MAAQ,GAAIE,GAAG,MAAQ,GAAID,GAAG,MAAQ,GAAIQ,EAAC,EAAIZ,GAAG,MAAQ,IACzN,EACA,eAAiBS,GAAM,CACrBL,GAAG,MAAQK,EAAGG,EAAC,CACjB,EACA,QAASb,EAEb,CACA,EAAGc,GAAM,IAAO,CACd,cAAe,qBACf,iBAAkB,wBAClB,KAAM,gBACN,MAAO,cACP,KAAM,gBACN,SAAU,gBACV,MAAO,cACP,UAAW,gBACX,GAAG,GAAK,CAAA,CACV,GAAIC,GAAM,IAAO,CACf,cAAe,iBACf,KAAM,kBACN,MAAO,mBACP,eAAgB,mBAChB,gBAAiB,oBACjB,eAAiB,GAAM,aAAa,CAAC,GACrC,eAAiB,GAAM,aAAa,CAAC,GACrC,cAAgB,GAAM,QAAQ,CAAC,WAC/B,WAAY,oBACZ,iBAAkB,qBAClB,kBAAmB,sBACnB,UAAW,aACX,UAAW,iBACX,SAAU,YACV,SAAU,gBACV,IAAK,OACL,QAAS,OACT,WAAY,cACZ,aAAc,gBACd,WAAY,cACZ,YAAc,GAAM,eAAe,EAAI,WAAa,EAAE,GACtD,WAAa,GAAM,cAAc,EAAI,WAAa,EAAE,GACpD,YAAc,GAAM,GAAG,CAAC,WACxB,GAAG,GAAK,CAAA,CACV,GAAIC,GAAM,GAAM,EAAI,OAAO,GAAK,UAAY,EAAI,EAAI,EAAI,CAAC,GAAK,EAAI,CAAC,EAAI,EAAI,EAAGC,GAAM,GAAM,CACxF,MAAM,EAAI,OAAO,GAAK,UAAY,EAAGzI,EAAI,CACvC,OAAQ,GACR,KAAM,EACV,EACE,GAAI,CAAC,EAAG,MAAO,CAAE,GAAGA,EAAG,MAAOwI,GAAG,EAAE,CAAC,EACpC,MAAMtP,EAAI,EAAI,EAAI,CAAA,EAAI0E,EAAI,EAAI1E,EAAE,OAAS,GAAK,EAAGkI,EAAIoH,GAAG5K,CAAC,EACzD,OAAO,OAAO,OAAOoC,EAAG9G,EAAG,CAAE,MAAOkI,EAAG,CACzC,EAAGsH,GAAK,CAAC,EAAG,EAAG1I,IAAM,IAAM,OAAOA,GAAK,SAAWA,EAAI,GAAI2I,GAAM,GAAM,OAAO,GAAK,UAAY,EAAIL,GAAG,CAAA,CAAE,EAAI,GAAKA,GAAG,CAAC,EAAGM,GAAM,GAAM,CACjI,MAAM,EAAI,CACR,YAAa,GACb,UAAW,GACX,SAAU,OACV,cAAe,GACf,eAAgB,MAChB,SAAU,EACd,EACE,OAAO,OAAO,GAAK,SAAW,CAAE,GAAG,EAAG,GAAG,GAAK,CAAA,EAAI,QAAS,EAAE,EAAK,CAAE,GAAG,EAAG,QAAS,CAAC,CACtF,EAAGC,GAAM,IAAO,CACd,OAAQ,CAAA,EACR,MAAO,CAAA,EACP,MAAO,CAAE,MAAO,CAAA,EAAI,QAAS,CAAA,EAAI,QAAS,EAAE,EAC5C,GAAG,GAAK,CAAA,CACV,GAAIC,GAAM,IAAO,CACf,WAAY,GACZ,WAAY,GACZ,QAAS,GACT,YAAa,GACb,GAAG,GAAK,CAAA,CACV,GAAIC,GAAM,GAAM,CACd,MAAM,EAAI,CAAE,MAAO,EAAE,EACrB,OAAO,OAAO,GAAK,SAAW,CAAE,GAAG,EAAG,GAAG,GAAK,CAAA,EAAI,QAAS,IAAO,CAChE,QAAS,EACT,GAAG,CACP,CACA,EAAGC,GAAM,IAAO,CACd,qBAAsB,GACtB,cAAe,GACf,WAAY,IACZ,oBAAqB,GACrB,kBAAmB,GACnB,iBAAkB,GAClB,QAAS,GACT,cAAe,GACf,eAAgB,OAChB,iBAAkB,GAClB,UAAW,OACX,sBAAuB,GACvB,uBAAwB,EACxB,UAAW,GACX,iBAAkB,IAClB,mBAAoB,GACnB,GAAG,GAAK,CAAA,CAAE,GAAKC,GAAM,GAAM,CAC5B,MAAM,EAAI,CACR,MAAO,MAAM,QAAQ,CAAC,EAAI,EAAE,IAAKjJ,GAAME,EAAEF,CAAC,CAAC,EAAI,CAAA,EAC/C,MAAO,CAAA,EACP,OAAQ,CAAA,EACR,SAAU,CAAA,EACV,MAAO,CAAA,EACP,SAAU,CAAA,EACV,QAAS,CAAE,kBAAmB,EAAE,CACpC,EACE,OAAO,OAAO,GAAK,WAAa,EAAI,CAAE,GAAG,EAAG,GAAG,GAAK,EAAE,CACxD,EAAGkJ,GAAM,GAAM,OAAO,GAAK,SAAW,CACpC,KAAM,GAAG,MAAQ,QACjB,kBAAmB,GAAG,mBAAqB,EAC7C,EAAI,CACF,KAAM,EACN,kBAAmB,EACrB,EAAGC,GAAM,GAAM,CACb,MAAM,EAAI,CACR,gBAAiB,GACjB,gBAAiB,GACjB,eAAgB,GAChB,aAAc,GACd,2BAA4B,GAC5B,SAAU,OACV,SAAU,OACV,UAAW,OACX,WAAY,GACZ,SAAU,EACd,EACE,OAAO,OAAO,GAAK,SAAW,CAAE,QAAS,GAAI,GAAG,EAAG,GAAG,GAAM,CAC1D,QAAS,EACT,GAAG,CACP,CACA,EAAGC,GAAM,GAAM,EAAI,OAAO,GAAK,SAAW,CACxC,SAAU,EACV,WAAY,GACZ,SAAU,OACV,aAAc,OACd,aAAc,EAChB,EAAI,CACF,SAAU,EAAE,SACZ,WAAY,EAAE,YAAc,GAC5B,SAAU,EAAE,UAAY,OACxB,aAAc,EAAE,cAAgB,OAChC,aAAc,EAAE,cAAgB,EAClC,EAAI,CAAE,SAAU,OAAQ,WAAY,GAAI,aAAc,MAAM,EAAIC,GAAK,CAAC,EAAG,EAAGrJ,EAAG9G,IAAM,IAAI,IACvF,EAAE,IAAK0E,GAAM,CACX,MAAMwD,EAAIrB,GAAGnC,EAAG,EAAG1E,CAAC,EACpB,MAAO,CAACyJ,GAAGvB,EAAGpB,CAAC,EAAGoB,CAAC,CACrB,CAAC,CACH,EAAGkI,GAAK,CAAC,EAAG,IAAM,EAAE,OAAS,IAAI,IAC/B,EAAE,IAAKtJ,GAAM,CACX,MAAM9G,EAAI6G,GAAGC,EAAE,KAAM,CAAC,EACtB,MAAO,CAAC2C,GAAGzJ,EAAG6H,GAAG,IAAI,EAAGf,CAAC,CAC3B,CAAC,CACH,EAAI,KAAMuJ,GAAM,GAAM,CACpB,MAAM,EAAItG,GAAG,EAAE,cAAe,EAAE,YAAY,EAC5C,MAAO,CACL,QAAShD,GAAG,EAAE,QAAS,EAAE,SAAU,EAAE,UAAU,EAC/C,QAASA,GAAG,EAAE,QAAS,EAAE,SAAU,EAAE,UAAU,EAC/C,cAAe2C,GAAG,EAAE,aAAa,EAAIyG,GAAG,EAAE,cAAe,EAAE,SAAU,EAAG,EAAE,UAAU,EAAI,EAAE,cAC1F,aAAczG,GAAG,EAAE,YAAY,EAAIyG,GAAG,EAAE,aAAc,EAAE,SAAU,EAAG,EAAE,UAAU,EAAI,KACrF,UAAW,OAAO,EAAE,WAAa,UAAYzG,GAAG,EAAE,WAAW,KAAK,EAAIyG,GAAG,EAAE,UAAU,MAAO,EAAE,SAAU,CAAC,EAAI,EAAE,UAC/G,QAASC,GAAG,EAAE,QAAS,EAAE,QAAQ,CACrC,CACA,EAAGE,GAAM,GAAM,OAAO,GAAK,UAAY,CAAE,QAAS,EAAG,WAAY,GAAI,MAAO,IAAI,EAAK,CACnF,QAAS,CAAC,CAAC,EACX,MAAO,EAAE,MAAQ,CAAC,EAAE,MAAQ,KAC5B,WAAY,EAAE,YAAc,EAC9B,EAAGC,GAAM,IAAO,CACd,GAAG,OAAO,YACR,OAAO,KAAK,CAAC,EAAE,IAAKzJ,GAAM,CACxB,MAAM,EAAIA,EAAG,EAAI,EAAE,CAAC,EAAGoB,EAAI,OAAO,EAAE,CAAC,GAAK,SAAW,CAAE,CAAC,CAAC,EAAG,EAAE,EAAK,OAAO,YAAY,EAAE,IAAKb,GAAM,CAACA,EAAG,EAAE,CAAC,CAAC,EAC3G,MAAO,CAACP,EAAGoB,CAAC,CACd,CAAC,CACL,CACA,GAAIsI,GAAM,GAAM,CACd,MAAM,EAAI,IAAM,CACd,MAAMC,EAAI,EAAE,cAAgB,MAAQ,GAAIC,EAAI,EAAE,cAAgB,MAAQ,GACtE,OAAO,EAAE,KAAO,KAAKA,CAAC,GAAGD,CAAC,GAAK,KAAKC,CAAC,GAAGD,CAAC,KAC3C,EAAG3J,EAAI,IAAM,EAAE,OAAS,EAAE,OAAS,EAAE,YAAc,UAAY,EAAE,WAAa,EAAC,EAAK,EAAE,WAAa,GAAG6J,EAAE,OAAO,OAAS,MAAQ,KAAO,IAAI,MAAQ,EAAE,WAAa,OAAS,EAAE,cAAgB,WAAa,EAAE,iBAAmB,eAAe,EAAC,CAAE,GAAK,aAAc3Q,EAAKyQ,GAAMlE,GAAGkE,EAAG,EAAE,aAAa,EAAG/L,EAAI,IAAMkM,EAAE,MAAM,QAAU,EAAE,WAAa,MAAM,QAAQ,EAAE,SAAS,EAAI,CAAC5Q,EAAE,EAAE,UAAU,CAAC,CAAC,EAAGA,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,EAAI,KAAO,EAAE,WAAa,CAAC,MAAM,QAAQ,EAAE,SAAS,EAAIA,EAAE,EAAE,SAAS,EAAI,KAAMkI,EAAImG,EAAE,IAAMkB,GAAG,EAAE,cAAc,CAAC,EAAGlI,EAAIgH,EAAE,IAAM3J,GAAG,EAAG4D,EAAI+F,EAAE,IAAMgB,GAAG,EAAE,UAAU,CAAC,EAAG9G,EAAI8F,EAAE,IAAMsB,GAAG,EAAE,OAAO,CAAC,EAAGT,EAAIb,EAAE,IAAMoB,GAAG,EAAE,WAAW,CAAC,EAAGN,EAAId,EAAE,IAAMuB,GAAG,EAAE,SAAS,CAAC,EAAGiB,EAAIxC,EACnpB,IAAMmB,GAAG,EAAE,cAAe,EAAE,OAAQ1I,EAAC,CAAE,CAC3C,EAAKgK,EAAIzC,EAAE,IAAMqB,GAAG,EAAE,SAAS,CAAC,EAAGqB,EAAI1C,EAAE,IAAMwB,GAAG,EAAE,MAAM,CAAC,EAAGmB,EAAI3C,EAAE,IAAMyB,GAAG,EAAE,MAAM,CAAC,EAAGmB,EAAI5C,EAAE,IAAM0B,GAAG,EAAE,SAAS,CAAC,EAAGY,EAAItC,EAAE,IAAM2B,GAAG,EAAE,WAAW,CAAC,EAAGhB,EAAIX,EAAE,IAAM6B,GAAG,EAAE,QAAQ,CAAC,EAAGjB,EAAIZ,EAAE,IAAMiC,GAAG,EAAE,UAAU,CAAC,EAAGY,EAAI7C,EACnN,IAAMgC,GAAG,CACP,QAAS,EAAE,QACX,QAAS,EAAE,QACX,cAAe,EAAE,cACjB,aAAc,EAAE,aAChB,UAAWY,EAAE,MACb,QAAS,EAAE,QACX,SAAUjC,EAAE,MACZ,WAAY,EAAE,aAAe,EAAE,YAAc,EAAE,cAC/C,cAAe,EAAE,YACjB,aAAc,EAAE,UACtB,CAAK,CACL,EAAK4B,EAAIvC,EAAE,IAAM4B,GAAG,EAAE,KAAK,CAAC,EAAGkB,EAAI9C,EAAE,IAAMkC,GAAG,EAAE,EAAE,CAAC,EACjD,MAAO,CACL,qBAAsBrB,EACtB,wBAAyBhH,EACzB,mBAAoBb,EACpB,oBAAqBiB,EACrB,iBAAkBC,EAClB,mBAAoB4G,EACpB,uBAAwB0B,EACxB,mBAAoBC,EACpB,gBAAiBC,EACjB,gBAAiBC,EACjB,mBAAoBC,EACpB,qBAAsBN,EACtB,eAAgBC,EAChB,UAAWM,EACX,YAAalC,EACb,oBAAqBC,EACrB,YAAakC,EACb,kBAAmBrK,EACnB,oBAAqBpC,EACrB,uBAAyB+L,GAAM,CAC7BO,EAAE,MAAM,sBAAwBP,EAAE,gBAAe,EAAIO,EAAE,MAAM,qBAAuBP,EAAE,eAAc,CACtG,CACJ,CACA,EAAGW,GAAK,CAAC,EAAG,EAAG,CAAE,eAAgBtK,EAAG,gBAAiB9G,KAAQ,CAC3D,MAAM0E,EAAI8J,EAAC,EAAI,CAAE,mBAAoBtG,EAAG,eAAgBb,EAAG,YAAaiB,EAAG,oBAAqBC,EAAG,kBAAmB2G,CAAC,EAAKsB,GAAG,CAAC,EAAGrB,EAAIX,EAAE,EAAE,EAAGqC,EAAIQ,GAAG,EAAG,QAAQ,EAAGP,EAAIO,GAAG,EAAG,cAAc,EAC3LC,GACE5M,EACA,IAAM,CACJ,OAAO,EAAE,uBAAyB,YAAc,EAAE,wBAAyBA,EAAE,MAAO6M,EAAE,EAAE,CAAC,CAC3F,EACA,CAAE,KAAM,EAAE,CACd,EAAKD,GAAGjK,EAAG,CAACmK,EAAGC,IAAM,CACjBD,EAAE,UAAYC,EAAE,UAAY/M,EAAE,MAAQ,KACxC,CAAC,EAAG4M,GAAGT,EAAG,IAAM,CACda,EAAC,CACH,CAAC,EACD,MAAMX,EAAKS,GAAMlJ,EAAE,MAAM,UAAYA,EAAE,MAAM,aAAe1B,GAAG4K,EAAGlJ,EAAE,MAAM,QAAQ,EAAIkJ,EAAGR,EAAKQ,GAAM,CAClG,GAAIlJ,EAAE,MAAM,UAAYA,EAAE,MAAM,aAAc,CAC5C,MAAMmJ,EAAIrK,GAAGkB,EAAE,MAAM,SAAUkJ,CAAC,EAChC,OAAOG,GAAGH,EAAGC,CAAC,CAChB,CACA,OAAOD,CACT,EAAGP,EAAI,CAACO,EAAGC,EAAGG,GAAI,KAAO5E,GACvBwE,EACA,EAAE,OACF,EAAE,aACFtJ,EAAE,MAAM,eACR,EAAE,UACFuJ,GAAKvC,EAAC,EACN0C,EACJ,EAAKjB,EAAKa,GAAMA,EAAI,EAAE,UAAYK,EAAEL,CAAC,EAAI,CACrC,MAAOhG,GAAGgG,CAAC,EACX,QAAS/F,GAAG+F,CAAC,EACb,QAAS,EAAE,cAAgB9F,GAAG8F,CAAC,EAAI,CACvC,EAAM,KAAMxC,EAAKwC,GAAM,EAAE,UAAYK,EAAEL,CAAC,EAAI,CAAE,MAAO3F,GAAG2F,CAAC,EAAG,KAAM5F,GAAG4F,CAAC,CAAC,EAAIvC,EAAKuC,GAAM,MAAM,QAAQA,CAAC,EAAIjJ,EAAE,MAAM,QAAUiJ,EAAE,IAAKC,GAAMP,EAAEO,EAAG9E,GAAG3F,EAAC,EAAIyK,CAAC,CAAC,CAAC,EAAIvE,GACxJ,IAAM,CACJP,GAAG3F,EAAC,EAAIwK,EAAE,CAAC,CAAC,EACZA,EAAE,CAAC,EAAI7E,GAAG3F,EAAC,EAAIwK,EAAE,CAAC,CAAC,EAAIvE,GAAG5F,EAAE,MAAM,YAAY,CACpD,EACIA,EAAE,MAAM,OACZ,EAAMsF,GAAG3F,IAAK,CAACwK,CAAC,EAAGN,EAAI,CAACM,EAAGC,KAAO,OAAOD,GAAK,UAAY,OAAOA,GAAK,WAAa,EAAE,UAAYM,EAAEN,CAAC,EAAIC,EAAGb,EAAKY,GAAM,MAAM,QAAQA,CAAC,EAAI,CACrIN,EACEM,EAAE,CAAC,EACH/G,GAAG,KAAM,CAAC+G,EAAE,CAAC,EAAE,MAAO,CAACA,EAAE,CAAC,EAAE,QAASA,EAAE,CAAC,EAAE,OAAO,CACvD,EACIN,EACEM,EAAE,CAAC,EACH/G,GAAG,KAAM,CAAC+G,EAAE,CAAC,EAAE,MAAO,CAACA,EAAE,CAAC,EAAE,QAASA,EAAE,CAAC,EAAE,OAAO,CACvD,CACA,EAAMN,EAAEM,EAAG/G,GAAG,KAAM+G,EAAE,MAAOA,EAAE,QAASA,EAAE,OAAO,CAAC,EAAGL,EAAKK,GAAM,CAC5D,MAAMC,EAAIpH,GAAGrD,EAAC,EAAI,CAAE,KAAM,EAAG,EAC7B,OAAO,MAAM,QAAQwK,CAAC,EAAIjJ,EAAE,MAAM,QAAUiJ,EAAE,IAAKI,IAAMV,EAAEU,GAAGnF,GAAGgF,EAAG,CAACG,GAAE,MAAO,CAACA,GAAE,IAAI,CAAC,CAAC,EAAI1E,GACzF,IAAM,CACJgE,EAAEM,EAAE,CAAC,EAAG/E,GAAGgF,EAAG,CAACD,EAAE,CAAC,EAAE,MAAO,CAACA,EAAE,CAAC,EAAE,IAAI,CAAC,EACtCN,EACEM,EAAE,CAAC,EACHA,EAAE,CAAC,EAAI/E,GAAGgF,EAAG,CAACD,EAAE,CAAC,EAAE,MAAO,CAACA,EAAE,CAAC,EAAE,IAAI,EAAIvE,GAAG5F,EAAE,MAAM,YAAY,CACzE,CACA,EACMA,EAAE,MAAM,OACd,EAAQ6J,EAAEM,EAAG/E,GAAGgF,EAAG,CAACD,EAAE,MAAO,CAACA,EAAE,IAAI,CAAC,CACnC,EAAGO,EAAMP,GAAM,CACb,GAAI,MAAM,QAAQA,CAAC,EACjB,OAAOA,EAAE,IAAKC,GAAMK,EAAEL,CAAC,CAAC,EAC1B,MAAM,IAAI,MAAM5I,GAAG,QAAQ,aAAa,CAAC,CAC3C,EAAG4H,EAAKe,GAAM,CACZ,GAAI,MAAM,QAAQA,CAAC,GAAKnK,EAAE,MAAM,QAAS,CACvC,MAAMoK,EAAID,EAAE,CAAC,EAAGI,GAAIJ,EAAE,CAAC,EACvB,MAAO,CACLxK,EAAE,MAAM,QAAQyK,CAAC,EAAIA,EAAE,CAAC,EAAI,IAAI,EAChC,MAAM,QAAQG,EAAC,GAAKA,GAAE,OAAS5K,EAAE4K,GAAE,CAAC,CAAC,EAAI,IACjD,CACI,CACA,OAAO5K,EAAEwK,EAAE,CAAC,CAAC,CACf,EAAGd,EAAKc,GAAM,EAAE,UAAY,MAAM,QAAQA,CAAC,EAAI,CAACM,EAAEN,EAAE,CAAC,CAAC,EAAGM,EAAEN,EAAE,CAAC,CAAC,CAAC,EAAI,EAAE,UAAY,CAACM,EAAEN,CAAC,CAAC,EAAI,CAACM,EAAEN,CAAC,EAAG,IAAI,EAAI,MAAM,QAAQA,CAAC,EAAItE,GAC3H,IAAMsE,EAAE,CAAC,EAAI,CACXM,EAAEN,EAAE,CAAC,CAAC,EACNA,EAAE,CAAC,EAAIM,EAAEN,EAAE,CAAC,CAAC,EAAIvE,GAAG5F,EAAE,MAAM,YAAY,CAC9C,EAAQ,CAACyK,EAAEN,EAAE,CAAC,CAAC,CAAC,EACZnK,EAAE,MAAM,OACZ,EAAMyK,EAAEN,CAAC,EAAGQ,EAAK,IAAM,CACnB,MAAM,QAAQtN,EAAE,KAAK,GAAK2C,EAAE,MAAM,SAAW3C,EAAE,MAAM,SAAW,GAAKA,EAAE,MAAM,KAAKuI,GAAG5F,EAAE,MAAM,YAAY,CAAC,CAC5G,EAAG4K,EAAI,IAAM,CACX,MAAMT,EAAI9M,EAAE,MACZ,MAAO,CACLmN,EAAEL,EAAE,CAAC,CAAC,EACNA,EAAE,CAAC,EAAIK,EAAEL,EAAE,CAAC,CAAC,EAAIvE,GAAG5F,EAAE,MAAM,YAAY,CAC9C,CACE,EAAG6K,GAAI,IAAM,MAAM,QAAQxN,EAAE,KAAK,EAAIA,EAAE,MAAM,CAAC,EAAIuN,EAAC,EAAKJ,EAAE/I,GAAGpE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAI,CAAA,EAAIyN,GAAK,KAAOzN,EAAE,OAAS,CAAA,GAAI,IAAK8M,GAAMK,EAAEL,CAAC,CAAC,EAAGY,GAAK,CAACZ,EAAI,MAAQA,GAAKQ,EAAE,EAAI,EAAE,UAAYE,GAAC,EAAK3J,EAAE,MAAM,QAAU4J,GAAE,EAAK,MAAM,QAAQzN,EAAE,KAAK,EAAIwI,GAAG,IAAM+E,IAAK5K,EAAE,MAAM,OAAO,EAAIwK,EAAE/I,GAAGpE,EAAE,KAAK,CAAC,GAAI2N,EAAKb,GAAM,CAACA,GAAK,MAAM,QAAQA,CAAC,GAAK,CAACA,EAAE,OAAS,KAAO,EAAE,WAAaZ,EAAE9H,GAAG0I,CAAC,CAAC,EAAI,EAAE,YAAcL,EAAErI,GAAG0I,CAAC,CAAC,EAAI,EAAE,WAAavC,EAAEnG,GAAG0I,CAAC,CAAC,EAAIjJ,EAAE,MAAM,QAAUwJ,EAAGjJ,GAAG0I,CAAC,CAAC,EAAI,EAAE,WAAaf,EAAE3H,GAAG0I,CAAC,CAAC,EAAId,EAAE5H,GAAG0I,CAAC,CAAC,EAAGc,EAAKd,GAAM,CACre,GAAIxR,EAAE,MAAO,OACb,MAAMyR,EAAIY,EAAEb,CAAC,EACbrE,GAAGrE,GAAG2I,CAAC,CAAC,GAAK/M,EAAE,MAAQoE,GAAG2I,CAAC,EAAGC,EAAC,IAAOhN,EAAE,MAAQ,KAAMyK,EAAE,MAAQ,GAClE,EAAGoD,EAAK,IAAM,CACZ,MAAMf,EAAKC,GAAMzJ,GAAGyJ,EAAGvJ,EAAE,MAAM,MAAM,EACrC,MAAO,GAAGsJ,EAAE9M,EAAE,MAAM,CAAC,CAAC,CAAC,IAAIwD,EAAE,MAAM,cAAc,IAAIxD,EAAE,MAAM,CAAC,EAAI8M,EAAE9M,EAAE,MAAM,CAAC,CAAC,EAAI,EAAE,EACtF,EAAG8N,EAAI,IAAM1L,EAAE,OAASpC,EAAE,MAAQ,MAAM,QAAQA,EAAE,KAAK,EAAI6N,EAAE,EAAKvK,GAAGtD,EAAE,MAAOwD,EAAE,MAAM,MAAM,EAAI+I,EAAEvM,EAAE,KAAK,EAAG+N,GAAI,IAAM/N,EAAE,MAAQ6D,EAAE,MAAM,QAAU7D,EAAE,MAAM,IAAK8M,GAAMP,EAAEO,CAAC,CAAC,EAAE,KAAK,IAAI,EAAItJ,EAAE,MAAM,SAAW,OAAOA,EAAE,MAAM,QAAU,SAAWsK,EAAC,EAAKvB,EAAEvM,EAAE,KAAK,EAAI,GAAIgN,EAAI,IAAM,CAC9Q,CAAC,EAAE,QAAU,OAAO,EAAE,QAAU,UAAYxJ,EAAE,MAAM,SAAW,OAAOA,EAAE,MAAM,QAAU,SAAWiH,EAAE,MAAQsD,GAAC,EAAKtD,EAAE,MAAQ,EAAE,OAAOzK,EAAE,KAAK,CAC/I,EAAGoN,EAAKN,GAAM,CACZ,GAAI,EAAE,IAAK,CACT,MAAMC,EAAI,IAAI,KAAKD,CAAC,EACpB,OAAO,EAAE,MAAQ,WAAa,IAAI,KAAKC,EAAE,QAAO,EAAKA,EAAE,oBAAsB,GAAG,EAAIA,CACtF,CACA,OAAO,EAAE,UAAY/J,GAAG,SAAS,EAAE,SAAS,EAAIqJ,EAAE,IAAI,KAAKS,CAAC,CAAC,EAAI,EAAE,YAAc,WAAa,OAAO,EAAE,QAAU,UAAY,CAAC,EAAE,QAAUT,EACxI7G,GAAGsH,EAAGtC,IAAqB,IAAI,KAAQ,CAAE,OAAQ4B,EAAE,KAAK,CAAE,CAChE,EAAQC,EACF7G,GAAGsH,EAAG,EAAE,UAA2B,IAAI,KAAQ,CAAE,OAAQV,EAAE,KAAK,CAAE,CACxE,EAAQC,EAAE,IAAI,KAAKS,CAAC,CAAC,CACnB,EAAGK,EAAKL,GAAMA,EAAI,EAAE,IAAMjH,GAAGiH,EAAG,EAAE,MAAQ,WAAY,EAAE,aAAa,EAAI,EAAE,UAAY,EAAE,YAAc,YAAc,CAACR,EAAEQ,CAAC,EAAI,EAAE,YAAc,MAAQR,EAAEQ,CAAC,EAAE,YAAW,EAAK,EAAE,YAAc,WAAa,OAAO,EAAE,QAAU,UAAY,CAAC,EAAE,QAAUP,EAAED,EAAEQ,CAAC,CAAC,EAAIP,EAAED,EAAEQ,CAAC,EAAG,EAAE,UAAW,EAAE,EAAIR,EAAEQ,CAAC,EAAI,GAAIkB,GAAK,CAAClB,EAAGC,EAAI,GAAIG,GAAI,KAAO,CAC7T,GAAIA,GAAG,OAAOJ,EACd,GAAI,EAAE,qBAAsBA,CAAC,EAAGlJ,EAAE,MAAM,cAAgBmJ,EAAG,CACzD,MAAMkB,EAAK,MAAM,QAAQnB,CAAC,EAAIA,EAAE,IAAKoB,IAAOhM,GAAGkC,GAAG8J,EAAE,EAAGtK,EAAE,MAAM,YAAY,CAAC,EAAI1B,GAAGkC,GAAG0I,CAAC,EAAGlJ,EAAE,MAAM,YAAY,EAC9G,EAAE,8BAA+BqK,CAAE,CACrC,CACF,EAAGE,EAAKrB,GAAM,MAAM,QAAQ9M,EAAE,KAAK,EAAI6D,EAAE,MAAM,QAAU7D,EAAE,MAAM,IAAK+M,GAAMD,EAAEC,CAAC,CAAC,EAAI,CAClFD,EAAE9M,EAAE,MAAM,CAAC,CAAC,EACZA,EAAE,MAAM,CAAC,EAAI8M,EAAE9M,EAAE,MAAM,CAAC,CAAC,EAAIuI,GAAG5F,EAAE,MAAM,YAAY,CACxD,EAAMmK,EAAE1I,GAAGpE,EAAE,KAAK,CAAC,EAAGoO,EAAK,IAAM,CAC7B,GAAI,MAAM,QAAQpO,EAAE,KAAK,EAAG,CAC1B,MAAM8M,EAAIpF,GAAG1H,EAAE,MAAM,CAAC,EAAG,EAAE,SAAS,EAAG+M,EAAI/M,EAAE,MAAM,CAAC,EAAI0H,GAAG1H,EAAE,MAAM,CAAC,EAAG,EAAE,SAAS,EAAI,CAAA,EACtF,MAAO,CAAC8M,EAAE,IAAKI,IAAM5K,EAAE4K,EAAC,CAAC,EAAGH,EAAE,IAAKG,IAAM5K,EAAE4K,EAAC,CAAC,CAAC,CAChD,CACA,OAAOxF,GAAG1H,EAAE,MAAO,EAAE,SAAS,EAAE,IAAK8M,GAAMxK,EAAEwK,CAAC,CAAC,CACjD,EAAGuB,EAAI,CAACvB,EAAGC,IAAMiB,GAAG5J,GAAG+J,EAAErB,CAAC,CAAC,EAAG,GAAIC,CAAC,EAAGuB,GAAKxB,GAAM,CAC/C,MAAMC,EAAIqB,EAAE,EACZ,OAAOtB,EAAIC,EAAI,EAAE,qBAAsBqB,EAAE,CAAE,CAC7C,EAAGvB,EAAI,CAACC,EAAI,MAAQA,GAAKE,IAAK,EAAE,YAAcqB,EAAE/D,EAAGwC,CAAC,EAAI,EAAE,WAAauB,EAAEpC,EAAGa,CAAC,EAAI,EAAE,WAAauB,EAAEnH,GAAI4F,CAAC,EAAI,EAAE,WAAawB,GAAExB,CAAC,EAAIkB,GAAGN,GAAGZ,CAAC,EAAG,GAAIA,CAAC,GAChJ,MAAO,CACL,WAAYrC,EACZ,mBAAoBzK,EACpB,gBAAiB,IAAMA,EAAE,MAAQ2C,EAAE,MAAM,QAAUA,EAAE,MAAM,aAAe3C,EAAE,MAAM,QAAU,EAAIA,EAAE,MAAM,SAAW,EAAI,CAAC,CAACA,EAAE,MAAQ,GACnI,wBAAyB4N,EACzB,iBAAkBZ,EAClB,eAAgBH,CACpB,CACA,EAAG0B,GAAK,CAAC,EAAG,IAAM,CAChB,KAAM,CAAE,iBAAkBnM,EAAG,UAAW9G,CAAC,EAAKwQ,GAAG,CAAC,EAAG,CAAE,yBAA0B9L,CAAC,EAAKwO,GAAG,CAAC,EAAGhL,EAAI,CAACiH,EAAG0B,IAAM,CAC1G,IAAIC,EAAI3B,EACR,OAAOrI,EAAE,MAAM,OAAO,SAAS+E,GAAGiF,CAAC,CAAC,GAAKA,EAAID,EAAI1E,GAAGgD,EAAG,CAAC,EAAItC,GAAGsC,EAAG,CAAC,EAAGjH,EAAE4I,EAAGD,CAAC,GAAKC,CACnF,EAAGzJ,EAAI,CAAC8H,EAAG0B,IAAM,CACf,IAAIC,EAAI3B,EACR,OAAOrI,EAAE,MAAM,MAAM,SAAS8E,GAAGkF,CAAC,CAAC,GAAKA,EAAID,EAAIsC,GAAGhE,EAAG,CAAC,EAAIiE,GAAGjE,EAAG,CAAC,EAAG9H,EAAEyJ,EAAGD,CAAC,GAAKC,CAClF,EAAGxI,EAAI,CAAC6G,EAAG0B,EAAI,KAAO,CACpB,MAAMC,EAAIzG,GAAGrD,EAAC,EAAI,CAAE,MAAO,EAAE,MAAO,KAAM,EAAE,IAAI,CAAE,EAClD,IAAI+J,EAAI5B,EAAIhD,GAAG2E,EAAG,CAAC,EAAIjE,GAAGiE,EAAG,CAAC,EAC9B,EAAE,oBAAsBC,EAAIpE,GAAGoE,EAAG,EAAE,IAAI,GACxC,IAAIC,EAAInF,GAAGkF,CAAC,EAAGE,EAAIrF,GAAGmF,CAAC,EACvBjK,EAAE,MAAM,OAAO,SAASkK,CAAC,IAAMD,EAAI7I,EAAE6I,EAAG5B,CAAC,EAAG6B,EAAInF,GAAGkF,CAAC,EAAGE,EAAIrF,GAAGmF,CAAC,GAAIjK,EAAE,MAAM,MAAM,SAASmK,CAAC,IAAMF,EAAI1J,EAAE0J,EAAG5B,CAAC,EAAG8B,EAAIrF,GAAGmF,CAAC,GAAIrM,EAAEsM,EAAGC,EAAG9B,EAAG,EAAE,uBAAuB,GAAK5G,EAAEyI,EAAGC,EAAGJ,CAAC,CAC9K,EAAGtI,EAAI,CAAC4G,EAAG0B,EAAGC,IAAM,CAClB,EAAE,oBAAqB,CAAE,MAAO3B,EAAG,KAAM0B,EAAG,QAASC,EAAG,CAC1D,EAAG5B,EAAIb,EAAE,IAAOc,GAAMvC,GACpBvC,GAAGrD,IAAK,CAAE,MAAO,EAAE,MAAO,KAAM,EAAE,KAAM,EACxChH,EAAE,MAAM,QACRA,EAAE,MAAM,QACR,EAAE,wBACFmP,CACJ,CAAG,EACD,MAAO,CAAE,sBAAuB7G,EAAG,WAAY4G,EAAG,gBAAiB3G,CAAC,CACtE,EAAG8K,GAAK,CACN,eAAgB,CAAE,KAAM,CAAC,QAAS,OAAQ,OAAQ,MAAM,EAAG,QAAS,MAAM,EAC1E,WAAY,CAAE,KAAM,CAAC,OAAQ,KAAM,MAAO,OAAQ,MAAM,EAAG,QAAS,IAAI,EACxE,UAAW,CAAE,KAAM,OAAQ,QAAS,IAAI,EACxC,SAAU,CAAE,KAAM,OAAQ,QAAS,QAAQ,EAC3C,KAAM,CAAE,KAAM,QAAS,QAAS,EAAE,EAClC,OAAQ,CACN,KAAM,CAAC,OAAQ,QAAQ,EACvB,QAAS,IAAM,IACnB,EACE,aAAc,CAAE,KAAM,CAAC,QAAS,MAAM,EAAG,QAAS,EAAE,EACpD,YAAa,CAAE,KAAM,SAAU,QAAS,IAAI,EAC5C,YAAa,CAAE,KAAM,CAAC,QAAS,MAAM,EAAG,QAAS,EAAE,EACnD,aAAc,CAAE,KAAM,OAAQ,QAAS,IAAI,EAC3C,IAAK,CAAE,KAAM,CAAC,QAAS,MAAM,EAAG,QAAS,EAAE,EAC3C,WAAY,CAAE,KAAM,OAAQ,QAAS,KAAO,CAAA,EAAG,EAC/C,OAAQ,CAAE,KAAM,CAAC,OAAQ,MAAM,EAAG,QAAS,EAAE,EAC7C,eAAgB,CAAE,KAAM,MAAO,QAAS,IAAM,CAAA,CAAE,EAChD,SAAU,CAAE,KAAM,CAAC,OAAQ,MAAM,EAAG,QAAS,IAAI,EACjD,SAAU,CAAE,KAAM,QAAS,QAAS,EAAE,EACtC,uBAAwB,CAAE,KAAM,QAAS,QAAS,EAAE,EACpD,kBAAmB,CAAE,KAAM,QAAS,QAAS,EAAE,EAC/C,SAAU,CACR,KAAM,SACN,QAAS,IACb,EACE,UAAW,CAAE,KAAM,MAAO,QAAS,IAAM,CAAC,KAAM,IAAI,CAAC,EACrD,iBAAkB,CAAE,KAAM,QAAS,QAAS,EAAE,EAC9C,UAAW,CAAE,KAAM,QAAS,QAAS,EAAE,EACvC,cAAe,CAAE,KAAM,CAAC,MAAO,QAAQ,EAAG,QAAS,IAAM,EAAE,EAC3D,gBAAiB,CAAE,KAAM,OAAQ,QAAS,OAAO,EACjD,UAAW,CAAE,KAAM,CAAC,KAAM,MAAM,EAAG,QAAS,IAAI,EAChD,UAAW,CAAE,KAAM,CAAC,OAAQ,KAAK,EAAG,QAAS,IAAI,EACjD,gBAAiB,CAAE,KAAM,QAAS,QAAS,EAAE,EAC7C,QAAS,CAAE,KAAM,QAAS,QAAS,EAAE,EACrC,iBAAkB,CAAE,KAAM,MAAO,QAAS,IAAM,CAAA,CAAE,EAClD,aAAc,CAAE,KAAM,MAAO,QAAS,IAAI,EAC1C,eAAgB,CAAE,KAAM,OAAQ,QAAS,KAAK,EAC9C,QAAS,CAAE,KAAM,MAAO,QAAS,IAAM,CAAA,CAAE,EACzC,SAAU,CAAE,KAAM,QAAS,QAAS,EAAE,EACtC,aAAc,CAAE,KAAM,QAAS,QAAS,EAAE,EAC1C,oBAAqB,CAAE,KAAM,QAAS,QAAS,EAAE,EACjD,YAAa,CAAE,KAAM,MAAO,QAAS,IAAM,CAAA,CAAE,EAC7C,KAAM,CAAE,KAAM,MAAO,QAAS,IAAM,CAAA,CAAE,EACtC,YAAa,CAAE,KAAM,QAAS,QAAS,EAAE,EACzC,wBAAyB,CAAE,KAAM,QAAS,QAAS,EAAE,EACrD,aAAc,CAAE,KAAM,QAAS,QAAS,EAAE,EAC1C,WAAY,CAAE,KAAM,QAAS,QAAS,EAAE,EACxC,QAAS,CAAE,KAAM,OAAQ,QAAS,KAAO,CAAA,EAAG,EAC5C,gBAAiB,CAAE,KAAM,QAAS,QAAS,EAAE,EAC7C,UAAW,CACT,KAAM,CAAC,SAAU,MAAM,EACvB,QAAS,IACb,EACE,SAAU,CAAE,KAAM,CAAC,QAAS,OAAQ,MAAM,EAAG,QAAS,IAAI,EAC1D,eAAgB,CAAE,KAAM,QAAS,QAAS,EAAE,EAC5C,OAAQ,CAAE,KAAM,OAAQ,QAAS,OAAO,EACxC,YAAa,CAAE,KAAM,OAAQ,QAAS,GAAG,EACzC,UAAW,CAAE,KAAM,CAAC,OAAQ,MAAM,EAAG,QAAS,CAAC,EAC/C,YAAa,CACX,KAAM,CAAC,OAAQ,SAAU,MAAM,EAC/B,QAAS,IACb,EACE,oBAAqB,CAAE,KAAM,CAAC,QAAS,MAAM,EAAG,QAAS,EAAE,EAC3D,SAAU,CACR,KAAM,CAAC,SAAU,KAAK,EACtB,QAAS,IACb,EACE,YAAa,CAAE,KAAM,QAAS,QAAS,EAAE,EACzC,YAAa,CAAE,KAAM,OAAQ,QAAS,IAAI,EAC1C,WAAY,CAAE,KAAM,QAAS,QAAS,EAAE,EACxC,UAAW,CAAE,KAAM,QAAS,QAAS,EAAE,EACvC,WAAY,CAAE,KAAM,OAAQ,QAAS,QAAQ,EAC7C,WAAY,CAAE,KAAM,OAAQ,QAAS,QAAQ,EAC7C,cAAe,CACb,KAAM,CAAC,OAAQ,QAAQ,EACvB,QAAS,IAAM,EACnB,EACE,WAAY,CAAE,KAAM,CAAC,OAAQ,OAAO,EAAG,QAAS,EAAE,EAClD,qBAAsB,CAAE,KAAM,QAAS,QAAS,EAAE,EAClD,QAAS,CAAE,KAAM,CAAC,KAAM,MAAM,EAAG,QAAS,IAAI,EAC9C,QAAS,CAAE,KAAM,CAAC,KAAM,MAAM,EAAG,QAAS,IAAI,EAC9C,QAAS,CAAE,KAAM,OAAQ,QAAS,IAAI,EACtC,QAAS,CAAE,KAAM,OAAQ,QAAS,IAAI,EACtC,KAAM,CAAE,KAAM,OAAQ,QAAS,IAAI,EACnC,YAAa,CAAE,KAAM,OAAQ,QAAS,EAAE,EACxC,cAAe,CAAE,KAAM,QAAS,QAAS,EAAE,EAC3C,UAAW,CAAE,KAAM,QAAS,QAAS,EAAE,EACvC,gBAAiB,CAAE,KAAM,QAAS,QAAS,EAAE,EAC7C,MAAO,CAAE,KAAM,QAAS,QAAS,IAAI,EACrC,SAAU,CAAE,KAAM,QAAS,QAAS,EAAE,EACtC,aAAc,CAAE,KAAM,OAAQ,QAAS,KAAK,EAC5C,WAAY,CAAE,KAAM,QAAS,QAAS,EAAE,EACxC,cAAe,CAAE,KAAM,QAAS,QAAS,EAAE,EAC3C,KAAM,CAAE,KAAM,QAAS,QAAS,EAAE,EAClC,eAAgB,CAAE,KAAM,QAAS,QAAS,EAAE,EAC5C,iBAAkB,CAAE,KAAM,QAAS,QAAS,EAAE,EAC9C,iBAAkB,CAAE,KAAM,QAAS,QAAS,EAAE,EAC9C,mBAAoB,CAAE,KAAM,CAAC,OAAQ,MAAM,EAAG,QAAS,CAAC,EACxD,qBAAsB,CAAE,KAAM,CAAC,OAAQ,MAAM,EAAG,QAAS,CAAC,EAC1D,qBAAsB,CAAE,KAAM,CAAC,OAAQ,MAAM,EAAG,QAAS,CAAC,EAC1D,eAAgB,CAAE,KAAM,CAAC,OAAQ,MAAM,EAAG,QAAS,CAAC,EACpD,iBAAkB,CAAE,KAAM,CAAC,OAAQ,MAAM,EAAG,QAAS,CAAC,EACtD,iBAAkB,CAAE,KAAM,CAAC,OAAQ,MAAM,EAAG,QAAS,CAAC,EACtD,MAAO,CAAE,KAAM,CAAC,QAAS,MAAM,EAAG,QAAS,EAAE,EAC7C,IAAK,CAAE,KAAM,OAAQ,QAAS,IAAI,EAClC,SAAU,CAAE,KAAM,QAAS,QAAS,EAAE,EACtC,SAAU,CAAE,KAAM,QAAS,QAAS,EAAE,EACtC,OAAQ,CAAE,KAAM,CAAC,QAAS,MAAM,EAAG,QAAS,EAAE,EAC9C,UAAW,CAAE,KAAM,CAAC,QAAS,MAAM,EAAG,QAAS,EAAE,EACjD,SAAU,CAAE,KAAM,CAAC,QAAS,MAAM,EAAG,QAAS,EAAE,EAChD,UAAW,CAAE,KAAM,OAAQ,QAAS,KAAO,CAAA,EAAG,EAC9C,eAAgB,CAAE,KAAM,QAAS,QAAS,EAAE,EAC5C,cAAe,CAAE,KAAM,CAAC,SAAU,KAAK,EAAG,QAAS,MAAM,EACzD,iBAAkB,CAAE,KAAM,QAAS,QAAS,EAAE,EAC9C,SAAU,CAAE,KAAM,SAAU,QAAS,IAAI,EACzC,OAAQ,CAAE,KAAM,OAAQ,QAAS,MAAM,EACvC,cAAe,CAAE,KAAM,QAAS,QAAS,EAAE,EAC3C,UAAW,CAAE,KAAM,QAAS,QAAS,EAAE,EACvC,QAAS,CAAE,KAAM,QAAS,QAAS,EAAE,EACrC,sBAAuB,CAAE,KAAM,CAAC,SAAU,MAAM,EAAG,QAAS,IAAI,EAChE,cAAe,CAAE,KAAM,QAAS,QAAS,EAAE,EAC3C,GAAI,CAAE,KAAM,OAAQ,QAAS,KAAO,CAAA,EAAG,CACzC,EAAGC,GAAK,CACN,GAAGD,GACH,OAAQ,CAAE,KAAM,QAAS,QAAS,EAAE,EACpC,SAAU,CAAE,KAAM,OAAQ,QAAS,CAAC,EACpC,mBAAoB,CAAE,KAAM,CAAC,KAAM,KAAK,EAAG,QAAS,IAAI,EACxD,eAAgB,CAAE,KAAM,QAAS,QAAS,EAAE,EAC5C,SAAU,CAAE,KAAM,QAAS,QAAS,EAAE,EACtC,YAAa,CAAE,KAAM,OAAQ,QAAS,IAAI,EAC1C,aAAc,CAAE,KAAM,SAAU,QAAS,KAAO,CAAA,EAAG,EACnD,gBAAiB,CAAE,KAAM,QAAS,QAAS,EAAE,EAC7C,SAAU,CAAE,KAAM,QAAS,QAAS,MAAM,CAC5C,EAAGE,GAAK,CAAC,OAAO,EAAGC,GAAK,CAAC,UAAU,EAAGC,GAAqBC,GAAG,CAC5D,aAAc,CACZ,KAAM,CACV,EACE,OAAQ,YACR,MAAO,CACL,UAAW,CAAE,KAAM,QAAS,QAAS,EAAE,EACvC,cAAe,CAAE,KAAM,OAAQ,QAAS,CAAC,EACzC,GAAGJ,EACP,EACE,MAAO,CAAC,eAAgB,cAAe,aAAc,gBAAgB,EACrE,MAAM,EAAG,CAAE,KAAM,CAAC,EAAI,CACpB,MAAMxM,EAAI,EAAG9G,EAAI,EAAG,CAClB,mBAAoB0E,EACpB,uBAAwBwD,EACxB,wBAAyBb,EACzB,mBAAoBiB,EACpB,gBAAiBC,EACjB,eAAgB2G,EAChB,oBAAqBC,CAC3B,EAAQqB,GAAGxQ,CAAC,EAAG,CAAE,YAAa6Q,EAAG,aAAcC,CAAC,EAAKoC,GAAGlT,CAAC,EAAG,CAAE,YAAa+Q,CAAC,EAAKhC,GAAE,EAAIiC,EAAIxC,EAAE,IAAI,EAAGyC,EAAIzC,EAAE,IAAI,EAAGmC,EAAInC,EAAE,EAAE,EAAGQ,EAAIR,EAAE,CAAA,CAAE,EAAGS,EAAIT,EAAE,IAAI,EAAG0C,EAAI1C,EAAE,IAAI,EAC1JmF,GAAG,IAAM,CACP3T,EAAE,iBAAmB+Q,EAAE,CAACtI,GAAGuI,CAAC,EAAGvI,GAAGwI,CAAC,CAAC,EAAG,WAAW,EAAGL,EAAC,EAAI,OAAO,iBAAiB,SAAUA,CAAC,CAC/F,CAAC,EAAGgD,GAAG,IAAM,CACX,OAAO,oBAAoB,SAAUhD,CAAC,CACxC,CAAC,EACD,MAAMA,EAAI,IAAM,CACdD,EAAE,MAAQ,GAAI,WAAW,IAAM,CAC7B,MAAM0B,EAAIpD,EAAE,OAAO,sBAAqB,EAAIqD,EAAIpB,EAAE,OAAO,sBAAqB,EAC9EmB,GAAKC,IAAMtD,EAAE,MAAM,SAAW,GAAGsD,EAAE,MAAQD,EAAE,MAAQ,EAAE,MAAO1B,EAAE,MAAQ,EAC1E,EAAG,CAAC,CACN,EAAGQ,EAAI9C,EAAE,IAAMa,EAAE,MAAM,SAAW,CAACA,EAAE,MAAM,cAAgBlP,EAAE,mBAAqBA,EAAE,mBAAmB,SAAW,EAAI,EAAE,EAAG+R,EAAK1D,EAC9H,IAAM,CAACwC,EAAE,MAAM7Q,EAAE,kBAAkB,GAAK,CAAC8Q,EAAE,MAAM9Q,EAAE,kBAAkB,GAAK,CAACmR,EAAE,KACnF,EAAOV,EAAI,IAAM,CACX,MAAM4B,EAAInK,EAAE,MACZ,OAAOlI,EAAE,YAAcA,EAAE,YAAaqS,EAAEvJ,GAAG9I,EAAE,kBAAkB,CAAC,CAClE,EAAG0Q,EAAI,IAAM,CACX,MAAM2B,EAAIrS,EAAE,mBACZ,OAAOqH,EAAE,MAAM,MAAQ,EAAI,GAAG2K,EAAGK,EAAE,CAAC,CAAC,CAAC,MAAML,EAAGK,EAAE,CAAC,CAAC,CAAC,GAAK,CAACL,EAAGK,EAAE,CAAC,CAAC,EAAGL,EAAGK,EAAE,CAAC,CAAC,CAAC,CAC9E,EAAGL,EAAMK,GAAMrF,GACbqF,EACAnK,EAAE,MACFlI,EAAE,aACFsI,EAAE,MAAM,eACRtI,EAAE,UACFkI,EAAE,KACR,EAAO+J,EAAI5D,EAAE,IAAM,CAACrO,EAAE,oBAAsB,CAACA,EAAE,UAAY,GAAK,OAAOkI,EAAE,OAAS,SAAW,MAAM,QAAQlI,EAAE,kBAAkB,EAAIA,EAAE,mBAAmB,SAAW,GAAKA,EAAE,mBAAmB,CAAC,EAAI0Q,EAAC,EAAKvB,EAAE,MAAM,QAAUnP,EAAE,mBAAmB,IAAKqS,GAAM,GAAGL,EAAGK,CAAC,CAAC,EAAE,EAAIrS,EAAE,UAAY,GAAGgS,EAAGhS,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAK,GAAGgS,EAAGhS,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAOgS,EAAGhS,EAAE,kBAAkB,EAAIyQ,EAAC,CAAE,EAAGyB,GAAI,IAAM/C,EAAE,MAAM,QAAU,KAAO,MAAOgD,GAAK9D,EACxa,IAAM,MAAM,QAAQ4D,EAAE,KAAK,EAAIA,EAAE,MAAM,KAAKC,GAAC,CAAE,EAAID,EAAE,KAC3D,EAAOG,GAAK,IAAM,CACZvB,EAAE,MAAM7Q,EAAE,kBAAkB,GAAK8Q,EAAE,MAAM9Q,EAAE,kBAAkB,GAAKmR,EAAE,MAAQrK,EAAE,aAAa,EAAIA,EAAE,gBAAgB,CACnH,EACA,MAAO,CAACuL,EAAGC,KAAOnM,EAAC,EAAIC,EAAE,MAAO,CAC9B,QAAS,eACT,IAAK8K,EACL,MAAO,gBACb,EAAO,CACDmB,EAAE,OAAO,YAAY,EAAIwB,GAAGxB,EAAE,OAAQ,aAAcyB,GAAGC,GAAG,CAAE,IAAK,CAAC,EAAI,CACpE,mBAAoB1B,EAAE,mBACtB,SAAUN,EAAG,MACb,WAAY,IAAMM,EAAE,MAAM,aAAa,EACvC,YAAa,IAAMA,EAAE,MAAM,cAAc,CACjD,CAAO,CAAC,CAAC,GAAKlM,IAAKC,EAAE4N,GAAI,CAAE,IAAK,GAAK,CAC7BtL,EAAEhE,CAAC,EAAE,aAAeyB,EAAC,EAAIC,EAAE,MAAO,CAChC,IAAK,EACL,MAAO,wBACP,MAAO+L,GAAG,MACV,MAAO8B,GAAGjF,EAAE,KAAK,CAC3B,EAAW,CACDqD,EAAE,OAAO,gBAAgB,GAAK1B,EAAE,MAAQkD,GAAGxB,EAAE,OAAQ,iBAAkB,CACrE,IAAK,EACL,MAAOA,EAAE,kBACrB,CAAW,EAAI6B,EAAE,GAAI,EAAE,EACb,CAAC7B,EAAE,OAAO,gBAAgB,GAAK1B,EAAE,OAASxK,EAAC,EAAIC,EAAE4N,GAAI,CAAE,IAAK,CAAC,EAAI,CAC/DG,GAAGC,GAAGjC,GAAG,KAAK,EAAG,CAAC,CAC9B,EAAa,EAAE,GAAK+B,EAAE,GAAI,EAAE,CAC5B,EAAW,GAAIX,EAAE,GAAKW,EAAE,GAAI,EAAE,EACtB7N,GAAG,MAAO,CACR,QAAS,qBACT,IAAK4I,EACL,MAAO,qBACP,kBAAmB,YAC7B,EAAW,CACDoD,EAAE,OAAO,gBAAgB,EAAIwB,GAAGxB,EAAE,OAAQ,iBAAkB,CAC1D,IAAK,EACL,MAAOA,EAAE,kBACrB,CAAW,EAAI6B,EAAE,GAAI,EAAE,EACb7B,EAAE,OAAO,gBAAgB,EAAI6B,EAAE,GAAI,EAAE,GAAK/N,EAAC,EAAIC,EAAE4N,GAAI,CAAE,IAAK,CAAC,EAAI,CAC/D,CAACtL,EAAEH,CAAC,EAAE,SAAWG,EAAEhE,CAAC,EAAE,YAAcyB,IAAKC,EAAE,SAAU,CACnD,IAAK,EACL,QAAS,kBACT,IAAK4K,EACL,KAAM,SACN,MAAO,sCACP,QAASsB,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKC,GAAOF,EAAE,MAAM,cAAc,GACvD,UAAWC,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKC,GAAO7J,EAAEmB,EAAE,EAAE0I,EAAI,IAAMF,EAAE,MAAM,cAAc,CAAC,EACxF,EAAe+B,GAAG/B,EAAE,UAAU,EAAG,GAAG,GAAK6B,EAAE,GAAI,EAAE,EACrCxL,EAAEhE,CAAC,EAAE,SAAWyB,EAAC,EAAIC,EAAE,SAAU,CAC/B,IAAK,EACL,KAAM,SACN,MAAO,sCACP,QAASkM,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKC,GAAOF,EAAE,MAAM,YAAY,GACrD,UAAWC,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKC,GAAO7J,EAAEmB,EAAE,EAAE0I,EAAI,IAAMF,EAAE,MAAM,YAAY,CAAC,EACtF,EAAe+B,GAAG/B,EAAE,cAAc,EAAG,EAAE,GAAK6B,EAAE,GAAI,EAAE,EACxCxL,EAAEhE,CAAC,EAAE,YAAcyB,EAAC,EAAIC,EAAE,SAAU,CAClC,IAAK,EACL,QAAS,kBACT,IAAK6K,EACL,KAAM,SACN,MAAO,sCACP,SAAUc,EAAG,MACb,eAAgB,gBAChB,UAAWO,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKC,GAAO7J,EAAEmB,EAAE,EAAE0I,EAAI,IAAMH,GAAE,CAAE,GACvD,QAASA,EACvB,EAAegC,GAAG/B,EAAE,UAAU,EAAG,GAAImB,EAAE,GAAKU,EAAE,GAAI,EAAE,CACpD,EAAa,EAAE,EACf,EAAW,GAAG,CACd,EAAS,EAAE,EACX,EAAO,GAAG,EACR,CACF,CAAC,EAAGG,GAAK,CAAC,OAAQ,aAAc,UAAU,EAAGC,GAAK,CAAE,MAAO,2BAA2B,EAAIC,GAAK,CAAC,gBAAiB,gBAAiB,eAAgB,UAAW,YAAa,aAAa,EAAGC,GAAK,CAAC,YAAY,EAAGC,GAAqBf,GAAG,CACrO,OAAQ,mBACR,MAAO,CACL,MAAO,CAAA,EACP,KAAM,CAAA,EACN,OAAQ,CAAE,KAAM,OAAO,EACvB,gBAAiB,CAAE,KAAM,OAAO,EAChC,cAAe,CAAE,KAAM,OAAO,EAC9B,WAAY,CAAA,EACZ,eAAgB,CAAA,EAChB,SAAU,CAAE,KAAM,OAAO,EACzB,YAAa,CAAE,KAAM,OAAO,EAC5B,OAAQ,CAAA,EACR,UAAW,CAAE,KAAM,CAAC,QAAS,MAAM,CAAC,EACpC,OAAQ,CAAA,EACR,eAAgB,CAAE,KAAM,OAAO,EAC/B,WAAY,CAAA,EACZ,YAAa,CAAA,EACb,WAAY,CAAA,EACZ,aAAc,CAAA,CAClB,EACE,MAAO,CAAC,WAAY,SAAU,aAAc,aAAa,EACzD,MAAM,EAAG,CAAE,OAAQ,EAAG,KAAM5M,GAAK,CAC/B,KAAM,CAAE,iBAAkB9G,EAAG,sBAAuB0E,EAAG,eAAgBwD,GAAM6G,KAAM1H,EAAIP,EAAGwB,EAAI,EAAG,CAAE,oBAAqBC,EAAG,mBAAoB2G,EAAG,gBAAiBC,EAAG,uBAAwB0B,CAAC,EAAKL,GAClMlI,CACN,EAAO,CAAE,sBAAuBwI,CAAC,EAAK4D,GAAE,EAAI3D,EAAIvC,EAAE,EAAE,EAAGwC,EAAIxC,EAAE,IAAI,EAAGyC,EAAIzC,EAAE,IAAI,EAAGmC,EAAInC,EAAE,CAAA,CAAE,EAAGQ,EAAIR,EAAC,EAAIS,EAAIT,EAAE,IAAI,EAAG0C,EAAI1C,EAAE,CAAC,EAAGoC,EAAIpC,EAAE,IAAI,EAClImG,GAAG,IAAM,CACP3D,EAAE,MAAQ,IACZ,CAAC,EAAG2C,GAAG,IAAM,CACXiB,KAAK,KAAK,IAAMzC,IAAI,EAAG7J,EAAE,gBAAkByJ,EAAE,EAAIZ,EAAE,EAAE,CACvD,CAAC,EAAGyC,GAAG,IAAMzC,EAAE,EAAE,CAAC,EAClB,MAAMA,EAAK0B,GAAM,CACfvK,EAAE,kBAAoBA,EAAE,YAAY,OAASJ,EAAE2K,CAAC,EAAI7S,EAAE6S,CAAC,EACzD,EAAGd,EAAK,IAAM,CACZ,MAAMc,EAAIpK,GAAGwI,CAAC,EACd4B,IAAM3D,EAAE,MAAM,UAAY8B,EAAE,MAAQA,EAAE,OAAO,MAAM,CAAE,cAAe,EAAE,CAAE,EAAI6B,EAAE,MAAM,CAAE,cAAe,EAAE,CAAE,GAAI9B,EAAE,MAAQ8B,EAAE,aAAeA,EAAE,aAC5I,EAAGpC,EAAIpC,EACL,KAAO,CACL,YAAa,GACb,uBAAwB,CAAC/F,EAAE,YAC3B,uBAAwBA,EAAE,WAClC,EACA,EAAOoI,EAAIrC,EACL,IAAM/F,EAAE,YAAc,CAAE,OAAQ,GAAGA,EAAE,MAAM,KAAM,MAAO,0BAA0B,EAAK,MAC7F,EAAO0J,EAAK3D,EAAE,KAAO,CACf,gBAAiB,EACvB,EAAM,EAAG4D,EAAI5D,EACP,KAAO,CACL,QAAS,GACT,WAAY,GACZ,mBAAoB,GACpB,uBAAwB0C,EAAE,MAC1B,kBAAmBzI,EAAE,MAC7B,EACA,EAAO4J,GAAI7D,EAAE,KAAO,CACd,sBAAuB,GACvB,mBAAoB/F,EAAE,OAAO,QAAU,EACvC,oBAAqBA,EAAE,OAAO,OAAS,CAC7C,EAAM,EACFgJ,GACE,IAAMhJ,EAAE,MACR,IAAM6J,GAAG,EAAE,EACX,CAAE,KAAM,EAAE,CAChB,EACI,MAAMA,GAAK,CAACU,EAAI,KAAO,CACrB+B,GAAE,EAAG,KAAK,IAAM,CACd,MAAM9B,EAAKrK,GAAGuI,CAAC,EAAG+B,EAAItK,GAAGwI,CAAC,EAAG+B,GAAIvK,GAAGwG,CAAC,EAAGsC,EAAI9I,GAAGmI,CAAC,EAAGiE,EAAI7B,GAAIA,GAAE,wBAAwB,OAAS,EAC9FD,IAAMA,EAAE,sBAAqB,EAAG,OAAS7B,EAAE,MAAQ6B,EAAE,sBAAqB,EAAG,OAAS8B,EAAI3D,EAAE,MAAQ/B,EAAE,MAAM,WAAa0F,GAAI/B,GAAMvB,GAAKsB,IAAMtB,EAAE,UAAYuB,EAAG,UAAYvB,EAAE,WAAaL,EAAE,MAAQ,EAAI4B,EAAG,sBAAqB,EAAG,QAAU+B,EAC/O,CAAC,CACH,EAAGzC,GAAMS,GAAM,CACbA,EAAE,UAAYxL,EAAE,WAAYwL,EAAE,KAAK,CACrC,EAAGR,EAAI,IAAM,CACXhL,EAAE,QAAQ,EAAGA,EAAE,YAAY,CAC7B,EAAGiL,EAAKO,GAAM,CACZvK,EAAE,WAAa+J,EAAC,EAAIxB,EAAEgC,CAAC,EACzB,EAAGN,EAAK,CAACM,EAAGC,EAAIC,EAAGC,KAAM,CACvBH,KAAOC,EAAG,QAAUA,EAAG,QAAUxK,EAAE,cAAgB0I,EAAE,MAAQ6B,GAAIvK,EAAE,kBAAoB,MAAM,QAAQqI,EAAE,MAAMoC,CAAC,CAAC,EAAIpC,EAAE,MAAMoC,CAAC,EAAEC,EAAC,EAAIH,EAAIlC,EAAE,MAAMoC,CAAC,EAAI,CAACF,CAAC,EAAGL,EAAC,GAC5J,EAAGA,EAAI,IAAM,CACX,MAAMK,EAAIvK,EAAE,YAAY,OAAS,CAACA,EAAE,UAAU,EAAE,OAAOqI,EAAE,KAAK,EAAIA,EAAE,MAAM,OAAO,CAACrI,EAAE,cAAgB,CAAA,EAAK,CAAC2G,EAAE,KAAK,CAAC,CAAC,EACnHvK,EAAEoE,GAAG+J,CAAC,EAAGvK,EAAE,YAAY,OAAS,cAAgB,eAAe,CACjE,EAAGmK,GAAKI,GAAM,CACZvK,EAAE,iBAAmBe,GAAGwJ,EAAG1D,EAAE,MAAO,EAAE,CACxC,EAAGuC,EAAKmB,GAAM,CACZ7D,EAAE,MAAQ6D,EAAGxL,EAAE,cAAewL,CAAC,CACjC,EAAGf,EAAI,IAAM,CACX,GAAIO,EAAC,EAAI,CAAC/J,EAAE,OAAQ,CAClB,MAAMuK,EAAIrJ,GAAGlB,EAAE,aAAe,KAAM,YAAY,EAChDuK,GAAK5J,GAAG4J,CAAC,GAAG,MAAK,CACnB,CACF,EAAGhB,EAAKgB,GAAM,CACZ,OAAQA,EAAE,IAAG,CACX,KAAKjL,GAAG,IACN,OAAO0K,EAAEO,CAAC,EACZ,KAAKjL,GAAG,UACN,OAAO6K,GAAEI,CAAC,EACZ,KAAKjL,GAAG,WACN,OAAO6K,GAAEI,CAAC,EACZ,KAAKjL,GAAG,QACN,OAAO6K,GAAEI,CAAC,EACZ,KAAKjL,GAAG,UACN,OAAO6K,GAAEI,CAAC,EACZ,QACE,MACV,CACI,EAAGH,GAAMG,GAAM,CACb,GAAIA,EAAE,MAAQjL,GAAG,MAAO,OAAOyK,EAAC,EAChC,GAAIQ,EAAE,MAAQjL,GAAG,IAAK,OAAOkK,EAAC,CAChC,EACA,OAAO,EAAE,CAAE,UAAWC,EAAI,EAAG,CAACc,EAAGC,KAAQ3M,IAAKC,EAAE,MAAO,CACrD,QAAS,cACT,IAAK6K,EACL,MAAO6D,GAAGrE,EAAE,KAAK,EACjB,MAAOwD,GAAGvD,EAAE,KAAK,EACjB,KAAM,EAAE,YAAc,OAAS,SAC/B,aAAc,EAAE,aAChB,SAAU,EAAE,YAAc,OAAS,IACnC,UAAWmB,EACX,QAASiB,EAAG,CAAC,IAAMA,EAAG,CAAC,EAAIiC,GAAG,IAAM,CACpC,EAAG,CAAC,SAAS,CAAC,EACpB,EAAO,CACD1O,GAAG,MAAO,CACR,QAAS,eACT,IAAKuK,EACL,MAAOkE,GAAG5C,GAAE,KAAK,EACjB,MAAO+B,GAAG,CAAE,sBAAuB,GAAG/C,EAAE,KAAK,KAAM,EACnD,KAAM,MACd,EAAS,CACD7K,GAAG,MAAOiO,GAAI,CACZT,GAAGhB,EAAE,OAAQ,QAAQ,CAC/B,CAAS,EACDA,EAAE,OAAO,QAAUgB,GAAGhB,EAAE,OAAQ,UAAW,CAAE,IAAK,CAAC,CAAE,GAAK1M,EAAE,EAAE,EAAGC,EAAE4N,GAAI,CAAE,IAAK,CAAC,EAAIgB,GAAG,EAAE,MAAO,CAACjC,EAAGC,MAAO7M,EAAC,EAAIC,EAAE,MAAO,CACtH,IAAK4M,GACL,MAAO8B,GAAG,CAAC,kBAAmB,CAAE,aAAc,EAAE,MAAM,QAAU,CAAC,CAAE,CAAC,EACpE,KAAM,KAChB,EAAW,EACA3O,EAAE,EAAE,EAAGC,EAAE4N,GAAI,KAAMgB,GAAGjC,EAAG,CAACxB,EAAGsD,KAAO1O,EAAC,EAAIC,EAAE,MAAO,CACjD,IAAKmL,EAAE,MACP,QAAS,GACT,IAAMC,GAAMe,EAAGf,EAAGD,EAAGyB,GAAG6B,CAAC,EACzB,KAAM,WACN,MAAOC,GAAG9C,EAAG,KAAK,EAClB,gBAAiBT,EAAE,QAAU,OAC7B,gBAAiBA,EAAE,UAAY,OAC/B,SAAU,IACV,eAAgBA,EAAE,KAClB,QAASwD,GAAIvD,GAAMY,GAAGb,CAAC,EAAG,CAAC,SAAS,CAAC,EACrC,UAAYC,GAAM9I,EAAEmB,EAAE,EAAE2H,EAAG,IAAMY,GAAGb,CAAC,EAAG,EAAE,EAC1C,YAAcC,GAAME,EAAEH,EAAE,KAAK,CACzC,EAAa,CACDlL,GAAG,MAAO,CACR,MAAOyO,GAAGvD,EAAE,SAAS,CACnC,EAAe,CACDsB,EAAE,OAAO,KAAOgB,GAAGhB,EAAE,OAAQ,OAAQ,CACnC,IAAK,EACL,KAAMtB,CACtB,CAAe,EAAI2C,EAAE,GAAI,EAAE,EACbrB,EAAE,OAAO,KAAOqB,EAAE,GAAI,EAAE,GAAK/N,EAAC,EAAIC,EAAE4N,GAAI,CAAE,IAAK,CAAC,EAAI,CAClDG,GAAGC,GAAG7C,EAAE,IAAI,EAAG,CAAC,CAChC,EAAiB,EAAE,EACnB,EAAe,CAAC,CAChB,EAAa,GAAIgD,EAAE,EAAE,EAAG,GAAG,EAC3B,EAAW,CAAC,EAAE,EAAG,GAAG,EACpB,EAAS,CAAC,EACJ1B,EAAE,OAAO,aAAa,EAAIoC,IAAI9O,EAAC,EAAIC,EAAE,SAAU,CAC7C,IAAK,EACL,QAAS,eACT,IAAK6I,EACL,KAAM,SACN,aAAcvG,EAAEH,CAAC,GAAG,cACpB,MAAOuM,GAAG7C,EAAE,KAAK,EACjB,SAAU,IACV,QAASI,EACT,UAAWK,EACnB,EAAS,CACDmB,GAAGhB,EAAE,OAAQ,aAAa,CAClC,EAAS,GAAI2B,EAAE,GAAI,CACX,CAACU,GAAI,CAACxM,EAAEoI,CAAC,EAAE,EAAE,eAAgB,EAAE,IAAI,CAAC,CAC5C,CAAO,EAAIoD,EAAE,GAAI,EAAE,CACnB,EAAO,GAAIG,EAAE,EACX,CACF,CAAC,EAAGc,GAAK,CAAC,gBAAgB,EAAGC,GAAqB1B,GAAG,CACnD,OAAQ,eACR,MAAO,CACL,eAAgB,CAAA,EAChB,QAAS,CAAE,KAAM,OAAO,EACxB,SAAU,CAAE,KAAM,OAAO,EACzB,SAAU,CAAE,KAAM,OAAO,CAC7B,EACE,MAAM,EAAG,CACP,MAAM,EAAI,EAAG5M,EAAIuH,EACf,IAAM,EAAE,eAAiB,EAAI,CAAC,GAAG,MAAM,EAAE,cAAc,EAAE,KAAI,CAAE,EAAI,CAAC,CAAC,CAC3E,EAAOrO,EAAIqO,EAAE,KAAO,CACd,sBAAuB,EAAE,eAAiB,CAChD,EAAM,EACF,MAAO,CAAC3J,EAAGwD,KAAO/B,EAAC,EAAIC,EAAE,MAAO,CAC9B,MAAO0O,GAAG,CACR,eAAgB,CAAC,EAAE,QACnB,4BAA6B,EAAE,QAC/B,iBAAkB,EAAE,eAAiB,EACrC,6BAA8B,EAAE,QACxC,CAAO,EACD,iBAAkB,EAAE,QAC1B,EAAO,EACA3O,EAAE,EAAE,EAAGC,EAAE4N,GAAI,KAAMgB,GAAGlO,EAAE,MAAO,CAACO,EAAGiB,KAAOnC,EAAC,EAAIC,EAAE,MAAO,CACvD,IAAKiB,EACL,MAAOyN,GAAG9U,EAAE,KAAK,CACzB,EAAS,CACD6T,GAAGnP,EAAE,OAAQ,UAAW,CACtB,SAAU2C,EACV,MAAOiB,CACjB,CAAS,CACT,EAAS,CAAC,EAAE,EAAG,GAAG,EAClB,EAAO,GAAI6M,EAAE,EACX,CACF,CAAC,EAAGE,GAAK,CAAC,kBAAmB,aAAc,eAAe,EAAGC,GAAqB5B,GAAG,CACnF,aAAc,CACZ,KAAM,CACV,EACE,OAAQ,WACR,MAAO,CACL,UAAW,CAAA,EACX,OAAQ,CAAA,EACR,SAAU,CAAE,KAAM,OAAO,CAC7B,EACE,MAAO,CAAC,WAAY,SAAS,EAC7B,MAAM,EAAG,CAAE,KAAM,CAAC,EAAI,CACpB,MAAM5M,EAAI,EAAG9G,EAAIwO,EAAE,IAAI,EACvB,OAAOmF,GAAG,IAAM7M,EAAE,UAAW9G,CAAC,CAAC,EAAG,CAAC0E,EAAGwD,KAAO/B,IAAKC,EAAE,SAAU,CAC5D,QAAS,QACT,IAAKpG,EACL,KAAM,SACN,kBAAmB,EAAE,OACrB,MAAO,4BACP,SAAU,IACV,aAAc,EAAE,UAChB,gBAAiB,EAAE,UAAY,OAC/B,QAASkI,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKb,GAAMP,EAAE,UAAU,GAC5C,UAAWoB,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKb,GAAMqB,EAAEmB,EAAE,EAAExC,EAAG,IAAMP,EAAE,UAAU,EAAG,EAAE,EACxE,EAAO,CACDT,GAAG,OAAQ,CACT,MAAOyO,GAAG,CAAC,gBAAiB,CAAE,uBAAwB,EAAE,SAAU,CAAC,CAC3E,EAAS,CACDjB,GAAGnP,EAAE,OAAQ,SAAS,CAC9B,EAAS,CAAC,CACV,EAAO,GAAI2Q,EAAE,EACX,CACF,CAAC,EAAGE,GAAK,CAAC,aAAc,cAAc,EAAGC,GAAqB9B,GAAG,CAC/D,OAAQ,iBACR,MAAO,CACL,GAAGJ,GACH,eAAgB,CAAE,KAAM,QAAS,QAAS,EAAE,EAC5C,MAAO,CAAE,KAAM,MAAO,QAAS,IAAM,CAAA,CAAE,EACvC,SAAU,CAAE,KAAM,OAAQ,QAAS,CAAC,EACpC,KAAM,CAAE,KAAM,OAAQ,QAAS,CAAC,EAChC,WAAY,CAAE,KAAM,SAAU,QAAS,IAAM,EAAE,CACnD,EACE,MAAO,CAAC,qBAAsB,cAAe,aAAa,EAC1D,MAAM,EAAG,CAAE,KAAM,CAAC,EAAI,CACpB,MAAMxM,EAAI,EAAG9G,EAAI,EAAG,CAAE,cAAe0E,EAAG,aAAcwD,CAAC,EAAKwM,GAAE,EAAI,CAAE,gBAAiBrN,EAAG,wBAAyBiB,EAAG,oBAAqBC,EAAG,qBAAsB2G,EAAG,YAAaC,CAAC,EAAKqB,GAAGxQ,CAAC,EAAG,CAAE,eAAgB6Q,EAAG,eAAgBC,GAAM2E,GAAGvG,CAAC,EAAG6B,EAAIvC,EAAE,EAAE,EAAGwC,EAAI3C,EAAE,IAAMjG,GAAGpI,EAAE,KAAMA,EAAE,MAAM,CAAC,EAAGiR,EAAI,CAAChC,EAAI,GAAIiC,IAAM,CAChTH,EAAE,MAAQ,CAACA,EAAE,MAAOjK,EAAE,qBAAsB,CAAE,KAAMmI,EAAG,KAAMiC,CAAC,CAAE,CAClE,EAAGP,EAAK1B,GAAM,CACZ8B,EAAE,MAAQ,GAAIjK,EAAE,cAAemI,CAAC,CAClC,EAAGD,EAAI,CAACC,EAAI,KAAO,CACjBnI,EAAE,cAAemI,CAAC,CACpB,EACA,MAAO,CAACA,EAAGiC,KAAO/K,EAAC,EAAIC,EAAE4N,GAAI,KAAM,CACjC3N,GAAG,MAAO,CACR,MAAOyO,GAAG,CAAC,uBAAwB,CAAE,gBAAiB/D,EAAE,MAAO,CAAC,CACxE,EAAS,CACDrI,EAAER,CAAC,EAAEQ,EAAEJ,CAAC,EAAG,EAAE,QAAQ,GAAKnC,IAAKuP,GAAGJ,GAAI,CACpC,IAAK,EACL,IAAK,gBACL,aAAc5M,EAAEH,CAAC,GAAG,SACpB,SAAU,EAAE,WAAW,EAAE,EACzB,MAAOuM,GAAGpM,EAAEyG,CAAC,GAAG,UAAU,EAC1B,WAAY+B,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKN,GAAM5B,EAAE,EAAE,EACjD,EAAW,CACD,QAAS2G,GAAG,IAAM,CAChB1G,EAAE,OAAO,YAAY,EAAI4E,GAAG5E,EAAE,OAAQ,aAAc,CAAE,IAAK,CAAC,CAAE,EAAIiF,EAAE,GAAI,EAAE,EAC1EjF,EAAE,OAAO,YAAY,EAAIiF,EAAE,GAAI,EAAE,GAAK/N,EAAC,EAAIuP,GAAGhN,EAAEnC,EAAE,EAAG,CAAE,IAAK,EAAG,EAC3E,CAAW,EACD,EAAG,CACb,EAAW,EAAG,CAAC,aAAc,WAAY,OAAO,CAAC,GAAK2N,EAAE,GAAI,EAAE,EACtD7N,GAAG,SAAU,CACX,IAAK,kBACL,MAAO,0BACP,KAAM,SACN,aAAc,GAAG,EAAE,IAAI,IAAIqC,EAAEH,CAAC,GAAG,gBAAgB,GACjD,eAAgB,iBAAiB,EAAE,QAAQ,GAC3C,QAAS2I,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAI,IAAMD,EAAE,EAAE,GACnC,UAAWC,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAI0E,GAAG,IAAM3E,EAAE,EAAE,EAAG,CAAC,OAAO,CAAC,EAC9D,EAAW,CACDhC,EAAE,OAAO,KAAO4E,GAAG5E,EAAE,OAAQ,OAAQ,CACnC,IAAK,EACL,KAAM,EAAE,KACR,KAAM+B,EAAE,MACR,MAAO,EAAE,IACrB,CAAW,EAAIkD,EAAE,GAAI,EAAE,EACbjF,EAAE,OAAO,KAAOiF,EAAE,GAAI,EAAE,GAAK/N,EAAC,EAAIC,EAAE4N,GAAI,CAAE,IAAK,CAAC,EAAI,CAClDG,GAAGC,GAAGpD,EAAE,KAAK,EAAG,CAAC,CAC7B,EAAa,EAAE,EACf,EAAW,GAAIuE,EAAE,EACT7M,EAAEhE,CAAC,EAAEgE,EAAEJ,CAAC,EAAG,EAAE,QAAQ,GAAKnC,IAAKuP,GAAGJ,GAAI,CACpC,IAAK,EACL,IAAK,gBACL,aAAc5M,EAAEH,CAAC,GAAG,SACpB,SAAU,EAAE,WAAW,EAAE,EACzB,MAAOuM,GAAGpM,EAAEyG,CAAC,GAAG,UAAU,EAC1B,WAAY+B,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKN,GAAM5B,EAAE,EAAE,EACjD,EAAW,CACD,QAAS2G,GAAG,IAAM,CAChB1G,EAAE,OAAO,aAAa,EAAI4E,GAAG5E,EAAE,OAAQ,cAAe,CAAE,IAAK,CAAC,CAAE,EAAIiF,EAAE,GAAI,EAAE,EAC5EjF,EAAE,OAAO,aAAa,EAAIiF,EAAE,GAAI,EAAE,GAAK/N,EAAC,EAAIuP,GAAGhN,EAAElC,EAAE,EAAG,CAAE,IAAK,EAAG,EAC5E,CAAW,EACD,EAAG,CACb,EAAW,EAAG,CAAC,aAAc,WAAY,OAAO,CAAC,GAAK0N,EAAE,GAAI,EAAE,CAC9D,EAAS,CAAC,EACJ2B,GAAGC,GAAI,CACL,KAAMpN,EAAEoI,CAAC,EAAE,EAAE,cAAc,EAC3B,IAAKpI,EAAEmI,CAAC,CAChB,EAAS,CACD,QAAS8E,GAAG,IAAM,CAChB,EAAE,gBAAkBxP,IAAKuP,GAAGjB,GAAI,CAC9B,IAAK,EACL,MAAO,EAAE,MACT,aAAcxF,EAAE,UAChB,YAAaA,EAAE,SACf,OAAQA,EAAE,OACV,UAAWA,EAAE,WAAa,CAACvG,EAAErB,CAAC,EAAE,cAChC,kBAAmB4H,EAAE,eACrB,cAAeA,EAAE,WACjB,gBAAiBvG,EAAEH,CAAC,GAAG,aAAa,EAAE,EACtC,KAAM,OACN,SAAU0I,EACV,WAAYC,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKN,GAAMD,EAAEC,CAAC,EAClD,EAAamF,GAAG,CACJ,cAAeJ,GAAG,IAAM,CACtB1G,EAAE,OAAO,eAAe,EAAI4E,GAAG5E,EAAE,OAAQ,gBAAiB,CAAE,IAAK,CAAC,CAAE,EAAIiF,EAAE,GAAI,EAAE,EAChFjF,EAAE,OAAO,eAAe,EAAIiF,EAAE,GAAI,EAAE,GAAK/N,EAAC,EAAIuP,GAAGhN,EAAEzC,EAAE,EAAG,CAAE,IAAK,EAAG,EAChF,CAAa,EACD,EAAG,CACf,EAAa,CACDgJ,EAAE,OAAO,oBAAoB,EAAI,CAC/B,KAAM,OACN,GAAI0G,GAAG,CAAC,CAAE,KAAM/E,CAAC,IAAO,CACtBiD,GAAG5E,EAAE,OAAQ,qBAAsB,CACjC,KAAM2B,EAAE,KACR,MAAOA,EAAE,KAC3B,CAAiB,CACjB,CAAe,EACD,IAAK,GACnB,EAAgB,MAChB,CAAW,EAAG,KAAM,CAAC,QAAS,aAAc,YAAa,SAAU,UAAW,kBAAmB,cAAe,eAAe,CAAC,GAAKsD,EAAE,GAAI,EAAE,CAC7I,CAAS,EACD,EAAG,CACX,EAAS,EAAG,CAAC,OAAQ,KAAK,CAAC,CAC3B,EAAO,EAAE,EACP,CACF,CAAC,EAAG8B,GAAK,CAAC,EAAG,EAAGlP,IAAM,CACpB,GAAI,EAAE,OAAS,MAAM,QAAQ,EAAE,KAAK,EAClC,GAAI,EAAE,MAAM,KAAM9G,GAAMgL,GAAG,EAAGhL,CAAC,CAAC,EAAG,CACjC,MAAMA,EAAI,EAAE,MAAM,OAAQ0E,GAAM,CAACsG,GAAGtG,EAAG,CAAC,CAAC,EACzC,EAAE,MAAQ1E,EAAE,OAASA,EAAI,IAC3B,MAAQ8G,GAAK,CAACA,EAAI,EAAE,MAAM,QAAU,CAACA,IAAM,EAAE,MAAM,KAAK,CAAC,OAEzD,EAAE,MAAQ,CAAC,CAAC,CAChB,EAAGmP,GAAK,CAAC,EAAG,EAAGnP,IAAM,CACnB,IAAI9G,EAAI,EAAE,MAAQ,EAAE,MAAM,MAAK,EAAK,CAAA,EACpC,OAAOA,EAAE,SAAW,GAAKA,EAAE,CAAC,IAAM,OAASA,EAAI,CAAA,GAAKA,EAAE,QAAU8K,GAAG,EAAG9K,EAAE,CAAC,CAAC,EAAIA,EAAE,QAAQ,CAAC,EAAIA,EAAE,CAAC,EAAI,EAAG8G,EAAE,YAAa,CAAC,IAAM9G,EAAI,CAAC,CAAC,EAAG8G,EAAE,cAAe,CAAC,GAAI9G,CAC9J,EAAGkW,GAAK,CAAC,EAAG,EAAGpP,EAAG9G,IAAM,CACtB,IAAM,EAAE,CAAC,GAAK,EAAE,CAAC,GAAK8G,GAAK,EAAE,YAAY,EAAG,EAAE,CAAC,GAAK,CAAC,EAAE,CAAC,GAAK9G,GAAK8G,GAAK,EAAE,YAAY,EACvF,EAAGqP,GAAM,GAAM,CACb,MAAM,QAAQ,EAAE,KAAK,GAAK,EAAE,MAAM,QAAU,GAAK,EAAE,MAAQ,EAAE,WAAW,MAAQ,EAAE,MAAM,IAAK,GAAMvP,GAAGI,EAAE,CAAC,EAAG,EAAE,QAAQ,CAAC,EAAI,MAAM,QAAQ,EAAE,KAAK,IAAM,EAAE,WAAW,MAAQJ,GAAGI,EAAE,EAAE,KAAK,EAAG,EAAE,QAAQ,EACtM,EAAGoP,GAAK,CAAC,EAAG,EAAGtP,EAAG9G,IAAM,MAAM,QAAQ,EAAE,KAAK,IAAM,EAAE,MAAM,SAAW,GAAK,EAAE,MAAM,SAAW,GAAKA,EAAE,MAAM,cAAgBA,EAAE,MAAM,aAAekL,GAAG,EAAG,EAAE,MAAM,CAAC,CAAC,GAAKF,GAAG,EAAG,EAAE,MAAM,CAAC,CAAC,GAAK,CAAC,EAAE,MAAM,CAAC,EAAG,CAAC,EAAIhL,EAAE,MAAM,WAAa8K,GAAG,EAAG,EAAE,MAAM,CAAC,CAAC,GAAKE,GAAG,EAAG,EAAE,MAAM,CAAC,CAAC,GAAK,CAAC,EAAG,EAAE,MAAM,CAAC,CAAC,GAAKlE,EAAE,sBAAuB,CAAC,EAAG,EAAE,OAAS,CAAA,EAAIuP,GAAK,CAAC,CAChV,eAAgB,EAChB,MAAO,EACP,UAAWvP,EACX,UAAW9G,EACX,UAAW0E,EACX,WAAYwD,EACZ,MAAOb,EACP,QAASiB,EACT,KAAMC,EACN,MAAO2G,EACP,KAAMC,CACR,IAAM,CACJ,MAAM0B,EAAIxC,EAAE,IAAMlG,GAAGd,EAAE,UAAWA,EAAE,OAAQA,EAAE,YAAY,CAAC,EAAGyJ,EAAItC,EAAE,CAAC,EAAE,CAAC,EAAGuC,EAAI1C,EAAE,IAAM,CAAC4D,EAAGC,KAAM,CAC/F,MAAMC,GAAK9H,GAAGgB,GAAmB,IAAI,IAAM,EAAG,CAC5C,MAAO6D,EAAE,MAAM+C,CAAC,EAChB,KAAM1J,EAAE,MAAM0J,CAAC,CACrB,CAAK,EAAGG,GAAKF,GAAIoE,GAAGnE,EAAE,EAAIoE,GAAGpE,EAAE,EAC3B,OAAOvF,GACLwF,GACApS,EAAE,MAAM,QACRA,EAAE,MAAM,QACRqH,EAAE,wBACF6K,EACN,CACE,CAAC,EAAGlB,EAAI,IAAM,MAAM,QAAQ9I,EAAE,KAAK,GAAK,EAAE,MAAM,MAAQA,EAAE,MAAM,CAAC,EAAG+I,EAAI,IAAM,CAC5E,QAASgB,EAAI,EAAGA,EAAI,EAAE,MAAM,MAAOA,IACjC,GAAIA,IAAM,EACRvN,EAAE,MAAMuN,CAAC,EAAIvN,EAAE,MAAM,CAAC,UACfuN,IAAM,EAAE,MAAM,MAAQ,GAAKjB,EAAC,EACnCtM,EAAE,MAAMuN,CAAC,EAAI,CACX,MAAOpG,GAAG3D,EAAE,MAAM,CAAC,CAAC,EACpB,KAAM0D,GAAG1D,EAAE,MAAM,CAAC,CAAC,CAC7B,MACW,CACH,MAAMgK,GAAI7H,GAAGrD,EAAC,EAAItC,EAAE,MAAMuN,EAAI,CAAC,CAAC,EAChCvN,EAAE,MAAMuN,CAAC,EAAI,CAAE,MAAOpG,GAAGqG,EAAC,EAAG,KAAMtG,GAAGuH,GAAGjB,GAAG,CAAC,CAAC,CAAC,CACjD,CACJ,EAAGvB,EAAKsB,GAAM,CACZ,GAAI,CAACA,EAAG,OAAOhB,EAAC,EAChB,MAAMiB,GAAI7H,GAAGrD,EAAC,EAAItC,EAAE,MAAMuN,CAAC,CAAC,EAC5B,OAAOvN,EAAE,MAAM,CAAC,EAAE,KAAOkH,GAAGwH,GAAGlB,GAAG,EAAE,MAAM,MAAQ,CAAC,CAAC,EAAGjB,EAAC,CAC1D,EAAGjC,EAAI,CAACiD,EAAGC,KAAM,CACf,MAAMC,GAAKqE,GAAGtE,GAAGD,CAAC,EAClB,OAAO,EAAE,MAAM,iBAAmBE,GAAK,EAAID,GAAID,CACjD,EAAGhD,EAAKgD,GAAM5K,EAAE,gBAAkB,EAAE,MAAM,KAAO4K,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIjD,EAAEiD,EAAE,CAAC,EAAGA,EAAE,CAAC,CAAC,EAAIA,EAAE,CAAC,EAAGf,EAAI,IAAM,CAC7F,GAAIhJ,EAAE,MAAO,CACX,MAAM+J,EAAI,MAAM,QAAQ/J,EAAE,KAAK,EAAI+G,EAAE/G,EAAE,KAAK,EAAIA,EAAE,MAClDxD,EAAE,MAAM,CAAC,EAAI,CAAE,MAAOmH,GAAGoG,CAAC,EAAG,KAAMrG,GAAGqG,CAAC,CAAC,CAC1C,CACF,EAAGrB,EAAI,IAAM,CACXM,EAAC,EAAI,EAAE,MAAM,OAASD,EAAC,CACzB,EACAK,GAAGpJ,EAAG,CAAC+J,EAAGC,KAAM,CACd7K,EAAE,iBAAmB,KAAK,UAAU4K,GAAK,CAAA,CAAE,IAAM,KAAK,UAAUC,IAAK,CAAA,CAAE,GAAKtB,EAAC,CAC/E,CAAC,EAAG+C,GAAG,IAAM,CACX/C,EAAC,CACH,CAAC,EACD,MAAMO,EAAI,CAACc,EAAGC,KAAM,CAClBxN,EAAE,MAAMwN,EAAC,EAAE,KAAOD,EAAG9C,EAAE,oBAAqB,CAAE,SAAU+C,GAAG,KAAMD,EAAG,MAAOvN,EAAE,MAAMwN,EAAC,EAAE,KAAK,CAAE,EAAG,EAAE,MAAM,OAAS,CAAC,EAAE,MAAM,MAAQvB,EAAEuB,EAAC,CACvI,EAAGH,EAAK1D,EAAE,IAAO4D,GAAM7I,GAAGyH,EAAE,MAAQqB,IAAM,CACxC,MAAMC,GAAK5J,EAAE,MAAM0J,CAAC,IAAMC,GAAE,MAAOE,GAAKjJ,GACtC+I,GAAE,MACFnG,GAAG/L,EAAE,MAAM,OAAO,EAClB+L,GAAG/L,EAAE,MAAM,OAAO,CACxB,GAASsI,EAAE,MAAM,OAAO,SAASC,EAAE,MAAM0J,CAAC,CAAC,EAAGI,EAAIzE,GAAG9G,EAAE,MAAOoL,GAAE,KAAK,EACjE,MAAO,CAAE,OAAQC,GAAI,SAAUC,GAAI,YAAaC,CAAC,CACnD,CAAC,CAAC,EAAG5B,EAAI,CAACwB,EAAGC,KAAM,CACjBf,EAAEc,EAAGC,EAAC,EAAGF,EAAGE,EAAC,CACf,EAAGxB,EAAI,CAACuB,EAAGC,GAAI,KAAO,CACpB,GAAI,CAACnB,EAAE,MAAMkB,EAAGC,EAAC,EAAG,CAClB,MAAMC,GAAKD,GAAI3J,EAAE,MAAM0J,CAAC,EAAI,EAAI1J,EAAE,MAAM0J,CAAC,EAAI,EAC7Cd,EAAEgB,GAAIF,CAAC,CACT,CACF,EAAGD,EAAK,CAACC,EAAGC,GAAI,GAAIC,KAAO,CACzBD,IAAK/C,EAAE,YAAY,EAAGgD,KAAO,OAASrB,EAAE,MAAMmB,CAAC,EAAIE,GAAKrB,EAAE,MAAMmB,CAAC,EAAI,CAACnB,EAAE,MAAMmB,CAAC,EAAGnB,EAAE,MAAMmB,CAAC,EAAI9C,EAAE,iBAAkB,CAAE,KAAM,GAAI,QAAS1H,GAAG,IAAI,CAAE,GAAK0H,EAAE,gBAAgB,EAAGA,EAAE,iBAAkB,CAAE,KAAM,GAAI,QAAS1H,GAAG,IAAI,CAAE,EAC/N,EACA,MAAO,CACL,WAAYsJ,EACZ,aAAcgB,EACd,eAAgBjB,EAChB,WAAYK,EACZ,iBAAkBa,EAClB,iBAAkBvB,EAClB,WAAYC,CAChB,CACA,EAAG+F,GAAK,CAAC,EAAG,IAAM,CAChB,KAAM,CACJ,wBAAyB3P,EACzB,oBAAqB9G,EACrB,qBAAsB0E,EACtB,gBAAiBwD,EACjB,eAAgBb,EAChB,mBAAoBiB,EACpB,UAAWC,EACX,YAAa2G,EACb,iBAAkBC,EAClB,oBAAqB0B,CACzB,EAAML,GAAG,CAAC,EAAGM,EAAI,IAAM,CACnB,EAAE,iBAAmBF,EAAEhF,GAAG5E,EAAE,EAAE,SAAS,CAAC,EAAG,CAAC,CAC9C,EAAG,CAAE,WAAY+J,EAAG,KAAMC,EAAG,MAAOC,EAAG,UAAWN,CAAC,EAAK+F,GAAG,EAAG,EAAG5F,CAAC,EAAG9B,EAAIX,EAAE,IAAMhG,GAAG,EAAE,aAAc,EAAE,OAAQ,EAAE,eAAe,CAAC,EAAG4G,EAAIT,EAAE,IAAI,EAAG,CAAE,iBAAkB0C,CAAC,EAAKgC,GAAG,CAAC,EAAG,CAC/K,WAAYtC,EACZ,aAAcO,EACd,eAAgBY,EAChB,iBAAkBtB,EAClB,iBAAkBC,EAClB,WAAYsB,EACZ,WAAYC,CAChB,EAAMoE,GAAG,CACL,WAAYtF,EACZ,eAAgBjK,EAChB,MAAOO,EACP,UAAWiB,EACX,UAAWqI,EACX,KAAMK,EACN,UAAWzI,EACX,MAAO0I,EACP,QAAS9B,EACT,MAAO,EACP,KAAM,CACV,CAAG,EACDwE,GAAG,IAAM,CACP,EAAE,YAAc5C,EAAE,OAAS,EAAE,gBAAkB,CAACA,EAAE,QAAUH,EAAEhF,GAAG5E,EAAE,EAAE,SAAS,CAAC,EAAG,CAAC,CACrF,CAAC,EACD,MAAMkL,GAAKc,GAAMA,EAAI,CAAE,MAAOnH,GAAGmH,CAAC,EAAG,KAAMpH,GAAGoH,CAAC,CAAC,EAAK,CAAE,MAAO,KAAM,KAAM,IAAI,EAAIb,GAAK,IAAMpB,EAAE,MAAQ,MAAM,QAAQA,EAAE,KAAK,EAAIA,EAAE,MAAM,IAAKiC,GAAMd,GAAEc,CAAC,CAAC,EAAId,GAAEnB,EAAE,KAAK,EAAImB,GAAC,EAAIE,GAAK,CAACY,EAAGzB,IAAM,CAC1L,MAAMsD,GAAIlE,EAAE,MAAMqC,CAAC,EAAGxB,EAAIW,GAAE,EAC5B,OAAO,MAAM,QAAQX,CAAC,EAAIA,EAAE,KAAMC,GAAMA,EAAE,OAASoD,IAAG,MAAQpD,EAAE,QAAUF,CAAC,EAAIsD,IAAG,OAASrD,EAAE,MAAQD,IAAMC,EAAE,KAC/G,EAAGa,EAAI,CAACW,EAAGzB,EAAGsD,KAAM,CAClB,MAAMrD,EAAIW,GAAE,EACZ,OAAO,MAAM,QAAQX,CAAC,EAAIR,EAAE,MAAMO,CAAC,IAAMC,EAAEqD,EAAC,GAAG,MAAQ7B,IAAMxB,EAAEqD,EAAC,GAAG,MAAQ,EAC7E,EAAGvC,EAAI,CAACU,EAAGzB,IAAM,CACf,GAAIlK,EAAE,MAAM,QAAS,CACnB,MAAMwN,GAAI1C,GAAE,EACZ,GAAI,MAAM,QAAQpB,EAAE,KAAK,GAAK,MAAM,QAAQ8D,EAAC,EAAG,CAC9C,MAAMrD,EAAIa,EAAEW,EAAGzB,EAAG,CAAC,GAAKc,EAAEW,EAAGzB,EAAG,CAAC,EAAGE,EAAIhF,GAAGpB,GAAGrE,EAAC,CAAE,EAAGgM,EAAGhC,EAAE,MAAMO,CAAC,CAAC,EACjE,OAAOnG,GAAG2F,EAAE,MAAO9B,EAAE,MAAOwC,CAAC,GAAK,CAACD,CACrC,CACA,MAAO,EACT,CACA,MAAO,EACT,EAAGe,EAAKlE,EAAE,IAAO2E,GAAM5J,GAAG4F,EAAE,MAAQuC,GAAM,CACxC,MAAMsD,GAAIzC,GAAGY,EAAGzB,EAAE,KAAK,EAAGC,EAAIrI,GAC5BoI,EAAE,MACF5F,GAAGqF,EAAE,MAAMgC,CAAC,EAAGzK,EAAE,MAAM,OAAO,EAC9BuD,GAAGkF,EAAE,MAAMgC,CAAC,EAAGzK,EAAE,MAAM,OAAO,CACpC,GAASkF,GAAGlF,EAAE,MAAM,cAAeyI,EAAE,MAAMgC,CAAC,EAAGzB,EAAE,KAAK,GAAKpC,EAAE,MAAM,QAAQ,SAASoC,EAAE,KAAK,GAAK,CAAC7D,GAAGnF,EAAE,MAAM,aAAcyI,EAAE,MAAMgC,CAAC,EAAGzB,EAAE,KAAK,GAAKtD,GAAG,EAAE,UAAW+C,EAAE,MAAMgC,CAAC,CAAC,EAAGvB,EAAIa,EAAEf,EAAE,MAAOyB,CAAC,EAAGpB,EAAIjE,GAAGrF,EAAE,MAAOiJ,EAAE,MAAOP,EAAE,MAAMgC,CAAC,CAAC,EACjO,MAAO,CAAE,OAAQ6B,GAAG,SAAUrD,EAAG,UAAWC,EAAG,YAAaG,CAAC,CAC/D,CAAC,CAAC,EAAGY,EAAI,CAACQ,EAAGzB,IAAM9E,GAAGpB,GAAGrE,EAAC,CAAE,EAAGgM,EAAGhC,EAAE,MAAMO,CAAC,CAAC,EAAGkB,GAAI,CAACO,EAAGzB,IAAM,CAC3D,MAAMsD,GAAI9D,EAAE,MAAQA,EAAE,MAAQ1F,GAAmB,IAAI,IAAM,EAC3D0F,EAAE,MAAQtE,GAAGoI,GAAG7B,EAAGhC,EAAE,MAAMO,CAAC,CAAC,EAAG,EAAE,YAAY,EAAG,EAAE,kBAAkB,CACvE,EAAGG,EAAI,CAACsB,EAAGzB,IAAM,CACf,MAAMsD,GAAIrC,EAAEQ,EAAGzB,CAAC,EAChBlK,EAAE,MAAM,UAAYA,EAAE,MAAM,WAAa0J,EAAE,MAAQqF,GAAGvB,GAAG9D,EAAG,EAAG1J,CAAC,EAAI0J,EAAE,MAAQG,EAAE2D,GAAG9D,EAAE,KAAK,IAAMA,EAAE,MAAQkF,GAAGlF,EAAGyB,EAAEQ,EAAGzB,CAAC,EAAG,CAAC,GAAKR,EAAE,MAAQ,CAACyB,EAAEQ,EAAGzB,CAAC,CAAC,EAAGqD,KAAK,KAAK,IAAM,CAClKsB,GAAGnF,EAAE,MAAO,EAAG,EAAE,UAAW,EAAE,SAAS,CACzC,CAAC,CACH,EAAGe,EAAI,CAACkB,EAAGzB,IAAM,CACfyE,GAAGxD,EAAEQ,EAAGzB,CAAC,EAAGR,EAAGF,EAAE,MAAM,KAAK,EAAG,EAAE,aAAc,EAAE,CACnD,EAAGgB,EAAI,CAACmB,EAAGzB,KAAOZ,EAAE,MAAMY,CAAC,EAAE,MAAQyB,EAAGH,EAAEtB,EAAGZ,EAAE,MAAMY,CAAC,EAAE,KAAMyB,CAAC,EAAGnC,EAAE,MAAM,QAAUiB,EAAEkB,EAAGzB,CAAC,EAAIlK,EAAE,MAAM,QAAUqK,EAAEsB,EAAGzB,CAAC,EAAIkB,GAAEO,EAAGzB,CAAC,GAAImB,GAAK,CAACM,EAAGzB,IAAM,CACjJX,EAAEoC,EAAGzB,CAAC,EAAGsB,EAAEtB,EAAGyB,EAAG,IAAI,CACvB,EAAGH,EAAI,CAACG,EAAGzB,EAAGsD,KAAM,CAClB,IAAIrD,EAAIqD,GACR,GAAI,CAACrD,GAAKA,IAAM,EAAG,CACjB,MAAMC,EAAIU,GAAE,EACZX,EAAI,MAAM,QAAQC,CAAC,EAAIA,EAAEuB,CAAC,EAAE,MAAQvB,EAAE,KACxC,CACA,EAAE,oBAAqB,CAAE,SAAUuB,EAAG,KAAMzB,EAAG,MAAOC,EAAG,CAC3D,EACA,MAAO,CACL,cAAee,EACf,aAAcpB,EACd,KAAMH,EACN,WAAYiB,EACZ,wBAAyBnL,EACzB,oBAAqB9G,EACrB,qBAAsB0E,EACtB,gBAAiBwD,EACjB,eAAgB6J,EAChB,WAAYhB,EACZ,WAAY,CAACiC,EAAGzB,IAAM,CACpB4E,GAAG,CACD,MAAOnD,EACP,WAAYjC,EACZ,MAAO1J,EAAE,MAAM,QACf,SAAUkK,EAAI,OAASrC,EAAE,MAAM,QACvC,CAAO,EAAG,EAAE,YAAY,CACpB,EACA,aAAc,CAAC8D,EAAGzB,IAAM,CACtBtC,EAAE,MAAQuD,EAAEQ,EAAGzB,CAAC,CAClB,EACA,YAAaM,EACb,WAAYa,GACZ,iBAAkBjC,EAClB,iBAAkBC,EAClB,WAAYsB,EACZ,kBAAmBG,EACvB,CACA,EAAGwE,GAAqBjD,GAAG,CACzB,aAAc,CACZ,KAAM,CACV,EACE,OAAQ,cACR,MAAO,CACL,GAAGJ,EACP,EACE,MAAO,CACL,8BACA,iBACA,aACA,cACA,YACA,aACA,oBACA,mBACA,QACA,sBACA,gBACJ,EACE,MAAM,EAAG,CAAE,OAAQ,EAAG,KAAMxM,GAAK,CAC/B,MAAM9G,EAAI8G,EAAGpC,EAAIkS,GAAE,EAAI1O,EAAI2O,GAAGnS,EAAG,UAAU,EAAG2C,EAAI,EAClDsM,GAAG,IAAM,CACPtM,EAAE,QAAUrH,EAAE,QAAS,IAAI,CAC7B,CAAC,EACD,KAAM,CACJ,cAAesI,EACf,aAAcC,EACd,KAAM2G,EACN,WAAYC,EACZ,wBAAyB0B,EACzB,gBAAiBC,EACjB,eAAgBC,EAChB,WAAYC,EACZ,WAAYC,EACZ,aAAcN,EACd,YAAa3B,EACb,WAAYC,EACZ,iBAAkBiC,EAClB,iBAAkBN,EAClB,WAAYO,EACZ,kBAAmBY,CACzB,EAAQ0E,GAAGpP,EAAGrH,CAAC,EACX,OAAO,EAAE,CAAE,gBAAiB,KAAO,CACjC,WAAYgR,EACZ,KAAM9B,EACN,kBAAmB6C,EACnB,YAAa/C,EACb,WAAYC,EACZ,WAAYkC,CAClB,GAAQ,WAAYF,EAAG,iBAAmBP,GAAMQ,EAAE,EAAGR,CAAC,CAAC,CAAE,EAAG,CAACA,EAAGsB,KAAQ7L,EAAC,EAAIuP,GAAGN,GAAI,CAC9E,kBAAmB1M,EAAEmI,CAAC,EAAE,MACxB,SAAUH,EAAE,SACZ,QAAS,GACT,YAAaA,EAAE,QACrB,EAAO,CACD,QAASiF,GAAG,CAAC,CAAE,SAAU1D,CAAC,IAAO,CAC/BvB,EAAE,OAAO,WAAW,EAAImD,GAAGnD,EAAE,OAAQ,YAAa,CAChD,IAAK,EACL,MAAOA,EAAE,kBACnB,CAAS,EAAIwD,EAAE,GAAI,EAAE,EACbxD,EAAE,OAAO,YAAY,EAAImD,GAAGnD,EAAE,OAAQ,aAAcoD,GAAGC,GAAG,CAAE,IAAK,CAAC,EAAI,CACpE,KAAMrL,EAAEwG,CAAC,EACT,OAAQxG,EAAEJ,CAAC,EAAE2J,CAAC,EACd,MAAOvJ,EAAEH,CAAC,EAAE0J,CAAC,EACb,YAAavJ,EAAEsG,CAAC,EAChB,WAAYtG,EAAEuG,CAAC,EACf,SAAUgD,CACpB,CAAS,CAAC,CAAC,GAAK9L,IAAKuP,GAAGjB,GAAI,CAClB,IAAK,EACL,MAAO/L,EAAEJ,CAAC,EAAE2J,CAAC,EACb,mBAAoBvB,EAAE,gBACtB,UAAWA,EAAE,WAAa,CAAChI,EAAEoI,CAAC,EAAE,cAChC,YAAaJ,EAAE,SACf,OAAQhI,EAAEoI,CAAC,EAAE,WACb,OAAQJ,EAAE,OACV,mBAAoB,CAAC,EAAEA,EAAE,gBAAkBA,EAAE,WAC7C,eAAgB,GAChB,KAAM,QACN,WAAawB,GAAMxJ,EAAEsG,CAAC,EAAEkD,EAAGD,CAAC,EAC5B,aAAeC,GAAMxJ,EAAEiI,CAAC,EAAEuB,EAAGD,CAAC,CACxC,EAAW8D,GAAG,CACJ,OAAQJ,GAAG,IAAM,CACfE,GAAGL,GAAIzB,GAAGrD,EAAE,OAAQ,CAClB,MAAOhI,EAAEH,CAAC,EAAE0J,CAAC,EACb,SAAUA,EACV,mBAAoBvJ,EAAEqI,CAAC,EAAEkB,CAAC,EAC1B,KAAMvJ,EAAEwG,CAAC,EAAE+C,CAAC,EACZ,cAAgBC,GAAMxJ,EAAEyG,CAAC,EAAE8C,EAAGC,CAAC,EAC/B,aAAeA,GAAMxJ,EAAEyI,CAAC,EAAEc,EAAGC,CAAC,EAC9B,aAAeA,GAAMxJ,EAAEkI,CAAC,EAAEsB,EAAGD,CAAC,EAC9B,mBAAqBC,GAAMxJ,EAAEwI,CAAC,EAAEe,EAAGC,GAAG,KAAMA,GAAG,IAAI,CACjE,CAAa,EAAG6D,GAAG,CAAE,EAAG,CAAC,EAAI,CACff,GAAGtM,EAAER,CAAC,EAAG,CAACgK,EAAGC,MAAQ,CACnB,KAAMD,EACN,GAAIyD,GAAIvD,IAAO,CACbyB,GAAGnD,EAAE,OAAQwB,EAAG4B,GAAGgD,GAAG1E,EAAE,CAAC,CAAC,CAC5C,CAAiB,CACjB,EAAgB,CAChB,CAAa,EAAG,KAAM,CAAC,QAAS,WAAY,mBAAoB,OAAQ,cAAe,eAAgB,eAAgB,oBAAoB,CAAC,CAC5I,CAAW,EACD,EAAG,CACb,EAAW,CACD1B,EAAE,OAAO,qBAAqB,EAAI,CAChC,KAAM,OACN,GAAIiF,GAAG,CAAC,CAAE,KAAMzD,CAAC,IAAO,CACtB2B,GAAGnD,EAAE,OAAQ,sBAAuB,CAClC,KAAMwB,EAAE,KACR,MAAOA,EAAE,KACzB,CAAe,CACf,CAAa,EACD,IAAK,GACjB,EAAc,MACd,CAAS,EAAG,KAAM,CAAC,QAAS,mBAAoB,UAAW,YAAa,SAAU,SAAU,mBAAoB,aAAc,cAAc,CAAC,EAC7I,CAAO,EACD,EAAG,CACT,EAAO,EAAG,CAAC,kBAAmB,WAAY,WAAW,CAAC,EACpD,CACF,CAAC,EAAG6E,GAAK,CAAC,EAAG,IAAM,CACjB,MAAMjQ,EAAI,IAAM,CACd,EAAE,kBAAoBqI,EAAE,MAAQvD,GAAG5E,EAAE,EAAE,SAAS,CAAC,EACnD,EAAG,CAAE,WAAYhH,CAAC,EAAK0W,GAAG,EAAG,EAAG5P,CAAC,EAAGpC,EAAI8J,EAAE,IAAI,EAAG,CAAE,mBAAoBtG,EAAG,oBAAqBb,EAAG,iBAAkBiB,EAAG,eAAgBC,EAAG,UAAW2G,CAAC,EAAKsB,GAAG,CAAC,EAAGrB,EAAIX,EAAC,EACvKmF,GAAG,IAAM,CACP,EAAE,YAAc3T,EAAE,OAAS,EAAE,gBAAkB,CAACA,EAAE,SAAWmP,EAAE,MAAQvD,GAAG5E,EAAE,EAAE,SAAS,CAAC,EAC1F,CAAC,EACD,MAAM6J,EAAKK,GAAM,MAAM,QAAQlR,EAAE,KAAK,EAAIA,EAAE,MAAM,KAAM4Q,GAAMhF,GAAGgF,CAAC,IAAMM,CAAC,EAAIlR,EAAE,MAAQ4L,GAAG5L,EAAE,KAAK,IAAMkR,EAAI,GAAIJ,EAAKI,GAAM3I,EAAE,MAAM,SAAW,MAAM,QAAQvI,EAAE,KAAK,EAAIoL,GAAGpL,EAAE,MAAO0E,EAAE,MAAOiM,EAAEO,CAAC,CAAC,EAAI,GAAIH,EAAKG,GAAMhC,EAAE,MAAM,wBAAwB,IAAMA,EAAE,MAAM,aAAa,KAAOA,EAAE,MAAM,aAAa,IAAI,GAAGgC,CAAC,EAAE,EAAI,GAAK,GAAIF,EAAKE,GAAMhC,EAAE,MAAM,yBAAyB,IAAMA,EAAE,MAAM,cAAc,KAAOA,EAAE,MAAM,cAAc,IAAI,GAAGgC,CAAC,EAAE,EAAI,GAAK,OAAOhC,EAAE,MAAM,eAAiB,WAAaA,EAAE,MAAM,cAAcvC,GAAGzF,GAAGqP,GAAGvP,EAAC,CAAE,CAAC,EAAGkK,CAAC,CAAC,EAAI,GAAID,EAAI5C,EAAE,IAAMjF,GAAGjB,GAAG,EAAE,UAAW,EAAE,OAAQ,EAAE,YAAY,EAAI+I,GAAM,CACplB,MAAMN,EAAIC,EAAEK,EAAE,KAAK,EAAGC,EAAIhI,GACxB+H,EAAE,MACFnF,GAAGmD,EAAE,MAAM,OAAO,EAClBnD,GAAGmD,EAAE,MAAM,OAAO,CACxB,GAAS5G,EAAE,MAAM,MAAM,SAAS4I,EAAE,KAAK,GAAK,CAACH,EAAEG,EAAE,KAAK,GAAKF,EAAEE,EAAE,KAAK,EAAGa,EAAKjB,EAAEI,EAAE,KAAK,GAAK,CAACN,EAAGH,EAAI7C,GAAG1F,EAAE,MAAOgJ,EAAE,KAAK,EACjH,MAAO,CAAE,OAAQN,EAAG,SAAUO,EAAG,UAAWY,EAAI,YAAatB,CAAC,CAChE,CAAC,CAAC,EAAGE,EAAKO,GAAMvE,GAAGtB,GAAGkL,GAAmB,IAAI,IAAM,CAAC,EAAGrF,CAAC,EACxD,MAAO,CACL,aAAcD,EACd,WAAYjR,EACZ,UAAWmP,EACX,cAAgB+B,GAAM,CACpBxM,EAAE,MAAQiI,GAAGtB,GAAmB,IAAI,IAAM,EAAG6F,CAAC,CAChD,EACA,WAAaA,GAAM,CACjB,GAAI,EAAE,oBAAqB,CAAE,SAAU,EAAG,KAAMA,EAAG,EAAG7J,EAAE,MAAM,QAC5D,OAAOrH,EAAE,MAAQ,MAAM,QAAQA,EAAE,KAAK,KAAOA,EAAE,OAAO,IAAKmR,GAAMvF,GAAGuF,CAAC,CAAC,GAAG,SAASD,CAAC,EAAIlR,EAAE,MAAQA,EAAE,MAAM,OAAQmR,GAAMvF,GAAGuF,CAAC,IAAMD,CAAC,EAAIlR,EAAE,MAAM,KAAK2M,GAAGzF,GAAGF,EAAC,CAAE,EAAGkK,CAAC,CAAC,GAAKlR,EAAE,MAAQ,CAAC2M,GAAGzF,GAAGqP,GAAGvP,EAAC,CAAE,CAAC,EAAGkK,CAAC,CAAC,EAAG,EAAE,aAAc,EAAE,EAC1N3I,EAAE,MAAM,SAAWvI,EAAE,MAAQiW,GAAGjW,EAAG2Q,EAAEO,CAAC,EAAG,CAAC,EAAG0D,GAAE,EAAG,KAAK,IAAM,CAC3DsB,GAAGlW,EAAE,MAAO,EAAG,EAAE,UAAW,EAAE,SAAS,CACzC,CAAC,IAAMA,EAAE,MAAQ2Q,EAAEO,CAAC,EAAG,EAAE,YAAY,EACvC,CACJ,CACA,EAAG8F,GAAqBtD,GAAG,CACzB,aAAc,CACZ,KAAM,CACV,EACE,OAAQ,aACR,MAAO,CACL,GAAGJ,EACP,EACE,MAAO,CACL,8BACA,aACA,cACA,YACA,aACA,mBACJ,EACE,MAAM,EAAG,CAAE,OAAQ,EAAG,KAAMxM,GAAK,CAC/B,MAAM9G,EAAI8G,EAAGpC,EAAI,EAAG,CAAE,aAAcwD,EAAG,WAAYb,EAAG,UAAWiB,EAAG,WAAYC,EAAG,cAAe2G,GAAM6H,GAAGrS,EAAG1E,CAAC,EAAG,CAAE,gBAAiBmP,GAAMqB,GAAG9L,CAAC,EAC/I,OAAO,EAAE,CAAE,gBAAiB,KAAO,CACjC,WAAY2C,EACZ,WAAYkB,CAClB,EAAM,CAAE,EAAG,CAACuI,EAAGC,KAAO5K,IAAKC,EAAE,MAAO,KAAM,CACpC0K,EAAE,OAAO,WAAW,EAAI+C,GAAG/C,EAAE,OAAQ,YAAa,CAChD,IAAK,EACL,MAAOA,EAAE,kBACjB,CAAO,EAAIoD,EAAE,GAAI,EAAE,EACbpD,EAAE,OAAO,YAAY,EAAI+C,GAAG/C,EAAE,OAAQ,aAAcgD,GAAGC,GAAG,CAAE,IAAK,CAAC,EAAI,CACpE,MAAOrL,EAAER,CAAC,EACV,WAAYQ,EAAEH,CAAC,CACvB,CAAO,CAAC,CAAC,GAAKpC,IAAKuP,GAAGjB,GAAI,CAClB,IAAK,EACL,MAAO/L,EAAER,CAAC,EACV,UAAW4I,EAAE,WAAa,CAACpI,EAAEyG,CAAC,EAAE,cAChC,OAAQzG,EAAEyG,CAAC,EAAE,WACb,OAAQ2B,EAAE,OACV,mBAAoB,CAAC,EAAEA,EAAE,gBAAkBA,EAAE,WAC7C,cAAepI,EAAEJ,CAAC,EAClB,KAAM,OACN,eAAgB,GAChB,WAAYI,EAAEH,CAAC,EACf,aAAcG,EAAEwG,CAAC,CACzB,EAAS6G,GAAG,CAAE,EAAG,GAAK,CACdjF,EAAE,OAAO,oBAAoB,EAAI,CAC/B,KAAM,OACN,GAAI6E,GAAG,CAAC,CAAE,KAAM3E,CAAC,IAAO,CACtB6C,GAAG/C,EAAE,OAAQ,qBAAsB,CACjC,KAAME,EAAE,KACR,MAAOA,EAAE,KACvB,CAAa,CACb,CAAW,EACD,IAAK,GACf,EAAY,MACZ,CAAO,EAAG,KAAM,CAAC,QAAS,UAAW,SAAU,SAAU,mBAAoB,cAAe,aAAc,cAAc,CAAC,EACzH,CAAK,EACH,CACF,CAAC,EAAGiG,GAAK,CACP,IAAK,EACL,MAAO,gBACT,EAAGC,GAAK,CAAC,eAAgB,gBAAgB,EAAGC,GAAK,CAAC,eAAgB,aAAc,YAAa,UAAW,aAAa,EAAGC,GAAK,CAAC,aAAc,WAAY,eAAgB,YAAa,SAAS,EAAGC,GAAK,CAAC,eAAgB,aAAc,YAAa,UAAW,aAAa,EAAGC,GAAK,CAAE,IAAK,CAAC,EAAIC,GAAK,CAAC,aAAc,cAAc,EAAGC,GAAqB9D,GAAG,CACzV,aAAc,CACZ,KAAM,CACV,EACE,OAAQ,YACR,MAAO,CACL,MAAO,CAAE,KAAM,OAAQ,QAAS,CAAC,EACjC,QAAS,CAAE,KAAM,OAAQ,QAAS,CAAC,EACnC,QAAS,CAAE,KAAM,OAAQ,QAAS,CAAC,EACnC,mBAAoB,CAAE,KAAM,OAAQ,QAAS,IAAI,EACjD,MAAO,CAAE,KAAM,OAAQ,QAAS,CAAC,EACjC,oBAAqB,CAAE,KAAM,SAAU,QAAS,IAAI,EACpD,aAAc,CAAE,KAAM,SAAU,QAAS,IAAM,EAAE,EACjD,GAAGJ,EACP,EACE,MAAO,CACL,YACA,cACA,eACA,iBACA,iBACA,aACA,UACA,iBACA,iBACA,cACJ,EACE,MAAM,EAAG,CAAE,OAAQ,EAAG,KAAMxM,GAAK,CAC/B,MAAM9G,EAAI8G,EAAGpC,EAAI,EAAG,CAAE,sBAAuBwD,EAAG,qBAAsBb,CAAC,EAAK0H,GAAE,EAAI,CAChF,oBAAqBzG,EACrB,qBAAsBC,EACtB,iBAAkB2G,EAClB,gBAAiBC,EACjB,eAAgB0B,EAChB,wBAAyBC,CAC/B,EAAQN,GAAG9L,CAAC,EAAG,CAAE,eAAgBqM,EAAG,eAAgBC,CAAC,EAAKyE,GAAGlN,CAAC,EAAG0I,EAAI9C,GAAG,CAClE,MAAO,GACP,QAAS,GACT,QAAS,EACf,CAAK,EAAGwC,EAAInC,EAAE,IAAI,EAAGQ,EAAIR,EAAE,IAAI,EAAGS,EAAIT,EAAE,CAAA,CAAE,EAAG0C,EAAI1C,EAAC,EAAIoC,EAAIpC,EAAE,EAAE,EAC1DmF,GAAG,IAAM,CACP3T,EAAE,SAAS,CACb,CAAC,EACD,MAAMmR,EAAKsG,GAAMpN,GAAmB,IAAI,KAAQ,CAC9C,MAAOoN,EAAE,MACT,QAASA,EAAE,QACX,QAAS/S,EAAE,cAAgB+S,EAAE,QAAU,EACvC,aAAc,CACpB,CAAK,EAAG1F,EAAK1D,EACP,IAAOoJ,GAAM/F,EAAE+F,EAAG/S,EAAE+S,CAAC,CAAC,GAAK/G,EAAE+G,EAAG/S,EAAE+S,CAAC,CAAC,CAC1C,EAAOhH,EAAIpC,EAAE,KAAO,CAAE,MAAO3J,EAAE,MAAO,QAASA,EAAE,QAAS,QAASA,EAAE,OAAO,EAAG,EAAGgM,EAAI,CAAC+G,EAAGC,KAAM7G,EAAE,MAAM,SAAW,CAACA,EAAE,MAAM,2BAA6B,CAACnM,EAAE,aAAa+S,EAAGC,EAAC,EAAI,GAAI1F,EAAK,CAACyF,EAAGC,KAAM,CAC9L,GAAI7G,EAAE,MAAM,SAAW,CAACA,EAAE,MAAM,2BAA4B,CAC1D,MAAM8G,EAAID,GAAI,CAAChT,EAAE,GAAG+S,CAAC,WAAW,EAAI,CAAC,CAAC/S,EAAE,GAAG+S,CAAC,WAAW,EAAGG,GAAKlT,EAAE+S,CAAC,EAAIE,EACtE,MAAO,CAACjT,EAAE,aAAa+S,EAAGG,EAAE,CAC9B,CACA,MAAO,EACT,EAAG3F,EAAI5D,EAAE,IAAOoJ,GAAM,CAAC3E,EAAG,CAACpO,EAAE+S,CAAC,GAAI,CAAC/S,EAAE,GAAG+S,CAAC,WAAW,EAAGA,CAAC,GAAKzF,EAAGyF,EAAG,EAAE,CAAC,EAAGvF,GAAI7D,EAAE,IAAOoJ,GAAM,CAAC3E,EAAG,CAACpO,EAAE+S,CAAC,EAAI,CAAC/S,EAAE,GAAG+S,CAAC,WAAW,EAAGA,CAAC,GAAKzF,EAAGyF,EAAG,EAAE,CAAC,EAAGtF,GAAK,CAACsF,EAAGC,KAAMG,GAAGxN,GAAGrD,EAAC,EAAIyQ,CAAC,EAAGC,EAAC,EAAGtF,GAAK,CAACqF,EAAGC,KAAMI,GAAGzN,GAAGrD,EAAC,EAAIyQ,CAAC,EAAGC,EAAC,EAAGrF,EAAIhE,EACrN,KAAO,CACL,aAAc,GACd,mBAAoB,CAAC3J,EAAE,iBACvB,uBAAwB,CAACA,EAAE,eAAiBA,EAAE,MAAQ,CAACA,EAAE,iBACzD,wBAAyB,CAACA,EAAE,eAAiBA,EAAE,MAAQA,EAAE,iBACzD,6BAA8B,CAACA,EAAE,eAAiB,CAACA,EAAE,KACrD,iBAAkBA,EAAE,eAAiBA,EAAE,KACvC,6BAA8BA,EAAE,eAAiB,CAACA,EAAE,IAC5D,EACA,EAAO4N,EAAIjE,EACL,IAAM3J,EAAE,kBAAoBmM,EAAE,MAAM,SAAW,CAACC,EAAE,MAAM,KAC9D,EAAOyB,EAAKlE,EAAE,IAAM,CACd,MAAMoJ,EAAI,CAAC,CAAE,KAAM,OAAO,CAAE,EAC5B,OAAO/S,EAAE,eAAiB+S,EAAE,KAAK,CAAE,KAAM,GAAI,UAAW,IAAM,CAC5D,KAAM,SACd,CAAO,EAAG/S,EAAE,eAAiB+S,EAAE,KAAK,CAAE,KAAM,GAAI,UAAW,IAAM,CACzD,KAAM,SACd,CAAO,EAAGA,CACN,CAAC,EAAGjF,EAAInE,EAAE,IAAMkE,EAAG,MAAM,OAAQkF,GAAM,CAACA,EAAE,SAAS,CAAC,EAAGhF,GAAIpE,EAAE,IAAOoJ,GAAM,CACxE,GAAIA,IAAM,QAAS,CACjB,MAAMC,GAAIjG,GAAE,CAAC/M,EAAE,KAAK,EACpB,MAAO,CAAE,KAAMgT,GAAI,GAAK,IAAIA,EAAC,GAAK,GAAGA,EAAC,GAAI,MAAOA,EAAC,CACpD,CACA,MAAO,CAAE,KAAMhT,EAAE+S,CAAC,EAAI,GAAK,IAAI/S,EAAE+S,CAAC,CAAC,GAAK,GAAG/S,EAAE+S,CAAC,CAAC,GAAI,MAAO/S,EAAE+S,CAAC,CAAC,CAChE,CAAC,EAAG/F,EAAI,CAAC+F,EAAGC,KAAM,CAChB,GAAI,CAAChT,EAAE,oBAAqB,MAAO,GACnC,MAAMiT,EAAIjT,EAAE,oBAAoBA,EAAE,MAAO+S,IAAM,QAAUC,GAAI,MAAM,EACnE,OAAOC,EAAEF,CAAC,EAAI,CAAC,CAACE,EAAEF,CAAC,GAAG,SAASC,EAAC,EAAI,EACtC,EAAG5F,EAAI,CAAC2F,EAAGC,KAAMA,KAAM,SAAW/G,EAAE,QAAU,KAAO8G,EAAIA,EAAI,GAAI5F,EAAK4F,GAAM,CAC1E,MAAMC,GAAIhT,EAAE,KAAO,GAAK,GAAIiT,EAAIF,IAAM,QAAUC,GAAI,GAAIE,GAAK,CAAClT,EAAE,GAAG+S,CAAC,eAAe,EAAGM,GAAKN,IAAM,SAAW,CAAC/S,EAAE,KAAOkT,GAAK,EAAGI,GAAK,CAAA,EACnI,QAASC,GAAKF,GAAIE,GAAKN,EAAGM,IAAML,GAC9BI,GAAG,KAAK,CAAE,MAAOtT,EAAE,KAAOuT,GAAKnG,EAAEmG,GAAIR,CAAC,EAAG,KAAMQ,GAAK,GAAK,IAAIA,EAAE,GAAK,GAAGA,EAAE,GAAI,EAC/E,OAAOR,IAAM,SAAW,CAAC/S,EAAE,MAAQsT,GAAG,QAAQ,CAAE,MAAOrH,EAAE,QAAU,KAAO,GAAK,EAAG,KAAM,IAAI,CAAE,EAAGvH,GAAG4O,GAAKC,KAAQ,CAAE,OAAQ,GAAI,SAAU/I,EAAE,MAAM,MAAMuI,CAAC,EAAE,SAASQ,GAAG,KAAK,GAAK,CAACnF,EAAGmF,GAAG,MAAOR,CAAC,GAAK/F,EAAE+F,EAAGQ,GAAG,KAAK,GAAKvH,EAAE+G,EAAGQ,GAAG,KAAK,CAAC,EAAG,CACzO,EAAGvF,GAAM+E,GAAMA,GAAK,EAAIA,EAAI,GAAI5E,EAAK4E,GAAMA,GAAK,EAAIA,EAAI,GAAI3E,EAAK,CAAC2E,EAAGC,KAAM,CACzE,MAAMC,EAAIjT,EAAE,QAAUyM,EAAE7F,GAAG5G,EAAE,OAAO,CAAC,EAAI,KAAMkT,GAAKlT,EAAE,QAAUyM,EAAE7F,GAAG5G,EAAE,OAAO,CAAC,EAAI,KAAMqT,GAAK5G,EAC5F7F,GACEmF,EAAE,MACFiH,GACAA,KAAM,WAAaA,KAAM,UAAYhF,GAAG+E,CAAC,EAAI5E,EAAE4E,CAAC,CAC1D,CACA,EACM,OAAOE,GAAKC,IAAM7M,GAAGgN,GAAIH,EAAE,GAAK3M,GAAG8M,GAAIH,EAAE,KAAOzM,GAAG4M,GAAIJ,CAAC,GAAK1M,GAAG8M,GAAIJ,CAAC,GAAKA,EAAIxM,GAAG4M,GAAIJ,CAAC,GAAK1M,GAAG8M,GAAIJ,CAAC,EAAIC,GAAK7M,GAAGgN,GAAIH,EAAE,GAAK3M,GAAG8M,GAAIH,EAAE,EAAI,EACzI,EAAG7E,EAAK0E,GAAM/S,EAAE,KAAK+S,EAAE,CAAC,EAAE,YAAW,EAAKA,EAAE,MAAM,CAAC,CAAC,SAAS,EAAGzE,GAAKyE,GAAM,CACzE1E,EAAE0E,CAAC,IAAMxG,EAAEwG,CAAC,EAAI,CAACxG,EAAEwG,CAAC,EAAGxG,EAAEwG,CAAC,GAAK7G,EAAE,MAAQ,GAAI5Q,EAAE,iBAAkByX,CAAC,IAAM7G,EAAE,MAAQ,GAAI5Q,EAAE,iBAAkByX,CAAC,GAC7G,EAAGlG,EAAKkG,GAAMA,IAAM,QAAUjM,GAAKiM,IAAM,UAAYhM,GAAKC,GAAImJ,EAAI,IAAM,CACtE3D,EAAE,OAAS,aAAaA,EAAE,KAAK,CACjC,EAAGM,EAAI,CAACiG,EAAGC,GAAI,GAAIC,IAAM,CACvB,MAAMC,GAAKF,GAAIvF,GAAKC,GAAI2F,GAAKL,GAAI,CAAChT,EAAE,GAAG+S,CAAC,WAAW,EAAI,CAAC,CAAC/S,EAAE,GAAG+S,CAAC,WAAW,EAC1E3E,EAAG,CAACpO,EAAE+S,CAAC,EAAIM,GAAIN,CAAC,GAAKzX,EACnB,UAAUyX,CAAC,GACXlG,EAAEkG,CAAC,EAAEG,GAAG,CAAE,CAACH,CAAC,EAAG,CAAC/S,EAAE+S,CAAC,CAAC,EAAI,CAAE,CAACA,CAAC,EAAG,CAAC/S,EAAE,GAAG+S,CAAC,WAAW,EAAG,CAAC,CAC7D,EAAS,CAACE,GAAG,UAAYxI,EAAE,MAAM,yBAA2B+B,EAAE,MAAQ,WAAW,IAAM,CAC/EM,EAAEiG,EAAGC,EAAC,CACR,EAAGvI,EAAE,MAAM,sBAAsB,EACnC,EAAGsC,GAAKgG,GAAM/S,EAAE,KAAO+S,GAAKA,GAAK,GAAK9G,EAAE,MAAQ,KAAOA,EAAE,MAAQ,KAAMnI,GAAGiP,CAAC,GAAI7F,EAAI,IAAM,CACvFjB,EAAE,QAAU,MAAQA,EAAE,MAAQ,KAAM3Q,EAAE,eAAgB0E,EAAE,MAAQ,EAAE,IAAMiM,EAAE,MAAQ,KAAM3Q,EAAE,eAAgB0E,EAAE,MAAQ,EAAE,GAAI1E,EAAE,eAAgB2Q,EAAE,KAAK,CACrJ,EAAGgC,GAAM8E,GAAM,CACbxG,EAAEwG,CAAC,EAAI,EACT,EAAG7E,EAAK,CAAC6E,EAAGC,GAAGC,IAAM,CACnB,GAAIF,GAAK/S,EAAE,gBAAiB,CAC1B,MAAM,QAAQuK,EAAE,MAAMyI,EAAC,CAAC,EAAIzI,EAAE,MAAMyI,EAAC,EAAEC,CAAC,EAAIF,EAAIxI,EAAE,MAAMyI,EAAC,EAAI,CAACD,CAAC,EAC/D,MAAMG,GAAK3I,EAAE,MAAM,OACjB,CAAC8I,GAAIC,KAAOA,GAAG,IAAI,CAACC,GAAIC,KAAO,CAAC,GAAGH,GAAGG,EAAE,GAAK,CAAA,EAAIF,GAAGE,EAAE,CAAC,CAAC,EACxD,CAAA,CACV,EACQ7Q,EAAE3C,EAAE,kBAAkB,EAAGsK,EAAE,QAAU4I,GAAG,CAAC,EAAIA,GAAG,CAAC,EAAE,OAAO5I,EAAE,KAAK,GAAI9G,EAAE0P,GAAIlT,EAAE,KAAK,CACpF,CACF,EAAGyT,GAAK,CAACV,EAAGC,MAAO1E,GAAEyE,CAAC,EAAGzX,EAAE,UAAUyX,CAAC,GAAIC,EAAC,GAC3C,OAAO,EAAE,CAAE,aAAc/E,EAAE,CAAE,EAAG,CAAC8E,EAAGC,KAAMD,EAAE,SAAWvD,EAAE,GAAI,EAAE,GAAK/N,EAAC,EAAIC,EAAE,MAAO6Q,GAAI,EACnF9Q,EAAE,EAAE,EAAGC,EAAE4N,GAAI,KAAMgB,GAAGzC,EAAG,MAAO,CAACoF,EAAGC,MAAQzR,EAAC,EAAIC,EAAE,MAAO,CACzD,IAAKwR,GACL,MAAO9C,GAAGzC,EAAE,KAAK,EACjB,eAAgBC,EAAE,OAAS,CAACmF,EAAE,cAC9B,iBAAkBnF,EAAE,OAASmF,EAAE,aACvC,EAAS,CACDE,EAAE,WAAaxR,IAAKC,EAAE4N,GAAI,CAAE,IAAK,GAAK,CACpCpD,EAAE,MAAQsD,EAAE,GAAI,EAAE,GAAK/N,EAAC,EAAIC,EAAE4N,GAAI,CAAE,IAAK,CAAC,EAAI,CAC5CG,GAAG,GAAG,CAClB,EAAa,EAAE,EACf,EAAW,EAAE,IAAMhO,IAAKC,EAAE4N,GAAI,CAAE,IAAK,GAAK,CAChC3N,GAAG,SAAU,CACX,QAAS,GACT,IAAM0R,IAAOnF,EAAGmF,GAAIH,GAAI,CAAC,EACzB,KAAM,SACN,MAAO9C,GAAG,CACR,QAAS,GACT,mBAAoB,CAAC2C,EAAE,iBACvB,0BAA2BA,EAAE,iBAC7B,sBAAuBA,EAAE,iBACzB,4BAA6BxF,EAAE,MAAM0F,EAAE,IAAI,EAC3C,gBAAiB/G,EAAE,KACjC,CAAa,EACD,eAAgB,GAAG+G,EAAE,IAAI,iBAAiBjT,EAAE,KAAK,GACjD,aAAcgE,EAAEJ,CAAC,GAAG,eAAeqP,EAAE,IAAI,EACzC,SAAU,IACV,UAAYI,IAAOrP,EAAEmB,EAAE,EAAEkO,GAAI,IAAMvG,EAAEmG,EAAE,KAAM,GAAI,CAAE,SAAU,EAAE,CAAE,EAAG,EAAE,EACtE,QAAUI,IAAOrP,EAAEyG,CAAC,EAAE,uBAAyB,OAASqC,EAAEmG,EAAE,KAAM,EAAE,EACpE,YAAcI,IAAOrP,EAAEyG,CAAC,EAAE,uBAAyBqC,EAAEmG,EAAE,KAAM,EAAE,EAAI,OACnE,UAAW9C,CACvB,EAAa,CACDnQ,EAAE,kBAAoByB,IAAKC,EAAE4N,GAAI,CAAE,IAAK,GAAK,CAC3CyD,EAAE,OAAO,oBAAoB,EAAI5D,GAAG4D,EAAE,OAAQ,qBAAsB,CAAE,IAAK,CAAC,CAAE,GAAKtR,IAAKC,EAAE4N,GAAI,CAAE,IAAK,GAAK,CACxG0D,GAAE,CAAC,IAAMA,GAAE,CAAC,EAAIrR,GAAG,OAAQ,CAAE,MAAO,uCAAuC,EAAI,KAAM,EAAE,GACvFqR,GAAE,CAAC,IAAMA,GAAE,CAAC,EAAIrR,GAAG,OAAQ,CAAE,MAAO,yCAA2C,KAAM,EAAE,EACvG,EAAiB,EAAE,EACnB,EAAe,EAAE,IAAMF,IAAKC,EAAE4N,GAAI,CAAE,IAAK,GAAK,CAChCyD,EAAE,OAAO,UAAU,EAAI5D,GAAG4D,EAAE,OAAQ,WAAY,CAAE,IAAK,CAAC,CAAE,EAAIvD,EAAE,GAAI,EAAE,EACtEuD,EAAE,OAAO,UAAU,EAAIvD,EAAE,GAAI,EAAE,GAAK/N,EAAC,EAAIuP,GAAGhN,EAAEhC,EAAE,EAAG,CAAE,IAAK,EAAG,EAC3E,EAAe,EAAE,EACjB,EAAa,GAAIyQ,EAAE,EACT9Q,GAAG,SAAU,CACX,QAAS,GACT,IAAM0R,IAAOnF,EAAGmF,GAAIH,GAAI,CAAC,EACzB,KAAM,SACN,aAAc,GAAGnF,GAAE,MAAMkF,EAAE,IAAI,EAAE,IAAI,IAAIjP,EAAEJ,CAAC,GAAG,cAAcqP,EAAE,IAAI,CAAC,GACpE,MAAO7C,GAAG,CACR,iBAAkB,GAClB,uBAAwB,CAAC2C,EAAE,iBAC3B,wBAAyBA,EAAE,iBAC3B,mBAAoB1F,EAAG,MAAM4F,EAAE,IAAI,EACnC,uBAAwB,CAAC5F,EAAG,MAAM4F,EAAE,IAAI,EACxC,gBAAiB/G,EAAE,KACjC,CAAa,EACD,SAAUmC,EAAE4E,EAAE,IAAI,EAClB,SAAU,IACV,eAAgB,GAAGA,EAAE,IAAI,uBAAuBjT,EAAE,KAAK,GACvD,UAAYqT,IAAOrP,EAAEmB,EAAE,EAAEkO,GAAI,IAAM/E,GAAE2E,EAAE,IAAI,EAAG,EAAE,EAChD,QAAUI,IAAO/E,GAAE2E,EAAE,IAAI,CACrC,EAAa,CACDF,EAAE,OAAOE,EAAE,IAAI,EAAI9D,GAAG4D,EAAE,OAAQE,EAAE,KAAM,CACtC,IAAK,EACL,KAAMlF,GAAE,MAAMkF,EAAE,IAAI,EAAE,KACtB,MAAOlF,GAAE,MAAMkF,EAAE,IAAI,EAAE,KACrC,CAAa,EAAIzD,EAAE,GAAI,EAAE,EACbuD,EAAE,OAAOE,EAAE,IAAI,EAAIzD,EAAE,GAAI,EAAE,GAAK/N,EAAC,EAAIC,EAAE4N,GAAI,CAAE,IAAK,CAAC,EAAI,CACrDG,GAAGC,GAAG3B,GAAE,MAAMkF,EAAE,IAAI,EAAE,IAAI,EAAG,CAAC,CAC5C,EAAe,EAAE,EACjB,EAAa,GAAIP,EAAE,EACT/Q,GAAG,SAAU,CACX,QAAS,GACT,IAAM0R,IAAOnF,EAAGmF,GAAIH,GAAI,CAAC,EACzB,KAAM,SACN,MAAO9C,GAAG,CACR,QAAS,GACT,mBAAoB,CAAC2C,EAAE,iBACvB,0BAA2BA,EAAE,iBAC7B,yBAA0BA,EAAE,iBAC5B,4BAA6BvF,GAAE,MAAMyF,EAAE,IAAI,EAC3C,gBAAiB/G,EAAE,KACjC,CAAa,EACD,eAAgB,GAAG+G,EAAE,IAAI,iBAAiBjT,EAAE,KAAK,GACjD,aAAcgE,EAAEJ,CAAC,GAAG,eAAeqP,EAAE,IAAI,EACzC,SAAU,IACV,UAAYI,IAAOrP,EAAEmB,EAAE,EAAEkO,GAAI,IAAMvG,EAAEmG,EAAE,KAAM,GAAI,CAAE,SAAU,EAAE,CAAE,EAAG,EAAE,EACtE,QAAUI,IAAOrP,EAAEyG,CAAC,EAAE,uBAAyB,OAASqC,EAAEmG,EAAE,KAAM,EAAE,EACpE,YAAcI,IAAOrP,EAAEyG,CAAC,EAAE,uBAAyBqC,EAAEmG,EAAE,KAAM,EAAE,EAAI,OACnE,UAAW9C,CACvB,EAAa,CACDnQ,EAAE,kBAAoByB,IAAKC,EAAE4N,GAAI,CAAE,IAAK,GAAK,CAC3CyD,EAAE,OAAO,sBAAsB,EAAI5D,GAAG4D,EAAE,OAAQ,uBAAwB,CAAE,IAAK,CAAC,CAAE,GAAKtR,IAAKC,EAAE4N,GAAI,CAAE,IAAK,GAAK,CAC5G0D,GAAE,CAAC,IAAMA,GAAE,CAAC,EAAIrR,GAAG,OAAQ,CAAE,MAAO,uCAAuC,EAAI,KAAM,EAAE,GACvFqR,GAAE,CAAC,IAAMA,GAAE,CAAC,EAAIrR,GAAG,OAAQ,CAAE,MAAO,yCAA2C,KAAM,EAAE,EACvG,EAAiB,EAAE,EACnB,EAAe,EAAE,IAAMF,IAAKC,EAAE4N,GAAI,CAAE,IAAK,GAAK,CAChCyD,EAAE,OAAO,YAAY,EAAI5D,GAAG4D,EAAE,OAAQ,aAAc,CAAE,IAAK,CAAC,CAAE,EAAIvD,EAAE,GAAI,EAAE,EAC1EuD,EAAE,OAAO,YAAY,EAAIvD,EAAE,GAAI,EAAE,GAAK/N,EAAC,EAAIuP,GAAGhN,EAAE/B,EAAE,EAAG,CAAE,IAAK,EAAG,EAC7E,EAAe,EAAE,EACjB,EAAa,GAAI0Q,EAAE,CACnB,EAAW,EAAE,EACb,EAAS,GAAIH,EAAE,EAAE,EAAG,GAAG,GACjBO,EAAE,KAAOvD,EAAE,GAAI,EAAE,GAAK/N,IAAKC,EAAE,MAAOkR,GAAI,CACtCG,EAAE,OAAO,cAAc,EAAI5D,GAAG4D,EAAE,OAAQ,eAAgB,CACtD,IAAK,EACL,OAAQ7F,EACR,MAAOjB,EAAE,KACnB,CAAS,EAAIuD,EAAE,GAAI,EAAE,EACbuD,EAAE,OAAO,cAAc,EAAIvD,EAAE,GAAI,EAAE,GAAK/N,EAAC,EAAIC,EAAE,SAAU,CACvD,IAAK,EACL,QAAS,aACT,IAAK4I,EACL,KAAM,SACN,MAAO,mBACP,KAAM,SACN,aAActG,EAAEJ,CAAC,GAAG,WACpB,SAAU,IACV,eAAgBgK,EAAE,MAClB,QAASV,EACT,UAAW8F,GAAE,CAAC,IAAMA,GAAE,CAAC,EAAKC,GAAMjP,EAAEmB,EAAE,EAAE8N,EAAG,IAAM/F,EAAC,EAAI,EAAE,EAClE,EAAWwC,GAAGzD,EAAE,KAAK,EAAG,GAAI4G,EAAE,EAC9B,CAAO,IACApR,EAAE,EAAE,EAAGC,EAAE4N,GAAI,KAAMgB,GAAGxC,EAAE,MAAO,CAACmF,EAAGC,MAAQzR,EAAC,EAAIuP,GAAGI,GAAI,CACtD,IAAK8B,GACL,KAAMlP,EAAEqI,CAAC,EAAEE,EAAE0G,EAAE,IAAI,CAAC,EACpB,IAAKjP,EAAEsI,CAAC,CAChB,EAAS,CACD,QAAS2E,GAAG,IAAM,CAChB1E,EAAE0G,EAAE,IAAI,GAAKxR,EAAC,EAAIuP,GAAGjB,GAAI,CACvB,IAAK,EACL,MAAO5C,EAAE8F,EAAE,IAAI,EACf,UAAWF,EAAE,WAAa,CAAC/O,EAAEyG,CAAC,EAAE,cAChC,YAAasI,EAAE,SACf,KAAME,EAAE,KACR,aAAcF,EAAE,UAChB,OAAQA,EAAE,OACV,mBAAoBA,EAAE,gBACtB,cAAeA,EAAE,WACjB,gBAAiB/O,EAAEJ,CAAC,EAAE,cAAcqP,EAAE,IAAI,EAC1C,WAAaI,IAAOI,GAAGR,EAAE,KAAMI,EAAE,EACjC,SAAWA,IAAO/E,GAAE2E,EAAE,IAAI,EAC1B,YAAaD,GAAE,CAAC,IAAMA,GAAE,CAAC,EAAKK,IAAON,EAAE,MAAM,YAAY,EACrE,EAAa1B,GAAG,CACJ,cAAeJ,GAAG,IAAM,CACtB8B,EAAE,OAAO,YAAY,EAAI5D,GAAG4D,EAAE,OAAQ,aAAc,CAAE,IAAK,CAAC,CAAE,EAAIvD,EAAE,GAAI,EAAE,EAC1EuD,EAAE,OAAO,YAAY,EAAIvD,EAAE,GAAI,EAAE,GAAK/N,EAAC,EAAIuP,GAAG0C,GAAGX,EAAE,iBAAmB/O,EAAEzC,EAAE,EAAIyC,EAAEjC,EAAE,CAAC,EAAG,CAAE,IAAK,EAAG,EAC9G,CAAa,EACD,EAAG,CACf,EAAa,CACDgR,EAAE,OAAO,GAAGE,EAAE,IAAI,gBAAgB,EAAI,CACpC,KAAM,OACN,GAAIhC,GAAG,CAAC,CAAE,KAAMoC,EAAE,IAAO,CACvBlE,GAAG4D,EAAE,OAAQ,GAAGE,EAAE,IAAI,iBAAkB,CACtC,KAAMI,GAAG,KACT,MAAOA,GAAG,KAC5B,CAAiB,CACjB,CAAe,EACD,IAAK,GACnB,EAAgB,OACJN,EAAE,OAAO,GAAGE,EAAE,IAAI,iBAAiB,EAAI,CACrC,KAAM,SACN,GAAIhC,GAAG,IAAM,CACX9B,GAAG4D,EAAE,OAAQ,GAAGE,EAAE,IAAI,kBAAmB,CACvC,OAAQ,IAAM3E,GAAE2E,EAAE,IAAI,CACxC,CAAiB,CACjB,CAAe,EACD,IAAK,GACnB,EAAgB,MAChB,CAAW,EAAG,KAAM,CAAC,QAAS,UAAW,YAAa,OAAQ,aAAc,SAAU,mBAAoB,cAAe,gBAAiB,aAAc,UAAU,CAAC,GAAKzD,EAAE,GAAI,EAAE,CAChL,CAAS,EACD,EAAG,CACX,EAAS,KAAM,CAAC,OAAQ,KAAK,CAAC,EAAE,EAAG,GAAG,EACtC,CAAK,EACH,CACF,CAAC,EAAGmE,GAAK,CAAC,gBAAgB,EAAGC,GAAK,CAAC,aAAc,UAAU,EAAGC,GAAK,CAAC,OAAQ,aAAc,UAAU,EAAGC,GAAK,CAAC,YAAY,EAAGC,GAAqB/E,GAAG,CAClJ,aAAc,CACZ,KAAM,CACV,EACE,OAAQ,aACR,MAAO,CACL,MAAO,CAAE,KAAM,CAAC,OAAQ,KAAK,EAAG,QAAS,CAAC,EAC1C,QAAS,CAAE,KAAM,CAAC,OAAQ,KAAK,EAAG,QAAS,CAAC,EAC5C,QAAS,CAAE,KAAM,CAAC,OAAQ,KAAK,EAAG,QAAS,CAAC,EAC5C,oBAAqB,CAAE,KAAM,SAAU,QAAS,IAAI,EACpD,aAAc,CACZ,KAAM,SACN,QAAS,IAAM,EACrB,EACI,GAAGJ,EACP,EACE,MAAO,CACL,eACA,iBACA,iBACA,QACA,aACA,iBACA,iBACA,cACJ,EACE,MAAM,EAAG,CAAE,OAAQ,EAAG,KAAMxM,GAAK,CAC/B,MAAM9G,EAAI8G,EAAGpC,EAAI,EAAG,CAAE,YAAawD,EAAG,cAAeb,CAAC,EAAK0H,GAAE,EAAIzG,EAAIsO,GAAE,EAAI,CAAE,qBAAsBrO,EAAG,oBAAqB2G,EAAG,mBAAoBC,EAAG,gBAAiB0B,EAAG,eAAgBC,CAAC,EAAKN,GAAG9L,CAAC,EAAG,CAAE,eAAgBqM,EAAG,eAAgBC,GAAMyE,GAAGlN,CAAC,EAAG,CAAE,sBAAuB0I,CAAC,EAAKyD,GAAE,EAAI/D,EAAInC,EAAE,IAAI,EAAGQ,EAAIR,EAAE,IAAI,EAAGS,EAAIT,EAAE,CAAA,CAAE,EAAG0C,EAAI1C,EAAE,IAAI,EAAGoC,EAAIpC,EAAE,EAAE,EACvVmF,GAAG,IAAM,CACP3T,EAAE,OAAO,EAAG,CAAC0E,EAAE,YAAcA,EAAE,gBAAkBwD,EAAE,CAACO,GAAGkI,EAAE,KAAK,CAAC,EAAG,MAAM,EAAItJ,EAAE,GAAI3C,EAAE,UAAU,CAChG,CAAC,EACD,MAAMyM,EAAI9C,EAAE,IAAMyC,EAAE,MAAM,SAAWpM,EAAE,UAAYkE,GAAGlE,EAAE,kBAAkB,EAAI,EAAE,EAAGqN,EAAKvD,EAAE,EAAE,EAAGiC,EAAKiB,IAAO,CACzG,MAAO,MAAM,QAAQhN,EAAE,KAAK,EAAIA,EAAE,MAAMgN,CAAC,EAAIhN,EAAE,MAC/C,QAAS,MAAM,QAAQA,EAAE,OAAO,EAAIA,EAAE,QAAQgN,CAAC,EAAIhN,EAAE,QACrD,QAAS,MAAM,QAAQA,EAAE,OAAO,EAAIA,EAAE,QAAQgN,CAAC,EAAIhN,EAAE,OAC3D,GAAQgM,EAAIrC,EAAE,IAAM,CACd,MAAMqD,EAAI,CAAA,EACV,GAAIZ,EAAE,MAAM,QACV,QAASgB,EAAI,EAAGA,EAAI,EAAGA,IACrBJ,EAAE,KAAKjB,EAAEqB,CAAC,CAAC,OAEbJ,EAAE,KAAKjB,EAAE,CAAC,CAAC,EACb,OAAOiB,CACT,CAAC,EAAGM,EAAK,CAACN,EAAGI,EAAI,GAAID,EAAI,KAAO,CAC9BC,GAAK9R,EAAE,YAAY,EAAG+R,EAAG,MAAQL,EAAG1R,EAAE0R,EAAI,iBAAmB,iBAAkBjK,GAAG,IAAI,EAAG/C,EAAE,iBAAmB2C,EAAEqK,CAAC,EAAGkD,GAAG,IAAM,CAC3H/C,IAAM,IAAM5C,EAAE,MAAM,CAAC,GAAKA,EAAE,MAAM,CAAC,EAAE,aAAa4C,CAAC,CACrD,CAAC,CACH,EAAGI,EAAI5D,EAAE,KAAO,CACd,QAAS,GACT,WAAY,GACZ,kBAAmB3J,EAAE,WAAa,CAACmM,EAAE,MAAM,aACjD,EAAM,EAAGqB,GAAI2E,GAAGvO,EAAG,YAAY,EAAG6J,GAAK,CAACT,EAAGI,EAAGD,IAAMf,EAAE,MAAM,QAAUgB,IAAM,EAAI,CAACJ,EAAGhB,EAAE,MAAM,CAAC,EAAEmB,CAAC,CAAC,EAAI,CAACnB,EAAE,MAAM,CAAC,EAAEmB,CAAC,EAAGH,CAAC,EAAIA,EAAGU,GAAMV,GAAM,CACnI1R,EAAE,eAAgB0R,CAAC,CACrB,EAAGW,EAAKX,GAAM,CACZ1R,EAAE,iBAAkB0R,CAAC,CACvB,EAAGY,EAAKZ,GAAM,CACZ1R,EAAE,iBAAkB0R,CAAC,CACvB,EAAGa,EAAK,IAAM,CACZ,GAAIrB,EAAE,OAAS,CAAC/B,EAAE,MAAM,SAAW,CAACzK,EAAE,eAAgB,CACpD,MAAMgN,EAAIzI,GAAGiI,EAAE,KAAK,EACpBQ,GAAKA,EAAE,MAAM,CAAE,cAAe,EAAE,CAAE,CACpC,CACF,EAAGc,EAAKd,GAAM,CACZd,EAAE,MAAQ,GAAI5Q,EAAE,iBAAkB0R,CAAC,CACrC,EAAGe,GAAKf,GAAM,CACZd,EAAE,MAAQ,GAAI5Q,EAAE,iBAAkB0R,CAAC,CACrC,EACA,OAAO,EAAE,CAAE,iBAAkBM,EAAI,EAAG,CAACN,EAAGI,KAAO3L,IAAKC,EAAE,MAAO,CAC3D,MAAO,cACP,iBAAkBsL,EAAE,QAC1B,EAAO,CACD,CAACA,EAAE,YAAc,CAACA,EAAE,iBAAmBuD,IAAI9O,EAAC,EAAIC,EAAE,SAAU,CAC1D,IAAK,EACL,QAAS,oBACT,IAAKuK,EACL,KAAM,SACN,MAAOmE,GAAG,CAAE,GAAG7C,EAAE,MAAO,gBAAiBF,EAAG,MAAO,EACnD,aAAcrJ,EAAEwG,CAAC,GAAG,eACpB,SAAUwC,EAAE,eAAiB,OAAS,EACtC,eAAgB,uBAChB,UAAWI,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKD,GAAMnJ,EAAEmB,EAAE,EAAEgI,EAAG,IAAMG,EAAG,EAAE,CAAC,GACvD,QAASF,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKD,GAAMG,EAAG,EAAE,EAC7C,EAAS,CACDN,EAAE,OAAO,YAAY,EAAImC,GAAGnC,EAAE,OAAQ,aAAc,CAAE,IAAK,CAAC,CAAE,EAAIwC,EAAE,GAAI,EAAE,EAC1ExC,EAAE,OAAO,YAAY,EAAIwC,EAAE,GAAI,EAAE,GAAK/N,EAAC,EAAIuP,GAAGhN,EAAEjC,EAAE,EAAG,CAAE,IAAK,EAAG,EACvE,EAAS,GAAI6R,EAAE,GAAI,CACX,CAACpD,GAAI,CAACxM,EAAEuI,CAAC,EAAES,EAAE,eAAgB,MAAM,CAAC,CAC5C,CAAO,EAAIwC,EAAE,GAAI,EAAE,EACb2B,GAAGC,GAAI,CACL,KAAMpN,EAAEqI,CAAC,EAAEgB,EAAG,KAAK,EACnB,IAAKrJ,EAAEsI,CAAC,GAAK,CAACU,EAAE,gBACxB,EAAS,CACD,QAASiE,GAAG,IAAM,CAChB5D,EAAG,OAASL,EAAE,YAAcA,EAAE,kBAAoBvL,EAAC,EAAIC,EAAE,MAAO,CAC9D,IAAK,EACL,QAAS,aACT,IAAK8K,EACL,KAAMQ,EAAE,iBAAmB,OAAS,SACpC,MAAOoD,GAAG,CACR,YAAa,CAACpD,EAAE,iBAChB,uBAAwB,CAAChN,EAAE,YAAc,CAACgN,EAAE,iBAC5C,uBAAwBhN,EAAE,UACxC,CAAa,EACD,MAAOuP,GAAGvC,EAAE,WAAa,CAAE,OAAQ,GAAGhJ,EAAEmI,CAAC,EAAE,UAAU,IAAI,EAAK,MAAM,EACpE,aAAcnI,EAAEwG,CAAC,GAAG,WACpB,SAAUwC,EAAE,iBAAmB,OAAS,CACpD,EAAa,CACDrL,GAAG,MAAO,CACR,MAAOyO,GACLpD,EAAE,iBAAmB,mCAAqC,4EAC1E,EACc,MAAO,CAAE,QAAS,MAAM,CACtC,EAAe,CACDA,EAAE,OAAO,qBAAqB,EAAImC,GAAGnC,EAAE,OAAQ,sBAAuB,CACpE,IAAK,EACL,MAAO,EAAE,MACT,QAAS,EAAE,QACX,QAAS,EAAE,QACX,SAAUU,GACV,WAAYC,EACZ,WAAYC,CAC5B,CAAe,EAAI4B,EAAE,GAAI,EAAE,EACbxC,EAAE,OAAO,qBAAqB,EAAIwC,EAAE,GAAI,EAAE,GAAK/N,IAAKC,EAAE,MAAO,CAC3D,IAAK,EACL,MAAO0O,GAAGpD,EAAE,iBAAmB,WAAa,8BAA8B,CAC1F,EAAiB,EACAvL,EAAE,EAAE,EAAGC,EAAE4N,GAAI,KAAMgB,GAAGtE,EAAE,MAAO,CAACmB,EAAGa,KAAOuC,IAAI9O,IAAKuP,GAAG8B,GAAIzD,GAAG,CAAE,IAAKrB,IAAM,CAAE,QAAS,EAAE,EAAI,CAC1F,GAAGhB,EAAE,OACL,MAAOgB,GACP,MAAOb,EAAE,MACT,QAASA,EAAE,QACX,QAASA,EAAE,QACX,mBAAoB7C,EAAE,MACtB,oBAAqB,EAAE,oBACvB,SAAU0D,KAAO,EAAIhK,EAAEoI,CAAC,EAAE,WAAapI,EAAEoI,CAAC,EAAE,QAC9D,EAAmB,CACD,QAAS,GACT,QAAS,gBACT,IAAK7B,EACL,gBAAiB,CAAC4D,EAAGC,IAAO,EAAE,aAAaD,EAAGV,GAAGW,EAAIJ,GAAIG,CAAC,CAAC,EAC3D,iBAAmBA,GAAMT,GAAGD,GAAGU,EAAGH,GAAI,OAAO,CAAC,EAC9C,mBAAqBG,GAAMR,EAAEF,GAAGU,EAAGH,GAAI,SAAS,CAAC,EACjD,mBAAqBG,GAAMP,EAAEH,GAAGU,EAAGH,GAAI,SAAS,CAAC,EACjD,UAAWH,EACX,gBAAiBC,EACjB,gBAAiBC,GACjB,aAAcX,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKe,GAAMnB,EAAE,MAAM,eAAgBmB,CAAC,EAChF,CAAiB,EAAGkD,GAAG,CAAE,EAAG,CAAC,EAAI,CACff,GAAGtM,EAAEwJ,EAAC,EAAG,CAACW,EAAGC,KAAQ,CACnB,KAAMD,EACN,GAAI8C,GAAI5C,GAAM,CACZc,GAAGnC,EAAE,OAAQmB,EAAGkB,GAAG,CAAE,QAAS,EAAE,EAAIhB,CAAC,CAAC,CAC5D,CAAqB,CACrB,EAAoB,CACpB,CAAiB,EAAG,KAAM,CAAC,gBAAiB,iBAAkB,mBAAoB,kBAAkB,CAAC,GAAI,CACvF,CAACmC,GAAIxC,KAAO,EAAI,GAAKvB,EAAE,KAAK,CAC9C,CAAiB,CAAC,EAAG,GAAG,EACxB,EAAiB,CAAC,GACJ,CAACO,EAAE,YAAc,CAACA,EAAE,iBAAmBuD,IAAI9O,EAAC,EAAIC,EAAE,SAAU,CAC1D,IAAK,EACL,QAAS,qBACT,IAAK4I,EACL,KAAM,SACN,MAAO8F,GAAG,CAAE,GAAG7C,EAAE,MAAO,gBAAiBrB,EAAE,MAAO,EAClD,aAAclI,EAAEwG,CAAC,GAAG,gBACpB,SAAU,IACV,UAAW4C,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKD,GAAMnJ,EAAEmB,EAAE,EAAEgI,EAAG,IAAMG,EAAG,EAAE,CAAC,GACvD,QAASF,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKD,GAAMG,EAAG,EAAE,EACrD,EAAiB,CACDN,EAAE,OAAO,eAAe,EAAImC,GAAGnC,EAAE,OAAQ,gBAAiB,CAAE,IAAK,CAAC,CAAE,EAAIwC,EAAE,GAAI,EAAE,EAChFxC,EAAE,OAAO,eAAe,EAAIwC,EAAE,GAAI,EAAE,GAAK/N,EAAC,EAAIuP,GAAGhN,EAAEzC,EAAE,EAAG,CAAE,IAAK,EAAG,EAClF,EAAiB,GAAIuS,EAAE,GAAI,CACX,CAACtD,GAAI,CAACxM,EAAEuI,CAAC,EAAES,EAAE,eAAgB,MAAM,CAAC,CACpD,CAAe,EAAIwC,EAAE,GAAI,EAAE,CAC3B,EAAe,CAAC,CAChB,EAAa,GAAIqE,EAAE,GAAKrE,EAAE,GAAI,EAAE,CAChC,CAAS,EACD,EAAG,CACX,EAAS,EAAG,CAAC,OAAQ,KAAK,CAAC,CAC3B,EAAO,EAAGmE,EAAE,EACV,CACF,CAAC,EAAGK,GAAK,CAAC,EAAG,EAAG5R,EAAG9G,IAAM,CACvB,KAAM,CAAE,eAAgB0E,CAAC,EAAK8L,GAAG,CAAC,EAAGtI,EAAI,CAACgJ,EAAGN,IAAM,MAAM,QAAQ,EAAEM,CAAC,CAAC,EAAI,EAAEA,CAAC,EAAEN,CAAC,EAAI,EAAEM,CAAC,EAAG7J,EAAK6J,GAAM,EAAE,cAAgB,MAAM,QAAQ,EAAE,OAAO,EAAI,EAAE,QAAQA,CAAC,EAAI,EAAE,QAAU,EAAG5I,EAAI,CAAC4I,EAAGN,IAAMM,EAAIN,IAAM,OAASnG,GAAGyG,EAAGhJ,EAAE,QAAS0I,CAAC,EAAG1I,EAAE,UAAW0I,CAAC,EAAGvJ,EAAEuJ,CAAC,CAAC,EAAInG,GAAGyG,EAAG,EAAE,MAAO,EAAE,QAAS7J,GAAG,EAAIuD,GAAG5D,EAAC,EAAIK,EAAEuJ,CAAC,CAAC,EAAGrI,EAAI,CAAC2I,EAAGN,IAAM,CAC1T,EAAEM,CAAC,EAAIN,CACT,EAAG1B,EAAIb,EAAE,IAAM,EAAE,WAAa3J,EAAE,MAAM,QAAU,MAAM,QAAQoC,EAAE,KAAK,EAAIA,EAAE,MAAM,OAAS,EAAI,GAAKpC,EAAE,MAAM,OAAO,EAAGyK,EAAI,CAAC+B,EAAGN,IAAM,CACjI,MAAMO,EAAI,OAAO,YACf,OAAO,KAAK,CAAC,EAAE,IAAKY,GAAOA,IAAOb,EAAI,CAACa,EAAInB,CAAC,EAAI,CAACmB,EAAI,EAAEA,CAAE,CAAC,EAAE,MAAK,CAAE,CACzE,EACI,GAAI7C,EAAE,OAAS,CAACxK,EAAE,MAAM,2BAA4B,CAClD,MAAMqN,EAAMrB,GAAM5J,EAAE,MAAQ2D,GAC1B3D,EAAE,MAAM4J,CAAC,EACTS,EAAE,MAAMT,CAAC,EACTS,EAAE,QAAQT,CAAC,EACXS,EAAE,QAAQT,CAAC,CACnB,EAAU,KAAMD,EAAKC,GAAM7F,GAAG/D,EAAE,MAAM4J,CAAC,EAAG,CAAC,EACrC,MAAO,EAAE1F,GAAG+G,EAAG,CAAC,EAAGA,EAAG,CAAC,CAAC,IAAM5G,GAAG4G,EAAG,CAAC,EAAGtB,EAAE,CAAC,CAAC,GAAK1F,GAAGgH,EAAG,CAAC,EAAGtB,EAAE,CAAC,CAAC,GACjE,CACA,MAAO,EACT,EAAGI,EAAI,CAACK,EAAGN,IAAM,CACfzB,EAAE+B,EAAGN,CAAC,IAAMrI,EAAE2I,EAAGN,CAAC,EAAG5Q,GAAKA,IAC5B,EAAG8Q,EAAKI,GAAM,CACZL,EAAE,QAASK,CAAC,CACd,EAAGH,EAAKG,GAAM,CACZL,EAAE,UAAWK,CAAC,CAChB,EAAGF,EAAKE,GAAM,CACZL,EAAE,UAAWK,CAAC,CAChB,EAAGD,EAAI,CAACC,EAAGN,EAAGO,EAAGY,IAAO,CACtBnB,GAAKE,EAAEI,CAAC,EAAG,CAACN,GAAK,CAACO,GAAKJ,EAAEG,CAAC,EAAGC,GAAKH,EAAEE,CAAC,EAAGpK,EAAE,OAASiL,EAAGjL,EAAE,KAAK,CAC/D,EAAG6J,EAAKO,GAAM,CACZ,GAAIA,EAAG,CACL,MAAMN,EAAI,MAAM,QAAQM,CAAC,EAAGC,EAAIP,EAAI,CAAC,CAACM,EAAE,CAAC,EAAE,MAAO,CAACA,EAAE,CAAC,EAAE,KAAK,EAAI,CAACA,EAAE,MAAOa,EAAKnB,EAAI,CAAC,CAACM,EAAE,CAAC,EAAE,QAAS,CAACA,EAAE,CAAC,EAAE,OAAO,EAAI,CAACA,EAAE,QAAST,EAAIG,EAAI,CAAC,CAACM,EAAE,CAAC,EAAE,QAAS,CAACA,EAAE,CAAC,EAAE,OAAO,EAAI,CAACA,EAAE,QAC7K3I,EAAE,QAAS4I,CAAC,EAAG5I,EAAE,UAAWwJ,CAAE,EAAG,EAAE,eAAiBxJ,EAAE,UAAWkI,CAAC,CACpE,CACF,EAAGzB,EAAI,CAACkC,EAAGN,IAAM,CACf,MAAMO,EAAI,CACR,MAAO,MAAM,QAAQ,EAAE,KAAK,EAAI,EAAE,MAAMD,CAAC,EAAI,EAAE,MAC/C,YAAa,CAAA,CACnB,EACI,OAAQN,GAAKA,IAAM,KAAOO,EAAE,MAAQP,GAAI,MAAM,QAAQ,EAAE,aAAa,IAAMO,EAAE,YAAczM,EAAE,MAAM,SAAW,MAAM,QAAQ,EAAE,cAAcwM,CAAC,CAAC,EAAI,EAAE,cAAcA,CAAC,EAAI,EAAE,eAAgBC,CAC3L,EAAGlC,EAAIZ,EAAE,IAAM,CAAC6C,EAAGN,IAAM,CACvB,GAAI,MAAM,QAAQ,EAAE,aAAa,EAAG,CAClC,KAAM,CAAE,YAAaO,EAAG,MAAOY,CAAE,EAAK/C,EAAEkC,EAAGN,CAAC,EAAGH,EAAIU,EAAE,OAAQT,GAAM,CAACA,EAAE,QAAUqB,CAAE,EAClF,OAAOtB,EAAE,CAAC,GAAG,UAAY,IAAM,CAAE,MAAO,CAACsB,CAAE,EAAG,QAAS,OAAQ,QAAS,MAAM,EAAK,CACjF,MAAO,CAAA,EACP,QAAStB,GAAG,IAAKC,GAAM,CAACA,EAAE,OAAO,GAAK,CAAA,EACtC,QAASD,GAAG,IAAKC,GAAMA,EAAE,QAAU,CAACA,EAAE,QAAU,MAAM,GAAK,CAAA,CACnE,CACI,CACA,MAAO,CAAE,MAAO,CAAA,EAAI,QAAS,CAAA,EAAI,QAAS,EAAE,CAC9C,CAAC,EACD,MAAO,CACL,QAASnI,EACT,YAAauI,EACb,cAAeC,EACf,cAAeC,EACf,eAAgB1I,EAChB,iBAAkB2I,EAClB,gBAAiB5J,EACjB,gBAAiBsJ,EACjB,aAAcxB,EACd,oBAAqBF,CACzB,CACA,EAAG0J,GAAK,CAAC,EAAG,IAAM,CAChB,MAAM7R,EAAI,IAAM,CACd,EAAE,iBAAmB8J,EAAC,CACxB,EAAG,CAAE,WAAY5Q,EAAG,KAAM0E,CAAC,EAAKgS,GAAG,EAAG,EAAG5P,CAAC,EAAG,CAAE,mBAAoBoB,EAAG,eAAgBb,EAAG,YAAaiB,CAAC,EAAKkI,GAAG,CAAC,EAAG,CAAE,iBAAkBjI,EAAG,eAAgB2G,EAAG,QAASC,EAAG,gBAAiB0B,EAAG,oBAAqBC,EAAG,aAAcC,GAAM2H,GAAG,EAAGhU,EAAG1E,EAAGgR,CAAC,EACtP,SAASA,GAAI,CACX,EAAE,kBAAkB,CACtB,CACA,MAAMC,EAAKR,GAAM,CACf,KAAM,CAAE,MAAOC,EAAG,QAASsB,EAAI,QAASC,CAAC,EAAKxB,EAC9C,MAAO,CAAE,MAAO,CAACC,EAAG,QAAS,CAACsB,EAAI,QAASC,EAAI,CAACA,EAAI,CAAC,CACvD,EAAGtB,EAAI,IAAM,CACX,GAAI,EAAE,UAAW,CACf,GAAI,MAAM,QAAQ,EAAE,SAAS,EAAG,CAC9B,MAAMD,EAAIO,EAAE,EAAE,UAAU,CAAC,CAAC,EAAGe,EAAKf,EAAE,EAAE,UAAU,CAAC,CAAC,EAClD,MAAO,CAAC5G,GAAGrD,IAAK0J,CAAC,EAAGrG,GAAGrD,IAAKgL,CAAE,CAAC,CACjC,CACA,MAAMvB,EAAIQ,EAAE,EAAE,SAAS,EACvB,OAAO5G,GAAGrD,EAAC,EAAIyJ,CAAC,CAClB,CACA,OAAOpJ,EAAE,MAAM,QAAU,CAAC,KAAM,IAAI,EAAI,IAC1C,EAAG2H,EAAI,IAAM,CACX,GAAI3H,EAAE,MAAM,QAAS,CACnB,KAAM,CAACoJ,EAAGC,CAAC,EAAIC,EAAC,EAChB3Q,EAAE,MAAQ,CACR4G,GAAGsI,EAAEuB,EAAG,CAAC,EAAGnI,EAAE,MAAM,QAAQ,EAC5B1B,GAAGsI,EAAEwB,EAAG,CAAC,EAAGpI,EAAE,MAAM,QAAQ,CACpC,CACI,MACEtI,EAAE,MAAQ4G,GAAGsI,EAAEyB,EAAC,CAAE,EAAGrI,EAAE,MAAM,QAAQ,CACzC,EAAG2G,EAAKwB,GAAM,MAAM,QAAQA,CAAC,EAAI,CAAClF,GAAGvE,EAAEyJ,EAAE,CAAC,CAAC,CAAC,EAAGlF,GAAGvE,EAAEyJ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAI,CAAClF,GAAGkF,GAAKzJ,EAAC,CAAE,CAAC,EAAGkK,EAAI,CAACT,EAAGC,EAAGsB,IAAO,CAC9F7C,EAAE,QAASsB,CAAC,EAAGtB,EAAE,UAAWuB,CAAC,EAAGvB,EAAE,UAAW,EAAE,cAAgB6C,EAAK,CAAC,CACvE,EAAGpB,EAAI,IAAM,CACX,KAAM,CAACH,EAAGC,CAAC,EAAIzB,EAAEjP,EAAE,KAAK,EACxB,OAAOqH,EAAE,MAAM,QAAU6J,EACvB,CAACT,EAAE,MAAOC,EAAE,KAAK,EACjB,CAACD,EAAE,QAASC,EAAE,OAAO,EACrB,CAACD,EAAE,QAASC,EAAE,OAAO,CAC3B,EAAQQ,EAAET,EAAE,MAAOA,EAAE,QAASA,EAAE,OAAO,CACrC,EACAkD,GAAG,IAAM,CACP,GAAI,CAAC,EAAE,OACL,OAAO9C,EAAE3I,EAAE,KAAK,EAAGlI,EAAE,MAAQ4Q,EAAC,EAAK5B,EAAC,CACxC,CAAC,EACD,MAAMmC,EAAI,IAAM,CACd,MAAM,QAAQnR,EAAE,KAAK,EAAIA,EAAE,MAAQA,EAAE,MAAM,IAAI,CAACyQ,EAAGC,IAAMD,GAAKvB,EAAEuB,EAAGC,CAAC,CAAC,EAAI1Q,EAAE,MAAQkP,EAAElP,EAAE,KAAK,EAAG,EAAE,aAAa,CAChH,EACA,MAAO,CACL,WAAYA,EACZ,KAAM0E,EACN,oBAAqBoM,EACrB,WAAY,CAACL,EAAGC,EAAI,GAAIsB,EAAK,KAAO,CAClCzJ,EAAEkI,EAAGC,EAAGsB,EAAIb,CAAC,CACf,EACA,aAAcJ,CAClB,CACA,EAAG6H,GAAqBlF,GAAG,CACzB,aAAc,CACZ,KAAM,CACV,EACE,OAAQ,iBACR,MAAO,CACL,GAAGJ,EACP,EACE,MAAO,CACL,8BACA,cACA,eACA,QACA,aACA,mBACA,gBACJ,EACE,MAAM,EAAG,CAAE,OAAQ,EAAG,KAAMxM,GAAK,CAC/B,MAAM9G,EAAI8G,EAAGpC,EAAI,EAAGwD,EAAI0O,GAAE,EAAIvP,EAAIwP,GAAG3O,EAAG,YAAY,EAAGI,EAAIkG,EAAE,IAAI,EAAG,CAAE,KAAMjG,EAAG,WAAY2G,EAAG,oBAAqBC,EAAG,WAAY0B,EAAG,aAAcC,CAAC,EAAK6H,GAAGjU,EAAG1E,CAAC,EAChK,OAAO2T,GAAG,IAAM,CACdjP,EAAE,QAAU1E,EAAE,QAAS,IAAI,CAC7B,CAAC,EAAG,EAAE,CAAE,gBAAiB,KAAO,CAC9B,WAAYkP,EACZ,KAAM3G,EACN,WAAYsI,CAClB,GAAQ,iBAAkB,CAACI,EAAGN,EAAI,GAAI3B,EAAI,KAAO,CAC3C1G,EAAE,OAAO,iBAAiB2I,EAAGN,EAAG3B,CAAC,CACnC,CAAC,CAAE,EAAG,CAACiC,EAAGN,KAAOxK,EAAC,EAAIuP,GAAGN,GAAI,CAC3B,kBAAmB,EACnB,QAAS,GACT,YAAanE,EAAE,QACrB,EAAO,CACD,QAAS0E,GAAG,IAAM,CAChBE,GAAG4C,GAAI1E,GAAG,CACR,QAAS,QACT,IAAKzL,CACf,EAAW2I,EAAE,OAAQ,CACX,MAAOvI,EAAEH,CAAC,EAAE,MACZ,QAASG,EAAEH,CAAC,EAAE,QACd,QAASG,EAAEH,CAAC,EAAE,QACd,uBAAwB0I,EAAE,mBAC1B,wBAAyBvI,EAAEyG,CAAC,EAC5B,gBAAiBzG,EAAEoI,CAAC,EACpB,iBAAkBH,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAK3B,GAAMtG,EAAEmI,CAAC,EAAE7B,CAAC,GAC/C,mBAAoB2B,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAK3B,GAAMtG,EAAEmI,CAAC,EAAE7B,EAAG,EAAE,GACrD,mBAAoB2B,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAK3B,GAAMtG,EAAEmI,CAAC,EAAE7B,EAAG,GAAI,EAAE,GACzD,aAAc2B,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAK3B,GAAMiC,EAAE,MAAM,eAAgBjC,CAAC,GAC9D,YAAa2B,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAK3B,GAAMiC,EAAE,MAAM,YAAY,GACxD,gBAAiBN,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAK3B,GAAMiC,EAAE,MAAM,iBAAkB,CAAE,KAAM,GAAI,QAASjC,CAAC,CAAE,GAC1F,gBAAiB2B,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAK3B,GAAMiC,EAAE,MAAM,iBAAkB,CAAE,KAAM,GAAI,QAASjC,EAAG,EACpG,CAAS,EAAG+G,GAAG,CAAE,EAAG,CAAC,EAAI,CACff,GAAGtM,EAAErB,CAAC,EAAG,CAAC2H,EAAGC,KAAO,CAClB,KAAMD,EACN,GAAI2G,GAAIzE,GAAM,CACZ2C,GAAG5C,EAAE,OAAQjC,EAAG8E,GAAGgD,GAAG5F,CAAC,CAAC,CAAC,CACvC,CAAa,CACb,EAAY,CACZ,CAAS,EAAG,KAAM,CAAC,QAAS,UAAW,UAAW,uBAAwB,wBAAyB,eAAe,CAAC,CACnH,CAAO,EACD,EAAG,CACT,EAAO,EAAG,CAAC,WAAW,CAAC,EACrB,CACF,CAAC,EAAG2H,GAAK,CAAE,MAAO,iBAAiB,EAAIC,GAAK,CAC1C,IAAK,EACL,MAAO,qBACT,EAAGC,GAAK,CAAE,IAAK,CAAC,EAAIC,GAAK,CAAE,MAAO,qBAAqB,EAAIC,GAAK,CAAC,kBAAmB,aAAc,eAAgB,UAAW,WAAW,EAAGC,GAAqBxF,GAAG,CACjK,aAAc,CACZ,KAAM,CACV,EACE,OAAQ,WACR,MAAO,CACL,MAAO,CAAE,KAAM,OAAQ,QAAS,CAAC,EACjC,KAAM,CAAE,KAAM,OAAQ,QAAS,CAAC,EAChC,SAAU,CAAE,KAAM,OAAQ,QAAS,CAAC,EACpC,MAAO,CAAE,KAAM,MAAO,QAAS,IAAM,CAAA,CAAE,EACvC,OAAQ,CAAE,KAAM,MAAO,QAAS,IAAM,CAAA,CAAE,EACxC,GAAGJ,EACP,EACE,MAAO,CAAC,oBAAqB,QAAS,aAAc,iBAAkB,gBAAgB,EACtF,MAAM,EAAG,CAAE,OAAQ,EAAG,KAAMxM,GAAK,CAC/B,MAAM9G,EAAI8G,EAAGpC,EAAI,EAAG,CAClB,qBAAsBwD,EACtB,oBAAqBb,EACrB,wBAAyBiB,EACzB,iBAAkBC,EAClB,gBAAiB2G,EACjB,mBAAoBC,EACpB,UAAW0B,EACX,YAAaC,CACnB,EAAQN,GAAG9L,CAAC,EAAG,CAAE,eAAgBqM,EAAG,eAAgBC,CAAC,EAAKyE,GAAGvN,CAAC,EAAG,CAAE,YAAa+I,CAAC,EAAKlC,GAAE,EAAI,CAAE,sBAAuB4B,EAAG,WAAY3B,EAAG,gBAAiBC,GAAMgE,GAAGvO,EAAG1E,CAAC,EAAG,CAAE,aAAckR,EAAG,cAAeN,CAAC,EAAK8D,GAAE,EAAIvD,EAAI3C,EAAE,EAAE,EAAGuD,EAAKvD,EAAE,EAAE,EAAGiC,EAAIjC,EAAE,EAAE,EAAGkC,EAAIlC,EAAE,CAAC,KAAM,KAAM,KAAM,IAAI,CAAC,EAClRmF,GAAG,IAAM,CACP3T,EAAE,OAAO,CACX,CAAC,EACD,MAAMgS,EAAMa,IAAO,CACjB,IAAK,IAAMnO,EAAEmO,CAAC,EACd,IAAMC,GAAO,CACX,MAAMC,EAAIF,IAAMvL,GAAG,MAAQA,GAAG,KAAOA,GAAG,MACxCtH,EAAE,oBAAqB,CAAE,CAAC6S,CAAC,EAAGC,EAAI,CAACC,CAAC,EAAGrO,EAAEqO,CAAC,CAAC,CAAE,EAAGF,IAAMvL,GAAG,MAAQkL,EAAE,EAAE,EAAIC,GAAE,EAAE,CAC/E,CACN,GAAQR,EAAI5D,EAAE2D,EAAG1K,GAAG,KAAK,CAAC,EAAG4K,GAAI7D,EAAE2D,EAAG1K,GAAG,IAAI,CAAC,EAAG6K,GAAK9D,EAAE,IAAOwE,IAAO,CAChE,MAAOnO,EAAE,MACT,KAAMA,EAAE,KACR,MAAOmO,IAAMvL,GAAG,MAAQ5C,EAAE,OAASA,EAAE,MACrC,SAAUA,EAAE,SACZ,gBAAiBuK,EACjB,OAAQ4D,IAAMvL,GAAG,MAAQkL,EAAIC,EACnC,EAAM,EAAGL,GAAK/D,EAAE,IACA3J,EAAE,OAAO,KAAMoO,GAAOA,EAAG,QAAUpO,EAAE,KAAK,GACxC,CAAE,KAAM,GAAI,MAAO,CAAC,CACjC,EAAG2N,EAAIhE,EAAE,IAAMjF,GAAG1E,EAAE,OAASmO,GAAM,CAClC,MAAMC,EAAKpO,EAAE,QAAUmO,EAAE,MAAOE,EAAI5J,GAClC0J,EAAE,MACFlH,GAAGjH,EAAE,KAAMmM,EAAE,MAAM,OAAO,EAC1B/E,GAAGpH,EAAE,KAAMmM,EAAE,MAAM,OAAO,CAClC,GAAWtI,EAAE,MAAM,OAAO,SAASsK,EAAE,KAAK,EAAGG,GAAIrF,GAAGwB,EAAE,MAAO0D,EAAE,MAAOnO,EAAE,IAAI,EACtE,MAAO,CAAE,OAAQoO,EAAI,SAAUC,EAAG,YAAaC,EAAC,CAClD,CAAC,CAAC,EAAGV,EAAIjE,EAAE,IAAMjF,GAAG1E,EAAE,MAAQmO,GAAM,CAClC,MAAMC,EAAKpO,EAAE,OAASmO,EAAE,MAAOE,EAAI5J,GACjC0J,EAAE,MACF9G,GAAG8E,EAAE,MAAM,OAAO,EAClB9E,GAAG8E,EAAE,MAAM,OAAO,CAC1B,GAAWtI,EAAE,MAAM,MAAM,SAASsK,EAAE,KAAK,EAAGG,GAAIpF,GAAGuB,EAAE,MAAO0D,EAAE,KAAK,EAC7D,MAAO,CAAE,OAAQC,EAAI,SAAUC,EAAG,YAAaC,EAAC,CAClD,CAAC,CAAC,EAAGT,EAAK,CAACM,EAAGC,EAAIC,IAAM,CACtBA,IAAM,OAASF,EAAE,MAAQE,EAAIF,EAAE,MAAQ,CAACA,EAAE,MAAOA,EAAE,OAASpC,EAAE,MAAQ,GAAIzQ,EAAE,iBAAkB8S,CAAE,IAAMrC,EAAE,MAAQ,GAAIzQ,EAAE,iBAAkB8S,CAAE,EAC5I,EAAGN,EAAI,CAACK,EAAI,GAAIC,IAAO,CACrBpB,EAAEmB,CAAC,EAAGN,EAAGpB,EAAG1J,GAAG,MAAOqL,CAAE,CAC1B,EAAGL,GAAI,CAACI,EAAI,GAAIC,IAAO,CACrBpB,EAAEmB,CAAC,EAAGN,EAAGR,EAAItK,GAAG,KAAMqL,CAAE,CAC1B,EAAGpB,EAAKmB,GAAM,CACZA,GAAK7S,EAAE,YAAY,CACrB,EAAG8R,EAAI,CAACe,EAAGC,IAAO,CAChBpO,EAAE,kBAAoBgM,EAAE,MAAMoC,CAAE,EAAIrK,GAAGoK,CAAC,EAAG5B,EAAEP,EAAE,MAAO,WAAW,EACnE,EAAGmB,EAAIxD,EAAE,IAAM,CACb,CACE,KAAM/G,GAAG,MACT,MAAO,EACP,OAAQkL,EACR,WAAYP,EAAE,MACd,iBAAmBY,GAAMZ,EAAE,MAAQY,EACnC,KAAMT,GAAG,MAAM,KACf,kBAAmBjB,EAAE,MACrB,MAAOkB,EAAE,MACT,UAAWhL,EAAE,OAAO,kBACpB,aAAcA,EAAE,MAAM,cAAc,EAAE,GAAK,MACnD,EACM,CACE,KAAMC,GAAG,KACT,MAAO,EACP,OAAQmL,GACR,WAAYP,GAAE,MACd,iBAAmBW,GAAMX,GAAE,MAAQW,EACnC,KAAMzK,GAAG1D,EAAE,KAAMA,EAAE,MAAM,EACzB,kBAAmBqN,EAAG,MACtB,MAAOO,EAAE,MACT,UAAWjL,EAAE,OAAO,iBACpB,aAAcA,EAAE,MAAM,aAAa,EAAE,GAAK,MAClD,CACA,CAAK,EAAGqL,GAAKrE,EAAE,IAAM3J,EAAE,kBAAoB,CAACmN,EAAE,MAAM,CAAC,CAAC,EAAInN,EAAE,UAAY,CAAC,GAAGmN,EAAE,KAAK,EAAE,QAAO,EAAKA,EAAE,KAAK,EACpG,OAAO,EAAE,CACP,kBAAmBW,EACnB,iBAAkBC,GAClB,sBAAuB9B,CAC7B,CAAK,EAAG,CAACkC,EAAGC,KAAQ3M,EAAC,EAAIC,EAAE,MAAOyS,GAAI,CAChChG,EAAE,OAAO,YAAY,GAAK1M,EAAC,EAAIC,EAAE,MAAO0S,GAAI,CAC1CjF,GAAGhB,EAAE,OAAQ,aAAciB,GAAGgD,GAAG,CAC/B,MAAO,EAAE,MACT,KAAM,EAAE,KACR,OAAQ,EAAE,OACV,MAAO,EAAE,MACT,gBAAiBpO,EAAEuG,CAAC,EACpB,sBAAuBvG,EAAEiI,CAAC,EAC1B,SAAU,EAAE,SACZ,WAAYjI,EAAEsG,CAAC,CACzB,CAAS,CAAC,CAAC,CACX,CAAO,IAAM7I,EAAC,EAAIC,EAAE4N,GAAI,CAAE,IAAK,GAAK,CAC5BnB,EAAE,OAAO,WAAW,GAAK1M,EAAC,EAAIC,EAAE,MAAO2S,GAAI,CACzClF,GAAGhB,EAAE,OAAQ,YAAa,CAAE,MAAOA,EAAE,kBAAkB,CAAE,CACnE,CAAS,GAAKqB,EAAE,GAAI,EAAE,EACd7N,GAAG,MAAO2S,GAAI,CACZtQ,EAAEwI,CAAC,EAAExI,EAAEJ,CAAC,EAAG,EAAE,QAAQ,GAAK,CAACuK,EAAE,UAAY1M,EAAC,EAAIuP,GAAGJ,GAAI,CACnD,IAAK,EACL,aAAc5M,EAAErB,CAAC,GAAG,UACpB,SAAUqB,EAAEsG,CAAC,EAAE,EAAE,EACjB,MAAO8F,GAAGpM,EAAEoI,CAAC,GAAG,UAAU,EAC1B,UAAW,cACX,WAAYgC,EAAG,CAAC,IAAMA,EAAG,CAAC,EAAKC,GAAMrK,EAAEiI,CAAC,EAAE,GAAI,EAAE,GAChD,SAAUmC,EAAG,CAAC,IAAMA,EAAG,CAAC,EAAKC,GAAMjB,EAAEiB,EAAG,CAAC,EACrD,EAAa,CACD,QAAS4C,GAAG,IAAM,CAChB9C,EAAE,OAAO,YAAY,EAAIgB,GAAGhB,EAAE,OAAQ,aAAc,CAAE,IAAK,CAAC,CAAE,EAAIqB,EAAE,GAAI,EAAE,EAC1ErB,EAAE,OAAO,YAAY,EAAIqB,EAAE,GAAI,EAAE,GAAK/N,EAAC,EAAIuP,GAAGhN,EAAEnC,EAAE,EAAG,CAAE,IAAK,EAAG,EAC7E,CAAa,EACD,EAAG,CACf,EAAa,EAAG,CAAC,aAAc,WAAY,OAAO,CAAC,GAAK2N,EAAE,GAAI,EAAE,EACtD7N,GAAG,MAAO,CACR,MAAOyO,GAAG,CAAC,sBAAuB,CAChC,wBAAyBjC,EAAE,iBACzC,CAAa,CAAC,CACd,EAAa,EACA1M,EAAE,EAAE,EAAGC,EAAE4N,GAAI,KAAMgB,GAAGtC,GAAG,MAAO,CAACK,EAAGC,MAAO7M,EAAC,EAAIC,EAAE4N,GAAI,CACrD,IAAKjB,EAAE,IACrB,EAAe,CACD1M,GAAG,SAAU,CACX,QAAS,GACT,IAAMkL,GAAMO,EAAEP,EAAGyB,GAAI,CAAC,EACtB,KAAM,SACN,kBAAmB,WAAWD,EAAE,IAAI,GACpC,MAAO+B,GAAG,CAAC,gCAAiC,CAAE,gBAAiBrE,EAAE,KAAK,CAAE,CAAC,EACzE,aAAc,GAAGsC,EAAE,IAAI,IAAIA,EAAE,SAAS,GACtC,eAAgB,GAAGA,EAAE,IAAI,mBAAmB,EAAE,QAAQ,GACtD,QAASA,EAAE,OACX,UAAYxB,GAAM7I,EAAEmB,EAAE,EAAE0H,EAAG,IAAMwB,EAAE,OAAM,EAAI,EAAE,CAC/D,EAAiB,CACDF,EAAE,OAAOE,EAAE,IAAI,EAAIc,GAAGhB,EAAE,OAAQE,EAAE,KAAM,CACtC,IAAK,EACL,KAAMA,EAAE,KACR,MAAOrO,EAAEqO,EAAE,IAAI,CACjC,CAAiB,EAAImB,EAAE,GAAI,EAAE,EACbrB,EAAE,OAAOE,EAAE,IAAI,EAAImB,EAAE,GAAI,EAAE,GAAK/N,EAAC,EAAIC,EAAE4N,GAAI,CAAE,IAAK,CAAC,EAAI,CACrDG,GAAGC,GAAGrB,EAAE,IAAI,EAAG,CAAC,CAClC,EAAmB,EAAE,EACrB,EAAiB,GAAIkG,EAAE,EACTpD,GAAGC,GAAI,CACL,KAAMpN,EAAEqI,CAAC,EAAEgC,EAAE,iBAAiB,EAC9B,IAAKrK,EAAEsI,CAAC,CACxB,EAAiB,CACD,QAAS2E,GAAG,IAAM,CAChB5C,EAAE,mBAAqB5M,IAAKuP,GAAGjB,GAAI,CACjC,IAAK,EACL,MAAO1B,EAAE,MACT,mBAAoBF,EAAE,gBACtB,kBAAmBA,EAAE,eACrB,UAAWA,EAAE,WAAa,CAACnK,EAAEwG,CAAC,EAAE,cAChC,kBAAmB,GACnB,OAAQ2D,EAAE,OACV,KAAME,EAAE,KACR,cAAe,CAAA,EACf,YAAaF,EAAE,SACf,gBAAiBA,EAAE,YACnB,aAAcA,EAAE,UAChB,cAAeA,EAAE,WACjB,gBAAiBE,EAAE,aACnB,WAAYA,EAAE,iBACd,SAAUA,EAAE,MAChC,EAAqBgD,GAAG,CACJ,cAAeJ,GAAG,IAAM,CACtB9C,EAAE,OAAO,eAAe,EAAIgB,GAAGhB,EAAE,OAAQ,gBAAiB,CAAE,IAAK,CAAC,CAAE,EAAIqB,EAAE,GAAI,EAAE,EAChFrB,EAAE,OAAO,eAAe,EAAIqB,EAAE,GAAI,EAAE,GAAK/N,EAAC,EAAIuP,GAAGhN,EAAEzC,EAAE,EAAG,CAAE,IAAK,EAAG,EACxF,CAAqB,EACD,EAAG,CACvB,EAAqB,CACD4M,EAAE,OAAO,GAAGE,EAAE,IAAI,gBAAgB,EAAI,CACpC,KAAM,OACN,GAAI4C,GAAG,CAAC,CAAE,KAAMpE,CAAC,IAAO,CACtBsC,GAAGhB,EAAE,OAAQ,GAAGE,EAAE,IAAI,iBAAkB,CACtC,KAAMxB,EAAE,KACR,MAAOA,EAAE,KACnC,CAAyB,CACzB,CAAuB,EACD,IAAK,GAC3B,EAAwB,OACJsB,EAAE,OAAO,GAAGE,EAAE,IAAI,UAAU,EAAI,CAC9B,KAAM,UACN,GAAI4C,GAAG,IAAM,CACX9B,GAAGhB,EAAE,OAAQ,GAAGE,EAAE,IAAI,WAAYgB,GAAG,CAAE,QAAS,IAAM5B,GAAG,MAAMY,EAAE,IAAI,CAAC,CAAC,CAC/F,CAAuB,EACD,IAAK,GAC3B,EAAwB,OACJF,EAAE,OAAO,GAAGE,EAAE,IAAI,iBAAiB,EAAI,CACrC,KAAM,SACN,GAAI4C,GAAG,IAAM,CACX9B,GAAGhB,EAAE,OAAQ,GAAGE,EAAE,IAAI,kBAAmB,CACvC,OAAQA,EAAE,MACpC,CAAyB,CACzB,CAAuB,EACD,IAAK,GAC3B,EAAwB,MACxB,CAAmB,EAAG,KAAM,CAAC,QAAS,mBAAoB,kBAAmB,UAAW,SAAU,OAAQ,YAAa,gBAAiB,aAAc,cAAe,gBAAiB,aAAc,UAAU,CAAC,GAAKmB,EAAE,GAAI,EAAE,CAC5N,CAAiB,EACD,EAAG,CACnB,EAAiB,KAAM,CAAC,OAAQ,KAAK,CAAC,CACtC,EAAe,EAAE,EAAE,EAAG,GAAG,EACzB,EAAa,CAAC,EACJxL,EAAEwI,CAAC,EAAExI,EAAEJ,CAAC,EAAG,EAAE,QAAQ,GAAKuK,EAAE,UAAY1M,EAAC,EAAIuP,GAAGJ,GAAI,CAClD,IAAK,EACL,aAAc5M,EAAErB,CAAC,GAAG,UACpB,UAAW,cACX,SAAUqB,EAAEsG,CAAC,EAAE,EAAE,EACjB,MAAO8F,GAAGpM,EAAEoI,CAAC,GAAG,UAAU,EAC1B,WAAYgC,EAAG,CAAC,IAAMA,EAAG,CAAC,EAAKC,GAAMrK,EAAEiI,CAAC,EAAE,GAAI,EAAE,EAC5D,EAAa,CACD,QAASgF,GAAG,IAAM,CAChB9C,EAAE,OAAO,UAAU,EAAIgB,GAAGhB,EAAE,OAAQ,WAAY,CAAE,IAAK,CAAC,CAAE,EAAIqB,EAAE,GAAI,EAAE,EACtErB,EAAE,OAAO,UAAU,EAAIqB,EAAE,GAAI,EAAE,GAAK/N,EAAC,EAAIuP,GAAGhN,EAAEhC,EAAE,EAAG,CAAE,IAAK,EAAG,EAC3E,CAAa,EACD,EAAG,CACf,EAAa,EAAG,CAAC,aAAc,WAAY,OAAO,CAAC,GAAKwN,EAAE,GAAI,EAAE,EACtDxL,EAAEkI,CAAC,EAAElI,EAAEJ,CAAC,EAAG,EAAE,QAAQ,GAAKnC,IAAKuP,GAAGJ,GAAI,CACpC,IAAK,EACL,IAAK,YACL,UAAW,cACX,SAAU5M,EAAEsG,CAAC,EAAE,EAAE,EACjB,aAActG,EAAErB,CAAC,GAAG,UACpB,MAAOyN,GAAGpM,EAAEoI,CAAC,GAAG,UAAU,EAC1B,WAAYgC,EAAG,CAAC,IAAMA,EAAG,CAAC,EAAKC,GAAMrK,EAAEiI,CAAC,EAAE,GAAI,EAAE,GAChD,SAAUmC,EAAG,CAAC,IAAMA,EAAG,CAAC,EAAKC,GAAMjB,EAAEiB,EAAGF,EAAE,kBAAoB,EAAI,CAAC,EAC/E,EAAa,CACD,QAAS8C,GAAG,IAAM,CAChB9C,EAAE,OAAOA,EAAE,SAAW,aAAe,aAAa,EAAIgB,GAAGhB,EAAE,OAAQA,EAAE,SAAW,aAAe,cAAe,CAAE,IAAK,CAAC,CAAE,EAAIqB,EAAE,GAAI,EAAE,EACpIrB,EAAE,OAAOA,EAAE,SAAW,aAAe,aAAa,EAAIqB,EAAE,GAAI,EAAE,GAAK/N,EAAC,EAAIuP,GAAG0C,GAAGvF,EAAE,SAAWnK,EAAE/B,EAAE,EAAI+B,EAAElC,EAAE,CAAC,EAAG,CAAE,IAAK,CAAC,CAAE,EACnI,CAAa,EACD,EAAG,CACf,EAAa,EAAG,CAAC,WAAY,aAAc,OAAO,CAAC,GAAK0N,EAAE,GAAI,EAAE,CAChE,CAAS,CACT,EAAS,EAAE,EACX,CAAK,EACH,CACF,CAAC,EAAGiF,GAAK,CACP,MAAO,sBACP,KAAM,KACR,EAAGC,GAAK,CACN,IAAK,EACL,MAAO,2BACP,KAAM,UACR,EAAGC,GAAK,CAAC,YAAY,EAAGC,GAAK,CAC3B,IAAK,EACL,MAAO,iCACP,KAAM,UACR,EAAGC,GAAK,CAAE,MAAO,gBAAgB,EAAIC,GAAK,CAAC,KAAM,gBAAiB,gBAAiB,aAAc,WAAY,eAAgB,UAAW,aAAc,YAAa,eAAgB,eAAgB,aAAa,EAAGC,GAAqB/F,GAAG,CACzO,aAAc,CACZ,KAAM,CACV,EACE,OAAQ,aACR,MAAO,CACL,YAAa,CAAE,KAAM,MAAO,QAAS,IAAM,CAAA,CAAE,EAC7C,SAAU,CAAE,KAAM,OAAQ,QAAS,CAAC,EACpC,MAAO,CAAE,KAAM,OAAQ,QAAS,CAAC,EACjC,KAAM,CAAE,KAAM,OAAQ,QAAS,CAAC,EAChC,GAAGJ,EACP,EACE,MAAO,CACL,cACA,iBACA,gBACA,QACA,eACA,eACA,eACA,eACJ,EACE,MAAM,EAAG,CAAE,OAAQ,EAAG,KAAMxM,GAAK,CAC/B,MAAM9G,EAAI8G,EAAGpC,EAAI,EAAG,CAAE,sBAAuBwD,GAAM6G,KAAM,CACvD,qBAAsB1H,EACtB,gBAAiBiB,EACjB,oBAAqBC,EACrB,wBAAyB2G,EACzB,qBAAsBC,EACtB,oBAAqB0B,EACrB,YAAaC,CACnB,EAAQN,GAAG9L,CAAC,EAAGqM,EAAIvC,EAAE,IAAI,EAAGwC,EAAIxC,EAAE,CAC5B,OAAQ,GACR,KAAM,GACN,UAAW,EACjB,CAAK,EAAGyC,EAAIzC,EAAE,CAAA,CAAE,EAAGmC,EAAInC,EAAE,IAAI,EAAGQ,EAAIR,EAAE,EAAE,EAAGS,EAAIT,EAAE,EAAE,EAAG0C,EAAI1C,EAAE,CAAE,OAAQ,EAAG,KAAM,EAAG,OAAQ,EAAG,KAAM,CAAC,CAAE,EAAGoC,EAAIpC,EAAE,CAAA,CAAE,EAAG2C,EAAI3C,EAAE,CAAE,KAAM,MAAO,EAAGuD,EAAKvD,EAAE,EAAE,EAAGiC,EAAIpC,EAAE,IAAM3J,EAAE,SAAWA,EAAE,SAASA,EAAE,WAAW,EAAIA,EAAE,WAAW,EAAGgM,EAAIrC,EAAE,IAAM3J,EAAE,SAAW,MAAM,QAAQA,EAAE,QAAQ,EAAIA,EAAE,SAAWA,EAAE,SAASA,EAAE,OAAQ,CAACA,EAAE,SAAS,EAAIuD,GAAGvD,EAAE,aAAcA,EAAE,OAAQ,CAACA,EAAE,SAAS,CAAC,EAC1WiP,GAAG,IAAM,CACP3T,EAAE,QAAS,CAAE,IAAK,WAAY,KAAMiR,CAAC,CAAE,EAAG3I,EAAE,MAAM,SAAWqI,EAAE,QAAUA,EAAE,MAAM,iBAAiB,aAAcmB,EAAG,CAAE,QAAS,EAAE,CAAE,EAAGnB,EAAE,MAAM,iBAAiB,WAAYkB,EAAG,CAAE,QAAS,GAAI,EAAGlB,EAAE,MAAM,iBAAiB,YAAa+B,GAAI,CAAE,QAAS,EAAE,CAAE,GAAIhO,EAAE,qBAAuBiM,EAAE,OAASA,EAAE,MAAM,iBAAiB,QAASoC,EAAG,CAAE,QAAS,EAAE,CAAE,CACtV,CAAC,EAAGa,GAAG,IAAM,CACXtL,EAAE,MAAM,SAAWqI,EAAE,QAAUA,EAAE,MAAM,oBAAoB,aAAcmB,CAAC,EAAGnB,EAAE,MAAM,oBAAoB,WAAYkB,CAAC,EAAGlB,EAAE,MAAM,oBAAoB,YAAa+B,EAAE,GAAIhO,EAAE,qBAAuBiM,EAAE,OAASA,EAAE,MAAM,oBAAoB,QAASoC,CAAC,CACpP,CAAC,EACD,MAAMf,EAAMJ,GAAMA,EAAIlN,EAAE,SAAW,QAAU,OAASA,EAAE,SAAW,YAAc,WAAYuN,EAAI,CAACL,EAAGe,KAAO,CAC1G,GAAIjO,EAAE,YAAa,CACjB,MAAMkO,EAAK1L,GAAGuF,GAAGzF,EAAC,EAAItC,EAAE,MAAOA,EAAE,IAAI,CAAC,EACtCuK,EAAE,MAAQ/D,GAAGhE,GAAGuF,GAAGzF,IAAK4K,EAAGe,EAAE,CAAC,EAAGC,CAAE,EAAIvL,EAAE,MAAM2K,EAAG,EAAE,CAAC,EAAI3K,EAAE,MAAM2K,EAAG,EAAE,CAAC,EAAGhD,EAAE,MAAQ,GAAI4F,GAAG,IAAM,CAC/F5F,EAAE,MAAQ,EACZ,CAAC,CACH,CACF,EAAGkD,GAAI7D,EACL,KAAO,CACL,GAAGyC,EAAE,MAAM,UAAY,CAAA,CAC/B,EACA,EAAOqB,GAAK9D,EAAE,IAAOuD,GAAM,CACrB,MAAMe,GAAKhK,GAAGiJ,CAAC,EACf,MAAO,CACL,eAAgBe,GAAG,OAAS,MAC5B,gBAAiBA,GAAG,OAAS,MACrC,CACI,CAAC,EAAGP,GAAK/D,EAAE,IAAOuD,GAAM5G,GAAG4G,EAAGb,EAAE,KAAK,CAAC,EAAGsB,EAAIhE,EAAE,KAAO,CACpD,aAAc,GACd,kBAAmBa,EAAE,MAAM,MAAQ,GAAKxK,EAAE,WAAa,CAC7D,EAAM,EAAG4N,EAAIjE,EAAE,IAAOuD,GAAMlN,EAAE,gBAAkBkN,EAAE,QAAU,EAAE,EAAGW,EAAK,MAAOX,EAAGe,KAAO,CACjF,KAAM,CAAE,MAAOC,EAAI,OAAQuF,EAAE,EAAKvG,EAAE,sBAAqB,EACzDb,EAAE,MAAQ4B,GAAG,MACb,IAAI8E,EAAI,CAAE,KAAM,GAAG7E,EAAK,CAAC,MAAQ8E,GAAI,IACrC,GAAI,MAAM9C,GAAE,EAAIhE,EAAE,MAAM,CAAC,EAAG,CAC1B,KAAM,CAAE,KAAM+G,EAAG,MAAOC,IAAOhH,EAAE,MAAM,CAAC,EAAE,sBAAqB,EAC/D+G,EAAI,IAAMF,EAAI,CAAE,KAAM,GAAG,EAAIC,GAAI,EAAGvG,EAAE,MAAM,KAAO,GAAGyB,EAAK,CAAC,MAAO,OAAO,WAAa+E,EAAIC,KAAOH,EAAI,CAAE,MAAO,GAAG,EAAIC,GAAI,EAAGvG,EAAE,MAAM,KAAO,GAAGyG,GAAKhF,EAAK,CAAC,KAC5J,CACA5B,EAAE,MAAQ,CACR,OAAQ,GAAGmH,EAAE,KACb,GAAGV,EACH,UAAW,cAAcC,EAAC,IAClC,CACI,EAAGlF,EAAI,MAAOZ,EAAGe,GAAIC,IAAO,CAC1B,MAAMuF,GAAK1P,GAAGwI,EAAE,MAAM0B,EAAE,EAAEC,CAAE,CAAC,EAC7BuF,KAAOvG,EAAE,QAAQ,gBAAkBA,EAAE,QAAQ,SAAS,OAASZ,EAAE,MAAQY,EAAE,OAAO,eAAeuG,EAAE,EAAI,MAAM5F,EAAG4F,GAAIvG,CAAC,EAAG5R,EAAE,eAAgB4R,EAAE,MAAM,EACpJ,EAAGa,GAAI,MAAOb,EAAGe,GAAIC,IAAO,CAC1B,GAAIb,EAAG,OAASlB,EAAE,MAAM,SAAWA,EAAE,MAAM,WACzC,OAAO7Q,EAAE,cAAe4R,CAAC,EAC3B,GAAI5R,EAAE,iBAAkB4R,CAAC,EAAGA,EAAE,QAAQ,SAAS,OAAQ,CACrD,GAAIlN,EAAE,iBAAmB,CAACkN,EAAE,QAAS,OACrC,MAAMY,EAAEZ,EAAGe,GAAIC,CAAE,CACnB,CACF,EAAGlB,EAAKE,GAAM,CACZb,EAAE,QAAUA,EAAE,MAAQ,KAAMC,EAAE,MAAQ,KAAK,MAAM,KAAK,UAAU,CAAE,OAAQ,GAAI,KAAM,GAAI,UAAW,EAAE,CAAE,CAAC,EAAGhR,EAAE,gBAAiB4R,EAAE,MAAM,EACxI,EAAGE,EAAKF,GAAM,CACZV,EAAE,MAAM,OAASU,EAAE,eAAe,CAAC,EAAE,QAASV,EAAE,MAAM,OAASU,EAAE,eAAe,CAAC,EAAE,OACrF,EAAGC,EAAKD,GAAM,CACZV,EAAE,MAAM,KAAOU,EAAE,eAAe,CAAC,EAAE,QAASV,EAAE,MAAM,KAAOU,EAAE,eAAe,CAAC,EAAE,QAASiB,EAAC,CAC3F,EAAGH,GAAMd,GAAM,CACblN,EAAE,UAAY,CAACA,EAAE,QAAUkN,EAAE,eAAc,CAC7C,EAAGiB,EAAI,IAAM,CACX,MAAMjB,EAAIlN,EAAE,SAAW,IAAM,IAC7B,KAAK,IAAIwM,EAAE,MAAM,QAAQU,CAAC,EAAE,EAAIV,EAAE,MAAM,MAAMU,CAAC,EAAE,CAAC,EAAI,IAAM5R,EAAE,eAAgBkR,EAAE,MAAM,QAAQU,CAAC,EAAE,EAAIV,EAAE,MAAM,MAAMU,CAAC,EAAE,EAAI,QAAU,MAAM,CAC5I,EAAGkB,EAAK,CAAClB,EAAGe,GAAIC,IAAO,CACrBhB,IAAM,MAAM,QAAQX,EAAE,MAAM0B,EAAE,CAAC,EAAI1B,EAAE,MAAM0B,EAAE,EAAEC,CAAE,EAAIhB,EAAIX,EAAE,MAAM0B,EAAE,EAAI,CAACf,CAAC,GAAIlN,EAAE,iBAAmBwD,EAAE+I,EAAE,MAAO,UAAU,CACzH,EAAG8B,EAAKnB,GAAM,CACZlN,EAAE,sBAAwBkN,EAAE,eAAc,EAAI5R,EAAE,gBAAiB4R,CAAC,EACpE,EAAGoB,GAAKpB,GAAMzC,EAAE,MAAM,OAAS,QAAUuK,GAAG9H,EAAE,MAAO,CAAE,aAAc,CAAClN,EAAE,UAAW,EAAIyK,EAAE,MAAM,OAAS,MAAQwK,GAAG/H,EAAE,KAAK,EAAI,OAAOzC,EAAE,MAAM,MAAQ,WAAaA,EAAE,MAAM,KAAKyC,EAAE,KAAK,EAAI,GAAIL,EAAKK,GAAM,CACvM,MAAMe,GAAKf,EAAE,CAAC,EACd,OAAOzC,EAAE,MAAM,kBAAoByC,EAAE,KAAMgB,GAAOA,EAAG,OAAO,EAAII,GAAEL,EAAE,EAAI,GAAKK,GAAEL,EAAE,CACnF,EAAGkC,EAAI,CAACjD,EAAGe,GAAIC,EAAK,KAAO,CACzB,CAACA,GAAM9I,OAAS,CAAC+G,EAAE,MAAM,SAAWvI,EAAE,MAAM,uBAAyBe,GAAGuI,EAAGtJ,EAAE,KAAK,EAAGtI,EAAE,cAAe2S,EAAE,EAC1G,EAAGnB,EAAKI,GAAM,CACZvI,GAAGuI,EAAGtJ,EAAE,KAAK,CACf,EAAGmJ,GAAKG,GAAM,CACZf,EAAE,MAAM,SAAWA,EAAE,MAAM,YAAckB,EAAG,MAAQ,GAAI/R,EAAE,cAAe4R,CAAC,GAAKf,EAAE,MAAM,SAAW7Q,EAAE,cAAe4R,CAAC,CACtH,EACA,OAAO,EAAE,CAAE,kBAAmBK,EAAG,EAAG,CAACL,EAAGe,MAAQxM,IAAKC,EAAE,MAAO,CAC5D,MAAO0O,GAAGzC,EAAE,KAAK,CACvB,EAAO,CACDhM,GAAG,MAAO,CACR,QAAS,kBACT,IAAKsK,EACL,MAAOmE,GAAG5C,GAAE,KAAK,EACjB,KAAM,MACd,EAAS,CACD7L,GAAG,MAAO8S,GAAI,CACZvH,EAAE,aAAezL,EAAC,EAAIC,EAAE,MAAOgT,GAAIhF,GAAGxC,EAAE,WAAW,EAAG,CAAC,GAAKsC,EAAE,GAAI,EAAE,GACnE/N,EAAE,EAAE,EAAGC,EAAE4N,GAAI,KAAMgB,GAAGtE,EAAE,MAAO,CAACkC,EAAIuF,MAAQhS,EAAC,EAAIC,EAAE,MAAO,CACzD,IAAK+R,GACL,MAAO,2BACP,KAAM,WACN,eAAgB,kBAChB,aAAczP,EAAEH,CAAC,GAAG,UAAU4P,EAAE,CAC5C,EAAa,CACDvG,EAAE,OAAO,iBAAiB,EAAIiC,GAAGjC,EAAE,OAAQ,kBAAmB,CAC5D,IAAK,EACL,IAAKgB,EACL,MAAOuF,EACrB,CAAa,EAAIjE,EAAE,GAAI,EAAE,EACbtC,EAAE,OAAO,iBAAiB,EAAIsC,EAAE,GAAI,EAAE,GAAK/N,EAAC,EAAIC,EAAE4N,GAAI,CAAE,IAAK,CAAC,EAAI,CAChEG,GAAGC,GAAGxB,CAAE,EAAG,CAAC,CAC1B,EAAe,EAAE,EACjB,EAAa,EAAGyG,EAAE,EAAE,EAAG,GAAG,EAC1B,CAAS,EACD1G,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAItM,GAAG,MAAO,CAAE,MAAO,+BAA+B,EAAI,KAAM,EAAE,GAChFwP,GAAGC,GAAI,CACL,KAAM7G,EAAE,MACR,IAAK,CAAC,CAAC2C,EAAE,WACnB,EAAW,CACD,QAAS+D,GAAG,IAAM,CAChB3G,EAAE,OAAS7I,IAAKC,EAAE,MAAO,CACvB,IAAK,EACL,MAAO,eACP,KAAM,WACN,aAAcuM,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKC,GAAOb,EAAG,MAAQ,GACjE,EAAe,EACA5L,EAAE,EAAE,EAAGC,EAAE4N,GAAI,KAAMgB,GAAGvE,EAAE,MAAO,CAACmC,EAAIuF,MAAQhS,EAAC,EAAIC,EAAE,MAAO,CACzD,IAAK+R,GACL,MAAO,mBACP,KAAM,KACtB,EAAiB,CACDvG,EAAE,aAAezL,EAAC,EAAIC,EAAE,MAAOkT,GAAI,CACjCjT,GAAG,MAAOkT,GAAInF,GAAG7C,EAAEqB,EAAG,IAAI,CAAC,EAAG,CAAC,CACjD,CAAiB,GAAKsB,EAAE,GAAI,EAAE,GACb/N,EAAE,EAAE,EAAGC,EAAE4N,GAAI,KAAMgB,GAAGpC,EAAG,KAAM,CAAC6E,EAAGC,MAAOvR,EAAC,EAAIC,EAAE,MAAO,CACvD,GAAIsC,EAAEmF,EAAE,EAAE4J,EAAE,KAAK,EACjB,QAAS,GACT,IAAME,GAAM7E,EAAG6E,EAAGQ,GAAIT,EAAC,EACvB,IAAKA,GAAIS,GACT,KAAM,WACN,MAAO,oBACP,iBAAkBV,EAAE,UAAU,iBAAmBA,EAAE,UAAU,iBAAmBA,EAAE,UAAU,gBAAkB,OAC9G,gBAAiBA,EAAE,UAAU,mBAAqB,OAClD,aAAc/O,EAAEH,CAAC,GAAG,MAAMkP,CAAC,EAC3B,SAAU,CAACA,EAAE,SAAW7F,EAAE,gBAAkB,OAAS,EACrD,eAAgBlJ,EAAEmF,EAAE,EAAE4J,EAAE,KAAK,EAC7B,QAAS1C,GAAI4C,GAAM9C,EAAE8C,EAAGF,CAAC,EAAG,CAAC,SAAS,CAAC,EACvC,WAAaE,GAAM9C,EAAE8C,EAAGF,EAAG,EAAE,EAC7B,UAAYE,GAAMjP,EAAEmB,EAAE,EAAE8N,EAAG,IAAM/F,EAAE,MAAM,cAAe6F,CAAC,CAAC,EAC1D,aAAeE,GAAMlF,GAAEgF,EAAGU,GAAIT,EAAC,EAC/B,aAAeC,GAAMjG,EAAE+F,CAAC,EACxB,YAAcE,GAAMlG,GAAEgG,CAAC,EACvB,UAAW9E,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKgF,GAAM5F,EAAG,MAAQ,GACjE,EAAmB,CACD1L,GAAG,MAAO,CACR,MAAOyO,GAAG,CAAC,iBAAkB2C,EAAE,SAAS,CAAC,CAC7D,EAAqB,CACD7F,EAAE,OAAO,KAAOU,EAAE,MAAMmF,CAAC,EAAI5D,GAAGjC,EAAE,OAAQ,MAAO,CAC/C,IAAK,EACL,IAAK,CAAC6F,EAAE,KACR,KAAMA,EAAE,KAC9B,CAAqB,EAAIvD,EAAE,GAAI,EAAE,EACbtC,EAAE,OAAO,IAAMsC,EAAE,GAAI,EAAE,GAAK/N,EAAC,EAAIC,EAAE4N,GAAI,CAAE,IAAK,CAAC,EAAI,CACjDG,GAAGC,GAAGqD,EAAE,IAAI,EAAG,CAAC,CACtC,EAAuB,EAAE,GACLA,EAAE,QAAUnF,EAAE,MAAMmF,CAAC,GAAKtR,EAAC,EAAIC,EAAE4N,GAAI,CAAE,IAAK,CAAC,EAAI,CAC/CpC,EAAE,OAAO,OAASiC,GAAGjC,EAAE,OAAQ,SAAU,CACvC,IAAK,EACL,OAAQ6F,EAAE,OACV,IAAK,CAACA,EAAE,KACR,KAAMA,EAAE,KAChC,CAAuB,GAAKtR,EAAC,EAAIC,EAAE,MAAO,CAClB,IAAK,EACL,MAAO0O,GAAG3C,GAAG,MAAMsF,EAAE,MAAM,CAAC,EAC5B,MAAOxD,GAAGwD,EAAE,OAAO,MAAQ,CAAE,gBAAiBA,EAAE,OAAO,KAAK,EAAK,CAAA,CAAE,CAC3F,EAAyB,KAAM,CAAC,EAChC,EAAuB,EAAE,GAAKvD,EAAE,GAAI,EAAE,EAClB9B,GAAG,MAAMqF,EAAE,KAAK,GAAKtR,EAAC,EAAIC,EAAE,MAAO,CACjC,IAAK,EACL,QAAS,GACT,QAAS,gBACT,IAAKwK,EACL,MAAO,qBACP,MAAOqD,GAAGjD,EAAE,KAAK,CACvC,EAAuB,CACDyG,EAAE,QAAQ,SAAWtR,EAAC,EAAIC,EAAE,MAAO,CACjC,IAAK,EACL,MAAO,sBACP,QAASoL,CACjC,EAAyB,EACArL,EAAE,EAAE,EAAGC,EAAE4N,GAAI,KAAMgB,GAAGyC,EAAE,OAAO,QAAS,CAACE,EAAGC,MAAQzR,EAAC,EAAIC,EAAE,MAAO,CACjE,IAAKwR,GACL,MAAO,kBACjC,EAA2B,CACDhG,EAAE,OAAO,gBAAgB,EAAIiC,GAAGjC,EAAE,OAAQ,iBAAkB,CAC1D,IAAK,EACL,QAAS+F,EACT,IAAKF,EAAE,KACnC,CAA2B,EAAIvD,EAAE,GAAI,EAAE,EACbtC,EAAE,OAAO,gBAAgB,EAAIsC,EAAE,GAAI,EAAE,GAAK/N,EAAC,EAAIC,EAAE4N,GAAI,CAAE,IAAK,CAAC,EAAI,CAC/D3N,GAAG,MAAO,CACR,MAAO,mBACP,MAAO4N,GAAG0D,EAAE,MAAQ,CAAE,gBAAiBA,EAAE,KAAK,EAAK,CAAA,CAAE,CACnF,EAA+B,KAAM,CAAC,EACVtR,GAAG,MAAO,KAAM+N,GAAGuD,EAAE,IAAI,EAAG,CAAC,CACzD,EAA6B,EAAE,EAC/B,CAAyB,EAAE,EAAG,GAAG,GACTtR,GAAG,MAAO,CACR,MAAO,sBACP,MAAO4N,GAAG9C,EAAE,KAAK,CAC3C,EAA2B,KAAM,CAAC,CAClC,CAAuB,GAAK+C,EAAE,GAAI,EAAE,CACpC,EAAuB,CAAC,GAAKA,EAAE,GAAI,EAAE,CACrC,EAAqB,CAAC,CACtB,EAAmB,GAAIsF,EAAE,EAAE,EAAG,GAAG,EACjC,CAAe,EAAE,EAAG,GAAG,EACvB,EAAe,EAAE,GAAKtF,EAAE,GAAI,EAAE,CAC9B,CAAW,EACD,EAAG,CACb,EAAW,EAAG,CAAC,OAAQ,KAAK,CAAC,CAC7B,EAAS,CAAC,CACV,EAAO,CAAC,EACN,CACF,CAAC,EAAG0F,GAAM,GAAM,MAAM,QAAQ,CAAC,EAAGC,GAAK,CAAC,EAAG,EAAG/S,EAAG9G,IAAM,CACrD,MAAM0E,EAAI8J,EAAE,CAAA,CAAE,EAAGtG,EAAIsG,EAAkB,IAAI,IAAM,EAAGnH,EAAImH,EAAC,EAAIlG,EAAI,IAAMuJ,EAAE,EAAE,eAAe,EAAG,CAAE,WAAYtJ,EAAG,UAAW2G,EAAG,KAAMC,EAAG,MAAO0B,CAAC,EAAK6F,GAAG,EAAG,EAAGpO,CAAC,EAAG,CAC7J,wBAAyBwI,EACzB,mBAAoBC,EACpB,eAAgBC,EAChB,gBAAiBC,EACjB,YAAaN,EACb,UAAW3B,EACX,oBAAqBC,CACzB,EAAMuB,GAAG,CAAC,EAAG,CAAE,yBAA0BU,EAAG,WAAYN,EAAG,mBAAoBO,EAAG,iBAAkBY,GAAOmB,GAAG,CAAC,EAAG,CAAE,iBAAkBzC,EAAG,eAAgBC,EAAG,QAASsB,EAAI,gBAAiBC,EAAG,aAAcC,GAAG,oBAAqBC,EAAE,EAAKuG,GAAG,EAAGvJ,EAAG5G,EAAGvI,CAAC,EAAGoS,GAAK/D,EAC3P,IAAO,GAAMa,EAAE,MAAM,CAAC,EAAIA,EAAE,MAAM,CAAC,EAAE,MAAQ,CACjD,EAAKmD,EAAIhE,EACL,IAAO,GAAMa,EAAE,MAAM,CAAC,EAAIA,EAAE,MAAM,CAAC,EAAE,KAAO,CAChD,EAAKoD,EAAK,GAAM,CAACrB,EAAE,MAAM,uBAAyB,EAAI,GAAK,CAAC5J,EAAE,MAAOkL,EAAK,CAAC,EAAGuH,GAAIC,GAAIC,GAAI,KAAO,CAC7F1H,EAAE0H,EAAC,IAAM9K,EAAE,MAAM,CAAC,IAAMA,EAAE,MAAM,CAAC,EAAI,CAAE,MAAO,EAAG,KAAM,CAAC,GAAKA,EAAE,MAAM,CAAC,EAAE,MAAQlG,GAAG8Q,EAAE,EAAI5K,EAAE,MAAM,CAAC,GAAG,MAAQ4K,GAAI5K,EAAE,MAAM,CAAC,EAAE,KAAOlG,GAAG+Q,EAAE,EAAI7K,EAAE,MAAM,CAAC,GAAG,KAAO6K,GACjK,EAAGvH,EAAI,IAAM,CACX,EAAE,WAAa,EAAE,aAAa,CAChC,EAAGC,GAAI,IAAM,CACX1B,EAAE,OAASkB,EAAElB,EAAE,KAAK,CACtB,EACA4C,GAAG,IAAM,CACP,EAAE,SAAWpL,EAAE,QAAUoK,GAAE,EAAIF,MAAMZ,EAAE,EAAE,EAAG,EAAE,gBAAkB,EAAE,WAAac,KACjF,CAAC,EACD,MAAMjB,EAAIrD,EAAE,IAAM,EAAE,MAAM,QAAU,CAAC,EAAE,YAAc,EAAE,WAAa,EAAE,KAAK,OAAS,EAAE,EAAGyD,EAAI,IAAM,CACjG,EAAE,WAAaJ,EAAE,OAAS,EAAE,aAAc,EAAE,YAAc,EAAE,WAAa,EAAE,KAAK,OAAS,EAAE,CAC7F,EAAGG,EAAI,CAAC,EAAI,KAAO,CACjB,GAAItJ,EAAE,MACJ,OAAO,MAAM,QAAQA,EAAE,KAAK,GAAK7D,EAAE,MAAQ6D,EAAE,MAAOsM,EAAE,CAAC,GAAK/B,EAAGvK,EAAE,MAAO,CAAC,EAC3E,GAAIuI,EAAE,MAAM,OAAS,GAAK,CAAC,EAAE,UAC3B,OAAO+B,EAAE7L,EAAC,EAAI,CAAC,CACnB,EAAG0L,GAAK,IAAM,MAAM,QAAQnK,EAAE,KAAK,GAAKyI,EAAE,MAAM,QAAUnF,GAAGtD,EAAE,MAAM,CAAC,CAAC,IAAMsD,GAAGtD,EAAE,MAAM,CAAC,GAAKA,EAAE,MAAM,CAAC,CAAC,EAAI,GAAIsK,EAAI,CAAC,EAAoB,IAAI,KAAQiH,GAAK,KAAO,CAC/J,IAAK,CAAChJ,EAAE,MAAM,OAAS,CAACA,EAAE,MAAM,QAAUgJ,KAAOvH,EAAG,EAAG1G,GAAG,CAAC,EAAGD,GAAG,CAAC,CAAC,EAAGkF,EAAE,MAAM,QAAU,CAACvI,EAAE,OAASmK,MAAQ,CAAC5B,EAAE,MAAM,QAAU,CAACA,EAAE,MAAM,MAAQgJ,IAC9I,QAASC,GAAK,EAAGA,GAAKjJ,EAAE,MAAM,MAAOiJ,KAAM,CACzC,MAAMC,GAAI3P,GAAGrD,EAAC,EAAI,CAAE,MAAOoL,GAAG,MAAM2H,GAAK,CAAC,EAAG,KAAM1H,EAAE,MAAM0H,GAAK,CAAC,CAAC,CAAE,EAAGE,EAAKpC,GAAGmC,GAAG,CAAE,OAAQ,EAAG,EAC/F9K,EAAE,MAAM6K,EAAE,EAAI,CAAE,MAAOlO,GAAGoO,CAAE,EAAG,KAAMrO,GAAGqO,CAAE,CAAC,CAC7C,CACJ,EAAGnH,EAAK,CAAC,EAAGgH,KAAO,CACjBjH,EAAE,CAAC,EAAGb,EAAG,QAASxG,GAAG,CAAC,CAAC,EAAGwG,EAAG,UAAWvG,GAAG,CAAC,CAAC,EAAGuG,EAAG,UAAWtG,GAAG,CAAC,CAAC,EAAGoF,EAAE,MAAM,OAASgJ,IAAMlI,EAAC,CAChG,EAAGmB,EAAK,GAAM,CACZ,GAAIjC,EAAE,MAAM,MAAO,CACjB,GAAIA,EAAE,MAAM,KAAM,MAAO,GACzB,MAAMgJ,GAAKjO,GAAG,EAAE,CAAC,CAAC,EAAGkO,GAAKlO,GAAG,EAAE,CAAC,CAAC,EACjC,OAAO,KAAK,IAAIkO,GAAKD,EAAE,EAAIhJ,EAAE,MAAM,MAAQ,EAAI,CACjD,CACA,QACF,EAAGkC,GAAI,CAAC,EAAG8G,KAAO,CAChB,EAAE,CAAC,GAAK9I,EAAE,MAAM,gBAAkB6B,EAAE,EAAEE,EAAE,CAAC,CAAC,EAAG+G,EAAE,EAAIjH,EAAE,EAAE,CAAC,EAAGiH,EAAE,EAC7D,MAAMC,GAAK,CAACC,GAAGC,IAAO,CACpBD,GAAE,EAAE,CAAC,CAAC,EACN,EAAE,CAAC,EAAIA,GAAE,EAAE,CAAC,CAAC,EAAI7K,EAAE8K,CAAE,EAAE,CAAC,CAC9B,EACIjI,EAAG,QAAS+H,GAAGvO,GAAI,OAAO,CAAC,EAAGwG,EAAG,UAAW+H,GAAGtO,GAAI,SAAS,CAAC,EAAGuG,EAAG,UAAW+H,GAAGrO,GAAI,SAAS,CAAC,CACjG,EAAG6F,EAAI,CAAC,EAAGuI,KAAO,CAChB,IAAK9I,EAAE,MAAM,SAAW,EAAE,aAAe,CAAC/B,EAAE,MAAM,QAChD,OAAO+D,GAAE,EAAG8G,EAAE,EAChB,GAAI7K,EAAE,MAAM,SAAW6K,GAAI,CACzB,MAAMC,GAAK,EAAE,EAAE,OAAS,CAAC,EACzB,OAAOjH,EAAGiH,GAAID,EAAE,CAClB,CACF,EAAGjF,EAAK,GAAM,CACZ,MAAMiF,GAAKvR,EAAE,MACbgJ,EAAEuI,GAAI,CAAC,EAAGhJ,EAAE,MAAM,OAASA,EAAE,MAAM,MAAQc,EAAC,CAC9C,EAAGJ,EAAI,CAAC,EAAGsI,KAAO,CAChB,MAAMC,GAAK1P,GAAGrD,EAAC,EAAI,CAAE,MAAOoL,GAAG,MAAM0H,EAAE,EAAG,KAAMzH,EAAE,MAAMyH,EAAE,EAAG,EAAGE,GAAI,EAAI,EAAI7N,GAAG4N,GAAI,CAAC,EAAIlN,GAAGkN,GAAI,CAAC,EAChG7I,EAAErF,GAAGmO,EAAC,EAAGpO,GAAGoO,EAAC,EAAG,EAAI,EAAG,EAAE,uBAAuB,IAAMzH,EAAGuH,GAAIjO,GAAGmO,EAAC,EAAGpO,GAAGoO,EAAC,CAAC,EAAG,EAAE,oBAAqB,CAAE,SAAUF,GAAI,MAAOjO,GAAGmO,EAAC,EAAG,KAAMpO,GAAGoO,EAAC,EAAG,EAAGlJ,EAAE,MAAM,OAAS,CAACA,EAAE,MAAM,MAAQW,GAAEqI,EAAE,EAAGhT,IAC5L,EAAG2K,GAAK,GAAM,CACZ,QAASqI,GAAK,EAAI,EAAGA,IAAM,EAAGA,KAAM,CAClC,MAAMC,GAAKlN,GAAGxC,GAAGrD,EAAC,EAAI,CAAE,MAAOoL,GAAG,MAAM0H,GAAK,CAAC,EAAG,KAAMzH,EAAE,MAAMyH,GAAK,CAAC,CAAC,CAAE,EAAG,CAAC,EAC5EvH,EAAGuH,GAAIjO,GAAGkO,EAAE,EAAGnO,GAAGmO,EAAE,CAAC,CACvB,CACA,QAASD,GAAK,EAAI,EAAGA,IAAMhJ,EAAE,MAAM,MAAQ,EAAGgJ,KAAM,CAClD,MAAMC,GAAK5N,GAAG9B,GAAGrD,EAAC,EAAI,CAAE,MAAOoL,GAAG,MAAM0H,GAAK,CAAC,EAAG,KAAMzH,EAAE,MAAMyH,GAAK,CAAC,CAAC,CAAE,EAAG,CAAC,EAC5EvH,EAAGuH,GAAIjO,GAAGkO,EAAE,EAAGnO,GAAGmO,EAAE,CAAC,CACvB,CACF,EAAGnI,EAAI,IAAM,CACX,GAAI,MAAM,QAAQrJ,EAAE,KAAK,GAAKA,EAAE,MAAM,SAAW,EAAG,CAClD,MAAM,EAAIvB,EACRA,EAAEuB,EAAE,MAAM,CAAC,EAAIA,EAAE,MAAM,CAAC,EAAI4D,GAAG5D,EAAE,MAAM,CAAC,EAAG,CAAC,CAAC,CACrD,EAAS,CAACuR,GAAIC,EAAE,EAAI,CAAClO,GAAGtD,EAAE,MAAM,CAAC,CAAC,EAAGqD,GAAGrD,EAAE,MAAM,CAAC,CAAC,CAAC,EAAG,CAACyR,GAAGC,CAAE,EAAI,CAACpO,GAAGtD,EAAE,MAAM,CAAC,CAAC,EAAGqD,GAAGrD,EAAE,MAAM,CAAC,CAAC,CAAC,GACxFuR,KAAOE,IAAKF,KAAOE,IAAKD,KAAOE,IAAOnJ,EAAE,MAAM,MAAQyB,EAAG,EAAG1G,GAAG,CAAC,EAAGD,GAAG,CAAC,CAAC,CAC3E,MAAOrD,EAAE,OAAS,CAAC,MAAM,QAAQA,EAAE,KAAK,IAAMgK,EAAG,EAAG1G,GAAGtD,EAAE,KAAK,EAAGqD,GAAGrD,EAAE,KAAK,CAAC,EAAGsK,EAAE7L,EAAC,CAAE,EACtF,EAAG2L,GAAK,IAAM,CACZ,EAAE,YAAcJ,EAAG,EAAG1G,GAAG7E,EAAE,EAAE,SAAS,CAAC,EAAG4E,GAAG5E,EAAE,EAAE,SAAS,CAAC,CAAC,EAAG8J,EAAE,MAAM,OAASW,GAAE,CAAC,EACrF,EAAGmB,EAAK,CAAC,EAAGkH,KAAO,CACjB,GAAI,EAAE,oBAAqB,CACzB,MAAMC,GAAsB,IAAI,KAAI,EAAI,QAAO,EAAK7R,EAAE,MAAM,QAAO,EAAI8R,GAAI,KAAK,IAAI,EAAE,MAAM,EAC5F,IAAIC,EAAK,IACTD,GAAI,IAAMC,EAAK,KAAMD,GAAI,MAAQC,EAAK,GAAIF,GAAKE,IAAO/R,EAAE,MAAwB,IAAI,KAAQsJ,EAAE,EAAE,sBAAwB,UAAY,CAAC,EAAE,OAAS,EAAE,OAAQsI,EAAE,EAC9J,CACF,EAAG3B,GAAK,CAAC,EAAG2B,GAAIC,GAAK,KAAO,CAC1B,EAAE,qBAAuB,EAAE,WAAaA,IAAMtC,EAAE,EAAGqC,EAAE,CACvD,EAAGrC,EAAI,CAAC,EAAGqC,KAAO,CAChBtI,EAAE,IAAM,QAAU,GAAK,EAAGsI,EAAE,CAC9B,EAAGpC,GAAK,GAAM,CACZ,GAAI1I,EAAE,MAAM,QACV,OAAOrF,GAAG,EAAE,MAAOqF,EAAE,MAAM,OAAO,CACtC,EAAG2I,EAAI,CAAC,EAAGmC,KAAO,CAChB,OAAQ,EAAE,WAAa,GAAK,SAAW,EAAE,SAAQ,CAC/C,IAAK,UACH,MAAO,CAAC,GAAI,EAAE,EAChB,IAAK,SACH,MAAO,CAAC,GAAK,EAAG,EAAE,EACpB,IAAK,OACH,MAAO,CAAC,GAAK,GAAKA,GAAK,EAAG,EAAE,EAC9B,IAAK,SACH,MAAO,CAAC,GAAI,EAAE,EAChB,QACE,MAAO,CAAC,GAAI,EAAE,CACtB,CACE,EAAGlC,GAAK,CAAC,EAAGkC,GAAIC,GAAIC,KAAM,CACxB,GAAI,EAAE,UAAY,EAAE,OAAS,EAAG,CAC9B,MAAMC,EAAK,EAAI,EAAE,OAAQC,IAAMJ,GAAG,OAAM,EAAK,EAAIE,IAAK,EAAGG,GAAK,GAAKJ,GAAG,SAAW,EAAIC,IAAK,EAAG,CAACI,GAAIC,EAAE,EAAI1C,EAAEuC,GAAIC,EAAE,EAChH,QAASG,GAAK,EAAGA,IAAML,EAAIK,KACzB,GAAID,GAAK,CAAC,EAAEC,GAAK,IAAMF,GAAKA,GAAI,CAC9B,MAAMG,GAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAGC,GAAKzC,GAAG/J,GAAGuM,GAAG,MAAO,EAAE,EAAG1O,GAAGiO,EAAE,CAAC,EACzD,EAAE,QAAQ,CAAE,KAAMU,EAAE,CAAE,CACxB,KAAO,CACL,MAAMD,GAAK,EAAE,EAAE,OAAS,CAAC,EAAGC,GAAKD,GAAG,KAAKA,GAAG,KAAK,OAAS,CAAC,EAAGE,GAAK1C,GAAG/J,GAAGwM,GAAG,MAAO,CAAC,EAAG3O,GAAGiO,EAAE,CAAC,EAC7F,EAAE,KAAK,CAAE,KAAMW,EAAE,CAAE,CACrB,CACJ,CACA,OAAO,CACT,EAAG1C,GAAK,CAAC,EAAG+B,KAAO,CACjB,MAAMC,GAAK/S,EAAE,CAAC,EAAGgT,GAAI,CAAA,EACrB,QAASC,EAAK,EAAGA,EAAK,EAAGA,IAAM,CAC7B,MAAMC,GAAKlM,GAAG+L,GAAIE,CAAE,EAAGS,GAAK7O,GAAGqO,EAAE,IAAMJ,GACvCE,GAAE,KAAK,CACL,KAAM,EAAE,iBAAmBU,GAAK,GAAKR,GAAG,QAAO,EAC/C,MAAOA,GACP,QAAS,CAACQ,GACV,UAAW,CAAA,CACnB,CAAO,CACH,CACA,OAAOV,EACT,EAAGhC,GAAK,CAAC,EAAG8B,KAAO,CACjB,MAAMC,GAAK,CAAA,EAAIC,GAAI,IAAI,KAAKF,GAAI,CAAC,EAAGG,EAAK,IAAI,KAAKH,GAAI,EAAI,EAAG,CAAC,EAAGI,GAAK,EAAE,UAAWQ,GAAKrO,GAAG2N,GAAG,CAAE,aAAcE,EAAE,CAAE,EAAGC,GAAMC,IAAO,CAChI,MAAMC,GAAKtC,GAAGqC,GAAI,CAAC,EACnB,GAAIL,GAAG,KAAK,CAAE,KAAMM,EAAE,CAAE,EAAG,CAACN,GAAGA,GAAG,OAAS,CAAC,EAAE,KAAK,KAChDO,IAAOtP,GAAG9D,GAAGoT,GAAG,KAAK,EAAGpT,GAAG+S,CAAE,CAAC,CACvC,EAAS,CACD,MAAMK,GAAKtM,GAAGoM,GAAI,CAAC,EACnBD,GAAGG,EAAE,CACP,CACF,EACA,OAAOH,GAAGO,EAAE,EAAG9C,GAAGmC,GAAIC,GAAGC,EAAIC,EAAE,CACjC,EAAGjC,GAAM,GAAM,CACb,MAAM6B,GAAKrP,GAAGzD,EAAE,EAAE,KAAK,EAAGmI,EAAE,MAAOA,EAAE,QAASwL,GAAE,CAAE,EAClD,EAAE,cAAeb,EAAE,EAAG7K,EAAE,MAAM,QAAU+G,GAAG8D,GAAIvR,EAAG0G,EAAE,MAAM,KAAK,EAAI1G,EAAE,MAAQuR,GAAI9Z,IAAK4U,KAAK,KAAK,IAAM,CACpG9C,EAAC,CACH,CAAC,CACH,EAAGoG,GAAM,GAAMlH,EAAE,MAAM,gBAAkBhF,GAAGtH,EAAE,MAAM,CAAC,EAAG,CAAC,EAAE,KAAMqV,IAAOnJ,EAAEmJ,EAAE,CAAC,EAAI,GAAIa,EAAK,IAAM,CAC9FlW,EAAE,MAAQ6D,EAAE,MAAQA,EAAE,MAAM,QAAU,CAAA,EAAI7D,EAAE,MAAM,SAAW,GAAK,EAAEsM,EAAE,MAAM,YAAcA,EAAE,MAAM,YAActM,EAAE,MAAQ,GAC5H,EAAGmW,GAAI,CAAC,EAAGf,KAAO,CAChB,MAAMC,GAAK,CACT/S,EAAE,EAAE,KAAK,EACTgH,GAAGhH,EAAE,EAAE,KAAK,EAAG,CAACgK,EAAE,MAAM,SAAS,CACvC,EACIG,EAAE4I,EAAE,GAAKD,IAAM,GAAG,EAAE,KAAK,EAAGpV,EAAE,MAAQqV,IAAM,EAAE,eAAgB,EAAE,KAAK,CACvE,EAAG,GAAM,GAAM,CACb,MAAMD,GAAKjO,GAAG7E,EAAE,CAAC,CAAC,EAAG+S,GAAKnO,GAAG5E,EAAE,CAAC,CAAC,EACjC,GAAIuL,EAAG,EAAGuH,GAAIC,EAAE,EAAGjJ,EAAE,MAAM,MAAQ,EACjC,QAASkJ,GAAI,EAAGA,GAAIlJ,EAAE,MAAM,MAAOkJ,KAAK,CACtC,MAAMC,EAAK/N,GACT7B,GAAGrD,EAAE,CAAC,EAAG,CAAE,KAAMqL,EAAE,MAAM2H,GAAI,CAAC,EAAG,MAAO5H,GAAG,MAAM4H,GAAI,CAAC,CAAC,CAAE,CACnE,EACQzH,EAAGyH,GAAGC,EAAG,MAAOA,EAAG,IAAI,CACzB,CACJ,EAAGa,GAAM,GAAM,CACb,GAAI5C,GAAG,EAAE,KAAK,GAAK,CAACnG,EAAG,EAAE,MAAOxJ,EAAE,MAAOyI,EAAE,MAAM,WAAa,EAAI,CAAC,EACjE,OAAO,EAAE,eAAgB,EAAE,KAAK,EAClCtM,EAAE,MAAQ0R,GAAGpP,EAAE,EAAE,KAAK,EAAGuB,EAAG,EAAGyI,CAAC,CAClC,EAAG+J,GAAK,CAAC,EAAGjB,KAAO,CACjB,GAAIc,EAAE,EAAI5J,EAAE,MAAM,UAAW,OAAO6J,GAAE,EAAGf,EAAE,EAC3C,GAAI9I,EAAE,MAAM,YAAcA,EAAE,MAAM,SAAU,OAAO8J,GAAG,CAAC,EACvDpW,EAAE,MAAM,CAAC,EAAIqN,EAAG/K,EAAE,EAAE,KAAK,EAAGuB,EAAE,KAAK,GAAK,CAAC2P,GAAG,EAAE,KAAK,EAAIpN,GAAG9D,EAAE,EAAE,KAAK,EAAGA,EAAEtC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAKA,EAAE,MAAM,QAAQsC,EAAE,EAAE,KAAK,CAAC,EAAG,EAAE,YAAatC,EAAE,MAAM,CAAC,CAAC,IAAMA,EAAE,MAAM,CAAC,EAAIsC,EAAE,EAAE,KAAK,EAAG,EAAE,YAAatC,EAAE,MAAM,CAAC,CAAC,IAAM,EAAE,WAAa,EAAE,qBAAsB,EAAE,KAAK,EAAG,EAAE,eAAgB,EAAE,KAAK,IAAMA,EAAE,MAAM,CAAC,EAAIsC,EAAE,EAAE,KAAK,EAAG,EAAE,cAAetC,EAAE,MAAM,CAAC,CAAC,EAClV,EAAGiW,GAAK,CAAC,EAAI,KAAO,EAAE,cAAgB,MAAM,QAAQxL,EAAE,OAAO,EAAI,EAAIA,EAAE,QAAQ,CAAC,EAAIA,EAAE,QAAQ,CAAC,EAAIA,EAAE,QAAU,EAAG6L,GAAM,GAAM,CAC5HtW,EAAE,MAAM,CAAC,EAAI+F,GACX/F,EAAE,MAAM,CAAC,EACTyK,EAAE,MAAM,CAAC,EACTA,EAAE,QAAQ,CAAC,EACXwL,GAAG,IAAM,CAAC,CAChB,CACE,EAAGM,GAAK,IAAM,CACZvW,EAAE,MAAM,CAAC,GAAKA,EAAE,MAAM,CAAC,GAAK,CAACA,EAAE,QAAQ,CAAC,EAAI,CAACA,EAAE,QAAQ,CAAC,IAAMA,EAAE,MAAM,QAAO,EAAI,EAAE,cAAeA,EAAE,MAAM,CAAC,CAAC,EAAG,EAAE,YAAaA,EAAE,MAAM,CAAC,CAAC,EAC1I,EAAGwW,GAAK,IAAM,CACZxW,EAAE,MAAM,SAAWA,EAAE,MAAM,CAAC,GAAK,CAACA,EAAE,MAAM,CAAC,EAAIsW,GAAG,CAAC,GAAKA,GAAG,CAAC,EAAGA,GAAG,CAAC,EAAGhb,EAAC,GAAKib,KAAM1S,EAAE,MAAQ7D,EAAE,MAAM,MAAK,EAAIwR,GAAGxR,EAAE,MAAO,EAAG,EAAE,UAAW,EAAE,SAAS,EACtJ,EAAGyW,GAAK,CAAC,EAAGrB,GAAK,KAAO,CACtB,GAAIlJ,EAAE,EAAE,KAAK,GAAK,CAAC,EAAE,SAAW,EAAE,gBAAiB,OAAO,EAAE,eAAgB,EAAE,KAAK,EACnF,GAAIvJ,EAAE,MAAQ,KAAK,MAAM,KAAK,UAAU,CAAC,CAAC,EAAG,CAAC2J,EAAE,MAAM,QAAS,OAAOiH,GAAG,CAAC,EAC1E2B,GAAGzK,EAAE,KAAK,GAAKyK,GAAGzK,EAAE,OAAO,GAAK,CAACF,EAAE,MAAM,UAAY8L,GAAG,EAAGjB,EAAE,EAAGoB,KAClE,EAAGE,GAAK,CAAC,EAAGtB,KAAO,CACjBvH,EAAG,EAAGuH,GAAG,MAAOA,GAAG,KAAM,EAAE,EAAGhJ,EAAE,MAAM,OAAS,CAACA,EAAE,MAAM,MAAQW,GAAE,CAAC,EAAG,EAAE,oBAAqB,CAAE,SAAU,EAAG,MAAOqI,GAAG,MAAO,KAAMA,GAAG,IAAI,CAAE,EAAGhT,EAAEgK,EAAE,MAAM,KAAO,EAAI,MAAM,EAC1K,MAAMiJ,GAAK,EAAE,MAAM,OAAS,EAAE,KAAK,EAAE,QAAQ,EAAI,OACjD,CAACD,GAAG,UAAYC,KAAOtS,GAAG,OAASsS,KAAOtS,GAAG,OAASzH,EAAC,CACzD,EAAGqb,GAAK,CAAC,EAAGvB,KAAO,CACjB3D,GAAG,CACD,MAAO,EACP,WAAY5N,EACZ,MAAOyI,EAAE,MAAM,QACf,SAAU8I,GAAK,OAASnJ,EAAE,MAAM,QACtC,CAAK,EAAG6B,IAAK,EAAE,gBAAkBoC,GAAE,EAAG,KAAK,IAAM/C,EAAE,EAAE,CAAC,CACpD,EAAGyJ,GAAK,IAAM,CACZ,MAAM,EAAIzU,GAAGG,EAAC,EAAI2J,EAAE,KAAK,EACzB,CAACK,EAAE,MAAM,SAAW,CAAC/B,EAAE,MAAM,QAAU1G,EAAE,MAAQ,EAAIA,EAAE,OAAS,MAAM,QAAQA,EAAE,KAAK,GAAKA,EAAE,MAAM,CAAC,EAAI0G,EAAE,MAAM,QAAU1G,EAAE,MAAQ,CAAC,GAAGA,EAAE,MAAO,CAAC,EAAIA,EAAE,MAAQuC,GAAG,EAAGvC,EAAE,MAAM,CAAC,CAAC,EAAI,CAAC,EAAGA,EAAE,MAAM,CAAC,CAAC,EAAI,CAACA,EAAE,MAAM,CAAC,EAAG,CAAC,EAAIA,EAAE,MAAQ,CAAC,CAAC,EAAGiK,EAAC,CACzO,EAAG+I,GAAK,IAAM,CACZ,GAAI,MAAM,QAAQhT,EAAE,KAAK,EACvB,GAAI0G,EAAE,MAAM,QAAS,CACnB,MAAM,EAAIuM,GAAE,EACZjT,EAAE,MAAMA,EAAE,MAAM,OAAS,CAAC,EAAImI,EAAE,CAAC,CACnC,MACEnI,EAAE,MAAQA,EAAE,MAAM,IAAI,CAAC,EAAGuR,KAAO,GAAKpJ,EAAE,EAAGoJ,EAAE,CAAC,OAEhDvR,EAAE,MAAQmI,EAAEnI,EAAE,KAAK,EACrB,EAAE,aAAa,CACjB,EAAGiT,GAAK,IAAM,MAAM,QAAQjT,EAAE,KAAK,GAAKA,EAAE,MAAM,OAASA,EAAE,MAAMA,EAAE,MAAM,OAAS,CAAC,EAAI,KACvF,MAAO,CACL,UAAW2G,EACX,WAAY3G,EACZ,MAAO6J,GACP,KAAMC,EACN,KAAMlD,EACN,oBAAqBgD,GACrB,MAAOtB,EACP,aAAcqB,GACd,gBAAiB8F,GACjB,UAAWN,GACX,aAAc9E,EACd,YAAa6E,EACb,YAAaU,GACb,WAAYgD,GACZ,gBAAiBC,GACjB,WAAYC,GACZ,kBAAmBC,GACnB,WAAY,CAAC,EAAGxB,GAAK,GAAIC,GAAK,KAAO,CACnCtJ,EAAE,EAAGqJ,GAAIC,GAAIwB,EAAE,CACjB,EACA,mBAAoB1I,EACpB,aAAcJ,EAClB,CACA,EAAGgJ,GAAK,CAAE,IAAK,CAAC,EAAIC,GAAqBhI,GAAG,CAC1C,OAAQ,aACR,MAAO,CACL,GAAGJ,EACP,EACE,MAAO,CACL,eACA,gBACA,QACA,8BACA,mBACA,aACA,aACA,aACA,cACA,cACA,YACA,sBACA,cACA,eACA,mBACA,oBACA,uBACA,oBACA,qBACA,cACA,eACA,gBACJ,EACE,MAAM,EAAG,CAAE,OAAQ,EAAG,KAAMxM,GAAK,CAC/B,MAAM9G,EAAI8G,EAAGpC,EAAI,EAAG,CAClB,UAAWwD,EACX,MAAOb,EACP,KAAMiB,EACN,WAAYC,EACZ,KAAM2G,EACN,oBAAqBC,EACrB,MAAO0B,EACP,aAAcC,EACd,gBAAiBC,EACjB,UAAWC,EACX,YAAaC,EACb,aAAcN,EACd,YAAa3B,EACb,WAAYC,EACZ,gBAAiBiC,EACjB,WAAYN,EACZ,kBAAmBO,EACnB,WAAYY,EACZ,mBAAoBtB,EACpB,aAAcC,CACpB,EAAQmJ,GAAGnV,EAAG1E,EAAG0S,GAAIG,CAAC,EAAGb,EAAK4E,GAAE,EAAI,CAAE,aAAc3E,EAAG,gBAAiBC,GAAG,eAAgBC,EAAE,EAAKwJ,GAAGpT,EAAG7D,CAAC,EAAG,CAAE,wBAAyB0N,EAAE,EAAK5B,GAAG9L,CAAC,EAAG2N,EAAI7D,EAAE,EAAE,EAAG8D,EAAI9D,EAAE,CAAA,CAAE,EAAG+D,EAAK/D,EAAE,IAAI,EAAGgE,EAAIqE,GAAG7E,EAAI,UAAU,EAAGS,GAAIoE,GAAG7E,EAAI,WAAW,EAAGN,EAAImF,GAAG7E,EAAI,YAAY,EAAGF,EAAKqG,GAAO,CAC1QzT,EAAE,QAAU1E,EAAE,QAASmY,CAAE,CAC3B,EACA7G,GACEpJ,EACA,IAAM,CACJxD,EAAE,QAAU,WAAW,IAAM,CAC3B1E,EAAE,sBAAsB,CAC1B,EAAG,CAAC,CACN,EACA,CAAE,KAAM,EAAE,CAChB,EAAOsR,GACDc,GACA,CAAC+F,EAAIV,KAAM,CACTU,EAAG,MAAQV,GAAE,MAAQ,GAAKhH,EAAC,CAC7B,EACA,CAAE,KAAM,EAAE,CAChB,EACI,MAAMoB,EAAIxD,EAAE,IAAO8J,GAAOpH,EAAE1J,EAAE,MAAM8Q,CAAE,EAAG7P,EAAE,MAAM6P,CAAE,CAAC,EAAE,IAAKV,KAAO,CAChE,GAAGA,GACH,KAAMA,GAAE,KAAK,IAAKC,IAAOA,EAAE,OAAS1G,EAAE0G,CAAC,EAAGA,EAAE,UAAYxF,GAAEwF,CAAC,EAAGA,EAAE,CACtE,EAAM,CAAC,EACH,SAAShF,GAAGyF,EAAI,CACdA,GAAMA,IAAO,EAAI7F,EAAE,MAAM6F,CAAE,GAAG,kBAAkB9Q,EAAE,MAAM8Q,CAAE,EAAG7P,EAAE,MAAM6P,CAAE,CAAC,EAAI7F,EAAE,MAAM,QAAQ,CAACmF,GAAGC,IAAMD,GAAE,kBAAkBpQ,EAAE,MAAMqQ,CAAC,EAAGpP,EAAE,MAAMoP,CAAC,CAAC,CAAC,CACnJ,CACA,SAAS7E,GAAI,CACX7S,EAAE,kBAAkB,CACtB,CACA,MAAM8S,EAAK,CAACqF,EAAIV,GAAI,KAAO,CACzBxI,EAAEkJ,EAAIV,EAAC,EAAG/S,EAAE,cAAgB1E,EAAE,aAAa,CAC7C,EAAG+S,EAAI,CAACoF,EAAIV,GAAGC,EAAI,IAAM,CACvBrF,EAAE,MAAMqF,CAAC,GAAG,kBAAkBS,EAAIV,EAAC,CACrC,EAAGzE,GAAI,CAACmF,EAAIV,GAAGC,EAAI,IAAM,CACvBrF,EAAE,MAAMqF,CAAC,GAAG,iBAAiBS,EAAIV,EAAC,CACpC,EAAGlG,EAAI,CAAC4G,EAAIV,GAAGC,IAAM,CACnBnF,EAAG,OAAO,iBAAiB4F,EAAIV,GAAGC,CAAC,CACrC,EAAG7C,EAAI,CAACsD,EAAIV,KAAM,CAChB,GAAI,CAAC/S,EAAE,MAAO,CACZ,MAAMgT,EAAInP,EAAE,MAAQA,EAAE,MAAQsI,EAAG8G,GAAIF,GAAI,IAAI,KAAKA,EAAC,EAAIC,EAAGE,EAAKO,EAAK9L,GAAGsL,GAAG,CAAE,aAAc,EAAG,EAAIrL,GAAGqL,GAAG,CAAE,aAAc,CAAC,CAAE,EAC1H1I,EAAE,CACA,MAAO2I,EACP,QAAS/L,GAAG8L,EAAC,IAAMtQ,EAAE,MAAM,CAAC,EAC5B,KAAM,GACN,UAAW,CAAA,CACrB,CAAS,EAAG,SAAS,eAAewG,GAAG+J,CAAE,CAAC,GAAG,MAAK,CAC5C,CACF,EAAGpG,EAAK2G,GAAO,CACb9F,EAAE,MAAM,CAAC,GAAG,sBAAsB8F,EAAI,EAAE,CAC1C,EAAG1G,GAAK0G,GAAO,CACbjH,EAAE,EAAG,CAAE,MAAO7J,EAAE,MAAM,CAAC,EAAG,KAAMiB,EAAE,MAAM,CAAC,GAAK6P,EAAK,EAAI,IAAK,QAAS,GAAI,CAC3E,EAAGvG,EAAI,CAACuG,EAAIV,KAAM,CAChBU,IAAO1Q,GAAG,MAAQzH,EAAE,eAAeyX,GAAI,OAAS,OAAO,EAAE,EAAGzX,EAAE,iBAAkB,CAAE,KAAMyX,GAAG,QAASU,EAAI,CAC1G,EAAGxF,GAAMwF,GAAO,CACdnY,EAAE,iBAAkB,CAAE,KAAM,GAAI,QAASmY,CAAE,CAAE,EAAGnY,EAAE,YAAY,CAChE,EACA,OAAO,EAAE,CACP,eAAgBmS,GAChB,WAAYvB,EACZ,kBAAmBO,EACnB,kBAAmB4B,EACnB,iBAAkBC,GAClB,iBAAkBzB,EAClB,YAAaN,EACb,gBAAiBC,EACjB,gBAAiB,KAAO,CACtB,WAAY3I,EACZ,MAAOlB,EACP,KAAMiB,EACN,KAAM4G,EACN,WAAY6C,EACZ,gBAAiBb,EACjB,WAAYjC,EACZ,WAAY2B,CACpB,GACM,YAAaY,EACb,WAAYC,GACZ,eAAgBoD,EAChB,aAAcnE,CACpB,CAAK,EAAG,CAACyH,EAAIV,MAAOtR,EAAC,EAAIC,EAAE4N,GAAI,KAAM,CAC/B6B,GAAGT,GAAI,CACL,kBAAmB1M,EAAE0J,EAAE,EAAE,MACzB,SAAU+F,EAAG,SACb,YAAaA,EAAG,QACxB,EAAS,CACD,QAASxC,GAAG,CAAC,CAAE,SAAU+B,EAAG,MAAOC,MAAQ,CACzCQ,EAAG,uBAAyBjE,EAAE,GAAI,EAAE,GAAK/N,IAAKuP,GAAGwD,GAAInF,GAAG,CACtD,IAAK,EACL,IAAM6D,GAAO,CACXA,IAAOvF,EAAE,MAAMsF,EAAC,EAAIC,EACtB,EACA,OAAQlP,EAAEL,EAAE,EAAE8P,EAAG,aAAcA,EAAG,OAAQA,EAAG,eAAe,EAC5D,MAAOzP,EAAEP,EAAE,EAAEgQ,EAAG,UAAWA,EAAG,OAAQA,EAAG,YAAY,EACrD,MAAOzP,EAAErB,CAAC,EAAEqQ,CAAC,EACb,KAAMhP,EAAEJ,CAAC,EAAEoP,CAAC,EACZ,SAAUA,CACtB,EAAaS,EAAG,OAAQ,CACZ,QAASV,GAAE,CAAC,IAAMA,GAAE,CAAC,EAAKG,GAAO9F,EAAEpJ,EAAElB,EAAE,EAAE,MAAM,GAC/C,YAAaiQ,GAAE,CAAC,IAAMA,GAAE,CAAC,EAAKG,GAAOO,EAAG,MAAM,YAAY,GAC1D,kBAAoBP,GAAOlP,EAAEwI,CAAC,EAAEwG,EAAGE,CAAE,EACrC,gBAAiBjF,GACjB,gBAAiB8E,GAAE,CAAC,IAAMA,GAAE,CAAC,EAAKG,GAAOO,EAAG,MAAM,iBAAkB,CAAE,KAAM,GAAI,QAASP,EAAI,EACzG,CAAW,EAAG7B,GAAG,CAAE,EAAG,CAAC,EAAI,CACff,GAAGtM,EAAE+J,EAAC,EAAG,CAACmF,EAAIG,MAAQ,CACpB,KAAMH,EACN,GAAIjC,GAAIqC,IAAO,CACbnE,GAAGsE,EAAG,OAAQP,EAAI9D,GAAGgD,GAAGkB,EAAE,CAAC,CAAC,CAC5C,CAAe,CACf,EAAc,CACd,CAAW,EAAG,KAAM,CAAC,SAAU,QAAS,QAAS,OAAQ,WAAY,mBAAmB,CAAC,GAC/EnC,GAAG4D,GAAI1F,GAAG,CACR,IAAM6D,GAAO,CACXA,IAAOtF,EAAE,MAAMqF,EAAC,EAAIC,EACtB,EACA,eAAgB/F,EAAE,MAAM6F,CAAC,EACzB,MAAOhP,EAAErB,CAAC,EAAEqQ,CAAC,EACb,KAAMhP,EAAEJ,CAAC,EAAEoP,CAAC,EACZ,SAAUA,CACtB,EAAaS,EAAG,OAAQ,CACZ,aAAeP,GAAOlP,EAAEuG,CAAC,EAAE2I,EAAIF,IAAM,CAAC,EACtC,cAAgBE,GAAO9E,EAAG8E,EAAIF,IAAM,CAAC,EACrC,eAAgBD,GAAE,CAAC,IAAMA,GAAE,CAAC,EAAKG,GAAOlP,EAAEuJ,CAAC,EAAE2F,CAAE,GAC/C,eAAiBA,GAAOlP,EAAEiI,CAAC,EAAEiH,EAAIF,CAAC,EAClC,cAAgBE,GAAOlP,EAAEsG,CAAC,EAAE4I,EAAIF,CAAC,EACjC,QAASD,GAAE,CAAC,IAAMA,GAAE,CAAC,EAAKG,GAAO9F,EAAEpJ,EAAElB,EAAE,EAAE,QAAQ,GACjD,YAAaiQ,GAAE,CAAC,IAAMA,GAAE,CAAC,EAAKG,GAAOO,EAAG,MAAM,YAAY,GAC1D,cAAeV,GAAE,CAAC,IAAMA,GAAE,CAAC,EAAKG,GAAOO,EAAG,MAAM,eAAgBP,CAAE,GAClE,eAAgBH,GAAE,CAAC,IAAMA,GAAE,CAAC,EAAKG,GAAOO,EAAG,MAAM,gBAAiBP,CAAE,EAChF,CAAW,EAAG7B,GAAG,CAAE,EAAG,CAAC,EAAI,CACff,GAAGtM,EAAE8J,CAAC,EAAG,CAACoF,EAAIG,MAAQ,CACpB,KAAMH,EACN,GAAIjC,GAAIqC,IAAO,CACbnE,GAAGsE,EAAG,OAAQP,EAAI9D,GAAGgD,GAAG,CAAE,GAAGkB,EAAE,CAAE,CAAC,CAAC,CACnD,CAAe,CACf,EAAc,CACd,CAAW,EAAG,KAAM,CAAC,eAAgB,QAAS,OAAQ,WAAY,eAAgB,gBAAiB,iBAAkB,eAAe,CAAC,CACrI,CAAS,EACD,EAAG,CACX,EAAS,EAAG,CAAC,kBAAmB,WAAY,WAAW,CAAC,EAClDG,EAAG,kBAAoBhS,EAAC,EAAIC,EAAE,MAAOqV,GAAI,CACvCtD,EAAG,OAAO,aAAa,EAAItE,GAAGsE,EAAG,OAAQ,cAAerE,GAAGC,GAAG,CAAE,IAAK,CAAC,EAAI,CAAE,KAAMrL,EAAEwG,CAAC,EAAG,WAAYxG,EAAEqJ,CAAE,CAAC,CAAE,CAAC,CAAC,GAAK5L,EAAC,EAAIuP,GAAG+C,GAAI1E,GAAG,CAC/H,IAAK,EACL,QAAS,gBACT,IAAKxB,CACf,EAAW4F,EAAG,OAAQ,CACZ,MAAOzP,EAAEwG,CAAC,EAAE,MACZ,QAASxG,EAAEwG,CAAC,EAAE,QACd,QAASxG,EAAEwG,CAAC,EAAE,QACd,uBAAwBiJ,EAAG,mBAC3B,wBAAyBzP,EAAEyG,CAAC,EAC5B,gBAAiBzG,EAAEoI,CAAC,EACpB,QAAS2G,GAAE,CAAC,IAAMA,GAAE,CAAC,EAAKC,GAAM5F,EAAEpJ,EAAElB,EAAE,EAAE,UAAU,GAClD,iBAAkBiQ,GAAE,CAAC,IAAMA,GAAE,CAAC,EAAKC,GAAMhP,EAAEqJ,CAAE,EAAE2F,CAAC,GAChD,mBAAoBD,GAAE,EAAE,IAAMA,GAAE,EAAE,EAAKC,GAAMhP,EAAEqJ,CAAE,EAAE2F,EAAG,EAAE,GACxD,mBAAoBD,GAAE,EAAE,IAAMA,GAAE,EAAE,EAAKC,GAAMhP,EAAEqJ,CAAE,EAAE2F,EAAG,GAAI,EAAE,GAC5D,YAAaD,GAAE,EAAE,IAAMA,GAAE,EAAE,EAAKC,GAAMS,EAAG,MAAM,YAAY,GAC3D,gBAAiBV,GAAE,EAAE,IAAMA,GAAE,EAAE,EAAKC,GAAM9F,EAAE8F,EAAG,EAAE,GACjD,gBAAiBD,GAAE,EAAE,IAAMA,GAAE,EAAE,EAAKC,GAAM9F,EAAE8F,EAAG,EAAE,GACjD,aAAcD,GAAE,EAAE,IAAMA,GAAE,EAAE,EAAKC,GAAMS,EAAG,MAAM,eAAgBT,CAAC,EAC3E,CAAS,EAAG3B,GAAG,CAAE,EAAG,CAAC,EAAI,CACff,GAAGtM,EAAEgJ,CAAC,EAAG,CAACgG,EAAGC,MAAO,CAClB,KAAMD,EACN,GAAI/B,GAAIiC,GAAO,CACb/D,GAAGsE,EAAG,OAAQT,EAAG5D,GAAGgD,GAAGc,CAAE,CAAC,CAAC,CACzC,CAAa,CACb,EAAY,CACZ,CAAS,EAAG,KAAM,CAAC,QAAS,UAAW,UAAW,uBAAwB,wBAAyB,eAAe,CAAC,EACnH,CAAO,GAAK1D,EAAE,GAAI,EAAE,CACpB,EAAO,EAAE,EACP,CACF,CAAC,EAAG0H,GAAK,CAAC,EAAG,IAAM,CACjB,MAAM9U,EAAI0H,IAAK,CACb,wBAAyBxO,EACzB,gBAAiB0E,EACjB,mBAAoBwD,EACpB,eAAgBb,EAChB,UAAWiB,EACX,iBAAkBC,EAClB,oBAAqB2G,CACzB,EAAMsB,GAAG,CAAC,EAAG,CAAE,WAAYrB,EAAG,KAAM0B,EAAG,MAAOC,EAAG,UAAWC,CAAC,EAAK2F,GAAG,EAAG,CAAC,EAAG,CAAE,WAAY1F,CAAC,EAAKkC,GAAG,CAAC,EAAG,CAAE,WAAYjC,EAAG,aAAcN,EAAG,eAAgB3B,EAAG,WAAYC,EAAG,iBAAkBiC,EAAG,iBAAkBN,EAAG,WAAYO,CAAC,EAAKkF,GAAG,CACtO,WAAYlH,EACZ,eAAgBnP,EAChB,MAAOqH,EACP,UAAWa,EACX,UAAW6I,EACX,UAAWzI,EACX,MAAOwI,EACP,KAAMD,EACN,QAAStI,EACT,MAAO,EACP,KAAM,CACV,CAAG,EAAGwJ,EAAK,CAACS,EAAGC,IAAM,CAACD,EAAGC,CAAC,EAAE,IAAKf,GAAM1J,GAAG0J,EAAG,OAAQ,CAAE,OAAQ,EAAE,YAAY,CAAE,CAAC,EAAE,KAAK,GAAG,EAAGjB,EAAIpC,EAAE,IAAOmE,GAAMrD,EAAE,MAAQ,MAAM,QAAQA,EAAE,KAAK,EAAIA,EAAE,MAAM,KAAMsD,GAAMoJ,GAAGrJ,EAAGC,CAAC,CAAC,EAAIoJ,GAAG1M,EAAE,MAAOqD,CAAC,EAAI,EAAE,EAAG9B,EAAK8B,GAAM,CAChN,GAAInL,EAAE,MAAM,QAAS,CACnB,GAAI,MAAM,QAAQ8H,EAAE,KAAK,EAAG,CAC1B,MAAMsD,EAAIzH,GAAGwH,EAAGrD,EAAE,MAAM,CAAC,CAAC,GAAKnE,GAAGwH,EAAGrD,EAAE,MAAM,CAAC,CAAC,EAC/C,OAAO/D,GAAG+D,EAAE,MAAOrI,EAAE,MAAO0L,CAAC,GAAK,CAACC,CACrC,CACA,MAAO,EACT,CACA,MAAO,EACT,EAAGT,EAAK,CAACQ,EAAGC,IAAMD,EAAE,UAAYsJ,GAAGrJ,CAAC,GAAKD,EAAE,OAAS5G,GAAG6G,CAAC,EAAGR,EAAKO,GAAM,OAAOtK,EAAE,OAAS,WAAaA,EAAE,MAAM,CAAE,QAAS4T,GAAGtJ,CAAC,EAAG,KAAM5G,GAAG4G,CAAC,CAAC,CAAE,EAAI,CAAC,CAACtK,EAAE,MAAM,SAAS,KAAMuK,GAAMT,EAAGS,EAAGD,CAAC,CAAC,EAAGN,GAAI7D,EAAE,IAAOmE,GAAM,CAC3M,MAAMC,EAAIpI,GAAmB,IAAI,KAAQ,CAAE,KAAMwG,EAAE,MAAM2B,CAAC,EAAG,EAC7D,OAAOuJ,GAAG,CACR,MAAOxF,GAAG9D,CAAC,EACX,IAAK6D,GAAG7D,CAAC,CACf,CAAK,EAAE,IAAKf,GAAM,CACZ,MAAMI,GAAIkK,GAAGtK,CAAC,EAAGG,EAAIoK,GAAGvK,CAAC,EAAGgB,EAAK1B,EAAEU,CAAC,EAAGmB,EAAInC,EAAEoB,EAAC,EAAGgB,GAAKb,EAAEH,EAAC,EACzD,MAAO,CACL,KAAMC,EAAGD,GAAGD,CAAC,EACb,MAAOC,GACP,OAAQrB,EAAE,MAAMqB,EAAC,EACjB,YAAagB,GACb,SAAUJ,EACV,UAAWG,CACnB,CACI,CAAC,CACH,CAAC,EAAGV,GAAMK,GAAM,CACdwD,GAAGxD,EAAGrD,EAAGD,EAAE,MAAM,KAAK,EAAG,EAAE,aAAc,EAAE,CAC7C,EAAGkD,GAAMI,GAAM,CACbrD,EAAE,MAAQ8G,GAAG9G,EAAGqD,EAAG,CAAC,EAAG0D,GAAG/G,EAAE,MAAO,EAAG,EAAE,UAAW,EAAE,SAAS,CAChE,EAAGkD,EAAKG,GAAM,CACZrD,EAAE,MAAQqD,EAAG,EAAE,YAAY,CAC7B,EACA,MAAO,CACL,gBAAiB9N,EACjB,wBAAyB1E,EACzB,aAAc2Q,EACd,KAAME,EACN,WAAY5B,EACZ,SAAUiD,GACV,eAAgBlD,EAChB,WAAYG,EACZ,aAAeqD,GAAM,CACnB1L,EAAE,MAAQ0L,CACZ,EACA,WAAYvB,EACZ,cAAe,CAACuB,EAAGC,EAAGf,IAAM,CAC1B,GAAI,CAACA,EACH,OAAOX,EAAE,MAAM0B,CAAC,EAAE,MAAQ5G,GAAGoQ,GAAGzJ,CAAC,CAAC,EAAGtD,EAAE,MAAM,QAAUiD,GAAGK,CAAC,EAAInL,EAAE,MAAM,QAAU+K,GAAGI,CAAC,EAAIH,EAAEG,CAAC,CAChG,EACA,iBAAkBtB,EAClB,iBAAkBN,EAClB,WAAYO,CAChB,CACA,EAAG+K,GAAK,CAAE,MAAO,mBAAmB,EAAIC,GAAK,CAAC,eAAgB,WAAY,UAAW,aAAa,EAAGC,GAAqB1I,GAAG,CAC3H,aAAc,CACZ,KAAM,CACV,EACE,OAAQ,gBACR,MAAO,CACL,GAAGJ,EACP,EACE,MAAO,CACL,8BACA,aACA,iBACA,aACA,cACA,YACA,iBACA,mBACJ,EACE,MAAM,EAAG,CAAE,OAAQ,EAAG,KAAMxM,GAAK,CAC/B,MAAM9G,EAAI8G,EAAGpC,EAAI,EAAGwD,EAAI0O,GAAE,EAAIvP,EAAIwP,GAAG3O,EAAG,UAAU,EAAG,CACnD,wBAAyBI,EACzB,gBAAiBC,EACjB,aAAc2G,EACd,KAAMC,EACN,WAAY0B,EACZ,SAAUC,EACV,WAAYC,EACZ,eAAgBC,EAChB,aAAcC,EACd,cAAeN,EACf,iBAAkB3B,EAClB,iBAAkBC,EAClB,WAAYiC,CAClB,EAAQ0K,GAAGlX,EAAG1E,CAAC,EACX,OAAO,EAAE,CAAE,gBAAiB,KAAO,CACjC,WAAY+Q,EACZ,KAAM5B,EACN,cAAewB,EACf,iBAAkB1B,EAClB,WAAYiC,CAClB,EAAM,CAAE,EAAG,CAACC,EAAGY,KAAQ5L,EAAC,EAAIuP,GAAGN,GAAI,CAC7B,kBAAmB1M,EAAEJ,CAAC,EAAE,MACxB,SAAU6I,EAAE,SACZ,QAAS,GACT,YAAaA,EAAE,QACrB,EAAO,CACD,QAASwE,GAAG,CAAC,CAAE,SAAUlF,CAAC,IAAO,CAC/BpK,GAAG,MAAO,CACR,MAAO,yBACP,MAAO4N,GAAG,CAAE,UAAW,GAAGvL,EAAEH,CAAC,EAAE,UAAU,IAAI,CAAE,CACzD,EAAW,CACD4I,EAAE,OAAO,WAAW,EAAI0C,GAAG1C,EAAE,OAAQ,YAAa,CAChD,IAAK,EACL,MAAOA,EAAE,kBACrB,CAAW,EAAI+C,EAAE,GAAI,EAAE,EACb7N,GAAG,MAAO,KAAM,CACdwP,GAAGL,GAAIzB,GAAG5C,EAAE,OAAQ,CAClB,MAAOzI,EAAEwG,CAAC,EAAEuB,CAAC,EACb,SAAUA,EACV,mBAAoB/H,EAAEsI,CAAC,EAAEP,CAAC,EAC1B,KAAM/H,EAAEyG,CAAC,EAAEsB,CAAC,EACZ,cAAgBC,GAAMhI,EAAEmI,CAAC,EAAEJ,EAAGC,CAAC,EAC/B,aAAeA,GAAMhI,EAAEwI,CAAC,EAAET,EAAGC,CAAC,EAC9B,aAAeA,GAAMhI,EAAEuG,CAAC,EAAEyB,EAAGD,CAAC,EAC9B,mBAAqBC,GAAMhI,EAAEsG,CAAC,EAAEyB,EAAGC,GAAG,KAAMA,GAAG,IAAI,CACjE,CAAa,EAAGqF,GAAG,CAAE,EAAG,CAAC,EAAI,CACff,GAAGtM,EAAErB,CAAC,EAAG,CAACqJ,EAAGsB,KAAQ,CACnB,KAAMtB,EACN,GAAIiF,GAAI1D,GAAM,CACZ4B,GAAG1C,EAAE,OAAQT,EAAGoD,GAAGgD,GAAG7E,CAAC,CAAC,CAAC,CAC3C,CAAiB,CACjB,EAAgB,CAChB,CAAa,EAAG,KAAM,CAAC,QAAS,WAAY,mBAAoB,OAAQ,cAAe,eAAgB,eAAgB,oBAAoB,CAAC,CAC5I,CAAW,EACD5L,GAAG,MAAO6V,GAAI,EACX/V,EAAE,EAAE,EAAGC,EAAE4N,GAAI,KAAMgB,GAAGtM,EAAEoI,CAAC,EAAEL,CAAC,EAAG,CAACC,EAAGsB,KAAQ7L,EAAC,EAAIC,EAAE,MAAO,CAAE,IAAK4L,GAAM,CACrE3L,GAAG,SAAU,CACX,KAAM,SACN,MAAOyO,GAAG,CAAC,aAAc,CACvB,oBAAqBpE,EAAE,OACvB,qBAAsBA,EAAE,UACxB,sBAAuBA,EAAE,SACzB,kBAAmBA,EAAE,WACvC,CAAiB,CAAC,EACF,eAAgBA,EAAE,MAClB,SAAUA,EAAE,SACZ,QAAUuB,GAAMvJ,EAAEiI,CAAC,EAAED,EAAE,MAAOD,EAAGC,EAAE,QAAQ,EAC3C,YAAcuB,GAAMvJ,EAAEuI,CAAC,EAAEP,EAAE,KAAK,CAChD,EAAiB,CACDS,EAAE,OAAO,QAAU0C,GAAG1C,EAAE,OAAQ,UAAW,CACzC,IAAK,EACL,MAAOT,EAAE,MACT,KAAMA,EAAE,IAC1B,CAAiB,GAAKvK,EAAC,EAAIC,EAAE4N,GAAI,CAAE,IAAK,GAAK,CAC3BG,GAAGC,GAAG1D,EAAE,IAAI,EAAG,CAAC,CAClC,EAAmB,EAAE,EACrB,EAAiB,GAAIyL,EAAE,CACvB,CAAa,EAAE,EAAG,GAAG,EACrB,CAAW,CACX,EAAW,CAAC,CACZ,CAAO,EACD,EAAG,CACT,EAAO,EAAG,CAAC,kBAAmB,WAAY,WAAW,CAAC,EACpD,CACF,CAAC,EAAGE,GAAK,CAAC,EAAG,IAAM,CACjB,MAAMvV,EAAI0H,EAAE,CAAC,EACbmF,GAAG,IAAM,CACP3T,EAAC,EAAI,OAAO,iBAAiB,SAAUA,EAAG,CAAE,QAAS,GAAI,CAC3D,CAAC,EAAG4T,GAAG,IAAM,CACX,OAAO,oBAAoB,SAAU5T,CAAC,CACxC,CAAC,EACD,MAAMA,EAAI,IAAM,CACd8G,EAAE,MAAQ,OAAO,SAAS,gBAAgB,WAC5C,EACA,MAAO,CACL,SAAUuH,EACR,IAAMvH,EAAE,OAAS,EAAE,MAAM,kBAAoB,CAAC,EAAI,GAAK,MAC7D,CACA,CACA,EAAGwV,GAAK,CAAC,KAAM,WAAY,OAAQ,YAAY,EAAGC,GAAK,CACrD,IAAK,EACL,MAAO,yBACT,EAAGC,GAAK,CACN,IAAK,EACL,MAAO,iBACT,EAAGC,GAAK,CAAC,gBAAgB,EAAGC,GAAK,CAC/B,IAAK,EACL,MAAO,kBACT,EAAGC,GAAK,CAAC,gBAAgB,EAAGC,GAAK,CAAC,eAAgB,iBAAkB,UAAW,WAAW,EAAGC,GAAK,CAChG,IAAK,EACL,MAAO,mBACT,EAAGC,GAAK,CACN,IAAK,EACL,MAAO,kBACT,EAAGC,GAAqBrJ,GAAG,CACzB,aAAc,CACZ,KAAM,CACV,EACE,OAAQ,iBACR,MAAO,CACL,GAAGL,GACH,OAAQ,CAAE,KAAM,QAAS,QAAS,EAAE,EACpC,UAAW,CAAE,KAAM,QAAS,QAAS,EAAE,EACvC,mBAAoB,CAAE,KAAM,CAAC,KAAM,KAAK,EAAG,QAAS,IAAI,EACxD,eAAgB,CAAE,KAAM,QAAS,QAAS,EAAE,EAC5C,SAAU,CAAE,KAAM,QAAS,QAAS,EAAE,EACtC,aAAc,CAAE,KAAM,SAAU,QAAS,KAAO,CAAA,EAAG,EACnD,gBAAiB,CAAE,KAAM,QAAS,QAAS,EAAE,CACjD,EACE,MAAO,CACL,eACA,cACA,aACA,cACA,YACA,oBACA,iBACA,8BACA,uBACA,sBACA,eACA,gBACA,mBACA,oBACA,eACA,cACA,YACA,qBACA,cACA,eACA,iBACA,WACJ,EACE,MAAM,EAAG,CAAE,OAAQ,EAAG,KAAMvM,GAAK,CAC/B,MAAM9G,EAAI8G,EAAGpC,EAAI,EAAGwD,EAAIsG,EAAE,IAAI,EAAGnH,EAAIgH,EAAE,IAAM,CAC3C,KAAM,CAAE,UAAWwM,EAAG,GAAGmC,EAAE,EAAKtY,EAChC,MAAO,CACL,GAAGsY,GACH,SAAUrM,EAAE,MACZ,SAAUyB,GAAG,MACb,YAAalK,EAAE,KACvB,CACI,CAAC,EAAG,CAAE,eAAgBI,EAAG,YAAaC,EAAG,QAAS2G,CAAC,EAAKd,GAAE,EAAIe,EAAIyH,GAAE,EAAI,CAAE,mBAAoB/F,EAAG,gBAAiBC,EAAG,gBAAiBC,EAAG,YAAaC,EAAG,uBAAwBC,CAAC,EAAKT,GAAG9L,CAAC,EAAG,CAAE,SAAUiM,GAAM0L,GAAGtL,EAAGrM,EAAE,MAAM,EAAGsK,EAAIR,EAAE,IAAI,EAAGS,EAAIT,EAAE,CAAC,EAAG0C,EAAI1C,EAAE,IAAI,EAAGoC,EAAIpC,EAAE,EAAE,EAAG2C,EAAI3C,EAAE,IAAI,EAAGuD,EAAKvD,EAAE,EAAE,EAAGiC,EAAKoK,GAAM,CAClT9I,EAAG,MAAQ,GAAIhB,EAAE,MAAM,qBAAuB8J,EAAE,eAAc,EAAIxR,GAAGwR,EAAG9J,EAAE,MAAO,EAAE,CACrF,EACA4C,GAAG,IAAM,CACP,GAAI,CAACjP,EAAE,OAAQ,CACbkM,EAAE,MAAQ,GAAIF,EAAC,EAAI,OAAO,iBAAiB,SAAUA,CAAC,EACtD,MAAMmK,EAAIpS,GAAGP,CAAC,EACd2S,GAAK,CAAChK,EAAE,MAAM,SAAW,CAACC,EAAE,MAAM,UAAYxI,EAAE,EAAE,EAAGwJ,KAAM+I,IAAMA,EAAE,iBAAiB,cAAepK,CAAC,EAAGoK,EAAE,iBAAiB,YAAapK,CAAC,EAC1I,CACA,SAAS,iBAAiB,YAAayH,EAAE,CAC3C,CAAC,EAAGtE,GAAG,IAAM,CACX,OAAO,oBAAoB,SAAUlD,CAAC,EAAG,SAAS,oBAAoB,YAAawH,EAAE,EACrF,MAAM2C,EAAIpS,GAAGP,CAAC,EACd2S,IAAMA,EAAE,oBAAoB,cAAepK,CAAC,EAAGoK,EAAE,oBAAoB,YAAapK,CAAC,EACrF,CAAC,EACD,MAAMC,EAAI,IAAM,CACd,MAAMmK,EAAIpS,GAAGyI,CAAC,EACd2J,IAAM5L,EAAE,MAAQ4L,EAAE,sBAAqB,EAAG,MAC5C,EAAG,CAAE,WAAY7I,EAAI,UAAWC,EAAG,UAAWC,GAAG,QAASC,IAAOpD,KAAM,CAAE,SAAUqD,GAAI,eAAgBC,EAAG,WAAYC,EAAG,UAAWC,EAAI,WAAYC,CAAC,EAAKyK,GAAGvY,EAAG1E,EAAGmR,CAAC,EAAGsB,GAAIpE,EAAE,IAAM3J,EAAE,YAAciS,GAAKjS,EAAE,WAAasS,GAAKtS,EAAE,WAAakU,GAAKlU,EAAE,cAAgB0X,GAAKV,EAAE,EAAGhK,EAAIrD,EAAE,IAAM,CACtR,GAAI0C,EAAE,MAAM,UAAW,OAAOA,EAAE,MAAM,UACtC,MAAM8J,EAAI3S,EAAE,OAAO,sBAAqB,EAAI8U,GAAKtY,EAAE,aAAY,EAC/D,OAAOsY,IAAI,MAAQ/N,GAAG,OAAS+N,IAAI,OAASnC,GAAG,MAAQ,GAAK,GAAGmC,IAAI,MAAQ,CAAC,KAAOA,IAAI,QAAUnC,GAAG,OAAS,IAAMmC,IAAI,MAAQ/N,GAAG,MAAQ,GAAGA,GAAG,MAAQ+N,IAAI,MAAQ,CAAC,KAAO,KAC9K,CAAC,EAAGlL,EAAI,IAAM,CACZ,MAAM+I,EAAIpS,GAAGP,CAAC,EACd2S,GAAKA,EAAE,MAAM,CAAE,cAAe,EAAE,CAAE,CACpC,EAAGhJ,EAAIxD,EAAE,IAAM8C,EAAE,OAAO,mBAAqB,CAAA,CAAE,EAAGuB,GAAK,IAAM,CAC3DhO,EAAE,WAAa1E,EAAE,sBAAsB,CACzC,EAAG6S,EAAIgE,GAAG1H,EAAG,QAAQ,EAAG2D,EAAKzE,EAAE,IAAM3J,EAAE,aAAeA,EAAE,WAAamS,GAAG1H,EAAG,WAAW,EAAIzK,EAAE,WAAamS,GAAG1H,EAAG,YAAY,EAAI0H,GAAG1H,EAAG,QAAQ,CAAC,EAAG4D,EAAI1E,EAAE,IAAM3J,EAAE,UAAY,mBAAqB,eAAe,EAAGsO,GAAI3E,EAAE,KAAO,CAC7N,kBAAmB3J,EAAE,SACrB,kBAAmBA,EAAE,SACrB,kBAAmBA,EAAE,OAC3B,EAAM,EAAG6M,EAAIlD,EACP,KAAO,CACL,SAAU,GACV,eAAgB,CAACyC,EAAE,MAAM,QACzB,aAAcA,EAAE,MAAM,QACtB,GAAGE,EAAE,MAAM,MAAQ,CAAA,CAC3B,EACA,EAAO6D,EAAKgG,GAAM,CACZxR,GAAGwR,EAAG9J,EAAE,MAAO,EAAE,CACnB,EAAGS,EAAKqJ,GAAM,CACZnW,EAAE,WAAa1E,EAAE,cAAc,EAAGiR,EAAE4J,CAAC,EACvC,EAAGpJ,GAAKoJ,GAAM,CACZ,GAAInW,EAAE,gBAAiB,CACrB,GAAImW,IAAMlT,GAAG,GAAI,OAAOwK,GAAE,EAC1B,GAAI0I,IAAMlT,GAAG,KAAM,OAAOuK,GAAC,EAC3B,GAAI2I,IAAMlT,GAAG,KAAM,OAAOsK,EAAC,EAC3B,GAAI4I,IAAMlT,GAAG,MAAO,OAAOqK,EAAE,CAC/B,MAAO6I,IAAMlT,GAAG,MAAQkT,IAAMlT,GAAG,GAAK8P,EAAE,cAAe9P,GAAG,KAAM,EAAGkT,IAAMlT,GAAG,EAAE,EAAI8P,EAAE,cAAe9P,GAAG,MAAO,EAAGkT,IAAMlT,GAAG,IAAI,CAC/H,EAAGiK,EAAKiJ,GAAM,CACZtS,EAAEsS,EAAE,QAAQ,EAAG,CAACnW,EAAE,wBAA0BmW,EAAE,OAASjT,GAAG,KAAOiT,EAAE,OAAO,UAAU,SAAS,UAAU,GAAK3L,EAAE,MAAM,iBAAmB2L,EAAE,eAAc,EAAIxR,GAAGwR,EAAG9J,EAAE,MAAO,EAAE,EAAG/Q,EAAE,cAAc,EACjM,EAAG2S,GAAK,IAAM,CACZb,EAAC,EAAI9R,EAAE,mBAAmB,CAC5B,EAAG4S,EAAMiI,GAAM,CACb1J,EAAE,OAAO,iBAAiB,GAAI,EAAE,EAAGA,EAAE,OAAO,kBAAkB,GAAI,GAAI0J,CAAC,EAAG1J,EAAE,OAAO,iBAAiB,GAAI,GAAI0J,CAAC,CAC/G,EAAG1C,GAAK,CAAC0C,EAAGmC,GAAK,IAAMnC,IAAM,QAAU1J,EAAE,OAAO,kBAAkB,GAAI,GAAI6L,EAAE,EAAInC,IAAM,OAAS1J,EAAE,OAAO,iBAAiB,GAAI,GAAI6L,EAAE,EAAInC,IAAM,OAAS1J,EAAE,OAAO,iBAAiB,GAAI,EAAE,EAAIyB,EAAGoK,EAAE,EAAGvF,EAAI,CAACoD,KAAMmC,KAAO,CAClN7L,EAAE,QAAQ0J,CAAC,GAAK1J,EAAE,QAAQ0J,CAAC,EAAE,GAAGmC,EAAE,CACpC,EAAGtF,GAAI,IAAM,CACXD,EAAE,mBAAmB,CACvB,EAAGE,EAAI,CAACkD,EAAGmC,KAAO,CAChBvF,EAAE,aAAcyF,GAAGrC,CAAC,EAAGmC,EAAE,CAC3B,EAAGpF,GAAK,IAAM,CACZH,EAAE,gBAAgB,CACpB,EAAGM,GAAK,CAAC8C,EAAGmC,KAAO,CACjBvF,EAAE,kBAAmBoD,EAAGmC,EAAE,CAC5B,EAAGhF,GAAK,CAAC6C,EAAGmC,KAAO,CACjBnC,EAAE,eAAc,EAAIpJ,GAAEuL,EAAE,CAC1B,EAAG/E,GAAM4C,GAAM,CACb,GAAIjJ,EAAEiJ,CAAC,EAAGA,EAAE,MAAQjT,GAAG,MAAQiT,EAAE,MAAQjT,GAAG,IAC1C,OAAO6P,EACL,iBACAoD,EAAE,MAAQjT,GAAG,KACbiT,EAAE,OAAO,aAAa,IAAI,CACpC,EACM,QAASA,EAAE,MAAQjT,GAAG,QAAUiT,EAAE,MAAQjT,GAAG,YAAciT,EAAE,UAAYpD,EAAE,aAAcoD,EAAE,MAAQjT,GAAG,MAAM,EAAG4B,GAAGtB,EAAE,MAAO,cAAc,GAAG,MAAK,IAAOuP,EAAE,cAAeoD,EAAE,MAAQjT,GAAG,MAAM,EAAG4B,GAAGtB,EAAE,MAAO2S,EAAE,MAAQjT,GAAG,OAAS,cAAgB,aAAa,GAAG,MAAK,GAAKiT,EAAE,OAAO,aAAa,IAAI,GAAK3S,EAAE,OAAO,MAAM,CAAE,cAAe,EAAE,CAAE,GAAI2S,EAAE,IAAG,CACrV,KAAKjT,GAAG,IACN,OAAO4J,EAAEqJ,CAAC,EACZ,KAAKjT,GAAG,UACN,OAAOoQ,GAAG6C,EAAGlT,GAAG,IAAI,EACtB,KAAKC,GAAG,WACN,OAAOoQ,GAAG6C,EAAGlT,GAAG,KAAK,EACvB,KAAKC,GAAG,QACN,OAAOoQ,GAAG6C,EAAGlT,GAAG,EAAE,EACpB,KAAKC,GAAG,UACN,OAAOoQ,GAAG6C,EAAGlT,GAAG,IAAI,EACtB,QACE,MACV,CACI,EAAGuQ,GAAM2C,GAAM,CACb/J,EAAE,MAAM,SAAW,CAACA,EAAE,MAAM,OAAS,CAAC5I,EAAE,OAAO,SAAS2S,EAAE,MAAM,GAAK9I,EAAG,QAAUA,EAAG,MAAQ,GAAI/R,EAAE,WAAW,EAChH,EACA,OAAO,EAAE,CACP,gBAAiB+X,GACjB,WAAYI,GACZ,WAAY3F,EACZ,eAAgB,IAAM,CACpBrB,EAAE,OAAO,eAAY,CACvB,CACN,CAAK,EAAG,CAAC0J,EAAGmC,MAAQ7W,EAAC,EAAIC,EAAE,MAAO,CAC5B,GAAIyU,EAAE,IAAM,WAAWA,EAAE,GAAG,GAAK,OACjC,QAAS,YACT,IAAK3S,EACL,SAAUQ,EAAEoI,CAAC,EAAE,QAAU,OAAS,IAClC,KAAMpI,EAAEoI,CAAC,EAAE,QAAU,OAAS,SAC9B,aAAc+J,EAAE,YAAY,KAC5B,MAAO/F,GAAGvD,EAAE,KAAK,EACjB,MAAO0C,GAAG,CAAE,kBAAmBvC,EAAE,KAAK,CAAE,EACxC,aAAckG,GACd,QAAS/C,EACT,UAAWoD,EACjB,EAAO,EACA4C,EAAE,UAAYA,EAAE,WAAanS,EAAEoI,CAAC,EAAE,SAAW+J,EAAE,SAAW1U,EAAC,EAAIC,EAAE,MAAO,CACvE,IAAK,EACL,MAAO0O,GAAG9B,GAAE,KAAK,CACzB,EAAS,CACD6H,EAAE,SAAW1U,IAAKC,EAAE,MAAOmW,GAAI,CAAC,GAAGS,GAAG,EAAE,IAAMA,GAAG,EAAE,EAAI,CACrD3W,GAAG,OAAQ,CAAE,MAAO,iBAAiB,EAAI,KAAM,EAAE,CAC3D,EAAU,CAAC,GAAK6N,EAAE,GAAI,EAAE,CACxB,EAAS,CAAC,GAAKA,EAAE,GAAI,EAAE,EACjB2G,EAAE,OAAO,aAAa,GAAK1U,EAAC,EAAIC,EAAE,MAAOoW,GAAI,CAC3C3I,GAAGgH,EAAE,OAAQ,aAAa,CAClC,CAAO,GAAK3G,EAAE,GAAI,EAAE,EACd,CAACxL,EAAEoI,CAAC,EAAE,SAAW,CAAC+J,EAAE,gBAAkB1U,EAAC,EAAIC,EAAE,MAAO,CAClD,IAAK,EACL,MAAO0O,GAAG/B,EAAE,KAAK,CACzB,EAAS,KAAM,CAAC,GAAKmB,EAAE,GAAI,EAAE,EACvB7N,GAAG,MAAO,CACR,QAAS,eACT,IAAK6K,EACL,MAAO4D,GAAG,CACR,yBAA0B+F,EAAE,aAAa,QAAU,CAAC,CAACA,EAAE,OAAO,cAAc,GAAK,CAAC,CAACA,EAAE,OAAO,eAAe,EAC3G,qCAAsC,EAAE,WAAaA,EAAE,aAAa,QAAU,CAAC,CAACA,EAAE,OAAO,cAAc,GAAK,CAAC,CAACA,EAAE,OAAO,eAAe,EAChJ,CAAS,EACD,iBAAkBnS,EAAEiI,CAAC,EACrB,MAAOsD,GAAG,CAAE,kBAAmB,GAAGhF,EAAE,KAAK,IAAI,CAAE,CACvD,EAAS,CACD4L,EAAE,OAAO,cAAc,GAAK1U,EAAC,EAAIC,EAAE,MAAOsW,GAAI,CAC5C7I,GAAGgH,EAAE,OAAQ,eAAgB/G,GAAGgD,GAAGjF,EAAE,KAAK,CAAC,CAAC,CACtD,CAAS,GAAKqC,EAAE,GAAI,EAAE,EACd2G,EAAE,YAAY,QAAU1U,EAAC,EAAIC,EAAE,MAAO,CACpC,IAAK,EACL,MAAO0O,GAAG,CAAE,6BAA8B,EAAE,SAAU,mBAAoB,GAAI,EAC9E,iBAAkBpM,EAAEiI,CAAC,CAC/B,EAAW,EACAxK,EAAE,EAAE,EAAGC,EAAE4N,GAAI,KAAMgB,GAAG6F,EAAE,YAAa,CAACC,GAAIC,MAAQ5U,IAAKC,EAAE4N,GAAI,CAAE,IAAK+G,IAAM,CACzED,GAAG,KAAOjH,GAAGgH,EAAE,OAAQC,GAAG,KAAM,CAC9B,IAAK,EACL,WAAYnD,EACZ,MAAOmD,GAAG,MACV,MAAOA,GAAG,KACxB,CAAa,GAAK3U,EAAC,EAAIC,EAAE,SAAU,CACrB,IAAK,EACL,KAAM,SACN,MAAO6N,GAAG6G,GAAG,OAAS,CAAA,CAAE,EACxB,MAAOhG,GAAG,CAAC,2BAA4B,CAAE,6BAA8B,EAAE,QAAQ,CAAE,CAAC,EACpF,eAAgBgG,GAAG,QAAU,OAC7B,iBAAkBpS,EAAEiI,CAAC,EACrB,QAASoE,GAAI4F,IAAOhD,EAAEmD,GAAG,MAAOA,GAAG,IAAI,EAAG,CAAC,SAAS,CAAC,EACrD,UAAYH,IAAOjS,EAAEmB,EAAE,EAAE8Q,GAAI,IAAMhD,EAAEmD,GAAG,MAAOA,GAAG,IAAI,EAAG,EAAE,CACzE,EAAe1G,GAAG0G,GAAG,KAAK,EAAG,GAAI8B,EAAE,EACnC,EAAa,EAAE,EAAE,EAAG,GAAG,EACvB,EAAW,GAAID,EAAE,GAAKzI,EAAE,GAAI,EAAE,EACtB7N,GAAG,MAAO,CACR,QAAS,qBACT,IAAK2I,EACL,MAAO,wBACP,KAAM,UAChB,EAAW,EACA7I,EAAC,EAAIuP,GAAG0C,GAAG3F,GAAE,KAAK,EAAGsB,GAAG,CACvB,QAAS,YACT,IAAK5C,CACjB,EAAa9J,EAAE,MAAO,CACV,YAAaqB,EAAE0J,EAAE,EACjB,QAAS1J,EAAE4J,CAAC,EACZ,iBAAkB5J,EAAE2J,CAAC,EACrB,YAAa3J,EAAE6J,CAAE,EACjB,YAAaT,EACb,aAAckL,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKlC,IAAOD,EAAE,MAAM,aAAa,GAC7D,aAAcmC,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKlC,IAAOD,EAAE,MAAM,cAAeC,EAAE,GACjE,cAAekC,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKlC,IAAOD,EAAE,MAAM,eAAgBC,EAAE,GACnE,eAAgBkC,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKlC,IAAOD,EAAE,MAAM,gBAAiBC,EAAE,GACrE,YAAakC,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKlC,IAAOD,EAAE,MAAM,aAAcC,EAAE,GAC/D,aAAckC,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKlC,IAAOD,EAAE,MAAM,cAAeC,EAAE,GACjE,WAAYkC,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKlC,IAAOD,EAAE,MAAM,YAAaC,EAAE,GAC7D,oBAAqBkC,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKlC,IAAOD,EAAE,MAAM,sBAAuBC,EAAE,GAChF,aAAckC,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKlC,IAAOD,EAAE,MAAM,aAAa,GAC7D,aAAcmC,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKlC,IAAOD,EAAE,MAAM,eAAgBC,EAAE,GAClE,iBAAkBkC,GAAG,EAAE,IAAMA,GAAG,EAAE,EAAKlC,IAAOD,EAAE,MAAM,mBAAoBC,EAAE,GAC5E,kBAAmBnI,GACnB,sBAAuBD,GACvB,kBAAmBsK,GAAG,EAAE,IAAMA,GAAG,EAAE,EAAKlC,IAAOD,EAAE,MAAM,oBAAqBC,EAAE,GAC9E,mBAAoBkC,GAAG,EAAE,IAAMA,GAAG,EAAE,EAAKlC,IAAOD,EAAE,MAAM,qBAAsBC,EAAE,GAChF,cAAekC,GAAG,EAAE,IAAMA,GAAG,EAAE,EAAKlC,IAAOD,EAAE,MAAM,eAAgBC,EAAE,GACrE,gBAAiBkC,GAAG,EAAE,IAAMA,GAAG,EAAE,EAAKlC,IAAOD,EAAE,MAAM,iBAAkBC,EAAE,GACzE,8BAA+BkC,GAAG,EAAE,IAAMA,GAAG,EAAE,EAAKlC,IAAOD,EAAE,MAAM,8BAA+BC,EAAE,EAChH,CAAW,EAAG/E,GAAG,CAAE,EAAG,CAAC,EAAI,CACff,GAAGlC,EAAG,MAAO,CAACgI,GAAIC,MAAQ,CACxB,KAAMD,GACN,GAAInF,GAAIgF,IAAO,CACb9G,GAAGgH,EAAE,OAAQC,GAAIhH,GAAGgD,GAAG,CAAE,GAAG6D,EAAE,CAAE,CAAC,CAAC,CAClD,CAAe,CACf,EAAc,CACd,CAAW,EAAG,KAAM,CAAC,YAAa,UAAW,mBAAoB,aAAa,CAAC,EAC/E,EAAW,GAAG,EACNE,EAAE,OAAO,eAAe,GAAK1U,EAAC,EAAIC,EAAE,MAAOyW,GAAI,CAC7ChJ,GAAGgH,EAAE,OAAQ,gBAAiB/G,GAAGgD,GAAGjF,EAAE,KAAK,CAAC,CAAC,CACvD,CAAS,GAAKqC,EAAE,GAAI,EAAE,EACd2G,EAAE,OAAO,cAAc,GAAK1U,EAAC,EAAIC,EAAE,MAAO0W,GAAI,CAC5CjC,EAAE,OAAO,cAAc,EAAIhH,GAAGgH,EAAE,OAAQ,eAAgB,CACtD,IAAK,EACL,kBAAmBnD,EAC/B,CAAW,EAAIxD,EAAE,GAAI,EAAE,CACvB,CAAS,GAAKA,EAAE,GAAI,EAAE,CACtB,EAAS,GAAIuI,EAAE,EACT,CAAC5B,EAAE,WAAanS,EAAEqI,CAAC,EAAE,eAAiB5K,IAAKuP,GAAGjC,GAAIM,GAAG,CACnD,IAAK,EACL,aAAcnD,EAAE,KACxB,EAASvJ,EAAE,MAAO,CACV,iBAAkB4H,EAAE,MACpB,cAAe+N,GAAG,EAAE,IAAMA,GAAG,EAAE,EAAKlC,IAAOD,EAAE,MAAM,cAAc,GACjE,aAAcmC,GAAG,EAAE,IAAMA,GAAG,EAAE,EAAKlC,IAAOD,EAAE,MAAM,aAAa,GAC/D,gBAAiBmC,GAAG,EAAE,IAAMA,GAAG,EAAE,EAAKlC,IAAOD,EAAE,MAAM,gBAAgB,GACrE,YAAanD,EACrB,CAAO,EAAG3B,GAAG,CAAE,EAAG,CAAC,EAAI,CACff,GAAGtM,EAAEmK,CAAC,EAAG,CAACiI,GAAIC,MAAQ,CACpB,KAAMD,GACN,GAAInF,GAAIgF,IAAO,CACb9G,GAAGgH,EAAE,OAAQC,GAAIhH,GAAGgD,GAAG,CAAE,GAAG6D,EAAE,CAAE,CAAC,CAAC,CAC9C,CAAW,CACX,EAAU,CACV,CAAO,EAAG,KAAM,CAAC,aAAc,gBAAgB,CAAC,GAAKzG,EAAE,GAAI,EAAE,CAC7D,EAAO,GAAIoI,EAAE,EACX,CACF,CAAC,EACD,IAAIa,IAAuB,IAAO,EAAE,OAAS,SAAU,EAAE,KAAO,OAAQ,EAAE,MAAQ,QAAS,IAAIA,IAAM,EAAE,EACvG,MAAMC,GAAK,CAAC,CACV,QAAS,EACT,aAAc,EACd,SAAUtW,EACV,iBAAkB9G,EAClB,OAAQ0E,EACR,KAAMwD,EACN,MAAOb,EACP,MAAOiB,CACT,IAAM,CACJ,KAAM,CAAE,gBAAiBC,CAAC,EAAKiI,GAAGnJ,CAAC,EAAG6H,EAAIV,EAAE,CAAA,CAAE,EAAGW,EAAIX,EAAE,EAAE,EAAGqC,EAAIrC,EAAE,CAChE,IAAK,IACL,KAAM,GACV,CAAG,EAAGsC,EAAItC,EAAE,EAAE,EAAGuC,EAAIM,GAAGhK,EAAG,gBAAgB,EACzCiK,GAAGP,EAAG,IAAM,CACVF,EAAE,MAAQ,KAAK,MAAM,KAAK,UAAU,CAAA,CAAE,CAAC,EAAGM,EAAC,CAC7C,CAAC,EACD,MAAMH,EAAKwB,GAAM,CACf,GAAInL,EAAE,SAAU,CACd,MAAMoL,EAAID,EAAE,sBAAqB,EACjC,MAAO,CACL,KAAMC,EAAE,KAAO,OAAO,QACtB,IAAKA,EAAE,IAAM,OAAO,OAC5B,CACI,CACA,MAAO,CAAE,IAAK,EAAG,KAAM,CAAC,CAC1B,EAAGxB,EAAI,CAACuB,EAAGC,IAAM,CACf5B,EAAE,MAAM,KAAO,GAAG2B,EAAIC,EAAIvD,EAAE,MAAM,KAAK,IACzC,EAAGyB,EAAK6B,GAAM,CACZ3B,EAAE,MAAM,KAAO,GAAG2B,CAAC,IACrB,EAAGxD,EAAI,CAACwD,EAAGC,IAAM,CACfpL,EAAE,WAAa8V,GAAG,MAAQxM,EAAE6B,CAAC,EAAGnL,EAAE,WAAa8V,GAAG,OAASlM,EAAEuB,EAAGC,CAAC,EAAGpL,EAAE,WAAa8V,GAAG,SAAWtM,EAAE,MAAM,KAAO,GAAG2B,EAAIC,EAAI,EAAIvD,EAAE,MAAM,MAAQ,CAAC,KAClJ,EAAGD,EAAKuD,GAAM,CACZ,KAAM,CAAE,MAAOC,EAAG,OAAQf,EAAC,EAAKc,EAAE,sBAAqB,EAAI,CAAE,IAAKV,EAAG,KAAMD,CAAC,EAAKb,EAAEwB,CAAC,EACpF,MAAO,CAAE,IAAK,CAACV,EAAG,KAAM,CAACD,EAAG,MAAOY,EAAG,OAAQf,EAAC,CACjD,EAAGR,EAAI,IAAM,CACXL,EAAE,MAAM,KAAO,MAAOA,EAAE,MAAM,IAAM,MAAOA,EAAE,MAAM,UAAY,wBAAyBA,EAAE,MAAM,SAAW,QAAS,OAAOA,EAAE,MAAM,OACrI,EAAGD,EAAI,IAAM,CACX,MAAM4B,EAAI/J,GAAG3B,CAAC,EACd+J,EAAE,MAAQxJ,EAAE,YAAYmL,CAAC,CAC3B,EAAGrB,EAAI,CAACqB,EAAI,KAAO,CACjB,GAAI,CAAC9N,EAAE,MAAM,QAAS,CACpB,GAAIqM,EAAE,MAAO,OAAOG,EAAC,EACrB,GAAI7J,EAAE,cAAgB,KAAM,OAAOuJ,EAAC,EACpC,GAAI4B,EAAG,CACL,MAAMC,EAAIpL,EAAE,SAAW,EAAE,OAAO,IAAM,EAAE,MACxCoL,IAAMvD,EAAE,MAAQuD,EAAE,yBAA0BvK,EAAE,sBAAsB,CACtE,CACA,OAAOiK,GAAE,CACX,CACF,EAAGJ,EAAK,CAAC,CAAE,QAASS,EAAG,KAAMC,EAAG,MAAOf,MAAQ,CAC7C,OAAO,OAAO,MAAQ,KAAO,CAACvC,EAAE,OAASH,EAAEyD,EAAGf,EAAC,EAAGM,EAAGQ,CAAC,CACxD,EAAG/B,EAAK+B,GAAM,CACZ,KAAM,CAAE,IAAKC,EAAG,KAAMf,GAAG,OAAQI,EAAG,MAAOD,GAAM5C,EAAEuD,CAAC,EACpD3B,EAAE,MAAM,IAAM,GAAGiB,EAAIW,GAAI,CAACpL,EAAE,MAAM,KAAMyJ,EAAE,MAAQ,GAAI3B,EAAE,QAAU0B,EAAE,MAAM,KAAO,GAAGa,GAAIG,EAAI,EAAI3C,EAAE,MAAM,MAAQ,CAAC,MAAO6C,EAAG,CAAE,QAASS,EAAG,KAAMd,GAAG,MAAOG,EAAG,CAC9J,EAAGnB,EAAK8B,GAAM,CACZ,KAAM,CAAE,IAAKC,EAAG,KAAMf,GAAG,MAAOI,CAAC,EAAK7C,EAAEuD,CAAC,EACzC3B,EAAE,MAAM,IAAM,GAAG4B,EAAI,CAACpL,EAAE,OAAS6H,EAAE,MAAM,MAAM,KAAM4B,EAAE,MAAQ,GAAIiB,EAAG,CAAE,QAASS,EAAG,KAAMd,GAAG,MAAOI,CAAC,CAAE,CACzG,EAAGE,EAAMQ,GAAM,CACb,GAAInL,EAAE,aAAc,CAClB,KAAM,CAAE,KAAMoL,EAAG,MAAOf,EAAC,EAAKzC,EAAEuD,CAAC,EAAG,CAAE,KAAMV,EAAG,MAAOD,CAAC,EAAK3C,EAAE,MAC9D,GAAI,CAACC,EAAE,MAAO,CACZ,GAAI,KAAK,IAAI2C,CAAC,IAAM,KAAK,IAAID,CAAC,EAAG,CAC/B,GAAIC,GAAK,EACP,OAAO3C,EAAE,MAAQ,GAAIwB,EAAE8B,CAAC,EAC1B,GAAIZ,GAAK,SAAS,gBAAgB,YAChC,OAAO1C,EAAE,MAAQ,GAAI8B,EAAEwB,EAAGf,EAAC,CAC/B,CACA,OAAO1C,EAAEyD,EAAGf,EAAC,CACf,CACF,CACF,EAAGO,EAAI,IAAM,CACX,MAAMO,EAAI/J,GAAG3B,CAAC,EACd,GAAI0L,EAAG,CACL,GAAInL,EAAE,eAAiBE,GAAG,IAAK,OAAOA,GAAG,IACzC,GAAIF,EAAE,eAAiBE,GAAG,OAAQ,OAAOA,GAAG,OAC5C,KAAM,CAAE,OAAQkL,GAAMvD,EAAE,MAAO,CAAE,IAAKwC,GAAG,OAAQI,CAAC,EAAKU,EAAE,sBAAqB,EAAIE,EAAK,OAAO,YAAchB,GAAII,EAAGe,EAAInB,GACvH,OAAOe,GAAKC,EAAKnL,GAAG,OAASkL,EAAIC,GAAMD,GAAKI,EAAItL,GAAG,IAAMmL,GAAMG,EAAItL,GAAG,OAASA,GAAG,GACpF,CACA,OAAOA,GAAG,MACZ,EAAG2K,GAAKM,GAAMP,EAAC,IAAO1K,GAAG,OAASkJ,EAAE+B,CAAC,EAAI9B,EAAE8B,CAAC,EAAGL,GAAK,IAAM,CACxD,MAAMK,EAAI/J,GAAG3B,CAAC,EACd,GAAI0L,EACF,OAAOnL,EAAE,aAAe6K,GAAEM,CAAC,EAAI/B,EAAE+B,CAAC,CACtC,EAAGJ,GAAK,SAASI,EAAG,CAClB,GAAIA,EAAG,CACL,MAAMC,EAAID,EAAE,aAAeA,EAAE,aAAcV,GAAI,OAAO,iBAAiBU,CAAC,EAAE,UAAU,QAAQ,QAAQ,IAAM,GAC1G,OAAOC,GAAK,CAACX,EACf,CACA,MAAO,EACT,EAAGO,EAAI,SAASG,EAAG,CACjB,MAAO,CAACA,GAAKA,IAAM,SAAS,MAAQA,EAAE,WAAa,KAAK,uBAAyB,OAASJ,GAAGI,CAAC,EAAIA,EAAIH,EACpGG,EAAE,cAAgBjK,EAAE,MAAM,UAAYiK,EAAE,aAAa,WAAaA,EAAE,UAC1E,CACE,EAAGF,EAAKE,GAAM,CACZ,GAAIA,EACF,OAAQnL,EAAE,SAAQ,CAChB,KAAK8V,GAAG,KACN,MAAO,CAAE,KAAM,EAAG,UAAW,eAAe,EAC9C,KAAKA,GAAG,MACN,MAAO,CAAE,KAAM,GAAG3K,EAAE,KAAK,KAAM,UAAW,mBAAmB,EAC/D,QACE,MAAO,CAAE,KAAM,GAAGA,EAAE,MAAQ,CAAC,KAAM,UAAW,kBAAkB,CAC1E,CACI,MAAO,CAAA,CACT,EACA,MAAO,CACL,UAAW1B,EACX,UAAWD,EACX,SAAU1B,EACV,gBAAiBgC,EACjB,oBAAqBkB,EACrB,aAAc,CAACG,EAAGC,EAAGf,KAAM,CACzB,MAAMI,EAAI,SAAS,cAAc,KAAK,EAAGD,EAAIpJ,GAAG3B,CAAC,GAAG,sBAAqB,EACzEgL,EAAE,aAAa,KAAM,oBAAoB,EACzC,MAAMY,EAAK1S,EAAE,OAAO,YAAcA,EAAE,MAAQ,SAAS,KACrD0S,EAAG,OAAOZ,CAAC,EACX,MAAMe,GAAIP,EAAET,CAAC,EAAGiB,EAAKvK,EAAE,MAAM,UAAY,OAAO,KAAKD,CAAC,EAAE,OACrD0K,GAAM,CAAC,gBAAiB,eAAgB,YAAa,cAAc,EAAE,SAASA,CAAC,CACxF,EAAU,OAAO,KAAK1K,CAAC,EAAGyK,EAAIsK,GACtB5K,EACA,CACE,GAAGf,GACH,OAAQ,GACR,MAAO,CAAE,QAAS,EAAG,SAAU,WAAY,GAAGmB,EAAC,CACzD,EACQ,OAAO,YAAYC,EAAG,IAAKE,GAAM,CAACA,EAAG1K,EAAE0K,CAAC,CAAC,CAAC,CAAC,CACnD,EACMR,GAAK,OAASO,EAAE,WAAaP,EAAE,YAAa8K,GAAGvK,EAAGjB,CAAC,EAAG5C,EAAE,MAAQ6D,EAAE,IAAI,sBAAqB,EAAIuK,GAAG,KAAMxL,CAAC,EAAGY,EAAG,YAAYZ,CAAC,CAC9H,CACJ,CACA,EAAGyL,GAAK,CACN,CAAE,KAAM,aAAc,IAAK,CAAC,OAAQ,WAAY,QAAQ,CAAC,EACzD,CAAE,KAAM,aAAc,IAAK,CAAC,aAAc,WAAY,SAAU,WAAW,CAAC,EAC5E,CAAE,KAAM,cAAe,IAAK,CAAC,aAAc,WAAY,SAAU,WAAW,CAAC,EAC7E,CAAE,KAAM,WAAY,IAAK,CAAC,OAAQ,WAAY,aAAc,QAAQ,CAAC,EACrE,CAAE,KAAM,aAAc,IAAK,CAAC,OAAQ,WAAY,aAAc,QAAQ,CAAC,EACvE,CAAE,KAAM,gBAAiB,IAAK,CAAC,aAAc,OAAQ,WAAY,SAAU,WAAW,CAAC,EACvF,CAAE,KAAM,MAAO,IAAK,CAAC,WAAY,QAAQ,CAAC,EAC1C,CAAE,KAAM,sBAAuB,IAAK,CAAC,WAAY,aAAc,QAAQ,CAAC,EACxE,CAAE,KAAM,qBAAsB,IAAK,CAAC,WAAY,aAAc,SAAU,WAAW,CAAC,EACpF,CAAE,KAAM,eAAgB,IAAK,CAAC,aAAc,QAAQ,CAAC,EACrD,CAAE,KAAM,gBAAiB,IAAK,CAAC,aAAc,QAAQ,CAAC,EACtD,CAAE,KAAM,uBAAwB,IAAK,CAAC,aAAc,QAAQ,CAAC,EAC7D,CAAE,KAAM,sBAAuB,IAAK,CAAC,aAAc,QAAQ,CAAC,EAC5D,CAAE,KAAM,sBAAuB,IAAK,CAAC,WAAY,OAAQ,QAAQ,CAAC,EAClE,CAAE,KAAM,uBAAwB,IAAK,CAAC,WAAY,OAAQ,QAAQ,CAAC,EACnE,CAAE,KAAM,wBAAyB,IAAK,CAAC,WAAY,OAAQ,QAAQ,CAAC,EACpE,CAAE,KAAM,yBAA0B,IAAK,CAAC,WAAY,OAAQ,QAAQ,CAAC,EACrE,CAAE,KAAM,wBAAyB,IAAK,CAAC,WAAY,OAAQ,QAAQ,CAAC,EACpE,CAAE,KAAM,yBAA0B,IAAK,CAAC,WAAY,OAAQ,QAAQ,CAAC,EACrE,CAAE,KAAM,QAAS,IAAK,CAAC,WAAY,OAAQ,QAAQ,CAAC,EACpD,CAAE,KAAM,UAAW,IAAK,CAAC,WAAY,OAAQ,QAAQ,CAAC,EACtD,CAAE,KAAM,QAAS,IAAK,CAAC,WAAY,aAAc,QAAQ,CAAC,EAC1D,CAAE,KAAM,OAAQ,IAAK,CAAC,WAAY,aAAc,SAAU,WAAW,CAAC,EACtE,CAAE,KAAM,iBAAkB,IAAK,CAAC,QAAQ,CAAC,EACzC,CAAE,KAAM,iBAAkB,IAAK,CAAC,QAAQ,CAAC,EACzC,CAAE,KAAM,kBAAmB,IAAK,CAAC,WAAY,QAAQ,CAAC,EACtD,CAAE,KAAM,iBAAkB,IAAK,CAAC,WAAY,QAAQ,CAAC,EACrD,CAAE,KAAM,eAAgB,IAAK,CAAC,MAAM,CAAC,EACrC,CAAE,KAAM,sBAAuB,IAAK,CAAC,WAAY,OAAQ,QAAQ,CAAC,EAClE,CAAE,KAAM,eAAgB,IAAK,CAAC,WAAY,OAAQ,QAAQ,CAAC,EAC3D,CAAE,KAAM,eAAgB,IAAK,CAAC,MAAM,CAAC,EACrC,CAAE,KAAM,gBAAiB,IAAK,CAAC,MAAM,CAAC,EACtC,CAAE,KAAM,aAAc,IAAK,CAAC,aAAc,QAAQ,CAAC,EACnD,CAAE,KAAM,cAAe,IAAK,CAAC,OAAQ,QAAQ,CAAC,EAC9C,CAAE,KAAM,aAAc,IAAK,CAAC,QAAQ,CAAC,EACrC,CAAE,KAAM,SAAU,IAAK,CAAC,WAAY,QAAQ,CAAC,EAC7C,CAAE,KAAM,UAAW,IAAK,CAAC,QAAQ,CAAC,EAClC,CAAE,KAAM,YAAa,IAAK,CAAC,SAAU,YAAY,CAAC,EAClD,CAAE,KAAM,qBAAsB,IAAK,CAAC,SAAU,MAAM,CAAC,EACrD,CAAE,KAAM,uBAAwB,IAAK,CAAC,SAAU,MAAM,CAAC,EACvD,CAAE,KAAM,cAAe,IAAK,CAAC,MAAM,CAAC,CACtC,EAAGC,GAAK,CAAC,CAAE,KAAM,SAAS,EAAI,CAAE,KAAM,YAAY,EAAI,CAAE,KAAM,YAAY,EAAI,CAAE,KAAM,UAAU,CAAE,EAAGC,GAAK,CACxG,IAAK,IAAMF,GACX,UAAW,IAAMA,GAAG,OAAQ,GAAM,EAAE,IAAI,SAAS,YAAY,CAAC,EAC9D,MAAO,IAAMC,GACb,WAAY,IAAMD,GAAG,OAAQ,GAAM,EAAE,IAAI,SAAS,MAAM,CAAC,EACzD,OAAQ,IAAMA,GAAG,OAAQ,GAAM,EAAE,IAAI,SAAS,QAAQ,CAAC,EACvD,SAAU,IAAMA,GAAG,OAAQ,GAAM,EAAE,IAAI,SAAS,UAAU,CAAC,EAC3D,KAAM,IAAMA,GAAG,OAAQ,GAAM,EAAE,IAAI,SAAS,MAAM,CAAC,EACnD,OAAQ,IAAMA,GAAG,OAAQ,GAAM,EAAE,IAAI,SAAS,QAAQ,CAAC,EACvD,SAAU,IAAMA,GAAG,OAAQ,GAAM,EAAE,IAAI,SAAS,WAAW,CAAC,CAC9D,EAAG1G,GAAK,CAAC,EAAG,EAAG/P,IAAM,CACnB,MAAM9G,EAAI,CAAA,EACV,OAAOyd,GAAG,CAAC,EAAC,EAAG,QAAS/Y,GAAM,CAC5B,EAAEA,EAAE,IAAI,GAAK1E,EAAE,KAAK0E,EAAE,IAAI,CAC5B,CAAC,EAAGoC,GAAG,QAAUA,EAAE,QAASpC,GAAM,CAChCA,EAAE,MAAQ1E,EAAE,KAAK0E,EAAE,IAAI,CACzB,CAAC,EAAG1E,CACN,EAAGyV,GAAM,GAAM,CACb,MAAM,EAAIpH,EAAE,IAAOrO,GAAM,EAAE,MAAQA,EAAI,EAAE,MAAM,KAAO,EAAE,MAAM,MAAQ,EAAE,EAAG8G,EAAIuH,EAAE,IAAOrO,GAAM,EAAE,MAAQA,EAAI,EAAE,MAAM,cAAgB,EAAE,MAAM,iBAAmB,EAAE,EACjK,MAAO,CAAE,eAAgB,EAAG,eAAgB,CAAC,CAAC,EAAE,MAAO,eAAgB8G,CAAC,CAC1E,EAAG4P,GAAK,CAAC,EAAG,EAAG5P,IAAM,CACnB,KAAM,CAAE,eAAgB9G,EAAG,YAAa0E,CAAC,EAAK8L,GAAG,CAAC,EAAGtI,EAAIlB,EAAEJ,GAAGI,EAAC,EAAItC,EAAE,MAAM,QAAQ,CAAC,EAAG2C,EAAImH,EAAE,CAAC,CAAE,MAAO3C,GAAG3D,CAAC,EAAG,KAAM0D,GAAG1D,CAAC,CAAC,CAAE,CAAC,EAAGI,EAAKwI,GAAM,CACxI,MAAMC,EAAI,CACR,MAAOvF,GAAGtD,CAAC,EACX,QAASuD,GAAGvD,CAAC,EACb,QAAS,CACf,EACI,OAAOlI,EAAE,MAAM,QAAU,CAAC+Q,EAAED,CAAC,EAAGC,EAAED,CAAC,CAAC,EAAIC,EAAED,CAAC,CAC7C,EAAGvI,EAAI4F,GAAG,CACR,MAAO7F,EAAE,OAAO,EAChB,QAASA,EAAE,SAAS,EACpB,QAASA,EAAE,SAAS,CACxB,CAAG,EACDgJ,GACEtR,EACA,CAAC8Q,EAAGC,IAAM,CACRD,EAAE,UAAYC,EAAE,UAAYxI,EAAE,MAAQD,EAAE,OAAO,EAAGC,EAAE,QAAUD,EAAE,SAAS,EAAGC,EAAE,QAAUD,EAAE,SAAS,EACrG,EACA,CAAE,KAAM,EAAE,CACd,EACE,MAAM4G,EAAIb,EAAE,CACV,IAAK,IAAM,EAAE,mBACb,IAAMyC,GAAM,CACV,CAAC,EAAE,UAAY,CAAC,EAAE,UAAY,EAAE,8BAA+BA,CAAC,CAClE,CACJ,CAAG,EAAG3B,EAAId,EACN,IAAOyC,GAAMzJ,EAAE,MAAMyJ,CAAC,EAAIzJ,EAAE,MAAMyJ,CAAC,EAAE,MAAQ,CACjD,EAAKD,EAAIxC,EACL,IAAOyC,GAAMzJ,EAAE,MAAMyJ,CAAC,EAAIzJ,EAAE,MAAMyJ,CAAC,EAAE,KAAO,CAChD,EACE,OAAOQ,GACLpC,EACA,CAAC4B,EAAGC,IAAM,CACRjK,GAAK,KAAK,UAAUgK,GAAK,CAAA,CAAE,IAAM,KAAK,UAAUC,GAAK,CAAA,CAAE,GAAKjK,EAAC,CAC/D,EACA,CAAE,KAAM,EAAE,CACd,EAAK,CACD,UAAWO,EACX,KAAMkB,EACN,WAAY2G,EACZ,MAAOC,EACP,KAAM0B,EACN,MAAO3I,CACX,CACA,EAAGyT,GAAK,CAAC,EAAG,IAAM,CAChB,KAAM,CACJ,wBAAyB7U,EACzB,oBAAqB9G,EACrB,YAAa0E,EACb,mBAAoBwD,EACpB,YAAab,EACb,UAAWiB,EACX,eAAgBC,CACpB,EAAMiI,GAAG,CAAC,EAAG,CAAE,WAAYtB,GAAMgE,GAAG,CAAC,EAAG/D,EAAIX,EAAE,IAAI,EAAGqC,EAAIrC,EAAE5H,GAAmB,IAAI,KAAQS,EAAE,MAAM,QAAQ,CAAC,EAAGyJ,EAAK+D,GAAM,CACrH,CAACA,EAAE,SAAW,EAAE,kBAAoB1F,EAAE,MAAQ0F,EAAE,MAClD,EAAG9D,EAAI,IAAM,CACX5B,EAAE,MAAQ,IACZ,EAAG6B,EAAK6D,GAAM,MAAM,QAAQ,EAAE,KAAK,GAAKtM,EAAE,MAAM,SAAW,EAAE,MAAM,CAAC,GAAK4G,EAAE,MAAQ0F,EAAI3J,GAAGiE,EAAE,MAAO,EAAE,MAAM,CAAC,CAAC,EAAIrE,GAAGqE,EAAE,MAAO,EAAE,MAAM,CAAC,CAAC,EAAI,GAAI8B,EAAI,CAAC4D,EAAGrD,IAAM,CAC3J,MAAMC,EAAI,IAAM,EAAE,MAAQD,EAAI,EAAE,MAAM,CAAC,GAAK,KAAO,EAAE,MAAM,CAAC,EAAI,KAAMI,GAAI,EAAE,OAAS,MAAM,QAAQ,EAAE,KAAK,EAAIH,EAAC,EAAK,KACpH,OAAOzG,GAAGhE,EAAE6N,EAAE,KAAK,EAAGjD,EAAC,CACzB,EAAGjB,EAAKkE,GAAM,CACZ,MAAMrD,EAAI,MAAM,QAAQ,EAAE,KAAK,EAAI,EAAE,MAAM,CAAC,EAAI,KAChD,OAAOqD,EAAI,CAAC/J,GAAGqE,EAAE,OAAS,KAAMqC,CAAC,EAAI,EACvC,EAAGxC,EAAI,CAAC6F,EAAGrD,EAAI,MAAQjJ,EAAE,MAAM,SAAW,EAAE,aAAe,MAAM,QAAQ,EAAE,KAAK,GAAK,EAAE,MAAM,SAAW,EAAI,EAAE,iBAAmB,CAACsM,EAAE,QAAU,GAAK7J,GAAGhE,EAAE6N,EAAE,KAAK,EAAG,EAAE,MAAMrD,EAAI,EAAI,CAAC,CAAC,EAAIjJ,EAAE,MAAM,QAAU0I,EAAE4D,EAAGrD,CAAC,GAAKb,EAAEa,CAAC,GAAKxG,GAAG6J,EAAE,MAAO,MAAM,QAAQ,EAAE,KAAK,EAAI,EAAE,MAAM,CAAC,EAAI,IAAI,GAAK7D,EAAEQ,CAAC,EAAI,GAAIvC,EAAI,CAAC4F,EAAGrD,IAAM,CAC/S,GAAI,MAAM,QAAQ,EAAE,KAAK,GAAK,EAAE,MAAM,CAAC,GAAK,EAAE,MAAM,SAAW,EAAG,CAChE,MAAMC,EAAIzG,GAAG6J,EAAE,MAAO1F,EAAE,KAAK,EAC7B,OAAOqC,EAAItG,GAAG,EAAE,MAAM,CAAC,EAAG2J,EAAE,KAAK,GAAKpD,EAAI3G,GAAG,EAAE,MAAM,CAAC,EAAG+J,EAAE,KAAK,GAAKpD,CACvE,CACA,MAAO,EACT,EAAGP,EAAK2D,GAAM,CAAC,EAAE,OAAS,EAAE,iBAAmB,CAACA,EAAE,QAAU,GAAKtM,EAAE,MAAM,QAAU,EAAE,WAAa,MAAM,QAAQ,EAAE,KAAK,EAAIyC,GAAG6J,EAAE,MAAO,EAAE,MAAM,CAAC,EAAI,EAAE,MAAM,CAAC,EAAIhE,EAAE,KAAK,EAAI,GAAK7Q,EAAE,MAAM,SAAW,MAAM,QAAQ,EAAE,KAAK,EAAI,EAAE,MAAM,KAAMwR,GAAMxG,GAAGwG,EAAGqD,EAAE,KAAK,CAAC,EAAI7J,GAAG6J,EAAE,MAAO,EAAE,MAAQ,EAAE,MAAQhE,EAAE,KAAK,EAAGD,EAAKiE,GAAM,CACtT,GAAItM,EAAE,MAAM,WAAa,EAAE,WAAY,CACrC,GAAI4G,EAAE,MAAO,CACX,GAAI,EAAE,iBAAmB,CAAC0F,EAAE,QAAS,MAAO,GAC5C,MAAMrD,EAAIxD,GAAGmB,EAAE,MAAO,CAAC5G,EAAE,MAAM,SAAS,EAAGkJ,EAAIrF,GAAGpF,EAAEmI,EAAE,KAAK,EAAG,EAAE,SAAS,EACzE,OAAO,EAAE,WAAanE,GAAGyG,EAAE,CAAC,EAAGzK,EAAE6N,EAAE,KAAK,CAAC,EAAI7J,GAAGwG,EAAGxK,EAAE6N,EAAE,KAAK,CAAC,CAC/D,CACA,MAAO,EACT,CACA,MAAO,EACT,EAAG1D,EAAK0D,GAAM,CACZ,GAAItM,EAAE,MAAM,WAAa,EAAE,WAAY,CACrC,GAAI4G,EAAE,MAAO,CACX,MAAMqC,EAAIxD,GAAGmB,EAAE,MAAO,CAAC5G,EAAE,MAAM,SAAS,EACxC,GAAI,EAAE,iBAAmB,CAACsM,EAAE,QAAS,MAAO,GAC5C,MAAMpD,EAAIrF,GAAGpF,EAAEmI,EAAE,KAAK,EAAG,EAAE,SAAS,EACpC,OAAO,EAAE,WAAajE,GAAG2J,EAAE,MAAOpD,EAAE,CAAC,CAAC,GAAK3G,GAAG+J,EAAE,MAAOpD,EAAE,CAAC,CAAC,EAAIvG,GAAG2J,EAAE,MAAO1F,EAAE,KAAK,GAAKrE,GAAG+J,EAAE,MAAOrD,CAAC,CACtG,CACA,MAAO,EACT,CACA,MAAO,EACT,EAAGO,EAAM8C,GAAM,CACb,GAAItM,EAAE,MAAM,WAAa,EAAE,WAAY,CACrC,GAAI4G,EAAE,MAAO,CACX,GAAI,EAAE,iBAAmB,CAAC0F,EAAE,QAAS,MAAO,GAC5C,MAAMrD,EAAIpF,GAAGpF,EAAEmI,EAAE,KAAK,EAAG,EAAE,SAAS,EACpC,OAAO,EAAE,WAAanE,GAAGwG,EAAE,CAAC,EAAGqD,EAAE,KAAK,EAAI7J,GAAGmE,EAAE,MAAO0F,EAAE,KAAK,CAC/D,CACA,MAAO,EACT,CACA,MAAO,EACT,EAAGpE,EAAKoE,GAAMzJ,GAAG,EAAE,MAAO+D,EAAE,MAAO0F,EAAE,KAAK,EAAGnE,EAAI,IAAM,EAAE,WAAa,MAAM,QAAQ,EAAE,kBAAkB,EAAI,CAAC,CAAC,EAAE,mBAAmB,CAAC,EAAI,GAAIsB,EAAK,IAAM,EAAE,UAAYpJ,GAAG,EAAE,kBAAkB,EAAI,GAAIqJ,EAAK4C,GAAM,CAC7M,GAAI,EAAE,WAAY,MAAO,GACzB,MAAMrD,EAAIjJ,EAAE,MAAM,QAAU,CAACyG,EAAE6F,CAAC,GAAK,CAAC7F,EAAE6F,EAAG,EAAE,EAAI,GACjD,MAAO,CAAC3F,EAAE2F,EAAE,KAAK,GAAK,CAAC3D,EAAE2D,CAAC,GAAK,EAAE,CAACA,EAAE,SAAW,EAAE,kBAAoBrD,CACvE,EAAGU,GAAK2C,GAAMtM,EAAE,MAAM,QAAU,EAAE,UAAYmI,EAAC,GAAMQ,EAAE2D,CAAC,EAAI,GAAK3D,EAAE2D,CAAC,EAAG1C,GAAM0C,GAAM3M,EAAE,MAAQ0B,GAAGiL,EAAE,MAAOvM,EAAE,MAAM,SAAS,EAAI,GAAI8J,GAAMyC,GAAM,CAC5I,MAAMrD,EAAItC,EAAE2F,EAAE,KAAK,EACnB,OAAOrD,IAAM,OAAOtJ,EAAE,OAAS,WAAa,CAACA,EAAE,MAAM2M,EAAE,MAAOrD,CAAC,EAAI,CAACtJ,EAAE,MAAM,QAAQ,kBACtF,EAAGmK,EAAKwC,GAAM,OAAO3M,EAAE,OAAS,WAAaA,EAAE,MAAM2M,EAAE,KAAK,EAAI3M,EAAE,MAAM,UAAU,SAAS2M,EAAE,MAAM,OAAM,CAAE,EAAGvC,EAAKuC,IAAOtM,EAAE,MAAM,SAAW,EAAE,cAAgB,EAAEzB,EAAE,MAAM,MAAQ,IAAM+N,EAAE,UAAY7C,EAAE,GAAM,EAAE,CAAC6C,EAAE,SAAW,EAAE,kBAAoB,CAAC3D,EAAE2D,CAAC,EAAIpE,EAAEoE,CAAC,EAAI,GAAItC,EAAMsC,GAAM,CAChR,GAAI,MAAM,QAAQ,EAAE,KAAK,GAAK,EAAE,MAAM,SAAW,EAAG,CAClD,KAAM,CAAE,OAAQrD,EAAG,MAAOC,CAAC,EAAK3D,GAAG,CAACvF,EAAE,MAAM,SAAU,EAAE,MAAM,CAAC,CAAC,EAChE,OAAOwC,GAAG8J,EAAE,MAAOrD,CAAC,GAAKrG,GAAG0J,EAAE,MAAOpD,CAAC,CACxC,CACA,MAAO,EACT,EAAGe,EAAKqC,GAAM,CACZ,GAAI,MAAM,QAAQ,EAAE,KAAK,GAAK,EAAE,MAAM,SAAW,EAAG,CAClD,KAAM,CAAE,OAAQrD,EAAG,MAAOC,CAAC,EAAK3D,GAAG,CAACvF,EAAE,MAAM,SAAU,EAAE,MAAM,CAAC,CAAC,EAChE,OAAO6C,GAAG,CAACoG,EAAGC,CAAC,EAAG,EAAE,MAAM,CAAC,EAAGoD,EAAE,KAAK,CACvC,CACA,MAAO,EACT,EAAGpC,GAAKoC,GAAMtM,EAAE,MAAM,UAAYA,EAAE,MAAM,UAAYA,EAAE,MAAM,UAAYA,EAAE,MAAM,UAAYA,EAAE,MAAM,SAAWgK,EAAGsC,CAAC,GAAKrC,EAAEqC,CAAC,EAAItM,EAAE,MAAM,SAAWgK,EAAGsC,CAAC,EAAIrC,EAAEqC,CAAC,EAAI,GAAInD,EAAKmD,GAAM,CAChL,KAAM,CAAE,aAAcrD,EAAG,WAAYC,CAAC,EAAKoB,EAAEgC,CAAC,EAAGjD,GAAIrJ,EAAE,MAAM,QAAUiJ,GAAKC,EAAI,GAChF,MAAO,CACL,gBAAiB,CAACoD,EAAE,QACpB,YAAa,CAAC,EAAE,UAAY,EAAE,CAACA,EAAE,SAAW,EAAE,kBAAoB,CAAC3F,EAAE2F,EAAE,KAAK,GAAK,CAACpC,GAAEoC,CAAC,EACrF,kBAAmB3F,EAAE2F,EAAE,KAAK,GAAKpC,GAAEoC,CAAC,EACpC,mBAAoB,CAACzC,GAAGyC,CAAC,IAAM1C,GAAG0C,CAAC,GAAKxC,EAAEwC,CAAC,IAAM,CAAC3C,GAAE2C,CAAC,GAAK,CAACjD,IAAK,CAACG,EAAG8C,CAAC,GAAK,EAAEvC,EAAEuC,CAAC,GAAK,EAAE,aAAe,CAACpD,EACtG,0BAA2B,CAACW,GAAGyC,CAAC,IAAM1C,GAAG0C,CAAC,GAAKxC,EAAEwC,CAAC,IAAM3C,GAAE2C,CAAC,EAC3D,UAAW,CAAC,EAAE,SAAW7J,GAAG6J,EAAE,MAAOhE,EAAE,KAAK,GAAKgE,EAAE,QACnD,WAAY/J,GAAG+J,EAAE,MAAOhE,EAAE,KAAK,EAC/B,aAAc3F,GAAG2J,EAAE,MAAOhE,EAAE,KAAK,CACvC,CACE,EAAGiB,EAAK+C,IAAO,CACb,gBAAiB3C,GAAE2C,CAAC,EACpB,eAAgB5C,EAAE4C,CAAC,CACvB,GAAMhD,EAAKgD,GAAM,CACb,GAAI,EAAE,OAAS,CAAC,MAAM,QAAQ,EAAE,KAAK,EAAG,CACtC,MAAMrD,EAAIpF,GAAG,EAAE,MAAO,EAAE,SAAS,EACjC,MAAO,CACL,GAAG2G,EAAE8B,CAAC,EACN,gBAAiB7J,GAAGwG,EAAE,CAAC,EAAGqD,EAAE,KAAK,EACjC,cAAe7J,GAAGwG,EAAE,CAAC,EAAGqD,EAAE,KAAK,EAC/B,uBAAwB3J,GAAG2J,EAAE,MAAOrD,EAAE,CAAC,CAAC,GAAK1G,GAAG+J,EAAE,MAAOrD,EAAE,CAAC,CAAC,CACrE,CACI,CACA,MAAO,CACL,GAAGuB,EAAE8B,CAAC,CACZ,CACE,EAAGnC,GAAMmC,GAAM,CACb,GAAI,EAAE,OAAS,MAAM,QAAQ,EAAE,KAAK,EAAG,CACrC,MAAMrD,EAAIpF,GAAG,EAAE,MAAM,CAAC,EAAG,EAAE,SAAS,EAAGqF,EAAI,EAAE,MAAM,CAAC,EAAIrF,GAAG,EAAE,MAAM,CAAC,EAAG,EAAE,SAAS,EAAI,CAAA,EACtF,MAAO,CACL,GAAG2G,EAAE8B,CAAC,EACN,gBAAiB7J,GAAGwG,EAAE,CAAC,EAAGqD,EAAE,KAAK,GAAK7J,GAAGyG,EAAE,CAAC,EAAGoD,EAAE,KAAK,EACtD,cAAe7J,GAAGwG,EAAE,CAAC,EAAGqD,EAAE,KAAK,GAAK7J,GAAGyG,EAAE,CAAC,EAAGoD,EAAE,KAAK,EACpD,uBAAwB3J,GAAG2J,EAAE,MAAOrD,EAAE,CAAC,CAAC,GAAK1G,GAAG+J,EAAE,MAAOrD,EAAE,CAAC,CAAC,GAAKtG,GAAG2J,EAAE,MAAOpD,EAAE,CAAC,CAAC,GAAK3G,GAAG+J,EAAE,MAAOpD,EAAE,CAAC,CAAC,EACvG,kBAAmBvG,GAAG2J,EAAE,MAAOrD,EAAE,CAAC,CAAC,GAAK1G,GAAG+J,EAAE,MAAOpD,EAAE,CAAC,CAAC,CAChE,CACI,CACA,MAAO,CACL,GAAGsB,EAAE8B,CAAC,CACZ,CACE,EAAGhC,EAAKgC,GAAM,CACZ,MAAMrD,EAAI1K,EAAE,MAAM,MAAQ,EAAI+N,EAAE,SAAW7F,EAAE6F,CAAC,GAAK7C,EAAE,EAAKhD,EAAE6F,CAAC,GAAK7C,EAAE,EAAIP,EAAI3K,EAAE,MAAM,MAAQ,EAAI+N,EAAE,SAAW7F,EAAE6F,EAAG,EAAE,GAAK7C,EAAE,EAAKhD,EAAE6F,EAAG,EAAE,GAAK7C,EAAE,EAC9I,MAAO,CAAE,aAAcR,EAAG,WAAYC,CAAC,CACzC,EAAGqB,EAAM+B,GAAM,CACb,KAAM,CAAE,aAAcrD,EAAG,WAAYC,CAAC,EAAKoB,EAAEgC,CAAC,EAC9C,MAAO,CACL,gBAAiBrD,EACjB,cAAeC,EACf,kBAAmBa,EAAEuC,CAAC,EACtB,eAAgB7J,GAAG6J,EAAE,MAAO1F,EAAE,KAAK,GAAK,CAACqC,GAAK,CAACC,GAAK,CAAC,EAAE,WACvD,qBAAsBxC,EAAE4F,EAAG,EAAE,EAC7B,mBAAoB5F,EAAE4F,EAAG,EAAE,CACjC,CACE,EAAG9B,EAAK8B,IAAO,CACb,GAAG/B,EAAG+B,CAAC,EACP,oBAAqB1D,EAAE0D,CAAC,EACxB,0BAA2B9C,EAAG8C,CAAC,EAC/B,wBAAyBjE,EAAEiE,CAAC,CAChC,GAAM7B,GAAK6B,GAAMtM,EAAE,MAAM,QAAUA,EAAE,MAAM,UAAYwK,EAAE8B,CAAC,EAAI,EAAE,UAAY,CAAE,GAAG/C,EAAE+C,CAAC,EAAG,GAAG/B,EAAG+B,CAAC,GAAM,EAAE,WAAanC,GAAGmC,CAAC,EAAI/B,EAAG+B,CAAC,EAAI,EAAE,WAAahD,EAAEgD,CAAC,EAAI/C,EAAE+C,CAAC,EAC1J,MAAO,CACL,aAAc/D,EACd,eAAgBC,EAChB,gBAAkB8D,GAAM,EAAE,iBAAmB,CAACA,EAAE,QAAU,GAAK,CAC7D,GAAGnD,EAAEmD,CAAC,EACN,GAAG7B,GAAE6B,CAAC,EACN,CAAC,EAAE,SAAW,EAAE,SAASA,EAAE,MAAO,EAAE,kBAAkB,EAAI,EAAE,EAAG,GAC/D,GAAGnQ,EAAE,MAAM,cAAgB,CAAA,CACjC,CACA,CACA,EAAGwO,GAAM,GAAM,CACb,KAAM,CAAE,iBAAkB,EAAG,eAAgBpM,EAAG,UAAW9G,EAAG,oBAAqB0E,CAAC,EAAK8L,GAAG,CAAC,EAAGtI,EAAKmK,GAAMrS,EAAE,MAAM,cAAgB,OAAOA,EAAE,MAAM,eAAiB,WAAaA,EAAE,MAAM,cAAcgH,EAAEqL,CAAC,CAAC,EAAI,CAAC,CAAC1I,GAAG0I,EAAGrS,EAAE,MAAM,aAAa,EAAI,GAAIqH,EAAKgL,GAAMrS,EAAE,MAAM,QAAU,EAAE,WAAa4L,GAAGyG,CAAC,EAAIzG,GAAG5L,EAAE,MAAM,OAAO,EAAIkL,GAAGmH,EAAGrS,EAAE,MAAM,OAAO,EAAI,GAAIsI,EAAK+J,GAAMrS,EAAE,MAAM,QAAU,EAAE,WAAa4L,GAAGyG,CAAC,EAAIzG,GAAG5L,EAAE,MAAM,OAAO,EAAI8K,GAAGuH,EAAGrS,EAAE,MAAM,OAAO,EAAI,GAAIuI,EAAK8J,GAAM,CAC1c,MAAMC,EAAIjL,EAAEgL,CAAC,EAAGE,EAAKjK,EAAE+J,CAAC,EAAGG,EAAItK,EAAEmK,CAAC,EAAGX,GAAI,EAAE,MAAM,OAAO,IAAKoB,GAAO,CAACA,CAAE,EAAE,SAASjH,GAAGwG,CAAC,CAAC,EAAGP,EAAI,EAAE,iBAAiB,OAAS,EAAE,iBAAiB,KAAMgB,GAAO,CAACA,IAAO4K,GAAGrL,CAAC,CAAC,EAAI,GAAIR,EAAId,EAAEsB,CAAC,EAAGK,EAAK9G,GAAGyG,CAAC,EAAGQ,GAAI5E,GAAG,EAAE,UAAWyE,CAAE,EAC3N,MAAO,EAAEJ,GAAKC,GAAMC,GAAKd,IAAKmB,IAAKf,GAAKD,EAC1C,EAAG3C,EAAI,CAACmD,EAAGC,IAAMxH,GAAG,GAAG0B,GAAGxM,EAAE,MAAM,QAASqS,EAAGC,CAAC,CAAC,GAAKtH,GAAG,GAAGwB,GAAGxM,EAAE,MAAM,QAASqS,EAAGC,CAAC,CAAC,EAAGnD,EAAI,CAACkD,EAAGC,IAAMpH,GAAG,GAAGsB,GAAGxM,EAAE,MAAM,QAASqS,EAAGC,CAAC,CAAC,GAAKtH,GAAG,GAAGwB,GAAGxM,EAAE,MAAM,QAASqS,EAAGC,CAAC,CAAC,EAAGzB,EAAI,CAACwB,EAAGC,EAAGC,IAAO,CAC3L,IAAIC,EAAI,GACR,OAAOxS,EAAE,MAAM,SAAWuS,GAAMpD,EAAEkD,EAAGC,CAAC,IAAME,EAAI,IAAKxS,EAAE,MAAM,SAAW,CAACuS,GAAMrD,EAAEmD,EAAGC,CAAC,IAAME,EAAI,IAAKA,CACtG,EAAG1B,EAAI,CAACuB,EAAGC,EAAGC,EAAIC,IAAM,CACtB,IAAIC,GAAI,GACR,OAAOD,IAAMxS,EAAE,MAAM,SAAWA,EAAE,MAAM,SAAWA,EAAE,MAAM,SAAWA,EAAE,MAAM,QAAUyS,GAAI5B,EAAEwB,EAAGC,EAAGC,CAAE,GAAKvS,EAAE,MAAM,SAAWkP,EAAEmD,EAAGC,CAAC,GAAKtS,EAAE,MAAM,SAAWmP,EAAEkD,EAAGC,CAAC,KAAOG,GAAI,IAAMA,GAAI,GAAIA,EAC7L,EAAG1B,EAAKsB,GAAM,MAAM,QAAQrS,EAAE,MAAM,YAAY,GAAK,CAACA,EAAE,MAAM,aAAa,OAAS,GAAKA,EAAE,MAAM,aAAe,CAAC2J,GAAG0I,EAAGrS,EAAE,MAAM,aAAc+J,GAAG,EAAE,YAAa,EAAE,UAAU,CAAC,EAAI,GAAIiH,EAAKqB,GAAM,CAAC9J,EAAE8J,CAAC,EAAGpB,EAAKoB,GAAMvL,EAAE,MAAM,gBAAkB,CAACmF,GAAG,CAAE,MAAOoG,EAAE,CAAC,EAAG,IAAKA,EAAE,CAAC,CAAC,CAAE,EAAE,KAAME,GAAOvB,EAAEuB,CAAE,CAAC,EAAI,GAAI5B,EAAK0B,GAAM,CAC9S,GAAIA,EAAG,CACL,MAAMC,EAAI1G,GAAGyG,CAAC,EACd,OAAOC,GAAK,CAAC,EAAE,UAAU,CAAC,GAAKA,GAAK,EAAE,UAAU,CAAC,CACnD,CACA,MAAO,EACT,EAAGtD,EAAI,CAACqD,EAAGC,IAAM,CAAC,EAAE,MAAM,QAAQD,CAAC,GAAKA,EAAEC,CAAC,IAAMxL,EAAE,MAAM,UAAYA,EAAE,MAAM,WAAa6J,EAAE0B,EAAEC,CAAC,CAAC,GAAIrD,EAAI,CAACoD,EAAGC,EAAGC,EAAK,IAAM,CACxH,GAAIvD,EAAEsD,EAAGC,CAAE,GAAK5B,EAAE0B,CAAC,EAAG,CACpB,MAAMG,EAAImL,GAAGtL,EAAGC,EAAEC,CAAE,CAAC,EAAGE,GAAIzG,GAAGsG,EAAEC,CAAE,EAAGF,CAAC,EAAGX,EAAIe,GAAE,SAAW,EAAI,EAAIA,GAAE,OAAQZ,GAAMb,EAAEa,CAAC,CAAC,EAAE,OAAQC,EAAI,KAAK,IAAIU,CAAC,GAAK1L,EAAE,MAAM,eAAiB,EAAI4K,GACjJ,GAAI5K,EAAE,MAAM,UAAYA,EAAE,MAAM,SAC9B,OAAOgL,GAAK,CAAChL,EAAE,MAAM,UAAYgL,GAAK,CAAChL,EAAE,MAAM,SACjD,GAAIA,EAAE,MAAM,SAAU,OAAOgL,GAAK,CAAChL,EAAE,MAAM,SAC3C,GAAIA,EAAE,MAAM,SAAU,OAAOgL,GAAK,CAAChL,EAAE,MAAM,QAC7C,CACA,MAAO,EACT,EAAGoK,EAAI,IAAM,CAAC,EAAE,kBAAoB,EAAE,aAAe,EAAE,YAAc,EAAE,qBAAsBN,EAAKyB,GAAM,MAAM,QAAQA,CAAC,EAAI,CAACA,EAAE,CAAC,EAAI7E,GAAG6E,EAAE,CAAC,CAAC,EAAI,KAAMA,EAAE,CAAC,EAAI7E,GAAG6E,EAAE,CAAC,CAAC,EAAI,IAAI,EAAI7E,GAAG6E,CAAC,EAAGlB,EAAI,CAACkB,EAAGC,EAAGC,IAAOF,EAAE,KACtMG,GAAM,CAACA,EAAE,QAAUhH,GAAG8G,CAAC,GAAKE,EAAE,UAAY,IAAM,GAAK,CAACA,EAAE,UAAY/G,GAAG6G,CAAC,GAAK,CAACE,EAAE,QAAUhH,GAAG8G,CAAC,CACnG,GAAOC,EAAIR,EAAK,CAACM,EAAGC,EAAGC,IAAO,CAC1B,KAAM,CAACC,EAAGC,EAAC,EAAIJ,EAAG,CAACX,EAAGI,CAAC,EAAIQ,EAC3B,MAAO,CAACnB,EAAEqB,EAAGd,EAAGa,CAAE,GAAK,CAACpB,EAAEsB,GAAGX,EAAGS,CAAE,GAAKA,CACzC,EAAG9B,EAAI,CAAC4B,EAAGC,IAAM,CACf,MAAMC,EAAK,MAAM,QAAQD,CAAC,EAAIA,EAAI,CAACA,CAAC,EACpC,OAAO,MAAM,QAAQ,EAAE,aAAa,EAAI,MAAM,QAAQ,EAAE,cAAc,CAAC,CAAC,EAAIP,EAAG,EAAE,cAAeQ,EAAIF,CAAC,EAAI,CAACE,EAAG,KAAMC,GAAMrB,EAAE,EAAE,cAAeqB,EAAGH,CAAC,CAAC,EAAIA,CACvJ,EAAG3B,EAAI,CAAC2B,EAAGC,IAAM,CACf,MAAMC,EAAK,MAAM,QAAQD,CAAC,EAAI,CAAC/G,GAAG+G,EAAE,CAAC,CAAC,EAAGA,EAAE,CAAC,EAAI/G,GAAG+G,EAAE,CAAC,CAAC,EAAI,MAAM,EAAI/G,GAAG+G,CAAC,EAAGE,EAAI,CAAC,EAAE,cAAcD,CAAE,EACnG,OAAOF,GAAKG,CACd,EAAGR,EAAK,CAACK,EAAGC,IAAM,EAAE,cAAgB,MAAM,QAAQ,EAAE,aAAa,EAAI7B,EAAE6B,EAAGD,CAAC,EAAI3B,EAAE4B,EAAGD,CAAC,EAAIC,EAAGL,EAAKI,GAAM,CACrG,IAAIC,EAAI,GACR,GAAI,CAACD,GAAKnB,EAAC,EAAI,MAAO,GACtB,MAAMqB,EAAK,CAACvS,EAAE,MAAM,SAAW,CAACA,EAAE,MAAM,QAAU4Q,EAAEyB,CAAC,EAAIA,EACzD,OAAQ,EAAE,SAAWrS,EAAE,MAAM,WAAasS,EAAI/E,GAC5C,EAAE,QACFvN,EAAE,MAAM,QACR,MACA8I,GAAGyJ,CAAE,EACLD,CACN,IAAS,EAAE,SAAWtS,EAAE,MAAM,WAAasS,EAAI/E,GACzC,EAAE,QACFvN,EAAE,MAAM,QACR,MACA8I,GAAGyJ,CAAE,EACLD,CACN,GAAQN,EAAGK,EAAGC,CAAC,CACb,EAAGJ,GAAKG,GAAM,CACZ,GAAI,CAAC,EAAE,YAAa,MAAO,GAC3B,IAAIC,EAAI,GACR,MAAMC,EAAKvL,EAAEqE,GAAGgH,CAAC,CAAC,EAClB,GAAIrS,EAAE,MAAM,SAAWA,EAAE,MAAM,QAAS,CACtC,MAAMwS,EAAIxL,EAAEqE,GAAGrL,EAAE,MAAM,OAAO,CAAC,EAAGyS,GAAIzL,EAAEqE,GAAGrL,EAAE,MAAM,OAAO,CAAC,EAC3D,OAAOkL,GAAGqH,EAAIC,CAAC,GAAK1H,GAAGyH,EAAIE,EAAC,GAAKzH,GAAGuH,EAAIC,CAAC,GAAKxH,GAAGuH,EAAIE,EAAC,CACxD,CACA,GAAIzS,EAAE,MAAM,QAAS,CACnB,MAAMwS,EAAIxL,EAAEqE,GAAGrL,EAAE,MAAM,OAAO,CAAC,EAC/BsS,EAAIpH,GAAGqH,EAAIC,CAAC,GAAKxH,GAAGuH,EAAIC,CAAC,CAC3B,CACA,GAAIxS,EAAE,MAAM,QAAS,CACnB,MAAMwS,EAAIxL,EAAEqE,GAAGrL,EAAE,MAAM,OAAO,CAAC,EAC/BsS,EAAIxH,GAAGyH,EAAIC,CAAC,GAAKxH,GAAGuH,EAAIC,CAAC,CAC3B,CACA,OAAOF,CACT,EAAGH,GAAK9D,EAAE,IAAOgE,GAAM,CAAC,EAAE,kBAAoB,EAAE,qBAAuB,GAAKJ,EAAEI,CAAC,CAAC,EAAGD,GAAK/D,EAAE,IAAOgE,GAAM,EAAE,YAAc,MAAM,QAAQA,CAAC,IAAMvL,EAAE,MAAM,SAAWpC,EAAE,MAAM,SAAW,CAAC2N,EAAE,OAAQE,GAAO,CAACL,GAAEK,CAAE,CAAC,EAAE,OAASL,GAAEG,CAAC,EAAI,EAAE,EAC9N,MAAO,CACL,WAAYrB,EACZ,aAAczI,EACd,yBAA0BuI,EAC1B,mBAAoBG,EACpB,iBAAkBhC,EAClB,YAAagD,EACb,YAAaE,GACb,aAAcC,EAClB,CACA,EAAGsC,GAAK,IAAM,CACZ,MAAM,EAAIrG,EAAE,IAAM,CAACrO,EAAG0E,IAAM1E,GAAG,SAAS0E,CAAC,CAAC,EAAG,EAAI2J,EAAE,IAAM,CAACrO,EAAG0E,IAAM1E,EAAE,MAAQA,EAAE,KAAO,GAAK0E,IAAM,EAAI,EAAE,EAAGoC,EAAIuH,EAAE,IAAM,CAACrO,EAAG0E,IAAM1E,EAAE,MAAQA,EAAE,KAAO,GAAK0E,IAAM1E,EAAE,MAAQ,EAAI,EAAE,EAC9K,MAAO,CAAE,sBAAuB,EAAG,aAAc,EAAG,cAAe8G,CAAC,CACtE,EAAGmW,GAAK,CAAC,EAAG,EAAGnW,IAAM,CACnB,MAAM9G,EAAIwO,EAAE,CAAC,EAAG9J,EAAIyJ,GAAG,CACrB,CAAC3G,GAAG,UAAU,EAAG,CAAC,EAAE,kBAAoB,EAAE,YAAc,EAAE,YAC1D,CAACA,GAAG,QAAQ,EAAG,GACf,CAACA,GAAG,MAAM,EAAG,EACjB,CAAG,EAAGU,EAAImG,EAAE,IAAM,EAAE,aAAe,EAAE,UAAU,EAAGhH,EAAKwJ,GAAM,CACzD,GAAI,EAAE,MAAM,OAAQ,CAClB,GAAI,CAACA,GAAK3I,EAAE,MAAO,OAAOiH,EAAC,EAC3BzK,EAAEmM,CAAC,EAAI,GAAI,OAAO,KAAKnM,CAAC,EAAE,OAAQoM,GAAM,CAACpM,EAAEoM,CAAC,CAAC,EAAE,QAAU3B,EAAC,CAC5D,CACF,EAAG7G,EAAI,IAAM,CACX,EAAE,MAAM,QAAUtI,EAAE,QAAU,KAAOA,EAAE,OAAS,EAAG,EAAE,YAAaA,EAAE,KAAK,EAAGmP,EAAC,GAAK,EAAE,MAAM,SAAWnP,EAAE,OAAS4U,GAAE,EAAG,KAAK,IAAMrM,EAAC,CAAE,CACrI,EAAGA,EAAI,IAAM,CACXvI,EAAE,MAAQ,EACZ,EAAGkP,EAAI,CAAC2B,EAAGC,KAAMC,IAAM,CACrB,EAAE,KAAK/Q,EAAE,KAAK,IAAM6Q,GAAK/J,EAAE,OAASA,EAAE,MAAMgK,CAAC,IAAI,GAAGC,CAAC,CACvD,EAAG5B,EAAI,CAAC0B,EAAI,IAAM,CAChBA,IAAM7Q,EAAE,OAAS6Q,GAAI3B,EAAEzH,GAAG,MAAO,oBAAqB,EAAE,EAAGyH,EAAEzH,GAAG,KAAM,mBAAoB,EAAE,EAAGyH,EAAEzH,GAAG,SAAU,mBAAoB,GAAI,EAAE,EAAGyH,EAAEzH,GAAG,KAAM,mBAAoB,GAAI,EAAE,EAChL,MAAMqJ,EAAI,EAAE,KAAK9Q,EAAE,KAAK,GACvB8Q,IAAMrJ,GAAG,OAASqJ,IAAMrJ,GAAG,SAAWqJ,IAAMrJ,GAAG,UAAYyH,EAAE4B,EAAG,mBAAoB,GAAI,GAAIA,CAAC,CAChG,EACA,MAAO,CAAE,WAAYzJ,EAAG,eAAgBiB,EAAG,UAAWC,EAAG,WAAY4G,EAAG,SAAUnP,CAAC,CACrF,EAAG4d,GAAK,CACN,IAAK,EACL,MAAO,gBACT,EAAGC,GAAK,CAAC,KAAM,OAAQ,YAAa,cAAe,WAAY,WAAY,WAAY,QAAS,eAAgB,aAAc,gBAAiB,cAAc,EAAGC,GAAK,CACnK,IAAK,EACL,MAAO,eACT,EAAGC,GAAK,CAAC,YAAY,EAAGC,GAAqBtK,GAAG,CAC9C,aAAc,CACZ,KAAM,CACV,EACE,OAAQ,kBACR,MAAO,CACL,WAAY,CAAE,KAAM,QAAS,QAAS,EAAE,EACxC,WAAY,CAAE,KAAM,OAAQ,QAAS,EAAE,EACvC,GAAGL,EACP,EACE,MAAO,CACL,QACA,OACA,qBACA,iBACA,QACA,cACA,iBACA,SACA,aACA,QACA,OACA,YACA,YACJ,EACE,MAAM,EAAG,CAAE,OAAQ,EAAG,KAAMvM,GAAK,CAC/B,MAAM9G,EAAI8G,EAAGpC,EAAI,EAAG,CAClB,mBAAoBwD,EACpB,oBAAqBb,EACrB,gBAAiBiB,EACjB,gBAAiBC,EACjB,eAAgB2G,EAChB,oBAAqBC,EACrB,YAAa0B,EACb,kBAAmBC,EACnB,oBAAqBC,CAC3B,EAAQP,GAAG9L,CAAC,EAAG,CAAE,iBAAkBsM,GAAMkC,GAAGxO,CAAC,EAAGuM,EAAIzC,EAAC,EAAImC,EAAInC,EAAE,IAAI,EAAGQ,EAAIR,EAAE,EAAE,EAAGS,EAAIT,EAAE,EAAE,EAAG0C,EAAI7C,EAC1F,KAAO,CACL,YAAa,CAAC3J,EAAE,UAAY,CAACA,EAAE,UAAY,CAACwD,EAAE,MAAM,QACpD,aAAcxD,EAAE,SAChB,mBAAoB,CAACwD,EAAE,MAAM,QAC7B,UAAW,GACX,wBAAyB,CAACxD,EAAE,UAC5B,mBAAoB,CAACA,EAAE,cACvB,gBAAiB,OAAOA,EAAE,OAAS,UAAYA,EAAE,MAAQ,GACzD,kBAAmB,OAAOA,EAAE,OAAS,UAAY,CAACA,EAAE,MAAQ,GAC5D,gBAAiBsK,EAAE,OAAStK,EAAE,WAC9B,cAAe,CAACwD,EAAE,MAAM,QACxB,GAAG2I,EAAE,MAAM,OAAS,CAAA,CAC5B,EACA,EAAOD,EAAI,IAAM,CACX5Q,EAAE,iBAAkB,IAAI,EAAG0E,EAAE,WAAaA,EAAE,YAAc1E,EAAE,gBAAgB,EAAGiR,EAAE,MAAQ,KAC3F,EAAGE,EAAKU,GAAM,CACZ,MAAMa,GAAK3B,EAAC,EACZ,OAAOzG,GACLuH,EACA3J,EAAE,MAAM,QAAU4I,EAAC,EACnB4B,IAAMnG,GAAG,GAAI7H,EAAE,aAAa,EAC5BA,EAAE,WACFuK,EAAE,MACFvK,EAAE,YACV,CACI,EAAGqN,EAAMF,GAAM,CACb,KAAM,CAAE,eAAgBa,EAAE,EAAKxK,EAAE,MAAO,CAAC2K,EAAGC,CAAE,EAAIjB,EAAE,MAAM,GAAGa,EAAE,EAAE,EACjE,GAAIG,EAAG,CACL,MAAME,EAAI5B,EAAE0B,EAAE,KAAI,CAAE,EAAGG,GAAIF,EAAK3B,EAAE2B,EAAG,KAAI,CAAE,EAAI,OAC/C,GAAI3H,GAAG4H,EAAGC,EAAC,EAAG,OACd,MAAMzB,EAAIwB,GAAKC,GAAI,CAACD,EAAGC,EAAC,EAAI,CAACD,CAAC,EAC9B/B,EAAEgC,GAAGzB,EAAG,CAAC,IAAMN,EAAE,MAAQ8B,EAAIxB,EAAI,KACnC,CACF,EAAGd,EAAI,IAAM,CACXxB,EAAE,MAAQ,EACZ,EAAGyB,EAAKmB,GAAM,CACZ,GAAI3C,EAAE,MAAM,QACV6C,EAAGF,CAAC,UACG1C,EAAE,MAAM,QAAS,CACxB,MAAMuD,GAAKb,EAAE,MAAM,GAAG,EACtBZ,EAAE,MAAQyB,GAAG,IAAKG,GAAM1B,EAAE0B,EAAE,KAAI,CAAE,CAAC,EAAE,OAAQA,GAAMA,CAAC,CACtD,MACE5B,EAAE,MAAQE,EAAEU,CAAC,CACjB,EAAGG,EAAMH,GAAM,CACb,MAAMa,GAAK,OAAOb,GAAK,SAAWA,EAAIA,EAAE,QAAQ,MAChDa,KAAO,IAAMxK,EAAE,MAAM,UAAY,CAACxD,EAAE,YAAc1E,EAAE,MAAM,EAAG0Q,EAAEgC,EAAE,EAAG1S,EAAE,iBAAkBiR,EAAE,KAAK,GAAKL,EAAC,EAAI3B,EAAE,MAAQ,GAAIjP,EAAE,qBAAsB0S,EAAE,EAAG1S,EAAE,aAAc6R,EAAGZ,EAAE,KAAK,CAChL,EAAGgB,EAAKJ,GAAM,CACZ3J,EAAE,MAAM,SAAWwI,EAAEmB,EAAE,OAAO,KAAK,EAAG3J,EAAE,MAAM,aAAeiF,GAAG8D,EAAE,KAAK,GAAKvM,EAAE,aAAe,IAAM1E,EAAE,iBAAkBiR,EAAE,MAAO,EAAE,EAAGA,EAAE,MAAQ,MAAQ/I,EAAE,MAAM,aAAexD,EAAE,aAAe,KAAOuM,EAAE,MAAQ,KAAMjR,EAAE,OAAO,IAAMoS,GAAGP,CAAC,CAC3O,EAAGK,GAAI,CAACL,EAAGa,KAAO,CAChBxK,EAAE,MAAM,SAAWA,EAAE,MAAM,WAAa,CAACwK,IAAMhC,EAAEmB,EAAE,OAAO,KAAK,EAAG3J,EAAE,MAAM,WAAaiF,GAAG8D,EAAE,KAAK,GAAKvM,EAAE,aAAe,IAAM1E,EAAE,iBAAkBiR,EAAE,MAAO,GAAI,EAAE,EAAGA,EAAE,MAAQ,MAAQ/I,EAAE,MAAM,WAAaxD,EAAE,aAAe,KAAOuM,EAAE,MAAQ,KAAMjR,EAAE,QAAS,EAAE,EACjQ,EAAGmS,GAAK,IAAM,CACZnD,EAAE,MAAQ,GAAIhP,EAAE,OAAO,EAAG4U,GAAE,EAAG,KAAK,IAAM,CACxC1M,EAAE,MAAM,SAAWA,EAAE,MAAM,eAAiByI,EAAE,OAAO,OAAM,CAC7D,CAAC,CACH,EAAGyB,GAAMP,GAAM,CACb,GAAIxI,GAAGwI,EAAGtJ,EAAE,MAAO,EAAE,EAAGL,EAAE,MAAM,SAAWA,EAAE,MAAM,UAAY,CAACI,EAAE,MAAM,MAAO,CAC7E,GAAIJ,EAAE,MAAM,WAAa,QAAU,CAACxD,EAAE,WAAY,OAAO1E,EAAE,MAAM,EACjE,GAAIkI,EAAE,MAAM,WAAa,SAAU,OAAOlI,EAAE,QAAQ,CACtD,MAAOkI,EAAE,MAAM,SAAWlI,EAAE,QAAQ,CACtC,EAAGqS,EAAI,IAAM,CACXrS,EAAE,WAAW,EAAGgP,EAAE,MAAQ,IAAK,CAACtK,EAAE,YAAc4D,EAAE,MAAM,SAAWA,EAAE,MAAM,QAAUtI,EAAE,MAAM,EAAG0E,EAAE,WAAawD,EAAE,MAAM,SAAW+I,EAAE,OAAS,CAACvM,EAAE,aAAe1E,EAAE,iBAAkBiR,EAAE,KAAK,EAAGjR,EAAE,aAAa,EAAGiR,EAAE,MAAQ,KAC3N,EAAGqB,EAAKT,GAAM,CACZxI,GAAGwI,EAAGtJ,EAAE,MAAO,EAAE,EAAGvI,EAAE,OAAO,CAC/B,EAAGuS,EAAK,IAAM,CACZvS,EAAE,OAAO,CACX,EAAGwS,EAAKX,GAAM,CACZ,GAAIA,EAAE,MAAQ,OAASK,GAAEL,CAAC,EAAGA,EAAE,MAAQ,SAAWI,EAAEJ,CAAC,EAAGA,EAAE,MAAQ,UAAY3J,EAAE,MAAM,UAAYqK,EAAE,EAAI,CAACrK,EAAE,MAAM,QAAS,CACxH,GAAI2J,EAAE,OAAS,MAAO,OACtBA,EAAE,eAAc,CAClB,CACF,EAAGY,GAAI,IAAM,CACX9B,EAAE,OAAO,MAAM,CAAE,cAAe,EAAE,CAAE,CACtC,EAAGe,EAAKG,GAAM,CACZZ,EAAE,MAAQY,CACZ,EAAGC,EAAKD,GAAM,CACZA,EAAE,MAAQjK,GAAG,KAAOsK,GAAEL,EAAG,EAAE,CAC7B,EACA,OAAO,EAAE,CACP,WAAYY,GACZ,cAAef,CACrB,CAAK,EAAG,CAACG,EAAGa,MAAQvM,EAAC,EAAIC,EAAE,MAAO,CAAE,QAASgM,IAAM,CAC7CP,EAAE,OAAO,SAAW,CAACA,EAAE,OAAO,UAAU,GAAK,CAACnJ,EAAEJ,CAAC,EAAE,QAAUuL,GAAGhC,EAAE,OAAQ,UAAW,CAAE,IAAK,CAAC,CAAE,EAAIqC,EAAE,GAAI,EAAE,EAC3G,CAACrC,EAAE,OAAO,UAAY,CAACnJ,EAAEJ,CAAC,EAAE,SAAWI,EAAEJ,CAAC,EAAE,QAAUnC,EAAC,EAAIC,EAAE,MAAOwX,GAAI,CACtE/L,EAAE,OAAO,UAAU,GAAK,CAACA,EAAE,OAAO,UAAY,CAACnJ,EAAEJ,CAAC,EAAE,SAAWI,EAAEJ,CAAC,EAAE,SAAWI,EAAEJ,CAAC,EAAE,OAASuL,GAAGhC,EAAE,OAAQ,WAAY,CACpH,IAAK,EACL,MAAO,EAAE,WACT,WAAY,EAAE,WACd,QAASG,EACT,QAASC,EACT,MAAOC,GACP,QAASI,EACT,OAAQD,EACR,WAAYG,EACZ,QAAS/B,EACT,QAAS0B,GACT,SAAU,IAAMN,EAAE,MAAM,MAAM,EAC9B,UAAW,IAAMA,EAAE,MAAM,OAAO,EAChC,WAAY,IAAMA,EAAE,MAAM,QAAQ,CAC5C,CAAS,EAAIqC,EAAE,GAAI,EAAE,EACbrC,EAAE,OAAO,UAAU,EAAIqC,EAAE,GAAI,EAAE,GAAK/N,EAAC,EAAIC,EAAE,QAAS,CAClD,IAAK,EACL,GAAIyL,EAAE,IAAM,YAAYA,EAAE,GAAG,GAAK,OAClC,QAAS,WACT,IAAKlB,EACL,eAAgB,WAChB,KAAMkB,EAAE,KACR,MAAOiD,GAAG5D,EAAE,KAAK,EACjB,UAAWxI,EAAER,CAAC,EAAE,QAAU,OAAS,OACnC,YAAa2J,EAAE,YACf,SAAUA,EAAE,SACZ,SAAUA,EAAE,SACZ,SAAUA,EAAE,SACZ,MAAO,EAAE,WACT,aAAcA,EAAE,aAChB,aAAcnJ,EAAErB,CAAC,GAAG,MACpB,gBAAiBwK,EAAE,UAAY,OAC/B,eAAgBA,EAAE,QAAU,GAAK,GAAK,OACtC,QAASG,EACT,OAAQK,EACR,QAASF,GACT,WAAYK,EACZ,UAAWE,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKG,GAAML,EAAEK,CAAC,GACvC,QAASpC,CACnB,EAAW,KAAM,GAAIoN,EAAE,GACfxX,GAAG,MAAO,CACR,QAASqM,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKG,GAAM7S,EAAE,QAAQ,EACtD,EAAW,CACD6R,EAAE,OAAO,YAAY,GAAK,CAACA,EAAE,eAAiB1L,EAAC,EAAIC,EAAE,OAAQ,CAC3D,IAAK,EACL,MAAO,iBACP,QAASsM,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKG,GAAM7S,EAAE,QAAQ,EACxD,EAAa,CACD6T,GAAGhC,EAAE,OAAQ,YAAY,CACrC,CAAW,GAAKqC,EAAE,GAAI,EAAE,EACd,CAACrC,EAAE,OAAO,YAAY,GAAK,CAACA,EAAE,eAAiB,CAACA,EAAE,OAAO,UAAU,GAAK1L,EAAC,EAAIuP,GAAGhN,EAAEzC,EAAE,EAAG,CACrF,IAAK,EACL,aAAcyC,EAAErB,CAAC,GAAG,aACpB,MAAO,iCACP,QAASqL,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKG,GAAM7S,EAAE,QAAQ,EACxD,EAAa,KAAM,EAAG,CAAC,YAAY,CAAC,GAAKkU,EAAE,GAAI,EAAE,CACjD,CAAS,EACDrC,EAAE,OAAO,YAAY,IAAMA,EAAE,iBAAmB,EAAE,YAAcA,EAAE,WAAa,CAACA,EAAE,UAAY,CAACA,EAAE,WAAa1L,IAAKC,EAAE,OAAQ0X,GAAI,CAC/HjK,GAAGhC,EAAE,OAAQ,aAAc,CAAE,MAAOS,CAAC,CAAE,CACjD,CAAS,GAAK4B,EAAE,GAAI,EAAE,EACd,CAACrC,EAAE,OAAO,YAAY,IAAMA,EAAE,iBAAmBA,EAAE,WAAa,EAAE,YAAc,CAACA,EAAE,UAAY,CAACA,EAAE,WAAa1L,EAAC,EAAIC,EAAE,SAAU,CAC9H,IAAK,EACL,aAAcsC,EAAErB,CAAC,GAAG,WACpB,MAAO,gBACP,KAAM,SACN,UAAWqL,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKG,GAAMnK,EAAEmB,EAAE,EAAEgJ,EAAG,IAAMP,EAAEO,CAAC,EAAG,GAAIf,CAAC,GAC9D,QAASY,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAIqC,GAAIlC,GAAMP,EAAEO,CAAC,EAAG,CAAC,SAAS,CAAC,EAChE,EAAW,CACDgD,GAAGnN,EAAEpC,EAAE,EAAG,CACR,MAAO,kBACP,eAAgB,YAC5B,CAAW,CACX,EAAW,GAAIyX,EAAE,GAAK7J,EAAE,GAAI,EAAE,CAC9B,CAAO,GAAKA,EAAE,GAAI,EAAE,CACpB,CAAK,EACH,CACF,CAAC,EAAG+J,GAAK,OAAO,OAAS,IAAM,OAAS,OAAQC,GAAK,IAAM,CAC3D,EAAGC,GAAM,GAAMC,GAAE,GAAMC,GAAG,CAAC,EAAG,IAAM,GAAIC,GAAK,CAAC,EAAG,EAAGxX,EAAG9G,IAAM,CAC3D,GAAI,CAAC,EAAG,OAAOke,GACf,IAAIxZ,EAAIwZ,GACR,MAAMhW,EAAIoJ,GACR,IAAM5I,EAAE,CAAC,EACRJ,GAAM,CACL5D,EAAC,EAAI4D,IAAMA,EAAE,oBAAoB,EAAGxB,CAAC,EAAGwB,EAAE,iBAAiB,EAAGxB,EAAG9G,CAAC,EAAG0E,EAAI,IAAM,CAC7E4D,EAAE,oBAAoB,EAAGxB,EAAG9G,CAAC,EAAG0E,EAAIwZ,EACtC,EACF,EACA,CAAE,UAAW,GAAI,MAAO,MAAM,CAClC,EAAK7W,EAAI,IAAM,CACXa,EAAC,EAAIxD,EAAC,CACR,EACA,OAAOyZ,GAAG9W,CAAC,EAAGA,CAChB,EAAGkX,GAAK,CAAC,EAAG,EAAGzX,EAAG9G,EAAI,KAAO,CAC3B,KAAM,CAAE,OAAQ0E,EAAIuZ,GAAI,MAAO/V,EAAI,aAAa,EAAKlI,EACrD,OAAO0E,EAAI4Z,GAAG5Z,EAAGwD,EAAII,GAAM,CACzB,MAAMC,EAAIE,GAAG,CAAC,EAAGyG,EAAIzG,GAAG,CAAC,EACzB,CAACF,GAAK,CAAC2G,GAAK3G,IAAMD,EAAE,QAAUA,EAAE,aAAY,EAAG,SAASC,CAAC,GAAKD,EAAE,aAAY,EAAG,SAAS4G,CAAC,GAAKpI,EAAEwB,CAAC,CACnG,EAAG,CAAE,QAAS,EAAE,CAAE,EAAI,MACxB,EAAGkW,GAAK,CAAC,gBAAgB,EAAGC,GAAqB/K,GAAG,CAClD,aAAc,CACZ,KAAM,CACV,EACE,OAAQ,gBACR,MAAO,CACL,GAAGL,EACP,EACE,MAAO,CACL,qBACA,8BACA,cACA,SACA,UACA,OACA,QACA,OACA,wBACA,uBACA,YACA,oBACA,iBACA,sBACA,eACA,gBACA,mBACA,oBACA,eACA,cACA,YACA,cACA,eACA,iBACA,YACJ,EACE,MAAM,EAAG,CAAE,OAAQ,EAAG,KAAMvM,GAAK,CAC/B,MAAM9G,EAAI8G,EAAGpC,EAAI,EAAGwD,EAAI0O,KAAMvP,EAAImH,EAAE,EAAE,EAAGlG,EAAI+I,GAAG3M,EAAG,YAAY,EAAG6D,EAAI8I,GAAG3M,EAAG,UAAU,EAAGwK,EAAIV,EAAE,IAAI,EAAGW,EAAIX,EAAE,IAAI,EAAGqC,EAAIrC,EAAE,IAAI,EAAGsC,EAAItC,EAAE,EAAE,EAAGuC,EAAIvC,EAAE,IAAI,EAAGwC,EAAIxC,EAAE,EAAE,EAAGyC,EAAIzC,EAAE,EAAE,EAAGmC,EAAInC,EAAE,EAAE,EAAGQ,EAAIR,EAAE,EAAE,EAAG,CAAE,eAAgBS,EAAG,YAAaiC,GAAM9C,GAAE,EAAI,CAAE,cAAewC,GAAM7B,GAAE,EAAI,CAAE,aAAcoC,EAAG,YAAaY,CAAE,EAAKmB,GAAGxO,CAAC,EAAG,CAC3T,qBAAsB+L,EACtB,mBAAoBC,EACpB,gBAAiBsB,EACjB,gBAAiBC,EACjB,eAAgBC,GAChB,oBAAqBC,EAC3B,EAAQ3B,GAAG9L,CAAC,EAAG,CAAE,eAAgB0N,GAAI,eAAgBC,GAAMoD,GAAGhF,CAAC,EAAG,CAAE,SAAU6B,CAAC,EAAK+J,GAAGpK,CAAC,EAAGM,EAAKmM,GAAE,EAC9F/K,GAAG,IAAM,CACPpC,EAAE7M,EAAE,UAAU,EAAGkQ,GAAE,EAAG,KAAK,IAAM,CAC/B5C,EAAG,MAAM,UAAYa,EAAE9B,EAAE,KAAK,GAAG,iBAAiB,SAAU4G,CAAC,EAAG,QAAQ,iBAAiB,SAAUC,EAAE,EACvG,CAAC,EAAG5F,EAAG,MAAM,UAAY3K,EAAE,MAAQ,IAAK,QAAQ,iBAAiB,QAAS0Q,EAAE,EAAG,QAAQ,iBAAiB,UAAWC,EAAE,CACvH,CAAC,EAAGpE,GAAG,IAAM,CACX5B,EAAG,MAAM,UAAYa,EAAE9B,EAAE,KAAK,GAAG,oBAAoB,SAAU4G,CAAC,EAAG,QAAQ,oBAAoB,SAAUC,EAAE,GAAI,QAAQ,oBAAoB,QAASG,EAAE,EAAG,QAAQ,oBAAoB,UAAWC,EAAE,CACpM,CAAC,EACD,MAAMxF,EAAIqE,GAAG3O,EAAG,MAAOxD,EAAE,WAAW,EAAG+N,GAAIoE,GAAG3O,EAAG,OAAO,EACxDoJ,GACE,CAAChJ,EAAGC,CAAC,EACL,IAAM,CACJgJ,EAAEjJ,EAAE,KAAK,CACX,EACA,CAAE,KAAM,EAAE,CAChB,EACI,KAAM,CAAE,UAAWoJ,EAAG,UAAWI,EAAG,SAAUD,EAAG,gBAAiBa,GAAI,oBAAqBG,EAAG,aAAcC,CAAE,EAAKsK,GAAG,CACpH,QAASlO,EACT,aAAcC,EACd,SAAU0B,EACV,iBAAkBE,EAClB,OAAQiB,EACR,KAAMhS,EACN,MAAO0E,EACP,MAAOwD,CACb,CAAK,EAAG,CACF,WAAY6K,EACZ,mBAAoBC,GACpB,wBAAyBzB,EACzB,eAAgBsD,EAChB,iBAAkBrD,EAClB,gBAAiBC,EACvB,EAAQL,GAAGpR,EAAG0E,EAAG,CAAE,eAAgBoM,EAAG,gBAAiB9B,CAAC,CAAE,EAAG4C,EAAIvD,EAC3D,KAAO,CACL,SAAU,GACV,eAAgB3J,EAAE,KAClB,gBAAiB,CAACA,EAAE,KACpB,iBAAkBsN,EAAG,MAAM,QAC3B,6BAA8BrB,EAAE,MAChC,4BAA6BqB,EAAG,MAAM,KAC9C,EACA,EAAOW,GAAKtE,EAAE,IAAM3J,EAAE,KAAO,iBAAmB,iBAAiB,EAAGkO,EAAKvE,EAAE,IAAM3J,EAAE,SAAW,CACxF,GAAI,OAAOA,EAAE,UAAY,UAAY,OAASA,EAAE,SAChD,SAAU,CAACA,EAAE,UAAYsN,EAAG,MAAM,OACxC,EAAQ,CAAA,CAAE,EAAGmG,GAAK9J,EAAE,KAAO,CAAE,MAAO,qBAAqB,EAAG,EAAGoJ,EAAIpJ,EAAE,IAAM2D,EAAG,MAAM,UAAYtN,EAAE,YAAcA,EAAE,aAAeA,EAAE,YAAcA,EAAE,cAAc,EAAGgT,GAAI,IAAM7G,EAAE,OAAO,KAAK,sBAAqB,GAAM,CAAE,MAAO,EAAG,KAAM,EAAG,MAAO,CAAC,EAAI8G,EAAI,IAAM,CAC5PtQ,EAAE,QAAU4K,EAAE,MAAM,cAAgB+I,GAAE,EAAKtI,KAC7C,EAAGkF,GAAK,IAAM,CACZvQ,EAAE,OAASqL,GAAE,EACb,MAAMsH,EAAI7K,EAAE,OAAO,IAAI,sBAAqB,EAAG,OAAS,EACxDwB,EAAE,MAAQ,SAAS,KAAK,aAAeqJ,CACzC,EAAGjC,GAAMiC,GAAM,CACbA,EAAE,MAAQ,OAAS,CAAChI,EAAG,MAAM,SAAW,CAACtN,EAAE,UAAYuN,EAAE,MAAM,mBAAqBlB,EAAE,MAAM,SAAS,SAAS,aAAa,GAAKiK,GAAE,GAAK/J,EAAE,MAAQ+I,EAAE,QACrJ,EAAGhC,GAAMgC,GAAM,CACb/I,EAAE,MAAQ+I,EAAE,QACd,EAAG/B,GAAK,IAAM,CACZ,CAACvT,EAAE,UAAY,CAACA,EAAE,WAAaoO,EAAGP,EAAIwK,GAAIrY,CAAC,EAAGgO,GAAG,EAAE,EAAGrL,EAAE,MAAQ,GAAIA,EAAE,OAASrH,EAAE,MAAM,EAAGqH,EAAE,OAASsT,GAAE,EAAIpJ,EAAE7M,EAAE,UAAU,EAC3H,EAAGwT,GAAK,IAAM,CACZnF,EAAE,MAAQ,GAAI4H,GAAE,EAAIxL,EAAE,OAAO,eAAc,EAAI0B,EAAE,OAAO,cAAc,IAAI,EAAG7Q,EAAE,qBAAsB,IAAI,EAAGA,EAAE,8BAA+B,IAAI,EAAGA,EAAE,SAAS,EAAGiS,EAAE,MAAM,mBAAqB+I,GAAE,CACnM,EAAGJ,EAAK,IAAM,CACZ,MAAMZ,EAAIhH,GAAE,MACZ,MAAO,CAACgH,GAAK,CAAC,MAAM,QAAQA,CAAC,GAAK7I,EAAE6I,CAAC,EAAI,GAAK,MAAM,QAAQA,CAAC,EAAI7H,GAAG,MAAM,SAAW6H,EAAE,SAAW,GAAK7I,EAAE6I,EAAE,CAAC,CAAC,GAAK7I,EAAE6I,EAAE,CAAC,CAAC,EAAI,GAAK9H,GAAE,MAAM,cAAgB,CAACxN,EAAE,WAAayM,EAAE6I,EAAE,CAAC,CAAC,EAAI,GAAK,EAC1L,EAAGa,GAAI,IAAM,CACXpJ,GAAC,GAAMmJ,EAAE,GAAM/F,EAAC,EAAImG,GAAE,GAAMhb,EAAE,iBAAkBgT,GAAE,KAAK,CACzD,EAAG,GAAMgH,GAAM,CACbc,GAAE,EAAIjG,EAAC,EAAI5C,EAAE,MAAM,kBAAoB,CAAC+H,GAAKgB,GAAE,CACjD,EAAGF,GAAK,IAAM,CACZjK,EAAE,OAASH,EAAE,MAAM,SAAWG,EAAE,MAAM,cAAcmC,GAAE,KAAK,CAC7D,EAAG+H,GAAK,CAACf,EAAI,KAAO,CAClBtV,EAAE,WAAaqN,EAAGiB,GAAE,KAAK,GAAK4H,MAAS1I,GAAE,MAAM,SAAW,MAAM,QAAQc,GAAE,KAAK,GAAKd,GAAE,MAAM,cAAgBc,GAAE,MAAM,SAAW,IAAM,GAAGgH,CAAC,EAAI,GAAGA,CAAC,EACnJ,EAAGW,GAAK,IAAM,CACZjK,EAAE,MAAM,UAAYsC,GAAE,MAAQ,KAChC,EAAGgI,GAAK,CAAChB,EAAI,KAAO,CAClBA,GAAKhH,GAAE,OAASf,EAAE,MAAM,oBAAsB4I,KAAK7I,EAAG,MAAM,UAAY3K,EAAE,QAAUA,EAAE,MAAQ,GAAIwK,EAAE,MAAQ,GAAI5C,EAAE,EAAE,EAAGiC,EAAE,EAAE,EAAGN,EAAC,EAAI5Q,EAAE,QAAQ,EAAG+S,EAAE,OAASxB,EAAEjJ,EAAE,KAAK,GAAIqS,KAAM3a,EAAE,MAAM,EAAGmP,EAAE,OAAO,KAAK,SACzM,EAAG8L,GAAK,CAACjB,EAAGC,GAAIC,GAAK,KAAO,CAC1B,GAAI,CAACF,EAAG,CACNhH,GAAE,MAAQ,KACV,MACF,CACA,MAAM0H,GAAK,MAAM,QAAQV,CAAC,EAAI,CAACA,EAAE,KAAMI,IAAO,CAACjJ,EAAEiJ,EAAE,CAAC,EAAIjJ,EAAE6I,CAAC,EAAGG,GAAKpI,EAAGiI,CAAC,EACvEU,IAAMP,IAAMnL,EAAE,MAAQ,GAAIgE,GAAE,MAAQgH,EAAGC,IAAMjJ,EAAE,MAAQkJ,GAAIW,GAAC,EAAI7a,EAAE,aAAa,GAAK0E,EAAE,WAAaqW,GAAG,EAAE,EAAGnG,GAAE,EAAG,KAAK,IAAM,CACzH5F,EAAE,MAAQ,EACZ,CAAC,GAAKhP,EAAE,eAAgBga,CAAC,CAC3B,EAAGkB,GAAK,IAAM,CACZxW,EAAE,WAAaqN,EAAGiB,GAAE,KAAK,GAAK6B,EAAC,EAAIiG,GAAE,CACvC,EAAGK,GAAK,IAAM9T,EAAE,MAAQ2T,GAAE,EAAK/C,GAAE,EAAImD,GAAMpB,GAAM,CAC/ChH,GAAE,MAAQgH,CACZ,EAAGqB,GAAK,IAAM,CACZ3K,EAAE,MAAM,UAAYI,EAAE,MAAQ,GAAIU,EAAC,GAAKxR,EAAE,OAAO,CACnD,EAAGsb,GAAK,IAAM,CACZ5K,EAAE,MAAM,UAAYI,EAAE,MAAQ,GAAIS,EAAE7M,EAAE,UAAU,EAAGsM,EAAE,OAASzH,GAAGwH,EAAE,MAAOE,EAAE,KAAK,GAAG,MAAK,GAAKjR,EAAE,MAAM,CACxG,EAAGub,GAAMvB,GAAM,CACb7K,EAAE,OAASA,EAAE,MAAM,gBAAgB,EAAG,CACpC,MAAOpG,GAAGiR,EAAE,KAAK,EACjB,KAAMjR,GAAGiR,EAAE,IAAI,CACvB,CAAO,CACH,EAAGwB,GAAMxB,GAAM,CACbzI,EAAEyI,GAAKtV,EAAE,UAAU,CACrB,EAAGia,EAAK,CAAC3E,EAAGC,KAAO,CACjB9K,EAAE,OAAO,WAAW6K,EAAGC,EAAE,CAC3B,EAAGtV,GAAI,CAACqV,EAAGC,KAAOhI,EAAE,MAAM,eAAiBA,EAAE,MAAM,eAAe+H,EAAGC,EAAE,EAAIe,GAAG,EAAE,EAAGlB,GAAK,CAACE,EAAI,IAAM,CACjG7K,EAAE,OAAO,WAAW6K,CAAC,CACvB,EAAGD,GAAK,IAAM7K,EACd,OAAOqP,GACLrP,EACA2B,EACCmJ,GAAMrV,GAAEiW,EAAIZ,CAAC,CACpB,EAAO,EAAE,CACH,UAAWgB,GACX,WAAYH,GACZ,WAAY3C,GACZ,SAAUD,GACV,SAAUN,EACV,iBAAkBnG,EAElB,yBAA0B4J,GAE1B,aAAcG,GACd,WAAYC,GACZ,WAAYmD,EACZ,WAAYxD,GACZ,WAAYrB,GACZ,iBAAkBC,EACxB,CAAK,EAAG,CAACC,EAAGC,MAAQ9T,EAAC,EAAIC,EAAE,MAAO,CAC5B,QAAS,mBACT,IAAK2K,EACL,MAAO+D,GAAGlD,EAAE,KAAK,EACjB,2BAA4B,GAC5B,iBAAkBlJ,EAAE4J,CAAC,CAC3B,EAAO,CACDuD,GAAGmI,GAAIjK,GAAG,CACR,QAAS,WACT,IAAKlD,EACL,cAAenI,EAAEqK,CAAC,EAClB,sBAAuBkH,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKC,IAAO0E,GAAG7L,CAAC,EAAIA,EAAE,MAAQmH,GAAK,MACxE,eAAgB7S,EAAE,KAC1B,EAAS2S,EAAE,OAAQ,CACX,QAAS9B,GACT,OAAQD,GACR,eAAgBgD,GAChB,eAAgBvS,EAAEmM,CAAC,EACnB,aAAcgG,GACd,SAAUM,GACV,QAASH,GACT,QAASK,GACT,OAAQC,GACR,WAAYrB,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKC,IAAOpJ,EAAE,MAAQ,IAChD,YAAamJ,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKC,IAAOF,EAAE,MAAM,aAAcE,EAAE,EACvE,CAAO,EAAGnE,GAAG,CAAE,EAAG,CAAC,EAAI,CACff,GAAGtM,EAAE+J,EAAC,EAAG,CAACyH,GAAIQ,MAAQ,CACpB,KAAMR,GACN,GAAIvE,GAAIwE,IAAO,CACbtG,GAAGmG,EAAE,OAAQE,GAAIpG,GAAGgD,GAAGqD,EAAE,CAAC,CAAC,CACvC,CAAW,CACX,EAAU,CACV,CAAO,EAAG,KAAM,CAAC,cAAe,eAAgB,gBAAgB,CAAC,GAC1DhU,EAAC,EAAIuP,GAAG0C,GAAG4B,EAAE,SAAW6E,GAAK,KAAK,EAAG/K,GAAGgD,GAAGlE,EAAG,KAAK,CAAC,EAAG,CACtD,QAAS+C,GAAG,IAAM,CAChBE,GAAGC,GAAI,CACL,KAAMpN,EAAE0J,EAAE,EAAE1J,EAAEgJ,CAAC,CAAC,EAChB,IAAKhJ,EAAE2J,CAAC,GAAK,CAAC3J,EAAEsJ,CAAE,EAAE,OAChC,EAAa,CACD,QAAS2D,GAAG,IAAM,CAChBtO,EAAE,OAASlB,EAAC,EAAIC,EAAE,MAAO2N,GAAG,CAC1B,IAAK,EACL,QAAS,gBACT,IAAK7E,CACrB,EAAiBiJ,GAAG,MAAO,CACX,MAAO,CAAE,mBAAoB,CAACzP,EAAEsJ,CAAE,EAAE,OAAO,EAC3C,MAAOtJ,EAAEsJ,CAAE,EAAE,QAAU,OAAStJ,EAAEoJ,CAAC,CACnD,CAAe,EAAG,CACF+D,GAAGkH,GAAIhJ,GAAG,CACR,QAAS,YACT,IAAK5E,CACvB,EAAmB6K,EAAE,OAAQ,CACX,uBAAwBtR,EAAEsK,EAAC,EAC3B,8BAA+BiH,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKC,IAAO0E,GAAG5L,EAAC,EAAIA,GAAE,MAAQkH,GAAK,MAChF,MAAO,CAAE,CAACvH,GAAG,KAAK,EAAG,GAAI,mBAAoBqH,EAAE,QAAQ,EACvD,cAAetR,EAAEgJ,CAAC,EAClB,mBAAoB+F,EAAE,MACtB,SAAU9G,EAAE,MACZ,iBAAkB+G,GAClB,qBAAsB1I,EAAE,MACxB,cAAegM,GACf,aAAcH,GACd,YAAaE,GACb,aAAcG,GACd,WAAYjB,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKC,IAAOF,EAAE,MAAM,YAAaE,EAAE,GAC7D,kBAAmBD,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKC,IAAOF,EAAE,MAAM,oBAAqBE,EAAE,GAC5E,gBAAiBD,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKC,IAAOF,EAAE,MAAM,iBAAkBtR,EAAEsK,EAAC,CAAC,GACzE,mBAAoBiH,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKC,IAAOF,EAAE,MAAM,iBAAkBE,EAAE,GAC1E,oBAAqBD,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKC,IAAOF,EAAE,MAAM,sBAAuBE,EAAE,GAChF,sBAAuBxR,EAAEgK,EAAE,EAC3B,cAAeuH,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKC,IAAOF,EAAE,MAAM,eAAgBE,EAAE,GACnE,eAAgBD,GAAG,EAAE,IAAMA,GAAG,EAAE,EAAKC,IAAOF,EAAE,MAAM,gBAAiBE,EAAE,GACvE,iBAAkBD,GAAG,EAAE,IAAMA,GAAG,EAAE,EAAKC,IAAOF,EAAE,MAAM,mBAAoBE,EAAE,GAC5E,kBAAmBD,GAAG,EAAE,IAAMA,GAAG,EAAE,EAAKC,IAAOF,EAAE,MAAM,oBAAqBE,EAAE,GAC9E,aAAcD,GAAG,EAAE,IAAMA,GAAG,EAAE,EAAKC,IAAOF,EAAE,MAAM,eAAgBE,EAAE,GACpE,aAAcD,GAAG,EAAE,IAAMA,GAAG,EAAE,EAAKC,IAAOF,EAAE,MAAM,cAAeE,EAAE,GACnE,WAAYD,GAAG,EAAE,IAAMA,GAAG,EAAE,EAAKC,IAAOF,EAAE,MAAM,YAAaE,EAAE,GAC/D,aAAcD,GAAG,EAAE,IAAMA,GAAG,EAAE,EAAKC,IAAOF,EAAE,MAAM,cAAeE,EAAE,GACnE,cAAeD,GAAG,EAAE,IAAMA,GAAG,EAAE,EAAKC,IAAOF,EAAE,MAAM,eAAgBE,EAAE,GACrE,gBAAiBD,GAAG,EAAE,IAAMA,GAAG,EAAE,EAAKC,IAAOF,EAAE,MAAM,iBAAkBE,EAAE,GACzE,WAAYD,GAAG,EAAE,IAAMA,GAAG,EAAE,EAAKC,IAAOF,EAAE,MAAM,MAAM,EACxE,CAAiB,EAAGjE,GAAG,CAAE,EAAG,CAAC,EAAI,CACff,GAAGtM,EAAE8J,CAAC,EAAG,CAAC0H,GAAIQ,MAAQ,CACpB,KAAMR,GACN,GAAIvE,GAAIwE,IAAO,CACbtG,GAAGmG,EAAE,OAAQE,GAAIpG,GAAGgD,GAAG,CAAE,GAAGqD,EAAE,CAAE,CAAC,CAAC,CACxD,CAAqB,CACrB,EAAoB,CACpB,CAAiB,EAAG,KAAM,CAAC,uBAAwB,QAAS,cAAe,mBAAoB,WAAY,qBAAsB,uBAAuB,CAAC,CACzJ,EAAiB,EAAE,GAAKjG,EAAE,GAAI,EAAE,CAChC,CAAa,EACD,EAAG,CACf,EAAa,EAAG,CAAC,OAAQ,KAAK,CAAC,CAC/B,CAAS,EACD,EAAG,CACX,EAAS,EAAE,EACX,EAAO,GAAIsK,EAAE,EACX,CACF,CAAC,EAAGM,IAAsB,IAAM,CAC9B,MAAM,EAAIL,GACV,OAAO,EAAE,QAAW,GAAM,CACxB,EAAE,UAAU,iBAAkB,CAAC,CACjC,EAAG,CACL,GAAC,EAAKM,GAAqB,OAAO,OAAuB,OAAO,eAAe,CAC7E,UAAW,KACX,QAASD,EACX,EAAG,OAAO,YAAa,CAAE,MAAO,QAAQ,CAAE,CAAC,EAC3C,OAAO,QAAQC,EAAE,EAAE,QAAQ,CAAC,CAAC,EAAG,CAAC,IAAM,CACrC,IAAM,YAAcD,GAAG,CAAC,EAAI,EAC9B,CAAC,ECt5JDE,GAASC,EAAG,EACZ,SAASC,GAAiBC,EAAY,CACpC,OAAOA,EAAW,MAAMA,EAAW,QAAQ,GAAG,EAAI,CAAC,EAAE,WAAW,IAAK,KAAK,EAAE,WAAW,IAAK,GAAG,CACjG,CACA,SAASC,IAAe,CACtB,OAAO,KAAK,kBAAkB,UAAU,EAAE,OAAQC,GAAO,CAACA,EAAG,WAAW,MAAM,CAAC,EAAE,IAAKF,IAAgB,CACpG,WAAAA,EACA,MAAOD,GAAiBC,CAAU,CACtC,EAAI,EAAE,KAAK,CAACza,EAAGC,IAAMD,EAAE,WAAW,cAAcC,EAAE,UAAU,CAAC,CAC7D,CACA,MAAM2a,GAA4BC,GAAgB,CAChD,OAAQ,mBACR,MAAuBC,GAAY,CACjC,oBAAqB,CAAE,QAAS,IAAM,EAAE,EACxC,IAAK,CAAE,QAASC,GAAe,CAAE,CACrC,EAAK,CACD,WAAc,CAAE,QAAS,UAAU,EACnC,eAAkB,CAAA,CACtB,CAAG,EACD,MAAO,CAAC,mBAAmB,EAC3B,MAAMC,EAAS,CACb,MAAMC,EAAaC,GAASF,EAAS,YAAY,EAC3CG,EAAQH,EACRI,EAA+BC,EAAS,IACrCF,EAAM,oBAAoB,IAAI,CAAC,CAAE,WAAAV,EAAY,MAAAa,MAAa,CAC/D,WAAAb,EACA,MAAAa,CACR,EAAQ,CACH,EACKxwB,EAAUuwB,EAAS,IAAM,CAC7B,MAAME,EAAYb,GAAY,EAC9B,OAAAa,EAAU,QAAQ,GAAGH,EAA6B,KAAK,EAChDG,CACT,CAAC,EACD,SAASC,EAASC,EAAQH,EAAOI,EAAQ,CACvC,MAAMC,EAAQD,EAAO,KAAI,EAAG,MAAM,KAAK,EACjChb,EAAS,OAAO,OAAO+a,CAAM,EACnC,OAAOE,EAAM,MAAOC,GACXlb,EAAO,KAAMlW,GAAUA,EAAM,YAAW,EAAG,SAASoxB,EAAK,YAAW,CAAE,CAAC,CAC/E,CACH,CACA,MAAO,CAACC,EAAMC,KACLC,EAAS,EAAIC,GAAYC,GAAU,CACxC,WAAYhB,EAAW,MACvB,sBAAuBa,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKI,GAAWjB,EAAW,MAAQiB,GAChF,sBAAuBC,EAAMC,EAAC,EAAE,sBAAsB,EACtD,UAAW,GACX,SAAAZ,EACA,SAAU,GACV,QAAS1wB,EAAQ,MACjB,YAAaqxB,EAAMC,EAAC,EAAE,0BAA0B,EAChD,IAAKpB,EAAQ,IACb,OAASS,GAAWA,EAAO,WAC3B,MAAO,OACf,EAAS,KAAM,EAAG,CAAC,aAAc,sBAAuB,UAAW,cAAe,MAAO,QAAQ,CAAC,EAEhG,CACF,CAAC,ECnDDnB,GAAS+B,EAAG,EACZ,MAAMC,GAAa,CAAE,MAAO,+BAA+B,EACrDC,GAAa,CACjB,IAAK,SACL,MAAO,uEACT,EACM3B,GAA4BC,GAAgB,CAChD,OAAQ,mBACR,MAAuBC,GAAY,CACjC,aAAc,CAAE,KAAM,OAAO,EAC7B,UAAW,CAAE,QAASsB,GAAE,kBAAkB,CAAC,EAC3C,cAAe,CAAE,QAASA,GAAE,iBAAiB,CAAC,EAC9C,UAAW,CAAE,KAAM,OAAO,EAC1B,QAAS,CAAE,KAAM,OAAO,EACxB,OAAQ,CAAE,KAAM,CAAC,OAAQ,QAAQ,EAAG,QAAS,MAAM,EACnD,OAAQ,CAAE,QAASI,IAAoB,EACvC,IAAK,CAAE,QAAS,MAAM,EACtB,IAAK,CAAE,QAAS,MAAM,EACtB,WAAY,CAAE,QAAS,EAAE,EACzB,WAAY,CAAE,QAAS,IAAI,EAC3B,YAAa,CAAE,QAAS,MAAM,EAC9B,mBAAoB,CAAE,KAAM,OAAO,EACnC,eAAgB,CAAE,KAAM,OAAO,EAC/B,KAAM,CAAE,QAAS,MAAM,EACvB,OAAQ,CAAE,KAAM,QAAS,QAAS,EAAK,CAC3C,EAAK,CACD,WAAc,CAAE,QAAS,KAAK,EAC9B,oBAAuB,CAAA,CAC3B,CAAG,EACD,MAAuB1B,GAAY,CAAC,oBAAqB,oBAAqB,MAAM,EAAG,CAAC,mBAAmB,CAAC,EAC5G,MAAME,EAAS,CAAE,KAAMyB,CAAM,EAAI,CAC/B,MAAMhC,EAAaS,GAASF,EAAS,YAAY,EAC3CG,EAAQH,EACR0B,EAAOD,EACPE,EAAgBC,GAAe,QAAQ,EACvCC,EAAiBD,GAAe,QAAQ,EACxCpyB,EAAQ6wB,EAAS,IAAM,CAC3B,GAAIF,EAAM,aAAe,MAAQA,EAAM,UACrC,OAAO,KAET,GAAIA,EAAM,OAAS,OAAQ,CACzB,MAAM5wB,EAAO4wB,EAAM,sBAAsB,KAAOA,EAAM,WAA6B,IAAI,KACjFlsB,EAAM,IAAI,KAAK1E,CAAI,EACzB,OAAA0E,EAAI,WAAW1E,EAAK,WAAU,EAAK,CAAC,EAC7B,CAACA,EAAM0E,CAAG,CACnB,KAAO,CAAA,GAAIksB,EAAM,OAAS,OAExB,OADaA,EAAM,sBAAsB,KAAOA,EAAM,WAA6B,IAAI,MAC3E,eAAc,EACrB,GAAIA,EAAM,OAAS,QAAS,CACjC,MAAM5wB,EAAO4wB,EAAM,sBAAsB,KAAOA,EAAM,WAA6B,IAAI,KACvF,MAAO,CAAE,KAAM5wB,EAAK,eAAc,EAAI,MAAOA,EAAK,aAAa,CACjE,SAAW4wB,EAAM,OAAS,OAAQ,CAChC,MAAM2B,EAAO3B,EAAM,sBAAsB,KAAOA,EAAM,WAA6B,IAAI,KACvF,MAAO,CACL,MAAO2B,EAAK,SAAQ,EACpB,QAASA,EAAK,WAAU,EACxB,QAASA,EAAK,WAAU,CAClC,CACM,SAAW3B,EAAM,OAAS,aAAc,CACtC,MAAM2B,EAAO,CAAC3B,EAAM,UAAU,EAAE,KAAI,EACpC,GAAI2B,EAAK,SAAW,EAAG,CACrB,MAAM9tB,EAAwB,IAAI,KAC5BC,EAAM,IAAI,KAAKD,CAAK,EAC1BC,EAAI,SAASA,EAAI,SAAQ,EAAK,CAAC,EAC/B6tB,EAAK,OAAO,EAAG,EAAG9tB,EAAOC,CAAG,CAC9B,CACA,OAAO6tB,EAAK,IAAKvyB,IAAU,CACzB,MAAOA,EAAK,SAAQ,EACpB,QAASA,EAAK,WAAU,EACxB,QAASA,EAAK,WAAU,CAClC,EAAU,CACJ,SAAW4wB,EAAM,KAAK,SAAS,QAAQ,EAAG,CACxC,GAAIA,EAAM,aAAe,OAAQ,CAC/B,MAAMnsB,EAAwB,IAAI,KAC5BC,EAAM,IAAI,KAAKD,CAAK,EAC1B,OAAAC,EAAI,WAAWD,EAAM,WAAU,EAAK,CAAC,EAC9B,CAACA,EAAOC,CAAG,CACpB,CACA,OAAOksB,EAAM,UACf,CAAA,CACA,OAAOA,EAAM,YAA8B,IAAI,IACjD,CAAC,EACK4B,EAAsB1B,EAAS,IAC/BF,EAAM,OAAS,OACViB,GAAE,aAAa,EACbjB,EAAM,OAAS,OACjBiB,GAAE,aAAa,EACbjB,EAAM,OAAS,WACjBiB,GAAE,sBAAsB,EACtBjB,EAAM,OAAS,OACjBiB,GAAE,aAAa,EACbjB,EAAM,OAAS,QACjBiB,GAAE,cAAc,EACdjB,EAAM,OAAS,OACjBiB,GAAE,aAAa,EACbjB,EAAM,KAAK,SAAS,QAAQ,EAC9BiB,GAAE,mBAAmB,EAEvBA,GAAE,sBAAsB,CAChC,EACKY,EAAa3B,EAAS,IAAM,CAChC,GAAIF,EAAM,OACR,OAAOA,EAAM,OACR,GAAIA,EAAM,OAAS,OACxB,MAAO,QAET,IAAI3iB,EAYJ,GAXI2iB,EAAM,OAAS,QAAUA,EAAM,OAAS,aAC1C3iB,EAAY,IAAI,KAAK,eAAegkB,GAAkB,EAAI,CAAE,UAAW,SAAU,EACxErB,EAAM,OAAS,QAAUA,EAAM,OAAS,aACjD3iB,EAAY,IAAI,KAAK,eAAegkB,GAAkB,EAAI,CAAE,UAAW,QAAS,EACvErB,EAAM,OAAS,YAAcA,EAAM,OAAS,iBACrD3iB,EAAY,IAAI,KAAK,eAAegkB,GAAkB,EAAI,CAAE,UAAW,SAAU,UAAW,QAAS,EAC5FrB,EAAM,OAAS,QACxB3iB,EAAY,IAAI,KAAK,eAAegkB,GAAkB,EAAI,CAAE,KAAM,UAAW,MAAO,UAAW,EACtFrB,EAAM,OAAS,SACxB3iB,EAAY,IAAI,KAAK,eAAegkB,GAAkB,EAAI,CAAE,KAAM,UAAW,GAE3EhkB,EACF,OAAQpB,GAAU,MAAM,QAAQA,CAAK,EAAIoB,EAAU,YAAYpB,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,EAAIoB,EAAU,OAAOpB,CAAK,CAG/G,CAAC,EACK6lB,EAAa5B,EAAS,KAAO,CACjC,WAAYF,EAAM,OAAS,QAAUA,EAAM,OAAS,aACpD,WAAYA,EAAM,OAAS,OAC3B,YAAaA,EAAM,OAAS,QAC5B,WAAYA,EAAM,OAAS,OAC3B,MAAOA,EAAM,KAAK,SAAS,QAAQ,GAAK,CAItC,aAAc,EACtB,EACM,iBAAkB,EAAEA,EAAM,OAAS,QAAUA,EAAM,OAAS,cAC5D,KAAMA,EAAM,OAAS,WAAa,CAAC,WAAY,MAAM,EAAI,MAC/D,EAAM,EACI+B,EAAU7B,EAAS,IAAMF,EAAM,KAAO,CAAE,MAAOA,EAAM,IAAI,SAAQ,EAAI,QAASA,EAAM,IAAI,WAAU,EAAI,QAASA,EAAM,IAAI,WAAU,EAAI,EACvIgC,EAAU9B,EAAS,IAAMF,EAAM,KAAO,CAAE,MAAOA,EAAM,IAAI,SAAQ,EAAI,QAASA,EAAM,IAAI,WAAU,EAAI,QAASA,EAAM,IAAI,WAAU,EAAI,EAC7I,SAASiC,EAAmBC,EAAQ,CAClC,GAAIA,IAAW,KACb,OAAOX,EAAK,oBAAqB,IAAI,EAEvC,GAAIvB,EAAM,OAAS,OACjBuB,EAAK,oBAAqBY,EAAkBD,CAAM,CAAC,UAC1ClC,EAAM,OAAS,aAAc,CACtC,MAAMnsB,EAAQsuB,EAAkBD,EAAO,CAAC,CAAC,EACnCpuB,EAAMquB,EAAkBD,EAAO,CAAC,CAAC,EACnCpuB,EAAI,QAAO,EAAKD,EAAM,QAAO,GAC/BC,EAAI,QAAQA,EAAI,QAAO,EAAK,CAAC,EAE/BytB,EAAK,oBAAqB,CAAC1tB,EAAOC,CAAG,CAAC,CACxC,SAAWksB,EAAM,OAAS,QAAS,CACjC,MAAMoC,EAAOF,EACbX,EAAK,oBAAqB,IAAI,KAAKa,EAAK,KAAMA,EAAK,MAAO,CAAC,CAAC,CAC9D,MAAWpC,EAAM,OAAS,OACxBuB,EAAK,oBAAqB,IAAI,KAAKW,EAAQ,CAAC,CAAC,EACpClC,EAAM,OAAS,OACxBuB,EAAK,oBAAqBW,EAAO,CAAC,CAAC,EAEnCX,EAAK,oBAAqBW,CAAM,CAEpC,CACA,SAASC,EAAkBR,EAAM,CAC/B,MAAMvyB,EAAuB,IAAI,KACjC,OAAAA,EAAK,SAASuyB,EAAK,KAAK,EACxBvyB,EAAK,WAAWuyB,EAAK,OAAO,EAC5BvyB,EAAK,WAAWuyB,EAAK,OAAO,EACrBvyB,CACT,CACA,MAAMizB,EAAYC,GAAW,EACvBC,EAAW,CAAC,GAAGC,IAAgB,EACrC,QAAShb,EAAI,EAAGA,EAAI6a,EAAW7a,IAC7B+a,EAAS,KAAKA,EAAS,OAAO,EAEhC,MAAME,EAAcxB,GAAE,GAAG,EACnByB,EAAaxC,EAAS,KAAO,CACjC,cAAee,GAAE,gBAAgB,EACjC,KAAMjB,EAAM,cACZ,MAAOA,EAAM,UACb,eAAgBiB,GAAE,kBAAkB,EACpC,gBAAiBA,GAAE,mBAAmB,EACtC,eAAiB0B,GACXA,IAAS,QACJ1B,GAAE,iBAAiB,EACjB0B,IAAS,UACX1B,GAAE,mBAAmB,EAEvBA,GAAE,mBAAmB,EAE9B,eAAiB0B,GACXA,IAAS,QACJ1B,GAAE,iBAAiB,EACjB0B,IAAS,UACX1B,GAAE,mBAAmB,EAEvBA,GAAE,mBAAmB,EAE9B,cAAgB0B,GACVA,IAAS,QACJ1B,GAAE,oBAAoB,EACpB0B,IAAS,UACX1B,GAAE,sBAAsB,EAE1BA,GAAE,sBAAsB,EAEjC,WAAYA,GAAE,mBAAmB,EACjC,iBAAkBA,GAAE,oBAAoB,EACxC,kBAAmBA,GAAE,qBAAqB,EAC1C,UAAWA,GAAE,YAAY,EACzB,UAAWA,GAAE,gBAAgB,EAC7B,SAAUA,GAAE,WAAW,EACvB,SAAUA,GAAE,eAAe,EAC3B,QAAU7vB,GAAQwxB,GAAW,EAAGxxB,CAAG,EACnC,WAAY6vB,GAAE,aAAa,EAC3B,aAAcA,GAAE,eAAe,EAC/B,WAAYA,GAAE,aAAa,EAC3B,YAAc4B,GAAYA,EAAU5B,GAAE,sBAAsB,EAAIA,GAAE,cAAc,EAChF,WAAa4B,GAAYA,EAAU5B,GAAE,qBAAqB,EAAIA,GAAE,aAAa,CACnF,EAAM,EACF,SAAS6B,GAAa,CACpBpB,EAAe,MAAM,WAAU,CACjC,CACA,SAASqB,GAAkB,CACzBrB,EAAe,MAAM,UAAS,CAChC,CACA,MAAMsB,EAAiB9C,EAAS,IAC1BF,EAAM,OAAS,WACV,CACL,QAASA,EAAM,IACf,QAASA,EAAM,IACf,QAASA,EAAM,KAAO3wB,EAAM,OAAS4zB,EAAQjD,EAAM,IAAK3wB,EAAM,KAAK,EAAI0yB,EAAQ,MAAQ,OACvF,QAAS/B,EAAM,KAAO3wB,EAAM,OAAS4zB,EAAQjD,EAAM,IAAK3wB,EAAM,KAAK,EAAI2yB,EAAQ,MAAQ,MACjG,EAEUhC,EAAM,OAAS,iBACV,CACL,QAASA,EAAM,IACf,QAASA,EAAM,IACf,QAASA,EAAM,KAAO3wB,EAAM,OAAQ4zB,EAAQjD,EAAM,IAAK3wB,EAAM,MAAM,CAAC,CAAC,EAAI0yB,EAAQ,MAAiB,OAClG,QAAS/B,EAAM,KAAO3wB,EAAM,OAAQ4zB,EAAQjD,EAAM,IAAK3wB,EAAM,MAAM,CAAC,CAAC,EAAI2yB,EAAQ,MAAiB,MAC5G,EAEUhC,EAAM,OAAS,QAAUA,EAAM,OAAS,aACnC,CACL,QAASA,EAAM,IAAM+B,EAAQ,MAAQ,OACrC,QAAS/B,EAAM,IAAMgC,EAAQ,MAAQ,MAC/C,EAEa,CACL,QAAShC,EAAM,IACf,QAASA,EAAM,GACvB,CACK,EACD,SAASiD,EAAQpe,EAAGC,EAAG,CACrB,OAAOD,EAAE,YAAW,IAAOC,EAAE,YAAW,GAAMD,EAAE,SAAQ,IAAOC,EAAE,SAAQ,GAAMD,EAAE,QAAO,IAAOC,EAAE,QAAO,CAC1G,CACA,MAAO,CAAC4b,EAAMC,KACLC,EAAS,EAAIsC,EAAmB,MAAO/B,GAAY,CACxDgC,GAAYnC,EAAMoC,EAAa,EAAGC,GAAW,CAC3C,IAAK,SACL,cAAeX,EAAW,MAC1B,UAAW,CAAC7C,EAAQ,QACpB,MAAO,CAAC,uBAAwB,CAAE,kCAAmCA,EAAQ,SAAS,CAAE,EACxF,WAAYmB,EAAMC,EAAC,EAAE,QAAQ,EAC7B,UAAWpB,EAAQ,UACnB,SAAA0C,EACA,YAAa1C,EAAQ,aAAe+B,EAAoB,MACxD,OAAQC,EAAW,MACnB,OAAQhC,EAAQ,OAChB,QAASmD,EAAe,MAAM,QAC9B,QAASA,EAAe,MAAM,QAC9B,QAASA,EAAe,MAAM,QAC9B,QAASA,EAAe,MAAM,QAC9B,iBAAkBnD,EAAQ,WAC1B,WAAYxwB,EAAM,MAClB,eAAgB2xB,EAAMC,EAAC,EAAE,KAAK,EAC9B,WAAYD,EAAMC,EAAC,EAAE,MAAM,EAC3B,SAAU,OACV,OAAQpB,EAAQ,OAChB,SAAUA,EAAQ,aAAe2B,EAAc,OAAS,OAAS,GACjE,UAAW,GACX,YAAaR,EAAMyB,CAAW,EAC9B,YAAa5C,EAAQ,eAAiB,CAAE,KAAM,KAAK,EAAK,OACxD,UAAWmB,EAAMqB,CAAS,CACpC,EAAWP,EAAW,MAAO,CACnB,sBAAuBG,EACvB,OAAQtB,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKI,GAAWQ,EAAK,MAAM,EACnE,CAAS,EAAG+B,GAAY,CACd,iBAAkBC,GAAQ,IAAM,CAC9BJ,GAAYnC,EAAMwC,EAAQ,EAAG,CAC3B,KAAM,QACN,QAAS,WACT,QAAST,CACvB,EAAe,CACD,QAASQ,GAAQ,IAAM,CACrBE,GAAgBC,GAAgB1C,EAAMC,EAAC,EAAE,QAAQ,CAAC,EAAG,CAAC,CACtE,CAAe,EACD,EAAG,CACjB,CAAa,EACDkC,GAAYnC,EAAMwC,EAAQ,EAAG,CAC3B,KAAM,QACN,QAAS,UACT,QAASV,CACvB,EAAe,CACD,QAASS,GAAQ,IAAM,CACrBE,GAAgBC,GAAgB1C,EAAMC,EAAC,EAAE,MAAM,CAAC,EAAG,CAAC,CACpE,CAAe,EACD,EAAG,CACjB,CAAa,CACb,CAAW,EACD,aAAcsC,GAAQ,CAAC,CAAE,MAAAI,KAAY,CACnCR,GAAYnC,EAAMwC,EAAQ,EAAG,CAC3B,aAAcxC,EAAMC,EAAC,EAAE,aAAa,EACpC,QAAS,yBACT,QAAS0C,CACvB,EAAe,CACD,KAAMJ,GAAQ,IAAM,CAClBJ,GAAYS,GAAkB,CAC5B,OAAQ,GACR,KAAM5C,EAAM6C,EAAQ,EACpB,KAAM,EACxB,EAAmB,KAAM,EAAG,CAAC,MAAM,CAAC,CACpC,CAAe,EACD,EAAG,CACjB,EAAe,EAAG,CAAC,aAAc,SAAS,CAAC,CAC3C,CAAW,EACD,aAAcN,GAAQ,IAAM,CAC1BJ,GAAYS,GAAkB,CAC5B,KAAM5C,EAAM8C,EAAgB,EAC5B,KAAM,EACpB,EAAe,KAAM,EAAG,CAAC,MAAM,CAAC,CAChC,CAAW,EACD,aAAcP,GAAQ,IAAM,CAC1BJ,GAAYS,GAAkB,CAC5B,OAAQ,GACR,KAAM5C,EAAM+C,EAAQ,EACpB,KAAM,EACpB,EAAe,KAAM,EAAG,CAAC,MAAM,CAAC,CAChC,CAAW,EACD,aAAcR,GAAQ,IAAM,CAC1BJ,GAAYS,GAAkB,CAC5B,OAAQ,GACR,KAAM5C,EAAMgD,EAAc,EAC1B,KAAM,EACpB,EAAe,KAAM,EAAG,CAAC,MAAM,CAAC,CAChC,CAAW,EACD,cAAeT,GAAQ,IAAM,CAC3BJ,GAAYS,GAAkB,CAC5B,OAAQ,GACR,KAAM5C,EAAMiD,EAAe,EAC3B,KAAM,EACpB,EAAe,KAAM,EAAG,CAAC,MAAM,CAAC,CAChC,CAAW,EACD,aAAcV,GAAQ,IAAM,CAC1BJ,GAAYS,GAAkB,CAC5B,OAAQ,GACR,KAAM5C,EAAMkD,EAAc,EAC1B,KAAM,EACpB,EAAe,KAAM,EAAG,CAAC,MAAM,CAAC,CAChC,CAAW,EACD,WAAYX,GAAQ,IAAM,CACxBJ,GAAYS,GAAkB,CAC5B,OAAQ,GACR,KAAM5C,EAAMmD,EAAY,EACxB,KAAM,EACpB,EAAe,KAAM,EAAG,CAAC,MAAM,CAAC,CAChC,CAAW,EACD,EAAG,CACb,EAAW,CACDtE,EAAQ,mBAAqB,CAC3B,KAAM,eACN,GAAI0D,GAAQ,IAAM,CAChBJ,GAAYiB,GAAa,CACvB,WAAY9E,EAAW,MACvB,sBAAuBqB,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKI,GAAWzB,EAAW,MAAQyB,GAChF,MAAO,iCACP,aAAc,GACd,WAAYC,EAAMC,EAAC,EAAE,WAAW,CAChD,EAAiB,KAAM,EAAG,CAAC,aAAc,YAAY,CAAC,CACtD,CAAa,EACD,IAAK,GACjB,EAAc,MACd,CAAS,EAAG,KAAM,CAAC,cAAe,YAAa,QAAS,aAAc,YAAa,cAAe,SAAU,SAAU,UAAW,UAAW,UAAW,UAAW,mBAAoB,aAAc,iBAAkB,aAAc,SAAU,WAAY,cAAe,cAAe,WAAW,CAAC,GAC3RL,EAAS,EAAIC,GAAYwD,GAAU,CAClC,GAAI,OACJ,SAAU,CAACxE,EAAQ,YAC7B,EAAW,CACDyE,GAAmB,MAAOlD,GAAY,KAAM,GAAG,CACzD,EAAW,EAAG,CAAC,UAAU,CAAC,EAC1B,CAAO,EAEL,CACF,CAAC,EACKmD,GAAmCC,GAAY/E,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123]} \ No newline at end of file diff --git a/dist/index-CMXcwXc6.chunk.mjs.map.license b/dist/index-CQct0mOs.chunk.mjs.map.license similarity index 100% rename from dist/index-CMXcwXc6.chunk.mjs.map.license rename to dist/index-CQct0mOs.chunk.mjs.map.license diff --git a/dist/index-xEyWukTf.chunk.mjs b/dist/index-CcOuN-F7.chunk.mjs similarity index 99% rename from dist/index-xEyWukTf.chunk.mjs rename to dist/index-CcOuN-F7.chunk.mjs index 3bdf7556b94..193a7f7497b 100644 --- a/dist/index-xEyWukTf.chunk.mjs +++ b/dist/index-CcOuN-F7.chunk.mjs @@ -1,4 +1,4 @@ -import{d as j}from"./index-B-dGqfIG.chunk.mjs";import{g as B,u as q,s as V}from"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import{N as z}from"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import{r as Y,o as E,f as A,g as T,t as k,c as X,h as W,Q as F,y as O,m as Q,N as I,a7 as _,e as Z}from"./Web-BwmPK40i.chunk.mjs";import{r as G,s as J,x as tt,b as P,_ as H,n as et,c as D}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{e as it,a as nt}from"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import{e as rt}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{l as U}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./index-BLNGy7h5.chunk.mjs";import{g as ot,s as st}from"./index-C_wPY1fR.chunk.mjs";import"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import"./index-BOH7nBEM.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./public-C1mLBHT3.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";if(Array.prototype.find||(Array.prototype.find=function(s){if(this===null)throw new TypeError("Array.prototype.find called on null or undefined");if(typeof s!="function")throw new TypeError("predicate must be a function");for(var t=Object(this),e=t.length>>>0,i=arguments[1],n,r=0;r{n.key===e.keyCode&&(t.commandEvent=!0,t.callbacks()[n.value.toLowerCase()](e,i))})}input(t,e){t.inputEvent=!0,t.keyup.call(this,t,e)}click(t,e){let i=t.tribute;if(i.menu&&i.menu.contains(e.target)){let n=e.target;for(e.preventDefault(),e.stopPropagation();n.nodeName.toLowerCase()!=="li";)if(n=n.parentNode,!n||n===i.menu)throw new Error("cannot find the
  • container for the click");i.selectItemAtIndex(n.getAttribute("data-index"),e),i.hideMenu()}else i.current.element&&!i.current.externalTrigger&&(i.current.externalTrigger=!1,setTimeout(()=>i.hideMenu()))}keyup(t,e){if(t.inputEvent&&(t.inputEvent=!1),t.updateSelection(this),e.keyCode!==27){if(!t.tribute.allowSpaces&&t.tribute.hasTrailingSpace){t.tribute.hasTrailingSpace=!1,t.commandEvent=!0,t.callbacks().space(e,this);return}if(!t.tribute.isActive)if(t.tribute.autocompleteMode)t.callbacks().triggerChar(e,this,"");else{let i=t.getKeyCode(t,this,e);if(isNaN(i)||!i)return;let n=t.tribute.triggers().find(r=>r.charCodeAt(0)===i);typeof n<"u"&&t.callbacks().triggerChar(e,this,n)}t.tribute.current.mentionText.length{t.keyCode===i.key&&(e=!0)}),!e}return!1}getKeyCode(t,e,i){let n=t.tribute,r=n.range.getTriggerInfo(!1,n.hasTrailingSpace,!0,n.allowSpaces,n.autocompleteMode);return r?r.mentionTriggerChar.charCodeAt(0):!1}updateSelection(t){this.tribute.current.element=t;let e=this.tribute.range.getTriggerInfo(!1,this.tribute.hasTrailingSpace,!0,this.tribute.allowSpaces,this.tribute.autocompleteMode);e&&(this.tribute.current.selectedPath=e.mentionSelectedPath,this.tribute.current.mentionText=e.mentionText,this.tribute.current.selectedOffset=e.mentionSelectedOffset)}callbacks(){return{triggerChar:(t,e,i)=>{let n=this.tribute;n.current.trigger=i;let r=n.collection.find(o=>o.trigger===i);n.current.collection=r,n.current.mentionText.length>=n.current.collection.menuShowMinLength&&n.inputEvent&&n.showMenuFor(e,!0)},enter:(t,e)=>{this.tribute.isActive&&this.tribute.current.filteredItems&&(t.preventDefault(),t.stopPropagation(),setTimeout(()=>{this.tribute.selectItemAtIndex(this.tribute.menuSelected,t),this.tribute.hideMenu()},0))},escape:(t,e)=>{this.tribute.isActive&&(t.preventDefault(),t.stopPropagation(),this.tribute.isActive=!1,this.tribute.hideMenu())},tab:(t,e)=>{this.callbacks().enter(t,e)},space:(t,e)=>{this.tribute.isActive&&(this.tribute.spaceSelectsMatch?this.callbacks().enter(t,e):this.tribute.allowSpaces||(t.stopPropagation(),setTimeout(()=>{this.tribute.hideMenu(),this.tribute.isActive=!1},0)))},up:(t,e)=>{if(this.tribute.isActive&&this.tribute.current.filteredItems){t.preventDefault(),t.stopPropagation();let i=this.tribute.current.filteredItems.length,n=this.tribute.menuSelected;i>n&&n>0?(this.tribute.menuSelected--,this.setActiveLi()):n===0&&(this.tribute.menuSelected=i-1,this.setActiveLi(),this.tribute.menu.scrollTop=this.tribute.menu.scrollHeight)}},down:(t,e)=>{if(this.tribute.isActive&&this.tribute.current.filteredItems){t.preventDefault(),t.stopPropagation();let i=this.tribute.current.filteredItems.length-1,n=this.tribute.menuSelected;i>n?(this.tribute.menuSelected++,this.setActiveLi()):i===n&&(this.tribute.menuSelected=0,this.setActiveLi(),this.tribute.menu.scrollTop=0)}},delete:(t,e)=>{this.tribute.isActive&&this.tribute.current.mentionText.length<1?this.tribute.hideMenu():this.tribute.isActive&&this.tribute.showMenuFor(e)}}}setActiveLi(t){let e=this.tribute.menu.querySelectorAll("li"),i=e.length>>>0;t&&(this.tribute.menuSelected=parseInt(t));for(let n=0;nl.bottom){let u=o.bottom-l.bottom;this.tribute.menu.scrollTop+=u}else if(o.top{this.tribute.isActive&&this.tribute.showMenuFor(this.tribute.current.element,!1)},300,!1),this.windowResizeEvent=this.debounce(()=>{this.tribute.isActive&&this.tribute.range.positionMenuAtCaret(!0)},300,!1),this.tribute.range.getDocument().addEventListener("MSPointerDown",this.menuClickEvent,!1),this.tribute.range.getDocument().addEventListener("mousedown",this.menuClickEvent,!1),window.addEventListener("resize",this.windowResizeEvent),this.menuContainer?this.menuContainer.addEventListener("scroll",this.menuContainerScrollEvent,!1):window.addEventListener("scroll",this.menuContainerScrollEvent)}unbind(t){this.tribute.range.getDocument().removeEventListener("mousedown",this.menuClickEvent,!1),this.tribute.range.getDocument().removeEventListener("MSPointerDown",this.menuClickEvent,!1),window.removeEventListener("resize",this.windowResizeEvent),this.menuContainer?this.menuContainer.removeEventListener("scroll",this.menuContainerScrollEvent,!1):window.removeEventListener("scroll",this.menuContainerScrollEvent)}debounce(t,e,i){var n;return()=>{var r=this,o=arguments,l=()=>{n=null,i||t.apply(r,o)},u=i&&!n;clearTimeout(n),n=setTimeout(l,e),u&&t.apply(r,o)}}}class at{constructor(t){this.tribute=t,this.tribute.range=this}getDocument(){let t;return this.tribute.current.collection&&(t=this.tribute.current.collection.iframe),t?t.contentWindow.document:document}positionMenuAtCaret(t){let e=this.tribute.current,i,n=this.getTriggerInfo(!1,this.tribute.hasTrailingSpace,!0,this.tribute.allowSpaces,this.tribute.autocompleteMode);if(typeof n<"u"){if(!this.tribute.positionMenu){this.tribute.menu.style.cssText="display: block;";return}this.isContentEditable(e.element)?i=this.getContentEditableCaretPosition(n.mentionPosition):i=this.getTextAreaOrInputUnderlinePosition(this.tribute.current.element,n.mentionPosition),this.tribute.menu.style.cssText=`top: ${i.top}px; +import{d as j}from"./index-B-dGqfIG.chunk.mjs";import{g as B,u as q,s as V}from"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import{N as z}from"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import{r as Y,o as E,f as A,g as T,t as k,c as X,h as W,Q as F,y as O,m as Q,N as I,a7 as _,e as Z}from"./Web-BwmPK40i.chunk.mjs";import{r as G,s as J,x as tt,b as P,_ as H,n as et,c as D}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{e as it,a as nt}from"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import{e as rt}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{l as U}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./index-BLNGy7h5.chunk.mjs";import{g as ot,s as st}from"./index-BrjNu3x_.chunk.mjs";import"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import"./index-dqLzhRZM.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./public-C1mLBHT3.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";if(Array.prototype.find||(Array.prototype.find=function(s){if(this===null)throw new TypeError("Array.prototype.find called on null or undefined");if(typeof s!="function")throw new TypeError("predicate must be a function");for(var t=Object(this),e=t.length>>>0,i=arguments[1],n,r=0;r{n.key===e.keyCode&&(t.commandEvent=!0,t.callbacks()[n.value.toLowerCase()](e,i))})}input(t,e){t.inputEvent=!0,t.keyup.call(this,t,e)}click(t,e){let i=t.tribute;if(i.menu&&i.menu.contains(e.target)){let n=e.target;for(e.preventDefault(),e.stopPropagation();n.nodeName.toLowerCase()!=="li";)if(n=n.parentNode,!n||n===i.menu)throw new Error("cannot find the
  • container for the click");i.selectItemAtIndex(n.getAttribute("data-index"),e),i.hideMenu()}else i.current.element&&!i.current.externalTrigger&&(i.current.externalTrigger=!1,setTimeout(()=>i.hideMenu()))}keyup(t,e){if(t.inputEvent&&(t.inputEvent=!1),t.updateSelection(this),e.keyCode!==27){if(!t.tribute.allowSpaces&&t.tribute.hasTrailingSpace){t.tribute.hasTrailingSpace=!1,t.commandEvent=!0,t.callbacks().space(e,this);return}if(!t.tribute.isActive)if(t.tribute.autocompleteMode)t.callbacks().triggerChar(e,this,"");else{let i=t.getKeyCode(t,this,e);if(isNaN(i)||!i)return;let n=t.tribute.triggers().find(r=>r.charCodeAt(0)===i);typeof n<"u"&&t.callbacks().triggerChar(e,this,n)}t.tribute.current.mentionText.length{t.keyCode===i.key&&(e=!0)}),!e}return!1}getKeyCode(t,e,i){let n=t.tribute,r=n.range.getTriggerInfo(!1,n.hasTrailingSpace,!0,n.allowSpaces,n.autocompleteMode);return r?r.mentionTriggerChar.charCodeAt(0):!1}updateSelection(t){this.tribute.current.element=t;let e=this.tribute.range.getTriggerInfo(!1,this.tribute.hasTrailingSpace,!0,this.tribute.allowSpaces,this.tribute.autocompleteMode);e&&(this.tribute.current.selectedPath=e.mentionSelectedPath,this.tribute.current.mentionText=e.mentionText,this.tribute.current.selectedOffset=e.mentionSelectedOffset)}callbacks(){return{triggerChar:(t,e,i)=>{let n=this.tribute;n.current.trigger=i;let r=n.collection.find(o=>o.trigger===i);n.current.collection=r,n.current.mentionText.length>=n.current.collection.menuShowMinLength&&n.inputEvent&&n.showMenuFor(e,!0)},enter:(t,e)=>{this.tribute.isActive&&this.tribute.current.filteredItems&&(t.preventDefault(),t.stopPropagation(),setTimeout(()=>{this.tribute.selectItemAtIndex(this.tribute.menuSelected,t),this.tribute.hideMenu()},0))},escape:(t,e)=>{this.tribute.isActive&&(t.preventDefault(),t.stopPropagation(),this.tribute.isActive=!1,this.tribute.hideMenu())},tab:(t,e)=>{this.callbacks().enter(t,e)},space:(t,e)=>{this.tribute.isActive&&(this.tribute.spaceSelectsMatch?this.callbacks().enter(t,e):this.tribute.allowSpaces||(t.stopPropagation(),setTimeout(()=>{this.tribute.hideMenu(),this.tribute.isActive=!1},0)))},up:(t,e)=>{if(this.tribute.isActive&&this.tribute.current.filteredItems){t.preventDefault(),t.stopPropagation();let i=this.tribute.current.filteredItems.length,n=this.tribute.menuSelected;i>n&&n>0?(this.tribute.menuSelected--,this.setActiveLi()):n===0&&(this.tribute.menuSelected=i-1,this.setActiveLi(),this.tribute.menu.scrollTop=this.tribute.menu.scrollHeight)}},down:(t,e)=>{if(this.tribute.isActive&&this.tribute.current.filteredItems){t.preventDefault(),t.stopPropagation();let i=this.tribute.current.filteredItems.length-1,n=this.tribute.menuSelected;i>n?(this.tribute.menuSelected++,this.setActiveLi()):i===n&&(this.tribute.menuSelected=0,this.setActiveLi(),this.tribute.menu.scrollTop=0)}},delete:(t,e)=>{this.tribute.isActive&&this.tribute.current.mentionText.length<1?this.tribute.hideMenu():this.tribute.isActive&&this.tribute.showMenuFor(e)}}}setActiveLi(t){let e=this.tribute.menu.querySelectorAll("li"),i=e.length>>>0;t&&(this.tribute.menuSelected=parseInt(t));for(let n=0;nl.bottom){let u=o.bottom-l.bottom;this.tribute.menu.scrollTop+=u}else if(o.top{this.tribute.isActive&&this.tribute.showMenuFor(this.tribute.current.element,!1)},300,!1),this.windowResizeEvent=this.debounce(()=>{this.tribute.isActive&&this.tribute.range.positionMenuAtCaret(!0)},300,!1),this.tribute.range.getDocument().addEventListener("MSPointerDown",this.menuClickEvent,!1),this.tribute.range.getDocument().addEventListener("mousedown",this.menuClickEvent,!1),window.addEventListener("resize",this.windowResizeEvent),this.menuContainer?this.menuContainer.addEventListener("scroll",this.menuContainerScrollEvent,!1):window.addEventListener("scroll",this.menuContainerScrollEvent)}unbind(t){this.tribute.range.getDocument().removeEventListener("mousedown",this.menuClickEvent,!1),this.tribute.range.getDocument().removeEventListener("MSPointerDown",this.menuClickEvent,!1),window.removeEventListener("resize",this.windowResizeEvent),this.menuContainer?this.menuContainer.removeEventListener("scroll",this.menuContainerScrollEvent,!1):window.removeEventListener("scroll",this.menuContainerScrollEvent)}debounce(t,e,i){var n;return()=>{var r=this,o=arguments,l=()=>{n=null,i||t.apply(r,o)},u=i&&!n;clearTimeout(n),n=setTimeout(l,e),u&&t.apply(r,o)}}}class at{constructor(t){this.tribute=t,this.tribute.range=this}getDocument(){let t;return this.tribute.current.collection&&(t=this.tribute.current.collection.iframe),t?t.contentWindow.document:document}positionMenuAtCaret(t){let e=this.tribute.current,i,n=this.getTriggerInfo(!1,this.tribute.hasTrailingSpace,!0,this.tribute.allowSpaces,this.tribute.autocompleteMode);if(typeof n<"u"){if(!this.tribute.positionMenu){this.tribute.menu.style.cssText="display: block;";return}this.isContentEditable(e.element)?i=this.getContentEditableCaretPosition(n.mentionPosition):i=this.getTextAreaOrInputUnderlinePosition(this.tribute.current.element,n.mentionPosition),this.tribute.menu.style.cssText=`top: ${i.top}px; left: ${i.left}px; right: ${i.right}px; bottom: ${i.bottom}px; @@ -10,4 +10,4 @@ import{d as j}from"./index-B-dGqfIG.chunk.mjs";import{g as B,u as q,s as V}from" visibility; hidden;`,t.width=this.tribute.menu.offsetWidth,t.height=this.tribute.menu.offsetHeight,this.tribute.menu.style.cssText="display: none;",t}getTextAreaOrInputUnderlinePosition(t,e,i){let n=["direction","boxSizing","width","height","overflowX","overflowY","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","paddingTop","paddingRight","paddingBottom","paddingLeft","fontStyle","fontVariant","fontWeight","fontStretch","fontSize","fontSizeAdjust","lineHeight","fontFamily","textAlign","textTransform","textIndent","textDecoration","letterSpacing","wordSpacing"],r=window.mozInnerScreenX!==null,o=this.getDocument().createElement("div");o.id="input-textarea-caret-position-mirror-div",this.getDocument().body.appendChild(o);let l=o.style,u=window.getComputedStyle?getComputedStyle(t):t.currentStyle;l.whiteSpace="pre-wrap",t.nodeName!=="INPUT"&&(l.wordWrap="break-word"),l.position="absolute",l.visibility="hidden",n.forEach(C=>{l[C]=u[C]}),r?(l.width=`${parseInt(u.width)-2}px`,t.scrollHeight>parseInt(u.height)&&(l.overflowY="scroll")):l.overflow="hidden",o.textContent=t.value.substring(0,e),t.nodeName==="INPUT"&&(o.textContent=o.textContent.replace(/\s/g," "));let c=this.getDocument().createElement("span");c.textContent=t.value.substring(e)||".",o.appendChild(c);let a=t.getBoundingClientRect(),m=document.documentElement,h=(window.pageXOffset||m.scrollLeft)-(m.clientLeft||0),g=(window.pageYOffset||m.scrollTop)-(m.clientTop||0),d=0,f=0;this.menuContainerIsBody&&(d=a.top,f=a.left);let p={top:d+g+c.offsetTop+parseInt(u.borderTopWidth)+parseInt(u.fontSize)-t.scrollTop,left:f+h+c.offsetLeft+parseInt(u.borderLeftWidth)},v=window.innerWidth,x=window.innerHeight,w=this.getMenuDimensions(),y=this.isMenuOffScreen(p,w);y.right&&(p.right=v-p.left,p.left="auto");let N=this.tribute.menuContainer?this.tribute.menuContainer.offsetHeight:this.getDocument().body.offsetHeight;if(y.bottom){let C=this.tribute.menuContainer?this.tribute.menuContainer.getBoundingClientRect():this.getDocument().body.getBoundingClientRect(),b=N-(x-C.top);p.bottom=b+(x-a.top-c.offsetTop),p.top="auto"}return y=this.isMenuOffScreen(p,w),y.left&&(p.left=v>w.width?h+v-w.width:h,delete p.right),y.top&&(p.top=x>w.height?g+x-w.height:g,delete p.bottom),this.getDocument().body.removeChild(o),p}getContentEditableCaretPosition(t){let e,i=this.getWindowSelection();e=this.getDocument().createRange(),e.setStart(i.anchorNode,t),e.setEnd(i.anchorNode,t),e.collapse(!1);let n=e.getBoundingClientRect(),r=document.documentElement,o=(window.pageXOffset||r.scrollLeft)-(r.clientLeft||0),l=(window.pageYOffset||r.scrollTop)-(r.clientTop||0),u=n.left,c=n.top,a={left:u+o,top:c+n.height+l},m=window.innerWidth,h=window.innerHeight,g=this.getMenuDimensions(),d=this.isMenuOffScreen(a,g);d.right&&(a.left="auto",a.right=m-n.left-o);let f=this.tribute.menuContainer?this.tribute.menuContainer.offsetHeight:this.getDocument().body.offsetHeight;if(d.bottom){let p=this.tribute.menuContainer?this.tribute.menuContainer.getBoundingClientRect():this.getDocument().body.getBoundingClientRect(),v=f-(h-p.top);a.top="auto",a.bottom=v+(h-n.top)}return d=this.isMenuOffScreen(a,g),d.left&&(a.left=m>g.width?o+m-g.width:o,delete a.right),d.top&&(a.top=h>g.height?l+h-g.height:l,delete a.bottom),this.menuContainerIsBody||(a.left=a.left?a.left-this.tribute.menuContainer.offsetLeft:a.left,a.top=a.top?a.top-this.tribute.menuContainer.offsetTop:a.top),a}scrollIntoView(t){let e=20,i,n=100,r=this.menu;if(typeof r>"u")return;for(;i===void 0||i.height===0;)if(i=r.getBoundingClientRect(),i.height===0&&(r=r.childNodes[0],r===void 0||!r.getBoundingClientRect))return;let o=i.top,l=o+i.height;if(o<0)window.scrollTo(0,window.pageYOffset+i.top-e);else if(l>window.innerHeight){let u=window.pageYOffset+i.top-e;u-window.pageYOffset>n&&(u=window.pageYOffset+n);let c=window.pageYOffset-(window.innerHeight-l);c>u&&(c=u),window.scrollTo(0,c)}}}class ut{constructor(t){this.tribute=t,this.tribute.search=this}simpleFilter(t,e){return e.filter(i=>this.test(t,i))}test(t,e){return this.match(t,e)!==null}match(t,e,i){i=i||{},e.length;let n=i.pre||"",r=i.post||"",o=i.caseSensitive&&e||e.toLowerCase();if(i.skip)return{rendered:e,score:0};t=i.caseSensitive&&t||t.toLowerCase();let l=this.traverse(o,t,0,0,[]);return l?{rendered:this.render(e,l.cache,n,r),score:l.score}:null}traverse(t,e,i,n,r){if(e.length===n)return{score:this.calculateScore(r),cache:r.slice()};if(t.length===i||e.length-n>t.length-i)return;let o=e[n],l=t.indexOf(o,i),u,c;for(;l>-1;){if(r.push(l),c=this.traverse(t,e,l+1,n+1,r),r.pop(),!c)return u;(!u||u.score{r>0&&(t[r-1]+1===n?i+=i+1:i=1),e+=i}),e}render(t,e,i,n){var r=t.substring(0,e[0]);return e.forEach((o,l)=>{r+=i+t[o]+n+t.substring(o+1,e[l+1]?e[l+1]:t.length)}),r}filter(t,e,i){return i=i||{},e.reduce((n,r,o,l)=>{let u=r;i.extract&&(u=i.extract(r),u||(u=""));let c=this.match(t,u,i);return c!=null&&(n[n.length]={string:c.rendered,score:c.score,index:o,original:r}),n},[]).sort((n,r)=>r.score-n.score||n.index-r.index)}}class S{constructor({values:t=null,iframe:e=null,selectClass:i="highlight",containerClass:n="tribute-container",itemClass:r="",trigger:o="@",autocompleteMode:l=!1,selectTemplate:u=null,menuItemTemplate:c=null,lookup:a="key",fillAttr:m="value",collection:h=null,menuContainer:g=null,noMatchTemplate:d=null,requireLeadingSpace:f=!0,allowSpaces:p=!1,replaceTextSuffix:v=null,positionMenu:x=!0,spaceSelectsMatch:w=!1,searchOpts:y={},menuItemLimit:N=null,menuShowMinLength:C=0}){if(this.autocompleteMode=l,this.menuSelected=0,this.current={},this.inputEvent=!1,this.isActive=!1,this.menuContainer=g,this.allowSpaces=p,this.replaceTextSuffix=v,this.positionMenu=x,this.hasTrailingSpace=!1,this.spaceSelectsMatch=w,this.autocompleteMode&&(o="",p=!1),t)this.collection=[{trigger:o,iframe:e,selectClass:i,containerClass:n,itemClass:r,selectTemplate:(u||S.defaultSelectTemplate).bind(this),menuItemTemplate:(c||S.defaultMenuItemTemplate).bind(this),noMatchTemplate:(b=>typeof b=="string"?b.trim()===""?null:b:typeof b=="function"?b.bind(this):d||function(){return"
  • No Match Found!
  • "}.bind(this))(d),lookup:a,fillAttr:m,values:t,requireLeadingSpace:f,searchOpts:y,menuItemLimit:N,menuShowMinLength:C}];else if(h)this.autocompleteMode&&console.warn("Tribute in autocomplete mode does not work for collections"),this.collection=h.map(b=>({trigger:b.trigger||o,iframe:b.iframe||e,selectClass:b.selectClass||i,containerClass:b.containerClass||n,itemClass:b.itemClass||r,selectTemplate:(b.selectTemplate||S.defaultSelectTemplate).bind(this),menuItemTemplate:(b.menuItemTemplate||S.defaultMenuItemTemplate).bind(this),noMatchTemplate:(M=>typeof M=="string"?M.trim()===""?null:M:typeof M=="function"?M.bind(this):d||function(){return"
  • No Match Found!
  • "}.bind(this))(d),lookup:b.lookup||a,fillAttr:b.fillAttr||m,values:b.values,requireLeadingSpace:b.requireLeadingSpace,searchOpts:b.searchOpts||y,menuItemLimit:b.menuItemLimit||N,menuShowMinLength:b.menuShowMinLength||C}));else throw new Error("[Tribute] No collection specified.");new at(this),new R(this),new lt(this),new ut(this)}get isActive(){return this._isActive}set isActive(t){if(this._isActive!=t&&(this._isActive=t,this.current.element)){let e=new CustomEvent(`tribute-active-${t}`);this.current.element.dispatchEvent(e)}}static defaultSelectTemplate(t){return typeof t>"u"?`${this.current.collection.trigger}${this.current.mentionText}`:this.range.isContentEditable(this.current.element)?''+(this.current.collection.trigger+t.original[this.current.collection.fillAttr])+"":this.current.collection.trigger+t.original[this.current.collection.fillAttr]}static defaultMenuItemTemplate(t){return t.string}static inputTypes(){return["TEXTAREA","INPUT"]}triggers(){return this.collection.map(t=>t.trigger)}attach(t){if(!t)throw new Error("[Tribute] Must pass in a DOM node or NodeList.");if(typeof jQuery<"u"&&t instanceof jQuery&&(t=t.get()),t.constructor===NodeList||t.constructor===HTMLCollection||t.constructor===Array){let i=t.length;for(var e=0;e{if(!this.isActive)return;let r=this.search.filter(this.current.mentionText,n,{pre:this.current.collection.searchOpts.pre||"",post:this.current.collection.searchOpts.post||"",skip:this.current.collection.searchOpts.skip,extract:u=>{if(typeof this.current.collection.lookup=="string")return u[this.current.collection.lookup];if(typeof this.current.collection.lookup=="function")return this.current.collection.lookup(u,this.current.mentionText);throw new Error("Invalid lookup attribute, lookup must be string or function.")}});this.current.collection.menuItemLimit&&(r=r.slice(0,this.current.collection.menuItemLimit)),this.current.filteredItems=r;let o=this.menu.querySelector("ul");if(this.range.positionMenuAtCaret(e),!r.length){let u=new CustomEvent("tribute-no-match",{detail:this.menu});this.current.element.dispatchEvent(u),typeof this.current.collection.noMatchTemplate=="function"&&!this.current.collection.noMatchTemplate()||!this.current.collection.noMatchTemplate?this.hideMenu():typeof this.current.collection.noMatchTemplate=="function"?o.innerHTML=this.current.collection.noMatchTemplate():o.innerHTML=this.current.collection.noMatchTemplate;return}o.innerHTML="";let l=this.range.getDocument().createDocumentFragment();r.forEach((u,c)=>{let a=this.range.getDocument().createElement("li");a.setAttribute("data-index",c),a.className=this.current.collection.itemClass,a.addEventListener("mousemove",m=>{let[h,g]=this._findLiTarget(m.target);m.movementY!==0&&this.events.setActiveLi(g)}),this.menuSelected===c&&a.classList.add(this.current.collection.selectClass),a.innerHTML=this.current.collection.menuItemTemplate(u),l.appendChild(a)}),o.appendChild(l)};typeof this.current.collection.values=="function"?this.current.collection.values(this.current.mentionText,i):i(this.current.collection.values)}_findLiTarget(t){if(!t)return[];const e=t.getAttribute("data-index");return e?[t,e]:this._findLiTarget(t.parentNode)}showMenuForCollection(t,e){t!==document.activeElement&&this.placeCaretAtEnd(t),this.current.collection=this.collection[e||0],this.current.externalTrigger=!0,this.current.element=t,t.isContentEditable?this.insertTextAtCursor(this.current.collection.trigger):this.insertAtCaret(t,this.current.collection.trigger),this.showMenuFor(t)}placeCaretAtEnd(t){if(t.focus(),typeof window.getSelection<"u"&&typeof document.createRange<"u"){var e=document.createRange();e.selectNodeContents(t),e.collapse(!1);var i=window.getSelection();i.removeAllRanges(),i.addRange(e)}else if(typeof document.body.createTextRange<"u"){var n=document.body.createTextRange();n.moveToElementText(t),n.collapse(!1),n.select()}}insertTextAtCursor(t){var e,i;e=window.getSelection(),i=e.getRangeAt(0),i.deleteContents();var n=document.createTextNode(t);i.insertNode(n),i.selectNodeContents(n),i.collapse(!1),e.removeAllRanges(),e.addRange(i)}insertAtCaret(t,e){var i=t.scrollTop,n=t.selectionStart,r=t.value.substring(0,n),o=t.value.substring(t.selectionEnd,t.value.length);t.value=r+e+o,n=n+e.length,t.selectionStart=n,t.selectionEnd=n,t.focus(),t.scrollTop=i}hideMenu(){this.menu&&(this.menu.style.cssText="display: none;",this.isActive=!1,this.menuSelected=0,this.current={})}selectItemAtIndex(t,e){if(t=parseInt(t),typeof t!="number"||isNaN(t))return;let i=this.current.filteredItems[t],n=this.current.collection.selectTemplate(i);n!==null&&this.replaceText(n,e,i)}replaceText(t,e,i){this.range.replaceTriggerText(t,!0,!0,e,i)}_append(t,e,i){if(typeof t.values=="function")throw new Error("Unable to append to values, as it is a function.");i?t.values=e:t.values=t.values.concat(e)}append(t,e,i){let n=parseInt(t);if(typeof n!="number")throw new Error("please provide an index for the collection to update.");let r=this.collection[n];this._append(r,e,i)}appendCurrent(t,e){if(this.isActive)this._append(this.current.collection,t,e);else throw new Error("No active state. Please use append instead and pass an index.")}detach(t){if(!t)throw new Error("[Tribute] Must pass in a DOM node or NodeList.");if(typeof jQuery<"u"&&t instanceof jQuery&&(t=t.get()),t.constructor===NodeList||t.constructor===HTMLCollection||t.constructor===Array){let i=t.length;for(var e=0;e{t.removeAttribute("data-tribute"),this.isActive=!1,t.tributeMenu&&t.tributeMenu.remove()})}}const ct={name:"NcMentionBubble",props:{id:{type:String,required:!0},label:{type:String,required:!1,default:null},icon:{type:String,required:!0},iconUrl:{type:[String,null],default:null},source:{type:String,required:!0},primary:{type:Boolean,default:!1}},setup(){return{isDarkTheme:q()}},computed:{avatarUrl(){return this.iconUrl?this.iconUrl:this.id&&this.source==="users"?B(this.id,{isDarkTheme:this.isDarkTheme}):null},mentionText(){return!this.id.includes(" ")&&!this.id.includes("/")?`@${this.id}`:`@"${this.id}"`}}},ht={class:"mention-bubble__wrapper"},dt={class:"mention-bubble__content"},mt=["title"],pt={role:"none",class:"mention-bubble__select"};function bt(s,t,e,i,n,r){return E(),A("span",{class:O(["mention-bubble",{"mention-bubble--primary":e.primary}]),contenteditable:"false"},[T("span",ht,[T("span",dt,[T("span",{class:O([[e.icon,`mention-bubble__icon--${r.avatarUrl?"with-avatar":""}`],"mention-bubble__icon"]),style:F(r.avatarUrl?{backgroundImage:`url(${r.avatarUrl})`}:null)},null,6),T("span",{role:"heading",class:"mention-bubble__title",title:e.label},null,8,mt)]),T("span",pt,k(r.mentionText),1)])],2)}const gt=H(ct,[["render",bt],["__scopeId","data-v-45238efd"]]),K=/(?=[a-z0-9_\-@.'])\B/.source,ft=/(@[a-z0-9_\-@.']+)/.source,vt=/@"(?:guest|email){1}\/[a-f0-9]+"/.source,Tt=/@"(?:federated_)?(?:group|team|user){1}\/[a-z0-9_\-@.' /:]+"/.source,wt=/@"[a-z0-9_\-@.' ]+"/.source,yt=`(${vt}|${Tt}|${wt})`,Ct=new RegExp(`${K}${ft}`,"gi"),St=new RegExp(`${K}${yt}`,"gi"),Et={props:{userData:{type:Object,default:()=>({})}},methods:{renderContent(s){return rt(s).split(Ct).map(t=>t.split(St)).flat().map(t=>{if(!t.startsWith("@"))return t;const e=t.slice(1).replace(/"/gi,"");return this.genSelectTemplate(e)}).join("").replace(/\n/gmi,"
    ").replace(/&/gmi,"&")},parseContent(s){let t=s;return t=t.replace(/
    /gmi,` `),t=t.replace(/ /gmi," "),t=t.replace(/&/gmi,"&"),t=t.replace(/<\/div>/gmi,` `),t=V(t,"
    "),t=V(t),t},genSelectTemplate(s){if(typeof s>"u")return`${this.autocompleteTribute.current.collection.trigger}${this.autocompleteTribute.current.mentionText}`;const t=this.userData[s];return t?this.renderComponentHtml(t,gt).replace(/[\n\t]/gmi,"").replace(/>\s+<"):[" ","/",":"].every(e=>!s.includes(e))?`@${s}`:`@"${s}"`},renderComponentHtml(s,t){const e=Z(t,{...s}),i=document.createElement("div");i.style.display="none",document.body.appendChild(i),e.mount(i);const n=i.innerHTML;return e.unmount(),i.remove(),n}}},xt={name:"NcAutoCompleteResult",components:{NcUserStatusIcon:z},props:{label:{type:String,required:!1,default:null},subline:{type:String,default:null},id:{type:String,default:null},icon:{type:String,required:!0},iconUrl:{type:String,default:null},source:{type:String,required:!0},status:{type:[Object,Array],default:()=>({})}},setup(){return{isDarkTheme:q()}},computed:{avatarUrl(){return this.iconUrl?this.iconUrl:this.id&&this.source==="users"?B(this.id,{isDarkTheme:this.isDarkTheme}):null}}},At={class:"autocomplete-result"},Mt={key:0,class:"autocomplete-result__status autocomplete-result__status--icon"},It={class:"autocomplete-result__content"},_t=["title"],Lt={key:0,class:"autocomplete-result__subline"};function kt(s,t,e,i,n,r){const o=Y("NcUserStatusIcon");return E(),A("div",At,[T("div",{class:O([[e.icon,`autocomplete-result__icon--${r.avatarUrl?"with-avatar":""}`],"autocomplete-result__icon"]),style:F(r.avatarUrl?{backgroundImage:`url(${r.avatarUrl})`}:null)},[e.status.icon?(E(),A("span",Mt,k(e.status&&e.status.icon||""),1)):e.status.status&&e.status.status!=="offline"?(E(),X(o,{key:1,class:"autocomplete-result__status",status:e.status.status},null,8,["status"])):W("",!0)],6),T("span",It,[T("span",{class:"autocomplete-result__title",title:e.label},k(e.label),9,_t),e.subline?(E(),A("span",Lt,k(e.subline),1)):W("",!0)])])}const $t=H(xt,[["render",kt],["__scopeId","data-v-ca83b679"]]);G(tt,J);const Nt={"material-design-icon":"_material-design-icon_UrExO","tribute-container":"_tribute-container_aTO5r","tribute-container__item":"_tribute-container__item_EHZ07","tribute-container--focus-visible":"_tribute-container--focus-visible_GHsDW","tribute-container-autocomplete":"_tribute-container-autocomplete_YNk1h","tribute-container-emoji":"_tribute-container-emoji_jWgZX","tribute-container-link":"_tribute-container-link_1b7mc","tribute-item":"_tribute-item_p5sRT","tribute-item__title":"_tribute-item__title_VPcy9","tribute-item__icon":"_tribute-item__icon_aTxCU"},Dt=["d","D","p","P","s","S","x","X",")","(","|","/"],$=[];Dt.forEach(s=>{$.push(":"+s),$.push(":-"+s)});let L=null;const Ot={name:"NcRichContenteditable",mixins:[Et],inheritAttrs:!1,props:{id:{type:String,default:()=>D()},label:{type:String,default:""},modelValue:{type:String,required:!0},placeholder:{type:String,default:P("Write a message …")},autoComplete:{type:Function,default:()=>[]},menuContainer:{type:[String,Element,null],default:null},multiline:{type:Boolean,default:!1},contenteditable:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},maxlength:{type:Number,default:null},emojiAutocomplete:{type:Boolean,default:!0},linkAutocomplete:{type:Boolean,default:!0},class:{type:[String,Array,Object],default:""}},emits:["paste","update:modelValue","smartPickerSubmit","submit"],setup(){const s=new Intl.Segmenter;if(L===null)try{document.createElement("div").contentEditable="plaintext-only",L=!0}catch(t){U.debug("[NcRichContenteditable] Unsupported attribute value:",{error:t}),L=!1}return{labelId:D(),tributeId:D(),segmenter:s,tribute:null,tributeStyleMutationObserver:null}},data(){return{localValue:this.modelValue,isComposing:!1,isAutocompleteOpen:!1,autocompleteActiveId:void 0,isTributeIntegrationDone:!1}},computed:{isEmptyValue(){return!this.localValue||this.localValue.trim()===""},isOverMaxlength(){return this.isEmptyValue||!this.maxlength?!1:[...this.segmenter.segment(this.localValue)].length>this.maxlength},tooltipString(){return this.isOverMaxlength?et("Message limit of %n character reached","Message limit of %n characters reached",this.maxlength):null},contenteditableAttributeValue(){return this.contenteditable&&!this.disabled?L?"plaintext-only":"true":"false"},debouncedAutoComplete(){return j(async(s,t)=>{this.autoComplete(s,t)},100)}},watch:{modelValue(){const s=this.$refs.contenteditable.innerHTML;this.modelValue.trim()!==this.parseContent(s).trim()&&this.updateContent(this.modelValue)}},mounted(){this.initializeTribute(),this.updateContent(this.modelValue)},beforeUnmount(){this.tribute&&this.tribute.detach(this.$refs.contenteditable),this.tributeStyleMutationObserver&&this.tributeStyleMutationObserver.disconnect()},methods:{focus(){this.$refs.contenteditable.focus()},initializeTribute(){const s=i=>`
    ${i}
    `,t=[];t.push({fillAttr:"id",lookup:i=>`${i.id} ${i.label??i.title}`,requireLeadingSpace:!0,menuItemTemplate:i=>s(this.renderComponentHtml(i.original,$t)),noMatchTemplate:()=>'',selectTemplate:i=>this.genSelectTemplate(i?.original?.id),values:this.debouncedAutoComplete,containerClass:`${this.$style["tribute-container"]} ${this.$style["tribute-container-autocomplete"]}`,itemClass:this.$style["tribute-container__item"]}),this.emojiAutocomplete&&t.push({trigger:":",lookup:(i,n)=>n,requireLeadingSpace:!0,menuItemTemplate:i=>$.includes(i.original)?i.original:s(`${i.original.native} :${i.original.short_name}`),noMatchTemplate:()=>P("No emoji found"),selectTemplate:i=>$.includes(i.original)?i.original:(nt(i.original),i.original.native),values:(i,n)=>{const r=it(i);$.includes(":"+i)&&r.unshift(":"+i),n(r)},containerClass:`${this.$style["tribute-container"]} ${this.$style["tribute-container-emoji"]}`,itemClass:this.$style["tribute-container__item"]}),this.linkAutocomplete&&t.push({trigger:"/",lookup:(i,n)=>n,requireLeadingSpace:!0,menuItemTemplate:i=>s(` ${i.original.title}`),noMatchTemplate:()=>P("No link provider found"),selectTemplate:this.getLink,values:(i,n)=>n(st(i)),containerClass:`${this.$style["tribute-container"]} ${this.$style["tribute-container-link"]}`,itemClass:this.$style["tribute-container__item"]});const e=typeof this.menuContainer=="string"?document.querySelector(this.menuContainer):this.menuContainer;this.tribute=new S({collection:t,allowSpaces:!1,menuContainer:e}),this.tribute.attach(this.$refs.contenteditable),this.$refs.contenteditable.contentEditable=this.contenteditableAttributeValue},getLink(s){return ot(s.original.id).then(t=>{const e=document.getElementById("tmp-smart-picker-result-node"),i={result:t,insertText:!0};if(this.$emit("smartPickerSubmit",i),i.insertText){const n=document.createTextNode(t);e.replaceWith(n),this.setCursorAfter(n),this.updateValue(this.$refs.contenteditable.innerHTML)}else e.remove()}).catch(t=>{U.debug("[NcRichContenteditable] Smart picker promise rejected:",{error:t});const e=document.getElementById("tmp-smart-picker-result-node");this.setCursorAfter(e),e.remove()}),''},setCursorAfter(s){const t=document.createRange();t.setEndAfter(s),t.collapse();const e=window.getSelection();e.removeAllRanges(),e.addRange(t)},moveCursorToEnd(){if(!document.createRange||window.getSelection().rangeCount>0&&this.$refs.contenteditable.contains(window.getSelection().getRangeAt(0).commonAncestorContainer))return;const s=document.createRange();s.selectNodeContents(this.$refs.contenteditable),s.collapse(!1);const t=window.getSelection();t.removeAllRanges(),t.addRange(s)},onInput(s){this.updateValue(s.target.innerHTML)},onPaste(s){if(!(!this.contenteditable||this.disabled)){if(L)this.$emit("paste",s);else{s.preventDefault();const t=s.clipboardData;if(this.$emit("paste",s),t.files.length!==0||!Object.values(t.items).find(n=>n?.type.startsWith("text")))return;const e=t.getData("text"),i=window.getSelection().getRangeAt(0);i.deleteContents(),i.insertNode(document.createTextNode(e)),i.collapse(!1)}this.updateValue(this.$refs.contenteditable.innerHTML)}},updateValue(s){const t=this.parseContent(s).replace(/^\n$/,"");this.localValue=t,this.$emit("update:modelValue",t)},updateContent(s){const t=this.renderContent(s);this.$refs.contenteditable.innerHTML=t,this.localValue=s},onEnter(s){this.multiline||this.isOverMaxlength||this.tribute.isActive||this.isComposing||(s.preventDefault(),s.stopPropagation(),this.$emit("submit",s))},onCtrlEnter(s){this.isOverMaxlength||this.$emit("submit",s)},onKeyUp(s){s.stopImmediatePropagation()},onKeyEsc(s){this.tribute&&this.isAutocompleteOpen&&(s.stopImmediatePropagation(),this.tribute.hideMenu())},getTributeContainer(){return this.tribute.menu},getTributeSelectedItem(){return this.getTributeContainer().querySelector('.highlight [id^="nc-rich-contenteditable-tribute-item-"]')},onTributeActive(s){this.isAutocompleteOpen=s,s?(this.getTributeContainer().setAttribute("class",this.tribute.current.collection.containerClass||this.$style["tribute-container"]),this.setupTributeIntegration(),document.removeEventListener("click",this.hideTribute,!0)):(this.debouncedAutoComplete.clear(),this.autocompleteActiveId=void 0,this.setTributeFocusVisible(!1))},onTributeArrowKeyDown(){this.isAutocompleteOpen&&(this.setTributeFocusVisible(!0),this.onTributeSelectedItemWillChange())},onTributeSelectedItemWillChange(){requestAnimationFrame(()=>{this.autocompleteActiveId=this.getTributeSelectedItem()?.id})},setupTributeIntegration(){if(this.isTributeIntegrationDone)return;this.isTributeIntegrationDone=!0;const s=this.getTributeContainer();s.id=this.tributeId,s.setAttribute("role","listbox"),s.children[0].setAttribute("role","presentation"),this.tributeStyleMutationObserver=new MutationObserver(([{target:t}])=>{t.style.display!=="none"&&this.onTributeSelectedItemWillChange()}).observe(s,{attributes:!0,attributeFilter:["style"]}),s.addEventListener("mousemove",()=>{this.setTributeFocusVisible(!1),this.onTributeSelectedItemWillChange()},{passive:!0})},setTributeFocusVisible(s){s?this.getTributeContainer().classList.add(this.$style["tribute-container--focus-visible"]):this.getTributeContainer().classList.remove(this.$style["tribute-container--focus-visible"])},showTribute(s){this.focus();const t=this.tribute.collection.findIndex(e=>e.trigger===s);this.tribute.showMenuForCollection(this.$refs.contenteditable,t),this.updateValue(this.$refs.contenteditable.innerHTML),document.addEventListener("click",this.hideTribute,!0)},hideTribute(){this.tribute.hideMenu(),document.removeEventListener("click",this.hideTribute,!0)}}},Rt=["id","contenteditable","aria-labelledby","aria-placeholder","aria-controls","aria-expanded","aria-activedescendant","title"],Pt=["id"];function Wt(s,t,e,i,n,r){return E(),A("div",{class:O(["rich-contenteditable",s.$props.class])},[T("div",Q({id:e.id,ref:"contenteditable",class:[{"rich-contenteditable__input--empty":r.isEmptyValue,"rich-contenteditable__input--multiline":e.multiline,"rich-contenteditable__input--has-label":e.label,"rich-contenteditable__input--overflow":r.isOverMaxlength,"rich-contenteditable__input--disabled":e.disabled},"rich-contenteditable__input"],contenteditable:r.contenteditableAttributeValue,"aria-labelledby":e.label?i.labelId:void 0,"aria-placeholder":e.placeholder,"aria-multiline":"true",role:"textbox","aria-haspopup":"listbox","aria-autocomplete":"inline","aria-controls":i.tributeId,"aria-expanded":n.isAutocompleteOpen?"true":"false","aria-activedescendant":n.autocompleteActiveId,title:r.tooltipString},s.$attrs,{onFocus:t[0]||(t[0]=(...o)=>r.moveCursorToEnd&&r.moveCursorToEnd(...o)),onInput:t[1]||(t[1]=(...o)=>r.onInput&&r.onInput(...o)),onCompositionstart:t[2]||(t[2]=o=>n.isComposing=!0),onCompositionend:t[3]||(t[3]=o=>n.isComposing=!1),onKeydownCapture:t[4]||(t[4]=_((...o)=>r.onKeyEsc&&r.onKeyEsc(...o),["esc"])),onKeydown:[t[5]||(t[5]=_(I((...o)=>r.onEnter&&r.onEnter(...o),["exact"]),["enter"])),t[6]||(t[6]=_(I((...o)=>r.onCtrlEnter&&r.onCtrlEnter(...o),["ctrl","exact","stop","prevent"]),["enter"])),t[9]||(t[9]=_(I((...o)=>r.onTributeArrowKeyDown&&r.onTributeArrowKeyDown(...o),["exact","stop"]),["up"])),t[10]||(t[10]=_(I((...o)=>r.onTributeArrowKeyDown&&r.onTributeArrowKeyDown(...o),["exact","stop"]),["down"]))],onPaste:t[7]||(t[7]=(...o)=>r.onPaste&&r.onPaste(...o)),onKeyupCapture:t[8]||(t[8]=I((...o)=>r.onKeyUp&&r.onKeyUp(...o),["stop","prevent"])),onTributeActiveTrue:t[11]||(t[11]=o=>r.onTributeActive(!0)),onTributeActiveFalse:t[12]||(t[12]=o=>r.onTributeActive(!1))}),null,16,Rt),e.label?(E(),A("div",{key:0,id:i.labelId,class:"rich-contenteditable__label"},k(e.label),9,Pt)):W("",!0)],2)}const Ht={$style:Nt},ue=H(Ot,[["render",Wt],["__cssModules",Ht],["__scopeId","data-v-9234d45e"]]);export{$t as NcAutoCompleteResult,gt as NcMentionBubble,ue as default}; -//# sourceMappingURL=index-xEyWukTf.chunk.mjs.map +//# sourceMappingURL=index-CcOuN-F7.chunk.mjs.map diff --git a/dist/index-xEyWukTf.chunk.mjs.license b/dist/index-CcOuN-F7.chunk.mjs.license similarity index 100% rename from dist/index-xEyWukTf.chunk.mjs.license rename to dist/index-CcOuN-F7.chunk.mjs.license diff --git a/dist/index-xEyWukTf.chunk.mjs.map b/dist/index-CcOuN-F7.chunk.mjs.map similarity index 99% rename from dist/index-xEyWukTf.chunk.mjs.map rename to dist/index-CcOuN-F7.chunk.mjs.map index 0c5eff7ece0..9919849e022 100644 --- a/dist/index-xEyWukTf.chunk.mjs.map +++ b/dist/index-CcOuN-F7.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"index-xEyWukTf.chunk.mjs","sources":["../node_modules/tributejs/dist/tribute.esm.js","../node_modules/@nextcloud/vue/dist/chunks/NcRichContenteditable-DO3_WniI.mjs"],"sourcesContent":["if (!Array.prototype.find) {\n Array.prototype.find = function(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined')\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function')\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value\n }\n }\n return undefined\n };\n}\n\nif (window && typeof window.CustomEvent !== \"function\") {\n function CustomEvent$1(event, params) {\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: undefined\n };\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt\n }\n\n if (typeof window.Event !== 'undefined') {\n CustomEvent$1.prototype = window.Event.prototype;\n }\n\n window.CustomEvent = CustomEvent$1;\n}\n\nclass TributeEvents {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.events = this;\n }\n\n static keys() {\n return [\n {\n key: 9,\n value: \"TAB\"\n },\n {\n key: 8,\n value: \"DELETE\"\n },\n {\n key: 13,\n value: \"ENTER\"\n },\n {\n key: 27,\n value: \"ESCAPE\"\n },\n {\n key: 32,\n value: \"SPACE\"\n },\n {\n key: 38,\n value: \"UP\"\n },\n {\n key: 40,\n value: \"DOWN\"\n }\n ];\n }\n\n bind(element) {\n element.boundKeydown = this.keydown.bind(element, this);\n element.boundKeyup = this.keyup.bind(element, this);\n element.boundInput = this.input.bind(element, this);\n\n element.addEventListener(\"keydown\", element.boundKeydown, false);\n element.addEventListener(\"keyup\", element.boundKeyup, false);\n element.addEventListener(\"input\", element.boundInput, false);\n }\n\n unbind(element) {\n element.removeEventListener(\"keydown\", element.boundKeydown, false);\n element.removeEventListener(\"keyup\", element.boundKeyup, false);\n element.removeEventListener(\"input\", element.boundInput, false);\n\n delete element.boundKeydown;\n delete element.boundKeyup;\n delete element.boundInput;\n }\n\n keydown(instance, event) {\n if (instance.shouldDeactivate(event)) {\n instance.tribute.isActive = false;\n instance.tribute.hideMenu();\n }\n\n let element = this;\n instance.commandEvent = false;\n\n TributeEvents.keys().forEach(o => {\n if (o.key === event.keyCode) {\n instance.commandEvent = true;\n instance.callbacks()[o.value.toLowerCase()](event, element);\n }\n });\n }\n\n input(instance, event) {\n instance.inputEvent = true;\n instance.keyup.call(this, instance, event);\n }\n\n click(instance, event) {\n let tribute = instance.tribute;\n if (tribute.menu && tribute.menu.contains(event.target)) {\n let li = event.target;\n event.preventDefault();\n event.stopPropagation();\n while (li.nodeName.toLowerCase() !== \"li\") {\n li = li.parentNode;\n if (!li || li === tribute.menu) {\n throw new Error(\"cannot find the
  • container for the click\");\n }\n }\n tribute.selectItemAtIndex(li.getAttribute(\"data-index\"), event);\n tribute.hideMenu();\n\n // TODO: should fire with externalTrigger and target is outside of menu\n } else if (tribute.current.element && !tribute.current.externalTrigger) {\n tribute.current.externalTrigger = false;\n setTimeout(() => tribute.hideMenu());\n }\n }\n\n keyup(instance, event) {\n if (instance.inputEvent) {\n instance.inputEvent = false;\n }\n instance.updateSelection(this);\n\n if (event.keyCode === 27) return;\n\n if (!instance.tribute.allowSpaces && instance.tribute.hasTrailingSpace) {\n instance.tribute.hasTrailingSpace = false;\n instance.commandEvent = true;\n instance.callbacks()[\"space\"](event, this);\n return;\n }\n\n if (!instance.tribute.isActive) {\n if (instance.tribute.autocompleteMode) {\n instance.callbacks().triggerChar(event, this, \"\");\n } else {\n let keyCode = instance.getKeyCode(instance, this, event);\n\n if (isNaN(keyCode) || !keyCode) return;\n\n let trigger = instance.tribute.triggers().find(trigger => {\n return trigger.charCodeAt(0) === keyCode;\n });\n\n if (typeof trigger !== \"undefined\") {\n instance.callbacks().triggerChar(event, this, trigger);\n }\n }\n }\n\n if (\n instance.tribute.current.mentionText.length <\n instance.tribute.current.collection.menuShowMinLength\n ) {\n return;\n }\n\n if (\n ((instance.tribute.current.trigger ||\n instance.tribute.autocompleteMode) &&\n instance.commandEvent === false) ||\n (instance.tribute.isActive && event.keyCode === 8)\n ) {\n instance.tribute.showMenuFor(this, true);\n }\n }\n\n shouldDeactivate(event) {\n if (!this.tribute.isActive) return false;\n\n if (this.tribute.current.mentionText.length === 0) {\n let eventKeyPressed = false;\n TributeEvents.keys().forEach(o => {\n if (event.keyCode === o.key) eventKeyPressed = true;\n });\n\n return !eventKeyPressed;\n }\n\n return false;\n }\n\n getKeyCode(instance, el, event) {\n let tribute = instance.tribute;\n let info = tribute.range.getTriggerInfo(\n false,\n tribute.hasTrailingSpace,\n true,\n tribute.allowSpaces,\n tribute.autocompleteMode\n );\n\n if (info) {\n return info.mentionTriggerChar.charCodeAt(0);\n } else {\n return false;\n }\n }\n\n updateSelection(el) {\n this.tribute.current.element = el;\n let info = this.tribute.range.getTriggerInfo(\n false,\n this.tribute.hasTrailingSpace,\n true,\n this.tribute.allowSpaces,\n this.tribute.autocompleteMode\n );\n\n if (info) {\n this.tribute.current.selectedPath = info.mentionSelectedPath;\n this.tribute.current.mentionText = info.mentionText;\n this.tribute.current.selectedOffset = info.mentionSelectedOffset;\n }\n }\n\n callbacks() {\n return {\n triggerChar: (e, el, trigger) => {\n let tribute = this.tribute;\n tribute.current.trigger = trigger;\n\n let collectionItem = tribute.collection.find(item => {\n return item.trigger === trigger;\n });\n\n tribute.current.collection = collectionItem;\n\n if (\n tribute.current.mentionText.length >=\n tribute.current.collection.menuShowMinLength &&\n tribute.inputEvent\n ) {\n tribute.showMenuFor(el, true);\n }\n },\n enter: (e, el) => {\n // choose selection\n if (this.tribute.isActive && this.tribute.current.filteredItems) {\n e.preventDefault();\n e.stopPropagation();\n setTimeout(() => {\n this.tribute.selectItemAtIndex(this.tribute.menuSelected, e);\n this.tribute.hideMenu();\n }, 0);\n }\n },\n escape: (e, el) => {\n if (this.tribute.isActive) {\n e.preventDefault();\n e.stopPropagation();\n this.tribute.isActive = false;\n this.tribute.hideMenu();\n }\n },\n tab: (e, el) => {\n // choose first match\n this.callbacks().enter(e, el);\n },\n space: (e, el) => {\n if (this.tribute.isActive) {\n if (this.tribute.spaceSelectsMatch) {\n this.callbacks().enter(e, el);\n } else if (!this.tribute.allowSpaces) {\n e.stopPropagation();\n setTimeout(() => {\n this.tribute.hideMenu();\n this.tribute.isActive = false;\n }, 0);\n }\n }\n },\n up: (e, el) => {\n // navigate up ul\n if (this.tribute.isActive && this.tribute.current.filteredItems) {\n e.preventDefault();\n e.stopPropagation();\n let count = this.tribute.current.filteredItems.length,\n selected = this.tribute.menuSelected;\n\n if (count > selected && selected > 0) {\n this.tribute.menuSelected--;\n this.setActiveLi();\n } else if (selected === 0) {\n this.tribute.menuSelected = count - 1;\n this.setActiveLi();\n this.tribute.menu.scrollTop = this.tribute.menu.scrollHeight;\n }\n }\n },\n down: (e, el) => {\n // navigate down ul\n if (this.tribute.isActive && this.tribute.current.filteredItems) {\n e.preventDefault();\n e.stopPropagation();\n let count = this.tribute.current.filteredItems.length - 1,\n selected = this.tribute.menuSelected;\n\n if (count > selected) {\n this.tribute.menuSelected++;\n this.setActiveLi();\n } else if (count === selected) {\n this.tribute.menuSelected = 0;\n this.setActiveLi();\n this.tribute.menu.scrollTop = 0;\n }\n }\n },\n delete: (e, el) => {\n if (\n this.tribute.isActive &&\n this.tribute.current.mentionText.length < 1\n ) {\n this.tribute.hideMenu();\n } else if (this.tribute.isActive) {\n this.tribute.showMenuFor(el);\n }\n }\n };\n }\n\n setActiveLi(index) {\n let lis = this.tribute.menu.querySelectorAll(\"li\"),\n length = lis.length >>> 0;\n\n if (index) this.tribute.menuSelected = parseInt(index);\n\n for (let i = 0; i < length; i++) {\n let li = lis[i];\n if (i === this.tribute.menuSelected) {\n li.classList.add(this.tribute.current.collection.selectClass);\n\n let liClientRect = li.getBoundingClientRect();\n let menuClientRect = this.tribute.menu.getBoundingClientRect();\n\n if (liClientRect.bottom > menuClientRect.bottom) {\n let scrollDistance = liClientRect.bottom - menuClientRect.bottom;\n this.tribute.menu.scrollTop += scrollDistance;\n } else if (liClientRect.top < menuClientRect.top) {\n let scrollDistance = menuClientRect.top - liClientRect.top;\n this.tribute.menu.scrollTop -= scrollDistance;\n }\n } else {\n li.classList.remove(this.tribute.current.collection.selectClass);\n }\n }\n }\n\n getFullHeight(elem, includeMargin) {\n let height = elem.getBoundingClientRect().height;\n\n if (includeMargin) {\n let style = elem.currentStyle || window.getComputedStyle(elem);\n return (\n height + parseFloat(style.marginTop) + parseFloat(style.marginBottom)\n );\n }\n\n return height;\n }\n}\n\nclass TributeMenuEvents {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.menuEvents = this;\n this.menu = this.tribute.menu;\n }\n\n bind(menu) {\n this.menuClickEvent = this.tribute.events.click.bind(null, this);\n this.menuContainerScrollEvent = this.debounce(\n () => {\n if (this.tribute.isActive) {\n this.tribute.showMenuFor(this.tribute.current.element, false);\n }\n },\n 300,\n false\n );\n this.windowResizeEvent = this.debounce(\n () => {\n if (this.tribute.isActive) {\n this.tribute.range.positionMenuAtCaret(true);\n }\n },\n 300,\n false\n );\n\n // fixes IE11 issues with mousedown\n this.tribute.range\n .getDocument()\n .addEventListener(\"MSPointerDown\", this.menuClickEvent, false);\n this.tribute.range\n .getDocument()\n .addEventListener(\"mousedown\", this.menuClickEvent, false);\n window.addEventListener(\"resize\", this.windowResizeEvent);\n\n if (this.menuContainer) {\n this.menuContainer.addEventListener(\n \"scroll\",\n this.menuContainerScrollEvent,\n false\n );\n } else {\n window.addEventListener(\"scroll\", this.menuContainerScrollEvent);\n }\n }\n\n unbind(menu) {\n this.tribute.range\n .getDocument()\n .removeEventListener(\"mousedown\", this.menuClickEvent, false);\n this.tribute.range\n .getDocument()\n .removeEventListener(\"MSPointerDown\", this.menuClickEvent, false);\n window.removeEventListener(\"resize\", this.windowResizeEvent);\n\n if (this.menuContainer) {\n this.menuContainer.removeEventListener(\n \"scroll\",\n this.menuContainerScrollEvent,\n false\n );\n } else {\n window.removeEventListener(\"scroll\", this.menuContainerScrollEvent);\n }\n }\n\n debounce(func, wait, immediate) {\n var timeout;\n return () => {\n var context = this,\n args = arguments;\n var later = () => {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n }\n}\n\n// Thanks to https://github.com/jeff-collins/ment.io\n\nclass TributeRange {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.range = this;\n }\n\n getDocument() {\n let iframe;\n if (this.tribute.current.collection) {\n iframe = this.tribute.current.collection.iframe;\n }\n\n if (!iframe) {\n return document\n }\n\n return iframe.contentWindow.document\n }\n\n positionMenuAtCaret(scrollTo) {\n let context = this.tribute.current,\n coordinates;\n\n let info = this.getTriggerInfo(false, this.tribute.hasTrailingSpace, true, this.tribute.allowSpaces, this.tribute.autocompleteMode);\n\n if (typeof info !== 'undefined') {\n\n if(!this.tribute.positionMenu){\n this.tribute.menu.style.cssText = `display: block;`;\n return\n }\n\n if (!this.isContentEditable(context.element)) {\n coordinates = this.getTextAreaOrInputUnderlinePosition(this.tribute.current.element,\n info.mentionPosition);\n }\n else {\n coordinates = this.getContentEditableCaretPosition(info.mentionPosition);\n }\n\n this.tribute.menu.style.cssText = `top: ${coordinates.top}px;\n left: ${coordinates.left}px;\n right: ${coordinates.right}px;\n bottom: ${coordinates.bottom}px;\n position: absolute;\n display: block;`;\n\n if (coordinates.left === 'auto') {\n this.tribute.menu.style.left = 'auto';\n }\n\n if (coordinates.top === 'auto') {\n this.tribute.menu.style.top = 'auto';\n }\n\n if (scrollTo) this.scrollIntoView();\n\n window.setTimeout(() => {\n let menuDimensions = {\n width: this.tribute.menu.offsetWidth,\n height: this.tribute.menu.offsetHeight\n };\n let menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n let menuIsOffScreenHorizontally = window.innerWidth > menuDimensions.width && (menuIsOffScreen.left || menuIsOffScreen.right);\n let menuIsOffScreenVertically = window.innerHeight > menuDimensions.height && (menuIsOffScreen.top || menuIsOffScreen.bottom);\n if (menuIsOffScreenHorizontally || menuIsOffScreenVertically) {\n this.tribute.menu.style.cssText = 'display: none';\n this.positionMenuAtCaret(scrollTo);\n }\n }, 0);\n\n } else {\n this.tribute.menu.style.cssText = 'display: none';\n }\n }\n\n get menuContainerIsBody() {\n return this.tribute.menuContainer === document.body || !this.tribute.menuContainer;\n }\n\n\n selectElement(targetElement, path, offset) {\n let range;\n let elem = targetElement;\n\n if (path) {\n for (var i = 0; i < path.length; i++) {\n elem = elem.childNodes[path[i]];\n if (elem === undefined) {\n return\n }\n while (elem.length < offset) {\n offset -= elem.length;\n elem = elem.nextSibling;\n }\n if (elem.childNodes.length === 0 && !elem.length) {\n elem = elem.previousSibling;\n }\n }\n }\n let sel = this.getWindowSelection();\n\n range = this.getDocument().createRange();\n range.setStart(elem, offset);\n range.setEnd(elem, offset);\n range.collapse(true);\n\n try {\n sel.removeAllRanges();\n } catch (error) {}\n\n sel.addRange(range);\n targetElement.focus();\n }\n\n replaceTriggerText(text, requireLeadingSpace, hasTrailingSpace, originalEvent, item) {\n let info = this.getTriggerInfo(true, hasTrailingSpace, requireLeadingSpace, this.tribute.allowSpaces, this.tribute.autocompleteMode);\n\n if (info !== undefined) {\n let context = this.tribute.current;\n let replaceEvent = new CustomEvent('tribute-replaced', {\n detail: {\n item: item,\n instance: context,\n context: info,\n event: originalEvent,\n }\n });\n\n if (!this.isContentEditable(context.element)) {\n let myField = this.tribute.current.element;\n let textSuffix = typeof this.tribute.replaceTextSuffix == 'string'\n ? this.tribute.replaceTextSuffix\n : ' ';\n text += textSuffix;\n let startPos = info.mentionPosition;\n let endPos = info.mentionPosition + info.mentionText.length + textSuffix.length;\n if (!this.tribute.autocompleteMode) {\n endPos += info.mentionTriggerChar.length - 1;\n }\n myField.value = myField.value.substring(0, startPos) + text +\n myField.value.substring(endPos, myField.value.length);\n myField.selectionStart = startPos + text.length;\n myField.selectionEnd = startPos + text.length;\n } else {\n // add a space to the end of the pasted text\n let textSuffix = typeof this.tribute.replaceTextSuffix == 'string'\n ? this.tribute.replaceTextSuffix\n : '\\xA0';\n text += textSuffix;\n let endPos = info.mentionPosition + info.mentionText.length;\n if (!this.tribute.autocompleteMode) {\n endPos += info.mentionTriggerChar.length;\n }\n this.pasteHtml(text, info.mentionPosition, endPos);\n }\n\n context.element.dispatchEvent(new CustomEvent('input', { bubbles: true }));\n context.element.dispatchEvent(replaceEvent);\n }\n }\n\n pasteHtml(html, startPos, endPos) {\n let range, sel;\n sel = this.getWindowSelection();\n range = this.getDocument().createRange();\n range.setStart(sel.anchorNode, startPos);\n range.setEnd(sel.anchorNode, endPos);\n range.deleteContents();\n\n let el = this.getDocument().createElement('div');\n el.innerHTML = html;\n let frag = this.getDocument().createDocumentFragment(),\n node, lastNode;\n while ((node = el.firstChild)) {\n lastNode = frag.appendChild(node);\n }\n range.insertNode(frag);\n\n // Preserve the selection\n if (lastNode) {\n range = range.cloneRange();\n range.setStartAfter(lastNode);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n }\n\n getWindowSelection() {\n if (this.tribute.collection.iframe) {\n return this.tribute.collection.iframe.contentWindow.getSelection()\n }\n\n return window.getSelection()\n }\n\n getNodePositionInParent(element) {\n if (element.parentNode === null) {\n return 0\n }\n\n for (var i = 0; i < element.parentNode.childNodes.length; i++) {\n let node = element.parentNode.childNodes[i];\n\n if (node === element) {\n return i\n }\n }\n }\n\n getContentEditableSelectedPath(ctx) {\n let sel = this.getWindowSelection();\n let selected = sel.anchorNode;\n let path = [];\n let offset;\n\n if (selected != null) {\n let i;\n let ce = selected.contentEditable;\n while (selected !== null && ce !== 'true') {\n i = this.getNodePositionInParent(selected);\n path.push(i);\n selected = selected.parentNode;\n if (selected !== null) {\n ce = selected.contentEditable;\n }\n }\n path.reverse();\n\n // getRangeAt may not exist, need alternative\n offset = sel.getRangeAt(0).startOffset;\n\n return {\n selected: selected,\n path: path,\n offset: offset\n }\n }\n }\n\n getTextPrecedingCurrentSelection() {\n let context = this.tribute.current,\n text = '';\n\n if (!this.isContentEditable(context.element)) {\n let textComponent = this.tribute.current.element;\n if (textComponent) {\n let startPos = textComponent.selectionStart;\n if (textComponent.value && startPos >= 0) {\n text = textComponent.value.substring(0, startPos);\n }\n }\n\n } else {\n let selectedElem = this.getWindowSelection().anchorNode;\n\n if (selectedElem != null) {\n let workingNodeContent = selectedElem.textContent;\n let selectStartOffset = this.getWindowSelection().getRangeAt(0).startOffset;\n\n if (workingNodeContent && selectStartOffset >= 0) {\n text = workingNodeContent.substring(0, selectStartOffset);\n }\n }\n }\n\n return text\n }\n\n getLastWordInText(text) {\n text = text.replace(/\\u00A0/g, ' '); // https://stackoverflow.com/questions/29850407/how-do-i-replace-unicode-character-u00a0-with-a-space-in-javascript\n let wordsArray = text.split(/\\s+/);\n let worldsCount = wordsArray.length - 1;\n return wordsArray[worldsCount].trim()\n }\n\n getTriggerInfo(menuAlreadyActive, hasTrailingSpace, requireLeadingSpace, allowSpaces, isAutocomplete) {\n let ctx = this.tribute.current;\n let selected, path, offset;\n\n if (!this.isContentEditable(ctx.element)) {\n selected = this.tribute.current.element;\n } else {\n let selectionInfo = this.getContentEditableSelectedPath(ctx);\n\n if (selectionInfo) {\n selected = selectionInfo.selected;\n path = selectionInfo.path;\n offset = selectionInfo.offset;\n }\n }\n\n let effectiveRange = this.getTextPrecedingCurrentSelection();\n let lastWordOfEffectiveRange = this.getLastWordInText(effectiveRange);\n\n if (isAutocomplete) {\n return {\n mentionPosition: effectiveRange.length - lastWordOfEffectiveRange.length,\n mentionText: lastWordOfEffectiveRange,\n mentionSelectedElement: selected,\n mentionSelectedPath: path,\n mentionSelectedOffset: offset\n }\n }\n\n if (effectiveRange !== undefined && effectiveRange !== null) {\n let mostRecentTriggerCharPos = -1;\n let triggerChar;\n\n this.tribute.collection.forEach(config => {\n let c = config.trigger;\n let idx = config.requireLeadingSpace ?\n this.lastIndexWithLeadingSpace(effectiveRange, c) :\n effectiveRange.lastIndexOf(c);\n\n if (idx > mostRecentTriggerCharPos) {\n mostRecentTriggerCharPos = idx;\n triggerChar = c;\n requireLeadingSpace = config.requireLeadingSpace;\n }\n });\n\n if (mostRecentTriggerCharPos >= 0 &&\n (\n mostRecentTriggerCharPos === 0 ||\n !requireLeadingSpace ||\n /[\\xA0\\s]/g.test(\n effectiveRange.substring(\n mostRecentTriggerCharPos - 1,\n mostRecentTriggerCharPos)\n )\n )\n ) {\n let currentTriggerSnippet = effectiveRange.substring(mostRecentTriggerCharPos + triggerChar.length,\n effectiveRange.length);\n\n triggerChar = effectiveRange.substring(mostRecentTriggerCharPos, mostRecentTriggerCharPos + triggerChar.length);\n let firstSnippetChar = currentTriggerSnippet.substring(0, 1);\n let leadingSpace = currentTriggerSnippet.length > 0 &&\n (\n firstSnippetChar === ' ' ||\n firstSnippetChar === '\\xA0'\n );\n if (hasTrailingSpace) {\n currentTriggerSnippet = currentTriggerSnippet.trim();\n }\n\n let regex = allowSpaces ? /[^\\S ]/g : /[\\xA0\\s]/g;\n\n this.tribute.hasTrailingSpace = regex.test(currentTriggerSnippet);\n\n if (!leadingSpace && (menuAlreadyActive || !(regex.test(currentTriggerSnippet)))) {\n return {\n mentionPosition: mostRecentTriggerCharPos,\n mentionText: currentTriggerSnippet,\n mentionSelectedElement: selected,\n mentionSelectedPath: path,\n mentionSelectedOffset: offset,\n mentionTriggerChar: triggerChar\n }\n }\n }\n }\n }\n\n lastIndexWithLeadingSpace (str, trigger) {\n let reversedStr = str.split('').reverse().join('');\n let index = -1;\n\n for (let cidx = 0, len = str.length; cidx < len; cidx++) {\n let firstChar = cidx === str.length - 1;\n let leadingSpace = /\\s/.test(reversedStr[cidx + 1]);\n\n let match = true;\n for (let triggerIdx = trigger.length - 1; triggerIdx >= 0; triggerIdx--) {\n if (trigger[triggerIdx] !== reversedStr[cidx-triggerIdx]) {\n match = false;\n break\n }\n }\n\n if (match && (firstChar || leadingSpace)) {\n index = str.length - 1 - cidx;\n break\n }\n }\n\n return index\n }\n\n isContentEditable(element) {\n return element.nodeName !== 'INPUT' && element.nodeName !== 'TEXTAREA'\n }\n\n isMenuOffScreen(coordinates, menuDimensions) {\n let windowWidth = window.innerWidth;\n let windowHeight = window.innerHeight;\n let doc = document.documentElement;\n let windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n let windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n\n let menuTop = typeof coordinates.top === 'number' ? coordinates.top : windowTop + windowHeight - coordinates.bottom - menuDimensions.height;\n let menuRight = typeof coordinates.right === 'number' ? coordinates.right : coordinates.left + menuDimensions.width;\n let menuBottom = typeof coordinates.bottom === 'number' ? coordinates.bottom : coordinates.top + menuDimensions.height;\n let menuLeft = typeof coordinates.left === 'number' ? coordinates.left : windowLeft + windowWidth - coordinates.right - menuDimensions.width;\n\n return {\n top: menuTop < Math.floor(windowTop),\n right: menuRight > Math.ceil(windowLeft + windowWidth),\n bottom: menuBottom > Math.ceil(windowTop + windowHeight),\n left: menuLeft < Math.floor(windowLeft)\n }\n }\n\n getMenuDimensions() {\n // Width of the menu depends of its contents and position\n // We must check what its width would be without any obstruction\n // This way, we can achieve good positioning for flipping the menu\n let dimensions = {\n width: null,\n height: null\n };\n\n this.tribute.menu.style.cssText = `top: 0px;\n left: 0px;\n position: fixed;\n display: block;\n visibility; hidden;`;\n dimensions.width = this.tribute.menu.offsetWidth;\n dimensions.height = this.tribute.menu.offsetHeight;\n\n this.tribute.menu.style.cssText = `display: none;`;\n\n return dimensions\n }\n\n getTextAreaOrInputUnderlinePosition(element, position, flipped) {\n let properties = ['direction', 'boxSizing', 'width', 'height', 'overflowX',\n 'overflowY', 'borderTopWidth', 'borderRightWidth',\n 'borderBottomWidth', 'borderLeftWidth', 'paddingTop',\n 'paddingRight', 'paddingBottom', 'paddingLeft',\n 'fontStyle', 'fontVariant', 'fontWeight', 'fontStretch',\n 'fontSize', 'fontSizeAdjust', 'lineHeight', 'fontFamily',\n 'textAlign', 'textTransform', 'textIndent',\n 'textDecoration', 'letterSpacing', 'wordSpacing'\n ];\n\n let isFirefox = (window.mozInnerScreenX !== null);\n\n let div = this.getDocument().createElement('div');\n div.id = 'input-textarea-caret-position-mirror-div';\n this.getDocument().body.appendChild(div);\n\n let style = div.style;\n let computed = window.getComputedStyle ? getComputedStyle(element) : element.currentStyle;\n\n style.whiteSpace = 'pre-wrap';\n if (element.nodeName !== 'INPUT') {\n style.wordWrap = 'break-word';\n }\n\n // position off-screen\n style.position = 'absolute';\n style.visibility = 'hidden';\n\n // transfer the element's properties to the div\n properties.forEach(prop => {\n style[prop] = computed[prop];\n });\n\n if (isFirefox) {\n style.width = `${(parseInt(computed.width) - 2)}px`;\n if (element.scrollHeight > parseInt(computed.height))\n style.overflowY = 'scroll';\n } else {\n style.overflow = 'hidden';\n }\n\n div.textContent = element.value.substring(0, position);\n\n if (element.nodeName === 'INPUT') {\n div.textContent = div.textContent.replace(/\\s/g, ' ');\n }\n\n let span = this.getDocument().createElement('span');\n span.textContent = element.value.substring(position) || '.';\n div.appendChild(span);\n\n let rect = element.getBoundingClientRect();\n let doc = document.documentElement;\n let windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n let windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n\n let top = 0;\n let left = 0;\n if (this.menuContainerIsBody) {\n top = rect.top;\n left = rect.left;\n }\n\n let coordinates = {\n top: top + windowTop + span.offsetTop + parseInt(computed.borderTopWidth) + parseInt(computed.fontSize) - element.scrollTop,\n left: left + windowLeft + span.offsetLeft + parseInt(computed.borderLeftWidth)\n };\n\n let windowWidth = window.innerWidth;\n let windowHeight = window.innerHeight;\n\n let menuDimensions = this.getMenuDimensions();\n let menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n if (menuIsOffScreen.right) {\n coordinates.right = windowWidth - coordinates.left;\n coordinates.left = 'auto';\n }\n\n let parentHeight = this.tribute.menuContainer\n ? this.tribute.menuContainer.offsetHeight\n : this.getDocument().body.offsetHeight;\n\n if (menuIsOffScreen.bottom) {\n let parentRect = this.tribute.menuContainer\n ? this.tribute.menuContainer.getBoundingClientRect()\n : this.getDocument().body.getBoundingClientRect();\n let scrollStillAvailable = parentHeight - (windowHeight - parentRect.top);\n\n coordinates.bottom = scrollStillAvailable + (windowHeight - rect.top - span.offsetTop);\n coordinates.top = 'auto';\n }\n\n menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n if (menuIsOffScreen.left) {\n coordinates.left = windowWidth > menuDimensions.width\n ? windowLeft + windowWidth - menuDimensions.width\n : windowLeft;\n delete coordinates.right;\n }\n if (menuIsOffScreen.top) {\n coordinates.top = windowHeight > menuDimensions.height\n ? windowTop + windowHeight - menuDimensions.height\n : windowTop;\n delete coordinates.bottom;\n }\n\n this.getDocument().body.removeChild(div);\n return coordinates\n }\n\n getContentEditableCaretPosition(selectedNodePosition) {\n let range;\n let sel = this.getWindowSelection();\n\n range = this.getDocument().createRange();\n range.setStart(sel.anchorNode, selectedNodePosition);\n range.setEnd(sel.anchorNode, selectedNodePosition);\n\n range.collapse(false);\n\n let rect = range.getBoundingClientRect();\n let doc = document.documentElement;\n let windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n let windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n\n let left = rect.left;\n let top = rect.top;\n\n let coordinates = {\n left: left + windowLeft,\n top: top + rect.height + windowTop\n };\n let windowWidth = window.innerWidth;\n let windowHeight = window.innerHeight;\n\n let menuDimensions = this.getMenuDimensions();\n let menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n if (menuIsOffScreen.right) {\n coordinates.left = 'auto';\n coordinates.right = windowWidth - rect.left - windowLeft;\n }\n\n let parentHeight = this.tribute.menuContainer\n ? this.tribute.menuContainer.offsetHeight\n : this.getDocument().body.offsetHeight;\n\n if (menuIsOffScreen.bottom) {\n let parentRect = this.tribute.menuContainer\n ? this.tribute.menuContainer.getBoundingClientRect()\n : this.getDocument().body.getBoundingClientRect();\n let scrollStillAvailable = parentHeight - (windowHeight - parentRect.top);\n\n coordinates.top = 'auto';\n coordinates.bottom = scrollStillAvailable + (windowHeight - rect.top);\n }\n\n menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n if (menuIsOffScreen.left) {\n coordinates.left = windowWidth > menuDimensions.width\n ? windowLeft + windowWidth - menuDimensions.width\n : windowLeft;\n delete coordinates.right;\n }\n if (menuIsOffScreen.top) {\n coordinates.top = windowHeight > menuDimensions.height\n ? windowTop + windowHeight - menuDimensions.height\n : windowTop;\n delete coordinates.bottom;\n }\n\n if (!this.menuContainerIsBody) {\n coordinates.left = coordinates.left ? coordinates.left - this.tribute.menuContainer.offsetLeft : coordinates.left;\n coordinates.top = coordinates.top ? coordinates.top - this.tribute.menuContainer.offsetTop : coordinates.top;\n }\n\n return coordinates\n }\n\n scrollIntoView(elem) {\n let reasonableBuffer = 20,\n clientRect;\n let maxScrollDisplacement = 100;\n let e = this.menu;\n\n if (typeof e === 'undefined') return;\n\n while (clientRect === undefined || clientRect.height === 0) {\n clientRect = e.getBoundingClientRect();\n\n if (clientRect.height === 0) {\n e = e.childNodes[0];\n if (e === undefined || !e.getBoundingClientRect) {\n return\n }\n }\n }\n\n let elemTop = clientRect.top;\n let elemBottom = elemTop + clientRect.height;\n\n if (elemTop < 0) {\n window.scrollTo(0, window.pageYOffset + clientRect.top - reasonableBuffer);\n } else if (elemBottom > window.innerHeight) {\n let maxY = window.pageYOffset + clientRect.top - reasonableBuffer;\n\n if (maxY - window.pageYOffset > maxScrollDisplacement) {\n maxY = window.pageYOffset + maxScrollDisplacement;\n }\n\n let targetY = window.pageYOffset - (window.innerHeight - elemBottom);\n\n if (targetY > maxY) {\n targetY = maxY;\n }\n\n window.scrollTo(0, targetY);\n }\n }\n}\n\n// Thanks to https://github.com/mattyork/fuzzy\nclass TributeSearch {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.search = this;\n }\n\n simpleFilter(pattern, array) {\n return array.filter(string => {\n return this.test(pattern, string)\n })\n }\n\n test(pattern, string) {\n return this.match(pattern, string) !== null\n }\n\n match(pattern, string, opts) {\n opts = opts || {};\n let len = string.length,\n pre = opts.pre || '',\n post = opts.post || '',\n compareString = opts.caseSensitive && string || string.toLowerCase();\n\n if (opts.skip) {\n return {rendered: string, score: 0}\n }\n\n pattern = opts.caseSensitive && pattern || pattern.toLowerCase();\n\n let patternCache = this.traverse(compareString, pattern, 0, 0, []);\n if (!patternCache) {\n return null\n }\n return {\n rendered: this.render(string, patternCache.cache, pre, post),\n score: patternCache.score\n }\n }\n\n traverse(string, pattern, stringIndex, patternIndex, patternCache) {\n // if the pattern search at end\n if (pattern.length === patternIndex) {\n\n // calculate score and copy the cache containing the indices where it's found\n return {\n score: this.calculateScore(patternCache),\n cache: patternCache.slice()\n }\n }\n\n // if string at end or remaining pattern > remaining string\n if (string.length === stringIndex || pattern.length - patternIndex > string.length - stringIndex) {\n return undefined\n }\n\n let c = pattern[patternIndex];\n let index = string.indexOf(c, stringIndex);\n let best, temp;\n\n while (index > -1) {\n patternCache.push(index);\n temp = this.traverse(string, pattern, index + 1, patternIndex + 1, patternCache);\n patternCache.pop();\n\n // if downstream traversal failed, return best answer so far\n if (!temp) {\n return best\n }\n\n if (!best || best.score < temp.score) {\n best = temp;\n }\n\n index = string.indexOf(c, index + 1);\n }\n\n return best\n }\n\n calculateScore(patternCache) {\n let score = 0;\n let temp = 1;\n\n patternCache.forEach((index, i) => {\n if (i > 0) {\n if (patternCache[i - 1] + 1 === index) {\n temp += temp + 1;\n }\n else {\n temp = 1;\n }\n }\n\n score += temp;\n });\n\n return score\n }\n\n render(string, indices, pre, post) {\n var rendered = string.substring(0, indices[0]);\n\n indices.forEach((index, i) => {\n rendered += pre + string[index] + post +\n string.substring(index + 1, (indices[i + 1]) ? indices[i + 1] : string.length);\n });\n\n return rendered\n }\n\n filter(pattern, arr, opts) {\n opts = opts || {};\n return arr\n .reduce((prev, element, idx, arr) => {\n let str = element;\n\n if (opts.extract) {\n str = opts.extract(element);\n\n if (!str) { // take care of undefineds / nulls / etc.\n str = '';\n }\n }\n\n let rendered = this.match(pattern, str, opts);\n\n if (rendered != null) {\n prev[prev.length] = {\n string: rendered.rendered,\n score: rendered.score,\n index: idx,\n original: element\n };\n }\n\n return prev\n }, [])\n\n .sort((a, b) => {\n let compare = b.score - a.score;\n if (compare) return compare\n return a.index - b.index\n })\n }\n}\n\nclass Tribute {\n constructor({\n values = null,\n iframe = null,\n selectClass = \"highlight\",\n containerClass = \"tribute-container\",\n itemClass = \"\",\n trigger = \"@\",\n autocompleteMode = false,\n selectTemplate = null,\n menuItemTemplate = null,\n lookup = \"key\",\n fillAttr = \"value\",\n collection = null,\n menuContainer = null,\n noMatchTemplate = null,\n requireLeadingSpace = true,\n allowSpaces = false,\n replaceTextSuffix = null,\n positionMenu = true,\n spaceSelectsMatch = false,\n searchOpts = {},\n menuItemLimit = null,\n menuShowMinLength = 0\n }) {\n this.autocompleteMode = autocompleteMode;\n this.menuSelected = 0;\n this.current = {};\n this.inputEvent = false;\n this.isActive = false;\n this.menuContainer = menuContainer;\n this.allowSpaces = allowSpaces;\n this.replaceTextSuffix = replaceTextSuffix;\n this.positionMenu = positionMenu;\n this.hasTrailingSpace = false;\n this.spaceSelectsMatch = spaceSelectsMatch;\n\n if (this.autocompleteMode) {\n trigger = \"\";\n allowSpaces = false;\n }\n\n if (values) {\n this.collection = [\n {\n // symbol that starts the lookup\n trigger: trigger,\n\n // is it wrapped in an iframe\n iframe: iframe,\n\n // class applied to selected item\n selectClass: selectClass,\n\n // class applied to the Container\n containerClass: containerClass,\n\n // class applied to each item\n itemClass: itemClass,\n\n // function called on select that retuns the content to insert\n selectTemplate: (\n selectTemplate || Tribute.defaultSelectTemplate\n ).bind(this),\n\n // function called that returns content for an item\n menuItemTemplate: (\n menuItemTemplate || Tribute.defaultMenuItemTemplate\n ).bind(this),\n\n // function called when menu is empty, disables hiding of menu.\n noMatchTemplate: (t => {\n if (typeof t === \"string\") {\n if (t.trim() === \"\") return null;\n return t;\n }\n if (typeof t === \"function\") {\n return t.bind(this);\n }\n\n return (\n noMatchTemplate ||\n function() {\n return \"
  • No Match Found!
  • \";\n }.bind(this)\n );\n })(noMatchTemplate),\n\n // column to search against in the object\n lookup: lookup,\n\n // column that contains the content to insert by default\n fillAttr: fillAttr,\n\n // array of objects or a function returning an array of objects\n values: values,\n\n requireLeadingSpace: requireLeadingSpace,\n\n searchOpts: searchOpts,\n\n menuItemLimit: menuItemLimit,\n\n menuShowMinLength: menuShowMinLength\n }\n ];\n } else if (collection) {\n if (this.autocompleteMode)\n console.warn(\n \"Tribute in autocomplete mode does not work for collections\"\n );\n this.collection = collection.map(item => {\n return {\n trigger: item.trigger || trigger,\n iframe: item.iframe || iframe,\n selectClass: item.selectClass || selectClass,\n containerClass: item.containerClass || containerClass,\n itemClass: item.itemClass || itemClass,\n selectTemplate: (\n item.selectTemplate || Tribute.defaultSelectTemplate\n ).bind(this),\n menuItemTemplate: (\n item.menuItemTemplate || Tribute.defaultMenuItemTemplate\n ).bind(this),\n // function called when menu is empty, disables hiding of menu.\n noMatchTemplate: (t => {\n if (typeof t === \"string\") {\n if (t.trim() === \"\") return null;\n return t;\n }\n if (typeof t === \"function\") {\n return t.bind(this);\n }\n\n return (\n noMatchTemplate ||\n function() {\n return \"
  • No Match Found!
  • \";\n }.bind(this)\n );\n })(noMatchTemplate),\n lookup: item.lookup || lookup,\n fillAttr: item.fillAttr || fillAttr,\n values: item.values,\n requireLeadingSpace: item.requireLeadingSpace,\n searchOpts: item.searchOpts || searchOpts,\n menuItemLimit: item.menuItemLimit || menuItemLimit,\n menuShowMinLength: item.menuShowMinLength || menuShowMinLength\n };\n });\n } else {\n throw new Error(\"[Tribute] No collection specified.\");\n }\n\n new TributeRange(this);\n new TributeEvents(this);\n new TributeMenuEvents(this);\n new TributeSearch(this);\n }\n\n get isActive() {\n return this._isActive;\n }\n\n set isActive(val) {\n if (this._isActive != val) {\n this._isActive = val;\n if (this.current.element) {\n let noMatchEvent = new CustomEvent(`tribute-active-${val}`);\n this.current.element.dispatchEvent(noMatchEvent);\n }\n }\n }\n\n static defaultSelectTemplate(item) {\n if (typeof item === \"undefined\")\n return `${this.current.collection.trigger}${this.current.mentionText}`;\n if (this.range.isContentEditable(this.current.element)) {\n return (\n '' +\n (this.current.collection.trigger +\n item.original[this.current.collection.fillAttr]) +\n \"\"\n );\n }\n\n return (\n this.current.collection.trigger +\n item.original[this.current.collection.fillAttr]\n );\n }\n\n static defaultMenuItemTemplate(matchItem) {\n return matchItem.string;\n }\n\n static inputTypes() {\n return [\"TEXTAREA\", \"INPUT\"];\n }\n\n triggers() {\n return this.collection.map(config => {\n return config.trigger;\n });\n }\n\n attach(el) {\n if (!el) {\n throw new Error(\"[Tribute] Must pass in a DOM node or NodeList.\");\n }\n\n // Check if it is a jQuery collection\n if (typeof jQuery !== \"undefined\" && el instanceof jQuery) {\n el = el.get();\n }\n\n // Is el an Array/Array-like object?\n if (\n el.constructor === NodeList ||\n el.constructor === HTMLCollection ||\n el.constructor === Array\n ) {\n let length = el.length;\n for (var i = 0; i < length; ++i) {\n this._attach(el[i]);\n }\n } else {\n this._attach(el);\n }\n }\n\n _attach(el) {\n if (el.hasAttribute(\"data-tribute\")) {\n console.warn(\"Tribute was already bound to \" + el.nodeName);\n }\n\n this.ensureEditable(el);\n this.events.bind(el);\n el.setAttribute(\"data-tribute\", true);\n }\n\n ensureEditable(element) {\n if (Tribute.inputTypes().indexOf(element.nodeName) === -1) {\n if (element.contentEditable) {\n element.contentEditable = true;\n } else {\n throw new Error(\"[Tribute] Cannot bind to \" + element.nodeName);\n }\n }\n }\n\n createMenu(containerClass) {\n let wrapper = this.range.getDocument().createElement(\"div\"),\n ul = this.range.getDocument().createElement(\"ul\");\n wrapper.className = containerClass;\n wrapper.appendChild(ul);\n\n if (this.menuContainer) {\n return this.menuContainer.appendChild(wrapper);\n }\n\n return this.range.getDocument().body.appendChild(wrapper);\n }\n\n showMenuFor(element, scrollTo) {\n // Only proceed if menu isn't already shown for the current element & mentionText\n if (\n this.isActive &&\n this.current.element === element &&\n this.current.mentionText === this.currentMentionTextSnapshot\n ) {\n return;\n }\n this.currentMentionTextSnapshot = this.current.mentionText;\n\n // create the menu if it doesn't exist.\n if (!this.menu) {\n this.menu = this.createMenu(this.current.collection.containerClass);\n element.tributeMenu = this.menu;\n this.menuEvents.bind(this.menu);\n }\n\n this.isActive = true;\n this.menuSelected = 0;\n\n if (!this.current.mentionText) {\n this.current.mentionText = \"\";\n }\n\n const processValues = values => {\n // Tribute may not be active any more by the time the value callback returns\n if (!this.isActive) {\n return;\n }\n\n let items = this.search.filter(this.current.mentionText, values, {\n pre: this.current.collection.searchOpts.pre || \"\",\n post: this.current.collection.searchOpts.post || \"\",\n skip: this.current.collection.searchOpts.skip,\n extract: el => {\n if (typeof this.current.collection.lookup === \"string\") {\n return el[this.current.collection.lookup];\n } else if (typeof this.current.collection.lookup === \"function\") {\n return this.current.collection.lookup(el, this.current.mentionText);\n } else {\n throw new Error(\n \"Invalid lookup attribute, lookup must be string or function.\"\n );\n }\n }\n });\n\n if (this.current.collection.menuItemLimit) {\n items = items.slice(0, this.current.collection.menuItemLimit);\n }\n\n this.current.filteredItems = items;\n\n let ul = this.menu.querySelector(\"ul\");\n\n this.range.positionMenuAtCaret(scrollTo);\n\n if (!items.length) {\n let noMatchEvent = new CustomEvent(\"tribute-no-match\", {\n detail: this.menu\n });\n this.current.element.dispatchEvent(noMatchEvent);\n if (\n (typeof this.current.collection.noMatchTemplate === \"function\" &&\n !this.current.collection.noMatchTemplate()) ||\n !this.current.collection.noMatchTemplate\n ) {\n this.hideMenu();\n } else {\n typeof this.current.collection.noMatchTemplate === \"function\"\n ? (ul.innerHTML = this.current.collection.noMatchTemplate())\n : (ul.innerHTML = this.current.collection.noMatchTemplate);\n }\n\n return;\n }\n\n ul.innerHTML = \"\";\n let fragment = this.range.getDocument().createDocumentFragment();\n\n items.forEach((item, index) => {\n let li = this.range.getDocument().createElement(\"li\");\n li.setAttribute(\"data-index\", index);\n li.className = this.current.collection.itemClass;\n li.addEventListener(\"mousemove\", e => {\n let [li, index] = this._findLiTarget(e.target);\n if (e.movementY !== 0) {\n this.events.setActiveLi(index);\n }\n });\n if (this.menuSelected === index) {\n li.classList.add(this.current.collection.selectClass);\n }\n li.innerHTML = this.current.collection.menuItemTemplate(item);\n fragment.appendChild(li);\n });\n ul.appendChild(fragment);\n };\n\n if (typeof this.current.collection.values === \"function\") {\n this.current.collection.values(this.current.mentionText, processValues);\n } else {\n processValues(this.current.collection.values);\n }\n }\n\n _findLiTarget(el) {\n if (!el) return [];\n const index = el.getAttribute(\"data-index\");\n return !index ? this._findLiTarget(el.parentNode) : [el, index];\n }\n\n showMenuForCollection(element, collectionIndex) {\n if (element !== document.activeElement) {\n this.placeCaretAtEnd(element);\n }\n\n this.current.collection = this.collection[collectionIndex || 0];\n this.current.externalTrigger = true;\n this.current.element = element;\n\n if (element.isContentEditable)\n this.insertTextAtCursor(this.current.collection.trigger);\n else this.insertAtCaret(element, this.current.collection.trigger);\n\n this.showMenuFor(element);\n }\n\n // TODO: make sure this works for inputs/textareas\n placeCaretAtEnd(el) {\n el.focus();\n if (\n typeof window.getSelection != \"undefined\" &&\n typeof document.createRange != \"undefined\"\n ) {\n var range = document.createRange();\n range.selectNodeContents(el);\n range.collapse(false);\n var sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n } else if (typeof document.body.createTextRange != \"undefined\") {\n var textRange = document.body.createTextRange();\n textRange.moveToElementText(el);\n textRange.collapse(false);\n textRange.select();\n }\n }\n\n // for contenteditable\n insertTextAtCursor(text) {\n var sel, range;\n sel = window.getSelection();\n range = sel.getRangeAt(0);\n range.deleteContents();\n var textNode = document.createTextNode(text);\n range.insertNode(textNode);\n range.selectNodeContents(textNode);\n range.collapse(false);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n\n // for regular inputs\n insertAtCaret(textarea, text) {\n var scrollPos = textarea.scrollTop;\n var caretPos = textarea.selectionStart;\n\n var front = textarea.value.substring(0, caretPos);\n var back = textarea.value.substring(\n textarea.selectionEnd,\n textarea.value.length\n );\n textarea.value = front + text + back;\n caretPos = caretPos + text.length;\n textarea.selectionStart = caretPos;\n textarea.selectionEnd = caretPos;\n textarea.focus();\n textarea.scrollTop = scrollPos;\n }\n\n hideMenu() {\n if (this.menu) {\n this.menu.style.cssText = \"display: none;\";\n this.isActive = false;\n this.menuSelected = 0;\n this.current = {};\n }\n }\n\n selectItemAtIndex(index, originalEvent) {\n index = parseInt(index);\n if (typeof index !== \"number\" || isNaN(index)) return;\n let item = this.current.filteredItems[index];\n let content = this.current.collection.selectTemplate(item);\n if (content !== null) this.replaceText(content, originalEvent, item);\n }\n\n replaceText(content, originalEvent, item) {\n this.range.replaceTriggerText(content, true, true, originalEvent, item);\n }\n\n _append(collection, newValues, replace) {\n if (typeof collection.values === \"function\") {\n throw new Error(\"Unable to append to values, as it is a function.\");\n } else if (!replace) {\n collection.values = collection.values.concat(newValues);\n } else {\n collection.values = newValues;\n }\n }\n\n append(collectionIndex, newValues, replace) {\n let index = parseInt(collectionIndex);\n if (typeof index !== \"number\")\n throw new Error(\"please provide an index for the collection to update.\");\n\n let collection = this.collection[index];\n\n this._append(collection, newValues, replace);\n }\n\n appendCurrent(newValues, replace) {\n if (this.isActive) {\n this._append(this.current.collection, newValues, replace);\n } else {\n throw new Error(\n \"No active state. Please use append instead and pass an index.\"\n );\n }\n }\n\n detach(el) {\n if (!el) {\n throw new Error(\"[Tribute] Must pass in a DOM node or NodeList.\");\n }\n\n // Check if it is a jQuery collection\n if (typeof jQuery !== \"undefined\" && el instanceof jQuery) {\n el = el.get();\n }\n\n // Is el an Array/Array-like object?\n if (\n el.constructor === NodeList ||\n el.constructor === HTMLCollection ||\n el.constructor === Array\n ) {\n let length = el.length;\n for (var i = 0; i < length; ++i) {\n this._detach(el[i]);\n }\n } else {\n this._detach(el);\n }\n }\n\n _detach(el) {\n this.events.unbind(el);\n if (el.tributeMenu) {\n this.menuEvents.unbind(el.tributeMenu);\n }\n\n setTimeout(() => {\n el.removeAttribute(\"data-tribute\");\n this.isActive = false;\n if (el.tributeMenu) {\n el.tributeMenu.remove();\n }\n });\n }\n}\n\n/**\n * Tribute.js\n * Native ES6 JavaScript @mention Plugin\n **/\n\nexport default Tribute;\n","import '../assets/NcRichContenteditable-DNABzVif.css';\nimport debounce from \"debounce\";\nimport Tribute from \"tributejs/dist/tribute.esm.js\";\nimport { useIsDarkTheme } from \"../composables/useIsDarkTheme/index.mjs\";\nimport { g as getAvatarUrl } from \"./NcMentionBubble.vue_vue_type_style_index_0_scoped_45238efd_lang-BX_KxRP-.mjs\";\nimport { N as NcUserStatusIcon } from \"./NcUserStatusIcon-DsviB2Cr.mjs\";\nimport { openBlock, createElementBlock, normalizeClass, createElementVNode, normalizeStyle, toDisplayString, createApp, resolveComponent, createBlock, createCommentVNode, mergeProps, withModifiers, withKeys } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { a as emojiSearch, e as emojiAddRecent } from \"./emoji-C8k9NUlo.mjs\";\nimport { r as register, s as t37, J as t34, a as t, K as n } from \"./_l10n-CG4CuN3H.mjs\";\nimport escapeHTML from \"escape-html\";\nimport stripTags from \"striptags\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport \"@nextcloud/auth\";\nimport \"@nextcloud/axios\";\nimport \"@nextcloud/router\";\nimport \"@nextcloud/sharing/public\";\nimport \"@vueuse/core\";\nimport \"vue-router\";\nimport \"./legacy-BoqDmOCa.mjs\";\nimport \"./NcButton-QbPBynlU.mjs\";\nimport { g as getLinkWithPicker, s as searchProvider } from \"./referencePickerModal-B4bsiMOy.mjs\";\nimport \"./customPickerElements-Cu7bLbap.mjs\";\nimport \"unist-builder\";\nimport \"unist-util-visit-parents\";\nimport \"./NcRichText-BOBQq7Od.mjs\";\nimport \"./NcEmptyContent-CGAPqk4S.mjs\";\nimport \"./NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs\";\nimport \"./NcSelect-BOFzoCwK.mjs\";\nimport \"./NcLoadingIcon-BOVpFVQz.mjs\";\nimport \"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r.mjs\";\nimport \"dompurify\";\nimport \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport \"./NcInputField-B1bGxYHt.mjs\";\nimport \"@nextcloud/event-bus\";\nimport \"focus-trap\";\nimport \"./NcActions-CUmcZ3C3.mjs\";\nimport \"../composables/useFormatDateTime/index.mjs\";\nimport \"../composables/useHotKey/index.mjs\";\nimport \"../composables/useIsFullscreen/index.mjs\";\nimport \"../composables/useIsMobile/index.mjs\";\nimport \"./NcModal-DUWLRm_F.mjs\";\nimport \"./rtl-v0UOPAM7.mjs\";\nconst _sfc_main$2 = {\n name: \"NcMentionBubble\",\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n /**\n * Id of the bubble\n */\n id: {\n type: String,\n required: true\n },\n /**\n * The main text\n */\n label: {\n type: String,\n required: false,\n default: null\n },\n /**\n * Icon to be applied\n */\n icon: {\n type: String,\n required: true\n },\n /**\n * URL of the icon\n */\n iconUrl: {\n type: [String, null],\n default: null\n },\n source: {\n type: String,\n required: true\n },\n /**\n * Is the bubble shown as primary\n */\n primary: {\n type: Boolean,\n default: false\n }\n },\n setup() {\n const isDarkTheme = useIsDarkTheme();\n return {\n isDarkTheme\n };\n },\n computed: {\n avatarUrl() {\n if (this.iconUrl) {\n return this.iconUrl;\n }\n return this.id && this.source === \"users\" ? getAvatarUrl(this.id, { isDarkTheme: this.isDarkTheme }) : null;\n },\n mentionText() {\n return !this.id.includes(\" \") && !this.id.includes(\"/\") ? `@${this.id}` : `@\"${this.id}\"`;\n }\n }\n};\nconst _hoisted_1$2 = { class: \"mention-bubble__wrapper\" };\nconst _hoisted_2$2 = { class: \"mention-bubble__content\" };\nconst _hoisted_3$1 = [\"title\"];\nconst _hoisted_4$1 = {\n role: \"none\",\n class: \"mention-bubble__select\"\n};\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", {\n class: normalizeClass([\"mention-bubble\", { \"mention-bubble--primary\": $props.primary }]),\n contenteditable: \"false\"\n }, [\n createElementVNode(\"span\", _hoisted_1$2, [\n createElementVNode(\"span\", _hoisted_2$2, [\n createElementVNode(\"span\", {\n class: normalizeClass([[$props.icon, `mention-bubble__icon--${$options.avatarUrl ? \"with-avatar\" : \"\"}`], \"mention-bubble__icon\"]),\n style: normalizeStyle($options.avatarUrl ? { backgroundImage: `url(${$options.avatarUrl})` } : null)\n }, null, 6),\n createElementVNode(\"span\", {\n role: \"heading\",\n class: \"mention-bubble__title\",\n title: $props.label\n }, null, 8, _hoisted_3$1)\n ]),\n createElementVNode(\"span\", _hoisted_4$1, toDisplayString($options.mentionText), 1)\n ])\n ], 2);\n}\nconst NcMentionBubble = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2], [\"__scopeId\", \"data-v-45238efd\"]]);\nconst MENTION_START = /(?=[a-z0-9_\\-@.'])\\B/.source;\nconst MENTION_SIMPLE = /(@[a-z0-9_\\-@.']+)/.source;\nconst MENTION_GUEST = /@"(?:guest|email){1}\\/[a-f0-9]+"/.source;\nconst MENTION_PREFIXED = /@"(?:federated_)?(?:group|team|user){1}\\/[a-z0-9_\\-@.' /:]+"/.source;\nconst MENTION_WITH_SPACE = /@"[a-z0-9_\\-@.' ]+"/.source;\nconst MENTION_COMPLEX = `(${MENTION_GUEST}|${MENTION_PREFIXED}|${MENTION_WITH_SPACE})`;\nconst USERID_REGEX = new RegExp(`${MENTION_START}${MENTION_SIMPLE}`, \"gi\");\nconst USERID_REGEX_WITH_SPACE = new RegExp(`${MENTION_START}${MENTION_COMPLEX}`, \"gi\");\nconst richEditor = {\n props: {\n userData: {\n type: Object,\n default: () => ({})\n }\n },\n methods: {\n /**\n * Convert the value string to html for the inner content\n *\n * @param {string} value the content without html\n * @return {string} rendered html\n */\n renderContent(value) {\n const sanitizedValue = escapeHTML(value);\n const splitValue = sanitizedValue.split(USERID_REGEX).map((part) => part.split(USERID_REGEX_WITH_SPACE)).flat();\n return splitValue.map((part) => {\n if (!part.startsWith(\"@\")) {\n return part;\n }\n const id = part.slice(1).replace(/"/gi, \"\");\n return this.genSelectTemplate(id);\n }).join(\"\").replace(/\\n/gmi, \"
    \").replace(/&/gmi, \"&\");\n },\n /**\n * Convert the innerHtml content to a string with mentions as text\n *\n * @param {string} content the content without html\n * @return {string}\n */\n parseContent(content) {\n let text = content;\n text = text.replace(/
    /gmi, \"\\n\");\n text = text.replace(/ /gmi, \" \");\n text = text.replace(/&/gmi, \"&\");\n text = text.replace(/<\\/div>/gmi, \"\\n\");\n text = stripTags(text, \"
    \");\n text = stripTags(text);\n return text;\n },\n /**\n * Generate an autocompletion popup entry template\n *\n * @param {string} value the value to match against the userData\n * @return {string}\n */\n genSelectTemplate(value) {\n if (typeof value === \"undefined\") {\n return `${this.autocompleteTribute.current.collection.trigger}${this.autocompleteTribute.current.mentionText}`;\n }\n const data = this.userData[value];\n if (!data) {\n return [\" \", \"/\", \":\"].every((char) => !value.includes(char)) ? `@${value}` : `@\"${value}\"`;\n }\n return this.renderComponentHtml(data, NcMentionBubble).replace(/[\\n\\t]/gmi, \"\").replace(/>\\s+<\");\n },\n /**\n * Render a component and return its html content\n *\n * @param {object} props the props to pass to the component\n * @param {object} component the component to render\n * @return {string} the rendered html\n */\n renderComponentHtml(props, component) {\n const Item = createApp(component, {\n ...props\n });\n const mount = document.createElement(\"div\");\n mount.style.display = \"none\";\n document.body.appendChild(mount);\n Item.mount(mount);\n const renderedHtml = mount.innerHTML;\n Item.unmount();\n mount.remove();\n return renderedHtml;\n }\n }\n};\nconst _sfc_main$1 = {\n name: \"NcAutoCompleteResult\",\n components: {\n NcUserStatusIcon\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n /**\n * The label text\n */\n label: {\n type: String,\n required: false,\n default: null\n },\n /**\n * The secondary line of text if any\n */\n subline: {\n type: String,\n default: null\n },\n /**\n * Unique id\n */\n id: {\n type: String,\n default: null\n },\n /**\n * The icon class\n */\n icon: {\n type: String,\n required: true\n },\n /**\n * Icon as external URL\n */\n iconUrl: {\n type: String,\n default: null\n },\n source: {\n type: String,\n required: true\n },\n status: {\n type: [Object, Array],\n default: () => ({})\n }\n },\n setup() {\n const isDarkTheme = useIsDarkTheme();\n return {\n isDarkTheme\n };\n },\n computed: {\n avatarUrl() {\n if (this.iconUrl) {\n return this.iconUrl;\n }\n return this.id && this.source === \"users\" ? getAvatarUrl(this.id, { isDarkTheme: this.isDarkTheme }) : null;\n }\n }\n};\nconst _hoisted_1$1 = { class: \"autocomplete-result\" };\nconst _hoisted_2$1 = {\n key: 0,\n class: \"autocomplete-result__status autocomplete-result__status--icon\"\n};\nconst _hoisted_3 = { class: \"autocomplete-result__content\" };\nconst _hoisted_4 = [\"title\"];\nconst _hoisted_5 = {\n key: 0,\n class: \"autocomplete-result__subline\"\n};\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcUserStatusIcon = resolveComponent(\"NcUserStatusIcon\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n createElementVNode(\"div\", {\n class: normalizeClass([[$props.icon, `autocomplete-result__icon--${$options.avatarUrl ? \"with-avatar\" : \"\"}`], \"autocomplete-result__icon\"]),\n style: normalizeStyle($options.avatarUrl ? { backgroundImage: `url(${$options.avatarUrl})` } : null)\n }, [\n $props.status.icon ? (openBlock(), createElementBlock(\"span\", _hoisted_2$1, toDisplayString($props.status && $props.status.icon || \"\"), 1)) : $props.status.status && $props.status.status !== \"offline\" ? (openBlock(), createBlock(_component_NcUserStatusIcon, {\n key: 1,\n class: \"autocomplete-result__status\",\n status: $props.status.status\n }, null, 8, [\"status\"])) : createCommentVNode(\"\", true)\n ], 6),\n createElementVNode(\"span\", _hoisted_3, [\n createElementVNode(\"span\", {\n class: \"autocomplete-result__title\",\n title: $props.label\n }, toDisplayString($props.label), 9, _hoisted_4),\n $props.subline ? (openBlock(), createElementBlock(\"span\", _hoisted_5, toDisplayString($props.subline), 1)) : createCommentVNode(\"\", true)\n ])\n ]);\n}\nconst NcAutoCompleteResult = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-ca83b679\"]]);\nregister(t34, t37);\nconst style1 = {\n \"material-design-icon\": \"_material-design-icon_UrExO\",\n \"tribute-container\": \"_tribute-container_aTO5r\",\n \"tribute-container__item\": \"_tribute-container__item_EHZ07\",\n \"tribute-container--focus-visible\": \"_tribute-container--focus-visible_GHsDW\",\n \"tribute-container-autocomplete\": \"_tribute-container-autocomplete_YNk1h\",\n \"tribute-container-emoji\": \"_tribute-container-emoji_jWgZX\",\n \"tribute-container-link\": \"_tribute-container-link_1b7mc\",\n \"tribute-item\": \"_tribute-item_p5sRT\",\n \"tribute-item__title\": \"_tribute-item__title_VPcy9\",\n \"tribute-item__icon\": \"_tribute-item__icon_aTxCU\"\n};\nconst smilesCharacters = [\"d\", \"D\", \"p\", \"P\", \"s\", \"S\", \"x\", \"X\", \")\", \"(\", \"|\", \"/\"];\nconst textSmiles = [];\nsmilesCharacters.forEach((char) => {\n textSmiles.push(\":\" + char);\n textSmiles.push(\":-\" + char);\n});\nlet isPlaintextOnlySupported = null;\nconst _sfc_main = {\n name: \"NcRichContenteditable\",\n mixins: [richEditor],\n inheritAttrs: false,\n props: {\n /**\n * The ID attribute of the content editable\n */\n id: {\n type: String,\n default: () => createElementId()\n },\n /**\n * Visual label of the contenteditable\n */\n label: {\n type: String,\n default: \"\"\n },\n /**\n * The text content\n */\n modelValue: {\n type: String,\n required: true\n },\n /**\n * Placeholder to be shown if empty\n */\n placeholder: {\n type: String,\n default: t(\"Write a message …\")\n },\n /**\n * Auto complete function\n */\n autoComplete: {\n type: Function,\n default: () => []\n },\n /**\n * The containing element or selector for the tribute (menu popover)\n * Defaults to `body` element\n */\n menuContainer: {\n type: [String, Element, null],\n default: null\n },\n /**\n * Make the contenteditable looks like a textarea or not.\n * Default looks like a single-line input.\n * This also handle the default enter/shift+enter behaviour.\n * if multiline, enter = newline; otherwise enter = submit\n * shift+enter always add a new line. ctrl+enter always submits\n */\n multiline: {\n type: Boolean,\n default: false\n },\n /**\n * Is the content editable ?\n */\n contenteditable: {\n type: Boolean,\n default: true\n },\n /**\n * Disable the editing and show specific disabled design\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Max allowed length\n */\n maxlength: {\n type: Number,\n default: null\n },\n /**\n * Enable or disable emoji autocompletion\n */\n emojiAutocomplete: {\n type: Boolean,\n default: true\n },\n /**\n * Enable or disable link autocompletion\n */\n linkAutocomplete: {\n type: Boolean,\n default: true\n },\n /**\n * CSS class to apply to the root element.\n */\n class: {\n type: [String, Array, Object],\n default: \"\"\n }\n },\n emits: [\n \"paste\",\n \"update:modelValue\",\n \"smartPickerSubmit\",\n \"submit\"\n ],\n setup() {\n const segmenter = new Intl.Segmenter();\n if (isPlaintextOnlySupported === null) {\n try {\n document.createElement(\"div\").contentEditable = \"plaintext-only\";\n isPlaintextOnlySupported = true;\n } catch (error) {\n logger.debug(\"[NcRichContenteditable] Unsupported attribute value:\", { error });\n isPlaintextOnlySupported = false;\n }\n }\n return {\n // Constants\n labelId: createElementId(),\n tributeId: createElementId(),\n segmenter,\n /**\n * Non-reactive property to store Tribute instance\n *\n * @type {import('tributejs').default | null}\n */\n tribute: null,\n tributeStyleMutationObserver: null\n };\n },\n data() {\n return {\n // Represent the raw untrimmed text of the contenteditable\n // serves no other purpose than to check whether the\n // content is empty or not\n localValue: this.modelValue,\n // Is in text composition session in IME\n isComposing: false,\n // Tribute autocomplete\n isAutocompleteOpen: false,\n autocompleteActiveId: void 0,\n isTributeIntegrationDone: false\n };\n },\n computed: {\n /**\n * Is the current trimmed value empty?\n *\n * @return {boolean}\n */\n isEmptyValue() {\n return !this.localValue || this.localValue.trim() === \"\";\n },\n /**\n * Is the current value over maxlength?\n *\n * @return {boolean}\n */\n isOverMaxlength() {\n if (this.isEmptyValue || !this.maxlength) {\n return false;\n }\n const length = [...this.segmenter.segment(this.localValue)].length;\n return length > this.maxlength;\n },\n /**\n * Tooltip to show if characters count is over limit\n *\n * @return {string}\n */\n tooltipString() {\n if (!this.isOverMaxlength) {\n return null;\n }\n return n(\"Message limit of %n character reached\", \"Message limit of %n characters reached\", this.maxlength);\n },\n /**\n * Edit is only allowed when contenteditable is:\n * 'true' (all browsers since 2015)\n * 'plaintext-only' (most browsers since 2015, Firefox since 136+)\n *\n * @return {string}\n */\n contenteditableAttributeValue() {\n if (this.contenteditable && !this.disabled) {\n return isPlaintextOnlySupported ? \"plaintext-only\" : \"true\";\n }\n return \"false\";\n },\n /**\n * Compute debounce function for the autocomplete function\n */\n debouncedAutoComplete() {\n return debounce(async (search, callback) => {\n this.autoComplete(search, callback);\n }, 100);\n }\n },\n watch: {\n /**\n * If the parent value change, we compare the plain text rendering\n * If it's different, we render everything and update the main content\n */\n modelValue() {\n const html = this.$refs.contenteditable.innerHTML;\n if (this.modelValue.trim() !== this.parseContent(html).trim()) {\n this.updateContent(this.modelValue);\n }\n }\n },\n mounted() {\n this.initializeTribute();\n this.updateContent(this.modelValue);\n },\n beforeUnmount() {\n if (this.tribute) {\n this.tribute.detach(this.$refs.contenteditable);\n }\n if (this.tributeStyleMutationObserver) {\n this.tributeStyleMutationObserver.disconnect();\n }\n },\n methods: {\n /**\n * Focus the richContenteditable\n *\n * @public\n */\n focus() {\n this.$refs.contenteditable.focus();\n },\n initializeTribute() {\n const renderMenuItem = (content) => `
    ${content}
    `;\n const tributesCollection = [];\n tributesCollection.push({\n fillAttr: \"id\",\n // Search against id and label (display name) (fallback to title for v8.0.0..8.6.1 compatibility)\n lookup: (result) => `${result.id} ${result.label ?? result.title}`,\n requireLeadingSpace: true,\n // Popup mention autocompletion templates\n menuItemTemplate: (item) => renderMenuItem(this.renderComponentHtml(item.original, NcAutoCompleteResult)),\n // Hide if no results\n noMatchTemplate: () => '',\n // Inner display of mentions\n selectTemplate: (item) => this.genSelectTemplate(item?.original?.id),\n // Autocompletion results\n values: this.debouncedAutoComplete,\n // Class added to the menu container\n containerClass: `${this.$style[\"tribute-container\"]} ${this.$style[\"tribute-container-autocomplete\"]}`,\n // Class added to each list item\n itemClass: this.$style[\"tribute-container__item\"]\n });\n if (this.emojiAutocomplete) {\n tributesCollection.push({\n trigger: \":\",\n // Don't use the tribute search function at all\n // We pass search results as values (see below)\n lookup: (result, query) => query,\n requireLeadingSpace: true,\n // Popup mention autocompletion templates\n menuItemTemplate: (item) => {\n if (textSmiles.includes(item.original)) {\n return item.original;\n }\n return renderMenuItem(`${item.original.native} :${item.original.short_name}`);\n },\n // Hide if no results\n noMatchTemplate: () => t(\"No emoji found\"),\n // Display raw emoji along with its name\n selectTemplate: (item) => {\n if (textSmiles.includes(item.original)) {\n return item.original;\n }\n emojiAddRecent(item.original);\n return item.original.native;\n },\n // Pass the search results as values\n values: (text, cb) => {\n const emojiResults = emojiSearch(text);\n if (textSmiles.includes(\":\" + text)) {\n emojiResults.unshift(\":\" + text);\n }\n cb(emojiResults);\n },\n // Class added to the menu container\n containerClass: `${this.$style[\"tribute-container\"]} ${this.$style[\"tribute-container-emoji\"]}`,\n // Class added to each list item\n itemClass: this.$style[\"tribute-container__item\"]\n });\n }\n if (this.linkAutocomplete) {\n tributesCollection.push({\n trigger: \"/\",\n // Don't use the tribute search function at all\n // We pass search results as values (see below)\n lookup: (result, query) => query,\n requireLeadingSpace: true,\n // Popup mention autocompletion templates\n menuItemTemplate: (item) => renderMenuItem(` ${item.original.title}`),\n // Hide if no results\n noMatchTemplate: () => t(\"No link provider found\"),\n selectTemplate: this.getLink,\n // Pass the search results as values\n values: (text, cb) => cb(searchProvider(text)),\n // Class added to the menu container\n containerClass: `${this.$style[\"tribute-container\"]} ${this.$style[\"tribute-container-link\"]}`,\n // Class added to each list item\n itemClass: this.$style[\"tribute-container__item\"]\n });\n }\n const menuContainer = typeof this.menuContainer === \"string\" ? document.querySelector(this.menuContainer) : this.menuContainer;\n this.tribute = new Tribute({\n collection: tributesCollection,\n // FIXME: tributejs doesn't support allowSpaces as a collection option, only as a global one\n // Requires to fork a library to allow spaces only in the middle of mentions ('@' trigger)\n allowSpaces: false,\n // Where to inject the menu popup\n menuContainer\n });\n this.tribute.attach(this.$refs.contenteditable);\n this.$refs.contenteditable.contentEditable = this.contenteditableAttributeValue;\n },\n getLink(item) {\n getLinkWithPicker(item.original.id).then((result) => {\n const tmpElem = document.getElementById(\"tmp-smart-picker-result-node\");\n const eventData = {\n result,\n insertText: true\n };\n this.$emit(\"smartPickerSubmit\", eventData);\n if (eventData.insertText) {\n const newElem = document.createTextNode(result);\n tmpElem.replaceWith(newElem);\n this.setCursorAfter(newElem);\n this.updateValue(this.$refs.contenteditable.innerHTML);\n } else {\n tmpElem.remove();\n }\n }).catch((error) => {\n logger.debug(\"[NcRichContenteditable] Smart picker promise rejected:\", { error });\n const tmpElem = document.getElementById(\"tmp-smart-picker-result-node\");\n this.setCursorAfter(tmpElem);\n tmpElem.remove();\n });\n return '';\n },\n setCursorAfter(element) {\n const range = document.createRange();\n range.setEndAfter(element);\n range.collapse();\n const selection = window.getSelection();\n selection.removeAllRanges();\n selection.addRange(range);\n },\n moveCursorToEnd() {\n if (!document.createRange) {\n return;\n }\n if (window.getSelection().rangeCount > 0 && this.$refs.contenteditable.contains(window.getSelection().getRangeAt(0).commonAncestorContainer)) {\n return;\n }\n const range = document.createRange();\n range.selectNodeContents(this.$refs.contenteditable);\n range.collapse(false);\n const selection = window.getSelection();\n selection.removeAllRanges();\n selection.addRange(range);\n },\n /**\n * Re-emit the input event to the parent\n *\n * @param {Event} event the input event\n */\n onInput(event) {\n this.updateValue(event.target.innerHTML);\n },\n /**\n * When pasting, sanitize the content, extract text\n * and render it again\n *\n * @param {Event} event the paste event\n * @fires Event paste the original paste event\n */\n onPaste(event) {\n if (!this.contenteditable || this.disabled) {\n return;\n }\n if (isPlaintextOnlySupported) {\n this.$emit(\"paste\", event);\n } else {\n event.preventDefault();\n const clipboardData = event.clipboardData;\n this.$emit(\"paste\", event);\n if (clipboardData.files.length !== 0 || !Object.values(clipboardData.items).find((item) => item?.type.startsWith(\"text\"))) {\n return;\n }\n const text = clipboardData.getData(\"text\");\n const selection = window.getSelection();\n const range = selection.getRangeAt(0);\n range.deleteContents();\n range.insertNode(document.createTextNode(text));\n range.collapse(false);\n }\n this.updateValue(this.$refs.contenteditable.innerHTML);\n },\n /**\n * Update the value text from the provided html\n *\n * @param {string} htmlOrText the html content (or raw text with @mentions)\n */\n updateValue(htmlOrText) {\n const text = this.parseContent(htmlOrText).replace(/^\\n$/, \"\");\n this.localValue = text;\n this.$emit(\"update:modelValue\", text);\n },\n /**\n * Update content and local value\n *\n * @param {string} value the message value\n */\n updateContent(value) {\n const renderedContent = this.renderContent(value);\n this.$refs.contenteditable.innerHTML = renderedContent;\n this.localValue = value;\n },\n /**\n * Enter key pressed. Submits if not multiline\n *\n * @param {Event} event the keydown event\n */\n onEnter(event) {\n if (this.multiline || this.isOverMaxlength || this.tribute.isActive || this.isComposing) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n this.$emit(\"submit\", event);\n },\n /**\n * Ctrl + Enter key pressed is used to submit\n *\n * @param {Event} event the keydown event\n */\n onCtrlEnter(event) {\n if (this.isOverMaxlength) {\n return;\n }\n this.$emit(\"submit\", event);\n },\n onKeyUp(event) {\n event.stopImmediatePropagation();\n },\n onKeyEsc(event) {\n if (this.tribute && this.isAutocompleteOpen) {\n event.stopImmediatePropagation();\n this.tribute.hideMenu();\n }\n },\n /**\n * Get HTML element with Tribute.js container\n *\n * @return {HTMLElement}\n */\n getTributeContainer() {\n return this.tribute.menu;\n },\n /**\n * Get the currently selected item element id in Tribute.js container\n *\n * @return {HTMLElement}\n */\n getTributeSelectedItem() {\n return this.getTributeContainer().querySelector('.highlight [id^=\"nc-rich-contenteditable-tribute-item-\"]');\n },\n /**\n * Handle Tribute activation\n *\n * @param {boolean} isActive - is active\n */\n onTributeActive(isActive) {\n this.isAutocompleteOpen = isActive;\n if (isActive) {\n this.getTributeContainer().setAttribute(\"class\", this.tribute.current.collection.containerClass || this.$style[\"tribute-container\"]);\n this.setupTributeIntegration();\n document.removeEventListener(\"click\", this.hideTribute, true);\n } else {\n this.debouncedAutoComplete.clear();\n this.autocompleteActiveId = void 0;\n this.setTributeFocusVisible(false);\n }\n },\n onTributeArrowKeyDown() {\n if (!this.isAutocompleteOpen) {\n return;\n }\n this.setTributeFocusVisible(true);\n this.onTributeSelectedItemWillChange();\n },\n onTributeSelectedItemWillChange() {\n requestAnimationFrame(() => {\n this.autocompleteActiveId = this.getTributeSelectedItem()?.id;\n });\n },\n setupTributeIntegration() {\n if (this.isTributeIntegrationDone) {\n return;\n }\n this.isTributeIntegrationDone = true;\n const tributeContainer = this.getTributeContainer();\n tributeContainer.id = this.tributeId;\n tributeContainer.setAttribute(\"role\", \"listbox\");\n const ul = tributeContainer.children[0];\n ul.setAttribute(\"role\", \"presentation\");\n this.tributeStyleMutationObserver = new MutationObserver(([{ target }]) => {\n if (target.style.display !== \"none\") {\n this.onTributeSelectedItemWillChange();\n }\n }).observe(tributeContainer, {\n attributes: true,\n attributeFilter: [\"style\"]\n });\n tributeContainer.addEventListener(\"mousemove\", () => {\n this.setTributeFocusVisible(false);\n this.onTributeSelectedItemWillChange();\n }, { passive: true });\n },\n /**\n * Set tribute-container--focus-visible class on the Tribute container when the user navigates the listbox via keyboard.\n *\n * Because the real focus is kept on the textbox, we cannot use the :focus-visible pseudo-class\n * to style selected options in the autocomplete listbox.\n *\n * @param {boolean} withFocusVisible - should the focus-visible class be added\n */\n setTributeFocusVisible(withFocusVisible) {\n if (withFocusVisible) {\n this.getTributeContainer().classList.add(this.$style[\"tribute-container--focus-visible\"]);\n } else {\n this.getTributeContainer().classList.remove(this.$style[\"tribute-container--focus-visible\"]);\n }\n },\n /**\n * Show tribute menu programmatically.\n *\n * @param {string} trigger - trigger character, can be '/', '@', or ':'\n *\n * @public\n */\n showTribute(trigger) {\n this.focus();\n const index = this.tribute.collection.findIndex((collection) => collection.trigger === trigger);\n this.tribute.showMenuForCollection(this.$refs.contenteditable, index);\n this.updateValue(this.$refs.contenteditable.innerHTML);\n document.addEventListener(\"click\", this.hideTribute, true);\n },\n /**\n * Hide tribute menu programmatically\n *\n */\n hideTribute() {\n this.tribute.hideMenu();\n document.removeEventListener(\"click\", this.hideTribute, true);\n }\n }\n};\nconst _hoisted_1 = [\"id\", \"contenteditable\", \"aria-labelledby\", \"aria-placeholder\", \"aria-controls\", \"aria-expanded\", \"aria-activedescendant\", \"title\"];\nconst _hoisted_2 = [\"id\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"rich-contenteditable\", _ctx.$props.class])\n }, [\n createElementVNode(\"div\", mergeProps({\n id: $props.id,\n ref: \"contenteditable\",\n class: [{\n \"rich-contenteditable__input--empty\": $options.isEmptyValue,\n \"rich-contenteditable__input--multiline\": $props.multiline,\n \"rich-contenteditable__input--has-label\": $props.label,\n \"rich-contenteditable__input--overflow\": $options.isOverMaxlength,\n \"rich-contenteditable__input--disabled\": $props.disabled\n }, \"rich-contenteditable__input\"],\n contenteditable: $options.contenteditableAttributeValue,\n \"aria-labelledby\": $props.label ? $setup.labelId : void 0,\n \"aria-placeholder\": $props.placeholder,\n \"aria-multiline\": \"true\",\n role: \"textbox\",\n \"aria-haspopup\": \"listbox\",\n \"aria-autocomplete\": \"inline\",\n \"aria-controls\": $setup.tributeId,\n \"aria-expanded\": $data.isAutocompleteOpen ? \"true\" : \"false\",\n \"aria-activedescendant\": $data.autocompleteActiveId,\n title: $options.tooltipString\n }, _ctx.$attrs, {\n onFocus: _cache[0] || (_cache[0] = (...args) => $options.moveCursorToEnd && $options.moveCursorToEnd(...args)),\n onInput: _cache[1] || (_cache[1] = (...args) => $options.onInput && $options.onInput(...args)),\n onCompositionstart: _cache[2] || (_cache[2] = ($event) => $data.isComposing = true),\n onCompositionend: _cache[3] || (_cache[3] = ($event) => $data.isComposing = false),\n onKeydownCapture: _cache[4] || (_cache[4] = withKeys((...args) => $options.onKeyEsc && $options.onKeyEsc(...args), [\"esc\"])),\n onKeydown: [\n _cache[5] || (_cache[5] = withKeys(withModifiers((...args) => $options.onEnter && $options.onEnter(...args), [\"exact\"]), [\"enter\"])),\n _cache[6] || (_cache[6] = withKeys(withModifiers((...args) => $options.onCtrlEnter && $options.onCtrlEnter(...args), [\"ctrl\", \"exact\", \"stop\", \"prevent\"]), [\"enter\"])),\n _cache[9] || (_cache[9] = withKeys(withModifiers((...args) => $options.onTributeArrowKeyDown && $options.onTributeArrowKeyDown(...args), [\"exact\", \"stop\"]), [\"up\"])),\n _cache[10] || (_cache[10] = withKeys(withModifiers((...args) => $options.onTributeArrowKeyDown && $options.onTributeArrowKeyDown(...args), [\"exact\", \"stop\"]), [\"down\"]))\n ],\n onPaste: _cache[7] || (_cache[7] = (...args) => $options.onPaste && $options.onPaste(...args)),\n onKeyupCapture: _cache[8] || (_cache[8] = withModifiers((...args) => $options.onKeyUp && $options.onKeyUp(...args), [\"stop\", \"prevent\"])),\n onTributeActiveTrue: _cache[11] || (_cache[11] = ($event) => $options.onTributeActive(true)),\n onTributeActiveFalse: _cache[12] || (_cache[12] = ($event) => $options.onTributeActive(false))\n }), null, 16, _hoisted_1),\n $props.label ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n id: $setup.labelId,\n class: \"rich-contenteditable__label\"\n }, toDisplayString($props.label), 9, _hoisted_2)) : createCommentVNode(\"\", true)\n ], 2);\n}\nconst cssModules = {\n \"$style\": style1\n};\nconst NcRichContenteditable = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__cssModules\", cssModules], [\"__scopeId\", \"data-v-9234d45e\"]]);\nexport {\n NcAutoCompleteResult as N,\n NcMentionBubble as a,\n NcRichContenteditable as b\n};\n//# sourceMappingURL=NcRichContenteditable-DO3_WniI.mjs.map\n"],"names":["predicate","list","length","thisArg","value","i","CustomEvent$1","event","params","evt","TributeEvents","tribute","element","instance","o","li","keyCode","trigger","eventKeyPressed","el","info","e","collectionItem","item","count","selected","index","lis","liClientRect","menuClientRect","scrollDistance","elem","includeMargin","height","style","TributeMenuEvents","menu","func","wait","immediate","timeout","context","args","later","callNow","TributeRange","iframe","scrollTo","coordinates","menuDimensions","menuIsOffScreen","menuIsOffScreenHorizontally","menuIsOffScreenVertically","targetElement","path","offset","range","sel","text","requireLeadingSpace","hasTrailingSpace","originalEvent","replaceEvent","textSuffix","endPos","myField","startPos","html","frag","node","lastNode","ctx","ce","selectedElem","workingNodeContent","selectStartOffset","textComponent","wordsArray","worldsCount","menuAlreadyActive","allowSpaces","isAutocomplete","selectionInfo","effectiveRange","lastWordOfEffectiveRange","mostRecentTriggerCharPos","triggerChar","config","c","idx","currentTriggerSnippet","firstSnippetChar","leadingSpace","regex","str","reversedStr","cidx","len","firstChar","match","triggerIdx","windowWidth","windowHeight","doc","windowLeft","windowTop","menuTop","menuRight","menuBottom","menuLeft","dimensions","position","flipped","properties","isFirefox","div","computed","prop","span","rect","top","left","parentHeight","parentRect","scrollStillAvailable","selectedNodePosition","reasonableBuffer","clientRect","maxScrollDisplacement","elemTop","elemBottom","maxY","targetY","TributeSearch","pattern","array","string","opts","pre","post","compareString","patternCache","stringIndex","patternIndex","best","temp","score","indices","rendered","arr","prev","a","b","Tribute","values","selectClass","containerClass","itemClass","autocompleteMode","selectTemplate","menuItemTemplate","lookup","fillAttr","collection","menuContainer","noMatchTemplate","replaceTextSuffix","positionMenu","spaceSelectsMatch","searchOpts","menuItemLimit","menuShowMinLength","t","val","noMatchEvent","matchItem","wrapper","ul","processValues","items","fragment","collectionIndex","textRange","textNode","textarea","scrollPos","caretPos","front","back","content","newValues","replace","_sfc_main$2","useIsDarkTheme","getAvatarUrl","_hoisted_1$2","_hoisted_2$2","_hoisted_3$1","_hoisted_4$1","_sfc_render$2","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","normalizeClass","createElementVNode","normalizeStyle","toDisplayString","NcMentionBubble","_export_sfc","MENTION_START","MENTION_SIMPLE","MENTION_GUEST","MENTION_PREFIXED","MENTION_WITH_SPACE","MENTION_COMPLEX","USERID_REGEX","USERID_REGEX_WITH_SPACE","richEditor","escapeHTML","part","id","stripTags","data","char","props","component","Item","createApp","mount","renderedHtml","_sfc_main$1","NcUserStatusIcon","_hoisted_1$1","_hoisted_2$1","_hoisted_3","_hoisted_4","_hoisted_5","_sfc_render$1","_component_NcUserStatusIcon","resolveComponent","createBlock","createCommentVNode","NcAutoCompleteResult","register","t34","t37","style1","smilesCharacters","textSmiles","isPlaintextOnlySupported","_sfc_main","createElementId","segmenter","error","logger","n","debounce","search","callback","renderMenuItem","tributesCollection","result","query","emojiAddRecent","cb","emojiResults","emojiSearch","searchProvider","getLinkWithPicker","tmpElem","eventData","newElem","selection","clipboardData","htmlOrText","renderedContent","isActive","tributeContainer","target","withFocusVisible","_hoisted_1","_hoisted_2","_sfc_render","mergeProps","$event","withKeys","withModifiers","cssModules","NcRichContenteditable"],"mappings":"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","x_google_ignoreList":[0,1]} \ No newline at end of file +{"version":3,"file":"index-CcOuN-F7.chunk.mjs","sources":["../node_modules/tributejs/dist/tribute.esm.js","../node_modules/@nextcloud/vue/dist/chunks/NcRichContenteditable-DO3_WniI.mjs"],"sourcesContent":["if (!Array.prototype.find) {\n Array.prototype.find = function(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined')\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function')\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value\n }\n }\n return undefined\n };\n}\n\nif (window && typeof window.CustomEvent !== \"function\") {\n function CustomEvent$1(event, params) {\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: undefined\n };\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt\n }\n\n if (typeof window.Event !== 'undefined') {\n CustomEvent$1.prototype = window.Event.prototype;\n }\n\n window.CustomEvent = CustomEvent$1;\n}\n\nclass TributeEvents {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.events = this;\n }\n\n static keys() {\n return [\n {\n key: 9,\n value: \"TAB\"\n },\n {\n key: 8,\n value: \"DELETE\"\n },\n {\n key: 13,\n value: \"ENTER\"\n },\n {\n key: 27,\n value: \"ESCAPE\"\n },\n {\n key: 32,\n value: \"SPACE\"\n },\n {\n key: 38,\n value: \"UP\"\n },\n {\n key: 40,\n value: \"DOWN\"\n }\n ];\n }\n\n bind(element) {\n element.boundKeydown = this.keydown.bind(element, this);\n element.boundKeyup = this.keyup.bind(element, this);\n element.boundInput = this.input.bind(element, this);\n\n element.addEventListener(\"keydown\", element.boundKeydown, false);\n element.addEventListener(\"keyup\", element.boundKeyup, false);\n element.addEventListener(\"input\", element.boundInput, false);\n }\n\n unbind(element) {\n element.removeEventListener(\"keydown\", element.boundKeydown, false);\n element.removeEventListener(\"keyup\", element.boundKeyup, false);\n element.removeEventListener(\"input\", element.boundInput, false);\n\n delete element.boundKeydown;\n delete element.boundKeyup;\n delete element.boundInput;\n }\n\n keydown(instance, event) {\n if (instance.shouldDeactivate(event)) {\n instance.tribute.isActive = false;\n instance.tribute.hideMenu();\n }\n\n let element = this;\n instance.commandEvent = false;\n\n TributeEvents.keys().forEach(o => {\n if (o.key === event.keyCode) {\n instance.commandEvent = true;\n instance.callbacks()[o.value.toLowerCase()](event, element);\n }\n });\n }\n\n input(instance, event) {\n instance.inputEvent = true;\n instance.keyup.call(this, instance, event);\n }\n\n click(instance, event) {\n let tribute = instance.tribute;\n if (tribute.menu && tribute.menu.contains(event.target)) {\n let li = event.target;\n event.preventDefault();\n event.stopPropagation();\n while (li.nodeName.toLowerCase() !== \"li\") {\n li = li.parentNode;\n if (!li || li === tribute.menu) {\n throw new Error(\"cannot find the
  • container for the click\");\n }\n }\n tribute.selectItemAtIndex(li.getAttribute(\"data-index\"), event);\n tribute.hideMenu();\n\n // TODO: should fire with externalTrigger and target is outside of menu\n } else if (tribute.current.element && !tribute.current.externalTrigger) {\n tribute.current.externalTrigger = false;\n setTimeout(() => tribute.hideMenu());\n }\n }\n\n keyup(instance, event) {\n if (instance.inputEvent) {\n instance.inputEvent = false;\n }\n instance.updateSelection(this);\n\n if (event.keyCode === 27) return;\n\n if (!instance.tribute.allowSpaces && instance.tribute.hasTrailingSpace) {\n instance.tribute.hasTrailingSpace = false;\n instance.commandEvent = true;\n instance.callbacks()[\"space\"](event, this);\n return;\n }\n\n if (!instance.tribute.isActive) {\n if (instance.tribute.autocompleteMode) {\n instance.callbacks().triggerChar(event, this, \"\");\n } else {\n let keyCode = instance.getKeyCode(instance, this, event);\n\n if (isNaN(keyCode) || !keyCode) return;\n\n let trigger = instance.tribute.triggers().find(trigger => {\n return trigger.charCodeAt(0) === keyCode;\n });\n\n if (typeof trigger !== \"undefined\") {\n instance.callbacks().triggerChar(event, this, trigger);\n }\n }\n }\n\n if (\n instance.tribute.current.mentionText.length <\n instance.tribute.current.collection.menuShowMinLength\n ) {\n return;\n }\n\n if (\n ((instance.tribute.current.trigger ||\n instance.tribute.autocompleteMode) &&\n instance.commandEvent === false) ||\n (instance.tribute.isActive && event.keyCode === 8)\n ) {\n instance.tribute.showMenuFor(this, true);\n }\n }\n\n shouldDeactivate(event) {\n if (!this.tribute.isActive) return false;\n\n if (this.tribute.current.mentionText.length === 0) {\n let eventKeyPressed = false;\n TributeEvents.keys().forEach(o => {\n if (event.keyCode === o.key) eventKeyPressed = true;\n });\n\n return !eventKeyPressed;\n }\n\n return false;\n }\n\n getKeyCode(instance, el, event) {\n let tribute = instance.tribute;\n let info = tribute.range.getTriggerInfo(\n false,\n tribute.hasTrailingSpace,\n true,\n tribute.allowSpaces,\n tribute.autocompleteMode\n );\n\n if (info) {\n return info.mentionTriggerChar.charCodeAt(0);\n } else {\n return false;\n }\n }\n\n updateSelection(el) {\n this.tribute.current.element = el;\n let info = this.tribute.range.getTriggerInfo(\n false,\n this.tribute.hasTrailingSpace,\n true,\n this.tribute.allowSpaces,\n this.tribute.autocompleteMode\n );\n\n if (info) {\n this.tribute.current.selectedPath = info.mentionSelectedPath;\n this.tribute.current.mentionText = info.mentionText;\n this.tribute.current.selectedOffset = info.mentionSelectedOffset;\n }\n }\n\n callbacks() {\n return {\n triggerChar: (e, el, trigger) => {\n let tribute = this.tribute;\n tribute.current.trigger = trigger;\n\n let collectionItem = tribute.collection.find(item => {\n return item.trigger === trigger;\n });\n\n tribute.current.collection = collectionItem;\n\n if (\n tribute.current.mentionText.length >=\n tribute.current.collection.menuShowMinLength &&\n tribute.inputEvent\n ) {\n tribute.showMenuFor(el, true);\n }\n },\n enter: (e, el) => {\n // choose selection\n if (this.tribute.isActive && this.tribute.current.filteredItems) {\n e.preventDefault();\n e.stopPropagation();\n setTimeout(() => {\n this.tribute.selectItemAtIndex(this.tribute.menuSelected, e);\n this.tribute.hideMenu();\n }, 0);\n }\n },\n escape: (e, el) => {\n if (this.tribute.isActive) {\n e.preventDefault();\n e.stopPropagation();\n this.tribute.isActive = false;\n this.tribute.hideMenu();\n }\n },\n tab: (e, el) => {\n // choose first match\n this.callbacks().enter(e, el);\n },\n space: (e, el) => {\n if (this.tribute.isActive) {\n if (this.tribute.spaceSelectsMatch) {\n this.callbacks().enter(e, el);\n } else if (!this.tribute.allowSpaces) {\n e.stopPropagation();\n setTimeout(() => {\n this.tribute.hideMenu();\n this.tribute.isActive = false;\n }, 0);\n }\n }\n },\n up: (e, el) => {\n // navigate up ul\n if (this.tribute.isActive && this.tribute.current.filteredItems) {\n e.preventDefault();\n e.stopPropagation();\n let count = this.tribute.current.filteredItems.length,\n selected = this.tribute.menuSelected;\n\n if (count > selected && selected > 0) {\n this.tribute.menuSelected--;\n this.setActiveLi();\n } else if (selected === 0) {\n this.tribute.menuSelected = count - 1;\n this.setActiveLi();\n this.tribute.menu.scrollTop = this.tribute.menu.scrollHeight;\n }\n }\n },\n down: (e, el) => {\n // navigate down ul\n if (this.tribute.isActive && this.tribute.current.filteredItems) {\n e.preventDefault();\n e.stopPropagation();\n let count = this.tribute.current.filteredItems.length - 1,\n selected = this.tribute.menuSelected;\n\n if (count > selected) {\n this.tribute.menuSelected++;\n this.setActiveLi();\n } else if (count === selected) {\n this.tribute.menuSelected = 0;\n this.setActiveLi();\n this.tribute.menu.scrollTop = 0;\n }\n }\n },\n delete: (e, el) => {\n if (\n this.tribute.isActive &&\n this.tribute.current.mentionText.length < 1\n ) {\n this.tribute.hideMenu();\n } else if (this.tribute.isActive) {\n this.tribute.showMenuFor(el);\n }\n }\n };\n }\n\n setActiveLi(index) {\n let lis = this.tribute.menu.querySelectorAll(\"li\"),\n length = lis.length >>> 0;\n\n if (index) this.tribute.menuSelected = parseInt(index);\n\n for (let i = 0; i < length; i++) {\n let li = lis[i];\n if (i === this.tribute.menuSelected) {\n li.classList.add(this.tribute.current.collection.selectClass);\n\n let liClientRect = li.getBoundingClientRect();\n let menuClientRect = this.tribute.menu.getBoundingClientRect();\n\n if (liClientRect.bottom > menuClientRect.bottom) {\n let scrollDistance = liClientRect.bottom - menuClientRect.bottom;\n this.tribute.menu.scrollTop += scrollDistance;\n } else if (liClientRect.top < menuClientRect.top) {\n let scrollDistance = menuClientRect.top - liClientRect.top;\n this.tribute.menu.scrollTop -= scrollDistance;\n }\n } else {\n li.classList.remove(this.tribute.current.collection.selectClass);\n }\n }\n }\n\n getFullHeight(elem, includeMargin) {\n let height = elem.getBoundingClientRect().height;\n\n if (includeMargin) {\n let style = elem.currentStyle || window.getComputedStyle(elem);\n return (\n height + parseFloat(style.marginTop) + parseFloat(style.marginBottom)\n );\n }\n\n return height;\n }\n}\n\nclass TributeMenuEvents {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.menuEvents = this;\n this.menu = this.tribute.menu;\n }\n\n bind(menu) {\n this.menuClickEvent = this.tribute.events.click.bind(null, this);\n this.menuContainerScrollEvent = this.debounce(\n () => {\n if (this.tribute.isActive) {\n this.tribute.showMenuFor(this.tribute.current.element, false);\n }\n },\n 300,\n false\n );\n this.windowResizeEvent = this.debounce(\n () => {\n if (this.tribute.isActive) {\n this.tribute.range.positionMenuAtCaret(true);\n }\n },\n 300,\n false\n );\n\n // fixes IE11 issues with mousedown\n this.tribute.range\n .getDocument()\n .addEventListener(\"MSPointerDown\", this.menuClickEvent, false);\n this.tribute.range\n .getDocument()\n .addEventListener(\"mousedown\", this.menuClickEvent, false);\n window.addEventListener(\"resize\", this.windowResizeEvent);\n\n if (this.menuContainer) {\n this.menuContainer.addEventListener(\n \"scroll\",\n this.menuContainerScrollEvent,\n false\n );\n } else {\n window.addEventListener(\"scroll\", this.menuContainerScrollEvent);\n }\n }\n\n unbind(menu) {\n this.tribute.range\n .getDocument()\n .removeEventListener(\"mousedown\", this.menuClickEvent, false);\n this.tribute.range\n .getDocument()\n .removeEventListener(\"MSPointerDown\", this.menuClickEvent, false);\n window.removeEventListener(\"resize\", this.windowResizeEvent);\n\n if (this.menuContainer) {\n this.menuContainer.removeEventListener(\n \"scroll\",\n this.menuContainerScrollEvent,\n false\n );\n } else {\n window.removeEventListener(\"scroll\", this.menuContainerScrollEvent);\n }\n }\n\n debounce(func, wait, immediate) {\n var timeout;\n return () => {\n var context = this,\n args = arguments;\n var later = () => {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n }\n}\n\n// Thanks to https://github.com/jeff-collins/ment.io\n\nclass TributeRange {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.range = this;\n }\n\n getDocument() {\n let iframe;\n if (this.tribute.current.collection) {\n iframe = this.tribute.current.collection.iframe;\n }\n\n if (!iframe) {\n return document\n }\n\n return iframe.contentWindow.document\n }\n\n positionMenuAtCaret(scrollTo) {\n let context = this.tribute.current,\n coordinates;\n\n let info = this.getTriggerInfo(false, this.tribute.hasTrailingSpace, true, this.tribute.allowSpaces, this.tribute.autocompleteMode);\n\n if (typeof info !== 'undefined') {\n\n if(!this.tribute.positionMenu){\n this.tribute.menu.style.cssText = `display: block;`;\n return\n }\n\n if (!this.isContentEditable(context.element)) {\n coordinates = this.getTextAreaOrInputUnderlinePosition(this.tribute.current.element,\n info.mentionPosition);\n }\n else {\n coordinates = this.getContentEditableCaretPosition(info.mentionPosition);\n }\n\n this.tribute.menu.style.cssText = `top: ${coordinates.top}px;\n left: ${coordinates.left}px;\n right: ${coordinates.right}px;\n bottom: ${coordinates.bottom}px;\n position: absolute;\n display: block;`;\n\n if (coordinates.left === 'auto') {\n this.tribute.menu.style.left = 'auto';\n }\n\n if (coordinates.top === 'auto') {\n this.tribute.menu.style.top = 'auto';\n }\n\n if (scrollTo) this.scrollIntoView();\n\n window.setTimeout(() => {\n let menuDimensions = {\n width: this.tribute.menu.offsetWidth,\n height: this.tribute.menu.offsetHeight\n };\n let menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n let menuIsOffScreenHorizontally = window.innerWidth > menuDimensions.width && (menuIsOffScreen.left || menuIsOffScreen.right);\n let menuIsOffScreenVertically = window.innerHeight > menuDimensions.height && (menuIsOffScreen.top || menuIsOffScreen.bottom);\n if (menuIsOffScreenHorizontally || menuIsOffScreenVertically) {\n this.tribute.menu.style.cssText = 'display: none';\n this.positionMenuAtCaret(scrollTo);\n }\n }, 0);\n\n } else {\n this.tribute.menu.style.cssText = 'display: none';\n }\n }\n\n get menuContainerIsBody() {\n return this.tribute.menuContainer === document.body || !this.tribute.menuContainer;\n }\n\n\n selectElement(targetElement, path, offset) {\n let range;\n let elem = targetElement;\n\n if (path) {\n for (var i = 0; i < path.length; i++) {\n elem = elem.childNodes[path[i]];\n if (elem === undefined) {\n return\n }\n while (elem.length < offset) {\n offset -= elem.length;\n elem = elem.nextSibling;\n }\n if (elem.childNodes.length === 0 && !elem.length) {\n elem = elem.previousSibling;\n }\n }\n }\n let sel = this.getWindowSelection();\n\n range = this.getDocument().createRange();\n range.setStart(elem, offset);\n range.setEnd(elem, offset);\n range.collapse(true);\n\n try {\n sel.removeAllRanges();\n } catch (error) {}\n\n sel.addRange(range);\n targetElement.focus();\n }\n\n replaceTriggerText(text, requireLeadingSpace, hasTrailingSpace, originalEvent, item) {\n let info = this.getTriggerInfo(true, hasTrailingSpace, requireLeadingSpace, this.tribute.allowSpaces, this.tribute.autocompleteMode);\n\n if (info !== undefined) {\n let context = this.tribute.current;\n let replaceEvent = new CustomEvent('tribute-replaced', {\n detail: {\n item: item,\n instance: context,\n context: info,\n event: originalEvent,\n }\n });\n\n if (!this.isContentEditable(context.element)) {\n let myField = this.tribute.current.element;\n let textSuffix = typeof this.tribute.replaceTextSuffix == 'string'\n ? this.tribute.replaceTextSuffix\n : ' ';\n text += textSuffix;\n let startPos = info.mentionPosition;\n let endPos = info.mentionPosition + info.mentionText.length + textSuffix.length;\n if (!this.tribute.autocompleteMode) {\n endPos += info.mentionTriggerChar.length - 1;\n }\n myField.value = myField.value.substring(0, startPos) + text +\n myField.value.substring(endPos, myField.value.length);\n myField.selectionStart = startPos + text.length;\n myField.selectionEnd = startPos + text.length;\n } else {\n // add a space to the end of the pasted text\n let textSuffix = typeof this.tribute.replaceTextSuffix == 'string'\n ? this.tribute.replaceTextSuffix\n : '\\xA0';\n text += textSuffix;\n let endPos = info.mentionPosition + info.mentionText.length;\n if (!this.tribute.autocompleteMode) {\n endPos += info.mentionTriggerChar.length;\n }\n this.pasteHtml(text, info.mentionPosition, endPos);\n }\n\n context.element.dispatchEvent(new CustomEvent('input', { bubbles: true }));\n context.element.dispatchEvent(replaceEvent);\n }\n }\n\n pasteHtml(html, startPos, endPos) {\n let range, sel;\n sel = this.getWindowSelection();\n range = this.getDocument().createRange();\n range.setStart(sel.anchorNode, startPos);\n range.setEnd(sel.anchorNode, endPos);\n range.deleteContents();\n\n let el = this.getDocument().createElement('div');\n el.innerHTML = html;\n let frag = this.getDocument().createDocumentFragment(),\n node, lastNode;\n while ((node = el.firstChild)) {\n lastNode = frag.appendChild(node);\n }\n range.insertNode(frag);\n\n // Preserve the selection\n if (lastNode) {\n range = range.cloneRange();\n range.setStartAfter(lastNode);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n }\n\n getWindowSelection() {\n if (this.tribute.collection.iframe) {\n return this.tribute.collection.iframe.contentWindow.getSelection()\n }\n\n return window.getSelection()\n }\n\n getNodePositionInParent(element) {\n if (element.parentNode === null) {\n return 0\n }\n\n for (var i = 0; i < element.parentNode.childNodes.length; i++) {\n let node = element.parentNode.childNodes[i];\n\n if (node === element) {\n return i\n }\n }\n }\n\n getContentEditableSelectedPath(ctx) {\n let sel = this.getWindowSelection();\n let selected = sel.anchorNode;\n let path = [];\n let offset;\n\n if (selected != null) {\n let i;\n let ce = selected.contentEditable;\n while (selected !== null && ce !== 'true') {\n i = this.getNodePositionInParent(selected);\n path.push(i);\n selected = selected.parentNode;\n if (selected !== null) {\n ce = selected.contentEditable;\n }\n }\n path.reverse();\n\n // getRangeAt may not exist, need alternative\n offset = sel.getRangeAt(0).startOffset;\n\n return {\n selected: selected,\n path: path,\n offset: offset\n }\n }\n }\n\n getTextPrecedingCurrentSelection() {\n let context = this.tribute.current,\n text = '';\n\n if (!this.isContentEditable(context.element)) {\n let textComponent = this.tribute.current.element;\n if (textComponent) {\n let startPos = textComponent.selectionStart;\n if (textComponent.value && startPos >= 0) {\n text = textComponent.value.substring(0, startPos);\n }\n }\n\n } else {\n let selectedElem = this.getWindowSelection().anchorNode;\n\n if (selectedElem != null) {\n let workingNodeContent = selectedElem.textContent;\n let selectStartOffset = this.getWindowSelection().getRangeAt(0).startOffset;\n\n if (workingNodeContent && selectStartOffset >= 0) {\n text = workingNodeContent.substring(0, selectStartOffset);\n }\n }\n }\n\n return text\n }\n\n getLastWordInText(text) {\n text = text.replace(/\\u00A0/g, ' '); // https://stackoverflow.com/questions/29850407/how-do-i-replace-unicode-character-u00a0-with-a-space-in-javascript\n let wordsArray = text.split(/\\s+/);\n let worldsCount = wordsArray.length - 1;\n return wordsArray[worldsCount].trim()\n }\n\n getTriggerInfo(menuAlreadyActive, hasTrailingSpace, requireLeadingSpace, allowSpaces, isAutocomplete) {\n let ctx = this.tribute.current;\n let selected, path, offset;\n\n if (!this.isContentEditable(ctx.element)) {\n selected = this.tribute.current.element;\n } else {\n let selectionInfo = this.getContentEditableSelectedPath(ctx);\n\n if (selectionInfo) {\n selected = selectionInfo.selected;\n path = selectionInfo.path;\n offset = selectionInfo.offset;\n }\n }\n\n let effectiveRange = this.getTextPrecedingCurrentSelection();\n let lastWordOfEffectiveRange = this.getLastWordInText(effectiveRange);\n\n if (isAutocomplete) {\n return {\n mentionPosition: effectiveRange.length - lastWordOfEffectiveRange.length,\n mentionText: lastWordOfEffectiveRange,\n mentionSelectedElement: selected,\n mentionSelectedPath: path,\n mentionSelectedOffset: offset\n }\n }\n\n if (effectiveRange !== undefined && effectiveRange !== null) {\n let mostRecentTriggerCharPos = -1;\n let triggerChar;\n\n this.tribute.collection.forEach(config => {\n let c = config.trigger;\n let idx = config.requireLeadingSpace ?\n this.lastIndexWithLeadingSpace(effectiveRange, c) :\n effectiveRange.lastIndexOf(c);\n\n if (idx > mostRecentTriggerCharPos) {\n mostRecentTriggerCharPos = idx;\n triggerChar = c;\n requireLeadingSpace = config.requireLeadingSpace;\n }\n });\n\n if (mostRecentTriggerCharPos >= 0 &&\n (\n mostRecentTriggerCharPos === 0 ||\n !requireLeadingSpace ||\n /[\\xA0\\s]/g.test(\n effectiveRange.substring(\n mostRecentTriggerCharPos - 1,\n mostRecentTriggerCharPos)\n )\n )\n ) {\n let currentTriggerSnippet = effectiveRange.substring(mostRecentTriggerCharPos + triggerChar.length,\n effectiveRange.length);\n\n triggerChar = effectiveRange.substring(mostRecentTriggerCharPos, mostRecentTriggerCharPos + triggerChar.length);\n let firstSnippetChar = currentTriggerSnippet.substring(0, 1);\n let leadingSpace = currentTriggerSnippet.length > 0 &&\n (\n firstSnippetChar === ' ' ||\n firstSnippetChar === '\\xA0'\n );\n if (hasTrailingSpace) {\n currentTriggerSnippet = currentTriggerSnippet.trim();\n }\n\n let regex = allowSpaces ? /[^\\S ]/g : /[\\xA0\\s]/g;\n\n this.tribute.hasTrailingSpace = regex.test(currentTriggerSnippet);\n\n if (!leadingSpace && (menuAlreadyActive || !(regex.test(currentTriggerSnippet)))) {\n return {\n mentionPosition: mostRecentTriggerCharPos,\n mentionText: currentTriggerSnippet,\n mentionSelectedElement: selected,\n mentionSelectedPath: path,\n mentionSelectedOffset: offset,\n mentionTriggerChar: triggerChar\n }\n }\n }\n }\n }\n\n lastIndexWithLeadingSpace (str, trigger) {\n let reversedStr = str.split('').reverse().join('');\n let index = -1;\n\n for (let cidx = 0, len = str.length; cidx < len; cidx++) {\n let firstChar = cidx === str.length - 1;\n let leadingSpace = /\\s/.test(reversedStr[cidx + 1]);\n\n let match = true;\n for (let triggerIdx = trigger.length - 1; triggerIdx >= 0; triggerIdx--) {\n if (trigger[triggerIdx] !== reversedStr[cidx-triggerIdx]) {\n match = false;\n break\n }\n }\n\n if (match && (firstChar || leadingSpace)) {\n index = str.length - 1 - cidx;\n break\n }\n }\n\n return index\n }\n\n isContentEditable(element) {\n return element.nodeName !== 'INPUT' && element.nodeName !== 'TEXTAREA'\n }\n\n isMenuOffScreen(coordinates, menuDimensions) {\n let windowWidth = window.innerWidth;\n let windowHeight = window.innerHeight;\n let doc = document.documentElement;\n let windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n let windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n\n let menuTop = typeof coordinates.top === 'number' ? coordinates.top : windowTop + windowHeight - coordinates.bottom - menuDimensions.height;\n let menuRight = typeof coordinates.right === 'number' ? coordinates.right : coordinates.left + menuDimensions.width;\n let menuBottom = typeof coordinates.bottom === 'number' ? coordinates.bottom : coordinates.top + menuDimensions.height;\n let menuLeft = typeof coordinates.left === 'number' ? coordinates.left : windowLeft + windowWidth - coordinates.right - menuDimensions.width;\n\n return {\n top: menuTop < Math.floor(windowTop),\n right: menuRight > Math.ceil(windowLeft + windowWidth),\n bottom: menuBottom > Math.ceil(windowTop + windowHeight),\n left: menuLeft < Math.floor(windowLeft)\n }\n }\n\n getMenuDimensions() {\n // Width of the menu depends of its contents and position\n // We must check what its width would be without any obstruction\n // This way, we can achieve good positioning for flipping the menu\n let dimensions = {\n width: null,\n height: null\n };\n\n this.tribute.menu.style.cssText = `top: 0px;\n left: 0px;\n position: fixed;\n display: block;\n visibility; hidden;`;\n dimensions.width = this.tribute.menu.offsetWidth;\n dimensions.height = this.tribute.menu.offsetHeight;\n\n this.tribute.menu.style.cssText = `display: none;`;\n\n return dimensions\n }\n\n getTextAreaOrInputUnderlinePosition(element, position, flipped) {\n let properties = ['direction', 'boxSizing', 'width', 'height', 'overflowX',\n 'overflowY', 'borderTopWidth', 'borderRightWidth',\n 'borderBottomWidth', 'borderLeftWidth', 'paddingTop',\n 'paddingRight', 'paddingBottom', 'paddingLeft',\n 'fontStyle', 'fontVariant', 'fontWeight', 'fontStretch',\n 'fontSize', 'fontSizeAdjust', 'lineHeight', 'fontFamily',\n 'textAlign', 'textTransform', 'textIndent',\n 'textDecoration', 'letterSpacing', 'wordSpacing'\n ];\n\n let isFirefox = (window.mozInnerScreenX !== null);\n\n let div = this.getDocument().createElement('div');\n div.id = 'input-textarea-caret-position-mirror-div';\n this.getDocument().body.appendChild(div);\n\n let style = div.style;\n let computed = window.getComputedStyle ? getComputedStyle(element) : element.currentStyle;\n\n style.whiteSpace = 'pre-wrap';\n if (element.nodeName !== 'INPUT') {\n style.wordWrap = 'break-word';\n }\n\n // position off-screen\n style.position = 'absolute';\n style.visibility = 'hidden';\n\n // transfer the element's properties to the div\n properties.forEach(prop => {\n style[prop] = computed[prop];\n });\n\n if (isFirefox) {\n style.width = `${(parseInt(computed.width) - 2)}px`;\n if (element.scrollHeight > parseInt(computed.height))\n style.overflowY = 'scroll';\n } else {\n style.overflow = 'hidden';\n }\n\n div.textContent = element.value.substring(0, position);\n\n if (element.nodeName === 'INPUT') {\n div.textContent = div.textContent.replace(/\\s/g, ' ');\n }\n\n let span = this.getDocument().createElement('span');\n span.textContent = element.value.substring(position) || '.';\n div.appendChild(span);\n\n let rect = element.getBoundingClientRect();\n let doc = document.documentElement;\n let windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n let windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n\n let top = 0;\n let left = 0;\n if (this.menuContainerIsBody) {\n top = rect.top;\n left = rect.left;\n }\n\n let coordinates = {\n top: top + windowTop + span.offsetTop + parseInt(computed.borderTopWidth) + parseInt(computed.fontSize) - element.scrollTop,\n left: left + windowLeft + span.offsetLeft + parseInt(computed.borderLeftWidth)\n };\n\n let windowWidth = window.innerWidth;\n let windowHeight = window.innerHeight;\n\n let menuDimensions = this.getMenuDimensions();\n let menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n if (menuIsOffScreen.right) {\n coordinates.right = windowWidth - coordinates.left;\n coordinates.left = 'auto';\n }\n\n let parentHeight = this.tribute.menuContainer\n ? this.tribute.menuContainer.offsetHeight\n : this.getDocument().body.offsetHeight;\n\n if (menuIsOffScreen.bottom) {\n let parentRect = this.tribute.menuContainer\n ? this.tribute.menuContainer.getBoundingClientRect()\n : this.getDocument().body.getBoundingClientRect();\n let scrollStillAvailable = parentHeight - (windowHeight - parentRect.top);\n\n coordinates.bottom = scrollStillAvailable + (windowHeight - rect.top - span.offsetTop);\n coordinates.top = 'auto';\n }\n\n menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n if (menuIsOffScreen.left) {\n coordinates.left = windowWidth > menuDimensions.width\n ? windowLeft + windowWidth - menuDimensions.width\n : windowLeft;\n delete coordinates.right;\n }\n if (menuIsOffScreen.top) {\n coordinates.top = windowHeight > menuDimensions.height\n ? windowTop + windowHeight - menuDimensions.height\n : windowTop;\n delete coordinates.bottom;\n }\n\n this.getDocument().body.removeChild(div);\n return coordinates\n }\n\n getContentEditableCaretPosition(selectedNodePosition) {\n let range;\n let sel = this.getWindowSelection();\n\n range = this.getDocument().createRange();\n range.setStart(sel.anchorNode, selectedNodePosition);\n range.setEnd(sel.anchorNode, selectedNodePosition);\n\n range.collapse(false);\n\n let rect = range.getBoundingClientRect();\n let doc = document.documentElement;\n let windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n let windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n\n let left = rect.left;\n let top = rect.top;\n\n let coordinates = {\n left: left + windowLeft,\n top: top + rect.height + windowTop\n };\n let windowWidth = window.innerWidth;\n let windowHeight = window.innerHeight;\n\n let menuDimensions = this.getMenuDimensions();\n let menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n if (menuIsOffScreen.right) {\n coordinates.left = 'auto';\n coordinates.right = windowWidth - rect.left - windowLeft;\n }\n\n let parentHeight = this.tribute.menuContainer\n ? this.tribute.menuContainer.offsetHeight\n : this.getDocument().body.offsetHeight;\n\n if (menuIsOffScreen.bottom) {\n let parentRect = this.tribute.menuContainer\n ? this.tribute.menuContainer.getBoundingClientRect()\n : this.getDocument().body.getBoundingClientRect();\n let scrollStillAvailable = parentHeight - (windowHeight - parentRect.top);\n\n coordinates.top = 'auto';\n coordinates.bottom = scrollStillAvailable + (windowHeight - rect.top);\n }\n\n menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n if (menuIsOffScreen.left) {\n coordinates.left = windowWidth > menuDimensions.width\n ? windowLeft + windowWidth - menuDimensions.width\n : windowLeft;\n delete coordinates.right;\n }\n if (menuIsOffScreen.top) {\n coordinates.top = windowHeight > menuDimensions.height\n ? windowTop + windowHeight - menuDimensions.height\n : windowTop;\n delete coordinates.bottom;\n }\n\n if (!this.menuContainerIsBody) {\n coordinates.left = coordinates.left ? coordinates.left - this.tribute.menuContainer.offsetLeft : coordinates.left;\n coordinates.top = coordinates.top ? coordinates.top - this.tribute.menuContainer.offsetTop : coordinates.top;\n }\n\n return coordinates\n }\n\n scrollIntoView(elem) {\n let reasonableBuffer = 20,\n clientRect;\n let maxScrollDisplacement = 100;\n let e = this.menu;\n\n if (typeof e === 'undefined') return;\n\n while (clientRect === undefined || clientRect.height === 0) {\n clientRect = e.getBoundingClientRect();\n\n if (clientRect.height === 0) {\n e = e.childNodes[0];\n if (e === undefined || !e.getBoundingClientRect) {\n return\n }\n }\n }\n\n let elemTop = clientRect.top;\n let elemBottom = elemTop + clientRect.height;\n\n if (elemTop < 0) {\n window.scrollTo(0, window.pageYOffset + clientRect.top - reasonableBuffer);\n } else if (elemBottom > window.innerHeight) {\n let maxY = window.pageYOffset + clientRect.top - reasonableBuffer;\n\n if (maxY - window.pageYOffset > maxScrollDisplacement) {\n maxY = window.pageYOffset + maxScrollDisplacement;\n }\n\n let targetY = window.pageYOffset - (window.innerHeight - elemBottom);\n\n if (targetY > maxY) {\n targetY = maxY;\n }\n\n window.scrollTo(0, targetY);\n }\n }\n}\n\n// Thanks to https://github.com/mattyork/fuzzy\nclass TributeSearch {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.search = this;\n }\n\n simpleFilter(pattern, array) {\n return array.filter(string => {\n return this.test(pattern, string)\n })\n }\n\n test(pattern, string) {\n return this.match(pattern, string) !== null\n }\n\n match(pattern, string, opts) {\n opts = opts || {};\n let len = string.length,\n pre = opts.pre || '',\n post = opts.post || '',\n compareString = opts.caseSensitive && string || string.toLowerCase();\n\n if (opts.skip) {\n return {rendered: string, score: 0}\n }\n\n pattern = opts.caseSensitive && pattern || pattern.toLowerCase();\n\n let patternCache = this.traverse(compareString, pattern, 0, 0, []);\n if (!patternCache) {\n return null\n }\n return {\n rendered: this.render(string, patternCache.cache, pre, post),\n score: patternCache.score\n }\n }\n\n traverse(string, pattern, stringIndex, patternIndex, patternCache) {\n // if the pattern search at end\n if (pattern.length === patternIndex) {\n\n // calculate score and copy the cache containing the indices where it's found\n return {\n score: this.calculateScore(patternCache),\n cache: patternCache.slice()\n }\n }\n\n // if string at end or remaining pattern > remaining string\n if (string.length === stringIndex || pattern.length - patternIndex > string.length - stringIndex) {\n return undefined\n }\n\n let c = pattern[patternIndex];\n let index = string.indexOf(c, stringIndex);\n let best, temp;\n\n while (index > -1) {\n patternCache.push(index);\n temp = this.traverse(string, pattern, index + 1, patternIndex + 1, patternCache);\n patternCache.pop();\n\n // if downstream traversal failed, return best answer so far\n if (!temp) {\n return best\n }\n\n if (!best || best.score < temp.score) {\n best = temp;\n }\n\n index = string.indexOf(c, index + 1);\n }\n\n return best\n }\n\n calculateScore(patternCache) {\n let score = 0;\n let temp = 1;\n\n patternCache.forEach((index, i) => {\n if (i > 0) {\n if (patternCache[i - 1] + 1 === index) {\n temp += temp + 1;\n }\n else {\n temp = 1;\n }\n }\n\n score += temp;\n });\n\n return score\n }\n\n render(string, indices, pre, post) {\n var rendered = string.substring(0, indices[0]);\n\n indices.forEach((index, i) => {\n rendered += pre + string[index] + post +\n string.substring(index + 1, (indices[i + 1]) ? indices[i + 1] : string.length);\n });\n\n return rendered\n }\n\n filter(pattern, arr, opts) {\n opts = opts || {};\n return arr\n .reduce((prev, element, idx, arr) => {\n let str = element;\n\n if (opts.extract) {\n str = opts.extract(element);\n\n if (!str) { // take care of undefineds / nulls / etc.\n str = '';\n }\n }\n\n let rendered = this.match(pattern, str, opts);\n\n if (rendered != null) {\n prev[prev.length] = {\n string: rendered.rendered,\n score: rendered.score,\n index: idx,\n original: element\n };\n }\n\n return prev\n }, [])\n\n .sort((a, b) => {\n let compare = b.score - a.score;\n if (compare) return compare\n return a.index - b.index\n })\n }\n}\n\nclass Tribute {\n constructor({\n values = null,\n iframe = null,\n selectClass = \"highlight\",\n containerClass = \"tribute-container\",\n itemClass = \"\",\n trigger = \"@\",\n autocompleteMode = false,\n selectTemplate = null,\n menuItemTemplate = null,\n lookup = \"key\",\n fillAttr = \"value\",\n collection = null,\n menuContainer = null,\n noMatchTemplate = null,\n requireLeadingSpace = true,\n allowSpaces = false,\n replaceTextSuffix = null,\n positionMenu = true,\n spaceSelectsMatch = false,\n searchOpts = {},\n menuItemLimit = null,\n menuShowMinLength = 0\n }) {\n this.autocompleteMode = autocompleteMode;\n this.menuSelected = 0;\n this.current = {};\n this.inputEvent = false;\n this.isActive = false;\n this.menuContainer = menuContainer;\n this.allowSpaces = allowSpaces;\n this.replaceTextSuffix = replaceTextSuffix;\n this.positionMenu = positionMenu;\n this.hasTrailingSpace = false;\n this.spaceSelectsMatch = spaceSelectsMatch;\n\n if (this.autocompleteMode) {\n trigger = \"\";\n allowSpaces = false;\n }\n\n if (values) {\n this.collection = [\n {\n // symbol that starts the lookup\n trigger: trigger,\n\n // is it wrapped in an iframe\n iframe: iframe,\n\n // class applied to selected item\n selectClass: selectClass,\n\n // class applied to the Container\n containerClass: containerClass,\n\n // class applied to each item\n itemClass: itemClass,\n\n // function called on select that retuns the content to insert\n selectTemplate: (\n selectTemplate || Tribute.defaultSelectTemplate\n ).bind(this),\n\n // function called that returns content for an item\n menuItemTemplate: (\n menuItemTemplate || Tribute.defaultMenuItemTemplate\n ).bind(this),\n\n // function called when menu is empty, disables hiding of menu.\n noMatchTemplate: (t => {\n if (typeof t === \"string\") {\n if (t.trim() === \"\") return null;\n return t;\n }\n if (typeof t === \"function\") {\n return t.bind(this);\n }\n\n return (\n noMatchTemplate ||\n function() {\n return \"
  • No Match Found!
  • \";\n }.bind(this)\n );\n })(noMatchTemplate),\n\n // column to search against in the object\n lookup: lookup,\n\n // column that contains the content to insert by default\n fillAttr: fillAttr,\n\n // array of objects or a function returning an array of objects\n values: values,\n\n requireLeadingSpace: requireLeadingSpace,\n\n searchOpts: searchOpts,\n\n menuItemLimit: menuItemLimit,\n\n menuShowMinLength: menuShowMinLength\n }\n ];\n } else if (collection) {\n if (this.autocompleteMode)\n console.warn(\n \"Tribute in autocomplete mode does not work for collections\"\n );\n this.collection = collection.map(item => {\n return {\n trigger: item.trigger || trigger,\n iframe: item.iframe || iframe,\n selectClass: item.selectClass || selectClass,\n containerClass: item.containerClass || containerClass,\n itemClass: item.itemClass || itemClass,\n selectTemplate: (\n item.selectTemplate || Tribute.defaultSelectTemplate\n ).bind(this),\n menuItemTemplate: (\n item.menuItemTemplate || Tribute.defaultMenuItemTemplate\n ).bind(this),\n // function called when menu is empty, disables hiding of menu.\n noMatchTemplate: (t => {\n if (typeof t === \"string\") {\n if (t.trim() === \"\") return null;\n return t;\n }\n if (typeof t === \"function\") {\n return t.bind(this);\n }\n\n return (\n noMatchTemplate ||\n function() {\n return \"
  • No Match Found!
  • \";\n }.bind(this)\n );\n })(noMatchTemplate),\n lookup: item.lookup || lookup,\n fillAttr: item.fillAttr || fillAttr,\n values: item.values,\n requireLeadingSpace: item.requireLeadingSpace,\n searchOpts: item.searchOpts || searchOpts,\n menuItemLimit: item.menuItemLimit || menuItemLimit,\n menuShowMinLength: item.menuShowMinLength || menuShowMinLength\n };\n });\n } else {\n throw new Error(\"[Tribute] No collection specified.\");\n }\n\n new TributeRange(this);\n new TributeEvents(this);\n new TributeMenuEvents(this);\n new TributeSearch(this);\n }\n\n get isActive() {\n return this._isActive;\n }\n\n set isActive(val) {\n if (this._isActive != val) {\n this._isActive = val;\n if (this.current.element) {\n let noMatchEvent = new CustomEvent(`tribute-active-${val}`);\n this.current.element.dispatchEvent(noMatchEvent);\n }\n }\n }\n\n static defaultSelectTemplate(item) {\n if (typeof item === \"undefined\")\n return `${this.current.collection.trigger}${this.current.mentionText}`;\n if (this.range.isContentEditable(this.current.element)) {\n return (\n '' +\n (this.current.collection.trigger +\n item.original[this.current.collection.fillAttr]) +\n \"\"\n );\n }\n\n return (\n this.current.collection.trigger +\n item.original[this.current.collection.fillAttr]\n );\n }\n\n static defaultMenuItemTemplate(matchItem) {\n return matchItem.string;\n }\n\n static inputTypes() {\n return [\"TEXTAREA\", \"INPUT\"];\n }\n\n triggers() {\n return this.collection.map(config => {\n return config.trigger;\n });\n }\n\n attach(el) {\n if (!el) {\n throw new Error(\"[Tribute] Must pass in a DOM node or NodeList.\");\n }\n\n // Check if it is a jQuery collection\n if (typeof jQuery !== \"undefined\" && el instanceof jQuery) {\n el = el.get();\n }\n\n // Is el an Array/Array-like object?\n if (\n el.constructor === NodeList ||\n el.constructor === HTMLCollection ||\n el.constructor === Array\n ) {\n let length = el.length;\n for (var i = 0; i < length; ++i) {\n this._attach(el[i]);\n }\n } else {\n this._attach(el);\n }\n }\n\n _attach(el) {\n if (el.hasAttribute(\"data-tribute\")) {\n console.warn(\"Tribute was already bound to \" + el.nodeName);\n }\n\n this.ensureEditable(el);\n this.events.bind(el);\n el.setAttribute(\"data-tribute\", true);\n }\n\n ensureEditable(element) {\n if (Tribute.inputTypes().indexOf(element.nodeName) === -1) {\n if (element.contentEditable) {\n element.contentEditable = true;\n } else {\n throw new Error(\"[Tribute] Cannot bind to \" + element.nodeName);\n }\n }\n }\n\n createMenu(containerClass) {\n let wrapper = this.range.getDocument().createElement(\"div\"),\n ul = this.range.getDocument().createElement(\"ul\");\n wrapper.className = containerClass;\n wrapper.appendChild(ul);\n\n if (this.menuContainer) {\n return this.menuContainer.appendChild(wrapper);\n }\n\n return this.range.getDocument().body.appendChild(wrapper);\n }\n\n showMenuFor(element, scrollTo) {\n // Only proceed if menu isn't already shown for the current element & mentionText\n if (\n this.isActive &&\n this.current.element === element &&\n this.current.mentionText === this.currentMentionTextSnapshot\n ) {\n return;\n }\n this.currentMentionTextSnapshot = this.current.mentionText;\n\n // create the menu if it doesn't exist.\n if (!this.menu) {\n this.menu = this.createMenu(this.current.collection.containerClass);\n element.tributeMenu = this.menu;\n this.menuEvents.bind(this.menu);\n }\n\n this.isActive = true;\n this.menuSelected = 0;\n\n if (!this.current.mentionText) {\n this.current.mentionText = \"\";\n }\n\n const processValues = values => {\n // Tribute may not be active any more by the time the value callback returns\n if (!this.isActive) {\n return;\n }\n\n let items = this.search.filter(this.current.mentionText, values, {\n pre: this.current.collection.searchOpts.pre || \"\",\n post: this.current.collection.searchOpts.post || \"\",\n skip: this.current.collection.searchOpts.skip,\n extract: el => {\n if (typeof this.current.collection.lookup === \"string\") {\n return el[this.current.collection.lookup];\n } else if (typeof this.current.collection.lookup === \"function\") {\n return this.current.collection.lookup(el, this.current.mentionText);\n } else {\n throw new Error(\n \"Invalid lookup attribute, lookup must be string or function.\"\n );\n }\n }\n });\n\n if (this.current.collection.menuItemLimit) {\n items = items.slice(0, this.current.collection.menuItemLimit);\n }\n\n this.current.filteredItems = items;\n\n let ul = this.menu.querySelector(\"ul\");\n\n this.range.positionMenuAtCaret(scrollTo);\n\n if (!items.length) {\n let noMatchEvent = new CustomEvent(\"tribute-no-match\", {\n detail: this.menu\n });\n this.current.element.dispatchEvent(noMatchEvent);\n if (\n (typeof this.current.collection.noMatchTemplate === \"function\" &&\n !this.current.collection.noMatchTemplate()) ||\n !this.current.collection.noMatchTemplate\n ) {\n this.hideMenu();\n } else {\n typeof this.current.collection.noMatchTemplate === \"function\"\n ? (ul.innerHTML = this.current.collection.noMatchTemplate())\n : (ul.innerHTML = this.current.collection.noMatchTemplate);\n }\n\n return;\n }\n\n ul.innerHTML = \"\";\n let fragment = this.range.getDocument().createDocumentFragment();\n\n items.forEach((item, index) => {\n let li = this.range.getDocument().createElement(\"li\");\n li.setAttribute(\"data-index\", index);\n li.className = this.current.collection.itemClass;\n li.addEventListener(\"mousemove\", e => {\n let [li, index] = this._findLiTarget(e.target);\n if (e.movementY !== 0) {\n this.events.setActiveLi(index);\n }\n });\n if (this.menuSelected === index) {\n li.classList.add(this.current.collection.selectClass);\n }\n li.innerHTML = this.current.collection.menuItemTemplate(item);\n fragment.appendChild(li);\n });\n ul.appendChild(fragment);\n };\n\n if (typeof this.current.collection.values === \"function\") {\n this.current.collection.values(this.current.mentionText, processValues);\n } else {\n processValues(this.current.collection.values);\n }\n }\n\n _findLiTarget(el) {\n if (!el) return [];\n const index = el.getAttribute(\"data-index\");\n return !index ? this._findLiTarget(el.parentNode) : [el, index];\n }\n\n showMenuForCollection(element, collectionIndex) {\n if (element !== document.activeElement) {\n this.placeCaretAtEnd(element);\n }\n\n this.current.collection = this.collection[collectionIndex || 0];\n this.current.externalTrigger = true;\n this.current.element = element;\n\n if (element.isContentEditable)\n this.insertTextAtCursor(this.current.collection.trigger);\n else this.insertAtCaret(element, this.current.collection.trigger);\n\n this.showMenuFor(element);\n }\n\n // TODO: make sure this works for inputs/textareas\n placeCaretAtEnd(el) {\n el.focus();\n if (\n typeof window.getSelection != \"undefined\" &&\n typeof document.createRange != \"undefined\"\n ) {\n var range = document.createRange();\n range.selectNodeContents(el);\n range.collapse(false);\n var sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n } else if (typeof document.body.createTextRange != \"undefined\") {\n var textRange = document.body.createTextRange();\n textRange.moveToElementText(el);\n textRange.collapse(false);\n textRange.select();\n }\n }\n\n // for contenteditable\n insertTextAtCursor(text) {\n var sel, range;\n sel = window.getSelection();\n range = sel.getRangeAt(0);\n range.deleteContents();\n var textNode = document.createTextNode(text);\n range.insertNode(textNode);\n range.selectNodeContents(textNode);\n range.collapse(false);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n\n // for regular inputs\n insertAtCaret(textarea, text) {\n var scrollPos = textarea.scrollTop;\n var caretPos = textarea.selectionStart;\n\n var front = textarea.value.substring(0, caretPos);\n var back = textarea.value.substring(\n textarea.selectionEnd,\n textarea.value.length\n );\n textarea.value = front + text + back;\n caretPos = caretPos + text.length;\n textarea.selectionStart = caretPos;\n textarea.selectionEnd = caretPos;\n textarea.focus();\n textarea.scrollTop = scrollPos;\n }\n\n hideMenu() {\n if (this.menu) {\n this.menu.style.cssText = \"display: none;\";\n this.isActive = false;\n this.menuSelected = 0;\n this.current = {};\n }\n }\n\n selectItemAtIndex(index, originalEvent) {\n index = parseInt(index);\n if (typeof index !== \"number\" || isNaN(index)) return;\n let item = this.current.filteredItems[index];\n let content = this.current.collection.selectTemplate(item);\n if (content !== null) this.replaceText(content, originalEvent, item);\n }\n\n replaceText(content, originalEvent, item) {\n this.range.replaceTriggerText(content, true, true, originalEvent, item);\n }\n\n _append(collection, newValues, replace) {\n if (typeof collection.values === \"function\") {\n throw new Error(\"Unable to append to values, as it is a function.\");\n } else if (!replace) {\n collection.values = collection.values.concat(newValues);\n } else {\n collection.values = newValues;\n }\n }\n\n append(collectionIndex, newValues, replace) {\n let index = parseInt(collectionIndex);\n if (typeof index !== \"number\")\n throw new Error(\"please provide an index for the collection to update.\");\n\n let collection = this.collection[index];\n\n this._append(collection, newValues, replace);\n }\n\n appendCurrent(newValues, replace) {\n if (this.isActive) {\n this._append(this.current.collection, newValues, replace);\n } else {\n throw new Error(\n \"No active state. Please use append instead and pass an index.\"\n );\n }\n }\n\n detach(el) {\n if (!el) {\n throw new Error(\"[Tribute] Must pass in a DOM node or NodeList.\");\n }\n\n // Check if it is a jQuery collection\n if (typeof jQuery !== \"undefined\" && el instanceof jQuery) {\n el = el.get();\n }\n\n // Is el an Array/Array-like object?\n if (\n el.constructor === NodeList ||\n el.constructor === HTMLCollection ||\n el.constructor === Array\n ) {\n let length = el.length;\n for (var i = 0; i < length; ++i) {\n this._detach(el[i]);\n }\n } else {\n this._detach(el);\n }\n }\n\n _detach(el) {\n this.events.unbind(el);\n if (el.tributeMenu) {\n this.menuEvents.unbind(el.tributeMenu);\n }\n\n setTimeout(() => {\n el.removeAttribute(\"data-tribute\");\n this.isActive = false;\n if (el.tributeMenu) {\n el.tributeMenu.remove();\n }\n });\n }\n}\n\n/**\n * Tribute.js\n * Native ES6 JavaScript @mention Plugin\n **/\n\nexport default Tribute;\n","import '../assets/NcRichContenteditable-DNABzVif.css';\nimport debounce from \"debounce\";\nimport Tribute from \"tributejs/dist/tribute.esm.js\";\nimport { useIsDarkTheme } from \"../composables/useIsDarkTheme/index.mjs\";\nimport { g as getAvatarUrl } from \"./NcMentionBubble.vue_vue_type_style_index_0_scoped_45238efd_lang-BX_KxRP-.mjs\";\nimport { N as NcUserStatusIcon } from \"./NcUserStatusIcon-DsviB2Cr.mjs\";\nimport { openBlock, createElementBlock, normalizeClass, createElementVNode, normalizeStyle, toDisplayString, createApp, resolveComponent, createBlock, createCommentVNode, mergeProps, withModifiers, withKeys } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { a as emojiSearch, e as emojiAddRecent } from \"./emoji-C8k9NUlo.mjs\";\nimport { r as register, s as t37, J as t34, a as t, K as n } from \"./_l10n-CG4CuN3H.mjs\";\nimport escapeHTML from \"escape-html\";\nimport stripTags from \"striptags\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport \"@nextcloud/auth\";\nimport \"@nextcloud/axios\";\nimport \"@nextcloud/router\";\nimport \"@nextcloud/sharing/public\";\nimport \"@vueuse/core\";\nimport \"vue-router\";\nimport \"./legacy-BoqDmOCa.mjs\";\nimport \"./NcButton-QbPBynlU.mjs\";\nimport { g as getLinkWithPicker, s as searchProvider } from \"./referencePickerModal-B4bsiMOy.mjs\";\nimport \"./customPickerElements-Cu7bLbap.mjs\";\nimport \"unist-builder\";\nimport \"unist-util-visit-parents\";\nimport \"./NcRichText-BOBQq7Od.mjs\";\nimport \"./NcEmptyContent-CGAPqk4S.mjs\";\nimport \"./NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs\";\nimport \"./NcSelect-BOFzoCwK.mjs\";\nimport \"./NcLoadingIcon-BOVpFVQz.mjs\";\nimport \"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r.mjs\";\nimport \"dompurify\";\nimport \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport \"./NcInputField-B1bGxYHt.mjs\";\nimport \"@nextcloud/event-bus\";\nimport \"focus-trap\";\nimport \"./NcActions-CUmcZ3C3.mjs\";\nimport \"../composables/useFormatDateTime/index.mjs\";\nimport \"../composables/useHotKey/index.mjs\";\nimport \"../composables/useIsFullscreen/index.mjs\";\nimport \"../composables/useIsMobile/index.mjs\";\nimport \"./NcModal-DUWLRm_F.mjs\";\nimport \"./rtl-v0UOPAM7.mjs\";\nconst _sfc_main$2 = {\n name: \"NcMentionBubble\",\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n /**\n * Id of the bubble\n */\n id: {\n type: String,\n required: true\n },\n /**\n * The main text\n */\n label: {\n type: String,\n required: false,\n default: null\n },\n /**\n * Icon to be applied\n */\n icon: {\n type: String,\n required: true\n },\n /**\n * URL of the icon\n */\n iconUrl: {\n type: [String, null],\n default: null\n },\n source: {\n type: String,\n required: true\n },\n /**\n * Is the bubble shown as primary\n */\n primary: {\n type: Boolean,\n default: false\n }\n },\n setup() {\n const isDarkTheme = useIsDarkTheme();\n return {\n isDarkTheme\n };\n },\n computed: {\n avatarUrl() {\n if (this.iconUrl) {\n return this.iconUrl;\n }\n return this.id && this.source === \"users\" ? getAvatarUrl(this.id, { isDarkTheme: this.isDarkTheme }) : null;\n },\n mentionText() {\n return !this.id.includes(\" \") && !this.id.includes(\"/\") ? `@${this.id}` : `@\"${this.id}\"`;\n }\n }\n};\nconst _hoisted_1$2 = { class: \"mention-bubble__wrapper\" };\nconst _hoisted_2$2 = { class: \"mention-bubble__content\" };\nconst _hoisted_3$1 = [\"title\"];\nconst _hoisted_4$1 = {\n role: \"none\",\n class: \"mention-bubble__select\"\n};\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", {\n class: normalizeClass([\"mention-bubble\", { \"mention-bubble--primary\": $props.primary }]),\n contenteditable: \"false\"\n }, [\n createElementVNode(\"span\", _hoisted_1$2, [\n createElementVNode(\"span\", _hoisted_2$2, [\n createElementVNode(\"span\", {\n class: normalizeClass([[$props.icon, `mention-bubble__icon--${$options.avatarUrl ? \"with-avatar\" : \"\"}`], \"mention-bubble__icon\"]),\n style: normalizeStyle($options.avatarUrl ? { backgroundImage: `url(${$options.avatarUrl})` } : null)\n }, null, 6),\n createElementVNode(\"span\", {\n role: \"heading\",\n class: \"mention-bubble__title\",\n title: $props.label\n }, null, 8, _hoisted_3$1)\n ]),\n createElementVNode(\"span\", _hoisted_4$1, toDisplayString($options.mentionText), 1)\n ])\n ], 2);\n}\nconst NcMentionBubble = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2], [\"__scopeId\", \"data-v-45238efd\"]]);\nconst MENTION_START = /(?=[a-z0-9_\\-@.'])\\B/.source;\nconst MENTION_SIMPLE = /(@[a-z0-9_\\-@.']+)/.source;\nconst MENTION_GUEST = /@"(?:guest|email){1}\\/[a-f0-9]+"/.source;\nconst MENTION_PREFIXED = /@"(?:federated_)?(?:group|team|user){1}\\/[a-z0-9_\\-@.' /:]+"/.source;\nconst MENTION_WITH_SPACE = /@"[a-z0-9_\\-@.' ]+"/.source;\nconst MENTION_COMPLEX = `(${MENTION_GUEST}|${MENTION_PREFIXED}|${MENTION_WITH_SPACE})`;\nconst USERID_REGEX = new RegExp(`${MENTION_START}${MENTION_SIMPLE}`, \"gi\");\nconst USERID_REGEX_WITH_SPACE = new RegExp(`${MENTION_START}${MENTION_COMPLEX}`, \"gi\");\nconst richEditor = {\n props: {\n userData: {\n type: Object,\n default: () => ({})\n }\n },\n methods: {\n /**\n * Convert the value string to html for the inner content\n *\n * @param {string} value the content without html\n * @return {string} rendered html\n */\n renderContent(value) {\n const sanitizedValue = escapeHTML(value);\n const splitValue = sanitizedValue.split(USERID_REGEX).map((part) => part.split(USERID_REGEX_WITH_SPACE)).flat();\n return splitValue.map((part) => {\n if (!part.startsWith(\"@\")) {\n return part;\n }\n const id = part.slice(1).replace(/"/gi, \"\");\n return this.genSelectTemplate(id);\n }).join(\"\").replace(/\\n/gmi, \"
    \").replace(/&/gmi, \"&\");\n },\n /**\n * Convert the innerHtml content to a string with mentions as text\n *\n * @param {string} content the content without html\n * @return {string}\n */\n parseContent(content) {\n let text = content;\n text = text.replace(/
    /gmi, \"\\n\");\n text = text.replace(/ /gmi, \" \");\n text = text.replace(/&/gmi, \"&\");\n text = text.replace(/<\\/div>/gmi, \"\\n\");\n text = stripTags(text, \"
    \");\n text = stripTags(text);\n return text;\n },\n /**\n * Generate an autocompletion popup entry template\n *\n * @param {string} value the value to match against the userData\n * @return {string}\n */\n genSelectTemplate(value) {\n if (typeof value === \"undefined\") {\n return `${this.autocompleteTribute.current.collection.trigger}${this.autocompleteTribute.current.mentionText}`;\n }\n const data = this.userData[value];\n if (!data) {\n return [\" \", \"/\", \":\"].every((char) => !value.includes(char)) ? `@${value}` : `@\"${value}\"`;\n }\n return this.renderComponentHtml(data, NcMentionBubble).replace(/[\\n\\t]/gmi, \"\").replace(/>\\s+<\");\n },\n /**\n * Render a component and return its html content\n *\n * @param {object} props the props to pass to the component\n * @param {object} component the component to render\n * @return {string} the rendered html\n */\n renderComponentHtml(props, component) {\n const Item = createApp(component, {\n ...props\n });\n const mount = document.createElement(\"div\");\n mount.style.display = \"none\";\n document.body.appendChild(mount);\n Item.mount(mount);\n const renderedHtml = mount.innerHTML;\n Item.unmount();\n mount.remove();\n return renderedHtml;\n }\n }\n};\nconst _sfc_main$1 = {\n name: \"NcAutoCompleteResult\",\n components: {\n NcUserStatusIcon\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n /**\n * The label text\n */\n label: {\n type: String,\n required: false,\n default: null\n },\n /**\n * The secondary line of text if any\n */\n subline: {\n type: String,\n default: null\n },\n /**\n * Unique id\n */\n id: {\n type: String,\n default: null\n },\n /**\n * The icon class\n */\n icon: {\n type: String,\n required: true\n },\n /**\n * Icon as external URL\n */\n iconUrl: {\n type: String,\n default: null\n },\n source: {\n type: String,\n required: true\n },\n status: {\n type: [Object, Array],\n default: () => ({})\n }\n },\n setup() {\n const isDarkTheme = useIsDarkTheme();\n return {\n isDarkTheme\n };\n },\n computed: {\n avatarUrl() {\n if (this.iconUrl) {\n return this.iconUrl;\n }\n return this.id && this.source === \"users\" ? getAvatarUrl(this.id, { isDarkTheme: this.isDarkTheme }) : null;\n }\n }\n};\nconst _hoisted_1$1 = { class: \"autocomplete-result\" };\nconst _hoisted_2$1 = {\n key: 0,\n class: \"autocomplete-result__status autocomplete-result__status--icon\"\n};\nconst _hoisted_3 = { class: \"autocomplete-result__content\" };\nconst _hoisted_4 = [\"title\"];\nconst _hoisted_5 = {\n key: 0,\n class: \"autocomplete-result__subline\"\n};\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcUserStatusIcon = resolveComponent(\"NcUserStatusIcon\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n createElementVNode(\"div\", {\n class: normalizeClass([[$props.icon, `autocomplete-result__icon--${$options.avatarUrl ? \"with-avatar\" : \"\"}`], \"autocomplete-result__icon\"]),\n style: normalizeStyle($options.avatarUrl ? { backgroundImage: `url(${$options.avatarUrl})` } : null)\n }, [\n $props.status.icon ? (openBlock(), createElementBlock(\"span\", _hoisted_2$1, toDisplayString($props.status && $props.status.icon || \"\"), 1)) : $props.status.status && $props.status.status !== \"offline\" ? (openBlock(), createBlock(_component_NcUserStatusIcon, {\n key: 1,\n class: \"autocomplete-result__status\",\n status: $props.status.status\n }, null, 8, [\"status\"])) : createCommentVNode(\"\", true)\n ], 6),\n createElementVNode(\"span\", _hoisted_3, [\n createElementVNode(\"span\", {\n class: \"autocomplete-result__title\",\n title: $props.label\n }, toDisplayString($props.label), 9, _hoisted_4),\n $props.subline ? (openBlock(), createElementBlock(\"span\", _hoisted_5, toDisplayString($props.subline), 1)) : createCommentVNode(\"\", true)\n ])\n ]);\n}\nconst NcAutoCompleteResult = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-ca83b679\"]]);\nregister(t34, t37);\nconst style1 = {\n \"material-design-icon\": \"_material-design-icon_UrExO\",\n \"tribute-container\": \"_tribute-container_aTO5r\",\n \"tribute-container__item\": \"_tribute-container__item_EHZ07\",\n \"tribute-container--focus-visible\": \"_tribute-container--focus-visible_GHsDW\",\n \"tribute-container-autocomplete\": \"_tribute-container-autocomplete_YNk1h\",\n \"tribute-container-emoji\": \"_tribute-container-emoji_jWgZX\",\n \"tribute-container-link\": \"_tribute-container-link_1b7mc\",\n \"tribute-item\": \"_tribute-item_p5sRT\",\n \"tribute-item__title\": \"_tribute-item__title_VPcy9\",\n \"tribute-item__icon\": \"_tribute-item__icon_aTxCU\"\n};\nconst smilesCharacters = [\"d\", \"D\", \"p\", \"P\", \"s\", \"S\", \"x\", \"X\", \")\", \"(\", \"|\", \"/\"];\nconst textSmiles = [];\nsmilesCharacters.forEach((char) => {\n textSmiles.push(\":\" + char);\n textSmiles.push(\":-\" + char);\n});\nlet isPlaintextOnlySupported = null;\nconst _sfc_main = {\n name: \"NcRichContenteditable\",\n mixins: [richEditor],\n inheritAttrs: false,\n props: {\n /**\n * The ID attribute of the content editable\n */\n id: {\n type: String,\n default: () => createElementId()\n },\n /**\n * Visual label of the contenteditable\n */\n label: {\n type: String,\n default: \"\"\n },\n /**\n * The text content\n */\n modelValue: {\n type: String,\n required: true\n },\n /**\n * Placeholder to be shown if empty\n */\n placeholder: {\n type: String,\n default: t(\"Write a message …\")\n },\n /**\n * Auto complete function\n */\n autoComplete: {\n type: Function,\n default: () => []\n },\n /**\n * The containing element or selector for the tribute (menu popover)\n * Defaults to `body` element\n */\n menuContainer: {\n type: [String, Element, null],\n default: null\n },\n /**\n * Make the contenteditable looks like a textarea or not.\n * Default looks like a single-line input.\n * This also handle the default enter/shift+enter behaviour.\n * if multiline, enter = newline; otherwise enter = submit\n * shift+enter always add a new line. ctrl+enter always submits\n */\n multiline: {\n type: Boolean,\n default: false\n },\n /**\n * Is the content editable ?\n */\n contenteditable: {\n type: Boolean,\n default: true\n },\n /**\n * Disable the editing and show specific disabled design\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Max allowed length\n */\n maxlength: {\n type: Number,\n default: null\n },\n /**\n * Enable or disable emoji autocompletion\n */\n emojiAutocomplete: {\n type: Boolean,\n default: true\n },\n /**\n * Enable or disable link autocompletion\n */\n linkAutocomplete: {\n type: Boolean,\n default: true\n },\n /**\n * CSS class to apply to the root element.\n */\n class: {\n type: [String, Array, Object],\n default: \"\"\n }\n },\n emits: [\n \"paste\",\n \"update:modelValue\",\n \"smartPickerSubmit\",\n \"submit\"\n ],\n setup() {\n const segmenter = new Intl.Segmenter();\n if (isPlaintextOnlySupported === null) {\n try {\n document.createElement(\"div\").contentEditable = \"plaintext-only\";\n isPlaintextOnlySupported = true;\n } catch (error) {\n logger.debug(\"[NcRichContenteditable] Unsupported attribute value:\", { error });\n isPlaintextOnlySupported = false;\n }\n }\n return {\n // Constants\n labelId: createElementId(),\n tributeId: createElementId(),\n segmenter,\n /**\n * Non-reactive property to store Tribute instance\n *\n * @type {import('tributejs').default | null}\n */\n tribute: null,\n tributeStyleMutationObserver: null\n };\n },\n data() {\n return {\n // Represent the raw untrimmed text of the contenteditable\n // serves no other purpose than to check whether the\n // content is empty or not\n localValue: this.modelValue,\n // Is in text composition session in IME\n isComposing: false,\n // Tribute autocomplete\n isAutocompleteOpen: false,\n autocompleteActiveId: void 0,\n isTributeIntegrationDone: false\n };\n },\n computed: {\n /**\n * Is the current trimmed value empty?\n *\n * @return {boolean}\n */\n isEmptyValue() {\n return !this.localValue || this.localValue.trim() === \"\";\n },\n /**\n * Is the current value over maxlength?\n *\n * @return {boolean}\n */\n isOverMaxlength() {\n if (this.isEmptyValue || !this.maxlength) {\n return false;\n }\n const length = [...this.segmenter.segment(this.localValue)].length;\n return length > this.maxlength;\n },\n /**\n * Tooltip to show if characters count is over limit\n *\n * @return {string}\n */\n tooltipString() {\n if (!this.isOverMaxlength) {\n return null;\n }\n return n(\"Message limit of %n character reached\", \"Message limit of %n characters reached\", this.maxlength);\n },\n /**\n * Edit is only allowed when contenteditable is:\n * 'true' (all browsers since 2015)\n * 'plaintext-only' (most browsers since 2015, Firefox since 136+)\n *\n * @return {string}\n */\n contenteditableAttributeValue() {\n if (this.contenteditable && !this.disabled) {\n return isPlaintextOnlySupported ? \"plaintext-only\" : \"true\";\n }\n return \"false\";\n },\n /**\n * Compute debounce function for the autocomplete function\n */\n debouncedAutoComplete() {\n return debounce(async (search, callback) => {\n this.autoComplete(search, callback);\n }, 100);\n }\n },\n watch: {\n /**\n * If the parent value change, we compare the plain text rendering\n * If it's different, we render everything and update the main content\n */\n modelValue() {\n const html = this.$refs.contenteditable.innerHTML;\n if (this.modelValue.trim() !== this.parseContent(html).trim()) {\n this.updateContent(this.modelValue);\n }\n }\n },\n mounted() {\n this.initializeTribute();\n this.updateContent(this.modelValue);\n },\n beforeUnmount() {\n if (this.tribute) {\n this.tribute.detach(this.$refs.contenteditable);\n }\n if (this.tributeStyleMutationObserver) {\n this.tributeStyleMutationObserver.disconnect();\n }\n },\n methods: {\n /**\n * Focus the richContenteditable\n *\n * @public\n */\n focus() {\n this.$refs.contenteditable.focus();\n },\n initializeTribute() {\n const renderMenuItem = (content) => `
    ${content}
    `;\n const tributesCollection = [];\n tributesCollection.push({\n fillAttr: \"id\",\n // Search against id and label (display name) (fallback to title for v8.0.0..8.6.1 compatibility)\n lookup: (result) => `${result.id} ${result.label ?? result.title}`,\n requireLeadingSpace: true,\n // Popup mention autocompletion templates\n menuItemTemplate: (item) => renderMenuItem(this.renderComponentHtml(item.original, NcAutoCompleteResult)),\n // Hide if no results\n noMatchTemplate: () => '',\n // Inner display of mentions\n selectTemplate: (item) => this.genSelectTemplate(item?.original?.id),\n // Autocompletion results\n values: this.debouncedAutoComplete,\n // Class added to the menu container\n containerClass: `${this.$style[\"tribute-container\"]} ${this.$style[\"tribute-container-autocomplete\"]}`,\n // Class added to each list item\n itemClass: this.$style[\"tribute-container__item\"]\n });\n if (this.emojiAutocomplete) {\n tributesCollection.push({\n trigger: \":\",\n // Don't use the tribute search function at all\n // We pass search results as values (see below)\n lookup: (result, query) => query,\n requireLeadingSpace: true,\n // Popup mention autocompletion templates\n menuItemTemplate: (item) => {\n if (textSmiles.includes(item.original)) {\n return item.original;\n }\n return renderMenuItem(`${item.original.native} :${item.original.short_name}`);\n },\n // Hide if no results\n noMatchTemplate: () => t(\"No emoji found\"),\n // Display raw emoji along with its name\n selectTemplate: (item) => {\n if (textSmiles.includes(item.original)) {\n return item.original;\n }\n emojiAddRecent(item.original);\n return item.original.native;\n },\n // Pass the search results as values\n values: (text, cb) => {\n const emojiResults = emojiSearch(text);\n if (textSmiles.includes(\":\" + text)) {\n emojiResults.unshift(\":\" + text);\n }\n cb(emojiResults);\n },\n // Class added to the menu container\n containerClass: `${this.$style[\"tribute-container\"]} ${this.$style[\"tribute-container-emoji\"]}`,\n // Class added to each list item\n itemClass: this.$style[\"tribute-container__item\"]\n });\n }\n if (this.linkAutocomplete) {\n tributesCollection.push({\n trigger: \"/\",\n // Don't use the tribute search function at all\n // We pass search results as values (see below)\n lookup: (result, query) => query,\n requireLeadingSpace: true,\n // Popup mention autocompletion templates\n menuItemTemplate: (item) => renderMenuItem(` ${item.original.title}`),\n // Hide if no results\n noMatchTemplate: () => t(\"No link provider found\"),\n selectTemplate: this.getLink,\n // Pass the search results as values\n values: (text, cb) => cb(searchProvider(text)),\n // Class added to the menu container\n containerClass: `${this.$style[\"tribute-container\"]} ${this.$style[\"tribute-container-link\"]}`,\n // Class added to each list item\n itemClass: this.$style[\"tribute-container__item\"]\n });\n }\n const menuContainer = typeof this.menuContainer === \"string\" ? document.querySelector(this.menuContainer) : this.menuContainer;\n this.tribute = new Tribute({\n collection: tributesCollection,\n // FIXME: tributejs doesn't support allowSpaces as a collection option, only as a global one\n // Requires to fork a library to allow spaces only in the middle of mentions ('@' trigger)\n allowSpaces: false,\n // Where to inject the menu popup\n menuContainer\n });\n this.tribute.attach(this.$refs.contenteditable);\n this.$refs.contenteditable.contentEditable = this.contenteditableAttributeValue;\n },\n getLink(item) {\n getLinkWithPicker(item.original.id).then((result) => {\n const tmpElem = document.getElementById(\"tmp-smart-picker-result-node\");\n const eventData = {\n result,\n insertText: true\n };\n this.$emit(\"smartPickerSubmit\", eventData);\n if (eventData.insertText) {\n const newElem = document.createTextNode(result);\n tmpElem.replaceWith(newElem);\n this.setCursorAfter(newElem);\n this.updateValue(this.$refs.contenteditable.innerHTML);\n } else {\n tmpElem.remove();\n }\n }).catch((error) => {\n logger.debug(\"[NcRichContenteditable] Smart picker promise rejected:\", { error });\n const tmpElem = document.getElementById(\"tmp-smart-picker-result-node\");\n this.setCursorAfter(tmpElem);\n tmpElem.remove();\n });\n return '';\n },\n setCursorAfter(element) {\n const range = document.createRange();\n range.setEndAfter(element);\n range.collapse();\n const selection = window.getSelection();\n selection.removeAllRanges();\n selection.addRange(range);\n },\n moveCursorToEnd() {\n if (!document.createRange) {\n return;\n }\n if (window.getSelection().rangeCount > 0 && this.$refs.contenteditable.contains(window.getSelection().getRangeAt(0).commonAncestorContainer)) {\n return;\n }\n const range = document.createRange();\n range.selectNodeContents(this.$refs.contenteditable);\n range.collapse(false);\n const selection = window.getSelection();\n selection.removeAllRanges();\n selection.addRange(range);\n },\n /**\n * Re-emit the input event to the parent\n *\n * @param {Event} event the input event\n */\n onInput(event) {\n this.updateValue(event.target.innerHTML);\n },\n /**\n * When pasting, sanitize the content, extract text\n * and render it again\n *\n * @param {Event} event the paste event\n * @fires Event paste the original paste event\n */\n onPaste(event) {\n if (!this.contenteditable || this.disabled) {\n return;\n }\n if (isPlaintextOnlySupported) {\n this.$emit(\"paste\", event);\n } else {\n event.preventDefault();\n const clipboardData = event.clipboardData;\n this.$emit(\"paste\", event);\n if (clipboardData.files.length !== 0 || !Object.values(clipboardData.items).find((item) => item?.type.startsWith(\"text\"))) {\n return;\n }\n const text = clipboardData.getData(\"text\");\n const selection = window.getSelection();\n const range = selection.getRangeAt(0);\n range.deleteContents();\n range.insertNode(document.createTextNode(text));\n range.collapse(false);\n }\n this.updateValue(this.$refs.contenteditable.innerHTML);\n },\n /**\n * Update the value text from the provided html\n *\n * @param {string} htmlOrText the html content (or raw text with @mentions)\n */\n updateValue(htmlOrText) {\n const text = this.parseContent(htmlOrText).replace(/^\\n$/, \"\");\n this.localValue = text;\n this.$emit(\"update:modelValue\", text);\n },\n /**\n * Update content and local value\n *\n * @param {string} value the message value\n */\n updateContent(value) {\n const renderedContent = this.renderContent(value);\n this.$refs.contenteditable.innerHTML = renderedContent;\n this.localValue = value;\n },\n /**\n * Enter key pressed. Submits if not multiline\n *\n * @param {Event} event the keydown event\n */\n onEnter(event) {\n if (this.multiline || this.isOverMaxlength || this.tribute.isActive || this.isComposing) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n this.$emit(\"submit\", event);\n },\n /**\n * Ctrl + Enter key pressed is used to submit\n *\n * @param {Event} event the keydown event\n */\n onCtrlEnter(event) {\n if (this.isOverMaxlength) {\n return;\n }\n this.$emit(\"submit\", event);\n },\n onKeyUp(event) {\n event.stopImmediatePropagation();\n },\n onKeyEsc(event) {\n if (this.tribute && this.isAutocompleteOpen) {\n event.stopImmediatePropagation();\n this.tribute.hideMenu();\n }\n },\n /**\n * Get HTML element with Tribute.js container\n *\n * @return {HTMLElement}\n */\n getTributeContainer() {\n return this.tribute.menu;\n },\n /**\n * Get the currently selected item element id in Tribute.js container\n *\n * @return {HTMLElement}\n */\n getTributeSelectedItem() {\n return this.getTributeContainer().querySelector('.highlight [id^=\"nc-rich-contenteditable-tribute-item-\"]');\n },\n /**\n * Handle Tribute activation\n *\n * @param {boolean} isActive - is active\n */\n onTributeActive(isActive) {\n this.isAutocompleteOpen = isActive;\n if (isActive) {\n this.getTributeContainer().setAttribute(\"class\", this.tribute.current.collection.containerClass || this.$style[\"tribute-container\"]);\n this.setupTributeIntegration();\n document.removeEventListener(\"click\", this.hideTribute, true);\n } else {\n this.debouncedAutoComplete.clear();\n this.autocompleteActiveId = void 0;\n this.setTributeFocusVisible(false);\n }\n },\n onTributeArrowKeyDown() {\n if (!this.isAutocompleteOpen) {\n return;\n }\n this.setTributeFocusVisible(true);\n this.onTributeSelectedItemWillChange();\n },\n onTributeSelectedItemWillChange() {\n requestAnimationFrame(() => {\n this.autocompleteActiveId = this.getTributeSelectedItem()?.id;\n });\n },\n setupTributeIntegration() {\n if (this.isTributeIntegrationDone) {\n return;\n }\n this.isTributeIntegrationDone = true;\n const tributeContainer = this.getTributeContainer();\n tributeContainer.id = this.tributeId;\n tributeContainer.setAttribute(\"role\", \"listbox\");\n const ul = tributeContainer.children[0];\n ul.setAttribute(\"role\", \"presentation\");\n this.tributeStyleMutationObserver = new MutationObserver(([{ target }]) => {\n if (target.style.display !== \"none\") {\n this.onTributeSelectedItemWillChange();\n }\n }).observe(tributeContainer, {\n attributes: true,\n attributeFilter: [\"style\"]\n });\n tributeContainer.addEventListener(\"mousemove\", () => {\n this.setTributeFocusVisible(false);\n this.onTributeSelectedItemWillChange();\n }, { passive: true });\n },\n /**\n * Set tribute-container--focus-visible class on the Tribute container when the user navigates the listbox via keyboard.\n *\n * Because the real focus is kept on the textbox, we cannot use the :focus-visible pseudo-class\n * to style selected options in the autocomplete listbox.\n *\n * @param {boolean} withFocusVisible - should the focus-visible class be added\n */\n setTributeFocusVisible(withFocusVisible) {\n if (withFocusVisible) {\n this.getTributeContainer().classList.add(this.$style[\"tribute-container--focus-visible\"]);\n } else {\n this.getTributeContainer().classList.remove(this.$style[\"tribute-container--focus-visible\"]);\n }\n },\n /**\n * Show tribute menu programmatically.\n *\n * @param {string} trigger - trigger character, can be '/', '@', or ':'\n *\n * @public\n */\n showTribute(trigger) {\n this.focus();\n const index = this.tribute.collection.findIndex((collection) => collection.trigger === trigger);\n this.tribute.showMenuForCollection(this.$refs.contenteditable, index);\n this.updateValue(this.$refs.contenteditable.innerHTML);\n document.addEventListener(\"click\", this.hideTribute, true);\n },\n /**\n * Hide tribute menu programmatically\n *\n */\n hideTribute() {\n this.tribute.hideMenu();\n document.removeEventListener(\"click\", this.hideTribute, true);\n }\n }\n};\nconst _hoisted_1 = [\"id\", \"contenteditable\", \"aria-labelledby\", \"aria-placeholder\", \"aria-controls\", \"aria-expanded\", \"aria-activedescendant\", \"title\"];\nconst _hoisted_2 = [\"id\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"rich-contenteditable\", _ctx.$props.class])\n }, [\n createElementVNode(\"div\", mergeProps({\n id: $props.id,\n ref: \"contenteditable\",\n class: [{\n \"rich-contenteditable__input--empty\": $options.isEmptyValue,\n \"rich-contenteditable__input--multiline\": $props.multiline,\n \"rich-contenteditable__input--has-label\": $props.label,\n \"rich-contenteditable__input--overflow\": $options.isOverMaxlength,\n \"rich-contenteditable__input--disabled\": $props.disabled\n }, \"rich-contenteditable__input\"],\n contenteditable: $options.contenteditableAttributeValue,\n \"aria-labelledby\": $props.label ? $setup.labelId : void 0,\n \"aria-placeholder\": $props.placeholder,\n \"aria-multiline\": \"true\",\n role: \"textbox\",\n \"aria-haspopup\": \"listbox\",\n \"aria-autocomplete\": \"inline\",\n \"aria-controls\": $setup.tributeId,\n \"aria-expanded\": $data.isAutocompleteOpen ? \"true\" : \"false\",\n \"aria-activedescendant\": $data.autocompleteActiveId,\n title: $options.tooltipString\n }, _ctx.$attrs, {\n onFocus: _cache[0] || (_cache[0] = (...args) => $options.moveCursorToEnd && $options.moveCursorToEnd(...args)),\n onInput: _cache[1] || (_cache[1] = (...args) => $options.onInput && $options.onInput(...args)),\n onCompositionstart: _cache[2] || (_cache[2] = ($event) => $data.isComposing = true),\n onCompositionend: _cache[3] || (_cache[3] = ($event) => $data.isComposing = false),\n onKeydownCapture: _cache[4] || (_cache[4] = withKeys((...args) => $options.onKeyEsc && $options.onKeyEsc(...args), [\"esc\"])),\n onKeydown: [\n _cache[5] || (_cache[5] = withKeys(withModifiers((...args) => $options.onEnter && $options.onEnter(...args), [\"exact\"]), [\"enter\"])),\n _cache[6] || (_cache[6] = withKeys(withModifiers((...args) => $options.onCtrlEnter && $options.onCtrlEnter(...args), [\"ctrl\", \"exact\", \"stop\", \"prevent\"]), [\"enter\"])),\n _cache[9] || (_cache[9] = withKeys(withModifiers((...args) => $options.onTributeArrowKeyDown && $options.onTributeArrowKeyDown(...args), [\"exact\", \"stop\"]), [\"up\"])),\n _cache[10] || (_cache[10] = withKeys(withModifiers((...args) => $options.onTributeArrowKeyDown && $options.onTributeArrowKeyDown(...args), [\"exact\", \"stop\"]), [\"down\"]))\n ],\n onPaste: _cache[7] || (_cache[7] = (...args) => $options.onPaste && $options.onPaste(...args)),\n onKeyupCapture: _cache[8] || (_cache[8] = withModifiers((...args) => $options.onKeyUp && $options.onKeyUp(...args), [\"stop\", \"prevent\"])),\n onTributeActiveTrue: _cache[11] || (_cache[11] = ($event) => $options.onTributeActive(true)),\n onTributeActiveFalse: _cache[12] || (_cache[12] = ($event) => $options.onTributeActive(false))\n }), null, 16, _hoisted_1),\n $props.label ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n id: $setup.labelId,\n class: \"rich-contenteditable__label\"\n }, toDisplayString($props.label), 9, _hoisted_2)) : createCommentVNode(\"\", true)\n ], 2);\n}\nconst cssModules = {\n \"$style\": style1\n};\nconst NcRichContenteditable = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__cssModules\", cssModules], [\"__scopeId\", \"data-v-9234d45e\"]]);\nexport {\n NcAutoCompleteResult as N,\n NcMentionBubble as a,\n NcRichContenteditable as b\n};\n//# sourceMappingURL=NcRichContenteditable-DO3_WniI.mjs.map\n"],"names":["predicate","list","length","thisArg","value","i","CustomEvent$1","event","params","evt","TributeEvents","tribute","element","instance","o","li","keyCode","trigger","eventKeyPressed","el","info","e","collectionItem","item","count","selected","index","lis","liClientRect","menuClientRect","scrollDistance","elem","includeMargin","height","style","TributeMenuEvents","menu","func","wait","immediate","timeout","context","args","later","callNow","TributeRange","iframe","scrollTo","coordinates","menuDimensions","menuIsOffScreen","menuIsOffScreenHorizontally","menuIsOffScreenVertically","targetElement","path","offset","range","sel","text","requireLeadingSpace","hasTrailingSpace","originalEvent","replaceEvent","textSuffix","endPos","myField","startPos","html","frag","node","lastNode","ctx","ce","selectedElem","workingNodeContent","selectStartOffset","textComponent","wordsArray","worldsCount","menuAlreadyActive","allowSpaces","isAutocomplete","selectionInfo","effectiveRange","lastWordOfEffectiveRange","mostRecentTriggerCharPos","triggerChar","config","c","idx","currentTriggerSnippet","firstSnippetChar","leadingSpace","regex","str","reversedStr","cidx","len","firstChar","match","triggerIdx","windowWidth","windowHeight","doc","windowLeft","windowTop","menuTop","menuRight","menuBottom","menuLeft","dimensions","position","flipped","properties","isFirefox","div","computed","prop","span","rect","top","left","parentHeight","parentRect","scrollStillAvailable","selectedNodePosition","reasonableBuffer","clientRect","maxScrollDisplacement","elemTop","elemBottom","maxY","targetY","TributeSearch","pattern","array","string","opts","pre","post","compareString","patternCache","stringIndex","patternIndex","best","temp","score","indices","rendered","arr","prev","a","b","Tribute","values","selectClass","containerClass","itemClass","autocompleteMode","selectTemplate","menuItemTemplate","lookup","fillAttr","collection","menuContainer","noMatchTemplate","replaceTextSuffix","positionMenu","spaceSelectsMatch","searchOpts","menuItemLimit","menuShowMinLength","t","val","noMatchEvent","matchItem","wrapper","ul","processValues","items","fragment","collectionIndex","textRange","textNode","textarea","scrollPos","caretPos","front","back","content","newValues","replace","_sfc_main$2","useIsDarkTheme","getAvatarUrl","_hoisted_1$2","_hoisted_2$2","_hoisted_3$1","_hoisted_4$1","_sfc_render$2","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","normalizeClass","createElementVNode","normalizeStyle","toDisplayString","NcMentionBubble","_export_sfc","MENTION_START","MENTION_SIMPLE","MENTION_GUEST","MENTION_PREFIXED","MENTION_WITH_SPACE","MENTION_COMPLEX","USERID_REGEX","USERID_REGEX_WITH_SPACE","richEditor","escapeHTML","part","id","stripTags","data","char","props","component","Item","createApp","mount","renderedHtml","_sfc_main$1","NcUserStatusIcon","_hoisted_1$1","_hoisted_2$1","_hoisted_3","_hoisted_4","_hoisted_5","_sfc_render$1","_component_NcUserStatusIcon","resolveComponent","createBlock","createCommentVNode","NcAutoCompleteResult","register","t34","t37","style1","smilesCharacters","textSmiles","isPlaintextOnlySupported","_sfc_main","createElementId","segmenter","error","logger","n","debounce","search","callback","renderMenuItem","tributesCollection","result","query","emojiAddRecent","cb","emojiResults","emojiSearch","searchProvider","getLinkWithPicker","tmpElem","eventData","newElem","selection","clipboardData","htmlOrText","renderedContent","isActive","tributeContainer","target","withFocusVisible","_hoisted_1","_hoisted_2","_sfc_render","mergeProps","$event","withKeys","withModifiers","cssModules","NcRichContenteditable"],"mappings":"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","x_google_ignoreList":[0,1]} \ No newline at end of file diff --git a/dist/index-xEyWukTf.chunk.mjs.map.license b/dist/index-CcOuN-F7.chunk.mjs.map.license similarity index 100% rename from dist/index-xEyWukTf.chunk.mjs.map.license rename to dist/index-CcOuN-F7.chunk.mjs.map.license diff --git a/dist/index-DL1yHC1K-DnBG6QLJ.chunk.mjs b/dist/index-DL1yHC1K-BJ_TsAjb.chunk.mjs similarity index 99% rename from dist/index-DL1yHC1K-DnBG6QLJ.chunk.mjs rename to dist/index-DL1yHC1K-BJ_TsAjb.chunk.mjs index 1ba0cbabf30..ebc76eee1a3 100644 --- a/dist/index-DL1yHC1K-DnBG6QLJ.chunk.mjs +++ b/dist/index-DL1yHC1K-BJ_TsAjb.chunk.mjs @@ -1,6 +1,6 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/FilePicker-DWYoSaVg-DRRVf2iD.chunk.mjs'),window.OC.filePath('', '', 'dist/Web-BwmPK40i.chunk.mjs'),window.OC.filePath('', '', 'dist/public-C1mLBHT3.chunk.mjs'),window.OC.filePath('', '', 'dist/index-B-dGqfIG.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BW4M2n71.chunk.mjs'),window.OC.filePath('', '', 'dist/NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs'),window.OC.filePath('', '', 'dist/logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs'),window.OC.filePath('', '', 'dist/translation-DoG5ZELJ-CFYnqluG.chunk.mjs'),window.OC.filePath('', '', 'dist/common-createElementId-DhjFt1I9-C_oBIsvc.chunk.css'),window.OC.filePath('', '', 'dist/common-logger-D3RVzcfQ-BE3lcFW4.chunk.css'),window.OC.filePath('', '', 'dist/common-NcModal-DUWLRm_F-BsKc2RT9.chunk.css'),window.OC.filePath('', '', 'dist/TrashCanOutline-Cv7t-yKN.chunk.mjs'),window.OC.filePath('', '', 'dist/common-TrashCanOutline-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/common-index-DYA_tnKg.chunk.css'),window.OC.filePath('', '', 'dist/NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcEmptyContent-CGAPqk4S-Don1d5Bd.chunk.css'),window.OC.filePath('', '', 'dist/index-BDagnpAU.chunk.mjs'),window.OC.filePath('', '', 'dist/folder-29HuacU_-Joa_bkj_.chunk.mjs'),window.OC.filePath('', '', 'dist/util-Alk1iwuj.chunk.mjs'),window.OC.filePath('', '', 'dist/NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcCheckboxRadioSwitch-D8Dfv4iw-CPGkDj-p.chunk.css'),window.OC.filePath('', '', 'dist/NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs'),window.OC.filePath('', '', 'dist/PencilOutline-CJ2aSuY5.chunk.mjs'),window.OC.filePath('', '', 'dist/common-PencilOutline-B3DMd8SU.chunk.css'),window.OC.filePath('', '', 'dist/common-NcDateTime-b9UhLDij.chunk.css'),window.OC.filePath('', '', 'dist/mdi-Lt-19ASw.chunk.mjs'),window.OC.filePath('', '', 'dist/common-mdi-BWNFKLbC.chunk.css'),window.OC.filePath('', '', 'dist/ShareType-suoNfd7y.chunk.mjs'),window.OC.filePath('', '', 'dist/NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs'),window.OC.filePath('', '', 'dist/NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BLNGy7h5.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcInputField-B1bGxYHt-BYHxARP-.chunk.css'),window.OC.filePath('', '', 'dist/common-NcPasswordField-Be5_qcfm-Crp_EMfV.chunk.css'),window.OC.filePath('', '', 'dist/NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcBreadcrumbs-5gl8Syfa-CfbvucBX.chunk.css'),window.OC.filePath('', '', 'dist/index-BOH7nBEM.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index-980JFXIN.chunk.css'),window.OC.filePath('', '', 'dist/dav-CGJ67RGS.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BYnFfAmz.chunk.mjs')])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/FilePicker-DWYoSaVg-D_Ra0RFa.chunk.mjs'),window.OC.filePath('', '', 'dist/Web-BwmPK40i.chunk.mjs'),window.OC.filePath('', '', 'dist/public-C1mLBHT3.chunk.mjs'),window.OC.filePath('', '', 'dist/index-B-dGqfIG.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BW4M2n71.chunk.mjs'),window.OC.filePath('', '', 'dist/NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs'),window.OC.filePath('', '', 'dist/logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs'),window.OC.filePath('', '', 'dist/translation-DoG5ZELJ-CFYnqluG.chunk.mjs'),window.OC.filePath('', '', 'dist/common-createElementId-DhjFt1I9-C_oBIsvc.chunk.css'),window.OC.filePath('', '', 'dist/common-logger-D3RVzcfQ-BE3lcFW4.chunk.css'),window.OC.filePath('', '', 'dist/common-NcModal-DUWLRm_F-BsKc2RT9.chunk.css'),window.OC.filePath('', '', 'dist/TrashCanOutline-Cv7t-yKN.chunk.mjs'),window.OC.filePath('', '', 'dist/common-TrashCanOutline-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/common-index-DYA_tnKg.chunk.css'),window.OC.filePath('', '', 'dist/NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcEmptyContent-CGAPqk4S-Don1d5Bd.chunk.css'),window.OC.filePath('', '', 'dist/index-BDagnpAU.chunk.mjs'),window.OC.filePath('', '', 'dist/folder-29HuacU_-Joa_bkj_.chunk.mjs'),window.OC.filePath('', '', 'dist/util-Alk1iwuj.chunk.mjs'),window.OC.filePath('', '', 'dist/NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcCheckboxRadioSwitch-D8Dfv4iw-CPGkDj-p.chunk.css'),window.OC.filePath('', '', 'dist/NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs'),window.OC.filePath('', '', 'dist/PencilOutline-CJ2aSuY5.chunk.mjs'),window.OC.filePath('', '', 'dist/common-PencilOutline-B3DMd8SU.chunk.css'),window.OC.filePath('', '', 'dist/common-NcDateTime-b9UhLDij.chunk.css'),window.OC.filePath('', '', 'dist/mdi-Lt-19ASw.chunk.mjs'),window.OC.filePath('', '', 'dist/common-mdi-BWNFKLbC.chunk.css'),window.OC.filePath('', '', 'dist/ShareType-suoNfd7y.chunk.mjs'),window.OC.filePath('', '', 'dist/NcBreadcrumbs-5gl8Syfa-CMEm2tCm.chunk.mjs'),window.OC.filePath('', '', 'dist/NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BLNGy7h5.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcInputField-B1bGxYHt-BYHxARP-.chunk.css'),window.OC.filePath('', '', 'dist/common-NcPasswordField-Be5_qcfm-Crp_EMfV.chunk.css'),window.OC.filePath('', '', 'dist/NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcBreadcrumbs-5gl8Syfa-CfbvucBX.chunk.css'),window.OC.filePath('', '', 'dist/index-dqLzhRZM.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index-BWhNCeJl.chunk.css'),window.OC.filePath('', '', 'dist/dav-CGJ67RGS.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BYnFfAmz.chunk.mjs')])))=>i.map(i=>d[i]); import{b as j,D as M,E as I,o as x,c as p,w as D,u as A,g as Y,t as P,h as w,f as _,v as V,_ as U}from"./Web-BwmPK40i.chunk.mjs";import{s as y,N as T}from"./index-BW4M2n71.chunk.mjs";import{t as L,g as W,l as q}from"./index-B-dGqfIG.chunk.mjs";import{l as K}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{N as O}from"./mdi-Lt-19ASw.chunk.mjs";var v={exports:{}},H=v.exports,k;function R(){return k||(k=1,(function(i){(function(e,s){i.exports?i.exports=s():e.Toastify=s()})(H,function(e){var s=function(u){return new s.lib.init(u)},t="1.12.0";s.defaults={oldestFirst:!0,text:"Toastify is awesome!",node:void 0,duration:3e3,selector:void 0,callback:function(){},destination:void 0,newWindow:!1,close:!1,gravity:"toastify-top",positionLeft:!1,position:"",backgroundColor:"",avatar:"",className:"",stopOnFocus:!0,onClick:function(){},offset:{x:0,y:0},escapeMarkup:!0,ariaLive:"polite",style:{background:""}},s.lib=s.prototype={toastify:t,constructor:s,init:function(u){return u||(u={}),this.options={},this.toastElement=null,this.options.text=u.text||s.defaults.text,this.options.node=u.node||s.defaults.node,this.options.duration=u.duration===0?0:u.duration||s.defaults.duration,this.options.selector=u.selector||s.defaults.selector,this.options.callback=u.callback||s.defaults.callback,this.options.destination=u.destination||s.defaults.destination,this.options.newWindow=u.newWindow||s.defaults.newWindow,this.options.close=u.close||s.defaults.close,this.options.gravity=u.gravity==="bottom"?"toastify-bottom":s.defaults.gravity,this.options.positionLeft=u.positionLeft||s.defaults.positionLeft,this.options.position=u.position||s.defaults.position,this.options.backgroundColor=u.backgroundColor||s.defaults.backgroundColor,this.options.avatar=u.avatar||s.defaults.avatar,this.options.className=u.className||s.defaults.className,this.options.stopOnFocus=u.stopOnFocus===void 0?s.defaults.stopOnFocus:u.stopOnFocus,this.options.onClick=u.onClick||s.defaults.onClick,this.options.offset=u.offset||s.defaults.offset,this.options.escapeMarkup=u.escapeMarkup!==void 0?u.escapeMarkup:s.defaults.escapeMarkup,this.options.ariaLive=u.ariaLive||s.defaults.ariaLive,this.options.style=u.style||s.defaults.style,u.backgroundColor&&(this.options.style.background=u.backgroundColor),this},buildToast:function(){if(!this.options)throw"Toastify is not initialized";var u=document.createElement("div");u.className="toastify on "+this.options.className,this.options.position?u.className+=" toastify-"+this.options.position:this.options.positionLeft===!0?(u.className+=" toastify-left",console.warn("Property `positionLeft` will be depreciated in further versions. Please use `position` instead.")):u.className+=" toastify-right",u.className+=" "+this.options.gravity,this.options.backgroundColor&&console.warn('DEPRECATION NOTICE: "backgroundColor" is being deprecated. Please use the "style.background" property.');for(var a in this.options.style)u.style[a]=this.options.style[a];if(this.options.ariaLive&&u.setAttribute("aria-live",this.options.ariaLive),this.options.node&&this.options.node.nodeType===Node.ELEMENT_NODE)u.appendChild(this.options.node);else if(this.options.escapeMarkup?u.innerText=this.options.text:u.innerHTML=this.options.text,this.options.avatar!==""){var g=document.createElement("img");g.src=this.options.avatar,g.className="toastify-avatar",this.options.position=="left"||this.options.positionLeft===!0?u.appendChild(g):u.insertAdjacentElement("afterbegin",g)}if(this.options.close===!0){var o=document.createElement("button");o.type="button",o.setAttribute("aria-label","Close"),o.className="toast-close",o.innerHTML="✖",o.addEventListener("click",function(C){C.stopPropagation(),this.removeElement(this.toastElement),window.clearTimeout(this.toastElement.timeOutValue)}.bind(this));var m=window.innerWidth>0?window.innerWidth:screen.width;(this.options.position=="left"||this.options.positionLeft===!0)&&m>360?u.insertAdjacentElement("afterbegin",o):u.appendChild(o)}if(this.options.stopOnFocus&&this.options.duration>0){var d=this;u.addEventListener("mouseover",function(C){window.clearTimeout(u.timeOutValue)}),u.addEventListener("mouseleave",function(){u.timeOutValue=window.setTimeout(function(){d.removeElement(u)},d.options.duration)})}if(typeof this.options.destination<"u"&&u.addEventListener("click",function(C){C.stopPropagation(),this.options.newWindow===!0?window.open(this.options.destination,"_blank"):window.location=this.options.destination}.bind(this)),typeof this.options.onClick=="function"&&typeof this.options.destination>"u"&&u.addEventListener("click",function(C){C.stopPropagation(),this.options.onClick()}.bind(this)),typeof this.options.offset=="object"){var E=n("x",this.options),c=n("y",this.options),B=this.options.position=="left"?E:"-"+E,S=this.options.gravity=="toastify-top"?c:"-"+c;u.style.transform="translate("+B+","+S+")"}return u},showToast:function(){this.toastElement=this.buildToast();var u;if(typeof this.options.selector=="string"?u=document.getElementById(this.options.selector):this.options.selector instanceof HTMLElement||typeof ShadowRoot<"u"&&this.options.selector instanceof ShadowRoot?u=this.options.selector:u=document.body,!u)throw"Root element is not defined";var a=s.defaults.oldestFirst?u.firstChild:u.lastChild;return u.insertBefore(this.toastElement,a),s.reposition(),this.options.duration>0&&(this.toastElement.timeOutValue=window.setTimeout(function(){this.removeElement(this.toastElement)}.bind(this),this.options.duration)),this},hideToast:function(){this.toastElement.timeOutValue&&clearTimeout(this.toastElement.timeOutValue),this.removeElement(this.toastElement)},removeElement:function(u){u.className=u.className.replace(" on",""),window.setTimeout(function(){this.options.node&&this.options.node.parentNode&&this.options.node.parentNode.removeChild(this.options.node),u.parentNode&&u.parentNode.removeChild(u),this.options.callback.call(u),s.reposition()}.bind(this),400)}},s.reposition=function(){for(var u={top:15,bottom:15},a={top:15,bottom:15},g={top:15,bottom:15},o=document.getElementsByClassName("toastify"),m,d=0;d0?window.innerWidth:screen.width;B<=360?(o[d].style[m]=g[m]+"px",g[m]+=E+c):r(o[d],"toastify-left")===!0?(o[d].style[m]=u[m]+"px",u[m]+=E+c):(o[d].style[m]=a[m]+"px",a[m]+=E+c)}return this};function n(u,a){return a.offset[u]?isNaN(a.offset[u])?a.offset[u]:a.offset[u]+"px":"0px"}function r(u,a){return!u||typeof a!="string"?!1:!!(u.className&&u.className.trim().split(/\s+/gi).indexOf(a)>-1)}return s.lib.init.prototype=s.lib,s})})(v)),v.exports}var G=R();const Z=L(G),J='',Q='',N=K().detectLanguage();for(const i of[{language:"ar",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" لا يصلح كاسم مجلد.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" غير مسموح به كاسم مجلد']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" غير مسموح به داخل اسم مجلد.']},{msgid:"All files",msgstr:["كل الملفات"]},{msgid:"Choose",msgstr:["إختَر"]},{msgid:"Choose {file}",msgstr:["إختر {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["إختَر %n ملف","إختَر %n ملف","إختَر %n ملف","إختَر %n ملفات","إختَر %n ملف","إختر %n ملف"]},{msgid:"Copy",msgstr:["نسخ"]},{msgid:"Copy to {target}",msgstr:["نسخ إلى {target}"]},{msgid:"Could not create the new folder",msgstr:["تعذّر إنشاء المجلد الجديد"]},{msgid:"Could not load files settings",msgstr:["يتعذّر تحميل إعدادات الملفات"]},{msgid:"Could not load files views",msgstr:["تعذر تحميل عرض الملفات"]},{msgid:"Create directory",msgstr:["إنشاء مجلد"]},{msgid:"Current view selector",msgstr:["محدد العرض الحالي"]},{msgid:"Favorites",msgstr:["المفضلة"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["الملفات والمجلدات التي تحددها كمفضلة ستظهر هنا."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["الملفات و المجلدات التي قمت مؤخراً بتعديلها سوف تظهر هنا."]},{msgid:"Filter file list",msgstr:["تصفية قائمة الملفات"]},{msgid:"Folder name cannot be empty.",msgstr:["اسم المجلد لا يمكن أن يكون فارغاً."]},{msgid:"Home",msgstr:["البداية"]},{msgid:"Modified",msgstr:["التعديل"]},{msgid:"Move",msgstr:["نقل"]},{msgid:"Move to {target}",msgstr:["نقل إلى {target}"]},{msgid:"Name",msgstr:["الاسم"]},{msgid:"New",msgstr:["جديد"]},{msgid:"New folder",msgstr:["مجلد جديد"]},{msgid:"New folder name",msgstr:["اسم المجلد الجديد"]},{msgid:"No files in here",msgstr:["لا توجد ملفات هنا"]},{msgid:"No files matching your filter were found.",msgstr:["لا توجد ملفات تتطابق مع عامل التصفية الذي وضعته"]},{msgid:"No matching files",msgstr:["لا توجد ملفات مطابقة"]},{msgid:"Recent",msgstr:["الحالي"]},{msgid:"Select all entries",msgstr:["حدد جميع الإدخالات"]},{msgid:"Select entry",msgstr:["إختَر المدخل"]},{msgid:"Select the row for {nodename}",msgstr:["إختر سطر الـ {nodename}"]},{msgid:"Size",msgstr:["الحجم"]},{msgid:"Undo",msgstr:["تراجع"]},{msgid:"Upload some content or sync with your devices!",msgstr:["قم برفع بعض المحتوى أو المزامنة مع أجهزتك!"]}]},{language:"ast",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["«{name}» ye un nome de carpeta inválidu."]},{msgid:'"{name}" is not an allowed folder name',msgstr:["«{name}» ye un nome de carpeta inválidu"]},{msgid:'"/" is not allowed inside a folder name.',msgstr:["Nun se permite'l caráuter «/» dientro'l nome de les carpetes."]},{msgid:"All files",msgstr:["Tolos ficheros"]},{msgid:"Choose",msgstr:["Escoyer"]},{msgid:"Choose {file}",msgstr:["Escoyer «{ficheru}»"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Escoyer %n ficheru","Escoyer %n ficheros"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar en: {target}"]},{msgid:"Could not create the new folder",msgstr:["Nun se pudo crear la carpeta"]},{msgid:"Could not load files settings",msgstr:["Nun se pudo cargar la configuración de los ficheros"]},{msgid:"Could not load files views",msgstr:["Nun se pudieron cargar les vistes de los ficheros"]},{msgid:"Create directory",msgstr:["Crear un direutoriu"]},{msgid:"Current view selector",msgstr:["Selector de la vista actual"]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Equí apaecen los ficheros y les carpetes que metas en Favoritos."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Equí apaecen los fichero y les carpetes que modificares apocayá."]},{msgid:"Filter file list",msgstr:["Peñerar la llista de ficheros"]},{msgid:"Folder name cannot be empty.",msgstr:["El nome de la carpeta nun pue tar baleru."]},{msgid:"Home",msgstr:["Aniciu"]},{msgid:"Modified",msgstr:["Modificóse"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover a {target}"]},{msgid:"Name",msgstr:["Nome"]},{msgid:"New",msgstr:["Nuevu"]},{msgid:"New folder",msgstr:["Carpeta nueva"]},{msgid:"New folder name",msgstr:["Nome de carpeta nuevu"]},{msgid:"No files in here",msgstr:["Equí nun hai nengún ficheru"]},{msgid:"No files matching your filter were found.",msgstr:["Nun s'atopó nengún ficheru que concasare cola peñera."]},{msgid:"No matching files",msgstr:["Nun hai nengún ficheru que concase"]},{msgid:"Recent",msgstr:["De recién"]},{msgid:"Select all entries",msgstr:["Seleicionar toles entraes"]},{msgid:"Select entry",msgstr:["Seleicionar la entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Seleicionar la filera de: {nodename}"]},{msgid:"Size",msgstr:["Tamañu"]},{msgid:"Undo",msgstr:["Desfacer"]},{msgid:"Upload some content or sync with your devices!",msgstr:["¡Xubi dalgún elementu o sincroniza colos tos preseos!"]}]},{language:"ca",translations:[{msgid:'"{char}" is not allowed inside a name.',msgstr:[`No és permès d'usar el caràcter "{char}" en un nom.`]},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" no és un nom permès.']},{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" no és vàlid com a nom de carpeta.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" no és vàlid com a nom de carpeta']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" és un mot reservat i no està permès com a nom.']},{msgid:'"/" is not allowed inside a folder name.',msgstr:[`"/" no està permès en el nom d'una carpeta.`]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n conflicte de fitxers","%n conflictes de fitxers"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n onflicte de fitxers a {dirname}","%n conflictes de fitxers a {dirname}"]},{msgid:"All files",msgstr:["Tots els fitxers"]},{msgid:"Cancel",msgstr:["Cancel·lar"]},{msgid:"Cancel the entire operation",msgstr:["Cancel·lar tota l'operació"]},{msgid:"Choose",msgstr:["Tria"]},{msgid:"Choose {file}",msgstr:["Tria {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Tria %n fitxer","Tria %n fitxers"]},{msgid:"Confirm",msgstr:["Confirma"]},{msgid:"Continue",msgstr:["Continuar"]},{msgid:"Copy",msgstr:["Copia"]},{msgid:"Copy to {target}",msgstr:["Copia a {target}"]},{msgid:"Could not create the new folder",msgstr:["No s'ha pogut crear la carpeta nova"]},{msgid:"Could not load files settings",msgstr:["No es poden carregar fitxers de configuració"]},{msgid:"Could not load files views",msgstr:["No es poden carregar fitxers de vistes"]},{msgid:"Create directory",msgstr:["Crea un directori"]},{msgid:"Current view selector",msgstr:["Selector de visualització actual"]},{msgid:"Enter your name",msgstr:["Escriviu el vostre nom"]},{msgid:"Existing version",msgstr:["Versió existent"]},{msgid:"Failed to set nickname.",msgstr:["No s'ha pogut desar el sobrenom."]},{msgid:"Favorites",msgstr:["Preferits"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Els fitxers i les carpetes que marqueu com a favorits es mostraran aquí."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Els fitxers i les carpetes recentment modificats es mostraran aquí."]},{msgid:"Filter file list",msgstr:["Filtrar llistat de fitxers"]},{msgid:"Folder name cannot be empty.",msgstr:["El nom de la carpeta no pot estar buit."]},{msgid:"Guest identification",msgstr:["Identificació com a convidat"]},{msgid:"Home",msgstr:["Inici"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Si seleccioneu les dues versions, el fitxer entrant tindrà un número afegit al seu nom."]},{msgid:"Invalid name.",msgstr:["Nom no vàlid."]},{msgid:"Last modified date unknown",msgstr:["Data de l'última modificació desconeguda"]},{msgid:"Modified",msgstr:["Data de modificació"]},{msgid:"Move",msgstr:["Desplaça"]},{msgid:"Move to {target}",msgstr:["Desplaça a {target}"]},{msgid:"Name",msgstr:["Nom"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Els noms poden tenir com a màxim 64 caràcters."]},{msgid:"Names must not be empty.",msgstr:["Els noms no poden ser buits."]},{msgid:'Names must not end with "{extension}".',msgstr:[`Els noms no poden acabar amb l'extensió "{extension}".`]},{msgid:"Names must not start with a dot.",msgstr:["Els noms no poden començar amb un punt."]},{msgid:"New",msgstr:["Crea"]},{msgid:"New folder",msgstr:["Carpeta nova"]},{msgid:"New folder name",msgstr:["Nom de la carpeta nova"]},{msgid:"New version",msgstr:["Nova versió"]},{msgid:"No files in here",msgstr:["No hi ha cap fitxer"]},{msgid:"No files matching your filter were found.",msgstr:["No s'ha trobat cap fitxer que coincideixi amb el filtre."]},{msgid:"No matching files",msgstr:["No hi ha cap fitxer que coincideixi"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Si us plau, escriu un nom amb 2 caràcters com a mínim."]},{msgid:"Recent",msgstr:["Recents"]},{msgid:"Select all checkboxes",msgstr:["Selecciona totes les caselles de selecció"]},{msgid:"Select all entries",msgstr:["Selecciona totes les entrades"]},{msgid:"Select all existing files",msgstr:["Selecciona tots els fitxers existents"]},{msgid:"Select all new files",msgstr:["Selecciona tots els fitxers nous"]},{msgid:"Select entry",msgstr:["Selecciona l'entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Selecciona la fila per a {nodename}"]},{msgid:"Size",msgstr:["Mida"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Omet %n fitxer","Omet %n fitxers"]},{msgid:"Skip this file",msgstr:["Omet aquest fitxer"]},{msgid:"Submit name",msgstr:["Entreu el nom"]},{msgid:"Undo",msgstr:["Desfés"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Pugeu contingut o sincronitzeu-lo amb els vostres dispositius!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Quan es selecciona una carpeta entrant, també se sobreescriuran els fitxers que hi entrin en conflicte."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Quan es selecciona una carpeta entrant, el contingut s'escriu a la carpeta existent i es realitza una resolució recursiva de conflictes."]},{msgid:"Which files do you want to keep?",msgstr:["Quins fitxers voleu conservar?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Actualment se us mostra com a {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Actualment no esteu identificat."]},{msgid:"You cannot leave the name empty.",msgstr:["No podeu deixar el nom buit."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Heu de triar com a mínim una solució de conflicte"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Heu de seleccionar com a mínim una versió de cada fitxer per continuar."]}]},{language:"cs_CZ",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["znak „{char}“ není možné použít uvnitř názvu složky."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["„{char}“ není možné použít uvnitř názvu."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["„{extension}“ není možné použít jako název."]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["„{segment}“ je vyhrazeným názvem a není možné ho používat pro názvy složek."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["„{segment}“ je vyhrazeným názvem a není možné ho použít."]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n kolize souboru","%n kolize souborů","%n kolizí souborů","%n kolize souborů"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n kolize souborů v {dirname}","%n kolize souborů v {dirname}","%n kolizí souborů v {dirname}","%n kolize souborů v {dirname}"]},{msgid:"All files",msgstr:["Veškeré soubory"]},{msgid:"Cancel",msgstr:["Storno"]},{msgid:"Cancel the entire operation",msgstr:["Zrušit celou operaci"]},{msgid:"Choose",msgstr:["Zvolit"]},{msgid:"Choose {file}",msgstr:["Zvolit {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Zvolte %n soubor","Zvolte %n soubory","Zvolte %n souborů","Zvolte %n soubory"]},{msgid:"Confirm",msgstr:["Potvrdit"]},{msgid:"Continue",msgstr:["Pokračovat"]},{msgid:"Copy",msgstr:["Zkopírovat"]},{msgid:"Copy to {target}",msgstr:["Zkopírovat do {target}"]},{msgid:"Could not create the new folder",msgstr:["Novou složku se nepodařilo vytvořit"]},{msgid:"Could not load files settings",msgstr:["Nepodařilo se načíst nastavení pro soubory"]},{msgid:"Could not load files views",msgstr:["Nepodařilo se načíst pohledy souborů"]},{msgid:"Create directory",msgstr:["Vytvořit složku"]},{msgid:"Current view selector",msgstr:["Výběr stávajícího zobrazení"]},{msgid:"Enter your name",msgstr:["Zadejte své jméno"]},{msgid:"Existing version",msgstr:["Existující verze"]},{msgid:"Failed to set nickname.",msgstr:["Nepodařilo se nastavit přezdívku."]},{msgid:"Favorites",msgstr:["Oblíbené"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Zde se zobrazí soubory a složky, které označíte jako oblíbené."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Zde se zobrazí soubory a složky, které jste nedávno pozměnili."]},{msgid:"Filter file list",msgstr:["Filtrovat seznam souborů"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["Názvy složek nemohou končit na „{extension}“."]},{msgid:"Guest identification",msgstr:["Identifikace hosta"]},{msgid:"Home",msgstr:["Domů"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Pokud vyberete obě verze, pak k názvu příchozího souboru bude přidáno číslo."]},{msgid:"Invalid folder name.",msgstr:["Neplatný název složky."]},{msgid:"Invalid name.",msgstr:["Neplatný název."]},{msgid:"Last modified date unknown",msgstr:["Datum poslední změny neznámé"]},{msgid:"Modified",msgstr:["Změněno"]},{msgid:"Move",msgstr:["Přesounout"]},{msgid:"Move to {target}",msgstr:["Přesunout do {target}"]},{msgid:"Name",msgstr:["Název"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Je třeba, aby délka jmen nepřesahovala 64 znaků."]},{msgid:"Names must not be empty.",msgstr:["Názvy je třeba vyplnit."]},{msgid:'Names must not end with "{extension}".',msgstr:["Názvy nemohou končit na „{extension}“."]},{msgid:"Names must not start with a dot.",msgstr:["Názvy nemohou začínat tečkou."]},{msgid:"New",msgstr:["Nové"]},{msgid:"New folder",msgstr:["Nová složka"]},{msgid:"New folder name",msgstr:["Název pro novou složku"]},{msgid:"New version",msgstr:["Nová verze"]},{msgid:"No files in here",msgstr:["Nejsou zde žádné soubory"]},{msgid:"No files matching your filter were found.",msgstr:["Nenalezeny žádné soubory odpovídající vašemu filtru"]},{msgid:"No matching files",msgstr:["Žádné odpovídající soubory"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Zadejte jméno dlouhé alespoň 2 znaky."]},{msgid:"Recent",msgstr:["Nedávné"]},{msgid:"Select all checkboxes",msgstr:["Vybrat všechny zaškrtávací kolonky"]},{msgid:"Select all entries",msgstr:["Vybrat všechny položky"]},{msgid:"Select all existing files",msgstr:["Vybrat všechny existující soubory"]},{msgid:"Select all new files",msgstr:["Vybrat všechny nové soubory"]},{msgid:"Select entry",msgstr:["Vybrat položku"]},{msgid:"Select the row for {nodename}",msgstr:["Vybrat řádek pro {nodename}"]},{msgid:"Size",msgstr:["Velikost"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Přeskočit %n soubor","Přeskočit %n soubory","Přeskočit %n souborů","Přeskočit %n soubory"]},{msgid:"Skip this file",msgstr:["Přeskočit tento soubor"]},{msgid:"Submit name",msgstr:["Odeslat jméno"]},{msgid:"Undo",msgstr:["Zpět"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Nahrajte sem nějaký obsah nebo proveďte synchronizaci se svými zařízeními!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Pokud je vybrána příchozí složka, budou v ní také přepsány jakékoli kolidující soubory."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Pokud je vybrána příchozí složka, je obsah zapsán do existující složky a je provedeno rekurzivní vyřešení kolizí."]},{msgid:"Which files do you want to keep?",msgstr:["Které soubory chcete ponechat?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["V tuto chvíli jste identifikováni jako {nickname}."]},{msgid:"You are currently not identified.",msgstr:["V tuto chvíli nejste identifikovaní."]},{msgid:"You cannot leave the name empty.",msgstr:["Jméno nelze ponechat nevyplněné."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Je třeba zvolit alespoň jedno z řešení kolize"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Aby bylo možné pokračovat, je třeba vybrat alespoň jednu verzi od každého souboru."]}]},{language:"da",translations:[{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" er ikke tilladt i et navn.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" er ikke tilladt i et navn.']},{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" er et ugyldigt mappenavn.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" er ikke et tilladt mappenavn']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" er et reserveret navn og er derfor ikke tilladt.']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" er ikke tilladt i et mappenavn.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n filkonflikt","%n filer konflikter"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n filkonflikt i {dirname}","%n filkonflikter i {dirname}"]},{msgid:"All files",msgstr:["Alle filer"]},{msgid:"Cancel",msgstr:["Fortryd"]},{msgid:"Cancel the entire operation",msgstr:["Annullér hele operationen"]},{msgid:"Choose",msgstr:["Vælg"]},{msgid:"Choose {file}",msgstr:["Vælg {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Vælg %n fil","Vælg %n filer"]},{msgid:"Confirm",msgstr:["Bekræft"]},{msgid:"Continue",msgstr:["Fortsæt"]},{msgid:"Copy",msgstr:["Kopier"]},{msgid:"Copy to {target}",msgstr:["Kopier til {target}"]},{msgid:"Could not create the new folder",msgstr:["Kunne ikke oprette den nye mappe"]},{msgid:"Could not load files settings",msgstr:["Filindstillingerne kunne ikke indlæses"]},{msgid:"Could not load files views",msgstr:["Kunne ikke indlæse filvisninger"]},{msgid:"Create directory",msgstr:["Opret mappe"]},{msgid:"Current view selector",msgstr:["Aktuel visningsvælger"]},{msgid:"Enter your name",msgstr:["Indtast dit navn"]},{msgid:"Existing version",msgstr:["Eksisterende version"]},{msgid:"Failed to set nickname.",msgstr:["Forsøg på at gemme kaldenavn mislykkedes."]},{msgid:"Favorites",msgstr:["Favoritter"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Filer og mapper, du markerer som foretrukne, vises her."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Filer og mapper, du for nylig har ændret, vises her."]},{msgid:"Filter file list",msgstr:["Filtrer fil liste"]},{msgid:"Folder name cannot be empty.",msgstr:["Mappenavnet må ikke være tomt."]},{msgid:"Guest identification",msgstr:["Gæsteidentifikation"]},{msgid:"Home",msgstr:["Hjem"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Hvis du vælger begge versioner, vil den indkommende fil have et nummer tilføjet til sit navn."]},{msgid:"Invalid name.",msgstr:["Ugyldigt navn."]},{msgid:"Last modified date unknown",msgstr:["Senest ændret dato ukendt"]},{msgid:"Modified",msgstr:["Ændret"]},{msgid:"Move",msgstr:["Flyt"]},{msgid:"Move to {target}",msgstr:["Flyt til {target}"]},{msgid:"Name",msgstr:["Navn"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Navne kan højst være 64 tegn lange."]},{msgid:"Names must not be empty.",msgstr:["Navne kan ikke være tomt."]},{msgid:'Names must not end with "{extension}".',msgstr:['Navne må ikke ende på "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Navne skal starte med et punktum."]},{msgid:"New",msgstr:["Ny"]},{msgid:"New folder",msgstr:["Ny mappe"]},{msgid:"New folder name",msgstr:["Ny mappe navn"]},{msgid:"New version",msgstr:["Ny version"]},{msgid:"No files in here",msgstr:["Ingen filer here"]},{msgid:"No files matching your filter were found.",msgstr:["Der blev ikke fundet nogen filer, der matcher dit filter."]},{msgid:"No matching files",msgstr:["Ingen matchende filer"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Indtast et navn med mindst 2 tegn."]},{msgid:"Recent",msgstr:["Seneste"]},{msgid:"Select all checkboxes",msgstr:["Markér alle afkrydsningsfelter"]},{msgid:"Select all entries",msgstr:["Vælg alle poster"]},{msgid:"Select all existing files",msgstr:["Vælg alle eksisterende filer"]},{msgid:"Select all new files",msgstr:["Vælg alle nye filer"]},{msgid:"Select entry",msgstr:["Vælg post"]},{msgid:"Select the row for {nodename}",msgstr:["Vælg rækken for {nodenavn}"]},{msgid:"Size",msgstr:["Størelse"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Spring %n fil over","Spring %n filer over"]},{msgid:"Skip this file",msgstr:["Spring denne fil over"]},{msgid:"Submit name",msgstr:["Indsend navn"]},{msgid:"Undo",msgstr:["Fortryd"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Upload noget indhold eller synkroniser med dine enheder!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Når en indkommende mappe er valgt, vil eventuelle modstridende filer i det også blive overskrevet."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Når en indkommende mappe er valgt, er indholdet skrevet ind i den eksisterende mappe og en rekursiv konfliktløsning udføres."]},{msgid:"Which files do you want to keep?",msgstr:["Hvilke filer vil du have?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Du er i øjeblikket identificeret som {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Du er ikke identificeret."]},{msgid:"You cannot leave the name empty.",msgstr:["Du kan ikke efterlade navnet tomt."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Du skal vælge mindst én konfliktløsning"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du skal vælge mindst én version af hver fil for at fortsætte."]}]},{language:"de",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" ist innerhalb eines Ordnernamens nicht zulässig.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" ist innerhalb eines Namens nicht zulässig.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" ist kein zulässiger Name.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" ist ein reservierter Name und nicht zulässig für Ordnernamen.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" ist ein reservierter Name und nicht zulässig.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n Dateikonflikt","%n Dateikonflikte"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n Dateikonflikt in {dirname}","%n Dateikonflikte in {dirname}"]},{msgid:"All files",msgstr:["Alle Dateien"]},{msgid:"Cancel",msgstr:["Abbrechen"]},{msgid:"Cancel the entire operation",msgstr:["Den gesamten Vorgang abbrechen"]},{msgid:"Choose",msgstr:["Auswählen"]},{msgid:"Choose {file}",msgstr:["{file} auswählen"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["%n Datei auswählen","%n Dateien auswählen"]},{msgid:"Confirm",msgstr:["Bestätigen"]},{msgid:"Continue",msgstr:["Fortsetzen"]},{msgid:"Copy",msgstr:["Kopieren"]},{msgid:"Copy to {target}",msgstr:["Nach {target} kopieren"]},{msgid:"Could not create the new folder",msgstr:["Der neue Ordner konnte nicht erstellt werden"]},{msgid:"Could not load files settings",msgstr:["Dateieinstellungen konnten nicht geladen werden"]},{msgid:"Could not load files views",msgstr:["Dateiansichten konnten nicht geladen werden"]},{msgid:"Create directory",msgstr:["Verzeichnis erstellen"]},{msgid:"Current view selector",msgstr:["Aktuelle Ansichtsauswahl"]},{msgid:"Enter your name",msgstr:["Gib deinen Namen ein"]},{msgid:"Existing version",msgstr:["Vorhandene Version"]},{msgid:"Failed to set nickname.",msgstr:["Spitzname konnte nicht gespeichert werden."]},{msgid:"Favorites",msgstr:["Favoriten"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Dateien und Ordner, die du als Favorit markierst, werden hier angezeigt."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Dateien und Ordner, die du kürzlich geändert hast, werden hier angezeigt."]},{msgid:"Filter file list",msgstr:["Dateiliste filtern"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Ordnernamen dürfen nicht mit "{extension}" enden.']},{msgid:"Guest identification",msgstr:["Gast-Identifikation"]},{msgid:"Home",msgstr:["Home"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Wenn beide Versionen ausgewählt werden, wird dem Namen der eingehenden Datei eine Nummer hinzugefügt."]},{msgid:"Invalid folder name.",msgstr:["Ungültiger Ordnername."]},{msgid:"Invalid name.",msgstr:["Ungültiger Name."]},{msgid:"Last modified date unknown",msgstr:["Datum der letzten Änderung unbekannt"]},{msgid:"Modified",msgstr:["Geändert"]},{msgid:"Move",msgstr:["Verschieben"]},{msgid:"Move to {target}",msgstr:["Nach {target} verschieben"]},{msgid:"Name",msgstr:["Name"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Namen dürfen maximal 64 Zeichen lang sein."]},{msgid:"Names must not be empty.",msgstr:["Namen dürfen nicht leer sein."]},{msgid:'Names must not end with "{extension}".',msgstr:['Namen dürfen nicht mit "{extension}" enden.']},{msgid:"Names must not start with a dot.",msgstr:["Namen dürfen nicht mit einem Punkt beginnen."]},{msgid:"New",msgstr:["Neu"]},{msgid:"New folder",msgstr:["Neuer Ordner"]},{msgid:"New folder name",msgstr:["Neuer Ordnername"]},{msgid:"New version",msgstr:["Neue Version"]},{msgid:"No files in here",msgstr:["Hier sind keine Dateien"]},{msgid:"No files matching your filter were found.",msgstr:["Es wurden keine Dateien gefunden, die deinem Filter entsprechen."]},{msgid:"No matching files",msgstr:["Keine passenden Dateien"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Bitte einen Namen mit mindestens zwei Zeichen eingeben."]},{msgid:"Recent",msgstr:["Neueste"]},{msgid:"Select all checkboxes",msgstr:["Alle Kontrollkästchen aktivieren"]},{msgid:"Select all entries",msgstr:["Alle Einträge auswählen"]},{msgid:"Select all existing files",msgstr:["Alle vorhandenen Dateien auswählen"]},{msgid:"Select all new files",msgstr:["Alle neuen Dateien auswählen"]},{msgid:"Select entry",msgstr:["Eintrag auswählen"]},{msgid:"Select the row for {nodename}",msgstr:["Die Zeile für {nodename} auswählen."]},{msgid:"Size",msgstr:["Größe"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n Datei überspringen","%n Dateien überspringen"]},{msgid:"Skip this file",msgstr:["Diese Datei überspringen"]},{msgid:"Submit name",msgstr:["Namen senden"]},{msgid:"Undo",msgstr:["Rückgängig machen"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Lade Inhalte hoch oder synchronisiere diese mit deinen Geräten!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Wenn ein eingehender Ordner ausgewählt wird, werden auch alle darin enthaltenen Dateien mit Konflikten überschrieben."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Bei Auswahl eines eingehenden Ordners wird der Inhalt in den vorhandenen Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt."]},{msgid:"Which files do you want to keep?",msgstr:["Welche Dateien sollen behalten werden?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Du bist derzeit als {nickname} identifiziert."]},{msgid:"You are currently not identified.",msgstr:["Du bist momentan nicht identifiziert."]},{msgid:"You cannot leave the name empty.",msgstr:["Du kannst den Namen nicht leer lassen."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Es muss mindestens eine Konfliktlösung gewählt werden"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Es muss mindestens eine Version jeder Datei ausgewählt werden, um fortzufahren."]}]},{language:"de_DE",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" ist innerhalb eines Ordnernamens nicht zulässig.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" ist innerhalb eines Namens nicht zulässig.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" ist kein zulässiger Name.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" ist ein reservierter Name und nicht zulässig für Ordnernamen.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" ist ein reservierter Name und nicht zulässig.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n Dateikonflikt","%n Dateikonflikte"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n Dateikonflikt in {dirname}","%n Dateikonflikte in {dirname}"]},{msgid:"All files",msgstr:["Alle Dateien"]},{msgid:"Cancel",msgstr:["Abbrechen"]},{msgid:"Cancel the entire operation",msgstr:["Den gesamten Vorgang abbrechen"]},{msgid:"Choose",msgstr:["Auswählen"]},{msgid:"Choose {file}",msgstr:["{file} auswählen"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["%n Datei auswählen","%n Dateien auswählen"]},{msgid:"Confirm",msgstr:["Bestätigen"]},{msgid:"Continue",msgstr:["Fortsetzen"]},{msgid:"Copy",msgstr:["Kopieren"]},{msgid:"Copy to {target}",msgstr:["Nach {target} kopieren"]},{msgid:"Could not create the new folder",msgstr:["Der neue Ordner konnte nicht erstellt werden"]},{msgid:"Could not load files settings",msgstr:["Dateieinstellungen konnten nicht geladen werden"]},{msgid:"Could not load files views",msgstr:["Dateiansichten konnten nicht geladen werden"]},{msgid:"Create directory",msgstr:["Verzeichnis erstellen"]},{msgid:"Current view selector",msgstr:["Aktuelle Ansichtsauswahl"]},{msgid:"Enter your name",msgstr:["Geben Sie Ihren Namen ein"]},{msgid:"Existing version",msgstr:["Vorhandene Version"]},{msgid:"Failed to set nickname.",msgstr:["Spitzname konnte nicht gespeichert werden."]},{msgid:"Favorites",msgstr:["Favoriten"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Dateien und Ordner, die Sie als Favorit markieren, werden hier angezeigt."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Dateien und Ordner, die Sie kürzlich geändert haben, werden hier angezeigt."]},{msgid:"Filter file list",msgstr:["Dateiliste filtern"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Ordnernamen dürfen nicht mit "{extension}" enden.']},{msgid:"Guest identification",msgstr:["Gast-Identifikation"]},{msgid:"Home",msgstr:["Home"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Wenn beide Versionen ausgewählt werden, wird dem Namen der eingehenden Datei eine Nummer hinzugefügt."]},{msgid:"Invalid folder name.",msgstr:["Ungültiger Ordnername."]},{msgid:"Invalid name.",msgstr:["Ungültiger Name."]},{msgid:"Last modified date unknown",msgstr:["Datum der letzten Änderung unbekannt"]},{msgid:"Modified",msgstr:["Geändert"]},{msgid:"Move",msgstr:["Verschieben"]},{msgid:"Move to {target}",msgstr:["Nach {target} verschieben"]},{msgid:"Name",msgstr:["Name"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Namen dürfen maximal 64 Zeichen lang sein."]},{msgid:"Names must not be empty.",msgstr:["Namen dürfen nicht leer sein."]},{msgid:'Names must not end with "{extension}".',msgstr:['Namen dürfen nicht mit "{extension}" enden.']},{msgid:"Names must not start with a dot.",msgstr:["Namen dürfen nicht mit einem Punkt beginnen."]},{msgid:"New",msgstr:["Neu"]},{msgid:"New folder",msgstr:["Neuer Ordner"]},{msgid:"New folder name",msgstr:["Neuer Ordnername"]},{msgid:"New version",msgstr:["Neue Version"]},{msgid:"No files in here",msgstr:["Hier sind keine Dateien"]},{msgid:"No files matching your filter were found.",msgstr:["Es wurden keine Dateien gefunden, die Ihrem Filter entsprechen."]},{msgid:"No matching files",msgstr:["Keine passenden Dateien"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Bitte einen Namen mit mindestens zwei Zeichen eingeben."]},{msgid:"Recent",msgstr:["Neueste"]},{msgid:"Select all checkboxes",msgstr:["Alle Kontrollkästchen aktivieren"]},{msgid:"Select all entries",msgstr:["Alle Einträge auswählen"]},{msgid:"Select all existing files",msgstr:["Alle vorhandenen Dateien auswählen"]},{msgid:"Select all new files",msgstr:["Alle neuen Dateien auswählen"]},{msgid:"Select entry",msgstr:["Eintrag auswählen"]},{msgid:"Select the row for {nodename}",msgstr:["Die Zeile für {nodename} auswählen."]},{msgid:"Size",msgstr:["Größe"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n Datei überspringen","%n Dateien überspringen"]},{msgid:"Skip this file",msgstr:["Diese Datei überspringen"]},{msgid:"Submit name",msgstr:["Namen senden"]},{msgid:"Undo",msgstr:["Rückgängig machen"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Laden Sie Inhalte hoch oder synchronisieren Sie diese mit Ihren Geräten!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Wenn ein eingehender Ordner ausgewählt wird, werden auch alle darin enthaltenen Dateien mit Konflikten überschrieben."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Bei Auswahl eines eingehenden Ordners wird der Inhalt in den vorhandenen Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt."]},{msgid:"Which files do you want to keep?",msgstr:["Welche Dateien sollen behalten werden?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Sie sind derzeit als {nickname} identifiziert."]},{msgid:"You are currently not identified.",msgstr:["Sie sind momentan nicht identifiziert."]},{msgid:"You cannot leave the name empty.",msgstr:["Sie können den Namen nicht leer lassen."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Es muss mindestens eine Konfliktlösung gewählt werden"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Es muss mindestens eine Version jeder Datei ausgewählt werden, um fortzufahren."]}]},{language:"el",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["Το «{char}» δεν επιτρέπεται μέσα σε όνομα φακέλου."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" δεν επιτρέπεται μέσα σε ένα όνομα.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" δεν είναι επιτρεπτό όνομα.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["Το «{segment}» είναι ένα δεσμευμένο όνομα και δεν επιτρέπεται για ονόματα φακέλων."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" είναι ένα δεσμευμένο όνομα και δεν επιτρέπεται.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n σύγκρουση αρχείου","%n σύγκρουση αρχείων"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n σύγκρουση αρχείου στο {dirname}","%n σύγκρουση αρχείων στο {dirname}"]},{msgid:"All files",msgstr:["Όλα τα αρχεία"]},{msgid:"Cancel",msgstr:["Ακύρωση"]},{msgid:"Cancel the entire operation",msgstr:["Ακύρωση όλης της διαδικασίας"]},{msgid:"Choose",msgstr:["Επιλογή"]},{msgid:"Choose {file}",msgstr:["Επιλέξτε {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Επιλέξτε %n αρχείο","Επιλέξτε %n αρχεία"]},{msgid:"Confirm",msgstr:["Επιβεβαίωση"]},{msgid:"Continue",msgstr:["Συνέχεια"]},{msgid:"Copy",msgstr:["Αντιγραφή"]},{msgid:"Copy to {target}",msgstr:["Αντιγραφή στο {target}"]},{msgid:"Could not create the new folder",msgstr:["Αδυναμία δημιουργίας νέου φακέλου"]},{msgid:"Could not load files settings",msgstr:["Αδυναμία φόρτωσης ρυθμίσεων αρχείων"]},{msgid:"Could not load files views",msgstr:["Αδυναμία φόρτωσης προβολών αρχείων"]},{msgid:"Create directory",msgstr:["Δημιουργία καταλόγου"]},{msgid:"Current view selector",msgstr:["Επιλογέας τρέχουσας προβολής"]},{msgid:"Enter your name",msgstr:["Εισάγετε το όνομά σας"]},{msgid:"Existing version",msgstr:["Υφιστάμενη έκδοση"]},{msgid:"Failed to set nickname.",msgstr:["Αποτυχία στην ρύθμιση του ψευδώνυμου."]},{msgid:"Favorites",msgstr:["Αγαπημένα"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Τα αρχεία και οι φάκελοι που επισημάνετε ως αγαπημένα θα εμφανίζονται εδώ."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Τα αρχεία και οι φάκελοι που τροποποιήσατε πρόσφατα θα εμφανίζονται εδώ."]},{msgid:"Filter file list",msgstr:["Φιλτράρισμα λίστας αρχείων"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["Τα ονόματα των φακέλων δεν πρέπει να τελειώνουν με «{extension}»."]},{msgid:"Guest identification",msgstr:["Ταυτοποίηση επισκέπτη"]},{msgid:"Home",msgstr:["Αρχική"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Εάν επιλέξετε και τις δύο εκδόσεις, στο όνομα του εισερχόμενου αρχείου θα προστεθεί ένας αριθμός."]},{msgid:"Invalid folder name.",msgstr:["Μη έγκυρο όνομα φακέλου."]},{msgid:"Invalid name.",msgstr:["Μη έγκυρο όνομα."]},{msgid:"Last modified date unknown",msgstr:["Άγνωστη ημερομηνία τελευταίας τροποποίησης"]},{msgid:"Modified",msgstr:["Τροποποιήθηκε"]},{msgid:"Move",msgstr:["Μετακίνηση"]},{msgid:"Move to {target}",msgstr:["Μετακίνηση στο {target}"]},{msgid:"Name",msgstr:["Όνομα"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Τα ονόματα μπορούν να έχουν μέγιστο μήκος 64 χαρακτήρες."]},{msgid:"Names must not be empty.",msgstr:["Τα ονόματα δεν πρέπει να είναι κενά."]},{msgid:'Names must not end with "{extension}".',msgstr:['Τα ονόματα δεν πρέπει να τελειώνουν με "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Τα ονόματα δεν πρέπει να ξεκινούν με τελεία."]},{msgid:"New",msgstr:["Νέο"]},{msgid:"New folder",msgstr:["Νέος φάκελος"]},{msgid:"New folder name",msgstr:["Όνομα νέου φακέλου"]},{msgid:"New version",msgstr:["Νέα έκδοση"]},{msgid:"No files in here",msgstr:["Δεν υπάρχουν αρχεία εδώ"]},{msgid:"No files matching your filter were found.",msgstr:["Δεν βρέθηκαν αρχεία που να ταιριάζουν με το φίλτρο σας."]},{msgid:"No matching files",msgstr:["Κανένα αρχείο δεν ταιριάζει"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Παρακαλώ εισάγετε ένα όνομα με τουλάχιστον 2 χαρακτήρες."]},{msgid:"Recent",msgstr:["Πρόσφατα"]},{msgid:"Select all checkboxes",msgstr:["Επιλέξτε όλα τα πλαίσια ελέγχου"]},{msgid:"Select all entries",msgstr:["Επιλογή όλων των καταχωρήσεων"]},{msgid:"Select all existing files",msgstr:["Επιλογή όλων των υπάρχοντων αρχείων"]},{msgid:"Select all new files",msgstr:["Επιλογή όλων των νέων αρχείων"]},{msgid:"Select entry",msgstr:["Επιλογή εγγραφής"]},{msgid:"Select the row for {nodename}",msgstr:["Επιλέξτε τη γραμμή για το {nodename}"]},{msgid:"Size",msgstr:["Μέγεθος"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Παράλειψη ενός αρχείου","Παράλειψη %n αρχείων"]},{msgid:"Skip this file",msgstr:["Παράλειψη αυτού το αρχείου"]},{msgid:"Submit name",msgstr:["Υποβολή ονόματος"]},{msgid:"Undo",msgstr:["Αναίρεση"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Ανεβάστε κάποιο περιεχόμενο ή συγχρονίστε με τις συσκευές σας!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Όταν επιλέγεται ένας φάκελος εισερχομένων, όλα τα αρχεία που βρίσκονται σε σύγκρουση μέσα σε αυτόν θα αντικατασταθούν επίσης."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Όταν επιλέγεται ένας φάκελος εισερχομένων, το περιεχόμενο εγγράφεται στον υπάρχοντα φάκελο και εκτελείται μια αναδρομική επίλυση σύγκρουσης."]},{msgid:"Which files do you want to keep?",msgstr:["Ποια αρχεία θέλετε να διατηρήσετε;"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Αυτή τη στιγμή έχετε αναγνωριστεί ως {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Δεν έχετε ταυτοποιηθεί."]},{msgid:"You cannot leave the name empty.",msgstr:["Δεν μπορείτε να αφήσετε το όνομα κενό."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Πρέπει να επιλέξετε τουλάχιστον μία λύση σύγκρουσης"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Πρέπει να επιλέξετε τουλάχιστον μία έκδοση από κάθε αρχείο για να συνεχίσετε."]}]},{language:"en_GB",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" is not allowed inside a folder name.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" is not allowed inside a name.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" is not an allowed name.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" is a reserved name and cannot be used for folder names.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" is a reserved name and not allowed.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n file conflict","%n files conflict"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n file conflict in {dirname}","%n file conflicts in {dirname}"]},{msgid:"All files",msgstr:["All files"]},{msgid:"Cancel",msgstr:["Cancel"]},{msgid:"Cancel the entire operation",msgstr:["Cancel the entire operation"]},{msgid:"Choose",msgstr:["Choose"]},{msgid:"Choose {file}",msgstr:["Choose {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Choose %n file","Choose %n files"]},{msgid:"Confirm",msgstr:["Confirm"]},{msgid:"Continue",msgstr:["Continue"]},{msgid:"Copy",msgstr:["Copy"]},{msgid:"Copy to {target}",msgstr:["Copy to {target}"]},{msgid:"Could not create the new folder",msgstr:["Could not create the new folder"]},{msgid:"Could not load files settings",msgstr:["Could not load files settings"]},{msgid:"Could not load files views",msgstr:["Could not load files views"]},{msgid:"Create directory",msgstr:["Create directory"]},{msgid:"Current view selector",msgstr:["Current view selector"]},{msgid:"Enter your name",msgstr:["Enter your name"]},{msgid:"Existing version",msgstr:["Existing version"]},{msgid:"Failed to set nickname.",msgstr:["Failed to set nickname."]},{msgid:"Favorites",msgstr:["Favourites"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Files and folders you mark as favourite will show up here."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Files and folders you recently modified will show up here."]},{msgid:"Filter file list",msgstr:["Filter file list"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Folder names must not end with "{extension}".']},{msgid:"Guest identification",msgstr:["Guest identification"]},{msgid:"Home",msgstr:["Home"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["If you select both versions, the incoming file will have a number added to its name."]},{msgid:"Invalid folder name.",msgstr:["Invalid folder name."]},{msgid:"Invalid name.",msgstr:["Invalid name."]},{msgid:"Last modified date unknown",msgstr:["Last modified date unknown"]},{msgid:"Modified",msgstr:["Modified"]},{msgid:"Move",msgstr:["Move"]},{msgid:"Move to {target}",msgstr:["Move to {target}"]},{msgid:"Name",msgstr:["Name"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Names may be at most 64 characters long."]},{msgid:"Names must not be empty.",msgstr:["Names must not be empty."]},{msgid:'Names must not end with "{extension}".',msgstr:['Names must not end with "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Names must not start with a dot."]},{msgid:"New",msgstr:["New"]},{msgid:"New folder",msgstr:["New folder"]},{msgid:"New folder name",msgstr:["New folder name"]},{msgid:"New version",msgstr:["New version"]},{msgid:"No files in here",msgstr:["No files in here"]},{msgid:"No files matching your filter were found.",msgstr:["No files matching your filter were found."]},{msgid:"No matching files",msgstr:["No matching files"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Please enter a name with at least 2 characters."]},{msgid:"Recent",msgstr:["Recent"]},{msgid:"Select all checkboxes",msgstr:["Select all checkboxes"]},{msgid:"Select all entries",msgstr:["Select all entries"]},{msgid:"Select all existing files",msgstr:["Select all existing files"]},{msgid:"Select all new files",msgstr:["Select all new files"]},{msgid:"Select entry",msgstr:["Select entry"]},{msgid:"Select the row for {nodename}",msgstr:["Select the row for {nodename}"]},{msgid:"Size",msgstr:["Size"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Skip %n file","Skip %n files"]},{msgid:"Skip this file",msgstr:["Skip this file"]},{msgid:"Submit name",msgstr:["Submit name"]},{msgid:"Undo",msgstr:["Undo"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Upload some content or sync with your devices!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["When an incoming folder is selected, any conflicting files within it will also be overwritten."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed."]},{msgid:"Which files do you want to keep?",msgstr:["Which files do you want to keep?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["You are currently identified as {nickname}."]},{msgid:"You are currently not identified.",msgstr:["You are currently not identified."]},{msgid:"You cannot leave the name empty.",msgstr:["You cannot leave the name empty."]},{msgid:"You need to choose at least one conflict solution",msgstr:["You need to choose at least one conflict solution"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["You need to select at least one version of each file to continue."]}]},{language:"es",translations:[{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" no está permitido dentro de un nombre.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" no es un nombre permitido.']},{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" es un nombre de carpeta no válido.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" no es un nombre de carpeta permitido']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" es un nombre reservado y no está permitido.']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" no está permitido dentro del nombre de una carpeta.']},{msgid:"All files",msgstr:["Todos los archivos"]},{msgid:"Cancel",msgstr:["Cancelar"]},{msgid:"Choose",msgstr:["Seleccionar"]},{msgid:"Choose {file}",msgstr:["Seleccionar {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Elige %n archivo","Elige %n archivos","Seleccione %n archivos"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar a {target}"]},{msgid:"Could not create the new folder",msgstr:["No se pudo crear la nueva carpeta"]},{msgid:"Could not load files settings",msgstr:["No se pudieron cargar los ajustes de archivos"]},{msgid:"Could not load files views",msgstr:["No se pudieron cargar las vistas de los archivos"]},{msgid:"Create directory",msgstr:["Crear directorio"]},{msgid:"Current view selector",msgstr:["Selector de vista actual"]},{msgid:"Enter your name",msgstr:["Ingrese su nombre"]},{msgid:"Failed to set nickname.",msgstr:["Fallo al establecer apodo."]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Los archivos y carpetas que marque como favoritos aparecerán aquí."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Los archivos y carpetas que modificó recientemente aparecerán aquí."]},{msgid:"Filter file list",msgstr:["Filtrar lista de archivos"]},{msgid:"Folder name cannot be empty.",msgstr:["El nombre de la carpeta no puede estar vacío."]},{msgid:"Guest identification",msgstr:["Identificación de invitado"]},{msgid:"Home",msgstr:["Inicio"]},{msgid:"Invalid name.",msgstr:["Nombre inválido."]},{msgid:"Modified",msgstr:["Modificado"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover a {target}"]},{msgid:"Name",msgstr:["Nombre"]},{msgid:"Names must not be empty.",msgstr:["Los nombres no deben estar vacíos."]},{msgid:'Names must not end with "{extension}".',msgstr:['Los nombres no deben terminar con "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Los nombres no deben iniciar con un punto."]},{msgid:"New",msgstr:["Nuevo"]},{msgid:"New folder",msgstr:[" Nueva carpeta"]},{msgid:"New folder name",msgstr:["Nuevo nombre de carpeta"]},{msgid:"No files in here",msgstr:["No hay archivos aquí"]},{msgid:"No files matching your filter were found.",msgstr:["No se encontraron archivos que coincidiesen con su filtro."]},{msgid:"No matching files",msgstr:["No hay archivos coincidentes"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Por favor, ingrese un nombre con al menos 2 caracteres."]},{msgid:"Recent",msgstr:["Reciente"]},{msgid:"Select all entries",msgstr:["Seleccionar todas las entradas"]},{msgid:"Select entry",msgstr:["Seleccionar entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Seleccione la fila para {nodename}"]},{msgid:"Size",msgstr:["Tamaño"]},{msgid:"Submit name",msgstr:["Enviar nombre"]},{msgid:"Undo",msgstr:["Deshacer"]},{msgid:"Upload some content or sync with your devices!",msgstr:["¡Cargue algún contenido o sincronice con sus dispositivos!"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Ud. se encuentra identificado actualmente como {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Ud. no se encuentra identificado actualmente."]},{msgid:"You cannot leave the name empty.",msgstr:["No puede dejar el nombre vacío."]}]},{language:"es_AR",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" es un nombre de carpeta inválido.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" no es un nombre de carpeta permitido']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" no está permitido en el nombre de una carpeta.']},{msgid:"All files",msgstr:["Todos los archivos"]},{msgid:"Choose",msgstr:["Elegir"]},{msgid:"Choose {file}",msgstr:["Elija {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Elija %n archivo","Elija %n archivos","Elija %n archivos"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar a {target}"]},{msgid:"Could not create the new folder",msgstr:["No se pudo crear la nueva carpeta"]},{msgid:"Could not load files settings",msgstr:["No se pudo cargar la configuración de archivos"]},{msgid:"Could not load files views",msgstr:["No se pudieron cargar las vistas de los archivos"]},{msgid:"Create directory",msgstr:["Crear directorio"]},{msgid:"Current view selector",msgstr:["Selector de vista actual"]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Los archivos y carpetas que marque como favoritos aparecerán aquí."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Los archivos y carpetas que modificó recientemente aparecerán aquí."]},{msgid:"Filter file list",msgstr:["Filtrar lista de archivos"]},{msgid:"Folder name cannot be empty.",msgstr:["El nombre de la carpeta no puede estar vacío."]},{msgid:"Home",msgstr:["Inicio"]},{msgid:"Modified",msgstr:["Modificado"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover a {target}"]},{msgid:"Name",msgstr:["Nombre"]},{msgid:"New",msgstr:["Nuevo"]},{msgid:"New folder",msgstr:["Nueva carpeta"]},{msgid:"New folder name",msgstr:["Nombre de nueva carpeta"]},{msgid:"No files in here",msgstr:["No hay archivos aquí"]},{msgid:"No files matching your filter were found.",msgstr:["No se encontraron archivos que coincidan con su filtro."]},{msgid:"No matching files",msgstr:["No hay archivos coincidentes"]},{msgid:"Recent",msgstr:["Reciente"]},{msgid:"Select all entries",msgstr:["Seleccionar todas las entradas"]},{msgid:"Select entry",msgstr:["Seleccionar entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Seleccione la fila para {nodename}"]},{msgid:"Size",msgstr:["Tamaño"]},{msgid:"Undo",msgstr:["Deshacer"]},{msgid:"Upload some content or sync with your devices!",msgstr:["¡Cargue algún contenido o sincronice con sus dispositivos!"]}]},{language:"es_MX",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" no está permitido dentro de un nombre de carpeta']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" no está permitido dentro de un nombre']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" no es un nombre permitido']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" es un nombre reservado y no está permitido para nombres de carpetas']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" es un nombre reservado y no está permitido']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n conflicto de archivo","%n conflicto de archivos","%n conflicto de archivos"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n conflicto de archivo en {dirname}","%n conflictos de archivo en {dirname}","%n conflictos de archivo en {dirname}"]},{msgid:"All files",msgstr:["Todos los archivos"]},{msgid:"Cancel",msgstr:["Cancelar"]},{msgid:"Cancel the entire operation",msgstr:["Cancelar la operación completa"]},{msgid:"Choose",msgstr:["Seleccionar"]},{msgid:"Choose {file}",msgstr:["Seleccionar {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Seleccionar %n archivo","Seleccionar %n archivos","Seleccionar %n archivos"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Continue",msgstr:["Continuar"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar a {target}"]},{msgid:"Could not create the new folder",msgstr:["No se pudo crear la nueva carpeta"]},{msgid:"Could not load files settings",msgstr:["No se pudo cargar la configuración de archivos"]},{msgid:"Could not load files views",msgstr:["No se pudieron cargar las vistas de los archivos"]},{msgid:"Create directory",msgstr:["Crear carpeta"]},{msgid:"Current view selector",msgstr:["Selector de vista actual"]},{msgid:"Enter your name",msgstr:["Ingresa tu nombre"]},{msgid:"Existing version",msgstr:["Versión existente"]},{msgid:"Failed to set nickname.",msgstr:["No se pudo establecer el nickname"]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Los archivos y carpetas que marque como favoritos aparecerán aquí."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Los archivos y carpetas que modificó recientemente aparecerán aquí."]},{msgid:"Filter file list",msgstr:["Filtrar lista de archivos"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Los nombres para carpeta no deben terminar con "{extension}"']},{msgid:"Guest identification",msgstr:["Identificación de invitado"]},{msgid:"Home",msgstr:["Inicio"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Si seleccionas ambas versiones, se le agregará al archivo que se está descargando, un número a su nombre."]},{msgid:"Invalid folder name.",msgstr:["Nombre de carpeta no válido"]},{msgid:"Invalid name.",msgstr:["Nombre no válido"]},{msgid:"Last modified date unknown",msgstr:["Última fecha de modificación desconocida"]},{msgid:"Modified",msgstr:["Modificado"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover a {target}"]},{msgid:"Name",msgstr:["Nombre"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Los nombres pueden tener como máximo 64 caracteres."]},{msgid:"Names must not be empty.",msgstr:["Los nombres no deben estar vacíos."]},{msgid:'Names must not end with "{extension}".',msgstr:['Los nombres no deben terminar con "{extension}"']},{msgid:"Names must not start with a dot.",msgstr:["Los nombres no deben comenzar con un punto."]},{msgid:"New",msgstr:["Nuevo"]},{msgid:"New folder",msgstr:["Nueva carpeta"]},{msgid:"New folder name",msgstr:["Nombre de nueva carpeta"]},{msgid:"New version",msgstr:["Versión nueva"]},{msgid:"No files in here",msgstr:["No hay archivos aquí"]},{msgid:"No files matching your filter were found.",msgstr:["No se encontraron archivos que coincidan con su filtro."]},{msgid:"No matching files",msgstr:["No hay archivos coincidentes"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Por favor ingrese un nombre con al menos 2 caracteres."]},{msgid:"Recent",msgstr:["Reciente"]},{msgid:"Select all checkboxes",msgstr:["Seleccione todas las casillas de verificación"]},{msgid:"Select all entries",msgstr:["Seleccionar todas las entradas"]},{msgid:"Select all existing files",msgstr:["Seleccione todos los archivos que aparecen"]},{msgid:"Select all new files",msgstr:["Seleccione todos los archivos nuevos"]},{msgid:"Select entry",msgstr:["Seleccionar entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Seleccione la fila para {nodename}"]},{msgid:"Size",msgstr:["Tamaño"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Omitir %n archivo","Omitir %n archivos","Omitir %n archivos"]},{msgid:"Skip this file",msgstr:["Omitir este archivo"]},{msgid:"Submit name",msgstr:["Enviar nombre"]},{msgid:"Undo",msgstr:["Deshacer"]},{msgid:"Upload some content or sync with your devices!",msgstr:["¡Suba algún contenido o sincronice con sus dispositivos!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Cuando se selecciona una carpeta en descarga, cualquier archivo conflictivo que contenga también se sobrescribirá."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Cuando se selecciona una carpeta en descarga, el contenido se escribe en la carpeta existente y se realiza una resolución de conflicto recursiva."]},{msgid:"Which files do you want to keep?",msgstr:["¿Qué archivos deseas conservar?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Actualmente estás identificado como {nickname}"]},{msgid:"You are currently not identified.",msgstr:["No estás identificado actualmente."]},{msgid:"You cannot leave the name empty.",msgstr:["No puedes dejar el nombre vacío."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Necesitas elegir al menos una solución al conflicto."]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Necesitas seleccionar al menos una versión de cada archivo para continuar."]}]},{language:"et_EE",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["„{char}“ pole kausta nimes lubatud."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["„{char}“ pole nimes lubatud."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["„{extension}“ pole lubatud nimi."]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["„{segment}“ on reserveeritud nimi ja pole kausta nimes lubatud."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["„{segment}“ on reserveeritud nimi ja pole kasutamiseks lubatud."]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n fail on vastuolus","%n faili on omavahel vastuolus"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n fail on {dirname} kaustas vastuolus","%n faili on omavahel {dirname} kaustas vastuolus"]},{msgid:"All files",msgstr:["Kõik failid"]},{msgid:"Cancel",msgstr:["Katkesta"]},{msgid:"Cancel the entire operation",msgstr:["Katkesta kogu tegevus"]},{msgid:"Choose",msgstr:["Tee valik"]},{msgid:"Choose {file}",msgstr:["Vali {file} fail"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Vali %n fail","Vali %n faili"]},{msgid:"Confirm",msgstr:["Kinnita"]},{msgid:"Continue",msgstr:["Jätka"]},{msgid:"Copy",msgstr:["Kopeeri"]},{msgid:"Copy to {target}",msgstr:["Kopeeri sihtkohta „{target}“"]},{msgid:"Could not create the new folder",msgstr:["Uut kausta ei saanud luua"]},{msgid:"Could not load files settings",msgstr:["Failide seadistusi ei õnnestunud laadida"]},{msgid:"Could not load files views",msgstr:["Failide vaatamiskordi ei õnnestunud laadida"]},{msgid:"Create directory",msgstr:["Loo kaust"]},{msgid:"Current view selector",msgstr:["Praeguse vaate valija"]},{msgid:"Enter your name",msgstr:["Sisesta oma nimi"]},{msgid:"Existing version",msgstr:["Olemasolev versioon"]},{msgid:"Failed to set nickname.",msgstr:["Hüüdnime ei õnnestunud lisada"]},{msgid:"Favorites",msgstr:["Lemmikud"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Failid ja kaustad, mida märgistad lemmikuks, kuvatakse siin."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Siin kuvatakse hiljuti muudetud failid ja kaustad."]},{msgid:"Filter file list",msgstr:["Filtreeri faililoendit"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["Kausta nime lõpus ei tohi olla „{extension}“."]},{msgid:"Guest identification",msgstr:["Külalise tuvastamine"]},{msgid:"Home",msgstr:["Avaleht"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Kui valid mõlemad versioonid, siis uue faili nimele lisatakse number."]},{msgid:"Invalid folder name.",msgstr:["Vigane kausta nimi."]},{msgid:"Invalid name.",msgstr:["Vigane nimi."]},{msgid:"Last modified date unknown",msgstr:["Viimase muutmise kuupäev pole teada"]},{msgid:"Modified",msgstr:["Muudetud"]},{msgid:"Move",msgstr:["Teisalda"]},{msgid:"Move to {target}",msgstr:["Teisalda kausta „{target}“"]},{msgid:"Name",msgstr:["Nimi"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Nimed võivad olla vaid kuni 64 tähemärki pikad."]},{msgid:"Names must not be empty.",msgstr:["Nimi ei saa olla tühi."]},{msgid:'Names must not end with "{extension}".',msgstr:["Nime lõpus ei tohi olla „{extension}“."]},{msgid:"Names must not start with a dot.",msgstr:["Nime alguses ei tohi olla punkt."]},{msgid:"New",msgstr:["Uus"]},{msgid:"New folder",msgstr:["Uus kaust"]},{msgid:"New folder name",msgstr:["Uue kausta nimi"]},{msgid:"New version",msgstr:["Uus versioon"]},{msgid:"No files in here",msgstr:["Siin puuduvad failid"]},{msgid:"No files matching your filter were found.",msgstr:["Sinu filtrile vastavaid faile ei leidunud."]},{msgid:"No matching files",msgstr:["Puuduvad sobivad failid"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Palun sisesta vähemalt 2 tähemärki pikk nimi."]},{msgid:"Recent",msgstr:["Hiljutine"]},{msgid:"Select all checkboxes",msgstr:["Vali kõik märkeruudud"]},{msgid:"Select all entries",msgstr:["Vali kõik kirjed"]},{msgid:"Select all existing files",msgstr:["Vali kõik olemasolevad failid"]},{msgid:"Select all new files",msgstr:["Vali kõik uued failid"]},{msgid:"Select entry",msgstr:["Vali kirje"]},{msgid:"Select the row for {nodename}",msgstr:["Vali rida „{nodename}“ jaoks"]},{msgid:"Size",msgstr:["Suurus"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Jäta %n fail vahele","Jäta %n faili vahele"]},{msgid:"Skip this file",msgstr:["Jäta see fail vahele"]},{msgid:"Submit name",msgstr:["Lisa nimi"]},{msgid:"Undo",msgstr:["Tühista"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Lisa mingit sisu või sünkrooni see oma seadmetest!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Kui uute failide kaust on valitud, siis kõik seal leiduvad vastuolus failid saavad üle kirjutatud."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Kui uute failide kaust on valitud, siis sisu kirjutatakse olemasolevasse kausta ja korraldatakse rekursiivne failikonfliktide lahendamine."]},{msgid:"Which files do you want to keep?",msgstr:["Missugused failid tahaksid alles jätta?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Sa oled hetkel tuvastatav kui {nickname}.."]},{msgid:"You are currently not identified.",msgstr:["Sa oled hetkel tuvastamata."]},{msgid:"You cannot leave the name empty.",msgstr:["Sa ei saa jätte nime tühjaks."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Sa pead valima vähemalt ühe failikonflikti lahenduse."]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Jätkamaks pead valima igast failist vähemalt ühe versiooni."]}]},{language:"fa",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["{name} نام پوشه معتبر نیست"]},{msgid:'"{name}" is not an allowed folder name',msgstr:["{name} نام پوشه مجاز نیست"]},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" نمی‌تواند در نام پوشه استفاده شود.']},{msgid:"All files",msgstr:["همه فایل‌ها"]},{msgid:"Cancel",msgstr:["لغو"]},{msgid:"Choose",msgstr:["انتخاب"]},{msgid:"Choose {file}",msgstr:["انتخاب {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["انتخاب %n فایل","انتخاب %n فایل"]},{msgid:"Copy",msgstr:["رونوشت"]},{msgid:"Copy to {target}",msgstr:["رونوشت از {target}"]},{msgid:"Could not create the new folder",msgstr:["پوشه جدید ایجاد نشد"]},{msgid:"Could not load files settings",msgstr:["تنظیمات فایل باز نشد"]},{msgid:"Could not load files views",msgstr:["نمای فایل‌ها بارگیری نشد"]},{msgid:"Create directory",msgstr:["ایجاد فهرست"]},{msgid:"Current view selector",msgstr:["انتخابگر نماگر فعلی"]},{msgid:"Enter your name",msgstr:["نام خود را وارد کنید"]},{msgid:"Failed to set nickname.",msgstr:["تنظیم نام مستعار ناموفق بود."]},{msgid:"Favorites",msgstr:["علایق"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["فایل‌ها و پوشه‌هایی که به‌عنوان مورد علاقه علامت‌گذاری می‌کنید در اینجا نشان داده می‌شوند."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["فایل‌ها و پوشه‌هایی که اخیراً تغییر داده‌اید در اینجا نمایش داده می‌شوند."]},{msgid:"Filter file list",msgstr:["فیلتر لیست فایل"]},{msgid:"Folder name cannot be empty.",msgstr:["نام پوشه نمی تواند خالی باشد."]},{msgid:"Guest identification",msgstr:["شناسایی مهمان"]},{msgid:"Home",msgstr:["خانه"]},{msgid:"Modified",msgstr:["اصلاح شده"]},{msgid:"Move",msgstr:["انتقال"]},{msgid:"Move to {target}",msgstr:["انتقال به {target}"]},{msgid:"Name",msgstr:["نام"]},{msgid:"New",msgstr:["جدید"]},{msgid:"New folder",msgstr:["پوشه جدید"]},{msgid:"New folder name",msgstr:["نام پوشه جدید"]},{msgid:"No files in here",msgstr:["فایلی اینجا نیست"]},{msgid:"No files matching your filter were found.",msgstr:["هیچ فایلی مطابق با فیلتر شما یافت نشد."]},{msgid:"No matching files",msgstr:["فایل منطبقی وجود ندارد"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["لطفاً نامی با حداقل ۲ کاراکتر وارد کنید."]},{msgid:"Recent",msgstr:["اخیر"]},{msgid:"Select all entries",msgstr:["انتخاب همه ورودی ها"]},{msgid:"Select entry",msgstr:["انتخاب ورودی"]},{msgid:"Select the row for {nodename}",msgstr:["انتخاب ردیف برای {nodename}"]},{msgid:"Size",msgstr:["اندازه"]},{msgid:"Submit name",msgstr:["ارسال نام"]},{msgid:"Undo",msgstr:["بازگردانی"]},{msgid:"Upload some content or sync with your devices!",msgstr:["مقداری محتوا آپلود کنید یا با دستگاه های خود همگام سازی کنید!"]},{msgid:"You are currently not identified.",msgstr:["شما در حال حاضر شناسایی نشده‌اید."]},{msgid:"You cannot leave the name empty.",msgstr:["نمی‌توانید نام را خالی بگذارید."]}]},{language:"fi_FI",translations:[{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" ei ole sallittu nimessä.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" ei ole sallittu nimi.']},{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" on virheellinen kansion nimi.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" ei ole sallittu kansion nimi']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" on varattu nimi eikä se ole sallittu.']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" ei ole sallittu kansion nimessä.']},{msgid:"All files",msgstr:["Kaikki tiedostot"]},{msgid:"Cancel",msgstr:["Peruuta"]},{msgid:"Choose",msgstr:["Valitse"]},{msgid:"Choose {file}",msgstr:["Valitse {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Valitse %n tiedosto","Valitse %n tiedostoa"]},{msgid:"Copy",msgstr:["Kopioi"]},{msgid:"Copy to {target}",msgstr:["Kopioi sijaintiin {target}"]},{msgid:"Could not create the new folder",msgstr:["Uutta kansiota ei voitu luoda"]},{msgid:"Could not load files settings",msgstr:["Tiedoston asetuksia ei saa ladattua"]},{msgid:"Could not load files views",msgstr:["Tiedoston näkymiä ei saa ladattua"]},{msgid:"Create directory",msgstr:["Luo kansio"]},{msgid:"Current view selector",msgstr:["Nykyisen näkymän valinta"]},{msgid:"Enter your name",msgstr:["Kirjoita nimesi"]},{msgid:"Failed to set nickname.",msgstr:["Kutsumanimen asettaminen epäonnistui."]},{msgid:"Favorites",msgstr:["Suosikit"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Tiedostot ja kansiot, jotka merkitset suosikkeihisi, näkyvät täällä."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Tiedostot ja kansiot, joita muokkasit äskettäin, näkyvät täällä."]},{msgid:"Filter file list",msgstr:["Suodata tiedostolistaa"]},{msgid:"Folder name cannot be empty.",msgstr:["Kansion nimi ei voi olla tyhjä."]},{msgid:"Guest identification",msgstr:["Vieraan tunnistaminen"]},{msgid:"Home",msgstr:["Koti"]},{msgid:"Invalid name.",msgstr:["Virheellinen nimi."]},{msgid:"Modified",msgstr:["Muokattu"]},{msgid:"Move",msgstr:["Siirrä"]},{msgid:"Move to {target}",msgstr:["Siirrä sijaintiin {target}"]},{msgid:"Name",msgstr:["Nimi"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Nimissä voi olla enintään 64 merkkiä."]},{msgid:"Names must not be empty.",msgstr:["Nimet eivät saa olla tyhjiä."]},{msgid:'Names must not end with "{extension}".',msgstr:['Nimet eivät saa päättyä sanaan "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Nimet eivät saa alkaa pisteellä."]},{msgid:"New",msgstr:["Uusi"]},{msgid:"New folder",msgstr:["Uusi kansio"]},{msgid:"New folder name",msgstr:["Uuden kansion nimi"]},{msgid:"No files in here",msgstr:["Täällä ei ole tiedostoja"]},{msgid:"No files matching your filter were found.",msgstr:["Suodatinta vastaavia tiedostoja ei löytynyt."]},{msgid:"No matching files",msgstr:["Ei vastaavia tiedostoja"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Kirjoita vähintään kaksi merkkiä sisältävä nimi."]},{msgid:"Recent",msgstr:["Viimeisimmät"]},{msgid:"Select all entries",msgstr:["Valitse kaikki tietueet"]},{msgid:"Select entry",msgstr:["Valitse tietue"]},{msgid:"Select the row for {nodename}",msgstr:["Valitse rivi {nodename}:lle"]},{msgid:"Size",msgstr:["Koko"]},{msgid:"Submit name",msgstr:["Lähetä nimi"]},{msgid:"Undo",msgstr:["Kumoa"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Lähetä jotain sisältöä tai synkronoi laitteidesi kanssa!"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Sinut tunnetaan tällä hetkellä nimellä {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Sinua ei ole tunnistettu."]},{msgid:"You cannot leave the name empty.",msgstr:["Nimeä ei voi jättää tyhjäksi."]}]},{language:"fr",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:[`"{char}" n'est pas autorisé dans un nom de dossier.`]},{msgid:'"{char}" is not allowed inside a name.',msgstr:[`"{char}" n'est pas autorisé dans un nom.`]},{msgid:'"{extension}" is not an allowed name.',msgstr:[`"{extension}" n'est pas un nom autorisé.`]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:[`"{segment}" est un nom réservé et n'est pas autorisé pour un nom de dossier.`]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:[`"{segment}" est un nom réservé et n'est pas autorisé.`]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n conflit de fichier","%n conflit de fichiers","%n conflit de fichiers"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%nconflit de fichier dans {dirname}","%n conflit de fichiers dans {dirname}","%nconflit de fichiers dans {dirname}"]},{msgid:"All files",msgstr:["Tous les fichiers"]},{msgid:"Cancel",msgstr:["Annuler"]},{msgid:"Cancel the entire operation",msgstr:["Tout annuler "]},{msgid:"Choose",msgstr:["Choisir"]},{msgid:"Choose {file}",msgstr:["Choisir {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Choisir %n fichier","Choisir %n fichiers","Choisir %n fichiers "]},{msgid:"Confirm",msgstr:["Confirmer"]},{msgid:"Continue",msgstr:["Continuer"]},{msgid:"Copy",msgstr:["Copier"]},{msgid:"Copy to {target}",msgstr:["Copier vers {target}"]},{msgid:"Could not create the new folder",msgstr:["Impossible de créer le nouveau dossier"]},{msgid:"Could not load files settings",msgstr:["Les paramètres des fichiers n'ont pas pu être chargés"]},{msgid:"Could not load files views",msgstr:["Impossible de charger les vues des fichiers"]},{msgid:"Create directory",msgstr:["Créer un répertoire"]},{msgid:"Current view selector",msgstr:["Sélecteur d'affichage actuel"]},{msgid:"Enter your name",msgstr:["Entrez votre nom"]},{msgid:"Existing version",msgstr:["Version actuelle "]},{msgid:"Failed to set nickname.",msgstr:["Échec de définition du surnom."]},{msgid:"Favorites",msgstr:["Favoris"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Les fichiers et répertoires marqués en favoris apparaîtront ici."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Les fichiers et répertoires modifiés récemment apparaîtront ici."]},{msgid:"Filter file list",msgstr:["Filtrer la liste des fichiers"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Les noms de dossiers ne doivent pas se terminer par "{extension}".']},{msgid:"Guest identification",msgstr:["Identification d'invité"]},{msgid:"Home",msgstr:["Accueil"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Si vous conservez les deux versions, le fichier reçu sera renommé avec un numéro."]},{msgid:"Invalid folder name.",msgstr:["Nom de dossier invalide."]},{msgid:"Invalid name.",msgstr:["Nom invalide."]},{msgid:"Last modified date unknown",msgstr:["Date de modification inconnue"]},{msgid:"Modified",msgstr:["Modifié"]},{msgid:"Move",msgstr:["Déplacer"]},{msgid:"Move to {target}",msgstr:["Déplacer vers {target}"]},{msgid:"Name",msgstr:["Nom"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Les noms peuvent comporter au maximum 64 caractères."]},{msgid:"Names must not be empty.",msgstr:["Les noms ne peuvent pas être vides."]},{msgid:'Names must not end with "{extension}".',msgstr:['Les noms ne doivent pas se terminer par "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Les noms ne peuvent pas commencer par un point."]},{msgid:"New",msgstr:["Nouveau"]},{msgid:"New folder",msgstr:["Nouveau dossier"]},{msgid:"New folder name",msgstr:["Nom du nouveau dossier"]},{msgid:"New version",msgstr:["Nouvelle version"]},{msgid:"No files in here",msgstr:["Aucun fichier ici"]},{msgid:"No files matching your filter were found.",msgstr:["Aucun fichier trouvé correspondant à votre filtre."]},{msgid:"No matching files",msgstr:["Aucun fichier correspondant"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Veuillez entrer un nom avec au moins 2 caractères."]},{msgid:"Recent",msgstr:["Récents"]},{msgid:"Select all checkboxes",msgstr:["Sélectionner toutes les cases à cocher"]},{msgid:"Select all entries",msgstr:["Tout sélectionner"]},{msgid:"Select all existing files",msgstr:["Sélectionner tous les fichiers existants"]},{msgid:"Select all new files",msgstr:["Sélectionner tous les nouveaux fichiers"]},{msgid:"Select entry",msgstr:["Sélectionner une entrée"]},{msgid:"Select the row for {nodename}",msgstr:["Sélectionner la ligne correspondant à {nodename}"]},{msgid:"Size",msgstr:["Taille"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Ignorer %n fichier","Ignorer %n fichiers ","Ignorer %n fichiers "]},{msgid:"Skip this file",msgstr:["Ignorer ce fichier"]},{msgid:"Submit name",msgstr:["Envoyer le nom"]},{msgid:"Undo",msgstr:["Annuler"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Chargez du contenu ou synchronisez avec vos équipements !"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["En sélectionnant un dossier entrant, les fichiers en conflit qu’il contient seront automatiquement écrasés."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Lorsque vous sélectionnez un dossier entrant, son contenu est ajouté au dossier existant et les conflits sont résolus automatiquement."]},{msgid:"Which files do you want to keep?",msgstr:["Quels fichiers souhaitez-vous conserver ?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Vous êtes actuellement identifié comme {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Vous n'êtes pas identifié actuellement."]},{msgid:"You cannot leave the name empty.",msgstr:["Vous ne pouvez pas laisser le nom vide."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Vous devez choisir au moins une option pour résoudre le conflit"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Sélectionnez au moins une version de chaque fichier pour continuer."]}]},{language:"ga",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:[`Ní cheadaítear "{char}" laistigh d'ainm fillteáin.`]},{msgid:'"{char}" is not allowed inside a name.',msgstr:[`Ní cheadaítear "{char}" laistigh d'ainm.`]},{msgid:'"{extension}" is not an allowed name.',msgstr:['Ní ainm ceadaithe é "{extension}".']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:[`Is ainm curtha in áirithe é "{segment}" agus ní cheadaítear é d'ainmneacha fillteán.`]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['Is ainm curtha in áirithe é "{segment}" agus ní cheadaítear é.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n coimhlint comhaid","%n coimhlint comhad","%n coimhlint comhad","%n coimhlint comhad","%n coimhlint comhad"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n coimhlint comhaid i {dirname}","%n coimhlintí comhaid i {dirname}","%n coimhlintí comhaid i {dirname}","%n coimhlintí comhaid i {dirname}","%n coimhlintí comhaid i {dirname}"]},{msgid:"All files",msgstr:["Gach comhad"]},{msgid:"Cancel",msgstr:["Cealaigh"]},{msgid:"Cancel the entire operation",msgstr:["Cealaigh an oibríocht ar fad"]},{msgid:"Choose",msgstr:["Roghnaigh"]},{msgid:"Choose {file}",msgstr:["Roghnaigh {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Roghnaigh %n comhad","Roghnaigh %n comhaid","Roghnaigh %n comhaid","Roghnaigh %n comhaid","Roghnaigh %n comhaid"]},{msgid:"Confirm",msgstr:["Deimhnigh"]},{msgid:"Continue",msgstr:["Lean ar aghaidh"]},{msgid:"Copy",msgstr:["Cóip"]},{msgid:"Copy to {target}",msgstr:["Cóipeáil chuig {target}"]},{msgid:"Could not create the new folder",msgstr:["Níorbh fhéidir an fillteán nua a chruthú"]},{msgid:"Could not load files settings",msgstr:["Níorbh fhéidir socruithe comhaid a lódáil"]},{msgid:"Could not load files views",msgstr:["Níorbh fhéidir radhairc comhad a lódáil"]},{msgid:"Create directory",msgstr:["Cruthaigh eolaire"]},{msgid:"Current view selector",msgstr:["Roghnóir amhairc reatha"]},{msgid:"Enter your name",msgstr:["Cuir isteach d'ainm"]},{msgid:"Existing version",msgstr:["Leagan atá ann cheana féin"]},{msgid:"Failed to set nickname.",msgstr:["Theip ar leasainm a shocrú."]},{msgid:"Favorites",msgstr:["Ceanáin"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Taispeánfar comhaid agus fillteáin a mharcálann tú mar is fearr leat anseo."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Taispeánfar comhaid agus fillteáin a d'athraigh tú le déanaí anseo."]},{msgid:"Filter file list",msgstr:["Scag liosta comhad"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Ní féidir ainmneacha fillteán a chríochnú le "{extension}".']},{msgid:"Guest identification",msgstr:["Aitheantas aoi"]},{msgid:"Home",msgstr:["Baile"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Má roghnaíonn tú an dá leagan, cuirfear uimhir le hainm an chomhaid atá ag teacht isteach."]},{msgid:"Invalid folder name.",msgstr:["Ainm fillteáin neamhbhailí."]},{msgid:"Invalid name.",msgstr:["Ainm neamhbhailí."]},{msgid:"Last modified date unknown",msgstr:["Dáta an athraithe dheireanaigh anaithnid"]},{msgid:"Modified",msgstr:["Athraithe"]},{msgid:"Move",msgstr:["Bog"]},{msgid:"Move to {target}",msgstr:["Bog go{target}"]},{msgid:"Name",msgstr:["Ainm"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Ní fhéadfaidh ainmneacha a bheith níos mó ná 64 carachtar ar fhad."]},{msgid:"Names must not be empty.",msgstr:["Ní féidir ainmneacha a bheith folamh."]},{msgid:'Names must not end with "{extension}".',msgstr:['Ní féidir ainmneacha a chríochnú le "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Ní mór ainmneacha a bheith ag tosú le ponc."]},{msgid:"New",msgstr:["Nua"]},{msgid:"New folder",msgstr:["Fillteán nua"]},{msgid:"New folder name",msgstr:["Ainm fillteáin nua"]},{msgid:"New version",msgstr:["Leagan nua"]},{msgid:"No files in here",msgstr:["Níl aon chomhaid istigh anseo"]},{msgid:"No files matching your filter were found.",msgstr:["Níor aimsíodh aon chomhad a tháinig le do scagaire."]},{msgid:"No matching files",msgstr:["Gan comhaid meaitseála"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Cuir isteach ainm ina bhfuil 2 charachtar ar a laghad."]},{msgid:"Recent",msgstr:["le déanaí"]},{msgid:"Select all checkboxes",msgstr:["Roghnaigh na boscaí seiceála go léir"]},{msgid:"Select all entries",msgstr:["Roghnaigh gach iontráil"]},{msgid:"Select all existing files",msgstr:["Roghnaigh na comhaid uile atá ann cheana"]},{msgid:"Select all new files",msgstr:["Roghnaigh gach comhad nua"]},{msgid:"Select entry",msgstr:["Roghnaigh iontráil"]},{msgid:"Select the row for {nodename}",msgstr:["Roghnaigh an ró do {nodename}"]},{msgid:"Size",msgstr:["Méid"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Léim %n comhad","Léim %n comhaid","Léim %n comhaid","Léim %n comhaid","Léim %n comhaid"]},{msgid:"Skip this file",msgstr:["Scipeáil an comhad seo"]},{msgid:"Submit name",msgstr:["Cuir isteach ainm"]},{msgid:"Undo",msgstr:["Cealaigh"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Uaslódáil roinnt ábhair nó sioncronaigh le do ghléasanna!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Nuair a roghnaítear fillteán isteach, déanfar aon chomhaid choimhlinteacha ann a athscríobh freisin."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Nuair a roghnaítear fillteán isteach, scríobhtar an t-ábhar isteach sa fhillteán atá ann cheana féin agus déantar réiteach coinbhleachta athchúrsach."]},{msgid:"Which files do you want to keep?",msgstr:["Cé na comhaid ar mhaith leat a choinneáil?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Is é {nickname} an ainm atá ort faoi láthair."]},{msgid:"You are currently not identified.",msgstr:["Níl aitheantas tugtha duit faoi láthair."]},{msgid:"You cannot leave the name empty.",msgstr:["Ní féidir leat an t-ainm a fhágáil folamh."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Ní mór duit réiteach coinbhleachta amháin ar a laghad a roghnú"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Ní mór duit leagan amháin ar a laghad de gach comhad a roghnú le leanúint ar aghaidh."]}]},{language:"gl",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["«{char}» non está permitido no nome dun cartafol."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["«{char}» non está permitido dentro dun nome."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["«{extension}» non é un nome permitido."]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["«{segment}» é un nome reservado e non está permitido para nomes de cartafoles."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["«{segment}» é un nome reservado e non está permitido."]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n ficheiro en conflito","%n ficheiros en conflito"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n ficheiro en conflito en {dirname}","%n ficheiros en conflito en {dirname}"]},{msgid:"All files",msgstr:["Todos os ficheiros"]},{msgid:"Cancel",msgstr:["Cancelar"]},{msgid:"Cancel the entire operation",msgstr:["Cancelar toda a operación"]},{msgid:"Choose",msgstr:["Escoller"]},{msgid:"Choose {file}",msgstr:["Escoller {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Escoller %n ficheiro","Escoller %n ficheiros"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Continue",msgstr:["Continuar"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar en {target}"]},{msgid:"Could not create the new folder",msgstr:["Non foi posíbel crear o novo cartafol"]},{msgid:"Could not load files settings",msgstr:["Non foi posíbel cargar os axustes dos ficheiros"]},{msgid:"Could not load files views",msgstr:["Non foi posíbel cargar as vistas dos ficheiros"]},{msgid:"Create directory",msgstr:["Crear un directorio"]},{msgid:"Current view selector",msgstr:["Selector de vista actual"]},{msgid:"Enter your name",msgstr:["Introduza o seu nome"]},{msgid:"Existing version",msgstr:["Versión existente"]},{msgid:"Failed to set nickname.",msgstr:["Produciuse un fallo ao definir o alcume."]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Os ficheiros e cartafoles que marque como favoritos aparecerán aquí."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Os ficheiros e cartafoles que modificou recentemente aparecerán aquí."]},{msgid:"Filter file list",msgstr:["Filtrar a lista de ficheiros"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["Os nomes de cartafol non deben rematar en «{extension}»."]},{msgid:"Guest identification",msgstr:["Identificación do convidado"]},{msgid:"Home",msgstr:["Inicio"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Se selecciona ambas as versións, o ficheiro entrante terá un número engadido ao seu nome."]},{msgid:"Invalid folder name.",msgstr:["O nome de cartafol non é válido."]},{msgid:"Invalid name.",msgstr:["Nome incorrecto"]},{msgid:"Last modified date unknown",msgstr:["Data da última modificación descoñecida"]},{msgid:"Modified",msgstr:["Modificado"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover cara a {target}"]},{msgid:"Name",msgstr:["Nome"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Os nomes poden ter unha lonxitude máxima de 64 caracteres."]},{msgid:"Names must not be empty.",msgstr:["Os nomes non deben estar baleiros."]},{msgid:'Names must not end with "{extension}".',msgstr:["Os nomes non deben rematar en «{extension}»."]},{msgid:"Names must not start with a dot.",msgstr:["Os nomes non deben comezar cun punto."]},{msgid:"New",msgstr:["Novo"]},{msgid:"New folder",msgstr:["Novo cartafol"]},{msgid:"New folder name",msgstr:["Novo nome do cartafol"]},{msgid:"New version",msgstr:["Nova versión"]},{msgid:"No files in here",msgstr:["Aquí non hai ficheiros"]},{msgid:"No files matching your filter were found.",msgstr:["Non se atopou ningún ficheiro que coincida co filtro."]},{msgid:"No matching files",msgstr:["Non hai ficheiros coincidentes"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Introduza un nome con polo menos 2 caracteres."]},{msgid:"Recent",msgstr:["Recente"]},{msgid:"Select all checkboxes",msgstr:["Seleccionar todas as caixas"]},{msgid:"Select all entries",msgstr:["Seleccionar todas as entradas"]},{msgid:"Select all existing files",msgstr:["Seleccionar todos os ficheiros existentes"]},{msgid:"Select all new files",msgstr:["Seleccionar todos os ficheiros novos"]},{msgid:"Select entry",msgstr:["Seleccionar a entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Seleccionar a fila para {nodename}"]},{msgid:"Size",msgstr:["Tamaño"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Omitir %n ficheiro","Omitir %n ficheiros"]},{msgid:"Skip this file",msgstr:["Omitir este ficheiro"]},{msgid:"Submit name",msgstr:["Enviar o nome"]},{msgid:"Undo",msgstr:["Desfacer"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Enviar algún contido ou sincronizalo cos seus dispositivos!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Cando se selecciona un cartafol entrante, todos os ficheiros conflitivos dentro dela tamén serán sobrescritos."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Cando se selecciona un cartafol entrante, o contido escríbese no cartafol existente e realízase unha resolución recursiva de conflitos."]},{msgid:"Which files do you want to keep?",msgstr:["Que ficheiros quere conservar?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Vde. está identificado actualmente como {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Vde. non está identificado actualmente."]},{msgid:"You cannot leave the name empty.",msgstr:["Vde. non pode deixar o nome baleiro."]},{msgid:"You need to choose at least one conflict solution",msgstr:["É necesario escoller polo menos unha solución de conflito"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["É necesario seleccionar polo menos unha versión de cada ficheiro para continuar."]}]},{language:"hr",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["Znak „{char}” nije dopušten u nazivu mape."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["Znak „{char}” nije dopušten u nazivu."]},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" nije dopušten u nazivu.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" je rezervirana riječ i nije dopušten u nazivu mape.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" je rezervirana riječ i nije dopušten.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["Sukobljava se %n datoteka","Sukobljava se %n datoteke","Sukobljava se %n datoteke"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n sukob datoteka u {dirname}","%n sukoba datoteka u {dirname}","%n sukoba datoteka u {dirname}"]},{msgid:"All files",msgstr:["Sve datoteke"]},{msgid:"Cancel",msgstr:["Odustani"]},{msgid:"Cancel the entire operation",msgstr:["Odustani od cijele operacije"]},{msgid:"Choose",msgstr:["Odaberi"]},{msgid:"Choose {file}",msgstr:["Odaberi {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Odaberi %n datoteku","Odaberi %n datoteka","Odaberi %n datoteke"]},{msgid:"Confirm",msgstr:["Potvrdi"]},{msgid:"Continue",msgstr:["Nastavi"]},{msgid:"Copy",msgstr:["Kopiraj"]},{msgid:"Copy to {target}",msgstr:["Kopiraj u {target}"]},{msgid:"Could not create the new folder",msgstr:["Nije moguće stvoriti novu mapu"]},{msgid:"Could not load files settings",msgstr:["Nije moguće učitati postavke datoteka"]},{msgid:"Could not load files views",msgstr:["Nije moguće učitati prikaze datoteka"]},{msgid:"Create directory",msgstr:["Stvori mapu"]},{msgid:"Current view selector",msgstr:["Odabir trenutačnog prikaza"]},{msgid:"Enter your name",msgstr:["Unesite vaše ime"]},{msgid:"Existing version",msgstr:["Postojeća verzija"]},{msgid:"Failed to set nickname.",msgstr:["Neuspjelo postavljanje nadimka."]},{msgid:"Favorites",msgstr:["Favoriti"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Ovdje se prikazuju datoteke i mape koje ste označili kao favoriti."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Ovdje se prikazuju datoteke i mape koje ste nedavno ažurirali."]},{msgid:"Filter file list",msgstr:["Filtriranje liste datoteka"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Nazivi mapa ne smiju završiti sa "{extension}".']},{msgid:"Guest identification",msgstr:["Identifikacija gosta"]},{msgid:"Home",msgstr:["Naslovna"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ako odaberete obje verzije, dolaznoj datoteci bit će dodan broj u nazivu."]},{msgid:"Invalid folder name.",msgstr:["Neispavan naziv mape."]},{msgid:"Invalid name.",msgstr:["Neispravan naziv."]},{msgid:"Last modified date unknown",msgstr:["Nepoznat datum zadnjeg ažuriranja"]},{msgid:"Modified",msgstr:["Ažurirano"]},{msgid:"Move",msgstr:["Premjesti"]},{msgid:"Move to {target}",msgstr:["Premjesti u {target}"]},{msgid:"Name",msgstr:["Naziv"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Nazivi mogu imati najviše 64 znaka."]},{msgid:"Names must not be empty.",msgstr:["Nazivi ne smiju biti prazni."]},{msgid:'Names must not end with "{extension}".',msgstr:['Nazivi ne smiju završiti sa "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Nazivi ne smiju započinjati točkom."]},{msgid:"New",msgstr:["Novo"]},{msgid:"New folder",msgstr:["Nova mapa"]},{msgid:"New folder name",msgstr:["Novi naziv mape"]},{msgid:"New version",msgstr:["Nova verzija"]},{msgid:"No files in here",msgstr:["Ovdje nema datoteka"]},{msgid:"No files matching your filter were found.",msgstr:["Nisu pronađene datoteke koje odgovaraju vašem filtru."]},{msgid:"No matching files",msgstr:["Nema odgovarajućih datoteka."]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Unesite naziv s najmanje 2 znaka."]},{msgid:"Recent",msgstr:["Nedavno"]},{msgid:"Select all checkboxes",msgstr:["Označi sve potvrdne okvire"]},{msgid:"Select all entries",msgstr:["Označi sve stavke"]},{msgid:"Select all existing files",msgstr:["Označi sve postojeće datoteke"]},{msgid:"Select all new files",msgstr:["Označi sve nove datoteke"]},{msgid:"Select entry",msgstr:["Označi stavku"]},{msgid:"Select the row for {nodename}",msgstr:["Označi red za{nodename}"]},{msgid:"Size",msgstr:["Veličina"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Preskoči %n datoteku","Preskoči %n datoteke","Preskoči %n datoteke"]},{msgid:"Skip this file",msgstr:["Preskoči ovu datoteku"]},{msgid:"Submit name",msgstr:["Pošalji naziv"]},{msgid:"Undo",msgstr:["Poništi"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Prenesite neki sadržaj ili sinkronizirajte sa svojim uređajima!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Kada je odabrana dolazna mapa, sve datoteke unutar nje koje su u sukobu također će biti prepisane."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Kada je odabrana dolazna mapa, sadržaj se upisuje u postojeću mapu i provodi se rekurzivno rješavanje sukoba."]},{msgid:"Which files do you want to keep?",msgstr:["Koje datoteke želite zadržati?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Trenutno ste identificirani kao {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Trenutno niste identificirani."]},{msgid:"You cannot leave the name empty.",msgstr:["Ne možete ostaviti naziv prazan."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Morate odabrati barem jedno rješenje sukoba"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Morate odabrati barem jednu verziju svake datoteke kako biste nastavili."]}]},{language:"hu_HU",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["A(z) „{char}” nem engedélyezett egy mappanévben."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["A(z) „{char}” nem engedélyezett egy névben."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["A(z) „{extension}” nem engedélyezett név."]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["A(z) „{segment}” foglalt név, és nem engedélyezett a mappanevekben."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["A(z) „{segment}” foglalt név, és nem engedélyezett."]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n ütköző fájl","%n ütköző fájl"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n ütköző fájl ebben: {dirname}","%n ütköző fájl ebben: {dirname}"]},{msgid:"All files",msgstr:["Összes fájl"]},{msgid:"Cancel",msgstr:["Mégse"]},{msgid:"Cancel the entire operation",msgstr:["Egész művelet megszakítása"]},{msgid:"Choose",msgstr:["Kiválasztás"]},{msgid:"Choose {file}",msgstr:["{file} kiválasztása"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["%n fájl kiválasztása","%n fájl kiválasztása"]},{msgid:"Confirm",msgstr:["Megerősítés"]},{msgid:"Continue",msgstr:["Folytatás"]},{msgid:"Copy",msgstr:["Másolás"]},{msgid:"Copy to {target}",msgstr:["Másolás ide: {target}"]},{msgid:"Could not create the new folder",msgstr:["Nem lehet létrehozni az új mappát"]},{msgid:"Could not load files settings",msgstr:["Nem lehet betölteni a fájlok beállításait"]},{msgid:"Could not load files views",msgstr:["Nem lehet betölteni a fájlok nézeteit"]},{msgid:"Create directory",msgstr:["Mappa létrehozása"]},{msgid:"Current view selector",msgstr:["Jelenlegi nézet választója"]},{msgid:"Enter your name",msgstr:["Adja meg a nevét"]},{msgid:"Existing version",msgstr:["Meglévő verzió"]},{msgid:"Failed to set nickname.",msgstr:["Nem sikerült a becenév beállítása."]},{msgid:"Favorites",msgstr:["Kedvencek"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["A kedvencként megjelölt fájlok és mappák itt jelennek meg."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["A nemrég módosított fájlok és mappák itt jelennek meg."]},{msgid:"Filter file list",msgstr:["Fájllista szűrése"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["A mappanevek nem végződhetnek ezzel: „{extension}”."]},{msgid:"Guest identification",msgstr:["Vendégazonosítás"]},{msgid:"Home",msgstr:["Kezdőlap"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ha mindkét verziót választja, akkor a bejövő fájl nevéhez egy szám lesz hozzáfűzve."]},{msgid:"Invalid folder name.",msgstr:["Érvénytelen mappanév."]},{msgid:"Invalid name.",msgstr:["Érvénytelen név."]},{msgid:"Last modified date unknown",msgstr:["Legutóbbi módosítás ideje ismeretlen"]},{msgid:"Modified",msgstr:["Módosítva"]},{msgid:"Move",msgstr:["Áthelyezés"]},{msgid:"Move to {target}",msgstr:["Áthelyezés ide: {target}"]},{msgid:"Name",msgstr:["Név"]},{msgid:"Names may be at most 64 characters long.",msgstr:["A nevek legfeljebb 64 karakter hosszúak lehetnek."]},{msgid:"Names must not be empty.",msgstr:["A nevek nem lehetnek üresek."]},{msgid:'Names must not end with "{extension}".',msgstr:["A nevek nem végződhetnek ezzel: „{extension}”."]},{msgid:"Names must not start with a dot.",msgstr:["A nevek nem kezdődhetnek ponttal."]},{msgid:"New",msgstr:["Új"]},{msgid:"New folder",msgstr:["Új mappa"]},{msgid:"New folder name",msgstr:["Új mappa neve"]},{msgid:"New version",msgstr:["Új verzió"]},{msgid:"No files in here",msgstr:["Itt nincsenek fájlok"]},{msgid:"No files matching your filter were found.",msgstr:["Nincs a szűrési feltételeknek megfelelő fájl."]},{msgid:"No matching files",msgstr:["Nincs ilyen fájl"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Legalább 2 karakteres nevet adjon meg."]},{msgid:"Recent",msgstr:["Legutóbbi"]},{msgid:"Select all checkboxes",msgstr:["Összes jelölőmező bepipálása"]},{msgid:"Select all entries",msgstr:["Összes bejegyzés kijelölése"]},{msgid:"Select all existing files",msgstr:["Összes meglévő fájl kijelölése"]},{msgid:"Select all new files",msgstr:["Összes új fájl kijelölése"]},{msgid:"Select entry",msgstr:["Bejegyzés kijelölése"]},{msgid:"Select the row for {nodename}",msgstr:["Válasszon sort a következőnek: {nodename}"]},{msgid:"Size",msgstr:["Méret"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n fájl kihagyása","%n fájl kihagyása"]},{msgid:"Skip this file",msgstr:["Fájl kihagyása"]},{msgid:"Submit name",msgstr:["Név beküldése"]},{msgid:"Undo",msgstr:["Visszavonás"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Töltsön fel tartalmat, vagy szinkronizáljon az eszközeivel!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Ha egy bejövő mappa van kijelölve, akkor a benne lévő ütköző fájlok is felül lesznek írva."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Ha egy bejövő mappa van kijelölve, akkor a tartalom a meglévő mappába lesz írva, és rekurzív ütközéskezelés lesz végezve."]},{msgid:"Which files do you want to keep?",msgstr:["Mely fájlokat akarja megtartani?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Jelenleg ekként van azonosítva: {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Jelenleg nincs azonosítva."]},{msgid:"You cannot leave the name empty.",msgstr:["A nevet nem hagyhatja üresen."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Legalább egy ütközéskezelési megoldást kell választania"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["A folytatáshoz az összes fájlnak legalább egy verzióját ki kell választania."]}]},{language:"hy",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["{name} սխալ թղթապանակի անվանում է"]},{msgid:'"{name}" is not an allowed folder name',msgstr:["{name} համարվում է անթույլատրելի թղթապանակի անվանում"]},{msgid:'"/" is not allowed inside a folder name.',msgstr:["/ չի թույլատրվում օգտագործել անվանման մեջ"]},{msgid:"All files",msgstr:["Բոլոր ֆայլերը"]},{msgid:"Choose",msgstr:["Ընտրել"]},{msgid:"Choose {file}",msgstr:["Ընտրել {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Ընտրել %n ֆայլ","Ընտրել %n ֆայլեր"]},{msgid:"Copy",msgstr:["Պատճենել"]},{msgid:"Copy to {target}",msgstr:["Պատճենել {target}"]},{msgid:"Could not create the new folder",msgstr:["Չստացվեց ստեղծել նոր թղթապանակը"]},{msgid:"Could not load files settings",msgstr:["Չստացվեց բեռնել ֆայլի կարգավորումները"]},{msgid:"Could not load files views",msgstr:["Չստացվեց բեռնել ֆայլերի դիտումները"]},{msgid:"Create directory",msgstr:["Ստեղծել դիրեկտորիա"]},{msgid:"Current view selector",msgstr:["Ընթացիկ դիտման ընտրիչ"]},{msgid:"Favorites",msgstr:["Նախընտրելիներ"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Այստեղ կցուցադրվեն այն ֆայլերն ու պանակները, որոնք դուք նշել եք որպես նախընտրելիներ:"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Այստեղ կցուցադրվեն այն ֆայլերն ու պանակները, որոնք վերջերս փոխել եք:"]},{msgid:"Filter file list",msgstr:["Ֆիլտրել ֆայլերի ցուցակը"]},{msgid:"Folder name cannot be empty.",msgstr:["Թղթապանակի անունը չի կարող դատարկ լինել:"]},{msgid:"Home",msgstr:["Սկիզբ"]},{msgid:"Modified",msgstr:["Փոփոխված"]},{msgid:"Move",msgstr:["Տեղափոխել"]},{msgid:"Move to {target}",msgstr:["Տեղափոխել {target}"]},{msgid:"Name",msgstr:["Անուն"]},{msgid:"New",msgstr:["Նոր"]},{msgid:"New folder",msgstr:["Նոր թղթապանակ"]},{msgid:"New folder name",msgstr:["Նոր թղթապանակի անվանում"]},{msgid:"No files in here",msgstr:["Այստեղ չկան ֆայլեր"]},{msgid:"No files matching your filter were found.",msgstr:["Ձեր ֆիլտրին համապատասխանող ֆայլերը չեն գտնվել:"]},{msgid:"No matching files",msgstr:["Չկան համապատասխան ֆայլեր"]},{msgid:"Recent",msgstr:["Վերջին"]},{msgid:"Select all entries",msgstr:["Ընտրել բոլոր գրառումները"]},{msgid:"Select entry",msgstr:["Ընտրել բոլոր գրառումը"]},{msgid:"Select the row for {nodename}",msgstr:["Ընտրեք տողը {nodename}-ի համար "]},{msgid:"Size",msgstr:["Չափ"]},{msgid:"Undo",msgstr:["Ետարկել"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Ներբեռնեք որոշ բովանդակություն կամ համաժամացրեք այն ձեր սարքերի հետ:"]}]},{language:"id",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" tidak diizinkan di dalam nama folder.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" tidak diizinkan di dalam nama.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" bukan nama yang diizinkan.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" adalah nama yang dicadangkan dan tidak diizinkan untuk nama folder.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" adalah nama yang dicadangkan dan tidak diizinkan.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n konflik file"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n konflik file di {dirname}"]},{msgid:"All files",msgstr:["Semua berkas"]},{msgid:"Cancel",msgstr:["Batal"]},{msgid:"Cancel the entire operation",msgstr:["Batalkan seluruh operasi"]},{msgid:"Choose",msgstr:["Pilih"]},{msgid:"Choose {file}",msgstr:["Pilih {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Pilih %n file"]},{msgid:"Confirm",msgstr:["Konfirmasi"]},{msgid:"Continue",msgstr:["Lanjutkan"]},{msgid:"Copy",msgstr:["Salin"]},{msgid:"Copy to {target}",msgstr:["Salin ke {target}"]},{msgid:"Could not create the new folder",msgstr:["Tidak dapat membuat folder baru"]},{msgid:"Could not load files settings",msgstr:["Tidak dapat memuat pengaturan file"]},{msgid:"Could not load files views",msgstr:["Tidak dapat memuat tampilan file"]},{msgid:"Create directory",msgstr:["Buat direktori"]},{msgid:"Current view selector",msgstr:["Pemilih tampilan saat ini"]},{msgid:"Enter your name",msgstr:["Masukkan nama Anda"]},{msgid:"Existing version",msgstr:["Versi yang ada"]},{msgid:"Failed to set nickname.",msgstr:["Gagal menetapkan nama panggilan."]},{msgid:"Favorites",msgstr:["Favorit"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Berkas dan folder yang Anda tandai sebagai favorit akan muncul di sini."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Berkas dan folder yang Anda ubah baru-baru ini akan muncul di sini."]},{msgid:"Filter file list",msgstr:["Saring daftar berkas"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Nama folder tidak boleh diakhiri dengan "{extension}".']},{msgid:"Guest identification",msgstr:["Identifikasi tamu"]},{msgid:"Home",msgstr:["Beranda"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Jika Anda memilih kedua versi, file yang masuk akan ditambahkan angka pada namanya."]},{msgid:"Invalid folder name.",msgstr:["Nama folder tidak valid."]},{msgid:"Invalid name.",msgstr:["Nama tidak valid."]},{msgid:"Last modified date unknown",msgstr:["Tanggal modifikasi terakhir tidak diketahui"]},{msgid:"Modified",msgstr:["Diubah"]},{msgid:"Move",msgstr:["Pindahkan"]},{msgid:"Move to {target}",msgstr:["Pindahkan ke {target}"]},{msgid:"Name",msgstr:["Nama"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Panjang nama maksimal 64 karakter."]},{msgid:"Names must not be empty.",msgstr:["Nama tidak boleh kosong."]},{msgid:'Names must not end with "{extension}".',msgstr:['Nama tidak boleh diakhiri dengan "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Nama tidak boleh diawali dengan titik."]},{msgid:"New",msgstr:["Baru"]},{msgid:"New folder",msgstr:["Folder baru"]},{msgid:"New folder name",msgstr:["Nama folder baru"]},{msgid:"New version",msgstr:["Versi baru"]},{msgid:"No files in here",msgstr:["Tidak ada berkas di sini"]},{msgid:"No files matching your filter were found.",msgstr:["Tidak ada berkas yang cocok dengan penyaringan Anda."]},{msgid:"No matching files",msgstr:["Tidak ada berkas yang cocok"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Silakan masukkan nama dengan minimal 2 karakter."]},{msgid:"Recent",msgstr:["Terkini"]},{msgid:"Select all checkboxes",msgstr:["Pilih semua kotak centang"]},{msgid:"Select all entries",msgstr:["Pilih semua entri"]},{msgid:"Select all existing files",msgstr:["Pilih semua file yang ada"]},{msgid:"Select all new files",msgstr:["Pilih semua file baru"]},{msgid:"Select entry",msgstr:["Pilih entri"]},{msgid:"Select the row for {nodename}",msgstr:["Pilih baris untuk {nodename}"]},{msgid:"Size",msgstr:["Ukuran"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Lewati %n file"]},{msgid:"Skip this file",msgstr:["Lewati file ini"]},{msgid:"Submit name",msgstr:["Kirim nama"]},{msgid:"Undo",msgstr:["Tidak jadi"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Unggah beberapa konten atau sinkronkan dengan perangkat Anda!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Saat folder yang masuk dipilih, semua file yang konflik di dalamnya juga akan ditimpa."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Saat folder yang masuk dipilih, konten ditulis ke dalam folder yang ada dan penyelesaian konflik rekursif dilakukan."]},{msgid:"Which files do you want to keep?",msgstr:["File mana yang ingin Anda pertahankan?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Saat ini Anda teridentifikasi sebagai {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Saat ini Anda tidak teridentifikasi."]},{msgid:"You cannot leave the name empty.",msgstr:["Anda tidak dapat membiarkan nama kosong."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Anda perlu memilih setidaknya satu solusi konflik"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Anda perlu memilih setidaknya satu versi dari setiap file untuk melanjutkan."]}]},{language:"is",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" er ógilt möppuheiti.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" er ekki leyfilegt möppuheiti']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" er er ekki leyfilegt innan í skráarheiti.']},{msgid:"All files",msgstr:["Allar skrár"]},{msgid:"Choose",msgstr:["Veldu"]},{msgid:"Choose {file}",msgstr:["Veldu {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Veldu %n skrá","Veldu %n skrár"]},{msgid:"Copy",msgstr:["Afrita"]},{msgid:"Copy to {target}",msgstr:["Afrita í {target}"]},{msgid:"Could not create the new folder",msgstr:["Get ekki búið til nýju möppuna"]},{msgid:"Could not load files settings",msgstr:["Tókst ekki að hlaða inn stillingum skráa"]},{msgid:"Could not load files views",msgstr:["Tókst ekki að hlaða inn sýnum skráa"]},{msgid:"Create directory",msgstr:["Búa til möppu"]},{msgid:"Current view selector",msgstr:["Núverandi val sýnar"]},{msgid:"Favorites",msgstr:["Eftirlæti"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Skrár og möppur sem þú merkir sem eftirlæti birtast hér."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Skrár og möppur sem þú breyttir nýlega birtast hér."]},{msgid:"Filter file list",msgstr:["Sía skráalista"]},{msgid:"Folder name cannot be empty.",msgstr:["Möppuheiti má ekki vera tómt."]},{msgid:"Home",msgstr:["Heim"]},{msgid:"Modified",msgstr:["Breytt"]},{msgid:"Move",msgstr:["Færa"]},{msgid:"Move to {target}",msgstr:["Færa í {target}"]},{msgid:"Name",msgstr:["Heiti"]},{msgid:"New",msgstr:["Nýtt"]},{msgid:"New folder",msgstr:["Ný mappa"]},{msgid:"New folder name",msgstr:["Heiti nýrrar möppu"]},{msgid:"No files in here",msgstr:["Engar skrár hér"]},{msgid:"No files matching your filter were found.",msgstr:["Engar skrár fundust sem passa við síuna."]},{msgid:"No matching files",msgstr:["Engar samsvarandi skrár"]},{msgid:"Recent",msgstr:["Nýlegt"]},{msgid:"Select all entries",msgstr:["Velja allar færslur"]},{msgid:"Select entry",msgstr:["Velja færslu"]},{msgid:"Select the row for {nodename}",msgstr:["Veldu röðina fyrir {nodename}"]},{msgid:"Size",msgstr:["Stærð"]},{msgid:"Undo",msgstr:["Afturkalla"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Sendu inn eitthvað efni eða samstilltu við tækin þín!"]}]},{language:"it",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:[`"{char}" non è consentito all'interno di un nome di cartella.`]},{msgid:'"{char}" is not allowed inside a name.',msgstr:[`"{char}" non è consentito all'interno di un nome.`]},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" non è un nome consentito']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" è un nome riservato e non consentito per i nomi delle cartelle.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" è un nome riservato e non consentito.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n file in conflitto","%n file in conflitto","%n file in conflitto"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n file in conflitto in {dirname}","%n file in conflitto in {dirname}","%n file in conflitto in {dirname}"]},{msgid:"All files",msgstr:["Tutti i file"]},{msgid:"Cancel",msgstr:["Annulla"]},{msgid:"Cancel the entire operation",msgstr:["Annulla l'intera operazione"]},{msgid:"Choose",msgstr:["Scegli"]},{msgid:"Choose {file}",msgstr:["Scegli {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Scegli %n file","Scegli %n file","Scegli %n file"]},{msgid:"Confirm",msgstr:["Conferma"]},{msgid:"Continue",msgstr:["Continua"]},{msgid:"Copy",msgstr:["Copia"]},{msgid:"Copy to {target}",msgstr:["Copia in {target}"]},{msgid:"Could not create the new folder",msgstr:["Impossibile creare la nuova cartella"]},{msgid:"Could not load files settings",msgstr:["Impossibile caricare le impostazioni dei file"]},{msgid:"Could not load files views",msgstr:["Impossibile caricare le visualizzazioni dei file"]},{msgid:"Create directory",msgstr:["Crea cartella"]},{msgid:"Current view selector",msgstr:["Selettore della vista attuale"]},{msgid:"Enter your name",msgstr:["Inserisci il tuo nome"]},{msgid:"Existing version",msgstr:["Versione esistente"]},{msgid:"Failed to set nickname.",msgstr:["Impossibile impostare lo pseudonimo."]},{msgid:"Favorites",msgstr:["Preferiti"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["I file e le cartelle contrassegnate come preferite saranno mostrate qui."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["I file e le cartelle che hai modificato di recente saranno mostrate qui."]},{msgid:"Filter file list",msgstr:["Filtra l'elenco dei file"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['I nomi delle cartelle devono finire con "{extension}".']},{msgid:"Guest identification",msgstr:["Identificazione ospiti"]},{msgid:"Home",msgstr:["Home"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Se selezioni entrambe le versioni, al nome del file in arrivo verrà aggiunto un numero."]},{msgid:"Invalid folder name.",msgstr:["Nome cartella non valido."]},{msgid:"Invalid name.",msgstr:["Nome non valido."]},{msgid:"Last modified date unknown",msgstr:["Data di ultima modifica sconosciuta"]},{msgid:"Modified",msgstr:["Modificato"]},{msgid:"Move",msgstr:["Sposta"]},{msgid:"Move to {target}",msgstr:["Sposta in {target}"]},{msgid:"Name",msgstr:["Nome"]},{msgid:"Names may be at most 64 characters long.",msgstr:["I nomi dovrebbero avere una lunghezza massima di 64 caratteri."]},{msgid:"Names must not be empty.",msgstr:["I nomi non devono essere vuoti."]},{msgid:'Names must not end with "{extension}".',msgstr:['I nomi devono finire con "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["I nomi non possono iniziare con un punto."]},{msgid:"New",msgstr:["Nuovo"]},{msgid:"New folder",msgstr:["Nuova cartella"]},{msgid:"New folder name",msgstr:["Nome della nuova cartella"]},{msgid:"New version",msgstr:["Nuova versione"]},{msgid:"No files in here",msgstr:["Nessun file qui"]},{msgid:"No files matching your filter were found.",msgstr:["Nessun file che corrisponde al tuo filtro è stato trovato."]},{msgid:"No matching files",msgstr:["Nessun file corrispondente"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Digita un nome con almeno 2 caratteri."]},{msgid:"Recent",msgstr:["Recente"]},{msgid:"Select all checkboxes",msgstr:["Seleziona tutte le caselle"]},{msgid:"Select all entries",msgstr:["Scegli tutte le voci"]},{msgid:"Select all existing files",msgstr:["Seleziona tutti i file esistenti"]},{msgid:"Select all new files",msgstr:["Seleziona tutti i nuovi file"]},{msgid:"Select entry",msgstr:["Seleziona la voce"]},{msgid:"Select the row for {nodename}",msgstr:["Seleziona la riga per {nodename}"]},{msgid:"Size",msgstr:["Dimensioni"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Salta %n file","Salta %n file","Salta %n file"]},{msgid:"Skip this file",msgstr:["Salta questo file"]},{msgid:"Submit name",msgstr:["Invia nome"]},{msgid:"Undo",msgstr:["Annulla"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Carica qualche contenuto o sincronizza con i tuoi dispositivi!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Quando si seleziona una cartella in arrivo, anche tutti i file in conflitto al suo interno saranno sovrascritti."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Quando si seleziona una cartella in arrivo, il contenuto viene scritto nella cartella esistente e viene eseguita una risoluzione ricorsiva dei conflitti."]},{msgid:"Which files do you want to keep?",msgstr:["Quali file vuoi conservare?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Sei attualmente identificato come {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Attualmente non sei identificato."]},{msgid:"You cannot leave the name empty.",msgstr:["Non puoi lasciare il nome vuoto."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Devi scegliere almeno una soluzione al conflitto"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Per continuare, è necessario selezionare almeno una versione di ciascun file."]}]},{language:"ja_JP",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['フォルダー名に "{char}" を使用することはできません。']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['名前に "{char}" を使用することはできません。']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" は許可された名前ではありません。']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" は予約名のため、使用できません。']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" は予約名のため、使用できません。']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%nファイルが競合しています"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%nディレクトリ{dirname}内のファイル競合"]},{msgid:"All files",msgstr:["すべてのファイル"]},{msgid:"Cancel",msgstr:["キャンセル"]},{msgid:"Cancel the entire operation",msgstr:["すべての操作をキャンセル"]},{msgid:"Choose",msgstr:["選択"]},{msgid:"Choose {file}",msgstr:["{file} を選択"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["%n 個のファイルを選択"]},{msgid:"Confirm",msgstr:["確認"]},{msgid:"Continue",msgstr:["続行"]},{msgid:"Copy",msgstr:["コピー"]},{msgid:"Copy to {target}",msgstr:["{target} にコピー"]},{msgid:"Could not create the new folder",msgstr:["新しいフォルダーを作成できませんでした"]},{msgid:"Could not load files settings",msgstr:["ファイル設定を読み込めませんでした"]},{msgid:"Could not load files views",msgstr:["ファイルビューを読み込めませんでした"]},{msgid:"Create directory",msgstr:["ディレクトリを作成"]},{msgid:"Current view selector",msgstr:["現在のビュー選択"]},{msgid:"Enter your name",msgstr:["名前を入力してください"]},{msgid:"Existing version",msgstr:["現行バージョン"]},{msgid:"Failed to set nickname.",msgstr:["ニックネームの設定に失敗しました。"]},{msgid:"Favorites",msgstr:["お気に入り"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["お気に入りとしてマークしたファイルとフォルダーがここに表示されます。"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["最近変更したファイルとフォルダーがここに表示されます。"]},{msgid:"Filter file list",msgstr:["ファイルのリストをフィルター"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['フォルダー名の末尾に "{extension}" を使用できません。']},{msgid:"Guest identification",msgstr:["ゲスト識別"]},{msgid:"Home",msgstr:["ホーム"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["両方のバージョンを選択した場合、受信ファイル名には番号が追加されます。"]},{msgid:"Invalid folder name.",msgstr:["フォルダー名が無効です。"]},{msgid:"Invalid name.",msgstr:["無効な名前です。"]},{msgid:"Last modified date unknown",msgstr:["最終更新日不明"]},{msgid:"Modified",msgstr:["変更済み"]},{msgid:"Move",msgstr:["移動"]},{msgid:"Move to {target}",msgstr:["{target} に移動"]},{msgid:"Name",msgstr:["名前"]},{msgid:"Names may be at most 64 characters long.",msgstr:["名前は最大64文字です。"]},{msgid:"Names must not be empty.",msgstr:["名前は空にできません。"]},{msgid:'Names must not end with "{extension}".',msgstr:['名前の末尾に "{extension}" を使用できません。']},{msgid:"Names must not start with a dot.",msgstr:["ドットで始まる名前は使用できません。"]},{msgid:"New",msgstr:["新規作成"]},{msgid:"New folder",msgstr:["新しいフォルダー"]},{msgid:"New folder name",msgstr:["新しいフォルダーの名前"]},{msgid:"New version",msgstr:["新バージョン"]},{msgid:"No files in here",msgstr:["ファイルがありません"]},{msgid:"No files matching your filter were found.",msgstr:["フィルターに一致するファイルは見つかりませんでした。"]},{msgid:"No matching files",msgstr:["一致するファイルはありません"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["名前は2文字以上を入力してください。"]},{msgid:"Recent",msgstr:["最近"]},{msgid:"Select all checkboxes",msgstr:["すべてのチェックボックスを選択"]},{msgid:"Select all entries",msgstr:["すべてのエントリを選択"]},{msgid:"Select all existing files",msgstr:["既存のファイルをすべて選択"]},{msgid:"Select all new files",msgstr:["すべての新規ファイルを選択"]},{msgid:"Select entry",msgstr:["エントリを選択"]},{msgid:"Select the row for {nodename}",msgstr:["{nodename} の行を選択"]},{msgid:"Size",msgstr:["サイズ"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n 個のファイルをスキップ"]},{msgid:"Skip this file",msgstr:["このファイルをスキップ"]},{msgid:"Submit name",msgstr:["名前を送信する"]},{msgid:"Undo",msgstr:["元に戻す"]},{msgid:"Upload some content or sync with your devices!",msgstr:["コンテンツをアップロードするか、デバイスと同期してください!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["受信フォルダーを選択すると、そのフォルダー内の競合ファイルも上書きされます。"]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["受信フォルダーを選択すると、内容は既存のフォルダーに書き込まれ、再帰的な競合解決が実行されます。"]},{msgid:"Which files do you want to keep?",msgstr:["どのファイルを残しますか?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["現在、{nickname}として識別されています。"]},{msgid:"You are currently not identified.",msgstr:["現在あなたは識別されていません。"]},{msgid:"You cannot leave the name empty.",msgstr:["名前を空にすることはできません。"]},{msgid:"You need to choose at least one conflict solution",msgstr:["少なくとも1つの競合ソリューションを選択する必要があります"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["続行するには、各ファイルのバージョンを少なくとも1つ選択する必要があります。"]}]},{language:"ko",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["문자 '{char}'은(는) 폴더 이름에 사용할 수 없습니다."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["문자 '{char}'은(는) 이름에 사용할 수 없습니다."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["'{extension}'은(는) 사용 불가능한 이름입니다."]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["'{segment}'은(는) 예약된 이름이므로 폴더 이름으로 사용할 수 없습니다."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["'{segment}'은(는) 예약된 이름이므로 사용할 수 없습니다."]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n개의 파일이 충돌함"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["{dirname}에서 %n개의 파일이 충돌함"]},{msgid:"All files",msgstr:["모든 파일"]},{msgid:"Cancel",msgstr:["취소"]},{msgid:"Cancel the entire operation",msgstr:["전체 작업 취소"]},{msgid:"Choose",msgstr:["선택"]},{msgid:"Choose {file}",msgstr:["{file} 선택"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["파일 %n개 선택"]},{msgid:"Confirm",msgstr:["확인"]},{msgid:"Continue",msgstr:["계속"]},{msgid:"Copy",msgstr:["복사"]},{msgid:"Copy to {target}",msgstr:["{target}(으)로 복사"]},{msgid:"Could not create the new folder",msgstr:["새 폴더를 만들 수 없음"]},{msgid:"Could not load files settings",msgstr:["파일 설정을 불러오지 못함"]},{msgid:"Could not load files views",msgstr:["파일 보기를 불러오지 못함"]},{msgid:"Create directory",msgstr:["디렉토리 만들기"]},{msgid:"Current view selector",msgstr:["현재 보기 방식"]},{msgid:"Enter your name",msgstr:["이름을 입력하세요"]},{msgid:"Existing version",msgstr:["기존 버전"]},{msgid:"Failed to set nickname.",msgstr:[`닉네임을 설정하지 못했습니다. - `]},{msgid:"Favorites",msgstr:["즐겨찾기"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["즐겨찾기 한 파일 및 폴더가 이곳에 표시됩니다."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["최근 수정된 파일 및 폴더가 이곳에 표시됩니다."]},{msgid:"Filter file list",msgstr:["파일 목록 필터링"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["폴더 이름은 '{extension}'(으)로 끝날 수 없습니다."]},{msgid:"Guest identification",msgstr:["게스트 확인"]},{msgid:"Home",msgstr:["홈"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["두 버전을 모두 선택할 경우 새로 추가되는 파일의 이름에 숫자가 붙게 됩니다."]},{msgid:"Invalid folder name.",msgstr:["잘못된 폴더 이름입니다."]},{msgid:"Invalid name.",msgstr:["잘못된 이름입니다. "]},{msgid:"Last modified date unknown",msgstr:["최근 수정일 알 수 없음"]},{msgid:"Modified",msgstr:["수정됨"]},{msgid:"Move",msgstr:["이동"]},{msgid:"Move to {target}",msgstr:["{target}(으)로 이동"]},{msgid:"Name",msgstr:["이름"]},{msgid:"Names may be at most 64 characters long.",msgstr:["이름은 최대 64글자까지 지정할 수 있습니다."]},{msgid:"Names must not be empty.",msgstr:["이름은 비어 있을 수 없습니다."]},{msgid:'Names must not end with "{extension}".',msgstr:["이름은 '{extension}'(으)로 끝날 수 없습니다."]},{msgid:"Names must not start with a dot.",msgstr:["이름은 마침표로 시작될 수 없습니다."]},{msgid:"New",msgstr:["새로 만들기"]},{msgid:"New folder",msgstr:["새 폴더"]},{msgid:"New folder name",msgstr:["새 폴더명"]},{msgid:"New version",msgstr:["새로운 버전"]},{msgid:"No files in here",msgstr:["파일이 없습니다"]},{msgid:"No files matching your filter were found.",msgstr:["선택된 필터에 해당하는 파일이 없습니다."]},{msgid:"No matching files",msgstr:["해당하는 파일 없음"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["최소 두 글자 이상의 이름을 입력해주세요."]},{msgid:"Recent",msgstr:["최근"]},{msgid:"Select all checkboxes",msgstr:["체크박스 모두 선택"]},{msgid:"Select all entries",msgstr:["모두 선택"]},{msgid:"Select all existing files",msgstr:["기존 파일 모두 선택"]},{msgid:"Select all new files",msgstr:["새 파일 모두 선택"]},{msgid:"Select entry",msgstr:["항목 선택"]},{msgid:"Select the row for {nodename}",msgstr:["{nodename}의 행 선택"]},{msgid:"Size",msgstr:["크기"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n개 파일 건너뛰기"]},{msgid:"Skip this file",msgstr:["이 파일 건너뛰기"]},{msgid:"Submit name",msgstr:["이름 제출"]},{msgid:"Undo",msgstr:["되돌리기"]},{msgid:"Upload some content or sync with your devices!",msgstr:["기기에서 파일을 업로드 또는 동기화하세요!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["새 폴더를 선택할 경우, 해당 폴더 내의 충돌 파일들도 덮어쓰기 됩니다."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["새 폴더를 선택할 경우 내용물이 기존 폴더에 기록되며 재귀적 충돌 해결이 수행됩니다."]},{msgid:"Which files do you want to keep?",msgstr:["어떤 파일들을 유지하시겠습니까?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["{nickname}(으)로 인증된 상태 입니다."]},{msgid:"You are currently not identified.",msgstr:["현재 인증 정보가 없습니다."]},{msgid:"You cannot leave the name empty.",msgstr:["이름은 비워 둘 수 없습니다. "]},{msgid:"You need to choose at least one conflict solution",msgstr:["최소한 하나의 충돌 해결 방안을 선택해야 합니다."]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["계속하기 위해서는 한 파일에 최소 하나의 버전을 선택해야 합니다."]}]},{language:"lb",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["{name} ass en ongëlteg Dossier"]},{msgid:'"{name}" is not an allowed folder name',msgstr:["{name} ass net en erlaabten Dossiernumm"]},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" ass net an engem Dossier Numm erlaabt']},{msgid:"All files",msgstr:["All Dateien"]},{msgid:"Choose",msgstr:["Wielt"]},{msgid:"Choose {file}",msgstr:["Wielt {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Wielt %n Fichieren","Wielt %n Fichier"]},{msgid:"Copy",msgstr:["Kopie"]},{msgid:"Copy to {target}",msgstr:["Kopie op {target}"]},{msgid:"Could not create the new folder",msgstr:["Konnt den neien Dossier net erstellen"]},{msgid:"Could not load files settings",msgstr:["Konnt d'Dateienastellungen net lueden"]},{msgid:"Could not load files views",msgstr:["Konnt d'Dateien net lueden"]},{msgid:"Create directory",msgstr:["Erstellt Verzeechnes"]},{msgid:"Current view selector",msgstr:["Aktuell Vue selector"]},{msgid:"Favorites",msgstr:["Favoritten"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Dateien an Ordner, déi Dir als Favorit markéiert, ginn hei gewisen"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Dateien an Ordner déi Dir viru kuerzem geännert hutt ginn hei op"]},{msgid:"Filter file list",msgstr:["Filter Datei Lëscht"]},{msgid:"Folder name cannot be empty.",msgstr:["Dossier Numm kann net eidel sinn"]},{msgid:"Home",msgstr:["Wëllkomm"]},{msgid:"Modified",msgstr:["Geännert"]},{msgid:"Move",msgstr:["Plënne"]},{msgid:"Move to {target}",msgstr:["Plënneren {target}"]},{msgid:"Name",msgstr:["Numm"]},{msgid:"New",msgstr:["Nei"]},{msgid:"New folder",msgstr:["Neien dossier"]},{msgid:"New folder name",msgstr:["Neien dossier numm"]},{msgid:"No files in here",msgstr:["Kee fichier hei"]},{msgid:"No files matching your filter were found.",msgstr:["Kee fichier deen äre filter passt gouf fonnt"]},{msgid:"No matching files",msgstr:["Keng passende dateien"]},{msgid:"Recent",msgstr:["Rezent"]},{msgid:"Select all entries",msgstr:["Wielt all entréen"]},{msgid:"Select entry",msgstr:["Wielt entrée"]},{msgid:"Select the row for {nodename}",msgstr:["Wielt d'zeil fir {nodename}"]},{msgid:"Size",msgstr:["Gréisst"]},{msgid:"Undo",msgstr:["Undoen"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Luet en inhalt erop oder synchroniséiert mat ären apparater"]}]},{language:"lo",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" ບໍ່ອະນຸຍາດໃຫ້ມີຢູ່ໃນຊື່ໂຟນເດີ.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['ບໍ່ອະນຸຍາດໃຫ້ມີ "{char}" ພາຍໃນຊື່.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" ບໍ່ແມ່ນຊື່ທີ່ໄດ້ຮັບອະນຸຍາດ.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" ແມ່ນຊື່ທີ່ສະຫງວນໄວ້ ແລະ ບໍ່ອະນຸຍາດໃຫ້ໃຊ້ເປັນຊື່ໂຟນເດີ.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" ແມ່ນຊື່ທີ່ສະຫງວນໄວ້ ແລະ ບໍ່ໄດ້ຮັບອະນຸຍາດ.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["ໄຟລ໌ຂັດກັນ %n ລາຍການ"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["ໄຟລ໌ຂັດກັນ %n ລາຍການໃນ {dirname}"]},{msgid:"All files",msgstr:["ໄຟລ໌ທັງໝົດ"]},{msgid:"Cancel",msgstr:["ຍົກເລີກ"]},{msgid:"Cancel the entire operation",msgstr:["ຍົກເລີກການດຳເນີນການທັງໝົດ"]},{msgid:"Choose",msgstr:["ເລືອກ"]},{msgid:"Choose {file}",msgstr:["ເລືອກ {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["ເລືອກ %n ໄຟລ໌"]},{msgid:"Confirm",msgstr:["ຢືນຢັນ"]},{msgid:"Continue",msgstr:["ດຳເນີນການຕໍ່"]},{msgid:"Copy",msgstr:["ຄັດລອກ"]},{msgid:"Copy to {target}",msgstr:["ຄັດລອກໄປທີ່ {target}"]},{msgid:"Could not create the new folder",msgstr:["ບໍ່ສາມາດສ້າງໂຟນເດີໃໝ່ໄດ້"]},{msgid:"Could not load files settings",msgstr:["ບໍ່ສາມາດໂຫຼດການຕັ້ງຄ່າໄຟລ໌ໄດ້"]},{msgid:"Could not load files views",msgstr:["ບໍ່ສາມາດໂຫຼດມຸມມອງໄຟລ໌ໄດ້"]},{msgid:"Create directory",msgstr:["ສ້າງໄດເຣັກທໍຣີ"]},{msgid:"Current view selector",msgstr:["ຕົວເລືອກມຸມມອງປັດຈຸບັນ"]},{msgid:"Enter your name",msgstr:["ປ້ອນຊື່ຂອງທ່ານ"]},{msgid:"Existing version",msgstr:["ເວີຊັນທີ່ມີຢູ່"]},{msgid:"Failed to set nickname.",msgstr:["ຕັ້ງຊື່ຫຼິ້ນບໍ່ສຳເລັດ."]},{msgid:"Favorites",msgstr:["ລາຍການທີ່ມັກ"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["ໄຟລ໌ ແລະ ໂຟນເດີທີ່ທ່ານໝາຍວ່າເປັນລາຍການທີ່ມັກຈະສະແດງຢູ່ບ່ອນນີ້."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["ໄຟລ໌ ແລະ ໂຟນເດີທີ່ທ່ານແກ້ໄຂລ່າສຸດຈະສະແດງຢູ່ບ່ອນນີ້."]},{msgid:"Filter file list",msgstr:["ກັ່ນຕອງລາຍການໄຟລ໌"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['ຊື່ໂຟນເດີຕ້ອງບໍ່ລົງທ້າຍດ້ວຍ "{extension}".']},{msgid:"Guest identification",msgstr:["ການລະບຸຕົວຕົນຂອງແຂກ"]},{msgid:"Home",msgstr:["ໜ້າຫຼັກ"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["ຖ້າທ່ານເລືອກທັງສອງເວີຊັນ, ໄຟລ໌ທີ່ເຂົ້າມາຈະມີຕົວເລກເພີ່ມໃສ່ຊື່ຂອງມັນ."]},{msgid:"Invalid folder name.",msgstr:["ຊື່ໂຟນເດີບໍ່ຖືກຕ້ອງ."]},{msgid:"Invalid name.",msgstr:["ຊື່ບໍ່ຖືກຕ້ອງ."]},{msgid:"Last modified date unknown",msgstr:["ບໍ່ຮູ້ວັນທີແກ້ໄຂລ່າສຸດ"]},{msgid:"Modified",msgstr:["ແກ້ໄຂເມື່ອ"]},{msgid:"Move",msgstr:["ຍ້າຍ"]},{msgid:"Move to {target}",msgstr:["ຍ້າຍໄປທີ່ {target}"]},{msgid:"Name",msgstr:["ຊື່"]},{msgid:"Names may be at most 64 characters long.",msgstr:["ຊື່ອາດມີຄວາມຍາວສູງສຸດ 64 ຕົວອັກສອນ."]},{msgid:"Names must not be empty.",msgstr:["ຊື່ຕ້ອງບໍ່ຫວ່າງເປົ່າ."]},{msgid:'Names must not end with "{extension}".',msgstr:['ຊື່ຕ້ອງບໍ່ລົງທ້າຍດ້ວຍ "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["ຊື່ຕ້ອງບໍ່ຂຶ້ນຕົ້ນດ້ວຍຈຸດ."]},{msgid:"New",msgstr:["ໃໝ່"]},{msgid:"New folder",msgstr:["ໂຟນເດີໃໝ່"]},{msgid:"New folder name",msgstr:["ຊື່ໂຟນເດີໃໝ່"]},{msgid:"New version",msgstr:["ເວີຊັນໃໝ່"]},{msgid:"No files in here",msgstr:["ບໍ່ມີໄຟລ໌ຢູ່ບ່ອນນີ້"]},{msgid:"No files matching your filter were found.",msgstr:["ບໍ່ພົບໄຟລ໌ທີ່ກົງກັບການກັ່ນຕອງຂອງທ່ານ."]},{msgid:"No matching files",msgstr:["ບໍ່ມີໄຟລ໌ທີ່ກົງກັນ"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["ກະລຸນາປ້ອນຊື່ທີ່ມີຢ່າງໜ້ອຍ 2 ຕົວອັກສອນ."]},{msgid:"Recent",msgstr:["ລ່າສຸດ"]},{msgid:"Select all checkboxes",msgstr:["ເລືອກກ່ອງໝາຍທັງໝົດ"]},{msgid:"Select all entries",msgstr:["ເລືອກທຸກລາຍການ"]},{msgid:"Select all existing files",msgstr:["ເລືອກໄຟລ໌ທີ່ມີຢູ່ທັງໝົດ"]},{msgid:"Select all new files",msgstr:["ເລືອກໄຟລ໌ໃໝ່ທັງໝົດ"]},{msgid:"Select entry",msgstr:["ເລືອກລາຍການ"]},{msgid:"Select the row for {nodename}",msgstr:["ເລືອກແຖວສຳລັບ {nodename}"]},{msgid:"Size",msgstr:["ຂະໜາດ"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["ຂ້າມ %n ໄຟລ໌"]},{msgid:"Skip this file",msgstr:["ຂ້າມໄຟລ໌ນີ້"]},{msgid:"Submit name",msgstr:["ສົ່ງຊື່"]},{msgid:"Undo",msgstr:["ເອົາຄືນ"]},{msgid:"Upload some content or sync with your devices!",msgstr:["ອັບໂຫຼດເນື້ອຫາ ຫຼື ຊິງຄ໌ກັບອຸປະກອນຂອງທ່ານ!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["ເມື່ອເລືອກໂຟນເດີທີ່ເຂົ້າມາ, ໄຟລ໌ໃດໆທີ່ຂັດກັນພາຍໃນໂຟນເດີນັ້ນກໍຈະຖືກຂຽນທັບເຊັ່ນກັນ."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["ເມື່ອເລືອກໂຟນເດີທີ່ເຂົ້າມາ, ເນື້ອຫາຈະຖືກຂຽນລົງໃນໂຟນເດີທີ່ມີຢູ່ ແລະ ຈະມີການແກ້ໄຂຂໍ້ຂັດແຍ່ງແບບຕໍ່ເນື່ອງ."]},{msgid:"Which files do you want to keep?",msgstr:["ທ່ານຕ້ອງການເກັບໄຟລ໌ໃດໄວ້?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["ຕອນນີ້ທ່ານຖືກລະບຸວ່າເປັນ {nickname}."]},{msgid:"You are currently not identified.",msgstr:["ຕອນນີ້ທ່ານຍັງບໍ່ໄດ້ຖືກລະບຸຕົວຕົນ."]},{msgid:"You cannot leave the name empty.",msgstr:["ທ່ານບໍ່ສາມາດປະຊື່ໃຫ້ຫວ່າງເປົ່າໄດ້."]},{msgid:"You need to choose at least one conflict solution",msgstr:["ທ່ານຈຳເປັນຕ້ອງເລືອກວິທີແກ້ໄຂຂໍ້ຂັດແຍ່ງຢ່າງໜ້ອຍໜຶ່ງຢ່າງ"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["ທ່ານຈຳເປັນຕ້ອງເລືອກຢ່າງໜ້ອຍໜຶ່ງເວີຊັນຂອງແຕ່ລະໄຟລ໌ເພື່ອດຳເນີນການຕໍ່."]}]},{language:"lt_LT",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["„{char}“ negalima naudoti aplanko pavadinime."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["„{char}“ negalima naudoti vardo sudėtyje."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["„{extension}“ nėra leidžiamas vardas."]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["„{segment}“ yra rezervuotas vardas, kurio negalima naudoti aplankų pavadinimuose."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["„{segment}“ yra rezervuotas vardas, todėl jo naudoti negalima."]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n failo konfliktas","%n failų konfliktas","%n failų konfliktas","%n failų konfliktas"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n failo konfliktas {dirname}","%n failų konfliktas {dirname}","%n failų konfliktas {dirname}","%n failų konfliktas {dirname}"]},{msgid:"All files",msgstr:["Visi failai"]},{msgid:"Cancel",msgstr:["Atsisakyti"]},{msgid:"Cancel the entire operation",msgstr:["Atsisakyti visos operacijos"]},{msgid:"Choose",msgstr:["Pasirinkti"]},{msgid:"Choose {file}",msgstr:["Pasirinkti {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Pasirinkti %n failą","Pasirinkti %n failus","Pasirinkti %n failų","Pasirinkti %n failą"]},{msgid:"Confirm",msgstr:["Patvirtinti"]},{msgid:"Continue",msgstr:["Tęsti"]},{msgid:"Copy",msgstr:["Kopijuoti"]},{msgid:"Copy to {target}",msgstr:["Kopijuoti į {target}"]},{msgid:"Could not create the new folder",msgstr:["Nepavyko sukurti naujo aplanko"]},{msgid:"Could not load files settings",msgstr:["Nepavyko įkelti failų nustatymų"]},{msgid:"Could not load files views",msgstr:["Nepavyko įkelti failų peržiūrų"]},{msgid:"Create directory",msgstr:["Sukurti katalogą"]},{msgid:"Current view selector",msgstr:["Dabartinis peržiūros pasirinkimas"]},{msgid:"Enter your name",msgstr:["Įrašykite savo vardą"]},{msgid:"Existing version",msgstr:["Esama versija"]},{msgid:"Failed to set nickname.",msgstr:["Nepavyko nustatyti slapyvardžio"]},{msgid:"Favorites",msgstr:["Populiariausi"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Failai ir aplankai, kuriuos pažymėsite kaip mėgstamiausius, bus rodomi čia."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Čia bus rodomi failai ir aplankai, kuriuos neseniai pakeitėte."]},{msgid:"Filter file list",msgstr:["Filtruoti failų sąrašą"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["Aplankų pavadinimai neturi baigtis simboliu „{extension}“."]},{msgid:"Guest identification",msgstr:["Svečio identifikacija"]},{msgid:"Home",msgstr:["Pradžia"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Jei pasirinksite abi versijas, prie gaunamo failo pavadinimo bus pridėtas numeris."]},{msgid:"Invalid folder name.",msgstr:["Netinkamas aplanko pavadinimas."]},{msgid:"Invalid name.",msgstr:["Netinkamas pavadinimas."]},{msgid:"Last modified date unknown",msgstr:["Paskutinio atnaujinimo data nežinoma"]},{msgid:"Modified",msgstr:["Pakeista"]},{msgid:"Move",msgstr:["Perkelti"]},{msgid:"Move to {target}",msgstr:["Perkelti į {target}"]},{msgid:"Name",msgstr:["Vardas"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Vardų ilgis negali viršyti 64 simbolių."]},{msgid:"Names must not be empty.",msgstr:["Pavadinimai negali būti tušti."]},{msgid:'Names must not end with "{extension}".',msgstr:["Vardai neturi baigtis simboliu „{extension}“."]},{msgid:"Names must not start with a dot.",msgstr:["Vardai negali prasidėti tašku."]},{msgid:"New",msgstr:["Naujas"]},{msgid:"New folder",msgstr:["Naujas aplankas"]},{msgid:"New folder name",msgstr:["Naujas aplanko pavadinimas"]},{msgid:"New version",msgstr:["Nauja versija"]},{msgid:"No files in here",msgstr:["Čia failų nėra"]},{msgid:"No files matching your filter were found.",msgstr:["Nepavyko rasti failų pagal filtro nustatymus"]},{msgid:"No matching files",msgstr:["Nėra atitinkančių failų"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Įrašykite vardą iš mažiausiai dviejų ženklų."]},{msgid:"Recent",msgstr:["Nauji"]},{msgid:"Select all checkboxes",msgstr:["Pažymėti visus langelius"]},{msgid:"Select all entries",msgstr:["Žymėti visus įrašus"]},{msgid:"Select all existing files",msgstr:["Pažymėti visus esamus failus"]},{msgid:"Select all new files",msgstr:["Pažymėti visus naujus failus"]},{msgid:"Select entry",msgstr:["Žymėti įrašą"]},{msgid:"Select the row for {nodename}",msgstr:["Pasirinkite eilutę {nodename}"]},{msgid:"Size",msgstr:["Dydis"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Praleisti %n failą","Praleisti %n failus","Praleisti %n failų","Praleisti %n failą"]},{msgid:"Skip this file",msgstr:["Praleisti šį failą"]},{msgid:"Submit name",msgstr:["Pateikti pavadinimą"]},{msgid:"Undo",msgstr:["Atšaukti"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Įkelkite turinio arba sinchronizuokite su savo įrenginiais!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Pasirinkus įeinančių failų aplanką, jame esantys failai, su kuriais kyla konfliktas, taip pat bus perrašyti."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Pasirinkus įeinančių failų aplanką, jo turinys įrašomas į esamą aplanką ir atliekamas rekursyvus konfliktų sprendimas."]},{msgid:"Which files do you want to keep?",msgstr:["Kokius failus norite išsaugoti?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Šiuo metu esate identifikuotas kaip {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Šiuo metu nesate identifikuotas."]},{msgid:"You cannot leave the name empty.",msgstr:["Negalite palikti tuščio vardo lauko."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Turite pasirinkti bent vieną konflikto sprendimo būdą"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Norėdami tęsti, turite pasirinkti bent vieną kiekvieno failo versiją."]}]},{language:"lv",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" nav derīgs mapes nosaukums.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" nav atļauts mapes nosaukums']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" nav atļauts mapes nosaukuma izmantošanā.']},{msgid:"All files",msgstr:["Visas datnes"]},{msgid:"Choose",msgstr:["Izvēlieties"]},{msgid:"Choose {file}",msgstr:["Izvēlieties {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Izvēlēties %n datņu","Izvēlēties %n datni","Izvēlēties %n datnes"]},{msgid:"Copy",msgstr:["Kopēt"]},{msgid:"Copy to {target}",msgstr:["Kopēt uz {target}"]},{msgid:"Could not create the new folder",msgstr:["Nevarēja izveidot jaunu mapi"]},{msgid:"Could not load files settings",msgstr:["Nevarēja ielādēt datņu iestatījumus"]},{msgid:"Could not load files views",msgstr:["Nevarēja ielādēt datņu apskatījumus"]},{msgid:"Create directory",msgstr:["Izveidot direktoriju"]},{msgid:"Current view selector",msgstr:["Pašreizēja skata atlasītājs"]},{msgid:"Favorites",msgstr:["Favorīti"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Šeit parādīsies datnes un mapes, kas tiks atzīmētas kā iecienītas."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Šeit parādīsies datnes un mapes, kuras nesen tika izmainītas."]},{msgid:"Filter file list",msgstr:["Atlasīt datņu sarakstu"]},{msgid:"Folder name cannot be empty.",msgstr:["Mapes nosaukums nevar būt tukšs."]},{msgid:"Home",msgstr:["Sākums"]},{msgid:"Modified",msgstr:["Izmaninīta"]},{msgid:"Move",msgstr:["Pārvietot"]},{msgid:"Move to {target}",msgstr:["Pārvietot uz {target}"]},{msgid:"Name",msgstr:["Nosaukums"]},{msgid:"New",msgstr:["Jauns"]},{msgid:"New folder",msgstr:["Jauna mape"]},{msgid:"New folder name",msgstr:["Jaunas mapes nosaukums"]},{msgid:"No files in here",msgstr:["Šeit nav datņu"]},{msgid:"No files matching your filter were found.",msgstr:["Netika atrasta neviena datne, kas atbilst atlasei."]},{msgid:"No matching files",msgstr:["Nav atbilstošu datņu"]},{msgid:"Recent",msgstr:["Nesenās"]},{msgid:"Select all entries",msgstr:["Atlasīt visus ierakstus"]},{msgid:"Select entry",msgstr:["Atlasīt ierakstu"]},{msgid:"Select the row for {nodename}",msgstr:["Atlasīt rindu {nodename}"]},{msgid:"Size",msgstr:["Izmērs"]},{msgid:"Undo",msgstr:["Atsaukt"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Augšupielādē kādu saturu vai sinhronizē savās iekārtās!"]}]},{language:"mk",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" не е дозволен во име на папка.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" не е дозволено во име.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" не е дозволено име.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" е резервирано име и не е дозволено за име на папка.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" е резервирано име и не е дозволено.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n конфликт со датотекa","%n конфликти со датотеки"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n конфликт со датотека во {dirname}","%n конфликти со датотеки vo {dirname}"]},{msgid:"All files",msgstr:["Сите датотеки"]},{msgid:"Cancel",msgstr:["Откажи"]},{msgid:"Cancel the entire operation",msgstr:["Прекини ја целата операција"]},{msgid:"Choose",msgstr:["Избери"]},{msgid:"Choose {file}",msgstr:["Избери {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Избери %n датотека","Избери %n датотеки"]},{msgid:"Confirm",msgstr:["Потврди"]},{msgid:"Continue",msgstr:["Продолжи"]},{msgid:"Copy",msgstr:["Копирај"]},{msgid:"Copy to {target}",msgstr:["Копирај во {target}"]},{msgid:"Could not create the new folder",msgstr:["Неможе да се креира нова папка"]},{msgid:"Could not load files settings",msgstr:["Неможе да се вчиаат параметрите за датотеките"]},{msgid:"Could not load files views",msgstr:["Неможе да се вчитаат погледите за датотеките"]},{msgid:"Create directory",msgstr:["Креирај папка"]},{msgid:"Current view selector",msgstr:["Избирач на тековен приказ"]},{msgid:"Enter your name",msgstr:["Внесете го вашето име"]},{msgid:"Existing version",msgstr:["Моментална верзија"]},{msgid:"Failed to set nickname.",msgstr:["Неуспешно поставување прекар."]},{msgid:"Favorites",msgstr:["Фаворити"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Датотеките и папките кој ќе ги означите за омилени ќе се појават овде."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Датотеките и папките кој неодамна сте ги измениле ќе се појават овде."]},{msgid:"Filter file list",msgstr:["Филтрирај листа на датотеки"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Имињата на папките неможе да завршуваат со "{extension}".']},{msgid:"Guest identification",msgstr:["Гостинска идентификација"]},{msgid:"Home",msgstr:["Почетна"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ако ги избереш двете верзии, влезната датотека ќе добие број додаден на нејзиното име."]},{msgid:"Invalid folder name.",msgstr:["Невалидно име на папка."]},{msgid:"Invalid name.",msgstr:["Невалидно име."]},{msgid:"Last modified date unknown",msgstr:["Датумот на последна измена е непознат"]},{msgid:"Modified",msgstr:["Променето"]},{msgid:"Move",msgstr:["Премести"]},{msgid:"Move to {target}",msgstr:["Премести во {target}"]},{msgid:"Name",msgstr:["Име"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Имињата можат да бидат најмногу со 64 карактери."]},{msgid:"Names must not be empty.",msgstr:["Имињата неможе да бидат празни."]},{msgid:'Names must not end with "{extension}".',msgstr:['Имињата неможе да завршуваат со "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Имињата неможе да започнуваат со точка."]},{msgid:"New",msgstr:["Нова"]},{msgid:"New folder",msgstr:["Нова папка"]},{msgid:"New folder name",msgstr:["Ново име на папка"]},{msgid:"New version",msgstr:["Нова верзија"]},{msgid:"No files in here",msgstr:["Овде нема датотеки"]},{msgid:"No files matching your filter were found.",msgstr:["Не се пронајдени датотеки што одговараат на вашиот филтер."]},{msgid:"No matching files",msgstr:["Нема датотеки што се совпаѓаат"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Внесете име со најмалку 2 карактери."]},{msgid:"Recent",msgstr:["Неодамнешни"]},{msgid:"Select all checkboxes",msgstr:["Избери ги сите полиња за избор"]},{msgid:"Select all entries",msgstr:["Изберете ги сите записи"]},{msgid:"Select all existing files",msgstr:["Изберете ги сите постоечки датотеки"]},{msgid:"Select all new files",msgstr:["Изберете ги сите нови датотеки"]},{msgid:"Select entry",msgstr:["Избери запис"]},{msgid:"Select the row for {nodename}",msgstr:["Избери ред за {nodename}"]},{msgid:"Size",msgstr:["Големина"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Прескокни %n датотека","Прескокни %n датотеки"]},{msgid:"Skip this file",msgstr:["Прескокни ја оваа датотека"]},{msgid:"Submit name",msgstr:["Испрати име"]},{msgid:"Undo",msgstr:["Врати"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Прикачи содржина или синхронизирај со ваши уреди!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Кога е избрана влезна папка, сите конфликтни датотеки во неа исто така ќе бидат препишани."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Кога е избрана влезна папка, содржината се запишува во постоечката папка и се извршува рекурсивно решавање на конфликти."]},{msgid:"Which files do you want to keep?",msgstr:["Кој датотеки сакаш да ги зачуваш?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Моментално сте идентификувани како {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Моментално не сте идентификувани."]},{msgid:"You cannot leave the name empty.",msgstr:["Не можете да го оставите името празно."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Треба да избереш најмалку едно решение за конфликт"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Треба да избереш најмалку една верзија за секоја датотека за да продолжи."]}]},{language:"ms_MY",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" adalah nama folder yang tidak sesuai ']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" nama folder yang tidak dibenarkan']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" tidak dibenarkan dalam nama folder']},{msgid:"All files",msgstr:["Semua fail"]},{msgid:"Choose",msgstr:["Pilih"]},{msgid:"Choose {file}",msgstr:["Pilih {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Pilih fail %n"]},{msgid:"Copy",msgstr:["menyalin"]},{msgid:"Copy to {target}",msgstr:["menyalin ke {target}"]},{msgid:"Could not create the new folder",msgstr:["Tidak dapat mewujudkan folder baharu"]},{msgid:"Could not load files settings",msgstr:["Tidak dapat memuatkan tetapan fail"]},{msgid:"Could not load files views",msgstr:["Tidak dapat memuatkan paparan fail"]},{msgid:"Create directory",msgstr:["mewujudkan direktori"]},{msgid:"Current view selector",msgstr:["pemilih pandangan semasa"]},{msgid:"Favorites",msgstr:["Pilihan"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Fail dan folder yang anda tanda sebagai pilihan akan dipaparkan di sini."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Fail dan folder yang anda telah ubah suai baru-baru ini dipaparkan di sini."]},{msgid:"Filter file list",msgstr:["Menapis senarai fail"]},{msgid:"Folder name cannot be empty.",msgstr:["Nama folder tidak boleh kosong."]},{msgid:"Home",msgstr:["Utama"]},{msgid:"Modified",msgstr:["Ubah suai"]},{msgid:"Move",msgstr:["pindah"]},{msgid:"Move to {target}",msgstr:["pindah ke {target}"]},{msgid:"Name",msgstr:["Nama"]},{msgid:"New",msgstr:["Baru"]},{msgid:"New folder",msgstr:["Folder Baharu"]},{msgid:"New folder name",msgstr:["Nama folder baharu"]},{msgid:"No files in here",msgstr:["Tiada fail di sini"]},{msgid:"No files matching your filter were found.",msgstr:["Tiada fail yang sepadan dengan tapisan anda."]},{msgid:"No matching files",msgstr:["Tiada fail yang sepadan"]},{msgid:"Recent",msgstr:["baru-baru ini"]},{msgid:"Select all entries",msgstr:["Pilih semua entri"]},{msgid:"Select entry",msgstr:["Pilih entri"]},{msgid:"Select the row for {nodename}",msgstr:["memilih baris {nodename}"]},{msgid:"Size",msgstr:["Saiz"]},{msgid:"Undo",msgstr:["buat asal"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Muat naik beberapa kandungan atau selaras dengan peranti anda!"]}]},{language:"nb_NO",translations:[{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" er ikke tillatt i et navn.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" er ikke et tillatt navn.']},{msgid:'"{name}" is an invalid folder name.',msgstr:["«{name}» er ikke et gyldig mappenavn."]},{msgid:'"{name}" is not an allowed folder name',msgstr:["«{name}» er ikke et tillatt mappenavn."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" er et reservert navn og er ikke tillatt.']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" er ikke tillatt inne i et mappenavn.']},{msgid:"All files",msgstr:["Alle filer"]},{msgid:"Cancel",msgstr:["Avbryt"]},{msgid:"Choose",msgstr:["Velg"]},{msgid:"Choose {file}",msgstr:["Velg {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Velg %n fil","Velg %n filer"]},{msgid:"Copy",msgstr:["Kopier"]},{msgid:"Copy to {target}",msgstr:["Kopier til {target}"]},{msgid:"Could not create the new folder",msgstr:["Kunne ikke opprette den nye mappen"]},{msgid:"Could not load files settings",msgstr:["Kunne ikke laste filinnstillinger"]},{msgid:"Could not load files views",msgstr:["Kunne ikke laste filvisninger"]},{msgid:"Create directory",msgstr:["Opprett mappe"]},{msgid:"Current view selector",msgstr:["Nåværende visningsvelger"]},{msgid:"Enter your name",msgstr:["Skriv inn navnet ditt"]},{msgid:"Failed to set nickname.",msgstr:["Kunne ikke lagre kallenavnet."]},{msgid:"Favorites",msgstr:["Favoritter"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Filer og mapper du markerer som favoritter vil vises her."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Filer og mapper du nylig har endret, vil vises her."]},{msgid:"Filter file list",msgstr:["Filtrer filliste"]},{msgid:"Folder name cannot be empty.",msgstr:["Mappenavn kan ikke være tomt."]},{msgid:"Guest identification",msgstr:["Gjesteidentifikasjon"]},{msgid:"Home",msgstr:["Hjem"]},{msgid:"Invalid name.",msgstr:["Ugyldig navn."]},{msgid:"Modified",msgstr:["Modifisert"]},{msgid:"Move",msgstr:["Flytt"]},{msgid:"Move to {target}",msgstr:["Flytt til {target}"]},{msgid:"Name",msgstr:["Navn"]},{msgid:"Names must not be empty.",msgstr:["Navn kan ikke være tomme."]},{msgid:'Names must not end with "{extension}".',msgstr:['Navn kan ikke ende med "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Navn kan ikke starte med et punktum."]},{msgid:"New",msgstr:["Ny"]},{msgid:"New folder",msgstr:["Ny mappe"]},{msgid:"New folder name",msgstr:["Nytt mappenavn"]},{msgid:"No files in here",msgstr:["Ingen filer her"]},{msgid:"No files matching your filter were found.",msgstr:["Ingen filer funnet med ditt filter."]},{msgid:"No matching files",msgstr:["Ingen filer samsvarer"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Vennligst angi et navn som har minst 2 tegn."]},{msgid:"Recent",msgstr:["Nylige"]},{msgid:"Select all entries",msgstr:["Velg alle oppføringer"]},{msgid:"Select entry",msgstr:["Velg oppføring"]},{msgid:"Select the row for {nodename}",msgstr:["Velg raden for {nodename}"]},{msgid:"Size",msgstr:["Størrelse"]},{msgid:"Submit name",msgstr:["Bekreft navn"]},{msgid:"Undo",msgstr:["Angre"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Last opp innhold eller synkroniser med enhetene dine!"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Du er akkurat nå identifisert som {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Du er akkurat nå ikke identifisert."]},{msgid:"You cannot leave the name empty.",msgstr:["Du kan ikke la navnet være blankt."]}]},{language:"nl",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["{char}is niet toegestaan in een mapnaam."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" kan niet gebruikt worden in de benaming.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" is geen toegestane naam.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" is een gereserveerde naam en niet toegestaan in mapnamen.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" is een gereserveerde naam en niet toegestaan.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n bestanden conflicteren","%nbestand bestanden conflicteren"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n bestand conflicteerd in {dirname}","%nbestanden conflicteert in {dirname}"]},{msgid:"All files",msgstr:["Alle bestanden"]},{msgid:"Cancel",msgstr:["Annuleren"]},{msgid:"Cancel the entire operation",msgstr:["Annuleer de hele bewerking"]},{msgid:"Choose",msgstr:["Kiezen"]},{msgid:"Choose {file}",msgstr:["Kies {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Kies %n bestand","Kies %n bestanden"]},{msgid:"Confirm",msgstr:["Bevestigen"]},{msgid:"Continue",msgstr:["Doorgaan"]},{msgid:"Copy",msgstr:["Kopiëren"]},{msgid:"Copy to {target}",msgstr:["Kopiëren naar {target}"]},{msgid:"Could not create the new folder",msgstr:["Kon de nieuwe map niet maken"]},{msgid:"Could not load files settings",msgstr:["Kon de bestandsinstellingen niet laden"]},{msgid:"Could not load files views",msgstr:["Kon de bestandsweergaves niet laden"]},{msgid:"Create directory",msgstr:["Map aanmaken"]},{msgid:"Current view selector",msgstr:["Huidige weergave keuze"]},{msgid:"Enter your name",msgstr:["Voer je naam in"]},{msgid:"Existing version",msgstr:["Bestaande versie"]},{msgid:"Failed to set nickname.",msgstr:["Kon geen bijnaam instellen."]},{msgid:"Favorites",msgstr:["Favorieten"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Bestanden en mappen die je als favoriet markeert, verschijnen hier."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Bestanden en mappen die je recentelijk hebt gewijzigd, verschijnen hier."]},{msgid:"Filter file list",msgstr:["Bestandslijst filteren"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Mapnamen mogen niet eindigen op "{extension}".']},{msgid:"Guest identification",msgstr:["Gastenidentificatie"]},{msgid:"Home",msgstr:["Thuis"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Als u beide versies selecteert wordt een nummer toegevoegd aan de naam van het binnenkomende bestand."]},{msgid:"Invalid folder name.",msgstr:["Ongeldige mapnaam."]},{msgid:"Invalid name.",msgstr:["Ongeldige naam."]},{msgid:"Last modified date unknown",msgstr:["Laatste wijzigingsdatum onbekend"]},{msgid:"Modified",msgstr:["Gewijzigd"]},{msgid:"Move",msgstr:["Verplaatsen"]},{msgid:"Move to {target}",msgstr:["Verplaatsen naar {target}"]},{msgid:"Name",msgstr:["Naam"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Namen mogen maximaal 64 tekens lang zijn."]},{msgid:"Names must not be empty.",msgstr:["Namen mogen niet leeg zijn."]},{msgid:'Names must not end with "{extension}".',msgstr:['Namen mogen niet eindigen met "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Namen mogen niet begonnen met een punt."]},{msgid:"New",msgstr:["Nieuw"]},{msgid:"New folder",msgstr:["Nieuwe map"]},{msgid:"New folder name",msgstr:["Nieuwe mapnaam"]},{msgid:"New version",msgstr:["Nieuwe versie"]},{msgid:"No files in here",msgstr:["Geen bestanden hier"]},{msgid:"No files matching your filter were found.",msgstr:["Geen bestanden gevonden die voldoen aan je filter."]},{msgid:"No matching files",msgstr:["Geen overeenkomende bestanden"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Voer een naam in met minimaal 2 tekens."]},{msgid:"Recent",msgstr:["Recent"]},{msgid:"Select all checkboxes",msgstr:["Selecteer alle aanvinkopties"]},{msgid:"Select all entries",msgstr:["Alle invoer selecteren"]},{msgid:"Select all existing files",msgstr:["Selecteer alle bestaande bestanden"]},{msgid:"Select all new files",msgstr:["Selecteer alle nieuwe bestanden"]},{msgid:"Select entry",msgstr:["Invoer selecteren"]},{msgid:"Select the row for {nodename}",msgstr:["Selecteer de rij voor {nodename}"]},{msgid:"Size",msgstr:["Grootte"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Sla %n bestand over","Sla %n bestanden over"]},{msgid:"Skip this file",msgstr:["Sla dit bestand over"]},{msgid:"Submit name",msgstr:["Naam indienen"]},{msgid:"Undo",msgstr:["Ongedaan maken"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Upload inhoud of synchroniseer met je apparaten!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Als een inkomende map wordt geselecteerd, worden alle conflicterende bestanden daarin overschreven."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Als een inkomende map wordt geselecteerd, wordt de inhoud naar de bestaande map geschreven en wordt een recursieve conflict-oplossing uitgevoerd."]},{msgid:"Which files do you want to keep?",msgstr:["Welke bestanden wilt u bewaren?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Je wordt momenteel geïdentificeerd als {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Je bent momenteel niet geïdentificeerd."]},{msgid:"You cannot leave the name empty.",msgstr:["Je kunt de naam niet leeg laten."]},{msgid:"You need to choose at least one conflict solution",msgstr:["U moet in elk geval een conflictoplossing kiezen"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["U moet minstens een versie van elk bestand kiezen om door te gaan. "]}]},{language:"pl",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['Znak "{char}" nie jest dozwolony w nazwie folderu.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" nie jest dozwolone w nazwie.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" nie jest dozwoloną nazwą.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" jest nazwą zastrzeżoną i nie jest dozwolona jako nazwa folderu.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" jest zastrzeżoną nazwą i nie jest dozwolone.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["Konflikt pliku","Konflikt %n plików","Konflikt %n plików","Konflikt %n plików"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n konfliktów pliku w {dirname}","%n konfliktów plików w {dirname}","%n konfliktów plików w {dirname}","%n konfliktów plików w {dirname}"]},{msgid:"All files",msgstr:["Wszystkie pliki"]},{msgid:"Cancel",msgstr:["Anuluj"]},{msgid:"Cancel the entire operation",msgstr:["Anuluj całą operację"]},{msgid:"Choose",msgstr:["Wybierz"]},{msgid:"Choose {file}",msgstr:["Wybierz {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Wybierz %n plik","Wybierz %n pliki","Wybierz %n plików","Wybierz %n plików"]},{msgid:"Confirm",msgstr:["Potwierdź"]},{msgid:"Continue",msgstr:["Kontynuuj"]},{msgid:"Copy",msgstr:["Kopiuj"]},{msgid:"Copy to {target}",msgstr:["Skopiuj do {target}"]},{msgid:"Could not create the new folder",msgstr:["Nie można utworzyć nowego folderu"]},{msgid:"Could not load files settings",msgstr:["Nie można wczytać ustawień plików"]},{msgid:"Could not load files views",msgstr:["Nie można wczytać widoków plików"]},{msgid:"Create directory",msgstr:["Utwórz katalog"]},{msgid:"Current view selector",msgstr:["Bieżący selektor widoku"]},{msgid:"Enter your name",msgstr:["Wprowadź nazwę"]},{msgid:"Existing version",msgstr:["Istniejąca wersja"]},{msgid:"Failed to set nickname.",msgstr:["Nie udało się utworzyć pseudonimu."]},{msgid:"Favorites",msgstr:["Ulubione"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Pliki i foldery które oznaczysz jako ulubione będą wyświetlały się tutaj"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Pliki i foldery które ostatnio modyfikowałeś będą wyświetlały się tutaj"]},{msgid:"Filter file list",msgstr:["Filtruj listę plików"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Nazwy folderów nie mogą kończyć się na "{extension}".']},{msgid:"Guest identification",msgstr:["Identyfikacja gościa"]},{msgid:"Home",msgstr:["Strona główna"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Jeśli wybierzesz obie wersje, do nazwy przychodzącego pliku zostanie dodany numer."]},{msgid:"Invalid folder name.",msgstr:["Nieprawidłowa nazwa folderu."]},{msgid:"Invalid name.",msgstr:["Nieprawidłowa nazwa."]},{msgid:"Last modified date unknown",msgstr:["Data ostatniej modyfikacji nieznana"]},{msgid:"Modified",msgstr:["Zmodyfikowano"]},{msgid:"Move",msgstr:["Przenieś"]},{msgid:"Move to {target}",msgstr:["Przejdź do {target}"]},{msgid:"Name",msgstr:["Nazwa"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Nazwy mogą mieć maksymalnie 64 znaki."]},{msgid:"Names must not be empty.",msgstr:["Nazwy nie mogą być puste."]},{msgid:'Names must not end with "{extension}".',msgstr:['Nazwy nie mogą kończyć się na "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Nazwy nie mogą zaczynać się od kropki."]},{msgid:"New",msgstr:["Nowy"]},{msgid:"New folder",msgstr:["Nowy folder"]},{msgid:"New folder name",msgstr:["Nowa nazwa folderu"]},{msgid:"New version",msgstr:["Nowa wersja"]},{msgid:"No files in here",msgstr:["Brak plików"]},{msgid:"No files matching your filter were found.",msgstr:["Nie znaleziono plików spełniających warunki filtru"]},{msgid:"No matching files",msgstr:["Brak pasujących plików"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Wprowadź nazwę zawierającą minimum 2 znaki."]},{msgid:"Recent",msgstr:["Ostatni"]},{msgid:"Select all checkboxes",msgstr:["Zaznacz wszystkie pola wyboru"]},{msgid:"Select all entries",msgstr:["Wybierz wszystkie wpisy"]},{msgid:"Select all existing files",msgstr:["Zaznacz wszystkie istniejące pliki"]},{msgid:"Select all new files",msgstr:["Zaznacz wszystkie nowe pliki"]},{msgid:"Select entry",msgstr:["Wybierz wpis"]},{msgid:"Select the row for {nodename}",msgstr:["Wybierz wiersz dla {nodename}"]},{msgid:"Size",msgstr:["Rozmiar"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Pomiń %n plik","Pomiń %n plików","Pomiń %n plików","Pomiń %n plików"]},{msgid:"Skip this file",msgstr:["Pomiń ten plik"]},{msgid:"Submit name",msgstr:["Zatwierdź nazwę"]},{msgid:"Undo",msgstr:["Cofnij"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Wyślij zawartość lub zsynchronizuj ze swoimi urządzeniami!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Po wybraniu przychodzącego folderu wszystkie konfliktujące pliki w jego obrębie również zostaną nadpisane."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Po wybraniu przychodzącego folderu jego zawartość zostanie zapisana w istniejącym folderze i zostanie przeprowadzone rekursywne rozwiązywanie konfliktów."]},{msgid:"Which files do you want to keep?",msgstr:["Które pliki chcesz zachować?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Obecnie jesteś zidentyfikowany jako {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Użytkownik nie został uwierzytelniony."]},{msgid:"You cannot leave the name empty.",msgstr:["Nazwa nie może być pusta."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Musisz wybrać co najmniej jedno rozwiązanie konfliktu"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Aby kontynuować, musisz wybrać co najmniej jedną wersję każdego pliku."]}]},{language:"pt_BR",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" não é permitido dentro de um nome de pasta.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" não é permitido dentro de um nome.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" não é um nome permitido.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" é um nome reservado e não permitido para nomes de pasta.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" é um nome reservado e não permitido.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n arquivo conflita","%n de arquivos conflitam","%n arquivos conflitam"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n conflito de arquivo em {dirname}","%n de conflitos de arquivos em {dirname}","%n conflitos de arquivos em {dirname}"]},{msgid:"All files",msgstr:["Todos os arquivos"]},{msgid:"Cancel",msgstr:["Cancelar"]},{msgid:"Cancel the entire operation",msgstr:["Cancelar toda a operação"]},{msgid:"Choose",msgstr:["Escolher"]},{msgid:"Choose {file}",msgstr:["Escolher {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Escolher %n arquivo","Escolher %n arquivos","Escolher %n arquivos"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Continue",msgstr:["Continuar"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar para {target}"]},{msgid:"Could not create the new folder",msgstr:["Não foi possível criar a nova pasta"]},{msgid:"Could not load files settings",msgstr:["Não foi possível carregar configurações de arquivos"]},{msgid:"Could not load files views",msgstr:["Não foi possível carregar visualições de arquivos"]},{msgid:"Create directory",msgstr:["Criar diretório"]},{msgid:"Current view selector",msgstr:["Seletor de visualização atual"]},{msgid:"Enter your name",msgstr:["Digite seu nome"]},{msgid:"Existing version",msgstr:["Versão existente"]},{msgid:"Failed to set nickname.",msgstr:["Falha ao definir apelido."]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Os arquivos e pastas que você marca como favoritos aparecerão aqui."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Arquivos e pastas que você modificou recentemente aparecerão aqui."]},{msgid:"Filter file list",msgstr:["Filtrar lista de arquivos"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Nomes de pasta não podem terminar com "{extension}".']},{msgid:"Guest identification",msgstr:["Identificação de convidados"]},{msgid:"Home",msgstr:["Início"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Se você selecionar ambas as versões, um número será adicionado ao nome do arquivo recebido."]},{msgid:"Invalid folder name.",msgstr:["Nome de pasta inválido."]},{msgid:"Invalid name.",msgstr:["Nome inválido."]},{msgid:"Last modified date unknown",msgstr:["Data da última modificação desconhecida"]},{msgid:"Modified",msgstr:["Modificado"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover para {target}"]},{msgid:"Name",msgstr:["Nome"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Os nomes podem ter no máximo 64 caracteres."]},{msgid:"Names must not be empty.",msgstr:["Nomes não podem estar vazios."]},{msgid:'Names must not end with "{extension}".',msgstr:['Nomes não podem terminar com "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Nomes não podem começar com um ponto."]},{msgid:"New",msgstr:["Novo"]},{msgid:"New folder",msgstr:["Nova pasta"]},{msgid:"New folder name",msgstr:["Novo nome de pasta"]},{msgid:"New version",msgstr:["Nova versão"]},{msgid:"No files in here",msgstr:["Nenhum arquivo aqui"]},{msgid:"No files matching your filter were found.",msgstr:["Nenhum arquivo correspondente ao seu filtro foi encontrado."]},{msgid:"No matching files",msgstr:["Nenhum arquivo correspondente"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Digite um nome com pelo menos 2 caracteres."]},{msgid:"Recent",msgstr:["Recente"]},{msgid:"Select all checkboxes",msgstr:["Selecione todas as caixas de seleção"]},{msgid:"Select all entries",msgstr:["Selecionar todas as entradas"]},{msgid:"Select all existing files",msgstr:["Selecione todos os arquivos existentes"]},{msgid:"Select all new files",msgstr:["Selecione todos os novos arquivos"]},{msgid:"Select entry",msgstr:["Selecionar entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Selecionar a linha para {nodename}"]},{msgid:"Size",msgstr:["Tamanho"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Ignorar %n arquivo","Ignorar %n de arquivos","Ignorar %n arquivos"]},{msgid:"Skip this file",msgstr:["Ignorar este arquivo"]},{msgid:"Submit name",msgstr:["Enviar nome"]},{msgid:"Undo",msgstr:["Desfazer"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Faça upload de algum conteúdo ou sincronize com seus dispositivos!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Ao selecionar uma pasta de entrada, quaisquer arquivos conflitantes dentro dela também serão sobrescritos."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Quando uma pasta de entrada é selecionada, o conteúdo é gravado na pasta existente e uma resolução recursiva de conflitos é realizada."]},{msgid:"Which files do you want to keep?",msgstr:["Quais arquivos você deseja manter?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Você está atualmente identificado como {nickname}."]},{msgid:"You are currently not identified.",msgstr:["No momento, você não está identificado."]},{msgid:"You cannot leave the name empty.",msgstr:["Você não pode deixar o nome vazio."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Você precisa escolher pelo menos uma solução para o conflito"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Você precisa selecionar pelo menos uma versão de cada arquivo para continuar."]}]},{language:"pt_PT",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" não é permitido dentro de um nome de pasta.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" não é permitido dentro de um nome.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" não é um nome permitido.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" é um nome reservado e não é permitido para nomes de pasta.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" é um nome reservado e não é permitido.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n ficheiro em conflito","%n ficheiros em conflito","%n ficheiros em conflito"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n ficheiro em conflito em {dirname}","%n ficheiros em conflito em {dirname}","%n ficheiros em conflito em {dirname}"]},{msgid:"All files",msgstr:["Todos os ficheiros"]},{msgid:"Cancel",msgstr:["Cancelar"]},{msgid:"Cancel the entire operation",msgstr:["Cancelar toda a operação"]},{msgid:"Choose",msgstr:["Escolher"]},{msgid:"Choose {file}",msgstr:["Escolher {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Escolha %n ficheiro","Escolha %n ficheiros","Escolha %n ficheiros"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Continue",msgstr:["Continuar"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar para {target}"]},{msgid:"Could not create the new folder",msgstr:["Não foi possível criar a nova pasta "]},{msgid:"Could not load files settings",msgstr:["Não foi possível carregar as definições dos ficheiros"]},{msgid:"Could not load files views",msgstr:["Não foi possível carregar as visualizações dos ficheiros"]},{msgid:"Create directory",msgstr:["Criar pasta"]},{msgid:"Current view selector",msgstr:["Seletor de visualização atual"]},{msgid:"Enter your name",msgstr:["Introduza o seu nome"]},{msgid:"Existing version",msgstr:["Versão existente"]},{msgid:"Failed to set nickname.",msgstr:["Falha ao definir o nome alternativo."]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Os ficheiros e as pastas que marcar como favoritos aparecerão aqui."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Os ficheiros e as pastas que modificou recentemente aparecerão aqui."]},{msgid:"Filter file list",msgstr:["Filtrar lista de ficheiros"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Nomes de pasta não podem terminar em "{extension}".']},{msgid:"Guest identification",msgstr:["Identificação de convidado"]},{msgid:"Home",msgstr:["Início"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Se você selecionar ambas as versões, um número será adicionado ao nome do ficheiro recebido."]},{msgid:"Invalid folder name.",msgstr:["Nome de pasta inválido."]},{msgid:"Invalid name.",msgstr:["Nome inválido."]},{msgid:"Last modified date unknown",msgstr:["Data da última modificação desconhecida"]},{msgid:"Modified",msgstr:["Modificado"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover para {target}"]},{msgid:"Name",msgstr:["Nome"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Os nomes podem ter no máximo 64 caracteres."]},{msgid:"Names must not be empty.",msgstr:["O nome não pode ficar em branco."]},{msgid:'Names must not end with "{extension}".',msgstr:['Nomes não podem terminar em "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Os nomes não podem começar por um ponto."]},{msgid:"New",msgstr:["Novo"]},{msgid:"New folder",msgstr:["Nova pasta"]},{msgid:"New folder name",msgstr:["Novo nome da pasta"]},{msgid:"New version",msgstr:["Nova versão"]},{msgid:"No files in here",msgstr:["Sem ficheiros aqui"]},{msgid:"No files matching your filter were found.",msgstr:["Não foi encontrado nenhum ficheiro correspondente ao seu filtro."]},{msgid:"No matching files",msgstr:["Nenhum ficheiro correspondente"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Introduza um nome com, pelo menos, 2 caracteres."]},{msgid:"Recent",msgstr:["Recentes"]},{msgid:"Select all checkboxes",msgstr:["Selecione todas as caixas de seleção"]},{msgid:"Select all entries",msgstr:["Selecionar todas as entradas"]},{msgid:"Select all existing files",msgstr:["Selecione todos os ficheiros existentes"]},{msgid:"Select all new files",msgstr:["Selecione todos os novos ficheiros"]},{msgid:"Select entry",msgstr:["Selecionar entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Selecione a linha para {nodename}"]},{msgid:"Size",msgstr:["Tamanho"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Ignorar %n ficheiro","Ignorar %n ficheiros","Ignorar %n ficheiros"]},{msgid:"Skip this file",msgstr:["Ignorar este ficheiro"]},{msgid:"Submit name",msgstr:["Submeter nome"]},{msgid:"Undo",msgstr:["Anular"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Envie algum conteúdo ou sincronize com os seus dispositivos!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Ao selecionar uma pasta de entrada, quaisquer ficheiros conflituantes dentro da mesma serão também sobrescritos."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Quando uma pasta de entrada é selecionada, o conteúdo é gravado na pasta existente e é realizada uma resolução recursiva de conflitos."]},{msgid:"Which files do you want to keep?",msgstr:["Quais os ficheiros que deseja manter?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Atualmente está identificado como {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Atualmente, não está identificado."]},{msgid:"You cannot leave the name empty.",msgstr:["Não pode deixar o nome em branco."]},{msgid:"You need to choose at least one conflict solution",msgstr:["É preciso escolher pelo menos uma solução para o conflito."]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["É necessário selecionar pelo menos uma versão de cada ficheiro para continuar."]}]},{language:"ro",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" este un nume de director invalid.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" nu este un nume de director permis']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" nu este permis în numele unui director.']},{msgid:"All files",msgstr:["Toate fișierele"]},{msgid:"Choose",msgstr:["Alege"]},{msgid:"Choose {file}",msgstr:["Alege {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Alege %n fișier","Alege %n fișiere","Alege %n fișiere"]},{msgid:"Copy",msgstr:["Copiază"]},{msgid:"Copy to {target}",msgstr:["Copiază în {target}"]},{msgid:"Could not create the new folder",msgstr:["Nu s-a putut crea noul director"]},{msgid:"Could not load files settings",msgstr:["Nu s-au putut încărca setările fișierelor"]},{msgid:"Could not load files views",msgstr:["Nu s-au putut încărca vizualizările fișierelor"]},{msgid:"Create directory",msgstr:["Creează director"]},{msgid:"Current view selector",msgstr:["Selectorul curent al vizualizării"]},{msgid:"Favorites",msgstr:["Favorite"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Fișiere și directoare pe care le marcați ca favorite vor apărea aici."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Fișiere și directoare pe care le-ați modificat recent vor apărea aici."]},{msgid:"Filter file list",msgstr:["Filtrează lista de fișiere"]},{msgid:"Folder name cannot be empty.",msgstr:["Numele de director nu poate fi necompletat."]},{msgid:"Home",msgstr:["Acasă"]},{msgid:"Modified",msgstr:["Modificat"]},{msgid:"Move",msgstr:["Mută"]},{msgid:"Move to {target}",msgstr:["Mută către {target}"]},{msgid:"Name",msgstr:["Nume"]},{msgid:"New",msgstr:["Nou"]},{msgid:"New folder",msgstr:["Director nou"]},{msgid:"New folder name",msgstr:["Numele noului director"]},{msgid:"No files in here",msgstr:["Nu există fișiere"]},{msgid:"No files matching your filter were found.",msgstr:["Nu există fișiere potrivite pentru filtrul selectat"]},{msgid:"No matching files",msgstr:["Nu există fișiere potrivite"]},{msgid:"Recent",msgstr:["Recente"]},{msgid:"Select all entries",msgstr:["Selectează toate înregistrările"]},{msgid:"Select entry",msgstr:["Selectează înregistrarea"]},{msgid:"Select the row for {nodename}",msgstr:["Selectează rândul pentru {nodename}"]},{msgid:"Size",msgstr:["Mărime"]},{msgid:"Undo",msgstr:["Anulează"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Încărcați conținut sau sincronizați cu dispozitivele dumneavoastră!"]}]},{language:"ru",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" не допускается в названии папки.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" не допускается внутри имени.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" это не допустимое имя.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" это зарезервированное имя и не допустимо для имени папки.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" это зарезервированное имя и не допустимо.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n конфликт файла","%n конфликта файлов","%n конфликтов файлов","%n конфликтов файлов"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n конфликт файлов в {dirname}","%n конфликта файлов в {dirname}","%n конфликтов файлов в {dirname}","%n конфликтов файлов в {dirname}"]},{msgid:"All files",msgstr:["Все файлы"]},{msgid:"Cancel",msgstr:["Отмена"]},{msgid:"Cancel the entire operation",msgstr:["Отмена операции"]},{msgid:"Choose",msgstr:["Выбрать"]},{msgid:"Choose {file}",msgstr:["Выбрать «{file}»"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Выбрать %n файл","Выбрать %n файла","Выбрать %n файлов","Выбрать %n файлов"]},{msgid:"Confirm",msgstr:["Подтвердить"]},{msgid:"Continue",msgstr:["Продолжить"]},{msgid:"Copy",msgstr:["Копировать"]},{msgid:"Copy to {target}",msgstr:["Копировать в «{target}»"]},{msgid:"Could not create the new folder",msgstr:["Не удалось создать новую папку"]},{msgid:"Could not load files settings",msgstr:["Не удалось загрузить настройки файлов"]},{msgid:"Could not load files views",msgstr:["Не удалось загрузить конфигурацию просмотра файлов"]},{msgid:"Create directory",msgstr:["Создать папку"]},{msgid:"Current view selector",msgstr:["Переключатель текущего вида"]},{msgid:"Enter your name",msgstr:["Введите ваше имя"]},{msgid:"Existing version",msgstr:["Текущая версия"]},{msgid:"Failed to set nickname.",msgstr:["Не удалось задать никнейм."]},{msgid:"Favorites",msgstr:["Избранное"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Здесь будут отображаться файлы и папки, которые вы пометили как избранные."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Здесь будут отображаться файлы и папки, которые вы недавно изменили."]},{msgid:"Filter file list",msgstr:["Фильтровать список файлов"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Имена папок не могут оканчиваться на "{extension}".']},{msgid:"Guest identification",msgstr:["Гостевая идентификация"]},{msgid:"Home",msgstr:["Домой"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Если вы выберете обе версии, к имени входящего файла будет добавлен номер."]},{msgid:"Invalid folder name.",msgstr:["Недопустимое имя папки."]},{msgid:"Invalid name.",msgstr:["Неверное имя."]},{msgid:"Last modified date unknown",msgstr:["Дата последнего изменения неизвестна"]},{msgid:"Modified",msgstr:["Изменен"]},{msgid:"Move",msgstr:["Переместить"]},{msgid:"Move to {target}",msgstr:["Переместить в «{target}»"]},{msgid:"Name",msgstr:["Имя"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Имена не могут быть длинее 64 символов."]},{msgid:"Names must not be empty.",msgstr:["Имена не могут быть пустыми."]},{msgid:'Names must not end with "{extension}".',msgstr:['Имена не могут оканчиваться на "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Имена должны начинаться с точки."]},{msgid:"New",msgstr:["Новый"]},{msgid:"New folder",msgstr:["Новая папка"]},{msgid:"New folder name",msgstr:["Имя новой папки"]},{msgid:"New version",msgstr:["Новая версия"]},{msgid:"No files in here",msgstr:["Здесь нет файлов"]},{msgid:"No files matching your filter were found.",msgstr:["Файлы, соответствующие вашему фильтру, не найдены."]},{msgid:"No matching files",msgstr:["Нет подходящих файлов"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Введите имя длиной не менее 2 символов."]},{msgid:"Recent",msgstr:["Недавний"]},{msgid:"Select all checkboxes",msgstr:["Выбрать все флажки"]},{msgid:"Select all entries",msgstr:["Выбрать все записи"]},{msgid:"Select all existing files",msgstr:["Выбрать все существующие файлы"]},{msgid:"Select all new files",msgstr:["Выбрать все новые файлы"]},{msgid:"Select entry",msgstr:["Выбрать запись"]},{msgid:"Select the row for {nodename}",msgstr:["Выбрать строку для «{nodename}»"]},{msgid:"Size",msgstr:["Размер"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Пропустить %n файл","Пропустить %n файла","Пропустить %n файлов","Пропустить %n файлов"]},{msgid:"Skip this file",msgstr:["Пропустить файл"]},{msgid:"Submit name",msgstr:["Отправить имя"]},{msgid:"Undo",msgstr:["Отменить"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Загрузите контент или синхронизируйте его со своими устройствами!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Когда выбрана входящая папка, все конфликтующие файлы в ней также будут перезаписаны."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Когда выбрана входящая папка, содержимое записывается в существующую папку и выполняется рекурсивное разрешение конфликтов."]},{msgid:"Which files do you want to keep?",msgstr:["Какие файлы вы хотите сохранить?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Вы идентифицированы как {nickname}."]},{msgid:"You are currently not identified.",msgstr:["В данный момент вы не идентифицированы."]},{msgid:"You cannot leave the name empty.",msgstr:["Вы не можете оставить имя пустым."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Вам нужно выбрать хотя бы одно решение конфликта"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Для продолжения вам нужно выбрать хотя бы одну версию каждого файла."]}]},{language:"sk_SK",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" nie je povolené v názve priečinka.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" nie je povolené v rámci mena.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" nie je povolený názov.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["„{segment}“ je rezervované meno a nie je povolené na názvy priečinkov."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" je rezervované meno a nie je povolené.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n konflikt súborov","%n konflikty súborov","%n konfliktov súborov","%n konflikty súborov"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n konflikt súborov v {dirname}","%n konflikty súborov v {dirname}","%n konfliktov súborov v {dirname}","%n konfliktov súborov v {dirname}"]},{msgid:"All files",msgstr:["Všetky súbory"]},{msgid:"Cancel",msgstr:["Zrušiť"]},{msgid:"Cancel the entire operation",msgstr:["Zrušiť celú operáciu"]},{msgid:"Choose",msgstr:["Vybrať"]},{msgid:"Choose {file}",msgstr:["Vybrať {súbor}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Vybraný %n súbor","Vybrané %n súbory","Vybraných %n súborov","Vybraných %n súborov"]},{msgid:"Confirm",msgstr:["Potvrdiť"]},{msgid:"Continue",msgstr:["Pokračovať"]},{msgid:"Copy",msgstr:["Kopírovať"]},{msgid:"Copy to {target}",msgstr:["Kopírovať do {umiestnenia}"]},{msgid:"Could not create the new folder",msgstr:["Nepodarilo sa vytvoriť nový priečinok"]},{msgid:"Could not load files settings",msgstr:["Nepodarilo sa načítať nastavenia súborov"]},{msgid:"Could not load files views",msgstr:["Nepodarilo sa načítať pohľady súborov"]},{msgid:"Create directory",msgstr:["Vytvoriť adresár"]},{msgid:"Current view selector",msgstr:["Výber aktuálneho zobrazenia"]},{msgid:"Enter your name",msgstr:["Zadajte svoje meno"]},{msgid:"Existing version",msgstr:["Existujúca verzia"]},{msgid:"Failed to set nickname.",msgstr:["Nepodarilo sa nastaviť prezývku."]},{msgid:"Favorites",msgstr:["Obľúbené"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Tu sa zobrazia súbory a priečinky, ktoré označíte ako obľúbené."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Tu sa zobrazia súbory a priečinky, ktoré ste nedávno upravili."]},{msgid:"Filter file list",msgstr:["Filtrovať zoznam súborov"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Názvy priečinkov nesmú končiť na "{extension}".']},{msgid:"Guest identification",msgstr:["Identifikácia hosťa"]},{msgid:"Home",msgstr:["Domov"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ak vyberiete obe verzie, prichádzajúci súbor bude mať k svojmu názvu pridané číslo."]},{msgid:"Invalid folder name.",msgstr:["Neplatný názov priečinka."]},{msgid:"Invalid name.",msgstr:["Neplatné meno."]},{msgid:"Last modified date unknown",msgstr:["Posledná zmena dátumu neznáma"]},{msgid:"Modified",msgstr:["Upravené"]},{msgid:"Move",msgstr:["Prejsť"]},{msgid:"Move to {target}",msgstr:["Prejsť na {umiestnenie}"]},{msgid:"Name",msgstr:["Názov"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Mená môžu mať maximálne 64 znakov."]},{msgid:"Names must not be empty.",msgstr:["Mená nesmú byť prázdne."]},{msgid:'Names must not end with "{extension}".',msgstr:['Mená nesmú končiť "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Mená nesmú začínať bodkou."]},{msgid:"New",msgstr:["Pridať"]},{msgid:"New folder",msgstr:["Pridať priečinok"]},{msgid:"New folder name",msgstr:["Pridať názov priečinka"]},{msgid:"New version",msgstr:["Nová verzia"]},{msgid:"No files in here",msgstr:["Nie sú tu žiadne súbory"]},{msgid:"No files matching your filter were found.",msgstr:["Nenašli sa žiadne súbory zodpovedajúce vášmu filtru."]},{msgid:"No matching files",msgstr:["Žiadne zodpovedajúce súbory"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Zadajte meno s aspoň 2 znakmi."]},{msgid:"Recent",msgstr:["Nedávne"]},{msgid:"Select all checkboxes",msgstr:["Vyberte všetky zaškrtávacie políčka"]},{msgid:"Select all entries",msgstr:["Vybrať všetky položky"]},{msgid:"Select all existing files",msgstr:["Vybrať všetky existujúce súbory"]},{msgid:"Select all new files",msgstr:["Vybrať všetky nové súbory"]},{msgid:"Select entry",msgstr:["Vybrať položku"]},{msgid:"Select the row for {nodename}",msgstr:["Vyberte riadok pre {názov uzla}"]},{msgid:"Size",msgstr:["Veľkosť"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Preskočiť %n súbor","Preskočiť %n súbory","Preskočiť %n súborov","Preskočiť %n súbory"]},{msgid:"Skip this file",msgstr:["Preskočiť tento súbor"]},{msgid:"Submit name",msgstr:["Zadať meno"]},{msgid:"Undo",msgstr:["Späť"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Nahrajte nejaký obsah alebo synchronizujte so svojimi zariadeniami!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Keď je vybraná prichádzajúca složka, všetky konfliktné súbory v nej budú taktiež prepísané."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Keď je vybraná prichádzajúca zložka, obsah sa zapíše do existujúcej zložky a vykoná sa rekurzívne riešenie konfliktov."]},{msgid:"Which files do you want to keep?",msgstr:["Ktoré súbory chcete zachovať?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Momentálne ste identifikovaný ako {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Momentálne nie ste identifikovaný."]},{msgid:"You cannot leave the name empty.",msgstr:["Nemôžete nechať meno prázdne."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Musíte si vybrať aspoň jedno riešenie konfliktu."]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Musíte vybrať aspoň jednu verziu každého súboru, aby ste mohli pokračovať."]}]},{language:"sl",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["{name} je neveljavno ime mape."]},{msgid:'"{name}" is not an allowed folder name',msgstr:["{name} ni dovoljeno ime mape"]},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" ni dovoljen v imenu mape.']},{msgid:"All files",msgstr:["Vse datoteke"]},{msgid:"Choose",msgstr:["Izberi"]},{msgid:"Choose {file}",msgstr:["Izberi {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Izberi %n datoteko","Izberi %n datoteki","Izberi %n datotek","Izberi %n datotek"]},{msgid:"Copy",msgstr:["Kopiraj"]},{msgid:"Copy to {target}",msgstr:["Kopiraj v {target}"]},{msgid:"Could not create the new folder",msgstr:["Nisem mogel ustvariti nove mape"]},{msgid:"Could not load files settings",msgstr:["NIsem mogel naložiti nastavitev datotek"]},{msgid:"Could not load files views",msgstr:["Nisem mogel naložiti pogledov datotek"]},{msgid:"Create directory",msgstr:["Ustvari mapo"]},{msgid:"Current view selector",msgstr:["Izbirnik trenutnega pogleda"]},{msgid:"Favorites",msgstr:["Priljubljene"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Datoteke in mape ki jih označite kot priljubljene se bodo prikazale tukaj."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Daoteke in mape ki ste jih pred kratkim spremenili se bodo prikazale tukaj."]},{msgid:"Filter file list",msgstr:["Filtriraj seznam datotek"]},{msgid:"Folder name cannot be empty.",msgstr:["Ime mape ne more biti prazno"]},{msgid:"Home",msgstr:["Domov"]},{msgid:"Modified",msgstr:["Spremenjeno"]},{msgid:"Move",msgstr:["Premakni"]},{msgid:"Move to {target}",msgstr:["Premakni v {target}"]},{msgid:"Name",msgstr:["Ime"]},{msgid:"New",msgstr:["Nov"]},{msgid:"New folder",msgstr:["Nova mapa"]},{msgid:"New folder name",msgstr:["Novo ime mape"]},{msgid:"No files in here",msgstr:["Tukaj ni datotek"]},{msgid:"No files matching your filter were found.",msgstr:["Ni bilo najdenih ujemajočih datotek glede na vaš filter."]},{msgid:"No matching files",msgstr:["Ni ujemajočih datotek"]},{msgid:"Recent",msgstr:["Nedavne"]},{msgid:"Select all entries",msgstr:["Izberi vse vnose"]},{msgid:"Select entry",msgstr:["Izberi vnos"]},{msgid:"Select the row for {nodename}",msgstr:["Izberi vrstico za {nodename}"]},{msgid:"Size",msgstr:["Velikost"]},{msgid:"Undo",msgstr:["Razveljavi"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Naloži nekaj vsebine ali sinhroniziraj s svojimi napravami!"]}]},{language:"sr",translations:[{msgid:'"{char}" is not allowed inside a name.',msgstr:["„{char}” није дозвољено унутар имена."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["„{extension}” није дозвољено име."]},{msgid:'"{name}" is an invalid folder name.',msgstr:["„{name}” није исправно име фолдера."]},{msgid:'"{name}" is not an allowed folder name',msgstr:["„{name}” није дозвољено име за фолдер."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["„{segment}” је резервисано име и није дозвољено."]},{msgid:'"/" is not allowed inside a folder name.',msgstr:["„/” није дозвољено унутар имена фолдера."]},{msgid:"All files",msgstr:["Сви фајлови"]},{msgid:"Cancel",msgstr:["Откажи"]},{msgid:"Choose",msgstr:["Изаберите"]},{msgid:"Choose {file}",msgstr:["Изаберите {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Изаберите %n фајл","Изаберите %n фајла","Изаберите %n фајлова"]},{msgid:"Copy",msgstr:["Копирај"]},{msgid:"Copy to {target}",msgstr:["Копирај у {target}"]},{msgid:"Could not create the new folder",msgstr:["Није могао да се креира нови фолдер"]},{msgid:"Could not load files settings",msgstr:["Не могу да се учитају подешавања фајлова"]},{msgid:"Could not load files views",msgstr:["Не могу да се учитају прикази фајлова"]},{msgid:"Create directory",msgstr:["Креирај директоријум"]},{msgid:"Current view selector",msgstr:["Бирач тренутног приказа"]},{msgid:"Enter your name",msgstr:["Унесите своје име"]},{msgid:"Failed to set nickname.",msgstr:["Није успело постављање надимка."]},{msgid:"Favorites",msgstr:["Омиљено"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Овде ће се појавити фајлови и фолдери које сте означили као омиљене."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Овде ће се појавити фајлови и фолдери који се се недавно изменили."]},{msgid:"Filter file list",msgstr:["Фитрирање листе фајлова"]},{msgid:"Folder name cannot be empty.",msgstr:["Име фолдера не може бити празно."]},{msgid:"Guest identification",msgstr:["Идентификација госта"]},{msgid:"Home",msgstr:["Почетак"]},{msgid:"Invalid name.",msgstr:["Неисправно име."]},{msgid:"Modified",msgstr:["Измењено"]},{msgid:"Move",msgstr:["Премести"]},{msgid:"Move to {target}",msgstr:["Премести у {target}"]},{msgid:"Name",msgstr:["Име"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Највећа дужина имена може бити 64 карактера."]},{msgid:"Names must not be empty.",msgstr:["Имена не смеју да буду празна."]},{msgid:'Names must not end with "{extension}".',msgstr:["Имена не смеју да се завршавају на „{extension}”."]},{msgid:"Names must not start with a dot.",msgstr:["Имена не смеју да почињу тачком."]},{msgid:"New",msgstr:["Ново"]},{msgid:"New folder",msgstr:["Нови фолдер"]},{msgid:"New folder name",msgstr:["Име новог фолдера"]},{msgid:"No files in here",msgstr:["Овде нема фајлова"]},{msgid:"No files matching your filter were found.",msgstr:["Није пронађен ниједан фајл који задовољава ваш филтер."]},{msgid:"No matching files",msgstr:["Нема таквих фајлова"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Молимо вас да унесете име од барем два карактера."]},{msgid:"Recent",msgstr:["Скорашње"]},{msgid:"Select all entries",msgstr:["Изаберите све ставке"]},{msgid:"Select entry",msgstr:["Изаберите ставку"]},{msgid:"Select the row for {nodename}",msgstr:["Изаберите ред за {nodename}"]},{msgid:"Size",msgstr:["Величина"]},{msgid:"Submit name",msgstr:["Предај име"]},{msgid:"Undo",msgstr:["Поништи"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Отпремите нешто или синхронизујте са својим уређајима!"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Тренутно се идентификујете као {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Тренутно немате идентификацију."]},{msgid:"You cannot leave the name empty.",msgstr:["Име не можете да оставите празно."]}]},{language:"sr@latin",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["„{name}” je neispravan naziv foldera."]},{msgid:'"{name}" is not an allowed folder name',msgstr:["„{name}” je nedozvoljen naziv foldera."]},{msgid:'"/" is not allowed inside a folder name.',msgstr:["„/” se ne može koristiti unutar naziva foldera."]},{msgid:"All files",msgstr:["Svi fajlovi"]},{msgid:"Choose",msgstr:["Izaberite"]},{msgid:"Choose {file}",msgstr:["Izaberite {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Izaberite %n fajl","Izaberite %n fajla","Izaberite %n fajlova"]},{msgid:"Copy",msgstr:["Kopiraj"]},{msgid:"Copy to {target}",msgstr:["Kopiraj u {target}"]},{msgid:"Could not create the new folder",msgstr:["Neuspešno kreiranje novog foldera"]},{msgid:"Could not load files settings",msgstr:["Neuspešno učitavanje podešavanja fajlova"]},{msgid:"Could not load files views",msgstr:["Neuspešno učitavanje prikaza fajlova"]},{msgid:"Create directory",msgstr:["Kreiraj direktorijum"]},{msgid:"Current view selector",msgstr:["Birač trenutnog prikaza"]},{msgid:"Favorites",msgstr:["Omiljeno"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Lista omiljenih fajlova i foldera."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Lista fajlova i foldera sa skorašnjim izmenama."]},{msgid:"Filter file list",msgstr:["Fitriranje liste fajlova"]},{msgid:"Folder name cannot be empty.",msgstr:["Naziv foldera ne može biti prazan."]},{msgid:"Home",msgstr:["Početak"]},{msgid:"Modified",msgstr:["Izmenjeno"]},{msgid:"Move",msgstr:["Premesti"]},{msgid:"Move to {target}",msgstr:["Premesti u {target}"]},{msgid:"Name",msgstr:["Naziv"]},{msgid:"New",msgstr:["Novo"]},{msgid:"New folder",msgstr:["Novi folder"]},{msgid:"New folder name",msgstr:["Naziv novog foldera"]},{msgid:"No files in here",msgstr:["Bez fajlova"]},{msgid:"No files matching your filter were found.",msgstr:["Nema fajlova koji zadovoljavaju uslove filtera."]},{msgid:"No matching files",msgstr:["Nema takvih fajlova"]},{msgid:"Recent",msgstr:["Skorašnje"]},{msgid:"Select all entries",msgstr:["Izaberite sve stavke"]},{msgid:"Select entry",msgstr:["Izaberite stavku"]},{msgid:"Select the row for {nodename}",msgstr:["Izaberite red za {nodename}"]},{msgid:"Size",msgstr:["Veličina"]},{msgid:"Undo",msgstr:["Vrati"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Otpremite sadržaj ili sinhronizujte sa svojim uređajima!"]}]},{language:"sv",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" är inte tillåtet i ett mappnamn.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" är inte tillåtet i ett namn.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" är inte ett tillåtet namn.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" är ett reserverat namn och inte tillåtet mappnamn.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" är ett reserverat namn och inte tillåtet.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n fil är i konflikt","%n filer är i konflikt"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n fil är i konflikt i {dirname}","%n filer är i konflikt i {dirname}"]},{msgid:"All files",msgstr:["Alla filer"]},{msgid:"Cancel",msgstr:["Avbryt"]},{msgid:"Cancel the entire operation",msgstr:["Avbryt hela operationen"]},{msgid:"Choose",msgstr:["Välj"]},{msgid:"Choose {file}",msgstr:["Välj {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Välj %n fil","Välj %n filer"]},{msgid:"Confirm",msgstr:["Bekräfta"]},{msgid:"Continue",msgstr:["Fortsätt"]},{msgid:"Copy",msgstr:["Kopiera"]},{msgid:"Copy to {target}",msgstr:["Kopiera till {target}"]},{msgid:"Could not create the new folder",msgstr:["Kunde inte skapa den nya mappen"]},{msgid:"Could not load files settings",msgstr:["Kunde inte ladda filinställningar"]},{msgid:"Could not load files views",msgstr:["Kunde inte ladda filvyer"]},{msgid:"Create directory",msgstr:["Skapa katalog"]},{msgid:"Current view selector",msgstr:["Aktuell vyväljare"]},{msgid:"Enter your name",msgstr:["Ange ditt namn"]},{msgid:"Existing version",msgstr:["Nuvarande version"]},{msgid:"Failed to set nickname.",msgstr:["Kunde inte ställa in smeknamn."]},{msgid:"Favorites",msgstr:["Favoriter"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Filer och mappar som du markerar som favorit kommer att visas här."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Filer och mappar som du nyligen ändrat kommer att visas här."]},{msgid:"Filter file list",msgstr:["Filtrera fillistan"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Mappnamn får inte sluta med "{extension}".']},{msgid:"Guest identification",msgstr:["Gästidentifiering"]},{msgid:"Home",msgstr:["Hem"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Om du väljer båda versionerna kommer den inkommande filen att få ett nummer tillagt i sitt namn."]},{msgid:"Invalid folder name.",msgstr:["Ogiltigt mappnamn."]},{msgid:"Invalid name.",msgstr:["Ogiltigt namn."]},{msgid:"Last modified date unknown",msgstr:["Senaste ändringsdatum okänt"]},{msgid:"Modified",msgstr:["Ändrad"]},{msgid:"Move",msgstr:["Flytta"]},{msgid:"Move to {target}",msgstr:["Flytta till {target}"]},{msgid:"Name",msgstr:["Namn"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Namnen kan vara högst 64 tecken långa."]},{msgid:"Names must not be empty.",msgstr:["Namn får inte vara tomt."]},{msgid:'Names must not end with "{extension}".',msgstr:['Namn får inte sluta med "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Namn får inte börja med en punkt."]},{msgid:"New",msgstr:["Ny"]},{msgid:"New folder",msgstr:["Ny mapp"]},{msgid:"New folder name",msgstr:["Nytt mappnamn"]},{msgid:"New version",msgstr:["Ny version"]},{msgid:"No files in here",msgstr:["Inga filer här"]},{msgid:"No files matching your filter were found.",msgstr:["Inga filer som matchar ditt filter hittades."]},{msgid:"No matching files",msgstr:["Inga matchande filer"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Ange ett namn med minst 2 tecken."]},{msgid:"Recent",msgstr:["Nyligen"]},{msgid:"Select all checkboxes",msgstr:["Markera alla kryssrutor"]},{msgid:"Select all entries",msgstr:["Välj alla poster"]},{msgid:"Select all existing files",msgstr:["Välj alla befintliga filer"]},{msgid:"Select all new files",msgstr:["Välj alla nya filer"]},{msgid:"Select entry",msgstr:["Välj post"]},{msgid:"Select the row for {nodename}",msgstr:["Välj raden för {nodename}"]},{msgid:"Size",msgstr:["Storlek"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Hoppa över %n fil","Hoppa över %n filer"]},{msgid:"Skip this file",msgstr:["Hoppa över den här filen"]},{msgid:"Submit name",msgstr:["Skicka namn"]},{msgid:"Undo",msgstr:["Ångra"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Ladda upp lite innehåll eller synkronisera med dina enheter!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["När en inkommande mapp väljs kommer eventuella konflikterande filer i den också att skrivas över."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["När en inkommande mapp väljs skrivs innehållet in i den befintliga mappen och en rekursiv konfliktlösning utförs."]},{msgid:"Which files do you want to keep?",msgstr:["Vilka filer vill du behålla?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Du är för närvarande identifierad som {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Du är för närvarande inte identifierad."]},{msgid:"You cannot leave the name empty.",msgstr:["Du kan inte lämna namnet tomt."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Du måste välja minst en konfliktlösning"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du måste välja minst en version av varje fil för att fortsätta."]}]},{language:"tr",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" karakteri bir klasör adında kullanılamaz.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['Bir ad içinde "{char}" karakteri kullanılamaz.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" adına izin verilmiyor.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" adı sistem için ayrılmış olduğundan klasör adlarında kullanılamaz.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" adı sistem için ayrılmış olduğundan kullanılamaz.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n dosya çakışıyor","%n dosya çakışıyor"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["{dirname} içindeki %n dosya çakışıyor","{dirname} içindeki %n dosya çakışıyor"]},{msgid:"All files",msgstr:["Tüm dosyalar"]},{msgid:"Cancel",msgstr:["İptal"]},{msgid:"Cancel the entire operation",msgstr:["Tüm işlemi iptal et"]},{msgid:"Choose",msgstr:["Seçin"]},{msgid:"Choose {file}",msgstr:["{file} seçin"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["%n dosya seçin","%n dosya seçin"]},{msgid:"Confirm",msgstr:["Onayla"]},{msgid:"Continue",msgstr:["İlerle"]},{msgid:"Copy",msgstr:["Kopyala"]},{msgid:"Copy to {target}",msgstr:["{target} üzerine kopyala"]},{msgid:"Could not create the new folder",msgstr:["Yeni klasör oluşturulamadı"]},{msgid:"Could not load files settings",msgstr:["Dosyalar uygulamasının ayarları yüklenemedi"]},{msgid:"Could not load files views",msgstr:["Dosyalar uygulamasının görünümleri yüklenemedi"]},{msgid:"Create directory",msgstr:["Klasör oluştur"]},{msgid:"Current view selector",msgstr:["Geçerli görünüm seçici"]},{msgid:"Enter your name",msgstr:["Adınızı yazın"]},{msgid:"Existing version",msgstr:["Var olan sürüm"]},{msgid:"Failed to set nickname.",msgstr:["Takma ad ayarlanamadı."]},{msgid:"Favorites",msgstr:["Sık kullanılanlar"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Sık kullanılan olarak seçtiğiniz dosyalar burada görüntülenir."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Son zamanlarda değiştirdiğiniz dosya ve klasörler burada görüntülenir."]},{msgid:"Filter file list",msgstr:["Dosya listesini süz"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Klasör adları "{extension}" ile bitemez.']},{msgid:"Guest identification",msgstr:["Konuk kimliği"]},{msgid:"Home",msgstr:["Giriş"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["İki sürümü de seçerseniz, gelen dosyanın adına bir sayı eklenir."]},{msgid:"Invalid folder name.",msgstr:["Klasör adı geçersiz."]},{msgid:"Invalid name.",msgstr:["Ad geçersiz."]},{msgid:"Last modified date unknown",msgstr:["Son değiştirilme tarihi bilinmiyor."]},{msgid:"Modified",msgstr:["Değiştirilme"]},{msgid:"Move",msgstr:["Taşı"]},{msgid:"Move to {target}",msgstr:["{target} üzerine taşı"]},{msgid:"Name",msgstr:["Ad"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Adlar en fazla 64 karakter uzunluğunda olabilir."]},{msgid:"Names must not be empty.",msgstr:["Ad boş olamaz."]},{msgid:'Names must not end with "{extension}".',msgstr:['Ad "{extension}" ile bitemez.']},{msgid:"Names must not start with a dot.",msgstr:["Ad nokta karakteri ile başlayamaz."]},{msgid:"New",msgstr:["Yeni"]},{msgid:"New folder",msgstr:["Yeni klasör"]},{msgid:"New folder name",msgstr:["Yeni klasör adı"]},{msgid:"New version",msgstr:["Yeni sürüm"]},{msgid:"No files in here",msgstr:["Burada herhangi bir dosya yok"]},{msgid:"No files matching your filter were found.",msgstr:["Süzgece uyan bir dosya bulunamadı."]},{msgid:"No matching files",msgstr:["Eşleşen bir dosya yok"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Ad en az 2 karakter uzunluğunda olmalıdır."]},{msgid:"Recent",msgstr:["Son kullanılanlar"]},{msgid:"Select all checkboxes",msgstr:["Tüm kutuları işaretle"]},{msgid:"Select all entries",msgstr:["Tüm kayıtları seç"]},{msgid:"Select all existing files",msgstr:["Tüm var olan dosyaları seç"]},{msgid:"Select all new files",msgstr:["Tüm yeni dosyaları seç"]},{msgid:"Select entry",msgstr:["Kaydı seç"]},{msgid:"Select the row for {nodename}",msgstr:["{nodename} satırını seçin"]},{msgid:"Size",msgstr:["Boyut"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n dosyayı atla","%n dosyayı atla"]},{msgid:"Skip this file",msgstr:["Bu dosyayı atla"]},{msgid:"Submit name",msgstr:["Adı gönder"]},{msgid:"Undo",msgstr:["Geri al"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Bazı içerikler yükleyin ya da aygıtlarınızla eşitleyin!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Bir gelen klasör seçildiğinde, içindeki çakışan dosyaların da üzerine yazılır."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Bir gelen klasör seçildiğinde, içerik var olan klasöre yazılır ve alt klasörlerle bir çakışma çözümü uygulanır."]},{msgid:"Which files do you want to keep?",msgstr:["Hangi dosyaları tutmak istiyorsunuz?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["{nickname} olarak tanınıyorsunuz."]},{msgid:"You are currently not identified.",msgstr:["Henüz kendinizi tanıtmadınız."]},{msgid:"You cannot leave the name empty.",msgstr:["Ad boş bırakılamaz."]},{msgid:"You need to choose at least one conflict solution",msgstr:["En az bir çakışma çözümü seçmelisiniz"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["İlerlemek için her dosaynın en az bir sürümünü seçmelisiniz."]}]},{language:"uk",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["{char} не дозволено всередині назви каталогу."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" не дозволено всередині імени.']},{msgid:'"{extension}" is not an allowed name.',msgstr:[`"{extension}" недозволене ім'я.`]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["{segment} є зарезервованим ім'ям і не дозволено для назви каталогу."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:[`"{segment}" зарезервоване ім'я і не дозволено для використання.`]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n конфлікт файлів","%n конфлікти файлів","%n конфліктів файлів","%n конфліктів файлів"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n конфлікт файлів у каталозі {dirname}","%n конфлікти файлів у каталозі {dirname}","%n конфліктів файлів у каталозі {dirname}","%n конфліктів файлів у каталозі {dirname}"]},{msgid:"All files",msgstr:["Всі файли"]},{msgid:"Cancel",msgstr:["Скасувати"]},{msgid:"Cancel the entire operation",msgstr:["Скасувати всю операцію"]},{msgid:"Choose",msgstr:["Вибрати"]},{msgid:"Choose {file}",msgstr:["Вибрати {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Вибрати %n файл","Вибрати %n файли","Вибрати %n файлів","Вибрати %n файлів"]},{msgid:"Confirm",msgstr:["Підтвердити"]},{msgid:"Continue",msgstr:["Продовжити"]},{msgid:"Copy",msgstr:["Копіювати"]},{msgid:"Copy to {target}",msgstr:["Копіювати до {target}"]},{msgid:"Could not create the new folder",msgstr:["Не вдалося створити новий каталог"]},{msgid:"Could not load files settings",msgstr:["Не вдалося завантажити налаштування файлів"]},{msgid:"Could not load files views",msgstr:["Не вдалося завантажити подання файлів"]},{msgid:"Create directory",msgstr:["Створити каталог"]},{msgid:"Current view selector",msgstr:["Вибір подання"]},{msgid:"Enter your name",msgstr:["Зазначте ваше ім'я"]},{msgid:"Existing version",msgstr:["Наявна версія"]},{msgid:"Failed to set nickname.",msgstr:["Не вдалося встановити псевдо."]},{msgid:"Favorites",msgstr:["Із зірочкою"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Тут показуватимуться файли та каталоги, які ви позначите зірочкою."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Тут показуватимуться файли та каталоги, які було нещодавно змінено."]},{msgid:"Filter file list",msgstr:["Фільтрувати список файлів"]},{msgid:'Folder names must not end with "{extension}".',msgstr:[`Ім'я каталогу не може закінчуватися на "{extension}".`]},{msgid:"Guest identification",msgstr:["Ім'я для гостя"]},{msgid:"Home",msgstr:["Домівка"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Якщо вибрати обидві версії, до назви вхідного файлу буде додано цифру. "]},{msgid:"Invalid folder name.",msgstr:["Недійсне ім'я каталогу."]},{msgid:"Invalid name.",msgstr:["Недійсне ім'я."]},{msgid:"Last modified date unknown",msgstr:["Дата останньої зміни невідома"]},{msgid:"Modified",msgstr:["Змінено"]},{msgid:"Move",msgstr:["Перемістити"]},{msgid:"Move to {target}",msgstr:["Перемістити до {target}"]},{msgid:"Name",msgstr:["Ім'я"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Імена мають мати довжину не більше 64 символів."]},{msgid:"Names must not be empty.",msgstr:["Ім'я не може бути порожнє."]},{msgid:'Names must not end with "{extension}".',msgstr:[`Ім'я не може закінчуватися на "{extension}".`]},{msgid:"Names must not start with a dot.",msgstr:["Ім'я не може починатися з крапки."]},{msgid:"New",msgstr:["Новий"]},{msgid:"New folder",msgstr:["Новий каталог"]},{msgid:"New folder name",msgstr:["Ім'я нового каталогу"]},{msgid:"New version",msgstr:["Нова версія"]},{msgid:"No files in here",msgstr:["Тут відсутні файли"]},{msgid:"No files matching your filter were found.",msgstr:["Відсутні збіги за фільтром."]},{msgid:"No matching files",msgstr:["Відсутні збіги файлів."]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Зазначте ім'я довжиною не менше 2 символів"]},{msgid:"Recent",msgstr:["Останні"]},{msgid:"Select all checkboxes",msgstr:["Вибрати всі прапорці"]},{msgid:"Select all entries",msgstr:["Вибрати всі записи"]},{msgid:"Select all existing files",msgstr:["Вибрати всі наявні файли"]},{msgid:"Select all new files",msgstr:["Вибрати всі нові файли"]},{msgid:"Select entry",msgstr:["Вибрати запис"]},{msgid:"Select the row for {nodename}",msgstr:["Вибрати рядок для {nodename}"]},{msgid:"Size",msgstr:["Розмір"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Пропустити %n файл","Пропустити %n файли","Пропустити %n файлів","Пропустити %n файлів"]},{msgid:"Skip this file",msgstr:["Пропустити цей файл"]},{msgid:"Submit name",msgstr:["Встановити ім'я"]},{msgid:"Undo",msgstr:["Повернути"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Завантажте вміст або синхронізуйте з вашим пристроєм!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Коли вибрано вхідний каталог, будь-які файли з конфліктами буде також перезаписано."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Коли вибрано вхідний каталог, вміст буде записано до існуючого каталогу, а також виконано вирішення конфліктів всередині каталогу."]},{msgid:"Which files do you want to keep?",msgstr:["Які файли залишити?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Вас визначено як {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Вас не ідентифіковано."]},{msgid:"You cannot leave the name empty.",msgstr:["Потрібно зазначити ім'я."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Треб вибрати щонайменше одне рішення конфлікту"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Треба вибрати щонайменше одну версію кожного файлу, щоби продовжити."]}]},{language:"uz",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['Papka nomi ichida "{char}" ga ruxsat berilmaydi.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['Nom ichida "{char}" ga ruxsat berilmagan.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" ruxsat etilgan nom emas.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:[`"{segment}" ajratilgan nom bo'lib, papka nomlari uchun ruxsat berilmagan.`]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" - zaxiralangan nom va ruxsat berilmaydi.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n fayl ziddiyatli"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["{dirname} da %n fayl ziddiyati"]},{msgid:"All files",msgstr:["Barcha fayllar"]},{msgid:"Cancel",msgstr:["Bekor qilish"]},{msgid:"Cancel the entire operation",msgstr:["Butun operatsiyani bekor qiling"]},{msgid:"Choose",msgstr:["Tanlang"]},{msgid:"Choose {file}",msgstr:["Tanlang {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Tanlang %n faylni"]},{msgid:"Confirm",msgstr:["Tasdiqlang"]},{msgid:"Continue",msgstr:["Davom eting"]},{msgid:"Copy",msgstr:["Nusxa"]},{msgid:"Copy to {target}",msgstr:[" {target} ga nusxa"]},{msgid:"Could not create the new folder",msgstr:["Yangi jild yaratib bo‘lmadi"]},{msgid:"Could not load files settings",msgstr:["Fayl sozlamalari yuklanmadi"]},{msgid:"Could not load files views",msgstr:["Fayllarni koʻrishni yuklab boʻlmadi"]},{msgid:"Create directory",msgstr:["Katalog yaratish"]},{msgid:"Current view selector",msgstr:["Joriy ko'rinish selektori"]},{msgid:"Enter your name",msgstr:["Ismingizni kiriting"]},{msgid:"Existing version",msgstr:["Mavjud versiya"]},{msgid:"Failed to set nickname.",msgstr:["Taxallusni o‘rnatib bo‘lmadi."]},{msgid:"Favorites",msgstr:["Tanlanganlar"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Tanlangan deb belgilagan fayl va papkalar shu yerda koʻrinadi."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Siz yaqinda oʻzgartirgan fayl va papkalar shu yerda koʻrinadi."]},{msgid:"Filter file list",msgstr:["Fayl ro'yxatini filtrlash"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Papka nomlari "{extension}" bilan tugamasligi kerak.']},{msgid:"Guest identification",msgstr:["Foydalanuvchini identifikatsiyalash"]},{msgid:"Home",msgstr:["Uy"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Agar siz ikkala versiyani tanlasangiz, kiruvchi fayl nomiga qo'shilgan raqamga ega bo'ladi."]},{msgid:"Invalid folder name.",msgstr:["Jild nomi noto'g'ri."]},{msgid:"Invalid name.",msgstr:["Nomi noto‘g‘ri."]},{msgid:"Last modified date unknown",msgstr:["Oxirgi tahrirlangan sana noma'lum"]},{msgid:"Modified",msgstr:["Modifikatsiyalangan"]},{msgid:"Move",msgstr:["Ko'chirish"]},{msgid:"Move to {target}",msgstr:[" {target} ga ko'chirish"]},{msgid:"Name",msgstr:["Nomi"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Ismlar ko'pi bilan 64 ta belgidan iborat bo'lishi mumkin."]},{msgid:"Names must not be empty.",msgstr:["Ismlar bo'sh bo'lmasligi kerak."]},{msgid:'Names must not end with "{extension}".',msgstr:['Ismlar "{extension}" bilan tugamasligi kerak.']},{msgid:"Names must not start with a dot.",msgstr:["Ismlar nuqta bilan boshlanmasligi kerak."]},{msgid:"New",msgstr:["Yangi"]},{msgid:"New folder",msgstr:["Yangi jild"]},{msgid:"New folder name",msgstr:["Yangi jild nomi"]},{msgid:"New version",msgstr:["Yangi versiya"]},{msgid:"No files in here",msgstr:["Fayl mavjud emas"]},{msgid:"No files matching your filter were found.",msgstr:["Filtringizga mos keladigan fayl topilmadi."]},{msgid:"No matching files",msgstr:["Mos fayllar yo'q"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Kamida 2 ta belgidan iborat nom kiriting."]},{msgid:"Recent",msgstr:["Yaqinda"]},{msgid:"Select all checkboxes",msgstr:["Barcha katakchalarni belgilang"]},{msgid:"Select all entries",msgstr:["Barcha yozuvlarni tanlang"]},{msgid:"Select all existing files",msgstr:["Barcha mavjud fayllarni tanlang"]},{msgid:"Select all new files",msgstr:["Barcha yangi fayllarni tanlang"]},{msgid:"Select entry",msgstr:["Yozuvni tanlang"]},{msgid:"Select the row for {nodename}",msgstr:["{nodename} uchun qatorni tanlang"]},{msgid:"Size",msgstr:["O`lcham"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n faylni oʻtkazib yuborish"]},{msgid:"Skip this file",msgstr:["Ushbu faylni o'tkazib yuboring"]},{msgid:"Submit name",msgstr:["Ismni tasdiqlang"]},{msgid:"Undo",msgstr:["Bekor qilish"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Qurilmangizga ba'zi kontentni yuklang yoki sinxronlang!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Kiruvchi papka tanlanganda, undagi har qanday ziddiyatli fayllar ham ustiga yoziladi."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Kiruvchi papka tanlanganda, kontent mavjud jildga yoziladi va nizolarni rekursiv hal qilish amalga oshiriladi."]},{msgid:"Which files do you want to keep?",msgstr:["Qaysi fayllarni saqlamoqchisiz?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Siz hozirda {nickname} sifatida aniqlangansiz."]},{msgid:"You are currently not identified.",msgstr:["Siz hozirda identifikatsiyadan o'tmagansiz"]},{msgid:"You cannot leave the name empty.",msgstr:["Ism katagini bo'sh qoldirib bo'lmaydi."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Siz kamida bitta mojaro yechimini tanlashingiz kerak"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Davom etish uchun har bir faylning kamida bitta versiyasini tanlashingiz kerak."]}]},{language:"vi",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" là tên thư mục không hợp lệ.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"1{name}"không phải là tên thư mục được cho phép']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/"không được phép đặt trong tên thư mục.']},{msgid:"All files",msgstr:["Tất cả tệp"]},{msgid:"Choose",msgstr:["Chọn"]},{msgid:"Choose {file}",msgstr:["Chọn {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Chọn %n tệp"]},{msgid:"Copy",msgstr:["Sao chép"]},{msgid:"Copy to {target}",msgstr:["Sao chép đến {target}"]},{msgid:"Could not create the new folder",msgstr:["Không thể tạo thư mục mới"]},{msgid:"Could not load files settings",msgstr:["Không thể tải tập tin cài đặt"]},{msgid:"Could not load files views",msgstr:["Không thể tải xuống tệp xem"]},{msgid:"Create directory",msgstr:["Tạo thư mục"]},{msgid:"Current view selector",msgstr:["Hiện tại chế độ xem của bộ chọn"]},{msgid:"Favorites",msgstr:["Yêu cầu thích"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Các tập tin và thư mục bạn đánh dấu yêu thích sẽ hiển thị ở đây."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Các tập tin và thư mục bạn sửa đổi gần đây sẽ hiển thị ở đây."]},{msgid:"Filter file list",msgstr:["Filter list file"]},{msgid:"Folder name cannot be empty.",msgstr:["Thư mục tên không được để trống."]},{msgid:"Home",msgstr:["Trang chủ"]},{msgid:"Modified",msgstr:["Đã sửa đổi"]},{msgid:"Move",msgstr:["Di chuyển"]},{msgid:"Move to {target}",msgstr:["Di chuyển đến{target}"]},{msgid:"Name",msgstr:["Tên"]},{msgid:"New",msgstr:["Mới"]},{msgid:"New folder",msgstr:["New thư mục"]},{msgid:"New folder name",msgstr:["New thư mục tên"]},{msgid:"No files in here",msgstr:["No file at here"]},{msgid:"No files matching your filter were found.",msgstr:["Không tìm thấy tệp nào phù hợp với bộ lọc của bạn."]},{msgid:"No matching files",msgstr:["No file phù hợp"]},{msgid:"Recent",msgstr:["Gần đây"]},{msgid:"Select all entries",msgstr:["Choose all items"]},{msgid:"Select entry",msgstr:["Chọn mục nhập"]},{msgid:"Select the row for {nodename}",msgstr:["Choose hang cho{nodename}"]},{msgid:"Size",msgstr:["Kích cỡ"]},{msgid:"Undo",msgstr:["Hoàn tác"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Tải lên một số nội dung hoặc đồng bộ hóa với thiết bị của bạn!"]}]},{language:"zh_CN",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["“{name}” 是无效的文件夹名称。"]},{msgid:'"{name}" is not an allowed folder name',msgstr:["“{name}” 不是允许的文件夹名称"]},{msgid:'"/" is not allowed inside a folder name.',msgstr:["文件夹名称中不允许包含 “/”。"]},{msgid:"All files",msgstr:["所有文件"]},{msgid:"Choose",msgstr:["选择"]},{msgid:"Choose {file}",msgstr:["选择 {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["选择 %n 个文件"]},{msgid:"Copy",msgstr:["复制"]},{msgid:"Copy to {target}",msgstr:["复制到 {target}"]},{msgid:"Could not create the new folder",msgstr:["无法创建新文件夹"]},{msgid:"Could not load files settings",msgstr:["无法加载文件设置"]},{msgid:"Could not load files views",msgstr:["无法加载文件视图"]},{msgid:"Create directory",msgstr:["创建目录"]},{msgid:"Current view selector",msgstr:["当前视图选择器"]},{msgid:"Favorites",msgstr:["最爱"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["您标记为最爱的文件与文件夹会显示在这里"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["您最近修改的文件与文件夹会显示在这里"]},{msgid:"Filter file list",msgstr:["过滤文件列表"]},{msgid:"Folder name cannot be empty.",msgstr:["文件夹名称不能为空。"]},{msgid:"Home",msgstr:["主目录"]},{msgid:"Modified",msgstr:["已修改"]},{msgid:"Move",msgstr:["移动"]},{msgid:"Move to {target}",msgstr:["移动至 {target}"]},{msgid:"Name",msgstr:["名称"]},{msgid:"New",msgstr:["新建"]},{msgid:"New folder",msgstr:["新文件夹"]},{msgid:"New folder name",msgstr:["新文件夹名称"]},{msgid:"No files in here",msgstr:["此处无文件"]},{msgid:"No files matching your filter were found.",msgstr:["找不到符合您过滤条件的文件"]},{msgid:"No matching files",msgstr:["无符合的文件"]},{msgid:"Recent",msgstr:["最近"]},{msgid:"Select all entries",msgstr:["选择所有条目"]},{msgid:"Select entry",msgstr:["选择条目"]},{msgid:"Select the row for {nodename}",msgstr:["选择 {nodename} 的列"]},{msgid:"Size",msgstr:["大小"]},{msgid:"Undo",msgstr:[" 撤消"]},{msgid:"Upload some content or sync with your devices!",msgstr:["上传一些项目或与您的设备同步!"]}]},{language:"zh_HK",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["資料夾名稱中不允許使用「{char}」。"]},{msgid:'"{char}" is not allowed inside a name.',msgstr:['名稱中不能使用 "{char}"。']},{msgid:'"{extension}" is not an allowed name.',msgstr:["「{extension}」並非允許的名稱。"]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["「{segment}」為保留名稱,不能用作資料夾名稱。"]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["「{segment}」是一個保留名稱,不能使用。"]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n 檔案衝突"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["{dirname} 中有 %n 個檔案衝突"]},{msgid:"All files",msgstr:["所有檔案"]},{msgid:"Cancel",msgstr:["取消"]},{msgid:"Cancel the entire operation",msgstr:["取消整個操作"]},{msgid:"Choose",msgstr:["選擇"]},{msgid:"Choose {file}",msgstr:["選擇 {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["選擇 %n 個檔案"]},{msgid:"Confirm",msgstr:["確認"]},{msgid:"Continue",msgstr:["繼續"]},{msgid:"Copy",msgstr:["複製"]},{msgid:"Copy to {target}",msgstr:["複製到 {target}"]},{msgid:"Could not create the new folder",msgstr:["無法建立新資料夾"]},{msgid:"Could not load files settings",msgstr:["無法載入檔案設定"]},{msgid:"Could not load files views",msgstr:["無法載入檔案視圖"]},{msgid:"Create directory",msgstr:["建立目錄"]},{msgid:"Current view selector",msgstr:["目前視圖選擇器"]},{msgid:"Enter your name",msgstr:["輸入您的名字"]},{msgid:"Existing version",msgstr:["現有的版本"]},{msgid:"Failed to set nickname.",msgstr:["無法設置暱稱。"]},{msgid:"Favorites",msgstr:["最愛"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["您標記為最愛的檔案與資料夾將會顯示在此處。"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["您最近修改的檔案與資料夾將會顯示在此處。"]},{msgid:"Filter file list",msgstr:["過濾檔案清單"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["資料夾名稱不得以「{extension}」結尾。"]},{msgid:"Guest identification",msgstr:["訪客身份識別"]},{msgid:"Home",msgstr:["首頁"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["如果您選擇兩個版本,傳入的檔案名稱將會附加一個數字。"]},{msgid:"Invalid folder name.",msgstr:["無效的資料夾名稱。"]},{msgid:"Invalid name.",msgstr:["無效的名字。"]},{msgid:"Last modified date unknown",msgstr:["最後的修改日期不詳"]},{msgid:"Modified",msgstr:["已修改"]},{msgid:"Move",msgstr:["移動"]},{msgid:"Move to {target}",msgstr:["移動至 {target}"]},{msgid:"Name",msgstr:["名稱"]},{msgid:"Names may be at most 64 characters long.",msgstr:["名稱長度最多為 64 個字元。"]},{msgid:"Names must not be empty.",msgstr:["名稱不能為空。"]},{msgid:'Names must not end with "{extension}".',msgstr:["名稱不得以「{extension}」結尾。"]},{msgid:"Names must not start with a dot.",msgstr:["名稱不得以點開頭。"]},{msgid:"New",msgstr:["新"]},{msgid:"New folder",msgstr:["新資料夾"]},{msgid:"New folder name",msgstr:["新資料夾名稱"]},{msgid:"New version",msgstr:["新版本"]},{msgid:"No files in here",msgstr:["此處無檔案"]},{msgid:"No files matching your filter were found.",msgstr:["找不到符合您過濾條件的檔案。"]},{msgid:"No matching files",msgstr:["沒有匹配的檔案"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["請輸入至少 2 個字符的名稱。"]},{msgid:"Recent",msgstr:["最近"]},{msgid:"Select all checkboxes",msgstr:["選擇所有復選框"]},{msgid:"Select all entries",msgstr:["選擇所有項目"]},{msgid:"Select all existing files",msgstr:["選擇所有現有的檔案"]},{msgid:"Select all new files",msgstr:["選擇所有新檔案"]},{msgid:"Select entry",msgstr:["選擇項目"]},{msgid:"Select the row for {nodename}",msgstr:["選擇 {nodename} 的列"]},{msgid:"Size",msgstr:["大小"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["跳過 %n 個檔案"]},{msgid:"Skip this file",msgstr:["跳過此檔案"]},{msgid:"Submit name",msgstr:["遞交名字"]},{msgid:"Undo",msgstr:["還原"]},{msgid:"Upload some content or sync with your devices!",msgstr:["上傳一些內容或與您的裝置同步!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["選取傳入資料夾時,其中任何衝突的檔案也將被覆蓋。"]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["當選取傳入資料夾時,內容將寫入現有資料夾,並執行遞歸衝突解決。"]},{msgid:"Which files do you want to keep?",msgstr:["你想保留哪些檔案?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["您目前被識別為 {nickname}。"]},{msgid:"You are currently not identified.",msgstr:["您目前尚未被識別。"]},{msgid:"You cannot leave the name empty.",msgstr:["名稱不能留空。"]},{msgid:"You need to choose at least one conflict solution",msgstr:["你需要選擇至少一種衝突解決方案。"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["您必須選擇每個文件的至少一個版本才能繼續。"]}]},{language:"zh_TW",translations:[{msgid:'"{name}" is an invalid file name.',msgstr:["「{name}」是無效的檔案名稱。"]},{msgid:'"{name}" is not an allowed filetype',msgstr:["「{name}」並非允許的檔案類型"]},{msgid:'"/" is not allowed inside a file name.',msgstr:["檔案名稱中不允許使用「/」。"]},{msgid:"All files",msgstr:["所有檔案"]},{msgid:"Choose",msgstr:["選擇"]},{msgid:"Choose {file}",msgstr:["選擇 {file}"]},{msgid:"Copy",msgstr:["複製"]},{msgid:"Copy to {target}",msgstr:["複製到 {target}"]},{msgid:"Could not create the new folder",msgstr:["無法建立新資料夾"]},{msgid:"Create directory",msgstr:["建立目錄"]},{msgid:"Current view selector",msgstr:["目前檢視選取器"]},{msgid:"Favorites",msgstr:["最愛"]},{msgid:"File name cannot be empty.",msgstr:["檔案名稱不能為空。"]},{msgid:"Filepicker sections",msgstr:["檔案挑選器選取"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["您標記為最愛的檔案與資料夾將會顯示在此處。"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["您最近修改的檔案與資料夾將會顯示在此處。"]},{msgid:"Filter file list",msgstr:["過濾檔案清單"]},{msgid:"Home",msgstr:["家"]},{msgid:"Mime type {mime}",msgstr:["Mime type {mime}"]},{msgid:"Modified",msgstr:["已修改"]},{msgid:"Move",msgstr:["移動"]},{msgid:"Move to {target}",msgstr:["移動至 {target}"]},{msgid:"Name",msgstr:["名稱"]},{msgid:"New",msgstr:["新"]},{msgid:"New folder",msgstr:["新資料夾"]},{msgid:"New folder name",msgstr:["新資料夾名稱"]},{msgid:"No files in here",msgstr:["此處無檔案"]},{msgid:"No files matching your filter were found.",msgstr:["找不到符合您過濾條件的檔案。"]},{msgid:"No matching files",msgstr:["無符合的檔案"]},{msgid:"Recent",msgstr:["最近"]},{msgid:"Select all entries",msgstr:["選取所有條目"]},{msgid:"Select entry",msgstr:["選取條目"]},{msgid:"Select the row for {nodename}",msgstr:["選取 {nodename} 的列"]},{msgid:"Size",msgstr:["大小"]},{msgid:"Undo",msgstr:["復原"]},{msgid:"unknown",msgstr:["未知"]},{msgid:"Upload some content or sync with your devices!",msgstr:["上傳一些內容或與您的裝置同步"]}]}]){const{language:e,translations:s}=i,t={headers:{},translations:{"":Object.fromEntries(s.map(n=>[n.msgid,n]))}};N.addTranslation(e,t)}const h=N.build(),$=h.ngettext.bind(h),l=h.gettext.bind(h),b=W().setApp("@nextcloud/dialogs").detectLogLevel().build();class X extends Error{}class uu{title;multiSelect;mimeTypeFilter;directoriesAllowed;noMenu;buttons;path;filter;canPick;container;disabledNavigation;constructor(e,s,t,n,r,u,a,g,o,m,d=!1){this.title=e,this.multiSelect=s,this.mimeTypeFilter=t,this.directoriesAllowed=n,this.noMenu=r,this.path=a,this.filter=g,this.canPick=o,this.buttons=u,this.container=m,this.disabledNavigation=d}async pickNodes(){const{default:e}=await U(async()=>{const{default:t}=await import("./FilePicker-DWYoSaVg-DRRVf2iD.chunk.mjs");return{default:t}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]),import.meta.url),s=await y(e,{allowPickDirectory:this.directoriesAllowed,noMenu:this.noMenu,buttons:this.buttons,name:this.title,path:this.path,mimetypeFilter:this.mimeTypeFilter,multiselect:this.multiSelect,filterFn:this.filter,canPickFn:this.canPick,disabledNavigation:this.disabledNavigation},{container:this.container});if(!Array.isArray(s)||s.length===0)throw new X("FilePicker: No nodes selected");return s}async pick(){const e=await this.pickNodes();return this.multiSelect?e.map(s=>s.path):e[0]?.path??"/"}}class eu{title;multiSelect=!1;mimeTypeFilter=[];directoriesAllowed=!1;noMenu=!1;path;filter;canPick;buttons=[];container;disabledNavigation=!1;constructor(e){this.title=e}setContainer(e){return this.container=e,this}setMultiSelect(e){return this.multiSelect=e,this}addMimeTypeFilter(e){return this.mimeTypeFilter.push(e),this}setMimeTypeFilter(e){return this.mimeTypeFilter=e,this}addButton(e){return typeof this.buttons=="function"&&(b.warn("FilePicker buttons were set to factory, now overwritten with button object."),this.buttons=[]),this.buttons.push(e),this}setButtonFactory(e){return this.buttons=e,this}setType(e){return this.buttons=(s,t)=>{const n=[],r=s[0]?.displayname||q(t);if(e===1){let u=l("Choose");s.length===1?u=l("Choose {file}",{file:r}):this.multiSelect&&(u=$("Choose %n file","Choose %n files",s.length)),n.push({callback:()=>{},label:u,variant:"primary"})}return(e===4||e===3)&&n.push({callback:()=>{},label:r?l("Copy to {target}",{target:r}):l("Copy"),icon:Q,variant:e===3?"primary":"secondary"}),(e===4||e===2)&&n.push({callback:()=>{},label:r?l("Move to {target}",{target:r}):l("Move"),icon:J,variant:"primary"}),n},this}allowDirectories(e=!0){return this.directoriesAllowed=e,this}setNoMenu(e=!0){return this.noMenu=e,this}startAt(e){return this.path=e,this}setFilter(e){return this.filter=e,this}setCanPick(e){return this.canPick=e,this}disableNavigation(){return this.disabledNavigation=!0,this}build(){return new uu(this.title,this.multiSelect,this.mimeTypeFilter,this.directoriesAllowed,this.noMenu,this.buttons,this.path,this.filter,this.canPick,this.container,this.disabledNavigation)}}function Bu(i){return new eu(i)}const su=`[n.msgid,n]))}};N.addTranslation(e,t)}const h=N.build(),$=h.ngettext.bind(h),l=h.gettext.bind(h),b=W().setApp("@nextcloud/dialogs").detectLogLevel().build();class X extends Error{}class uu{title;multiSelect;mimeTypeFilter;directoriesAllowed;noMenu;buttons;path;filter;canPick;container;disabledNavigation;constructor(e,s,t,n,r,u,a,g,o,m,d=!1){this.title=e,this.multiSelect=s,this.mimeTypeFilter=t,this.directoriesAllowed=n,this.noMenu=r,this.path=a,this.filter=g,this.canPick=o,this.buttons=u,this.container=m,this.disabledNavigation=d}async pickNodes(){const{default:e}=await U(async()=>{const{default:t}=await import("./FilePicker-DWYoSaVg-D_Ra0RFa.chunk.mjs");return{default:t}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]),import.meta.url),s=await y(e,{allowPickDirectory:this.directoriesAllowed,noMenu:this.noMenu,buttons:this.buttons,name:this.title,path:this.path,mimetypeFilter:this.mimeTypeFilter,multiselect:this.multiSelect,filterFn:this.filter,canPickFn:this.canPick,disabledNavigation:this.disabledNavigation},{container:this.container});if(!Array.isArray(s)||s.length===0)throw new X("FilePicker: No nodes selected");return s}async pick(){const e=await this.pickNodes();return this.multiSelect?e.map(s=>s.path):e[0]?.path??"/"}}class eu{title;multiSelect=!1;mimeTypeFilter=[];directoriesAllowed=!1;noMenu=!1;path;filter;canPick;buttons=[];container;disabledNavigation=!1;constructor(e){this.title=e}setContainer(e){return this.container=e,this}setMultiSelect(e){return this.multiSelect=e,this}addMimeTypeFilter(e){return this.mimeTypeFilter.push(e),this}setMimeTypeFilter(e){return this.mimeTypeFilter=e,this}addButton(e){return typeof this.buttons=="function"&&(b.warn("FilePicker buttons were set to factory, now overwritten with button object."),this.buttons=[]),this.buttons.push(e),this}setButtonFactory(e){return this.buttons=e,this}setType(e){return this.buttons=(s,t)=>{const n=[],r=s[0]?.displayname||q(t);if(e===1){let u=l("Choose");s.length===1?u=l("Choose {file}",{file:r}):this.multiSelect&&(u=$("Choose %n file","Choose %n files",s.length)),n.push({callback:()=>{},label:u,variant:"primary"})}return(e===4||e===3)&&n.push({callback:()=>{},label:r?l("Copy to {target}",{target:r}):l("Copy"),icon:Q,variant:e===3?"primary":"secondary"}),(e===4||e===2)&&n.push({callback:()=>{},label:r?l("Move to {target}",{target:r}):l("Move"),icon:J,variant:"primary"}),n},this}allowDirectories(e=!0){return this.directoriesAllowed=e,this}setNoMenu(e=!0){return this.noMenu=e,this}startAt(e){return this.path=e,this}setFilter(e){return this.filter=e,this}setCanPick(e){return this.canPick=e,this}disableNavigation(){return this.disabledNavigation=!0,this}build(){return new uu(this.title,this.multiSelect,this.mimeTypeFilter,this.directoriesAllowed,this.noMenu,this.buttons,this.path,this.filter,this.canPick,this.container,this.disabledNavigation)}}function Bu(i){return new eu(i)}const su=` @@ -8,4 +8,4 @@ import{b as j,D as M,E as I,o as x,c as p,w as D,u as A,g as Y,t as P,h as w,f a `,iu="off",tu="polite",nu="assertive";var F=(i=>(i[i.OFF=iu]="OFF",i[i.POLITE=tu]="POLITE",i[i.ASSERTIVE=nu]="ASSERTIVE",i))(F||{});const ru=1e4,au=7e3,mu=-1;function f(i,e){if(e={timeout:au,isHTML:!1,type:void 0,selector:void 0,onRemove:()=>{},onClick:void 0,close:!0,...e},typeof i=="string"&&!e.isHTML){const u=document.createElement("div");u.innerHTML=i,i=u.innerText}let s=e.type??"";typeof e.onClick=="function"&&(s+=" toast-with-click ");const t=i instanceof Node;let n=F.POLITE;e.ariaLive?n=e.ariaLive:(e.type==="toast-error"||e.type==="toast-undo")&&(n=F.ASSERTIVE);const r=Z({[t?"node":"text"]:i,duration:e.timeout,callback:e.onRemove,onClick:e.onClick,close:e.close,gravity:"top",selector:e.selector,position:"right",backgroundColor:"",className:"dialogs "+s,escapeMarkup:!e.isHTML,ariaLive:n});return r.showToast(),r}function xu(i,e){return f(i,{...e,type:"toast-error"})}function vu(i,e){return f(i,{...e,type:"toast-warning"})}function Fu(i,e){return f(i,{...e,type:"toast-info"})}function pu(i,e){return f(i,{...e,type:"toast-success"})}function Du(i,e){const s=document.createElement("span");s.innerHTML=su,s.classList.add("toast-loader");const t=document.createElement("span");return t.classList.add("toast-loader-container"),t.innerText=i,t.appendChild(s),f(t,{...e,close:!1,timeout:mu,type:"toast-loading"})}function Au(i,e,s){if(!(e instanceof Function))throw new Error("Please provide a valid onUndo method");s=Object.assign(s||{},{timeout:ru});const t=document.createElement("span"),n=document.createElement("button");t.classList.add("toast-undo-container"),n.classList.add("toast-undo-button"),n.innerText=l("Undo"),t.innerText=i,t.appendChild(n);const r=f(t,{...s,type:"toast-undo"});return n.addEventListener("click",function(u){u.stopPropagation(),e(u),r?.hideToast instanceof Function&&r.hideToast()}),r}const ou=["textContent"],du=["innerHTML"],gu=j({__name:"GenericDialog",props:{name:{},text:{},html:{},buttons:{},severity:{}},emits:["close"],setup(i,{emit:e}){const s=i,t=e,n=V(()=>s.buttons?.map(u=>({...u,callback(){u.callback(),t("close",!0)}}))),r=()=>`${s.name}: ${s.text}`;return M(()=>window.addEventListener("unload",r)),I(()=>window.removeEventListener("unload",r)),(u,a)=>(x(),p(A(T),{dialogClasses:"nc-generic-dialog",buttons:n.value,name:i.name,message:i.text,"onUpdate:open":a[0]||(a[0]=g=>u.$emit("close",!1))},{default:D(()=>[i.severity?(x(),p(A(O),{key:0,type:i.severity},{default:D(()=>[Y("p",{textContent:P(i.text)},null,8,ou)]),_:1},8,["type"])):w("",!0),i.html?(x(),_("div",{key:1,innerHTML:i.html},null,8,du)):w("",!0)]),_:1},8,["buttons","name","message"]))}});class z{#e;#s;#i;#u;constructor(e,s,t=[],n){this.#e=e,this.#s=s,this.#i=t,this.#u=n}async show(){if(!await y(gu,{buttons:this.#i,name:this.#e,text:this.#s,severity:this.#u}))throw new Error("Dialog closed")}}class lu{#e;#s;#i;#u;constructor(e){this.#e=void 0,this.#s="",this.#i=e??"",this.#u=[]}setName(e){return this.#i=e,this}setText(e){return this.#s=e,this}setSeverity(e){return this.#e=e,this}setButtons(e){return this.#u.length>0&&b.warn("[@nextcloud/dialogs] Dialog buttons are already set - this overrides previous buttons."),this.#u=e,this}addButton(e){return this.#u.push(e),this}build(){return new z(this.#i,this.#s,this.#u,this.#e)}}function wu(i){return new lu(i)}async function ku(i){i={labelConfirm:l("Confirm"),...i};const{promise:e,resolve:s}=Promise.withResolvers(),t=[{label:i.labelConfirm,variant:"primary",callback(){s(!0)}}];return i.labelReject&&t.unshift({label:i.labelReject,callback(){s(!1)}}),await new z(i.name,i.text,t,i.severity).show(),e}export{ru as T,xu as a,Fu as b,Du as c,pu as d,ku as e,Au as f,wu as g,Bu as h,b as l,vu as s,l as t}; -//# sourceMappingURL=index-DL1yHC1K-DnBG6QLJ.chunk.mjs.map +//# sourceMappingURL=index-DL1yHC1K-BJ_TsAjb.chunk.mjs.map diff --git a/dist/index-DL1yHC1K-DnBG6QLJ.chunk.mjs.license b/dist/index-DL1yHC1K-BJ_TsAjb.chunk.mjs.license similarity index 100% rename from dist/index-DL1yHC1K-DnBG6QLJ.chunk.mjs.license rename to dist/index-DL1yHC1K-BJ_TsAjb.chunk.mjs.license diff --git a/dist/index-DL1yHC1K-DnBG6QLJ.chunk.mjs.map b/dist/index-DL1yHC1K-BJ_TsAjb.chunk.mjs.map similarity index 99% rename from dist/index-DL1yHC1K-DnBG6QLJ.chunk.mjs.map rename to dist/index-DL1yHC1K-BJ_TsAjb.chunk.mjs.map index b9142d6f4b0..9d0d1a2408d 100644 --- a/dist/index-DL1yHC1K-DnBG6QLJ.chunk.mjs.map +++ b/dist/index-DL1yHC1K-BJ_TsAjb.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"mappings":"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","names":["root","factory","module","this","global","Toastify","options","version","divElement","property","avatarElement","closeElement","event","width","self","x","getAxisOffsetAValue","y","xOffset","yOffset","rootElement","elementToInsert","toastElement","topLeftOffsetSize","topRightOffsetSize","offsetSize","allToasts","classUsed","i","containsClass","height","offset","axis","elem","yourClass","IconMove","IconCopy","gtBuilder","getGettextBuilder","data","language","translations","bundle","translation","gt","n","t","logger","getLoggerBuilder","FilePickerClosed","FilePicker","title","multiSelect","mimeTypeFilter","directoriesAllowed","noMenu","buttons","path","filter","canPick","container","disabledNavigation","FilePickerVue","__vitePreload","nodes","spawnDialog","node","FilePickerBuilder","ms","button","type","target","basename","label","allow","getFilePickerBuilder","LoaderSvg","TOAST_ARIA_LIVE_OFF","TOAST_ARIA_LIVE_POLITE","TOAST_ARIA_LIVE_ASSERTIVE","ToastAriaLive","ToastAriaLive2","TOAST_UNDO_TIMEOUT","TOAST_DEFAULT_TIMEOUT","TOAST_PERMANENT_TIMEOUT","showMessage","element","classes","isNode","ariaLive","toast","showError","text","showWarning","showInfo","showSuccess","showLoading","loader","loaderContent","showUndo","onUndo","undoContent","undoButton","_hoisted_1","_hoisted_2","_sfc_main","defineComponent","__props","__emit","props","emit","dialogButtons","computed","handleUnload","onMounted","onUnmounted","_ctx","_cache","openBlock","createBlock","unref","NcDialog","$event","withCtx","NcNoteCard","createElementVNode","toDisplayString","createCommentVNode","createElementBlock","Dialog","#name","#text","#buttons","#severity","name","severity","DialogBuilder","getDialogBuilder","showConfirmation","promise","resolve"],"ignoreList":[0,1],"sources":["../node_modules/toastify-js/src/toastify.js","../node_modules/@nextcloud/dialogs/dist/chunks/index-DL1yHC1K.mjs"],"sourcesContent":["/*!\n * Toastify js 1.12.0\n * https://github.com/apvarun/toastify-js\n * @license MIT licensed\n *\n * Copyright (C) 2018 Varun A P\n */\n(function(root, factory) {\n if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Toastify = factory();\n }\n})(this, function(global) {\n // Object initialization\n var Toastify = function(options) {\n // Returning a new init object\n return new Toastify.lib.init(options);\n },\n // Library version\n version = \"1.12.0\";\n\n // Set the default global options\n Toastify.defaults = {\n oldestFirst: true,\n text: \"Toastify is awesome!\",\n node: undefined,\n duration: 3000,\n selector: undefined,\n callback: function () {\n },\n destination: undefined,\n newWindow: false,\n close: false,\n gravity: \"toastify-top\",\n positionLeft: false,\n position: '',\n backgroundColor: '',\n avatar: \"\",\n className: \"\",\n stopOnFocus: true,\n onClick: function () {\n },\n offset: {x: 0, y: 0},\n escapeMarkup: true,\n ariaLive: 'polite',\n style: {background: ''}\n };\n\n // Defining the prototype of the object\n Toastify.lib = Toastify.prototype = {\n toastify: version,\n\n constructor: Toastify,\n\n // Initializing the object with required parameters\n init: function(options) {\n // Verifying and validating the input object\n if (!options) {\n options = {};\n }\n\n // Creating the options object\n this.options = {};\n\n this.toastElement = null;\n\n // Validating the options\n this.options.text = options.text || Toastify.defaults.text; // Display message\n this.options.node = options.node || Toastify.defaults.node; // Display content as node\n this.options.duration = options.duration === 0 ? 0 : options.duration || Toastify.defaults.duration; // Display duration\n this.options.selector = options.selector || Toastify.defaults.selector; // Parent selector\n this.options.callback = options.callback || Toastify.defaults.callback; // Callback after display\n this.options.destination = options.destination || Toastify.defaults.destination; // On-click destination\n this.options.newWindow = options.newWindow || Toastify.defaults.newWindow; // Open destination in new window\n this.options.close = options.close || Toastify.defaults.close; // Show toast close icon\n this.options.gravity = options.gravity === \"bottom\" ? \"toastify-bottom\" : Toastify.defaults.gravity; // toast position - top or bottom\n this.options.positionLeft = options.positionLeft || Toastify.defaults.positionLeft; // toast position - left or right\n this.options.position = options.position || Toastify.defaults.position; // toast position - left or right\n this.options.backgroundColor = options.backgroundColor || Toastify.defaults.backgroundColor; // toast background color\n this.options.avatar = options.avatar || Toastify.defaults.avatar; // img element src - url or a path\n this.options.className = options.className || Toastify.defaults.className; // additional class names for the toast\n this.options.stopOnFocus = options.stopOnFocus === undefined ? Toastify.defaults.stopOnFocus : options.stopOnFocus; // stop timeout on focus\n this.options.onClick = options.onClick || Toastify.defaults.onClick; // Callback after click\n this.options.offset = options.offset || Toastify.defaults.offset; // toast offset\n this.options.escapeMarkup = options.escapeMarkup !== undefined ? options.escapeMarkup : Toastify.defaults.escapeMarkup;\n this.options.ariaLive = options.ariaLive || Toastify.defaults.ariaLive;\n this.options.style = options.style || Toastify.defaults.style;\n if(options.backgroundColor) {\n this.options.style.background = options.backgroundColor;\n }\n\n // Returning the current object for chaining functions\n return this;\n },\n\n // Building the DOM element\n buildToast: function() {\n // Validating if the options are defined\n if (!this.options) {\n throw \"Toastify is not initialized\";\n }\n\n // Creating the DOM object\n var divElement = document.createElement(\"div\");\n divElement.className = \"toastify on \" + this.options.className;\n\n // Positioning toast to left or right or center\n if (!!this.options.position) {\n divElement.className += \" toastify-\" + this.options.position;\n } else {\n // To be depreciated in further versions\n if (this.options.positionLeft === true) {\n divElement.className += \" toastify-left\";\n console.warn('Property `positionLeft` will be depreciated in further versions. Please use `position` instead.')\n } else {\n // Default position\n divElement.className += \" toastify-right\";\n }\n }\n\n // Assigning gravity of element\n divElement.className += \" \" + this.options.gravity;\n\n if (this.options.backgroundColor) {\n // This is being deprecated in favor of using the style HTML DOM property\n console.warn('DEPRECATION NOTICE: \"backgroundColor\" is being deprecated. Please use the \"style.background\" property.');\n }\n\n // Loop through our style object and apply styles to divElement\n for (var property in this.options.style) {\n divElement.style[property] = this.options.style[property];\n }\n\n // Announce the toast to screen readers\n if (this.options.ariaLive) {\n divElement.setAttribute('aria-live', this.options.ariaLive)\n }\n\n // Adding the toast message/node\n if (this.options.node && this.options.node.nodeType === Node.ELEMENT_NODE) {\n // If we have a valid node, we insert it\n divElement.appendChild(this.options.node)\n } else {\n if (this.options.escapeMarkup) {\n divElement.innerText = this.options.text;\n } else {\n divElement.innerHTML = this.options.text;\n }\n\n if (this.options.avatar !== \"\") {\n var avatarElement = document.createElement(\"img\");\n avatarElement.src = this.options.avatar;\n\n avatarElement.className = \"toastify-avatar\";\n\n if (this.options.position == \"left\" || this.options.positionLeft === true) {\n // Adding close icon on the left of content\n divElement.appendChild(avatarElement);\n } else {\n // Adding close icon on the right of content\n divElement.insertAdjacentElement(\"afterbegin\", avatarElement);\n }\n }\n }\n\n // Adding a close icon to the toast\n if (this.options.close === true) {\n // Create a span for close element\n var closeElement = document.createElement(\"button\");\n closeElement.type = \"button\";\n closeElement.setAttribute(\"aria-label\", \"Close\");\n closeElement.className = \"toast-close\";\n closeElement.innerHTML = \"✖\";\n\n // Triggering the removal of toast from DOM on close click\n closeElement.addEventListener(\n \"click\",\n function(event) {\n event.stopPropagation();\n this.removeElement(this.toastElement);\n window.clearTimeout(this.toastElement.timeOutValue);\n }.bind(this)\n );\n\n //Calculating screen width\n var width = window.innerWidth > 0 ? window.innerWidth : screen.width;\n\n // Adding the close icon to the toast element\n // Display on the right if screen width is less than or equal to 360px\n if ((this.options.position == \"left\" || this.options.positionLeft === true) && width > 360) {\n // Adding close icon on the left of content\n divElement.insertAdjacentElement(\"afterbegin\", closeElement);\n } else {\n // Adding close icon on the right of content\n divElement.appendChild(closeElement);\n }\n }\n\n // Clear timeout while toast is focused\n if (this.options.stopOnFocus && this.options.duration > 0) {\n var self = this;\n // stop countdown\n divElement.addEventListener(\n \"mouseover\",\n function(event) {\n window.clearTimeout(divElement.timeOutValue);\n }\n )\n // add back the timeout\n divElement.addEventListener(\n \"mouseleave\",\n function() {\n divElement.timeOutValue = window.setTimeout(\n function() {\n // Remove the toast from DOM\n self.removeElement(divElement);\n },\n self.options.duration\n )\n }\n )\n }\n\n // Adding an on-click destination path\n if (typeof this.options.destination !== \"undefined\") {\n divElement.addEventListener(\n \"click\",\n function(event) {\n event.stopPropagation();\n if (this.options.newWindow === true) {\n window.open(this.options.destination, \"_blank\");\n } else {\n window.location = this.options.destination;\n }\n }.bind(this)\n );\n }\n\n if (typeof this.options.onClick === \"function\" && typeof this.options.destination === \"undefined\") {\n divElement.addEventListener(\n \"click\",\n function(event) {\n event.stopPropagation();\n this.options.onClick();\n }.bind(this)\n );\n }\n\n // Adding offset\n if(typeof this.options.offset === \"object\") {\n\n var x = getAxisOffsetAValue(\"x\", this.options);\n var y = getAxisOffsetAValue(\"y\", this.options);\n\n var xOffset = this.options.position == \"left\" ? x : \"-\" + x;\n var yOffset = this.options.gravity == \"toastify-top\" ? y : \"-\" + y;\n\n divElement.style.transform = \"translate(\" + xOffset + \",\" + yOffset + \")\";\n\n }\n\n // Returning the generated element\n return divElement;\n },\n\n // Displaying the toast\n showToast: function() {\n // Creating the DOM object for the toast\n this.toastElement = this.buildToast();\n\n // Getting the root element to with the toast needs to be added\n var rootElement;\n if (typeof this.options.selector === \"string\") {\n rootElement = document.getElementById(this.options.selector);\n } else if (this.options.selector instanceof HTMLElement || (typeof ShadowRoot !== 'undefined' && this.options.selector instanceof ShadowRoot)) {\n rootElement = this.options.selector;\n } else {\n rootElement = document.body;\n }\n\n // Validating if root element is present in DOM\n if (!rootElement) {\n throw \"Root element is not defined\";\n }\n\n // Adding the DOM element\n var elementToInsert = Toastify.defaults.oldestFirst ? rootElement.firstChild : rootElement.lastChild;\n rootElement.insertBefore(this.toastElement, elementToInsert);\n\n // Repositioning the toasts in case multiple toasts are present\n Toastify.reposition();\n\n if (this.options.duration > 0) {\n this.toastElement.timeOutValue = window.setTimeout(\n function() {\n // Remove the toast from DOM\n this.removeElement(this.toastElement);\n }.bind(this),\n this.options.duration\n ); // Binding `this` for function invocation\n }\n\n // Supporting function chaining\n return this;\n },\n\n hideToast: function() {\n if (this.toastElement.timeOutValue) {\n clearTimeout(this.toastElement.timeOutValue);\n }\n this.removeElement(this.toastElement);\n },\n\n // Removing the element from the DOM\n removeElement: function(toastElement) {\n // Hiding the element\n // toastElement.classList.remove(\"on\");\n toastElement.className = toastElement.className.replace(\" on\", \"\");\n\n // Removing the element from DOM after transition end\n window.setTimeout(\n function() {\n // remove options node if any\n if (this.options.node && this.options.node.parentNode) {\n this.options.node.parentNode.removeChild(this.options.node);\n }\n\n // Remove the element from the DOM, only when the parent node was not removed before.\n if (toastElement.parentNode) {\n toastElement.parentNode.removeChild(toastElement);\n }\n\n // Calling the callback function\n this.options.callback.call(toastElement);\n\n // Repositioning the toasts again\n Toastify.reposition();\n }.bind(this),\n 400\n ); // Binding `this` for function invocation\n },\n };\n\n // Positioning the toasts on the DOM\n Toastify.reposition = function() {\n\n // Top margins with gravity\n var topLeftOffsetSize = {\n top: 15,\n bottom: 15,\n };\n var topRightOffsetSize = {\n top: 15,\n bottom: 15,\n };\n var offsetSize = {\n top: 15,\n bottom: 15,\n };\n\n // Get all toast messages on the DOM\n var allToasts = document.getElementsByClassName(\"toastify\");\n\n var classUsed;\n\n // Modifying the position of each toast element\n for (var i = 0; i < allToasts.length; i++) {\n // Getting the applied gravity\n if (containsClass(allToasts[i], \"toastify-top\") === true) {\n classUsed = \"toastify-top\";\n } else {\n classUsed = \"toastify-bottom\";\n }\n\n var height = allToasts[i].offsetHeight;\n classUsed = classUsed.substr(9, classUsed.length-1)\n // Spacing between toasts\n var offset = 15;\n\n var width = window.innerWidth > 0 ? window.innerWidth : screen.width;\n\n // Show toast in center if screen with less than or equal to 360px\n if (width <= 360) {\n // Setting the position\n allToasts[i].style[classUsed] = offsetSize[classUsed] + \"px\";\n\n offsetSize[classUsed] += height + offset;\n } else {\n if (containsClass(allToasts[i], \"toastify-left\") === true) {\n // Setting the position\n allToasts[i].style[classUsed] = topLeftOffsetSize[classUsed] + \"px\";\n\n topLeftOffsetSize[classUsed] += height + offset;\n } else {\n // Setting the position\n allToasts[i].style[classUsed] = topRightOffsetSize[classUsed] + \"px\";\n\n topRightOffsetSize[classUsed] += height + offset;\n }\n }\n }\n\n // Supporting function chaining\n return this;\n };\n\n // Helper function to get offset.\n function getAxisOffsetAValue(axis, options) {\n\n if(options.offset[axis]) {\n if(isNaN(options.offset[axis])) {\n return options.offset[axis];\n }\n else {\n return options.offset[axis] + 'px';\n }\n }\n\n return '0px';\n\n }\n\n function containsClass(elem, yourClass) {\n if (!elem || typeof yourClass !== \"string\") {\n return false;\n } else if (\n elem.className &&\n elem.className\n .trim()\n .split(/\\s+/gi)\n .indexOf(yourClass) > -1\n ) {\n return true;\n } else {\n return false;\n }\n }\n\n // Setting up the prototype for the init object\n Toastify.lib.init.prototype = Toastify.lib;\n\n // Returning the Toastify function to be assigned to the window object/module\n return Toastify;\n});\n","import { spawnDialog } from \"@nextcloud/vue/functions/dialog\";\nimport { defineAsyncComponent, defineComponent, computed, onMounted, onUnmounted, openBlock, createBlock, unref, withCtx, createElementVNode, toDisplayString, createCommentVNode, createElementBlock } from \"vue\";\nimport { basename } from \"@nextcloud/paths\";\nimport { getGettextBuilder } from \"@nextcloud/l10n/gettext\";\nimport { getLoggerBuilder } from \"@nextcloud/logger\";\nimport Toastify from \"toastify-js\";\nimport NcDialog from \"@nextcloud/vue/components/NcDialog\";\nimport NcNoteCard from \"@nextcloud/vue/components/NcNoteCard\";\n/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nasync function openConflictPicker(dirname, conflicts, content, options) {\n const ConflictPicker = defineAsyncComponent(() => import(\"./ConflictPicker-BwfOiKFa.mjs\"));\n const incoming = [];\n const existing = [];\n for (const node of content) {\n if (isConflictingNode(node)) {\n existing.push(node);\n incoming.push(conflicts[indexOf(node)]);\n }\n }\n if (conflicts.length === 0 || content.length === 0) {\n throw new Error(\"ConflictPicker: files and conflicts must not be empty\");\n }\n if (conflicts.length !== content.length) {\n throw new Error(\"ConflictPicker: files and conflicts must have the same length. Make sure you filter out non conflicting files from the conflicts array.\");\n }\n return await spawnDialog(ConflictPicker, {\n dirname,\n existing,\n incoming,\n isOverwriting: options?.overwriting === true,\n recursiveUpload: options?.recursive === true\n }, {\n container: options?.container\n });\n function isConflictingNode(node) {\n return conflicts.some((entry) => nodeIsConflict(node, entry));\n }\n function indexOf(node) {\n return conflicts.findIndex((entry) => nodeIsConflict(node, entry));\n }\n function nodeIsConflict(node, conflict) {\n if (\"basename\" in conflict) {\n return conflict.basename === node.basename;\n }\n return conflict.name === node.basename;\n }\n}\nconst IconMove = '';\nconst IconCopy = '';\nconst gtBuilder = getGettextBuilder().detectLanguage();\nfor (const data of [{ \"language\": \"ar\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": ['\"{name}\" لا يصلح كاسم مجلد.'] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": ['\"{name}\" غير مسموح به كاسم مجلد'] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\" غير مسموح به داخل اسم مجلد.'] }, { \"msgid\": \"All files\", \"msgstr\": [\"كل الملفات\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"إختَر\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"إختر {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"إختَر %n ملف\", \"إختَر %n ملف\", \"إختَر %n ملف\", \"إختَر %n ملفات\", \"إختَر %n ملف\", \"إختر %n ملف\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"نسخ\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"نسخ إلى {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"تعذّر إنشاء المجلد الجديد\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"يتعذّر تحميل إعدادات الملفات\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"تعذر تحميل عرض الملفات\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"إنشاء مجلد\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"محدد العرض الحالي\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"المفضلة\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"الملفات والمجلدات التي تحددها كمفضلة ستظهر هنا.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"الملفات و المجلدات التي قمت مؤخراً بتعديلها سوف تظهر هنا.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"تصفية قائمة الملفات\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"اسم المجلد لا يمكن أن يكون فارغاً.\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"البداية\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"التعديل\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"نقل\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"نقل إلى {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"الاسم\"] }, { \"msgid\": \"New\", \"msgstr\": [\"جديد\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"مجلد جديد\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"اسم المجلد الجديد\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"لا توجد ملفات هنا\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"لا توجد ملفات تتطابق مع عامل التصفية الذي وضعته\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"لا توجد ملفات مطابقة\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"الحالي\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"حدد جميع الإدخالات\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"إختَر المدخل\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"إختر سطر الـ {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"الحجم\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"تراجع\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"قم برفع بعض المحتوى أو المزامنة مع أجهزتك!\"] }] }, { \"language\": \"ast\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": [\"«{name}» ye un nome de carpeta inválidu.\"] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": [\"«{name}» ye un nome de carpeta inválidu\"] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": [\"Nun se permite'l caráuter «/» dientro'l nome de les carpetes.\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Tolos ficheros\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Escoyer\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Escoyer «{ficheru}»\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Escoyer %n ficheru\", \"Escoyer %n ficheros\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Copiar\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Copiar en: {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Nun se pudo crear la carpeta\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Nun se pudo cargar la configuración de los ficheros\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Nun se pudieron cargar les vistes de los ficheros\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Crear un direutoriu\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Selector de la vista actual\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoritos\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Equí apaecen los ficheros y les carpetes que metas en Favoritos.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Equí apaecen los fichero y les carpetes que modificares apocayá.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Peñerar la llista de ficheros\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"El nome de la carpeta nun pue tar baleru.\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Aniciu\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Modificóse\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Mover\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Mover a {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nome\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nuevu\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Carpeta nueva\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Nome de carpeta nuevu\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Equí nun hai nengún ficheru\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Nun s'atopó nengún ficheru que concasare cola peñera.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Nun hai nengún ficheru que concase\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"De recién\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Seleicionar toles entraes\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Seleicionar la entrada\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Seleicionar la filera de: {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Tamañu\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Desfacer\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"¡Xubi dalgún elementu o sincroniza colos tos preseos!\"] }] }, { \"language\": \"ca\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": [`No és permès d'usar el caràcter \"{char}\" en un nom.`] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" no és un nom permès.'] }, { \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": ['\"{name}\" no és vàlid com a nom de carpeta.'] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": ['\"{name}\" no és vàlid com a nom de carpeta'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" és un mot reservat i no està permès com a nom.'] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": [`\"/\" no està permès en el nom d'una carpeta.`] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n conflicte de fitxers\", \"%n conflictes de fitxers\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n onflicte de fitxers a {dirname}\", \"%n conflictes de fitxers a {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Tots els fitxers\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancel·lar\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancel·lar tota l'operació\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Tria\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Tria {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Tria %n fitxer\", \"Tria %n fitxers\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirma\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Copia\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Copia a {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"No s'ha pogut crear la carpeta nova\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"No es poden carregar fitxers de configuració\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"No es poden carregar fitxers de vistes\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Crea un directori\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Selector de visualització actual\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Escriviu el vostre nom\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Versió existent\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"No s'ha pogut desar el sobrenom.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Preferits\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Els fitxers i les carpetes que marqueu com a favorits es mostraran aquí.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Els fitxers i les carpetes recentment modificats es mostraran aquí.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrar llistat de fitxers\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"El nom de la carpeta no pot estar buit.\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Identificació com a convidat\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Inici\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Si seleccioneu les dues versions, el fitxer entrant tindrà un número afegit al seu nom.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Nom no vàlid.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Data de l'última modificació desconeguda\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Data de modificació\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Desplaça\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Desplaça a {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nom\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Els noms poden tenir com a màxim 64 caràcters.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Els noms no poden ser buits.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": [`Els noms no poden acabar amb l'extensió \"{extension}\".`] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Els noms no poden començar amb un punt.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Crea\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Carpeta nova\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Nom de la carpeta nova\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Nova versió\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"No hi ha cap fitxer\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"No s'ha trobat cap fitxer que coincideixi amb el filtre.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"No hi ha cap fitxer que coincideixi\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Si us plau, escriu un nom amb 2 caràcters com a mínim.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Recents\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Selecciona totes les caselles de selecció\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Selecciona totes les entrades\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Selecciona tots els fitxers existents\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Selecciona tots els fitxers nous\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Selecciona l'entrada\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Selecciona la fila per a {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Mida\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Omet %n fitxer\", \"Omet %n fitxers\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Omet aquest fitxer\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Entreu el nom\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Desfés\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Pugeu contingut o sincronitzeu-lo amb els vostres dispositius!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Quan es selecciona una carpeta entrant, també se sobreescriuran els fitxers que hi entrin en conflicte.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Quan es selecciona una carpeta entrant, el contingut s'escriu a la carpeta existent i es realitza una resolució recursiva de conflictes.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quins fitxers voleu conservar?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Actualment se us mostra com a {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Actualment no esteu identificat.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"No podeu deixar el nom buit.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Heu de triar com a mínim una solució de conflicte\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Heu de seleccionar com a mínim una versió de cada fitxer per continuar.\"] }] }, { \"language\": \"cs_CZ\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [\"znak „{char}“ není možné použít uvnitř názvu složky.\"] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": [\"„{char}“ není možné použít uvnitř názvu.\"] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": [\"„{extension}“ není možné použít jako název.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": [\"„{segment}“ je vyhrazeným názvem a není možné ho používat pro názvy složek.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": [\"„{segment}“ je vyhrazeným názvem a není možné ho použít.\"] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n kolize souboru\", \"%n kolize souborů\", \"%n kolizí souborů\", \"%n kolize souborů\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n kolize souborů v {dirname}\", \"%n kolize souborů v {dirname}\", \"%n kolizí souborů v {dirname}\", \"%n kolize souborů v {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Veškeré soubory\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Storno\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Zrušit celou operaci\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Zvolit\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Zvolit {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Zvolte %n soubor\", \"Zvolte %n soubory\", \"Zvolte %n souborů\", \"Zvolte %n soubory\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Potvrdit\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Pokračovat\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Zkopírovat\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Zkopírovat do {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Novou složku se nepodařilo vytvořit\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Nepodařilo se načíst nastavení pro soubory\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Nepodařilo se načíst pohledy souborů\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Vytvořit složku\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Výběr stávajícího zobrazení\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Zadejte své jméno\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Existující verze\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Nepodařilo se nastavit přezdívku.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Oblíbené\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Zde se zobrazí soubory a složky, které označíte jako oblíbené.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Zde se zobrazí soubory a složky, které jste nedávno pozměnili.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrovat seznam souborů\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": [\"Názvy složek nemohou končit na „{extension}“.\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Identifikace hosta\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Domů\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Pokud vyberete obě verze, pak k názvu příchozího souboru bude přidáno číslo.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Neplatný název složky.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Neplatný název.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Datum poslední změny neznámé\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Změněno\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Přesounout\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Přesunout do {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Název\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Je třeba, aby délka jmen nepřesahovala 64 znaků.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Názvy je třeba vyplnit.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": [\"Názvy nemohou končit na „{extension}“.\"] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Názvy nemohou začínat tečkou.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nové\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Nová složka\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Název pro novou složku\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Nová verze\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Nejsou zde žádné soubory\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Nenalezeny žádné soubory odpovídající vašemu filtru\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Žádné odpovídající soubory\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Zadejte jméno dlouhé alespoň 2 znaky.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Nedávné\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Vybrat všechny zaškrtávací kolonky\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Vybrat všechny položky\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Vybrat všechny existující soubory\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Vybrat všechny nové soubory\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Vybrat položku\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Vybrat řádek pro {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Velikost\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Přeskočit %n soubor\", \"Přeskočit %n soubory\", \"Přeskočit %n souborů\", \"Přeskočit %n soubory\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Přeskočit tento soubor\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Odeslat jméno\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Zpět\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Nahrajte sem nějaký obsah nebo proveďte synchronizaci se svými zařízeními!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Pokud je vybrána příchozí složka, budou v ní také přepsány jakékoli kolidující soubory.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Pokud je vybrána příchozí složka, je obsah zapsán do existující složky a je provedeno rekurzivní vyřešení kolizí.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Které soubory chcete ponechat?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"V tuto chvíli jste identifikováni jako {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"V tuto chvíli nejste identifikovaní.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Jméno nelze ponechat nevyplněné.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Je třeba zvolit alespoň jedno z řešení kolize\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Aby bylo možné pokračovat, je třeba vybrat alespoň jednu verzi od každého souboru.\"] }] }, { \"language\": \"da\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" er ikke tilladt i et navn.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" er ikke tilladt i et navn.'] }, { \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": ['\"{name}\" er et ugyldigt mappenavn.'] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": ['\"{name}\" er ikke et tilladt mappenavn'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" er et reserveret navn og er derfor ikke tilladt.'] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\" er ikke tilladt i et mappenavn.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n filkonflikt\", \"%n filer konflikter\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n filkonflikt i {dirname}\", \"%n filkonflikter i {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Alle filer\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Fortryd\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Annullér hele operationen\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Vælg\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Vælg {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Vælg %n fil\", \"Vælg %n filer\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Bekræft\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsæt\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopier\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Kopier til {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Kunne ikke oprette den nye mappe\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Filindstillingerne kunne ikke indlæses\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Kunne ikke indlæse filvisninger\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Opret mappe\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Aktuel visningsvælger\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Indtast dit navn\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Eksisterende version\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Forsøg på at gemme kaldenavn mislykkedes.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoritter\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Filer og mapper, du markerer som foretrukne, vises her.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Filer og mapper, du for nylig har ændret, vises her.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrer fil liste\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"Mappenavnet må ikke være tomt.\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Gæsteidentifikation\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Hjem\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Hvis du vælger begge versioner, vil den indkommende fil have et nummer tilføjet til sit navn.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Ugyldigt navn.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Senest ændret dato ukendt\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Ændret\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Flyt\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Flyt til {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Navn\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Navne kan højst være 64 tegn lange.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Navne kan ikke være tomt.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Navne må ikke ende på \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Navne skal starte med et punktum.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Ny\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Ny mappe\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Ny mappe navn\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Ny version\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Ingen filer here\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Der blev ikke fundet nogen filer, der matcher dit filter.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Ingen matchende filer\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Indtast et navn med mindst 2 tegn.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Seneste\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Markér alle afkrydsningsfelter\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Vælg alle poster\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Vælg alle eksisterende filer\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Vælg alle nye filer\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Vælg post\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Vælg rækken for {nodenavn}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Størelse\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Spring %n fil over\", \"Spring %n filer over\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Spring denne fil over\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Indsend navn\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Fortryd\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Upload noget indhold eller synkroniser med dine enheder!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Når en indkommende mappe er valgt, vil eventuelle modstridende filer i det også blive overskrevet.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Når en indkommende mappe er valgt, er indholdet skrevet ind i den eksisterende mappe og en rekursiv konfliktløsning udføres.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Hvilke filer vil du have?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Du er i øjeblikket identificeret som {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Du er ikke identificeret.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Du kan ikke efterlade navnet tomt.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Du skal vælge mindst én konfliktløsning\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Du skal vælge mindst én version af hver fil for at fortsætte.\"] }] }, { \"language\": \"de\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['\"{char}\" ist innerhalb eines Ordnernamens nicht zulässig.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" ist innerhalb eines Namens nicht zulässig.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" ist kein zulässiger Name.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" ist ein reservierter Name und nicht zulässig für Ordnernamen.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" ist ein reservierter Name und nicht zulässig.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n Dateikonflikt\", \"%n Dateikonflikte\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n Dateikonflikt in {dirname}\", \"%n Dateikonflikte in {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Alle Dateien\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Abbrechen\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Den gesamten Vorgang abbrechen\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Auswählen\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"{file} auswählen\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"%n Datei auswählen\", \"%n Dateien auswählen\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Bestätigen\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsetzen\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopieren\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Nach {target} kopieren\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Der neue Ordner konnte nicht erstellt werden\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Dateieinstellungen konnten nicht geladen werden\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Dateiansichten konnten nicht geladen werden\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Verzeichnis erstellen\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Aktuelle Ansichtsauswahl\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Gib deinen Namen ein\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Vorhandene Version\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Spitzname konnte nicht gespeichert werden.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoriten\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Dateien und Ordner, die du als Favorit markierst, werden hier angezeigt.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Dateien und Ordner, die du kürzlich geändert hast, werden hier angezeigt.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Dateiliste filtern\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Ordnernamen dürfen nicht mit \"{extension}\" enden.'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Gast-Identifikation\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Home\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Wenn beide Versionen ausgewählt werden, wird dem Namen der eingehenden Datei eine Nummer hinzugefügt.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Ungültiger Ordnername.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Ungültiger Name.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Datum der letzten Änderung unbekannt\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Geändert\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Verschieben\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Nach {target} verschieben\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Name\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Namen dürfen maximal 64 Zeichen lang sein.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Namen dürfen nicht leer sein.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Namen dürfen nicht mit \"{extension}\" enden.'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Namen dürfen nicht mit einem Punkt beginnen.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Neu\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Neuer Ordner\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Neuer Ordnername\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Neue Version\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Hier sind keine Dateien\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Es wurden keine Dateien gefunden, die deinem Filter entsprechen.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Keine passenden Dateien\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Bitte einen Namen mit mindestens zwei Zeichen eingeben.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Neueste\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Alle Kontrollkästchen aktivieren\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Alle Einträge auswählen\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Alle vorhandenen Dateien auswählen\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Alle neuen Dateien auswählen\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Eintrag auswählen\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Die Zeile für {nodename} auswählen.\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Größe\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"%n Datei überspringen\", \"%n Dateien überspringen\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Diese Datei überspringen\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Namen senden\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Rückgängig machen\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Lade Inhalte hoch oder synchronisiere diese mit deinen Geräten!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Wenn ein eingehender Ordner ausgewählt wird, werden auch alle darin enthaltenen Dateien mit Konflikten überschrieben.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Bei Auswahl eines eingehenden Ordners wird der Inhalt in den vorhandenen Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Welche Dateien sollen behalten werden?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Du bist derzeit als {nickname} identifiziert.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Du bist momentan nicht identifiziert.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Du kannst den Namen nicht leer lassen.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Es muss mindestens eine Konfliktlösung gewählt werden\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Es muss mindestens eine Version jeder Datei ausgewählt werden, um fortzufahren.\"] }] }, { \"language\": \"de_DE\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['\"{char}\" ist innerhalb eines Ordnernamens nicht zulässig.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" ist innerhalb eines Namens nicht zulässig.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" ist kein zulässiger Name.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" ist ein reservierter Name und nicht zulässig für Ordnernamen.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" ist ein reservierter Name und nicht zulässig.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n Dateikonflikt\", \"%n Dateikonflikte\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n Dateikonflikt in {dirname}\", \"%n Dateikonflikte in {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Alle Dateien\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Abbrechen\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Den gesamten Vorgang abbrechen\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Auswählen\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"{file} auswählen\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"%n Datei auswählen\", \"%n Dateien auswählen\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Bestätigen\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsetzen\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopieren\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Nach {target} kopieren\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Der neue Ordner konnte nicht erstellt werden\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Dateieinstellungen konnten nicht geladen werden\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Dateiansichten konnten nicht geladen werden\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Verzeichnis erstellen\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Aktuelle Ansichtsauswahl\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Geben Sie Ihren Namen ein\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Vorhandene Version\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Spitzname konnte nicht gespeichert werden.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoriten\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Dateien und Ordner, die Sie als Favorit markieren, werden hier angezeigt.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Dateien und Ordner, die Sie kürzlich geändert haben, werden hier angezeigt.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Dateiliste filtern\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Ordnernamen dürfen nicht mit \"{extension}\" enden.'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Gast-Identifikation\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Home\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Wenn beide Versionen ausgewählt werden, wird dem Namen der eingehenden Datei eine Nummer hinzugefügt.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Ungültiger Ordnername.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Ungültiger Name.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Datum der letzten Änderung unbekannt\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Geändert\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Verschieben\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Nach {target} verschieben\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Name\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Namen dürfen maximal 64 Zeichen lang sein.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Namen dürfen nicht leer sein.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Namen dürfen nicht mit \"{extension}\" enden.'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Namen dürfen nicht mit einem Punkt beginnen.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Neu\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Neuer Ordner\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Neuer Ordnername\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Neue Version\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Hier sind keine Dateien\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Es wurden keine Dateien gefunden, die Ihrem Filter entsprechen.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Keine passenden Dateien\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Bitte einen Namen mit mindestens zwei Zeichen eingeben.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Neueste\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Alle Kontrollkästchen aktivieren\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Alle Einträge auswählen\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Alle vorhandenen Dateien auswählen\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Alle neuen Dateien auswählen\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Eintrag auswählen\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Die Zeile für {nodename} auswählen.\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Größe\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"%n Datei überspringen\", \"%n Dateien überspringen\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Diese Datei überspringen\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Namen senden\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Rückgängig machen\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Laden Sie Inhalte hoch oder synchronisieren Sie diese mit Ihren Geräten!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Wenn ein eingehender Ordner ausgewählt wird, werden auch alle darin enthaltenen Dateien mit Konflikten überschrieben.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Bei Auswahl eines eingehenden Ordners wird der Inhalt in den vorhandenen Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Welche Dateien sollen behalten werden?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Sie sind derzeit als {nickname} identifiziert.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Sie sind momentan nicht identifiziert.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Sie können den Namen nicht leer lassen.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Es muss mindestens eine Konfliktlösung gewählt werden\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Es muss mindestens eine Version jeder Datei ausgewählt werden, um fortzufahren.\"] }] }, { \"language\": \"el\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [\"Το «{char}» δεν επιτρέπεται μέσα σε όνομα φακέλου.\"] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" δεν επιτρέπεται μέσα σε ένα όνομα.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" δεν είναι επιτρεπτό όνομα.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": [\"Το «{segment}» είναι ένα δεσμευμένο όνομα και δεν επιτρέπεται για ονόματα φακέλων.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" είναι ένα δεσμευμένο όνομα και δεν επιτρέπεται.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n σύγκρουση αρχείου\", \"%n σύγκρουση αρχείων\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n σύγκρουση αρχείου στο {dirname}\", \"%n σύγκρουση αρχείων στο {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Όλα τα αρχεία\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Ακύρωση\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Ακύρωση όλης της διαδικασίας\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Επιλογή\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Επιλέξτε {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Επιλέξτε %n αρχείο\", \"Επιλέξτε %n αρχεία\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Επιβεβαίωση\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Συνέχεια\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Αντιγραφή\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Αντιγραφή στο {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Αδυναμία δημιουργίας νέου φακέλου\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Αδυναμία φόρτωσης ρυθμίσεων αρχείων\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Αδυναμία φόρτωσης προβολών αρχείων\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Δημιουργία καταλόγου\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Επιλογέας τρέχουσας προβολής\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Εισάγετε το όνομά σας\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Υφιστάμενη έκδοση\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Αποτυχία στην ρύθμιση του ψευδώνυμου.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Αγαπημένα\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Τα αρχεία και οι φάκελοι που επισημάνετε ως αγαπημένα θα εμφανίζονται εδώ.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Τα αρχεία και οι φάκελοι που τροποποιήσατε πρόσφατα θα εμφανίζονται εδώ.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Φιλτράρισμα λίστας αρχείων\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": [\"Τα ονόματα των φακέλων δεν πρέπει να τελειώνουν με «{extension}».\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Ταυτοποίηση επισκέπτη\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Αρχική\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Εάν επιλέξετε και τις δύο εκδόσεις, στο όνομα του εισερχόμενου αρχείου θα προστεθεί ένας αριθμός.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Μη έγκυρο όνομα φακέλου.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Μη έγκυρο όνομα.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Άγνωστη ημερομηνία τελευταίας τροποποίησης\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Τροποποιήθηκε\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Μετακίνηση\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Μετακίνηση στο {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Όνομα\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Τα ονόματα μπορούν να έχουν μέγιστο μήκος 64 χαρακτήρες.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Τα ονόματα δεν πρέπει να είναι κενά.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Τα ονόματα δεν πρέπει να τελειώνουν με \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Τα ονόματα δεν πρέπει να ξεκινούν με τελεία.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Νέο\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Νέος φάκελος\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Όνομα νέου φακέλου\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Νέα έκδοση\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Δεν υπάρχουν αρχεία εδώ\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Δεν βρέθηκαν αρχεία που να ταιριάζουν με το φίλτρο σας.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Κανένα αρχείο δεν ταιριάζει\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Παρακαλώ εισάγετε ένα όνομα με τουλάχιστον 2 χαρακτήρες.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Πρόσφατα\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Επιλέξτε όλα τα πλαίσια ελέγχου\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Επιλογή όλων των καταχωρήσεων\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Επιλογή όλων των υπάρχοντων αρχείων\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Επιλογή όλων των νέων αρχείων\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Επιλογή εγγραφής\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Επιλέξτε τη γραμμή για το {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Μέγεθος\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Παράλειψη ενός αρχείου\", \"Παράλειψη %n αρχείων\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Παράλειψη αυτού το αρχείου\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Υποβολή ονόματος\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Αναίρεση\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Ανεβάστε κάποιο περιεχόμενο ή συγχρονίστε με τις συσκευές σας!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Όταν επιλέγεται ένας φάκελος εισερχομένων, όλα τα αρχεία που βρίσκονται σε σύγκρουση μέσα σε αυτόν θα αντικατασταθούν επίσης.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Όταν επιλέγεται ένας φάκελος εισερχομένων, το περιεχόμενο εγγράφεται στον υπάρχοντα φάκελο και εκτελείται μια αναδρομική επίλυση σύγκρουσης.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Ποια αρχεία θέλετε να διατηρήσετε;\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Αυτή τη στιγμή έχετε αναγνωριστεί ως {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Δεν έχετε ταυτοποιηθεί.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Δεν μπορείτε να αφήσετε το όνομα κενό.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Πρέπει να επιλέξετε τουλάχιστον μία λύση σύγκρουσης\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Πρέπει να επιλέξετε τουλάχιστον μία έκδοση από κάθε αρχείο για να συνεχίσετε.\"] }] }, { \"language\": \"en_GB\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['\"{char}\" is not allowed inside a folder name.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" is not allowed inside a name.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" is not an allowed name.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" is a reserved name and cannot be used for folder names.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" is a reserved name and not allowed.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n file conflict\", \"%n files conflict\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n file conflict in {dirname}\", \"%n file conflicts in {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"All files\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancel\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancel the entire operation\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Choose\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Choose {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Choose %n file\", \"Choose %n files\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirm\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Continue\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Copy\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Copy to {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Could not create the new folder\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Could not load files settings\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Could not load files views\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Create directory\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Current view selector\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Enter your name\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Existing version\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Failed to set nickname.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favourites\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Files and folders you mark as favourite will show up here.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Files and folders you recently modified will show up here.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filter file list\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Folder names must not end with \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Guest identification\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Home\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"If you select both versions, the incoming file will have a number added to its name.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Invalid folder name.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Invalid name.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Last modified date unknown\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Modified\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Move\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Move to {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Name\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Names may be at most 64 characters long.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Names must not be empty.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Names must not end with \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Names must not start with a dot.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"New\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"New folder\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"New folder name\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"New version\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"No files in here\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"No files matching your filter were found.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"No matching files\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Please enter a name with at least 2 characters.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Recent\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Select all checkboxes\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Select all entries\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Select all existing files\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Select all new files\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Select entry\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Select the row for {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Size\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Skip %n file\", \"Skip %n files\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Skip this file\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Submit name\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Undo\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Upload some content or sync with your devices!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"When an incoming folder is selected, any conflicting files within it will also be overwritten.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Which files do you want to keep?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"You are currently identified as {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"You are currently not identified.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"You cannot leave the name empty.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"You need to choose at least one conflict solution\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"You need to select at least one version of each file to continue.\"] }] }, { \"language\": \"es\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" no está permitido dentro de un nombre.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" no es un nombre permitido.'] }, { \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": ['\"{name}\" es un nombre de carpeta no válido.'] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": ['\"{name}\" no es un nombre de carpeta permitido'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" es un nombre reservado y no está permitido.'] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\" no está permitido dentro del nombre de una carpeta.'] }, { \"msgid\": \"All files\", \"msgstr\": [\"Todos los archivos\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Seleccionar\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Seleccionar {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Elige %n archivo\", \"Elige %n archivos\", \"Seleccione %n archivos\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Copiar\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Copiar a {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"No se pudo crear la nueva carpeta\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"No se pudieron cargar los ajustes de archivos\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"No se pudieron cargar las vistas de los archivos\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Crear directorio\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Selector de vista actual\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Ingrese su nombre\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Fallo al establecer apodo.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoritos\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Los archivos y carpetas que marque como favoritos aparecerán aquí.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Los archivos y carpetas que modificó recientemente aparecerán aquí.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrar lista de archivos\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"El nombre de la carpeta no puede estar vacío.\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Identificación de invitado\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Inicio\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Nombre inválido.\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Modificado\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Mover\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Mover a {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nombre\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Los nombres no deben estar vacíos.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Los nombres no deben terminar con \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Los nombres no deben iniciar con un punto.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nuevo\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\" Nueva carpeta\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Nuevo nombre de carpeta\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"No hay archivos aquí\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"No se encontraron archivos que coincidiesen con su filtro.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"No hay archivos coincidentes\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Por favor, ingrese un nombre con al menos 2 caracteres.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Reciente\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Seleccionar todas las entradas\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Seleccionar entrada\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Seleccione la fila para {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Tamaño\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Enviar nombre\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Deshacer\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"¡Cargue algún contenido o sincronice con sus dispositivos!\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Ud. se encuentra identificado actualmente como {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Ud. no se encuentra identificado actualmente.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"No puede dejar el nombre vacío.\"] }] }, { \"language\": \"es_AR\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": ['\"{name}\" es un nombre de carpeta inválido.'] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": ['\"{name}\" no es un nombre de carpeta permitido'] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\" no está permitido en el nombre de una carpeta.'] }, { \"msgid\": \"All files\", \"msgstr\": [\"Todos los archivos\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Elegir\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Elija {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Elija %n archivo\", \"Elija %n archivos\", \"Elija %n archivos\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Copiar\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Copiar a {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"No se pudo crear la nueva carpeta\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"No se pudo cargar la configuración de archivos\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"No se pudieron cargar las vistas de los archivos\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Crear directorio\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Selector de vista actual\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoritos\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Los archivos y carpetas que marque como favoritos aparecerán aquí.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Los archivos y carpetas que modificó recientemente aparecerán aquí.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrar lista de archivos\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"El nombre de la carpeta no puede estar vacío.\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Inicio\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Modificado\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Mover\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Mover a {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nombre\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nuevo\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Nueva carpeta\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Nombre de nueva carpeta\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"No hay archivos aquí\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"No se encontraron archivos que coincidan con su filtro.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"No hay archivos coincidentes\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Reciente\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Seleccionar todas las entradas\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Seleccionar entrada\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Seleccione la fila para {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Tamaño\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Deshacer\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"¡Cargue algún contenido o sincronice con sus dispositivos!\"] }] }, { \"language\": \"es_MX\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['\"{char}\" no está permitido dentro de un nombre de carpeta'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" no está permitido dentro de un nombre'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" no es un nombre permitido'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" es un nombre reservado y no está permitido para nombres de carpetas'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" es un nombre reservado y no está permitido'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n conflicto de archivo\", \"%n conflicto de archivos\", \"%n conflicto de archivos\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n conflicto de archivo en {dirname}\", \"%n conflictos de archivo en {dirname}\", \"%n conflictos de archivo en {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Todos los archivos\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancelar la operación completa\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Seleccionar\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Seleccionar {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Seleccionar %n archivo\", \"Seleccionar %n archivos\", \"Seleccionar %n archivos\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmar\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Copiar\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Copiar a {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"No se pudo crear la nueva carpeta\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"No se pudo cargar la configuración de archivos\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"No se pudieron cargar las vistas de los archivos\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Crear carpeta\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Selector de vista actual\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Ingresa tu nombre\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Versión existente\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"No se pudo establecer el nickname\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoritos\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Los archivos y carpetas que marque como favoritos aparecerán aquí.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Los archivos y carpetas que modificó recientemente aparecerán aquí.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrar lista de archivos\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Los nombres para carpeta no deben terminar con \"{extension}\"'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Identificación de invitado\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Inicio\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Si seleccionas ambas versiones, se le agregará al archivo que se está descargando, un número a su nombre.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Nombre de carpeta no válido\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Nombre no válido\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Última fecha de modificación desconocida\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Modificado\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Mover\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Mover a {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nombre\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Los nombres pueden tener como máximo 64 caracteres.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Los nombres no deben estar vacíos.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Los nombres no deben terminar con \"{extension}\"'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Los nombres no deben comenzar con un punto.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nuevo\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Nueva carpeta\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Nombre de nueva carpeta\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Versión nueva\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"No hay archivos aquí\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"No se encontraron archivos que coincidan con su filtro.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"No hay archivos coincidentes\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Por favor ingrese un nombre con al menos 2 caracteres.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Reciente\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Seleccione todas las casillas de verificación\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Seleccionar todas las entradas\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleccione todos los archivos que aparecen\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleccione todos los archivos nuevos\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Seleccionar entrada\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Seleccione la fila para {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Tamaño\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Omitir %n archivo\", \"Omitir %n archivos\", \"Omitir %n archivos\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Omitir este archivo\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Enviar nombre\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Deshacer\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"¡Suba algún contenido o sincronice con sus dispositivos!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Cuando se selecciona una carpeta en descarga, cualquier archivo conflictivo que contenga también se sobrescribirá.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Cuando se selecciona una carpeta en descarga, el contenido se escribe en la carpeta existente y se realiza una resolución de conflicto recursiva.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"¿Qué archivos deseas conservar?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Actualmente estás identificado como {nickname}\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"No estás identificado actualmente.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"No puedes dejar el nombre vacío.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Necesitas elegir al menos una solución al conflicto.\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Necesitas seleccionar al menos una versión de cada archivo para continuar.\"] }] }, { \"language\": \"et_EE\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [\"„{char}“ pole kausta nimes lubatud.\"] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": [\"„{char}“ pole nimes lubatud.\"] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": [\"„{extension}“ pole lubatud nimi.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": [\"„{segment}“ on reserveeritud nimi ja pole kausta nimes lubatud.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": [\"„{segment}“ on reserveeritud nimi ja pole kasutamiseks lubatud.\"] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n fail on vastuolus\", \"%n faili on omavahel vastuolus\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n fail on {dirname} kaustas vastuolus\", \"%n faili on omavahel {dirname} kaustas vastuolus\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Kõik failid\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Katkesta\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Katkesta kogu tegevus\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Tee valik\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Vali {file} fail\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Vali %n fail\", \"Vali %n faili\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Kinnita\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Jätka\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopeeri\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Kopeeri sihtkohta „{target}“\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Uut kausta ei saanud luua\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Failide seadistusi ei õnnestunud laadida\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Failide vaatamiskordi ei õnnestunud laadida\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Loo kaust\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Praeguse vaate valija\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Sisesta oma nimi\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Olemasolev versioon\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Hüüdnime ei õnnestunud lisada\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Lemmikud\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Failid ja kaustad, mida märgistad lemmikuks, kuvatakse siin.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Siin kuvatakse hiljuti muudetud failid ja kaustad.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtreeri faililoendit\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": [\"Kausta nime lõpus ei tohi olla „{extension}“.\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Külalise tuvastamine\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Avaleht\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Kui valid mõlemad versioonid, siis uue faili nimele lisatakse number.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Vigane kausta nimi.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Vigane nimi.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Viimase muutmise kuupäev pole teada\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Muudetud\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Teisalda\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Teisalda kausta „{target}“\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nimi\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Nimed võivad olla vaid kuni 64 tähemärki pikad.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Nimi ei saa olla tühi.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": [\"Nime lõpus ei tohi olla „{extension}“.\"] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Nime alguses ei tohi olla punkt.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Uus\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Uus kaust\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Uue kausta nimi\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Uus versioon\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Siin puuduvad failid\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Sinu filtrile vastavaid faile ei leidunud.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Puuduvad sobivad failid\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Palun sisesta vähemalt 2 tähemärki pikk nimi.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Hiljutine\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Vali kõik märkeruudud\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Vali kõik kirjed\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Vali kõik olemasolevad failid\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Vali kõik uued failid\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Vali kirje\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Vali rida „{nodename}“ jaoks\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Suurus\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Jäta %n fail vahele\", \"Jäta %n faili vahele\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Jäta see fail vahele\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Lisa nimi\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Tühista\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Lisa mingit sisu või sünkrooni see oma seadmetest!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Kui uute failide kaust on valitud, siis kõik seal leiduvad vastuolus failid saavad üle kirjutatud.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Kui uute failide kaust on valitud, siis sisu kirjutatakse olemasolevasse kausta ja korraldatakse rekursiivne failikonfliktide lahendamine.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Missugused failid tahaksid alles jätta?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Sa oled hetkel tuvastatav kui {nickname}..\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Sa oled hetkel tuvastamata.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Sa ei saa jätte nime tühjaks.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Sa pead valima vähemalt ühe failikonflikti lahenduse.\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Jätkamaks pead valima igast failist vähemalt ühe versiooni.\"] }] }, { \"language\": \"fa\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": [\"{name} نام پوشه معتبر نیست\"] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": [\"{name} نام پوشه مجاز نیست\"] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\" نمی‌تواند در نام پوشه استفاده شود.'] }, { \"msgid\": \"All files\", \"msgstr\": [\"همه فایل‌ها\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"لغو\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"انتخاب\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"انتخاب {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"انتخاب %n فایل\", \"انتخاب %n فایل\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"رونوشت\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"رونوشت از {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"پوشه جدید ایجاد نشد\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"تنظیمات فایل باز نشد\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"نمای فایل‌ها بارگیری نشد\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"ایجاد فهرست\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"انتخابگر نماگر فعلی\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"نام خود را وارد کنید\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"تنظیم نام مستعار ناموفق بود.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"علایق\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"فایل‌ها و پوشه‌هایی که به‌عنوان مورد علاقه علامت‌گذاری می‌کنید در اینجا نشان داده می‌شوند.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"فایل‌ها و پوشه‌هایی که اخیراً تغییر داده‌اید در اینجا نمایش داده می‌شوند.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"فیلتر لیست فایل\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"نام پوشه نمی تواند خالی باشد.\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"شناسایی مهمان\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"خانه\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"اصلاح شده\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"انتقال\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"انتقال به {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"نام\"] }, { \"msgid\": \"New\", \"msgstr\": [\"جدید\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"پوشه جدید\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"نام پوشه جدید\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"فایلی اینجا نیست\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"هیچ فایلی مطابق با فیلتر شما یافت نشد.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"فایل منطبقی وجود ندارد\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"لطفاً نامی با حداقل ۲ کاراکتر وارد کنید.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"اخیر\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"انتخاب همه ورودی ها\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"انتخاب ورودی\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"انتخاب ردیف برای {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"اندازه\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"ارسال نام\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"بازگردانی\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"مقداری محتوا آپلود کنید یا با دستگاه های خود همگام سازی کنید!\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"شما در حال حاضر شناسایی نشده‌اید.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"نمی‌توانید نام را خالی بگذارید.\"] }] }, { \"language\": \"fi_FI\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" ei ole sallittu nimessä.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" ei ole sallittu nimi.'] }, { \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": ['\"{name}\" on virheellinen kansion nimi.'] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": ['\"{name}\" ei ole sallittu kansion nimi'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" on varattu nimi eikä se ole sallittu.'] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\" ei ole sallittu kansion nimessä.'] }, { \"msgid\": \"All files\", \"msgstr\": [\"Kaikki tiedostot\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Peruuta\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Valitse\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Valitse {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Valitse %n tiedosto\", \"Valitse %n tiedostoa\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopioi\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Kopioi sijaintiin {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Uutta kansiota ei voitu luoda\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Tiedoston asetuksia ei saa ladattua\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Tiedoston näkymiä ei saa ladattua\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Luo kansio\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Nykyisen näkymän valinta\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Kirjoita nimesi\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Kutsumanimen asettaminen epäonnistui.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Suosikit\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Tiedostot ja kansiot, jotka merkitset suosikkeihisi, näkyvät täällä.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Tiedostot ja kansiot, joita muokkasit äskettäin, näkyvät täällä.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Suodata tiedostolistaa\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"Kansion nimi ei voi olla tyhjä.\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Vieraan tunnistaminen\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Koti\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Virheellinen nimi.\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Muokattu\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Siirrä\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Siirrä sijaintiin {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nimi\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Nimissä voi olla enintään 64 merkkiä.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Nimet eivät saa olla tyhjiä.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Nimet eivät saa päättyä sanaan \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Nimet eivät saa alkaa pisteellä.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Uusi\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Uusi kansio\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Uuden kansion nimi\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Täällä ei ole tiedostoja\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Suodatinta vastaavia tiedostoja ei löytynyt.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Ei vastaavia tiedostoja\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Kirjoita vähintään kaksi merkkiä sisältävä nimi.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Viimeisimmät\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Valitse kaikki tietueet\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Valitse tietue\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Valitse rivi {nodename}:lle\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Koko\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Lähetä nimi\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Kumoa\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Lähetä jotain sisältöä tai synkronoi laitteidesi kanssa!\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Sinut tunnetaan tällä hetkellä nimellä {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Sinua ei ole tunnistettu.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Nimeä ei voi jättää tyhjäksi.\"] }] }, { \"language\": \"fr\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [`\"{char}\" n'est pas autorisé dans un nom de dossier.`] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": [`\"{char}\" n'est pas autorisé dans un nom.`] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": [`\"{extension}\" n'est pas un nom autorisé.`] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": [`\"{segment}\" est un nom réservé et n'est pas autorisé pour un nom de dossier.`] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": [`\"{segment}\" est un nom réservé et n'est pas autorisé.`] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n conflit de fichier\", \"%n conflit de fichiers\", \"%n conflit de fichiers\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%nconflit de fichier dans {dirname}\", \"%n conflit de fichiers dans {dirname}\", \"%nconflit de fichiers dans {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Tous les fichiers\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Annuler\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Tout annuler \"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Choisir\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Choisir {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Choisir %n fichier\", \"Choisir %n fichiers\", \"Choisir %n fichiers \"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmer\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Continuer\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Copier\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Copier vers {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Impossible de créer le nouveau dossier\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Les paramètres des fichiers n'ont pas pu être chargés\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Impossible de charger les vues des fichiers\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Créer un répertoire\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Sélecteur d'affichage actuel\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Entrez votre nom\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Version actuelle \"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Échec de définition du surnom.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoris\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Les fichiers et répertoires marqués en favoris apparaîtront ici.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Les fichiers et répertoires modifiés récemment apparaîtront ici.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrer la liste des fichiers\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Les noms de dossiers ne doivent pas se terminer par \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Identification d'invité\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Accueil\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Si vous conservez les deux versions, le fichier reçu sera renommé avec un numéro.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Nom de dossier invalide.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Nom invalide.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Date de modification inconnue\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Modifié\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Déplacer\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Déplacer vers {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nom\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Les noms peuvent comporter au maximum 64 caractères.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Les noms ne peuvent pas être vides.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Les noms ne doivent pas se terminer par \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Les noms ne peuvent pas commencer par un point.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nouveau\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Nouveau dossier\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Nom du nouveau dossier\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Nouvelle version\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Aucun fichier ici\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Aucun fichier trouvé correspondant à votre filtre.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Aucun fichier correspondant\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Veuillez entrer un nom avec au moins 2 caractères.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Récents\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Sélectionner toutes les cases à cocher\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Tout sélectionner\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Sélectionner tous les fichiers existants\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Sélectionner tous les nouveaux fichiers\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Sélectionner une entrée\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Sélectionner la ligne correspondant à {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Taille\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Ignorer %n fichier\", \"Ignorer %n fichiers \", \"Ignorer %n fichiers \"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Ignorer ce fichier\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Envoyer le nom\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Annuler\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Chargez du contenu ou synchronisez avec vos équipements !\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"En sélectionnant un dossier entrant, les fichiers en conflit qu’il contient seront automatiquement écrasés.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Lorsque vous sélectionnez un dossier entrant, son contenu est ajouté au dossier existant et les conflits sont résolus automatiquement.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quels fichiers souhaitez-vous conserver ?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Vous êtes actuellement identifié comme {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Vous n'êtes pas identifié actuellement.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Vous ne pouvez pas laisser le nom vide.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Vous devez choisir au moins une option pour résoudre le conflit\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Sélectionnez au moins une version de chaque fichier pour continuer.\"] }] }, { \"language\": \"ga\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [`Ní cheadaítear \"{char}\" laistigh d'ainm fillteáin.`] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": [`Ní cheadaítear \"{char}\" laistigh d'ainm.`] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['Ní ainm ceadaithe é \"{extension}\".'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": [`Is ainm curtha in áirithe é \"{segment}\" agus ní cheadaítear é d'ainmneacha fillteán.`] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['Is ainm curtha in áirithe é \"{segment}\" agus ní cheadaítear é.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n coimhlint comhaid\", \"%n coimhlint comhad\", \"%n coimhlint comhad\", \"%n coimhlint comhad\", \"%n coimhlint comhad\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n coimhlint comhaid i {dirname}\", \"%n coimhlintí comhaid i {dirname}\", \"%n coimhlintí comhaid i {dirname}\", \"%n coimhlintí comhaid i {dirname}\", \"%n coimhlintí comhaid i {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Gach comhad\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Cealaigh\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cealaigh an oibríocht ar fad\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Roghnaigh\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Roghnaigh {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Roghnaigh %n comhad\", \"Roghnaigh %n comhaid\", \"Roghnaigh %n comhaid\", \"Roghnaigh %n comhaid\", \"Roghnaigh %n comhaid\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Deimhnigh\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Lean ar aghaidh\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Cóip\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Cóipeáil chuig {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Níorbh fhéidir an fillteán nua a chruthú\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Níorbh fhéidir socruithe comhaid a lódáil\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Níorbh fhéidir radhairc comhad a lódáil\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Cruthaigh eolaire\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Roghnóir amhairc reatha\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Cuir isteach d'ainm\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Leagan atá ann cheana féin\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Theip ar leasainm a shocrú.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Ceanáin\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Taispeánfar comhaid agus fillteáin a mharcálann tú mar is fearr leat anseo.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Taispeánfar comhaid agus fillteáin a d'athraigh tú le déanaí anseo.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Scag liosta comhad\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Ní féidir ainmneacha fillteán a chríochnú le \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Aitheantas aoi\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Baile\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Má roghnaíonn tú an dá leagan, cuirfear uimhir le hainm an chomhaid atá ag teacht isteach.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Ainm fillteáin neamhbhailí.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Ainm neamhbhailí.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Dáta an athraithe dheireanaigh anaithnid\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Athraithe\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Bog\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Bog go{target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Ainm\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Ní fhéadfaidh ainmneacha a bheith níos mó ná 64 carachtar ar fhad.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Ní féidir ainmneacha a bheith folamh.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Ní féidir ainmneacha a chríochnú le \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Ní mór ainmneacha a bheith ag tosú le ponc.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nua\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Fillteán nua\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Ainm fillteáin nua\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Leagan nua\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Níl aon chomhaid istigh anseo\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Níor aimsíodh aon chomhad a tháinig le do scagaire.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Gan comhaid meaitseála\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Cuir isteach ainm ina bhfuil 2 charachtar ar a laghad.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"le déanaí\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Roghnaigh na boscaí seiceála go léir\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Roghnaigh gach iontráil\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Roghnaigh na comhaid uile atá ann cheana\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Roghnaigh gach comhad nua\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Roghnaigh iontráil\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Roghnaigh an ró do {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Méid\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Léim %n comhad\", \"Léim %n comhaid\", \"Léim %n comhaid\", \"Léim %n comhaid\", \"Léim %n comhaid\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Scipeáil an comhad seo\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Cuir isteach ainm\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Cealaigh\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Uaslódáil roinnt ábhair nó sioncronaigh le do ghléasanna!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Nuair a roghnaítear fillteán isteach, déanfar aon chomhaid choimhlinteacha ann a athscríobh freisin.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Nuair a roghnaítear fillteán isteach, scríobhtar an t-ábhar isteach sa fhillteán atá ann cheana féin agus déantar réiteach coinbhleachta athchúrsach.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Cé na comhaid ar mhaith leat a choinneáil?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Is é {nickname} an ainm atá ort faoi láthair.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Níl aitheantas tugtha duit faoi láthair.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Ní féidir leat an t-ainm a fhágáil folamh.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Ní mór duit réiteach coinbhleachta amháin ar a laghad a roghnú\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Ní mór duit leagan amháin ar a laghad de gach comhad a roghnú le leanúint ar aghaidh.\"] }] }, { \"language\": \"gl\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [\"«{char}» non está permitido no nome dun cartafol.\"] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": [\"«{char}» non está permitido dentro dun nome.\"] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": [\"«{extension}» non é un nome permitido.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": [\"«{segment}» é un nome reservado e non está permitido para nomes de cartafoles.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": [\"«{segment}» é un nome reservado e non está permitido.\"] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n ficheiro en conflito\", \"%n ficheiros en conflito\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n ficheiro en conflito en {dirname}\", \"%n ficheiros en conflito en {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Todos os ficheiros\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancelar toda a operación\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Escoller\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Escoller {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Escoller %n ficheiro\", \"Escoller %n ficheiros\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmar\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Copiar\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Copiar en {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Non foi posíbel crear o novo cartafol\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Non foi posíbel cargar os axustes dos ficheiros\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Non foi posíbel cargar as vistas dos ficheiros\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Crear un directorio\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Selector de vista actual\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Introduza o seu nome\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Versión existente\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Produciuse un fallo ao definir o alcume.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoritos\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Os ficheiros e cartafoles que marque como favoritos aparecerán aquí.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Os ficheiros e cartafoles que modificou recentemente aparecerán aquí.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrar a lista de ficheiros\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": [\"Os nomes de cartafol non deben rematar en «{extension}».\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Identificación do convidado\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Inicio\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Se selecciona ambas as versións, o ficheiro entrante terá un número engadido ao seu nome.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"O nome de cartafol non é válido.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Nome incorrecto\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Data da última modificación descoñecida\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Modificado\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Mover\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Mover cara a {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nome\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Os nomes poden ter unha lonxitude máxima de 64 caracteres.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Os nomes non deben estar baleiros.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": [\"Os nomes non deben rematar en «{extension}».\"] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Os nomes non deben comezar cun punto.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Novo\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Novo cartafol\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Novo nome do cartafol\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Nova versión\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Aquí non hai ficheiros\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Non se atopou ningún ficheiro que coincida co filtro.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Non hai ficheiros coincidentes\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Introduza un nome con polo menos 2 caracteres.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Recente\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Seleccionar todas as caixas\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Seleccionar todas as entradas\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleccionar todos os ficheiros existentes\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleccionar todos os ficheiros novos\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Seleccionar a entrada\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Seleccionar a fila para {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Tamaño\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Omitir %n ficheiro\", \"Omitir %n ficheiros\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Omitir este ficheiro\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Enviar o nome\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Desfacer\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Enviar algún contido ou sincronizalo cos seus dispositivos!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Cando se selecciona un cartafol entrante, todos os ficheiros conflitivos dentro dela tamén serán sobrescritos.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Cando se selecciona un cartafol entrante, o contido escríbese no cartafol existente e realízase unha resolución recursiva de conflitos.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Que ficheiros quere conservar?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Vde. está identificado actualmente como {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Vde. non está identificado actualmente.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Vde. non pode deixar o nome baleiro.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"É necesario escoller polo menos unha solución de conflito\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"É necesario seleccionar polo menos unha versión de cada ficheiro para continuar.\"] }] }, { \"language\": \"hr\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [\"Znak „{char}” nije dopušten u nazivu mape.\"] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": [\"Znak „{char}” nije dopušten u nazivu.\"] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" nije dopušten u nazivu.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" je rezervirana riječ i nije dopušten u nazivu mape.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" je rezervirana riječ i nije dopušten.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"Sukobljava se %n datoteka\", \"Sukobljava se %n datoteke\", \"Sukobljava se %n datoteke\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n sukob datoteka u {dirname}\", \"%n sukoba datoteka u {dirname}\", \"%n sukoba datoteka u {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Sve datoteke\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Odustani\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Odustani od cijele operacije\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Odaberi\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Odaberi {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Odaberi %n datoteku\", \"Odaberi %n datoteka\", \"Odaberi %n datoteke\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Potvrdi\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Nastavi\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopiraj\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Kopiraj u {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Nije moguće stvoriti novu mapu\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Nije moguće učitati postavke datoteka\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Nije moguće učitati prikaze datoteka\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Stvori mapu\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Odabir trenutačnog prikaza\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Unesite vaše ime\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Postojeća verzija\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Neuspjelo postavljanje nadimka.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoriti\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Ovdje se prikazuju datoteke i mape koje ste označili kao favoriti.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Ovdje se prikazuju datoteke i mape koje ste nedavno ažurirali.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtriranje liste datoteka\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Nazivi mapa ne smiju završiti sa \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Identifikacija gosta\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Naslovna\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Ako odaberete obje verzije, dolaznoj datoteci bit će dodan broj u nazivu.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Neispavan naziv mape.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Neispravan naziv.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Nepoznat datum zadnjeg ažuriranja\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Ažurirano\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Premjesti\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Premjesti u {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Naziv\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Nazivi mogu imati najviše 64 znaka.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Nazivi ne smiju biti prazni.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Nazivi ne smiju završiti sa \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Nazivi ne smiju započinjati točkom.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Novo\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Nova mapa\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Novi naziv mape\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Nova verzija\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Ovdje nema datoteka\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Nisu pronađene datoteke koje odgovaraju vašem filtru.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Nema odgovarajućih datoteka.\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Unesite naziv s najmanje 2 znaka.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Nedavno\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Označi sve potvrdne okvire\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Označi sve stavke\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Označi sve postojeće datoteke\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Označi sve nove datoteke\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Označi stavku\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Označi red za{nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Veličina\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Preskoči %n datoteku\", \"Preskoči %n datoteke\", \"Preskoči %n datoteke\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Preskoči ovu datoteku\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Pošalji naziv\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Poništi\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Prenesite neki sadržaj ili sinkronizirajte sa svojim uređajima!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Kada je odabrana dolazna mapa, sve datoteke unutar nje koje su u sukobu također će biti prepisane.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Kada je odabrana dolazna mapa, sadržaj se upisuje u postojeću mapu i provodi se rekurzivno rješavanje sukoba.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Koje datoteke želite zadržati?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Trenutno ste identificirani kao {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Trenutno niste identificirani.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Ne možete ostaviti naziv prazan.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Morate odabrati barem jedno rješenje sukoba\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Morate odabrati barem jednu verziju svake datoteke kako biste nastavili.\"] }] }, { \"language\": \"hu_HU\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [\"A(z) „{char}” nem engedélyezett egy mappanévben.\"] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": [\"A(z) „{char}” nem engedélyezett egy névben.\"] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": [\"A(z) „{extension}” nem engedélyezett név.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": [\"A(z) „{segment}” foglalt név, és nem engedélyezett a mappanevekben.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": [\"A(z) „{segment}” foglalt név, és nem engedélyezett.\"] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n ütköző fájl\", \"%n ütköző fájl\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n ütköző fájl ebben: {dirname}\", \"%n ütköző fájl ebben: {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Összes fájl\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Mégse\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Egész művelet megszakítása\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Kiválasztás\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"{file} kiválasztása\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"%n fájl kiválasztása\", \"%n fájl kiválasztása\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Megerősítés\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Folytatás\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Másolás\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Másolás ide: {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Nem lehet létrehozni az új mappát\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Nem lehet betölteni a fájlok beállításait\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Nem lehet betölteni a fájlok nézeteit\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Mappa létrehozása\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Jelenlegi nézet választója\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Adja meg a nevét\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Meglévő verzió\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Nem sikerült a becenév beállítása.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Kedvencek\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"A kedvencként megjelölt fájlok és mappák itt jelennek meg.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"A nemrég módosított fájlok és mappák itt jelennek meg.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Fájllista szűrése\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": [\"A mappanevek nem végződhetnek ezzel: „{extension}”.\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Vendégazonosítás\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Kezdőlap\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Ha mindkét verziót választja, akkor a bejövő fájl nevéhez egy szám lesz hozzáfűzve.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Érvénytelen mappanév.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Érvénytelen név.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Legutóbbi módosítás ideje ismeretlen\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Módosítva\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Áthelyezés\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Áthelyezés ide: {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Név\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"A nevek legfeljebb 64 karakter hosszúak lehetnek.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"A nevek nem lehetnek üresek.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": [\"A nevek nem végződhetnek ezzel: „{extension}”.\"] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"A nevek nem kezdődhetnek ponttal.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Új\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Új mappa\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Új mappa neve\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Új verzió\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Itt nincsenek fájlok\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Nincs a szűrési feltételeknek megfelelő fájl.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Nincs ilyen fájl\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Legalább 2 karakteres nevet adjon meg.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Legutóbbi\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Összes jelölőmező bepipálása\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Összes bejegyzés kijelölése\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Összes meglévő fájl kijelölése\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Összes új fájl kijelölése\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Bejegyzés kijelölése\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Válasszon sort a következőnek: {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Méret\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"%n fájl kihagyása\", \"%n fájl kihagyása\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Fájl kihagyása\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Név beküldése\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Visszavonás\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Töltsön fel tartalmat, vagy szinkronizáljon az eszközeivel!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Ha egy bejövő mappa van kijelölve, akkor a benne lévő ütköző fájlok is felül lesznek írva.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Ha egy bejövő mappa van kijelölve, akkor a tartalom a meglévő mappába lesz írva, és rekurzív ütközéskezelés lesz végezve.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Mely fájlokat akarja megtartani?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Jelenleg ekként van azonosítva: {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Jelenleg nincs azonosítva.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"A nevet nem hagyhatja üresen.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Legalább egy ütközéskezelési megoldást kell választania\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"A folytatáshoz az összes fájlnak legalább egy verzióját ki kell választania.\"] }] }, { \"language\": \"hy\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": [\"{name} սխալ թղթապանակի անվանում է\"] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": [\"{name} համարվում է անթույլատրելի թղթապանակի անվանում\"] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": [\"/ չի թույլատրվում օգտագործել անվանման մեջ\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Բոլոր ֆայլերը\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Ընտրել\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Ընտրել {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Ընտրել %n ֆայլ\", \"Ընտրել %n ֆայլեր\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Պատճենել\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Պատճենել {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Չստացվեց ստեղծել նոր թղթապանակը\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Չստացվեց բեռնել ֆայլի կարգավորումները\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Չստացվեց բեռնել ֆայլերի դիտումները\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Ստեղծել դիրեկտորիա\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Ընթացիկ դիտման ընտրիչ\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Նախընտրելիներ\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Այստեղ կցուցադրվեն այն ֆայլերն ու պանակները, որոնք դուք նշել եք որպես նախընտրելիներ:\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Այստեղ կցուցադրվեն այն ֆայլերն ու պանակները, որոնք վերջերս փոխել եք:\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Ֆիլտրել ֆայլերի ցուցակը\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"Թղթապանակի անունը չի կարող դատարկ լինել:\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Սկիզբ\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Փոփոխված\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Տեղափոխել\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Տեղափոխել {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Անուն\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Նոր\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Նոր թղթապանակ\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Նոր թղթապանակի անվանում\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Այստեղ չկան ֆայլեր\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Ձեր ֆիլտրին համապատասխանող ֆայլերը չեն գտնվել:\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Չկան համապատասխան ֆայլեր\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Վերջին\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Ընտրել բոլոր գրառումները\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Ընտրել բոլոր գրառումը\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Ընտրեք տողը {nodename}-ի համար \"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Չափ\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Ետարկել\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Ներբեռնեք որոշ բովանդակություն կամ համաժամացրեք այն ձեր սարքերի հետ:\"] }] }, { \"language\": \"id\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['\"{char}\" tidak diizinkan di dalam nama folder.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" tidak diizinkan di dalam nama.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" bukan nama yang diizinkan.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" adalah nama yang dicadangkan dan tidak diizinkan untuk nama folder.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" adalah nama yang dicadangkan dan tidak diizinkan.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n konflik file\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n konflik file di {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Semua berkas\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Batal\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Batalkan seluruh operasi\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Pilih\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Pilih {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Pilih %n file\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Konfirmasi\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Lanjutkan\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Salin\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Salin ke {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Tidak dapat membuat folder baru\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Tidak dapat memuat pengaturan file\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Tidak dapat memuat tampilan file\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Buat direktori\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Pemilih tampilan saat ini\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Masukkan nama Anda\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Versi yang ada\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Gagal menetapkan nama panggilan.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favorit\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Berkas dan folder yang Anda tandai sebagai favorit akan muncul di sini.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Berkas dan folder yang Anda ubah baru-baru ini akan muncul di sini.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Saring daftar berkas\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Nama folder tidak boleh diakhiri dengan \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Identifikasi tamu\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Beranda\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Jika Anda memilih kedua versi, file yang masuk akan ditambahkan angka pada namanya.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Nama folder tidak valid.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Nama tidak valid.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Tanggal modifikasi terakhir tidak diketahui\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Diubah\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Pindahkan\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Pindahkan ke {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nama\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Panjang nama maksimal 64 karakter.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Nama tidak boleh kosong.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Nama tidak boleh diakhiri dengan \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Nama tidak boleh diawali dengan titik.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Baru\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Folder baru\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Nama folder baru\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Versi baru\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Tidak ada berkas di sini\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Tidak ada berkas yang cocok dengan penyaringan Anda.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Tidak ada berkas yang cocok\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Silakan masukkan nama dengan minimal 2 karakter.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Terkini\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Pilih semua kotak centang\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Pilih semua entri\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Pilih semua file yang ada\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Pilih semua file baru\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Pilih entri\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Pilih baris untuk {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Ukuran\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Lewati %n file\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Lewati file ini\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Kirim nama\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Tidak jadi\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Unggah beberapa konten atau sinkronkan dengan perangkat Anda!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Saat folder yang masuk dipilih, semua file yang konflik di dalamnya juga akan ditimpa.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Saat folder yang masuk dipilih, konten ditulis ke dalam folder yang ada dan penyelesaian konflik rekursif dilakukan.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"File mana yang ingin Anda pertahankan?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Saat ini Anda teridentifikasi sebagai {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Saat ini Anda tidak teridentifikasi.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Anda tidak dapat membiarkan nama kosong.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Anda perlu memilih setidaknya satu solusi konflik\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Anda perlu memilih setidaknya satu versi dari setiap file untuk melanjutkan.\"] }] }, { \"language\": \"is\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": ['\"{name}\" er ógilt möppuheiti.'] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": ['\"{name}\" er ekki leyfilegt möppuheiti'] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\" er er ekki leyfilegt innan í skráarheiti.'] }, { \"msgid\": \"All files\", \"msgstr\": [\"Allar skrár\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Veldu\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Veldu {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Veldu %n skrá\", \"Veldu %n skrár\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Afrita\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Afrita í {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Get ekki búið til nýju möppuna\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Tókst ekki að hlaða inn stillingum skráa\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Tókst ekki að hlaða inn sýnum skráa\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Búa til möppu\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Núverandi val sýnar\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Eftirlæti\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Skrár og möppur sem þú merkir sem eftirlæti birtast hér.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Skrár og möppur sem þú breyttir nýlega birtast hér.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Sía skráalista\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"Möppuheiti má ekki vera tómt.\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Heim\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Breytt\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Færa\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Færa í {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Heiti\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nýtt\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Ný mappa\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Heiti nýrrar möppu\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Engar skrár hér\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Engar skrár fundust sem passa við síuna.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Engar samsvarandi skrár\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Nýlegt\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Velja allar færslur\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Velja færslu\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Veldu röðina fyrir {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Stærð\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Afturkalla\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Sendu inn eitthvað efni eða samstilltu við tækin þín!\"] }] }, { \"language\": \"it\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [`\"{char}\" non è consentito all'interno di un nome di cartella.`] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": [`\"{char}\" non è consentito all'interno di un nome.`] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" non è un nome consentito'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" è un nome riservato e non consentito per i nomi delle cartelle.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" è un nome riservato e non consentito.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n file in conflitto\", \"%n file in conflitto\", \"%n file in conflitto\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n file in conflitto in {dirname}\", \"%n file in conflitto in {dirname}\", \"%n file in conflitto in {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Tutti i file\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Annulla\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Annulla l'intera operazione\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Scegli\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Scegli {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Scegli %n file\", \"Scegli %n file\", \"Scegli %n file\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Conferma\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Continua\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Copia\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Copia in {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Impossibile creare la nuova cartella\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Impossibile caricare le impostazioni dei file\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Impossibile caricare le visualizzazioni dei file\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Crea cartella\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Selettore della vista attuale\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Inserisci il tuo nome\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Versione esistente\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Impossibile impostare lo pseudonimo.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Preferiti\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"I file e le cartelle contrassegnate come preferite saranno mostrate qui.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"I file e le cartelle che hai modificato di recente saranno mostrate qui.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtra l'elenco dei file\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['I nomi delle cartelle devono finire con \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Identificazione ospiti\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Home\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Se selezioni entrambe le versioni, al nome del file in arrivo verrà aggiunto un numero.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Nome cartella non valido.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Nome non valido.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Data di ultima modifica sconosciuta\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Modificato\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Sposta\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Sposta in {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nome\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"I nomi dovrebbero avere una lunghezza massima di 64 caratteri.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"I nomi non devono essere vuoti.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['I nomi devono finire con \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"I nomi non possono iniziare con un punto.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nuovo\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Nuova cartella\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Nome della nuova cartella\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Nuova versione\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Nessun file qui\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Nessun file che corrisponde al tuo filtro è stato trovato.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Nessun file corrispondente\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Digita un nome con almeno 2 caratteri.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Recente\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Seleziona tutte le caselle\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Scegli tutte le voci\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleziona tutti i file esistenti\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleziona tutti i nuovi file\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Seleziona la voce\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Seleziona la riga per {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Dimensioni\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Salta %n file\", \"Salta %n file\", \"Salta %n file\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Salta questo file\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Invia nome\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Annulla\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Carica qualche contenuto o sincronizza con i tuoi dispositivi!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Quando si seleziona una cartella in arrivo, anche tutti i file in conflitto al suo interno saranno sovrascritti.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Quando si seleziona una cartella in arrivo, il contenuto viene scritto nella cartella esistente e viene eseguita una risoluzione ricorsiva dei conflitti.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quali file vuoi conservare?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Sei attualmente identificato come {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Attualmente non sei identificato.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Non puoi lasciare il nome vuoto.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Devi scegliere almeno una soluzione al conflitto\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Per continuare, è necessario selezionare almeno una versione di ciascun file.\"] }] }, { \"language\": \"ja_JP\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['フォルダー名に \"{char}\" を使用することはできません。'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['名前に \"{char}\" を使用することはできません。'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" は許可された名前ではありません。'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" は予約名のため、使用できません。'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" は予約名のため、使用できません。'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%nファイルが競合しています\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%nディレクトリ{dirname}内のファイル競合\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"すべてのファイル\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"キャンセル\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"すべての操作をキャンセル\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"選択\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"{file} を選択\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"%n 個のファイルを選択\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"確認\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"続行\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"コピー\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"{target} にコピー\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"新しいフォルダーを作成できませんでした\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"ファイル設定を読み込めませんでした\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"ファイルビューを読み込めませんでした\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"ディレクトリを作成\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"現在のビュー選択\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"名前を入力してください\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"現行バージョン\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"ニックネームの設定に失敗しました。\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"お気に入り\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"お気に入りとしてマークしたファイルとフォルダーがここに表示されます。\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"最近変更したファイルとフォルダーがここに表示されます。\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"ファイルのリストをフィルター\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['フォルダー名の末尾に \"{extension}\" を使用できません。'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"ゲスト識別\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"ホーム\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"両方のバージョンを選択した場合、受信ファイル名には番号が追加されます。\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"フォルダー名が無効です。\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"無効な名前です。\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"最終更新日不明\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"変更済み\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"移動\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"{target} に移動\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"名前\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"名前は最大64文字です。\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"名前は空にできません。\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['名前の末尾に \"{extension}\" を使用できません。'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"ドットで始まる名前は使用できません。\"] }, { \"msgid\": \"New\", \"msgstr\": [\"新規作成\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"新しいフォルダー\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"新しいフォルダーの名前\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"新バージョン\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"ファイルがありません\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"フィルターに一致するファイルは見つかりませんでした。\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"一致するファイルはありません\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"名前は2文字以上を入力してください。\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"最近\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"すべてのチェックボックスを選択\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"すべてのエントリを選択\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"既存のファイルをすべて選択\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"すべての新規ファイルを選択\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"エントリを選択\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"{nodename} の行を選択\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"サイズ\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"%n 個のファイルをスキップ\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"このファイルをスキップ\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"名前を送信する\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"元に戻す\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"コンテンツをアップロードするか、デバイスと同期してください!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"受信フォルダーを選択すると、そのフォルダー内の競合ファイルも上書きされます。\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"受信フォルダーを選択すると、内容は既存のフォルダーに書き込まれ、再帰的な競合解決が実行されます。\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"どのファイルを残しますか?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"現在、{nickname}として識別されています。\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"現在あなたは識別されていません。\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"名前を空にすることはできません。\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"少なくとも1つの競合ソリューションを選択する必要があります\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"続行するには、各ファイルのバージョンを少なくとも1つ選択する必要があります。\"] }] }, { \"language\": \"ko\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [\"문자 '{char}'은(는) 폴더 이름에 사용할 수 없습니다.\"] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": [\"문자 '{char}'은(는) 이름에 사용할 수 없습니다.\"] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": [\"'{extension}'은(는) 사용 불가능한 이름입니다.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": [\"'{segment}'은(는) 예약된 이름이므로 폴더 이름으로 사용할 수 없습니다.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": [\"'{segment}'은(는) 예약된 이름이므로 사용할 수 없습니다.\"] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n개의 파일이 충돌함\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"{dirname}에서 %n개의 파일이 충돌함\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"모든 파일\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"취소\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"전체 작업 취소\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"선택\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"{file} 선택\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"파일 %n개 선택\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"확인\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"계속\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"복사\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"{target}(으)로 복사\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"새 폴더를 만들 수 없음\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"파일 설정을 불러오지 못함\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"파일 보기를 불러오지 못함\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"디렉토리 만들기\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"현재 보기 방식\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"이름을 입력하세요\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"기존 버전\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"닉네임을 설정하지 못했습니다.\\n \"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"즐겨찾기\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"즐겨찾기 한 파일 및 폴더가 이곳에 표시됩니다.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"최근 수정된 파일 및 폴더가 이곳에 표시됩니다.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"파일 목록 필터링\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": [\"폴더 이름은 '{extension}'(으)로 끝날 수 없습니다.\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"게스트 확인\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"홈\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"두 버전을 모두 선택할 경우 새로 추가되는 파일의 이름에 숫자가 붙게 됩니다.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"잘못된 폴더 이름입니다.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"잘못된 이름입니다. \"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"최근 수정일 알 수 없음\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"수정됨\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"이동\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"{target}(으)로 이동\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"이름\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"이름은 최대 64글자까지 지정할 수 있습니다.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"이름은 비어 있을 수 없습니다.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": [\"이름은 '{extension}'(으)로 끝날 수 없습니다.\"] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"이름은 마침표로 시작될 수 없습니다.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"새로 만들기\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"새 폴더\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"새 폴더명\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"새로운 버전\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"파일이 없습니다\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"선택된 필터에 해당하는 파일이 없습니다.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"해당하는 파일 없음\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"최소 두 글자 이상의 이름을 입력해주세요.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"최근\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"체크박스 모두 선택\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"모두 선택\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"기존 파일 모두 선택\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"새 파일 모두 선택\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"항목 선택\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"{nodename}의 행 선택\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"크기\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"%n개 파일 건너뛰기\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"이 파일 건너뛰기\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"이름 제출\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"되돌리기\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"기기에서 파일을 업로드 또는 동기화하세요!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"새 폴더를 선택할 경우, 해당 폴더 내의 충돌 파일들도 덮어쓰기 됩니다.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"새 폴더를 선택할 경우 내용물이 기존 폴더에 기록되며 재귀적 충돌 해결이 수행됩니다.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"어떤 파일들을 유지하시겠습니까?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"{nickname}(으)로 인증된 상태 입니다.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"현재 인증 정보가 없습니다.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"이름은 비워 둘 수 없습니다. \"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"최소한 하나의 충돌 해결 방안을 선택해야 합니다.\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"계속하기 위해서는 한 파일에 최소 하나의 버전을 선택해야 합니다.\"] }] }, { \"language\": \"lb\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": [\"{name} ass en ongëlteg Dossier\"] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": [\"{name} ass net en erlaabten Dossiernumm\"] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\" ass net an engem Dossier Numm erlaabt'] }, { \"msgid\": \"All files\", \"msgstr\": [\"All Dateien\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Wielt\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Wielt {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Wielt %n Fichieren\", \"Wielt %n Fichier\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopie\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Kopie op {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Konnt den neien Dossier net erstellen\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Konnt d'Dateienastellungen net lueden\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Konnt d'Dateien net lueden\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Erstellt Verzeechnes\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Aktuell Vue selector\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoritten\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Dateien an Ordner, déi Dir als Favorit markéiert, ginn hei gewisen\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Dateien an Ordner déi Dir viru kuerzem geännert hutt ginn hei op\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filter Datei Lëscht\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"Dossier Numm kann net eidel sinn\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Wëllkomm\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Geännert\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Plënne\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Plënneren {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Numm\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nei\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Neien dossier\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Neien dossier numm\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Kee fichier hei\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Kee fichier deen äre filter passt gouf fonnt\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Keng passende dateien\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Rezent\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Wielt all entréen\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Wielt entrée\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Wielt d'zeil fir {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Gréisst\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Undoen\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Luet en inhalt erop oder synchroniséiert mat ären apparater\"] }] }, { \"language\": \"lo\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['\"{char}\" ບໍ່ອະນຸຍາດໃຫ້ມີຢູ່ໃນຊື່ໂຟນເດີ.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['ບໍ່ອະນຸຍາດໃຫ້ມີ \"{char}\" ພາຍໃນຊື່.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" ບໍ່ແມ່ນຊື່ທີ່ໄດ້ຮັບອະນຸຍາດ.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" ແມ່ນຊື່ທີ່ສະຫງວນໄວ້ ແລະ ບໍ່ອະນຸຍາດໃຫ້ໃຊ້ເປັນຊື່ໂຟນເດີ.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" ແມ່ນຊື່ທີ່ສະຫງວນໄວ້ ແລະ ບໍ່ໄດ້ຮັບອະນຸຍາດ.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"ໄຟລ໌ຂັດກັນ %n ລາຍການ\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"ໄຟລ໌ຂັດກັນ %n ລາຍການໃນ {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"ໄຟລ໌ທັງໝົດ\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"ຍົກເລີກ\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"ຍົກເລີກການດຳເນີນການທັງໝົດ\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"ເລືອກ\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"ເລືອກ {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"ເລືອກ %n ໄຟລ໌\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"ຢືນຢັນ\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"ດຳເນີນການຕໍ່\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"ຄັດລອກ\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"ຄັດລອກໄປທີ່ {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"ບໍ່ສາມາດສ້າງໂຟນເດີໃໝ່ໄດ້\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"ບໍ່ສາມາດໂຫຼດການຕັ້ງຄ່າໄຟລ໌ໄດ້\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"ບໍ່ສາມາດໂຫຼດມຸມມອງໄຟລ໌ໄດ້\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"ສ້າງໄດເຣັກທໍຣີ\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"ຕົວເລືອກມຸມມອງປັດຈຸບັນ\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"ປ້ອນຊື່ຂອງທ່ານ\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"ເວີຊັນທີ່ມີຢູ່\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"ຕັ້ງຊື່ຫຼິ້ນບໍ່ສຳເລັດ.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"ລາຍການທີ່ມັກ\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"ໄຟລ໌ ແລະ ໂຟນເດີທີ່ທ່ານໝາຍວ່າເປັນລາຍການທີ່ມັກຈະສະແດງຢູ່ບ່ອນນີ້.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"ໄຟລ໌ ແລະ ໂຟນເດີທີ່ທ່ານແກ້ໄຂລ່າສຸດຈະສະແດງຢູ່ບ່ອນນີ້.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"ກັ່ນຕອງລາຍການໄຟລ໌\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['ຊື່ໂຟນເດີຕ້ອງບໍ່ລົງທ້າຍດ້ວຍ \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"ການລະບຸຕົວຕົນຂອງແຂກ\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"ໜ້າຫຼັກ\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"ຖ້າທ່ານເລືອກທັງສອງເວີຊັນ, ໄຟລ໌ທີ່ເຂົ້າມາຈະມີຕົວເລກເພີ່ມໃສ່ຊື່ຂອງມັນ.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"ຊື່ໂຟນເດີບໍ່ຖືກຕ້ອງ.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"ຊື່ບໍ່ຖືກຕ້ອງ.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"ບໍ່ຮູ້ວັນທີແກ້ໄຂລ່າສຸດ\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"ແກ້ໄຂເມື່ອ\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"ຍ້າຍ\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"ຍ້າຍໄປທີ່ {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"ຊື່\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"ຊື່ອາດມີຄວາມຍາວສູງສຸດ 64 ຕົວອັກສອນ.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"ຊື່ຕ້ອງບໍ່ຫວ່າງເປົ່າ.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['ຊື່ຕ້ອງບໍ່ລົງທ້າຍດ້ວຍ \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"ຊື່ຕ້ອງບໍ່ຂຶ້ນຕົ້ນດ້ວຍຈຸດ.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"ໃໝ່\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"ໂຟນເດີໃໝ່\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"ຊື່ໂຟນເດີໃໝ່\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"ເວີຊັນໃໝ່\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"ບໍ່ມີໄຟລ໌ຢູ່ບ່ອນນີ້\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"ບໍ່ພົບໄຟລ໌ທີ່ກົງກັບການກັ່ນຕອງຂອງທ່ານ.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"ບໍ່ມີໄຟລ໌ທີ່ກົງກັນ\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"ກະລຸນາປ້ອນຊື່ທີ່ມີຢ່າງໜ້ອຍ 2 ຕົວອັກສອນ.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"ລ່າສຸດ\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"ເລືອກກ່ອງໝາຍທັງໝົດ\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"ເລືອກທຸກລາຍການ\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"ເລືອກໄຟລ໌ທີ່ມີຢູ່ທັງໝົດ\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"ເລືອກໄຟລ໌ໃໝ່ທັງໝົດ\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"ເລືອກລາຍການ\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"ເລືອກແຖວສຳລັບ {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"ຂະໜາດ\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"ຂ້າມ %n ໄຟລ໌\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"ຂ້າມໄຟລ໌ນີ້\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"ສົ່ງຊື່\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"ເອົາຄືນ\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"ອັບໂຫຼດເນື້ອຫາ ຫຼື ຊິງຄ໌ກັບອຸປະກອນຂອງທ່ານ!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"ເມື່ອເລືອກໂຟນເດີທີ່ເຂົ້າມາ, ໄຟລ໌ໃດໆທີ່ຂັດກັນພາຍໃນໂຟນເດີນັ້ນກໍຈະຖືກຂຽນທັບເຊັ່ນກັນ.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"ເມື່ອເລືອກໂຟນເດີທີ່ເຂົ້າມາ, ເນື້ອຫາຈະຖືກຂຽນລົງໃນໂຟນເດີທີ່ມີຢູ່ ແລະ ຈະມີການແກ້ໄຂຂໍ້ຂັດແຍ່ງແບບຕໍ່ເນື່ອງ.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"ທ່ານຕ້ອງການເກັບໄຟລ໌ໃດໄວ້?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"ຕອນນີ້ທ່ານຖືກລະບຸວ່າເປັນ {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"ຕອນນີ້ທ່ານຍັງບໍ່ໄດ້ຖືກລະບຸຕົວຕົນ.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"ທ່ານບໍ່ສາມາດປະຊື່ໃຫ້ຫວ່າງເປົ່າໄດ້.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"ທ່ານຈຳເປັນຕ້ອງເລືອກວິທີແກ້ໄຂຂໍ້ຂັດແຍ່ງຢ່າງໜ້ອຍໜຶ່ງຢ່າງ\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"ທ່ານຈຳເປັນຕ້ອງເລືອກຢ່າງໜ້ອຍໜຶ່ງເວີຊັນຂອງແຕ່ລະໄຟລ໌ເພື່ອດຳເນີນການຕໍ່.\"] }] }, { \"language\": \"lt_LT\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [\"„{char}“ negalima naudoti aplanko pavadinime.\"] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": [\"„{char}“ negalima naudoti vardo sudėtyje.\"] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": [\"„{extension}“ nėra leidžiamas vardas.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": [\"„{segment}“ yra rezervuotas vardas, kurio negalima naudoti aplankų pavadinimuose.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": [\"„{segment}“ yra rezervuotas vardas, todėl jo naudoti negalima.\"] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n failo konfliktas\", \"%n failų konfliktas\", \"%n failų konfliktas\", \"%n failų konfliktas\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n failo konfliktas {dirname}\", \"%n failų konfliktas {dirname}\", \"%n failų konfliktas {dirname}\", \"%n failų konfliktas {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Visi failai\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Atsisakyti\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Atsisakyti visos operacijos\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Pasirinkti\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Pasirinkti {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Pasirinkti %n failą\", \"Pasirinkti %n failus\", \"Pasirinkti %n failų\", \"Pasirinkti %n failą\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Patvirtinti\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Tęsti\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopijuoti\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Kopijuoti į {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Nepavyko sukurti naujo aplanko\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Nepavyko įkelti failų nustatymų\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Nepavyko įkelti failų peržiūrų\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Sukurti katalogą\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Dabartinis peržiūros pasirinkimas\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Įrašykite savo vardą\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Esama versija\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Nepavyko nustatyti slapyvardžio\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Populiariausi\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Failai ir aplankai, kuriuos pažymėsite kaip mėgstamiausius, bus rodomi čia.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Čia bus rodomi failai ir aplankai, kuriuos neseniai pakeitėte.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtruoti failų sąrašą\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": [\"Aplankų pavadinimai neturi baigtis simboliu „{extension}“.\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Svečio identifikacija\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Pradžia\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Jei pasirinksite abi versijas, prie gaunamo failo pavadinimo bus pridėtas numeris.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Netinkamas aplanko pavadinimas.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Netinkamas pavadinimas.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Paskutinio atnaujinimo data nežinoma\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Pakeista\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Perkelti\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Perkelti į {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Vardas\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Vardų ilgis negali viršyti 64 simbolių.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Pavadinimai negali būti tušti.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": [\"Vardai neturi baigtis simboliu „{extension}“.\"] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Vardai negali prasidėti tašku.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Naujas\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Naujas aplankas\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Naujas aplanko pavadinimas\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Nauja versija\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Čia failų nėra\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Nepavyko rasti failų pagal filtro nustatymus\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Nėra atitinkančių failų\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Įrašykite vardą iš mažiausiai dviejų ženklų.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Nauji\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Pažymėti visus langelius\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Žymėti visus įrašus\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Pažymėti visus esamus failus\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Pažymėti visus naujus failus\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Žymėti įrašą\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Pasirinkite eilutę {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Dydis\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Praleisti %n failą\", \"Praleisti %n failus\", \"Praleisti %n failų\", \"Praleisti %n failą\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Praleisti šį failą\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Pateikti pavadinimą\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Atšaukti\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Įkelkite turinio arba sinchronizuokite su savo įrenginiais!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Pasirinkus įeinančių failų aplanką, jame esantys failai, su kuriais kyla konfliktas, taip pat bus perrašyti.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Pasirinkus įeinančių failų aplanką, jo turinys įrašomas į esamą aplanką ir atliekamas rekursyvus konfliktų sprendimas.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Kokius failus norite išsaugoti?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Šiuo metu esate identifikuotas kaip {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Šiuo metu nesate identifikuotas.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Negalite palikti tuščio vardo lauko.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Turite pasirinkti bent vieną konflikto sprendimo būdą\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Norėdami tęsti, turite pasirinkti bent vieną kiekvieno failo versiją.\"] }] }, { \"language\": \"lv\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": ['\"{name}\" nav derīgs mapes nosaukums.'] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": ['\"{name}\" nav atļauts mapes nosaukums'] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\" nav atļauts mapes nosaukuma izmantošanā.'] }, { \"msgid\": \"All files\", \"msgstr\": [\"Visas datnes\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Izvēlieties\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Izvēlieties {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Izvēlēties %n datņu\", \"Izvēlēties %n datni\", \"Izvēlēties %n datnes\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopēt\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Kopēt uz {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Nevarēja izveidot jaunu mapi\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Nevarēja ielādēt datņu iestatījumus\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Nevarēja ielādēt datņu apskatījumus\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Izveidot direktoriju\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Pašreizēja skata atlasītājs\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favorīti\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Šeit parādīsies datnes un mapes, kas tiks atzīmētas kā iecienītas.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Šeit parādīsies datnes un mapes, kuras nesen tika izmainītas.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Atlasīt datņu sarakstu\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"Mapes nosaukums nevar būt tukšs.\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Sākums\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Izmaninīta\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Pārvietot\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Pārvietot uz {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nosaukums\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Jauns\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Jauna mape\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Jaunas mapes nosaukums\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Šeit nav datņu\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Netika atrasta neviena datne, kas atbilst atlasei.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Nav atbilstošu datņu\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Nesenās\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Atlasīt visus ierakstus\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Atlasīt ierakstu\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Atlasīt rindu {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Izmērs\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Atsaukt\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Augšupielādē kādu saturu vai sinhronizē savās iekārtās!\"] }] }, { \"language\": \"mk\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['\"{char}\" не е дозволен во име на папка.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" не е дозволено во име.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" не е дозволено име.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" е резервирано име и не е дозволено за име на папка.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" е резервирано име и не е дозволено.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n конфликт со датотекa\", \"%n конфликти со датотеки\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n конфликт со датотека во {dirname}\", \"%n конфликти со датотеки vo {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Сите датотеки\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Откажи\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Прекини ја целата операција\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Избери\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Избери {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Избери %n датотека\", \"Избери %n датотеки\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Потврди\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Продолжи\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Копирај\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Копирај во {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Неможе да се креира нова папка\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Неможе да се вчиаат параметрите за датотеките\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Неможе да се вчитаат погледите за датотеките\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Креирај папка\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Избирач на тековен приказ\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Внесете го вашето име\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Моментална верзија\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Неуспешно поставување прекар.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Фаворити\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Датотеките и папките кој ќе ги означите за омилени ќе се појават овде.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Датотеките и папките кој неодамна сте ги измениле ќе се појават овде.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Филтрирај листа на датотеки\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Имињата на папките неможе да завршуваат со \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Гостинска идентификација\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Почетна\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Ако ги избереш двете верзии, влезната датотека ќе добие број додаден на нејзиното име.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Невалидно име на папка.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Невалидно име.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Датумот на последна измена е непознат\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Променето\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Премести\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Премести во {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Име\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Имињата можат да бидат најмногу со 64 карактери.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Имињата неможе да бидат празни.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Имињата неможе да завршуваат со \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Имињата неможе да започнуваат со точка.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Нова\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Нова папка\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Ново име на папка\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Нова верзија\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Овде нема датотеки\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Не се пронајдени датотеки што одговараат на вашиот филтер.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Нема датотеки што се совпаѓаат\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Внесете име со најмалку 2 карактери.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Неодамнешни\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Избери ги сите полиња за избор\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Изберете ги сите записи\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Изберете ги сите постоечки датотеки\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Изберете ги сите нови датотеки\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Избери запис\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Избери ред за {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Големина\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Прескокни %n датотека\", \"Прескокни %n датотеки\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Прескокни ја оваа датотека\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Испрати име\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Врати\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Прикачи содржина или синхронизирај со ваши уреди!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Кога е избрана влезна папка, сите конфликтни датотеки во неа исто така ќе бидат препишани.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Кога е избрана влезна папка, содржината се запишува во постоечката папка и се извршува рекурсивно решавање на конфликти.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Кој датотеки сакаш да ги зачуваш?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Моментално сте идентификувани како {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Моментално не сте идентификувани.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Не можете да го оставите името празно.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Треба да избереш најмалку едно решение за конфликт\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Треба да избереш најмалку една верзија за секоја датотека за да продолжи.\"] }] }, { \"language\": \"ms_MY\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": ['\"{name}\" adalah nama folder yang tidak sesuai '] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": ['\"{name}\" nama folder yang tidak dibenarkan'] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\" tidak dibenarkan dalam nama folder'] }, { \"msgid\": \"All files\", \"msgstr\": [\"Semua fail\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Pilih\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Pilih {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Pilih fail %n\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"menyalin\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"menyalin ke {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Tidak dapat mewujudkan folder baharu\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Tidak dapat memuatkan tetapan fail\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Tidak dapat memuatkan paparan fail\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"mewujudkan direktori\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"pemilih pandangan semasa\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Pilihan\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Fail dan folder yang anda tanda sebagai pilihan akan dipaparkan di sini.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Fail dan folder yang anda telah ubah suai baru-baru ini dipaparkan di sini.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Menapis senarai fail\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"Nama folder tidak boleh kosong.\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Utama\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Ubah suai\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"pindah\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"pindah ke {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nama\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Baru\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Folder Baharu\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Nama folder baharu\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Tiada fail di sini\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Tiada fail yang sepadan dengan tapisan anda.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Tiada fail yang sepadan\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"baru-baru ini\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Pilih semua entri\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Pilih entri\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"memilih baris {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Saiz\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"buat asal\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Muat naik beberapa kandungan atau selaras dengan peranti anda!\"] }] }, { \"language\": \"nb_NO\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" er ikke tillatt i et navn.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" er ikke et tillatt navn.'] }, { \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": [\"«{name}» er ikke et gyldig mappenavn.\"] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": [\"«{name}» er ikke et tillatt mappenavn.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" er et reservert navn og er ikke tillatt.'] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\" er ikke tillatt inne i et mappenavn.'] }, { \"msgid\": \"All files\", \"msgstr\": [\"Alle filer\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Avbryt\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Velg\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Velg {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Velg %n fil\", \"Velg %n filer\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopier\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Kopier til {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Kunne ikke opprette den nye mappen\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Kunne ikke laste filinnstillinger\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Kunne ikke laste filvisninger\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Opprett mappe\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Nåværende visningsvelger\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Skriv inn navnet ditt\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Kunne ikke lagre kallenavnet.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoritter\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Filer og mapper du markerer som favoritter vil vises her.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Filer og mapper du nylig har endret, vil vises her.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrer filliste\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"Mappenavn kan ikke være tomt.\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Gjesteidentifikasjon\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Hjem\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Ugyldig navn.\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Modifisert\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Flytt\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Flytt til {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Navn\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Navn kan ikke være tomme.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Navn kan ikke ende med \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Navn kan ikke starte med et punktum.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Ny\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Ny mappe\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Nytt mappenavn\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Ingen filer her\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Ingen filer funnet med ditt filter.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Ingen filer samsvarer\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Vennligst angi et navn som har minst 2 tegn.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Nylige\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Velg alle oppføringer\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Velg oppføring\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Velg raden for {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Størrelse\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Bekreft navn\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Angre\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Last opp innhold eller synkroniser med enhetene dine!\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Du er akkurat nå identifisert som {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Du er akkurat nå ikke identifisert.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Du kan ikke la navnet være blankt.\"] }] }, { \"language\": \"nl\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [\"{char}is niet toegestaan in een mapnaam.\"] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" kan niet gebruikt worden in de benaming.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" is geen toegestane naam.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" is een gereserveerde naam en niet toegestaan in mapnamen.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" is een gereserveerde naam en niet toegestaan.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n bestanden conflicteren\", \"%nbestand bestanden conflicteren\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n bestand conflicteerd in {dirname}\", \"%nbestanden conflicteert in {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Alle bestanden\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Annuleren\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Annuleer de hele bewerking\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Kiezen\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Kies {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Kies %n bestand\", \"Kies %n bestanden\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Bevestigen\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Doorgaan\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopiëren\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Kopiëren naar {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Kon de nieuwe map niet maken\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Kon de bestandsinstellingen niet laden\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Kon de bestandsweergaves niet laden\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Map aanmaken\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Huidige weergave keuze\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Voer je naam in\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Bestaande versie\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Kon geen bijnaam instellen.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favorieten\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Bestanden en mappen die je als favoriet markeert, verschijnen hier.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Bestanden en mappen die je recentelijk hebt gewijzigd, verschijnen hier.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Bestandslijst filteren\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Mapnamen mogen niet eindigen op \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Gastenidentificatie\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Thuis\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Als u beide versies selecteert wordt een nummer toegevoegd aan de naam van het binnenkomende bestand.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Ongeldige mapnaam.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Ongeldige naam.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Laatste wijzigingsdatum onbekend\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Gewijzigd\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Verplaatsen\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Verplaatsen naar {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Naam\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Namen mogen maximaal 64 tekens lang zijn.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Namen mogen niet leeg zijn.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Namen mogen niet eindigen met \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Namen mogen niet begonnen met een punt.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nieuw\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Nieuwe map\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Nieuwe mapnaam\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Nieuwe versie\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Geen bestanden hier\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Geen bestanden gevonden die voldoen aan je filter.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Geen overeenkomende bestanden\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Voer een naam in met minimaal 2 tekens.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Recent\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Selecteer alle aanvinkopties\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Alle invoer selecteren\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Selecteer alle bestaande bestanden\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Selecteer alle nieuwe bestanden\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Invoer selecteren\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Selecteer de rij voor {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Grootte\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Sla %n bestand over\", \"Sla %n bestanden over\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Sla dit bestand over\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Naam indienen\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Ongedaan maken\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Upload inhoud of synchroniseer met je apparaten!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Als een inkomende map wordt geselecteerd, worden alle conflicterende bestanden daarin overschreven.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Als een inkomende map wordt geselecteerd, wordt de inhoud naar de bestaande map geschreven en wordt een recursieve conflict-oplossing uitgevoerd.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Welke bestanden wilt u bewaren?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Je wordt momenteel geïdentificeerd als {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Je bent momenteel niet geïdentificeerd.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Je kunt de naam niet leeg laten.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"U moet in elk geval een conflictoplossing kiezen\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"U moet minstens een versie van elk bestand kiezen om door te gaan. \"] }] }, { \"language\": \"pl\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['Znak \"{char}\" nie jest dozwolony w nazwie folderu.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" nie jest dozwolone w nazwie.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" nie jest dozwoloną nazwą.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" jest nazwą zastrzeżoną i nie jest dozwolona jako nazwa folderu.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" jest zastrzeżoną nazwą i nie jest dozwolone.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"Konflikt pliku\", \"Konflikt %n plików\", \"Konflikt %n plików\", \"Konflikt %n plików\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n konfliktów pliku w {dirname}\", \"%n konfliktów plików w {dirname}\", \"%n konfliktów plików w {dirname}\", \"%n konfliktów plików w {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Wszystkie pliki\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Anuluj\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Anuluj całą operację\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Wybierz\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Wybierz {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Wybierz %n plik\", \"Wybierz %n pliki\", \"Wybierz %n plików\", \"Wybierz %n plików\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Potwierdź\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Kontynuuj\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopiuj\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Skopiuj do {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Nie można utworzyć nowego folderu\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Nie można wczytać ustawień plików\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Nie można wczytać widoków plików\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Utwórz katalog\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Bieżący selektor widoku\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Wprowadź nazwę\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Istniejąca wersja\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Nie udało się utworzyć pseudonimu.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Ulubione\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Pliki i foldery które oznaczysz jako ulubione będą wyświetlały się tutaj\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Pliki i foldery które ostatnio modyfikowałeś będą wyświetlały się tutaj\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtruj listę plików\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Nazwy folderów nie mogą kończyć się na \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Identyfikacja gościa\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Strona główna\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Jeśli wybierzesz obie wersje, do nazwy przychodzącego pliku zostanie dodany numer.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Nieprawidłowa nazwa folderu.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Nieprawidłowa nazwa.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Data ostatniej modyfikacji nieznana\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Zmodyfikowano\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Przenieś\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Przejdź do {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nazwa\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Nazwy mogą mieć maksymalnie 64 znaki.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Nazwy nie mogą być puste.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Nazwy nie mogą kończyć się na \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Nazwy nie mogą zaczynać się od kropki.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nowy\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Nowy folder\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Nowa nazwa folderu\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Nowa wersja\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Brak plików\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Nie znaleziono plików spełniających warunki filtru\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Brak pasujących plików\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Wprowadź nazwę zawierającą minimum 2 znaki.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Ostatni\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Zaznacz wszystkie pola wyboru\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Wybierz wszystkie wpisy\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Zaznacz wszystkie istniejące pliki\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Zaznacz wszystkie nowe pliki\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Wybierz wpis\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Wybierz wiersz dla {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Rozmiar\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Pomiń %n plik\", \"Pomiń %n plików\", \"Pomiń %n plików\", \"Pomiń %n plików\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Pomiń ten plik\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Zatwierdź nazwę\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Cofnij\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Wyślij zawartość lub zsynchronizuj ze swoimi urządzeniami!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Po wybraniu przychodzącego folderu wszystkie konfliktujące pliki w jego obrębie również zostaną nadpisane.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Po wybraniu przychodzącego folderu jego zawartość zostanie zapisana w istniejącym folderze i zostanie przeprowadzone rekursywne rozwiązywanie konfliktów.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Które pliki chcesz zachować?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Obecnie jesteś zidentyfikowany jako {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Użytkownik nie został uwierzytelniony.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Nazwa nie może być pusta.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Musisz wybrać co najmniej jedno rozwiązanie konfliktu\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Aby kontynuować, musisz wybrać co najmniej jedną wersję każdego pliku.\"] }] }, { \"language\": \"pt_BR\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['\"{char}\" não é permitido dentro de um nome de pasta.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" não é permitido dentro de um nome.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" não é um nome permitido.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" é um nome reservado e não permitido para nomes de pasta.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" é um nome reservado e não permitido.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n arquivo conflita\", \"%n de arquivos conflitam\", \"%n arquivos conflitam\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n conflito de arquivo em {dirname}\", \"%n de conflitos de arquivos em {dirname}\", \"%n conflitos de arquivos em {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Todos os arquivos\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancelar toda a operação\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Escolher\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Escolher {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Escolher %n arquivo\", \"Escolher %n arquivos\", \"Escolher %n arquivos\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmar\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Copiar\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Copiar para {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Não foi possível criar a nova pasta\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Não foi possível carregar configurações de arquivos\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Não foi possível carregar visualições de arquivos\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Criar diretório\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Seletor de visualização atual\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Digite seu nome\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Versão existente\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Falha ao definir apelido.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoritos\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Os arquivos e pastas que você marca como favoritos aparecerão aqui.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Arquivos e pastas que você modificou recentemente aparecerão aqui.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrar lista de arquivos\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Nomes de pasta não podem terminar com \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Identificação de convidados\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Início\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Se você selecionar ambas as versões, um número será adicionado ao nome do arquivo recebido.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Nome de pasta inválido.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Nome inválido.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Data da última modificação desconhecida\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Modificado\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Mover\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Mover para {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nome\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Os nomes podem ter no máximo 64 caracteres.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Nomes não podem estar vazios.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Nomes não podem terminar com \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Nomes não podem começar com um ponto.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Novo\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Nova pasta\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Novo nome de pasta\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Nova versão\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Nenhum arquivo aqui\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Nenhum arquivo correspondente ao seu filtro foi encontrado.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Nenhum arquivo correspondente\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Digite um nome com pelo menos 2 caracteres.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Recente\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Selecione todas as caixas de seleção\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Selecionar todas as entradas\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Selecione todos os arquivos existentes\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Selecione todos os novos arquivos\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Selecionar entrada\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Selecionar a linha para {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Tamanho\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Ignorar %n arquivo\", \"Ignorar %n de arquivos\", \"Ignorar %n arquivos\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Ignorar este arquivo\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Enviar nome\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Desfazer\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Faça upload de algum conteúdo ou sincronize com seus dispositivos!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Ao selecionar uma pasta de entrada, quaisquer arquivos conflitantes dentro dela também serão sobrescritos.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Quando uma pasta de entrada é selecionada, o conteúdo é gravado na pasta existente e uma resolução recursiva de conflitos é realizada.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quais arquivos você deseja manter?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Você está atualmente identificado como {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"No momento, você não está identificado.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Você não pode deixar o nome vazio.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Você precisa escolher pelo menos uma solução para o conflito\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Você precisa selecionar pelo menos uma versão de cada arquivo para continuar.\"] }] }, { \"language\": \"pt_PT\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['\"{char}\" não é permitido dentro de um nome de pasta.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" não é permitido dentro de um nome.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" não é um nome permitido.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" é um nome reservado e não é permitido para nomes de pasta.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" é um nome reservado e não é permitido.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n ficheiro em conflito\", \"%n ficheiros em conflito\", \"%n ficheiros em conflito\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n ficheiro em conflito em {dirname}\", \"%n ficheiros em conflito em {dirname}\", \"%n ficheiros em conflito em {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Todos os ficheiros\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancelar toda a operação\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Escolher\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Escolher {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Escolha %n ficheiro\", \"Escolha %n ficheiros\", \"Escolha %n ficheiros\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmar\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Copiar\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Copiar para {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Não foi possível criar a nova pasta \"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Não foi possível carregar as definições dos ficheiros\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Não foi possível carregar as visualizações dos ficheiros\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Criar pasta\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Seletor de visualização atual\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Introduza o seu nome\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Versão existente\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Falha ao definir o nome alternativo.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoritos\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Os ficheiros e as pastas que marcar como favoritos aparecerão aqui.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Os ficheiros e as pastas que modificou recentemente aparecerão aqui.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrar lista de ficheiros\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Nomes de pasta não podem terminar em \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Identificação de convidado\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Início\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Se você selecionar ambas as versões, um número será adicionado ao nome do ficheiro recebido.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Nome de pasta inválido.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Nome inválido.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Data da última modificação desconhecida\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Modificado\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Mover\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Mover para {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nome\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Os nomes podem ter no máximo 64 caracteres.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"O nome não pode ficar em branco.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Nomes não podem terminar em \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Os nomes não podem começar por um ponto.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Novo\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Nova pasta\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Novo nome da pasta\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Nova versão\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Sem ficheiros aqui\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Não foi encontrado nenhum ficheiro correspondente ao seu filtro.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Nenhum ficheiro correspondente\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Introduza um nome com, pelo menos, 2 caracteres.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Recentes\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Selecione todas as caixas de seleção\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Selecionar todas as entradas\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Selecione todos os ficheiros existentes\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Selecione todos os novos ficheiros\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Selecionar entrada\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Selecione a linha para {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Tamanho\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Ignorar %n ficheiro\", \"Ignorar %n ficheiros\", \"Ignorar %n ficheiros\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Ignorar este ficheiro\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Submeter nome\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Anular\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Envie algum conteúdo ou sincronize com os seus dispositivos!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Ao selecionar uma pasta de entrada, quaisquer ficheiros conflituantes dentro da mesma serão também sobrescritos.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Quando uma pasta de entrada é selecionada, o conteúdo é gravado na pasta existente e é realizada uma resolução recursiva de conflitos.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quais os ficheiros que deseja manter?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Atualmente está identificado como {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Atualmente, não está identificado.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Não pode deixar o nome em branco.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"É preciso escolher pelo menos uma solução para o conflito.\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"É necessário selecionar pelo menos uma versão de cada ficheiro para continuar.\"] }] }, { \"language\": \"ro\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": ['\"{name}\" este un nume de director invalid.'] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": ['\"{name}\" nu este un nume de director permis'] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\" nu este permis în numele unui director.'] }, { \"msgid\": \"All files\", \"msgstr\": [\"Toate fișierele\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Alege\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Alege {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Alege %n fișier\", \"Alege %n fișiere\", \"Alege %n fișiere\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Copiază\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Copiază în {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Nu s-a putut crea noul director\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Nu s-au putut încărca setările fișierelor\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Nu s-au putut încărca vizualizările fișierelor\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Creează director\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Selectorul curent al vizualizării\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favorite\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Fișiere și directoare pe care le marcați ca favorite vor apărea aici.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Fișiere și directoare pe care le-ați modificat recent vor apărea aici.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrează lista de fișiere\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"Numele de director nu poate fi necompletat.\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Acasă\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Modificat\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Mută\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Mută către {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nume\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nou\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Director nou\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Numele noului director\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Nu există fișiere\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Nu există fișiere potrivite pentru filtrul selectat\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Nu există fișiere potrivite\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Recente\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Selectează toate înregistrările\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Selectează înregistrarea\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Selectează rândul pentru {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Mărime\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Anulează\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Încărcați conținut sau sincronizați cu dispozitivele dumneavoastră!\"] }] }, { \"language\": \"ru\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['\"{char}\" не допускается в названии папки.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" не допускается внутри имени.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" это не допустимое имя.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" это зарезервированное имя и не допустимо для имени папки.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" это зарезервированное имя и не допустимо.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n конфликт файла\", \"%n конфликта файлов\", \"%n конфликтов файлов\", \"%n конфликтов файлов\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n конфликт файлов в {dirname}\", \"%n конфликта файлов в {dirname}\", \"%n конфликтов файлов в {dirname}\", \"%n конфликтов файлов в {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Все файлы\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Отмена\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Отмена операции\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Выбрать\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Выбрать «{file}»\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Выбрать %n файл\", \"Выбрать %n файла\", \"Выбрать %n файлов\", \"Выбрать %n файлов\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Подтвердить\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Продолжить\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Копировать\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Копировать в «{target}»\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Не удалось создать новую папку\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Не удалось загрузить настройки файлов\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Не удалось загрузить конфигурацию просмотра файлов\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Создать папку\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Переключатель текущего вида\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Введите ваше имя\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Текущая версия\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Не удалось задать никнейм.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Избранное\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Здесь будут отображаться файлы и папки, которые вы пометили как избранные.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Здесь будут отображаться файлы и папки, которые вы недавно изменили.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Фильтровать список файлов\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Имена папок не могут оканчиваться на \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Гостевая идентификация\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Домой\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Если вы выберете обе версии, к имени входящего файла будет добавлен номер.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Недопустимое имя папки.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Неверное имя.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Дата последнего изменения неизвестна\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Изменен\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Переместить\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Переместить в «{target}»\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Имя\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Имена не могут быть длинее 64 символов.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Имена не могут быть пустыми.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Имена не могут оканчиваться на \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Имена должны начинаться с точки.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Новый\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Новая папка\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Имя новой папки\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Новая версия\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Здесь нет файлов\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Файлы, соответствующие вашему фильтру, не найдены.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Нет подходящих файлов\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Введите имя длиной не менее 2 символов.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Недавний\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Выбрать все флажки\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Выбрать все записи\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Выбрать все существующие файлы\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Выбрать все новые файлы\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Выбрать запись\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Выбрать строку для «{nodename}»\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Размер\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Пропустить %n файл\", \"Пропустить %n файла\", \"Пропустить %n файлов\", \"Пропустить %n файлов\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Пропустить файл\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Отправить имя\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Отменить\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Загрузите контент или синхронизируйте его со своими устройствами!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Когда выбрана входящая папка, все конфликтующие файлы в ней также будут перезаписаны.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Когда выбрана входящая папка, содержимое записывается в существующую папку и выполняется рекурсивное разрешение конфликтов.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Какие файлы вы хотите сохранить?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Вы идентифицированы как {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"В данный момент вы не идентифицированы.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Вы не можете оставить имя пустым.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Вам нужно выбрать хотя бы одно решение конфликта\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Для продолжения вам нужно выбрать хотя бы одну версию каждого файла.\"] }] }, { \"language\": \"sk_SK\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['\"{char}\" nie je povolené v názve priečinka.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" nie je povolené v rámci mena.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" nie je povolený názov.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": [\"„{segment}“ je rezervované meno a nie je povolené na názvy priečinkov.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" je rezervované meno a nie je povolené.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n konflikt súborov\", \"%n konflikty súborov\", \"%n konfliktov súborov\", \"%n konflikty súborov\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n konflikt súborov v {dirname}\", \"%n konflikty súborov v {dirname}\", \"%n konfliktov súborov v {dirname}\", \"%n konfliktov súborov v {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Všetky súbory\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Zrušiť\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Zrušiť celú operáciu\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Vybrať\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Vybrať {súbor}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Vybraný %n súbor\", \"Vybrané %n súbory\", \"Vybraných %n súborov\", \"Vybraných %n súborov\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Potvrdiť\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Pokračovať\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopírovať\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Kopírovať do {umiestnenia}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Nepodarilo sa vytvoriť nový priečinok\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Nepodarilo sa načítať nastavenia súborov\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Nepodarilo sa načítať pohľady súborov\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Vytvoriť adresár\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Výber aktuálneho zobrazenia\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Zadajte svoje meno\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Existujúca verzia\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Nepodarilo sa nastaviť prezývku.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Obľúbené\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Tu sa zobrazia súbory a priečinky, ktoré označíte ako obľúbené.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Tu sa zobrazia súbory a priečinky, ktoré ste nedávno upravili.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrovať zoznam súborov\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Názvy priečinkov nesmú končiť na \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Identifikácia hosťa\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Domov\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Ak vyberiete obe verzie, prichádzajúci súbor bude mať k svojmu názvu pridané číslo.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Neplatný názov priečinka.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Neplatné meno.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Posledná zmena dátumu neznáma\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Upravené\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Prejsť\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Prejsť na {umiestnenie}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Názov\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Mená môžu mať maximálne 64 znakov.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Mená nesmú byť prázdne.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Mená nesmú končiť \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Mená nesmú začínať bodkou.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Pridať\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Pridať priečinok\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Pridať názov priečinka\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Nová verzia\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Nie sú tu žiadne súbory\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Nenašli sa žiadne súbory zodpovedajúce vášmu filtru.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Žiadne zodpovedajúce súbory\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Zadajte meno s aspoň 2 znakmi.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Nedávne\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Vyberte všetky zaškrtávacie políčka\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Vybrať všetky položky\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Vybrať všetky existujúce súbory\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Vybrať všetky nové súbory\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Vybrať položku\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Vyberte riadok pre {názov uzla}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Veľkosť\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Preskočiť %n súbor\", \"Preskočiť %n súbory\", \"Preskočiť %n súborov\", \"Preskočiť %n súbory\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Preskočiť tento súbor\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Zadať meno\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Späť\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Nahrajte nejaký obsah alebo synchronizujte so svojimi zariadeniami!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Keď je vybraná prichádzajúca složka, všetky konfliktné súbory v nej budú taktiež prepísané.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Keď je vybraná prichádzajúca zložka, obsah sa zapíše do existujúcej zložky a vykoná sa rekurzívne riešenie konfliktov.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Ktoré súbory chcete zachovať?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Momentálne ste identifikovaný ako {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Momentálne nie ste identifikovaný.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Nemôžete nechať meno prázdne.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Musíte si vybrať aspoň jedno riešenie konfliktu.\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Musíte vybrať aspoň jednu verziu každého súboru, aby ste mohli pokračovať.\"] }] }, { \"language\": \"sl\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": [\"{name} je neveljavno ime mape.\"] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": [\"{name} ni dovoljeno ime mape\"] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\" ni dovoljen v imenu mape.'] }, { \"msgid\": \"All files\", \"msgstr\": [\"Vse datoteke\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Izberi\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Izberi {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Izberi %n datoteko\", \"Izberi %n datoteki\", \"Izberi %n datotek\", \"Izberi %n datotek\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopiraj\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Kopiraj v {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Nisem mogel ustvariti nove mape\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"NIsem mogel naložiti nastavitev datotek\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Nisem mogel naložiti pogledov datotek\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Ustvari mapo\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Izbirnik trenutnega pogleda\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Priljubljene\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Datoteke in mape ki jih označite kot priljubljene se bodo prikazale tukaj.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Daoteke in mape ki ste jih pred kratkim spremenili se bodo prikazale tukaj.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtriraj seznam datotek\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"Ime mape ne more biti prazno\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Domov\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Spremenjeno\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Premakni\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Premakni v {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Ime\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nov\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Nova mapa\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Novo ime mape\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Tukaj ni datotek\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Ni bilo najdenih ujemajočih datotek glede na vaš filter.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Ni ujemajočih datotek\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Nedavne\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Izberi vse vnose\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Izberi vnos\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Izberi vrstico za {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Velikost\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Razveljavi\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Naloži nekaj vsebine ali sinhroniziraj s svojimi napravami!\"] }] }, { \"language\": \"sr\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": [\"„{char}” није дозвољено унутар имена.\"] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": [\"„{extension}” није дозвољено име.\"] }, { \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": [\"„{name}” није исправно име фолдера.\"] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": [\"„{name}” није дозвољено име за фолдер.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": [\"„{segment}” је резервисано име и није дозвољено.\"] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": [\"„/” није дозвољено унутар имена фолдера.\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Сви фајлови\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Откажи\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Изаберите\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Изаберите {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Изаберите %n фајл\", \"Изаберите %n фајла\", \"Изаберите %n фајлова\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Копирај\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Копирај у {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Није могао да се креира нови фолдер\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Не могу да се учитају подешавања фајлова\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Не могу да се учитају прикази фајлова\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Креирај директоријум\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Бирач тренутног приказа\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Унесите своје име\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Није успело постављање надимка.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Омиљено\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Овде ће се појавити фајлови и фолдери које сте означили као омиљене.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Овде ће се појавити фајлови и фолдери који се се недавно изменили.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Фитрирање листе фајлова\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"Име фолдера не може бити празно.\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Идентификација госта\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Почетак\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Неисправно име.\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Измењено\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Премести\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Премести у {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Име\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Највећа дужина имена може бити 64 карактера.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Имена не смеју да буду празна.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": [\"Имена не смеју да се завршавају на „{extension}”.\"] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Имена не смеју да почињу тачком.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Ново\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Нови фолдер\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Име новог фолдера\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Овде нема фајлова\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Није пронађен ниједан фајл који задовољава ваш филтер.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Нема таквих фајлова\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Молимо вас да унесете име од барем два карактера.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Скорашње\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Изаберите све ставке\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Изаберите ставку\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Изаберите ред за {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Величина\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Предај име\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Поништи\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Отпремите нешто или синхронизујте са својим уређајима!\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Тренутно се идентификујете као {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Тренутно немате идентификацију.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Име не можете да оставите празно.\"] }] }, { \"language\": \"sr@latin\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": [\"„{name}” je neispravan naziv foldera.\"] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": [\"„{name}” je nedozvoljen naziv foldera.\"] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": [\"„/” se ne može koristiti unutar naziva foldera.\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Svi fajlovi\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Izaberite\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Izaberite {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Izaberite %n fajl\", \"Izaberite %n fajla\", \"Izaberite %n fajlova\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopiraj\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Kopiraj u {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Neuspešno kreiranje novog foldera\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Neuspešno učitavanje podešavanja fajlova\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Neuspešno učitavanje prikaza fajlova\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Kreiraj direktorijum\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Birač trenutnog prikaza\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Omiljeno\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Lista omiljenih fajlova i foldera.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Lista fajlova i foldera sa skorašnjim izmenama.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Fitriranje liste fajlova\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"Naziv foldera ne može biti prazan.\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Početak\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Izmenjeno\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Premesti\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Premesti u {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Naziv\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Novo\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Novi folder\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Naziv novog foldera\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Bez fajlova\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Nema fajlova koji zadovoljavaju uslove filtera.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Nema takvih fajlova\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Skorašnje\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Izaberite sve stavke\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Izaberite stavku\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Izaberite red za {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Veličina\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Vrati\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Otpremite sadržaj ili sinhronizujte sa svojim uređajima!\"] }] }, { \"language\": \"sv\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['\"{char}\" är inte tillåtet i ett mappnamn.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" är inte tillåtet i ett namn.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" är inte ett tillåtet namn.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" är ett reserverat namn och inte tillåtet mappnamn.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" är ett reserverat namn och inte tillåtet.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n fil är i konflikt\", \"%n filer är i konflikt\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n fil är i konflikt i {dirname}\", \"%n filer är i konflikt i {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Alla filer\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Avbryt\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Avbryt hela operationen\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Välj\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Välj {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Välj %n fil\", \"Välj %n filer\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Bekräfta\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsätt\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopiera\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Kopiera till {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Kunde inte skapa den nya mappen\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Kunde inte ladda filinställningar\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Kunde inte ladda filvyer\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Skapa katalog\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Aktuell vyväljare\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Ange ditt namn\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Nuvarande version\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Kunde inte ställa in smeknamn.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoriter\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Filer och mappar som du markerar som favorit kommer att visas här.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Filer och mappar som du nyligen ändrat kommer att visas här.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrera fillistan\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Mappnamn får inte sluta med \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Gästidentifiering\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Hem\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Om du väljer båda versionerna kommer den inkommande filen att få ett nummer tillagt i sitt namn.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Ogiltigt mappnamn.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Ogiltigt namn.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Senaste ändringsdatum okänt\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Ändrad\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Flytta\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Flytta till {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Namn\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Namnen kan vara högst 64 tecken långa.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Namn får inte vara tomt.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Namn får inte sluta med \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Namn får inte börja med en punkt.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Ny\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Ny mapp\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Nytt mappnamn\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Ny version\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Inga filer här\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Inga filer som matchar ditt filter hittades.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Inga matchande filer\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Ange ett namn med minst 2 tecken.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Nyligen\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Markera alla kryssrutor\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Välj alla poster\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Välj alla befintliga filer\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Välj alla nya filer\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Välj post\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Välj raden för {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Storlek\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Hoppa över %n fil\", \"Hoppa över %n filer\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Hoppa över den här filen\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Skicka namn\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Ångra\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Ladda upp lite innehåll eller synkronisera med dina enheter!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"När en inkommande mapp väljs kommer eventuella konflikterande filer i den också att skrivas över.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"När en inkommande mapp väljs skrivs innehållet in i den befintliga mappen och en rekursiv konfliktlösning utförs.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Vilka filer vill du behålla?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Du är för närvarande identifierad som {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Du är för närvarande inte identifierad.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Du kan inte lämna namnet tomt.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Du måste välja minst en konfliktlösning\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Du måste välja minst en version av varje fil för att fortsätta.\"] }] }, { \"language\": \"tr\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['\"{char}\" karakteri bir klasör adında kullanılamaz.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['Bir ad içinde \"{char}\" karakteri kullanılamaz.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" adına izin verilmiyor.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" adı sistem için ayrılmış olduğundan klasör adlarında kullanılamaz.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" adı sistem için ayrılmış olduğundan kullanılamaz.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n dosya çakışıyor\", \"%n dosya çakışıyor\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"{dirname} içindeki %n dosya çakışıyor\", \"{dirname} içindeki %n dosya çakışıyor\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Tüm dosyalar\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"İptal\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Tüm işlemi iptal et\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Seçin\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"{file} seçin\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"%n dosya seçin\", \"%n dosya seçin\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Onayla\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"İlerle\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopyala\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"{target} üzerine kopyala\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Yeni klasör oluşturulamadı\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Dosyalar uygulamasının ayarları yüklenemedi\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Dosyalar uygulamasının görünümleri yüklenemedi\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Klasör oluştur\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Geçerli görünüm seçici\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Adınızı yazın\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Var olan sürüm\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Takma ad ayarlanamadı.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Sık kullanılanlar\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Sık kullanılan olarak seçtiğiniz dosyalar burada görüntülenir.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Son zamanlarda değiştirdiğiniz dosya ve klasörler burada görüntülenir.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Dosya listesini süz\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Klasör adları \"{extension}\" ile bitemez.'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Konuk kimliği\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Giriş\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"İki sürümü de seçerseniz, gelen dosyanın adına bir sayı eklenir.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Klasör adı geçersiz.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Ad geçersiz.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Son değiştirilme tarihi bilinmiyor.\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Değiştirilme\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Taşı\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"{target} üzerine taşı\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Ad\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Adlar en fazla 64 karakter uzunluğunda olabilir.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Ad boş olamaz.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Ad \"{extension}\" ile bitemez.'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Ad nokta karakteri ile başlayamaz.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Yeni\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Yeni klasör\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Yeni klasör adı\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Yeni sürüm\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Burada herhangi bir dosya yok\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Süzgece uyan bir dosya bulunamadı.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Eşleşen bir dosya yok\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Ad en az 2 karakter uzunluğunda olmalıdır.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Son kullanılanlar\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Tüm kutuları işaretle\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Tüm kayıtları seç\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Tüm var olan dosyaları seç\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Tüm yeni dosyaları seç\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Kaydı seç\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"{nodename} satırını seçin\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Boyut\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"%n dosyayı atla\", \"%n dosyayı atla\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Bu dosyayı atla\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Adı gönder\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Geri al\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Bazı içerikler yükleyin ya da aygıtlarınızla eşitleyin!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Bir gelen klasör seçildiğinde, içindeki çakışan dosyaların da üzerine yazılır.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Bir gelen klasör seçildiğinde, içerik var olan klasöre yazılır ve alt klasörlerle bir çakışma çözümü uygulanır.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Hangi dosyaları tutmak istiyorsunuz?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"{nickname} olarak tanınıyorsunuz.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Henüz kendinizi tanıtmadınız.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Ad boş bırakılamaz.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"En az bir çakışma çözümü seçmelisiniz\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"İlerlemek için her dosaynın en az bir sürümünü seçmelisiniz.\"] }] }, { \"language\": \"uk\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [\"{char} не дозволено всередині назви каталогу.\"] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" не дозволено всередині імени.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": [`\"{extension}\" недозволене ім'я.`] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": [\"{segment} є зарезервованим ім'ям і не дозволено для назви каталогу.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": [`\"{segment}\" зарезервоване ім'я і не дозволено для використання.`] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n конфлікт файлів\", \"%n конфлікти файлів\", \"%n конфліктів файлів\", \"%n конфліктів файлів\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n конфлікт файлів у каталозі {dirname}\", \"%n конфлікти файлів у каталозі {dirname}\", \"%n конфліктів файлів у каталозі {dirname}\", \"%n конфліктів файлів у каталозі {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Всі файли\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Скасувати\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Скасувати всю операцію\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Вибрати\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Вибрати {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Вибрати %n файл\", \"Вибрати %n файли\", \"Вибрати %n файлів\", \"Вибрати %n файлів\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Підтвердити\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Продовжити\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Копіювати\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Копіювати до {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Не вдалося створити новий каталог\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Не вдалося завантажити налаштування файлів\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Не вдалося завантажити подання файлів\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Створити каталог\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Вибір подання\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Зазначте ваше ім'я\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Наявна версія\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Не вдалося встановити псевдо.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Із зірочкою\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Тут показуватимуться файли та каталоги, які ви позначите зірочкою.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Тут показуватимуться файли та каталоги, які було нещодавно змінено.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Фільтрувати список файлів\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": [`Ім'я каталогу не може закінчуватися на \"{extension}\".`] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Ім'я для гостя\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Домівка\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Якщо вибрати обидві версії, до назви вхідного файлу буде додано цифру. \"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Недійсне ім'я каталогу.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Недійсне ім'я.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Дата останньої зміни невідома\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Змінено\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Перемістити\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Перемістити до {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Ім'я\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Імена мають мати довжину не більше 64 символів.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Ім'я не може бути порожнє.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": [`Ім'я не може закінчуватися на \"{extension}\".`] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Ім'я не може починатися з крапки.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Новий\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Новий каталог\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Ім'я нового каталогу\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Нова версія\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Тут відсутні файли\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Відсутні збіги за фільтром.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Відсутні збіги файлів.\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Зазначте ім'я довжиною не менше 2 символів\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Останні\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Вибрати всі прапорці\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Вибрати всі записи\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Вибрати всі наявні файли\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Вибрати всі нові файли\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Вибрати запис\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Вибрати рядок для {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Розмір\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Пропустити %n файл\", \"Пропустити %n файли\", \"Пропустити %n файлів\", \"Пропустити %n файлів\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Пропустити цей файл\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Встановити ім'я\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Повернути\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Завантажте вміст або синхронізуйте з вашим пристроєм!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Коли вибрано вхідний каталог, будь-які файли з конфліктами буде також перезаписано.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Коли вибрано вхідний каталог, вміст буде записано до існуючого каталогу, а також виконано вирішення конфліктів всередині каталогу.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Які файли залишити?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Вас визначено як {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Вас не ідентифіковано.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Потрібно зазначити ім'я.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Треб вибрати щонайменше одне рішення конфлікту\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Треба вибрати щонайменше одну версію кожного файлу, щоби продовжити.\"] }] }, { \"language\": \"uz\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['Papka nomi ichida \"{char}\" ga ruxsat berilmaydi.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['Nom ichida \"{char}\" ga ruxsat berilmagan.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" ruxsat etilgan nom emas.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": [`\"{segment}\" ajratilgan nom bo'lib, papka nomlari uchun ruxsat berilmagan.`] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" - zaxiralangan nom va ruxsat berilmaydi.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n fayl ziddiyatli\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"{dirname} da %n fayl ziddiyati\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Barcha fayllar\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Bekor qilish\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Butun operatsiyani bekor qiling\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Tanlang\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Tanlang {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Tanlang %n faylni\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Tasdiqlang\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Davom eting\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Nusxa\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\" {target} ga nusxa\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Yangi jild yaratib bo‘lmadi\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Fayl sozlamalari yuklanmadi\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Fayllarni koʻrishni yuklab boʻlmadi\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Katalog yaratish\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Joriy ko'rinish selektori\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Ismingizni kiriting\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Mavjud versiya\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Taxallusni o‘rnatib bo‘lmadi.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Tanlanganlar\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Tanlangan deb belgilagan fayl va papkalar shu yerda koʻrinadi.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Siz yaqinda oʻzgartirgan fayl va papkalar shu yerda koʻrinadi.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Fayl ro'yxatini filtrlash\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Papka nomlari \"{extension}\" bilan tugamasligi kerak.'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Foydalanuvchini identifikatsiyalash\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Uy\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Agar siz ikkala versiyani tanlasangiz, kiruvchi fayl nomiga qo'shilgan raqamga ega bo'ladi.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Jild nomi noto'g'ri.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Nomi noto‘g‘ri.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Oxirgi tahrirlangan sana noma'lum\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Modifikatsiyalangan\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Ko'chirish\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\" {target} ga ko'chirish\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nomi\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Ismlar ko'pi bilan 64 ta belgidan iborat bo'lishi mumkin.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Ismlar bo'sh bo'lmasligi kerak.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Ismlar \"{extension}\" bilan tugamasligi kerak.'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Ismlar nuqta bilan boshlanmasligi kerak.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Yangi\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Yangi jild\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Yangi jild nomi\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Yangi versiya\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Fayl mavjud emas\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Filtringizga mos keladigan fayl topilmadi.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Mos fayllar yo'q\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Kamida 2 ta belgidan iborat nom kiriting.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Yaqinda\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Barcha katakchalarni belgilang\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Barcha yozuvlarni tanlang\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Barcha mavjud fayllarni tanlang\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Barcha yangi fayllarni tanlang\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Yozuvni tanlang\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"{nodename} uchun qatorni tanlang\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"O`lcham\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"%n faylni oʻtkazib yuborish\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Ushbu faylni o'tkazib yuboring\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Ismni tasdiqlang\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Bekor qilish\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Qurilmangizga ba'zi kontentni yuklang yoki sinxronlang!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Kiruvchi papka tanlanganda, undagi har qanday ziddiyatli fayllar ham ustiga yoziladi.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Kiruvchi papka tanlanganda, kontent mavjud jildga yoziladi va nizolarni rekursiv hal qilish amalga oshiriladi.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Qaysi fayllarni saqlamoqchisiz?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Siz hozirda {nickname} sifatida aniqlangansiz.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Siz hozirda identifikatsiyadan o'tmagansiz\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Ism katagini bo'sh qoldirib bo'lmaydi.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Siz kamida bitta mojaro yechimini tanlashingiz kerak\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Davom etish uchun har bir faylning kamida bitta versiyasini tanlashingiz kerak.\"] }] }, { \"language\": \"vi\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": ['\"{name}\" là tên thư mục không hợp lệ.'] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": ['\"1{name}\"không phải là tên thư mục được cho phép'] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\"không được phép đặt trong tên thư mục.'] }, { \"msgid\": \"All files\", \"msgstr\": [\"Tất cả tệp\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Chọn\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Chọn {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Chọn %n tệp\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Sao chép\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Sao chép đến {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Không thể tạo thư mục mới\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Không thể tải tập tin cài đặt\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Không thể tải xuống tệp xem\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Tạo thư mục\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Hiện tại chế độ xem của bộ chọn\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Yêu cầu thích\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Các tập tin và thư mục bạn đánh dấu yêu thích sẽ hiển thị ở đây.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Các tập tin và thư mục bạn sửa đổi gần đây sẽ hiển thị ở đây.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filter list file\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"Thư mục tên không được để trống.\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Trang chủ\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Đã sửa đổi\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Di chuyển\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Di chuyển đến{target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Tên\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Mới\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"New thư mục\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"New thư mục tên\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"No file at here\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Không tìm thấy tệp nào phù hợp với bộ lọc của bạn.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"No file phù hợp\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Gần đây\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Choose all items\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Chọn mục nhập\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Choose hang cho{nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Kích cỡ\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Hoàn tác\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Tải lên một số nội dung hoặc đồng bộ hóa với thiết bị của bạn!\"] }] }, { \"language\": \"zh_CN\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": [\"“{name}” 是无效的文件夹名称。\"] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": [\"“{name}” 不是允许的文件夹名称\"] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": [\"文件夹名称中不允许包含 “/”。\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"所有文件\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"选择\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"选择 {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"选择 %n 个文件\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"复制\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"复制到 {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"无法创建新文件夹\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"无法加载文件设置\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"无法加载文件视图\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"创建目录\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"当前视图选择器\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"最爱\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"您标记为最爱的文件与文件夹会显示在这里\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"您最近修改的文件与文件夹会显示在这里\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"过滤文件列表\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"文件夹名称不能为空。\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"主目录\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"已修改\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"移动\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"移动至 {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"名称\"] }, { \"msgid\": \"New\", \"msgstr\": [\"新建\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"新文件夹\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"新文件夹名称\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"此处无文件\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"找不到符合您过滤条件的文件\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"无符合的文件\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"最近\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"选择所有条目\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"选择条目\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"选择 {nodename} 的列\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"大小\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\" 撤消\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"上传一些项目或与您的设备同步!\"] }] }, { \"language\": \"zh_HK\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [\"資料夾名稱中不允許使用「{char}」。\"] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['名稱中不能使用 \"{char}\"。'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": [\"「{extension}」並非允許的名稱。\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": [\"「{segment}」為保留名稱,不能用作資料夾名稱。\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": [\"「{segment}」是一個保留名稱,不能使用。\"] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n 檔案衝突\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"{dirname} 中有 %n 個檔案衝突\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"所有檔案\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"取消\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"取消整個操作\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"選擇\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"選擇 {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"選擇 %n 個檔案\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"確認\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"繼續\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"複製\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"複製到 {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"無法建立新資料夾\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"無法載入檔案設定\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"無法載入檔案視圖\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"建立目錄\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"目前視圖選擇器\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"輸入您的名字\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"現有的版本\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"無法設置暱稱。\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"最愛\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"您標記為最愛的檔案與資料夾將會顯示在此處。\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"您最近修改的檔案與資料夾將會顯示在此處。\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"過濾檔案清單\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": [\"資料夾名稱不得以「{extension}」結尾。\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"訪客身份識別\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"首頁\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"如果您選擇兩個版本,傳入的檔案名稱將會附加一個數字。\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"無效的資料夾名稱。\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"無效的名字。\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"最後的修改日期不詳\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"已修改\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"移動\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"移動至 {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"名稱\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"名稱長度最多為 64 個字元。\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"名稱不能為空。\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": [\"名稱不得以「{extension}」結尾。\"] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"名稱不得以點開頭。\"] }, { \"msgid\": \"New\", \"msgstr\": [\"新\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"新資料夾\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"新資料夾名稱\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"新版本\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"此處無檔案\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"找不到符合您過濾條件的檔案。\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"沒有匹配的檔案\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"請輸入至少 2 個字符的名稱。\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"最近\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"選擇所有復選框\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"選擇所有項目\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"選擇所有現有的檔案\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"選擇所有新檔案\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"選擇項目\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"選擇 {nodename} 的列\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"大小\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"跳過 %n 個檔案\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"跳過此檔案\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"遞交名字\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"還原\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"上傳一些內容或與您的裝置同步!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"選取傳入資料夾時,其中任何衝突的檔案也將被覆蓋。\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"當選取傳入資料夾時,內容將寫入現有資料夾,並執行遞歸衝突解決。\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"你想保留哪些檔案?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"您目前被識別為 {nickname}。\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"您目前尚未被識別。\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"名稱不能留空。\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"你需要選擇至少一種衝突解決方案。\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"您必須選擇每個文件的至少一個版本才能繼續。\"] }] }, { \"language\": \"zh_TW\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid file name.', \"msgstr\": [\"「{name}」是無效的檔案名稱。\"] }, { \"msgid\": '\"{name}\" is not an allowed filetype', \"msgstr\": [\"「{name}」並非允許的檔案類型\"] }, { \"msgid\": '\"/\" is not allowed inside a file name.', \"msgstr\": [\"檔案名稱中不允許使用「/」。\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"所有檔案\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"選擇\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"選擇 {file}\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"複製\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"複製到 {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"無法建立新資料夾\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"建立目錄\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"目前檢視選取器\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"最愛\"] }, { \"msgid\": \"File name cannot be empty.\", \"msgstr\": [\"檔案名稱不能為空。\"] }, { \"msgid\": \"Filepicker sections\", \"msgstr\": [\"檔案挑選器選取\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"您標記為最愛的檔案與資料夾將會顯示在此處。\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"您最近修改的檔案與資料夾將會顯示在此處。\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"過濾檔案清單\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"家\"] }, { \"msgid\": \"Mime type {mime}\", \"msgstr\": [\"Mime type {mime}\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"已修改\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"移動\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"移動至 {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"名稱\"] }, { \"msgid\": \"New\", \"msgstr\": [\"新\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"新資料夾\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"新資料夾名稱\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"此處無檔案\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"找不到符合您過濾條件的檔案。\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"無符合的檔案\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"最近\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"選取所有條目\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"選取條目\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"選取 {nodename} 的列\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"大小\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"復原\"] }, { \"msgid\": \"unknown\", \"msgstr\": [\"未知\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"上傳一些內容或與您的裝置同步\"] }] }]) {\n const { language, translations } = data;\n const bundle = {\n headers: {},\n translations: {\n \"\": Object.fromEntries(translations.map((translation) => [translation.msgid, translation]))\n }\n };\n gtBuilder.addTranslation(language, bundle);\n}\nconst gt = gtBuilder.build();\nconst n = gt.ngettext.bind(gt);\nconst t = gt.gettext.bind(gt);\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst logger = getLoggerBuilder().setApp(\"@nextcloud/dialogs\").detectLogLevel().build();\nvar FilePickerType = /* @__PURE__ */ ((FilePickerType2) => {\n FilePickerType2[FilePickerType2[\"Choose\"] = 1] = \"Choose\";\n FilePickerType2[FilePickerType2[\"Move\"] = 2] = \"Move\";\n FilePickerType2[FilePickerType2[\"Copy\"] = 3] = \"Copy\";\n FilePickerType2[FilePickerType2[\"CopyMove\"] = 4] = \"CopyMove\";\n FilePickerType2[FilePickerType2[\"Custom\"] = 5] = \"Custom\";\n return FilePickerType2;\n})(FilePickerType || {});\nclass FilePickerClosed extends Error {\n}\nclass FilePicker {\n title;\n multiSelect;\n mimeTypeFilter;\n directoriesAllowed;\n noMenu;\n buttons;\n path;\n filter;\n canPick;\n container;\n disabledNavigation;\n constructor(title, multiSelect, mimeTypeFilter, directoriesAllowed, noMenu, buttons, path, filter, canPick, container, disabledNavigation = false) {\n this.title = title;\n this.multiSelect = multiSelect;\n this.mimeTypeFilter = mimeTypeFilter;\n this.directoriesAllowed = directoriesAllowed;\n this.noMenu = noMenu;\n this.path = path;\n this.filter = filter;\n this.canPick = canPick;\n this.buttons = buttons;\n this.container = container;\n this.disabledNavigation = disabledNavigation;\n }\n /**\n * Pick files using the FilePicker.\n *\n * @return Promise with array of picked files or rejected promise on close without picking\n */\n async pickNodes() {\n const { default: FilePickerVue } = await import(\"./FilePicker-DWYoSaVg.mjs\");\n const nodes = await spawnDialog(FilePickerVue, {\n allowPickDirectory: this.directoriesAllowed,\n noMenu: this.noMenu,\n buttons: this.buttons,\n name: this.title,\n path: this.path,\n mimetypeFilter: this.mimeTypeFilter,\n multiselect: this.multiSelect,\n filterFn: this.filter,\n canPickFn: this.canPick,\n disabledNavigation: this.disabledNavigation\n }, {\n container: this.container\n });\n if (!Array.isArray(nodes) || nodes.length === 0) {\n throw new FilePickerClosed(\"FilePicker: No nodes selected\");\n }\n return nodes;\n }\n /**\n * Pick files using the FilePicker\n *\n * @return Promise with array of paths of picked files or rejected promise on close without picking\n */\n async pick() {\n const nodes = await this.pickNodes();\n if (this.multiSelect) {\n return nodes.map((node) => node.path);\n }\n const path = nodes[0]?.path ?? \"/\";\n return path;\n }\n}\nclass FilePickerBuilder {\n title;\n multiSelect = false;\n mimeTypeFilter = [];\n directoriesAllowed = false;\n noMenu = false;\n path;\n filter;\n canPick;\n buttons = [];\n container;\n disabledNavigation = false;\n /**\n * Construct a new FilePicker\n *\n * @param title Title of the FilePicker\n */\n constructor(title) {\n this.title = title;\n }\n /**\n * Set the container where the FilePicker will be mounted\n * By default 'body' is used\n *\n * @param container The dialog container\n */\n setContainer(container) {\n this.container = container;\n return this;\n }\n /**\n * Enable or disable picking multiple files\n *\n * @param ms True to enable picking multiple files, false otherwise\n */\n setMultiSelect(ms) {\n this.multiSelect = ms;\n return this;\n }\n /**\n * Add allowed MIME type\n *\n * @param filter MIME type to allow\n */\n addMimeTypeFilter(filter) {\n this.mimeTypeFilter.push(filter);\n return this;\n }\n /**\n * Set allowed MIME types\n *\n * @param filter Array of allowed MIME types\n */\n setMimeTypeFilter(filter) {\n this.mimeTypeFilter = filter;\n return this;\n }\n /**\n * Add a button to the FilePicker\n * Note: This overrides any previous `setButtonFactory` call\n *\n * @param button The button\n */\n addButton(button) {\n if (typeof this.buttons === \"function\") {\n logger.warn(\"FilePicker buttons were set to factory, now overwritten with button object.\");\n this.buttons = [];\n }\n this.buttons.push(button);\n return this;\n }\n /**\n * Set the button factory which is used to generate buttons from current view, path and selected nodes\n * Note: This overrides any previous `addButton` call\n *\n * @param factory The button factory\n */\n setButtonFactory(factory) {\n this.buttons = factory;\n return this;\n }\n /**\n * Set FilePicker type based on legacy file picker types\n *\n * @param type The legacy filepicker type to emulate\n * @deprecated Use `addButton` or `setButtonFactory` instead as with setType you do not know which button was pressed\n */\n setType(type) {\n this.buttons = (nodes, path) => {\n const buttons = [];\n const node = nodes[0];\n const target = node?.displayname || basename(path);\n if (type === 1) {\n let label = t(\"Choose\");\n if (nodes.length === 1) {\n label = t(\"Choose {file}\", { file: target });\n } else if (this.multiSelect) {\n label = n(\"Choose %n file\", \"Choose %n files\", nodes.length);\n }\n buttons.push({\n callback: () => {\n },\n label,\n variant: \"primary\"\n });\n }\n if (type === 4 || type === 3) {\n buttons.push({\n callback: () => {\n },\n label: target ? t(\"Copy to {target}\", { target }) : t(\"Copy\"),\n icon: IconCopy,\n variant: type === 3 ? \"primary\" : \"secondary\"\n });\n }\n if (type === 4 || type === 2) {\n buttons.push({\n callback: () => {\n },\n label: target ? t(\"Move to {target}\", { target }) : t(\"Move\"),\n icon: IconMove,\n variant: \"primary\"\n // move is always primary - also on copy-move\n });\n }\n return buttons;\n };\n return this;\n }\n /**\n * Allow to pick directories besides files\n *\n * @param allow True to allow picking directories\n */\n allowDirectories(allow = true) {\n this.directoriesAllowed = allow;\n return this;\n }\n /**\n * Allow to create New folders\n *\n * @param noMenu True to hide menu\n */\n setNoMenu(noMenu = true) {\n this.noMenu = noMenu;\n return this;\n }\n /**\n * Set starting path of the FilePicker\n *\n * @param path Path to start from picking\n */\n startAt(path) {\n this.path = path;\n return this;\n }\n /**\n * Add filter function to filter file list of FilePicker\n *\n * @param filter Filter function to apply\n */\n setFilter(filter) {\n this.filter = filter;\n return this;\n }\n /**\n * Add function to allow or not picking a node\n *\n * @param canPick Function to decide if a node can be picked\n */\n setCanPick(canPick) {\n this.canPick = canPick;\n return this;\n }\n /**\n * Disable navigation (view selection)\n */\n disableNavigation() {\n this.disabledNavigation = true;\n return this;\n }\n /**\n * Construct the configured FilePicker\n */\n build() {\n return new FilePicker(\n this.title,\n this.multiSelect,\n this.mimeTypeFilter,\n this.directoriesAllowed,\n this.noMenu,\n this.buttons,\n this.path,\n this.filter,\n this.canPick,\n this.container,\n this.disabledNavigation\n );\n }\n}\nfunction getFilePickerBuilder(title) {\n return new FilePickerBuilder(title);\n}\nasync function showGuestUserPrompt(props) {\n const name = await spawnDialog(\n defineAsyncComponent(() => import(\"./PublicAuthPrompt-CxPJPSnh.mjs\")),\n props\n );\n return name;\n}\nconst LoaderSvg = '\\n\t\\n\t\\n\\n';\nvar ToastType = /* @__PURE__ */ ((ToastType2) => {\n ToastType2[\"ERROR\"] = \"toast-error\";\n ToastType2[\"WARNING\"] = \"toast-warning\";\n ToastType2[\"INFO\"] = \"toast-info\";\n ToastType2[\"SUCCESS\"] = \"toast-success\";\n ToastType2[\"UNDO\"] = \"toast-undo\";\n ToastType2[\"LOADING\"] = \"toast-loading\";\n return ToastType2;\n})(ToastType || {});\nconst TOAST_ARIA_LIVE_OFF = \"off\";\nconst TOAST_ARIA_LIVE_POLITE = \"polite\";\nconst TOAST_ARIA_LIVE_ASSERTIVE = \"assertive\";\nvar ToastAriaLive = /* @__PURE__ */ ((ToastAriaLive2) => {\n ToastAriaLive2[ToastAriaLive2[\"OFF\"] = TOAST_ARIA_LIVE_OFF] = \"OFF\";\n ToastAriaLive2[ToastAriaLive2[\"POLITE\"] = TOAST_ARIA_LIVE_POLITE] = \"POLITE\";\n ToastAriaLive2[ToastAriaLive2[\"ASSERTIVE\"] = TOAST_ARIA_LIVE_ASSERTIVE] = \"ASSERTIVE\";\n return ToastAriaLive2;\n})(ToastAriaLive || {});\nconst TOAST_UNDO_TIMEOUT = 1e4;\nconst TOAST_DEFAULT_TIMEOUT = 7e3;\nconst TOAST_PERMANENT_TIMEOUT = -1;\nfunction showMessage(data, options) {\n options = {\n timeout: TOAST_DEFAULT_TIMEOUT,\n isHTML: false,\n type: void 0,\n // An undefined selector defaults to the body element\n selector: void 0,\n onRemove: () => {\n },\n onClick: void 0,\n close: true,\n ...options\n };\n if (typeof data === \"string\" && !options.isHTML) {\n const element = document.createElement(\"div\");\n element.innerHTML = data;\n data = element.innerText;\n }\n let classes = options.type ?? \"\";\n if (typeof options.onClick === \"function\") {\n classes += \" toast-with-click \";\n }\n const isNode = data instanceof Node;\n let ariaLive = ToastAriaLive.POLITE;\n if (options.ariaLive) {\n ariaLive = options.ariaLive;\n } else if (options.type === \"toast-error\" || options.type === \"toast-undo\") {\n ariaLive = ToastAriaLive.ASSERTIVE;\n }\n const toast = Toastify({\n [!isNode ? \"text\" : \"node\"]: data,\n duration: options.timeout,\n callback: options.onRemove,\n onClick: options.onClick,\n close: options.close,\n gravity: \"top\",\n selector: options.selector,\n position: \"right\",\n backgroundColor: \"\",\n className: \"dialogs \" + classes,\n escapeMarkup: !options.isHTML,\n ariaLive\n });\n toast.showToast();\n return toast;\n}\nfunction showError(text, options) {\n return showMessage(text, {\n ...options,\n type: \"toast-error\"\n /* ERROR */\n });\n}\nfunction showWarning(text, options) {\n return showMessage(text, {\n ...options,\n type: \"toast-warning\"\n /* WARNING */\n });\n}\nfunction showInfo(text, options) {\n return showMessage(text, {\n ...options,\n type: \"toast-info\"\n /* INFO */\n });\n}\nfunction showSuccess(text, options) {\n return showMessage(text, {\n ...options,\n type: \"toast-success\"\n /* SUCCESS */\n });\n}\nfunction showLoading(text, options) {\n const loader = document.createElement(\"span\");\n loader.innerHTML = LoaderSvg;\n loader.classList.add(\"toast-loader\");\n const loaderContent = document.createElement(\"span\");\n loaderContent.classList.add(\"toast-loader-container\");\n loaderContent.innerText = text;\n loaderContent.appendChild(loader);\n return showMessage(loaderContent, {\n ...options,\n close: false,\n timeout: TOAST_PERMANENT_TIMEOUT,\n type: \"toast-loading\"\n /* LOADING */\n });\n}\nfunction showUndo(text, onUndo, options) {\n if (!(onUndo instanceof Function)) {\n throw new Error(\"Please provide a valid onUndo method\");\n }\n options = Object.assign(options || {}, {\n // force 10 seconds of timeout\n timeout: TOAST_UNDO_TIMEOUT\n });\n const undoContent = document.createElement(\"span\");\n const undoButton = document.createElement(\"button\");\n undoContent.classList.add(\"toast-undo-container\");\n undoButton.classList.add(\"toast-undo-button\");\n undoButton.innerText = t(\"Undo\");\n undoContent.innerText = text;\n undoContent.appendChild(undoButton);\n const toast = showMessage(undoContent, {\n ...options,\n type: \"toast-undo\"\n /* UNDO */\n });\n undoButton.addEventListener(\"click\", function(event) {\n event.stopPropagation();\n onUndo(event);\n if (toast?.hideToast instanceof Function) {\n toast.hideToast();\n }\n });\n return toast;\n}\nconst _hoisted_1 = [\"textContent\"];\nconst _hoisted_2 = [\"innerHTML\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"GenericDialog\",\n props: {\n name: {},\n text: {},\n html: {},\n buttons: {},\n severity: {}\n },\n emits: [\"close\"],\n setup(__props, { emit: __emit }) {\n const props = __props;\n const emit = __emit;\n const dialogButtons = computed(() => props.buttons?.map((button) => ({\n ...button,\n callback() {\n button.callback();\n emit(\"close\", true);\n }\n })));\n const handleUnload = () => `${props.name}: ${props.text}`;\n onMounted(() => window.addEventListener(\"unload\", handleUnload));\n onUnmounted(() => window.removeEventListener(\"unload\", handleUnload));\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcDialog), {\n dialogClasses: \"nc-generic-dialog\",\n buttons: dialogButtons.value,\n name: __props.name,\n message: __props.text,\n \"onUpdate:open\": _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"close\", false))\n }, {\n default: withCtx(() => [\n __props.severity ? (openBlock(), createBlock(unref(NcNoteCard), {\n key: 0,\n type: __props.severity\n }, {\n default: withCtx(() => [\n createElementVNode(\"p\", {\n textContent: toDisplayString(__props.text)\n }, null, 8, _hoisted_1)\n ]),\n _: 1\n }, 8, [\"type\"])) : createCommentVNode(\"\", true),\n __props.html ? (openBlock(), createElementBlock(\"div\", {\n key: 1,\n innerHTML: __props.html\n }, null, 8, _hoisted_2)) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"buttons\", \"name\", \"message\"]);\n };\n }\n});\nclass Dialog {\n #name;\n #text;\n #buttons;\n #severity;\n constructor(name, text, buttons = [], severity) {\n this.#name = name;\n this.#text = text;\n this.#buttons = buttons;\n this.#severity = severity;\n }\n /**\n * Spawn and show the dialog - if already open the previous instance will be destroyed\n *\n * @return Promise that resolves when the dialog is answered successfully and rejects on close\n */\n async show() {\n const result = await spawnDialog(\n _sfc_main,\n {\n buttons: this.#buttons,\n name: this.#name,\n text: this.#text,\n severity: this.#severity\n }\n );\n if (!result) {\n throw new Error(\"Dialog closed\");\n }\n }\n}\nclass DialogBuilder {\n #severity;\n #text;\n #name;\n #buttons;\n constructor(name) {\n this.#severity = void 0;\n this.#text = \"\";\n this.#name = name ?? \"\";\n this.#buttons = [];\n }\n /**\n * Set dialog name\n *\n * @param name The name or headline of the dialog\n */\n setName(name) {\n this.#name = name;\n return this;\n }\n /**\n * Set the dialog text\n *\n * @param text Main text of the dialog\n */\n setText(text) {\n this.#text = text;\n return this;\n }\n /**\n * Set the severity of the dialog\n *\n * @param severity Severity of the dialog\n */\n setSeverity(severity) {\n this.#severity = severity;\n return this;\n }\n /**\n * Set buttons from array\n *\n * @param buttons Either an array of dialog buttons\n */\n setButtons(buttons) {\n if (this.#buttons.length > 0) {\n logger.warn(\"[@nextcloud/dialogs] Dialog buttons are already set - this overrides previous buttons.\");\n }\n this.#buttons = buttons;\n return this;\n }\n /**\n * Add a single button\n *\n * @param button Button to add\n */\n addButton(button) {\n this.#buttons.push(button);\n return this;\n }\n build() {\n return new Dialog(this.#name, this.#text, this.#buttons, this.#severity);\n }\n}\nfunction getDialogBuilder(name) {\n return new DialogBuilder(name);\n}\nasync function showConfirmation(options) {\n options = {\n labelConfirm: t(\"Confirm\"),\n ...options\n };\n const { promise, resolve } = Promise.withResolvers();\n const buttons = [{\n label: options.labelConfirm,\n variant: \"primary\",\n callback() {\n resolve(true);\n }\n }];\n if (options.labelReject) {\n buttons.unshift({\n label: options.labelReject,\n callback() {\n resolve(false);\n }\n });\n }\n const dialog = new Dialog(\n options.name,\n options.text,\n buttons,\n options.severity\n );\n await dialog.show();\n return promise;\n}\nexport {\n Dialog as D,\n FilePicker as F,\n TOAST_ARIA_LIVE_ASSERTIVE as T,\n DialogBuilder as a,\n FilePickerBuilder as b,\n FilePickerClosed as c,\n FilePickerType as d,\n TOAST_ARIA_LIVE_OFF as e,\n TOAST_ARIA_LIVE_POLITE as f,\n TOAST_DEFAULT_TIMEOUT as g,\n TOAST_PERMANENT_TIMEOUT as h,\n TOAST_UNDO_TIMEOUT as i,\n ToastAriaLive as j,\n ToastType as k,\n logger as l,\n getDialogBuilder as m,\n n,\n getFilePickerBuilder as o,\n openConflictPicker as p,\n showConfirmation as q,\n showGuestUserPrompt as r,\n showError as s,\n t,\n showInfo as u,\n showLoading as v,\n showMessage as w,\n showSuccess as x,\n showUndo as y,\n showWarning as z\n};\n//# sourceMappingURL=index-DL1yHC1K.mjs.map\n"],"file":"index-DL1yHC1K-DnBG6QLJ.chunk.mjs"} \ No newline at end of file +{"version":3,"mappings":";8aAOC,SAASA,EAAMC,EAAS,CACWC,EAAO,QACvCA,EAAA,QAAiBD,EAAO,EAExBD,EAAK,SAAWC,EAAO,CAE3B,GAAGE,EAAM,SAASC,EAAQ,CAExB,IAAIC,EAAW,SAASC,EAAS,CAE7B,OAAO,IAAID,EAAS,IAAI,KAAKC,CAAO,CAC1C,EAEIC,EAAU,SAGZF,EAAS,SAAW,CAClB,YAAa,GACb,KAAM,uBACN,KAAM,OACN,SAAU,IACV,SAAU,OACV,SAAU,UAAY,CAC1B,EACI,YAAa,OACb,UAAW,GACX,MAAO,GACP,QAAS,eACT,aAAc,GACd,SAAU,GACV,gBAAiB,GACjB,OAAQ,GACR,UAAW,GACX,YAAa,GACb,QAAS,UAAY,CACzB,EACI,OAAQ,CAAC,EAAG,EAAG,EAAG,CAAC,EACnB,aAAc,GACd,SAAU,SACV,MAAO,CAAC,WAAY,EAAE,GAIxBA,EAAS,IAAMA,EAAS,UAAY,CAClC,SAAUE,EAEV,YAAaF,EAGb,KAAM,SAASC,EAAS,CAEtB,OAAKA,IACHA,EAAU,IAIZ,KAAK,QAAU,GAEf,KAAK,aAAe,KAGpB,KAAK,QAAQ,KAAOA,EAAQ,MAAQD,EAAS,SAAS,KACtD,KAAK,QAAQ,KAAOC,EAAQ,MAAQD,EAAS,SAAS,KACtD,KAAK,QAAQ,SAAWC,EAAQ,WAAa,EAAI,EAAIA,EAAQ,UAAYD,EAAS,SAAS,SAC3F,KAAK,QAAQ,SAAWC,EAAQ,UAAYD,EAAS,SAAS,SAC9D,KAAK,QAAQ,SAAWC,EAAQ,UAAYD,EAAS,SAAS,SAC9D,KAAK,QAAQ,YAAcC,EAAQ,aAAeD,EAAS,SAAS,YACpE,KAAK,QAAQ,UAAYC,EAAQ,WAAaD,EAAS,SAAS,UAChE,KAAK,QAAQ,MAAQC,EAAQ,OAASD,EAAS,SAAS,MACxD,KAAK,QAAQ,QAAUC,EAAQ,UAAY,SAAW,kBAAoBD,EAAS,SAAS,QAC5F,KAAK,QAAQ,aAAeC,EAAQ,cAAgBD,EAAS,SAAS,aACtE,KAAK,QAAQ,SAAWC,EAAQ,UAAYD,EAAS,SAAS,SAC9D,KAAK,QAAQ,gBAAkBC,EAAQ,iBAAmBD,EAAS,SAAS,gBAC5E,KAAK,QAAQ,OAASC,EAAQ,QAAUD,EAAS,SAAS,OAC1D,KAAK,QAAQ,UAAYC,EAAQ,WAAaD,EAAS,SAAS,UAChE,KAAK,QAAQ,YAAcC,EAAQ,cAAgB,OAAYD,EAAS,SAAS,YAAcC,EAAQ,YACvG,KAAK,QAAQ,QAAUA,EAAQ,SAAWD,EAAS,SAAS,QAC5D,KAAK,QAAQ,OAASC,EAAQ,QAAUD,EAAS,SAAS,OAC1D,KAAK,QAAQ,aAAeC,EAAQ,eAAiB,OAAYA,EAAQ,aAAeD,EAAS,SAAS,aAC1G,KAAK,QAAQ,SAAWC,EAAQ,UAAYD,EAAS,SAAS,SAC9D,KAAK,QAAQ,MAAQC,EAAQ,OAASD,EAAS,SAAS,MACrDC,EAAQ,kBACT,KAAK,QAAQ,MAAM,WAAaA,EAAQ,iBAInC,IACb,EAGI,WAAY,UAAW,CAErB,GAAI,CAAC,KAAK,QACR,KAAM,8BAIR,IAAIE,EAAa,SAAS,cAAc,KAAK,EAC7CA,EAAW,UAAY,eAAiB,KAAK,QAAQ,UAG/C,KAAK,QAAQ,SACjBA,EAAW,WAAa,aAAe,KAAK,QAAQ,SAGhD,KAAK,QAAQ,eAAiB,IAChCA,EAAW,WAAa,iBACxB,QAAQ,KAAK,iGAAiG,GAG9GA,EAAW,WAAa,kBAK5BA,EAAW,WAAa,IAAM,KAAK,QAAQ,QAEvC,KAAK,QAAQ,iBAEf,QAAQ,KAAK,wGAAwG,EAIvH,QAASC,KAAY,KAAK,QAAQ,MAChCD,EAAW,MAAMC,CAAQ,EAAI,KAAK,QAAQ,MAAMA,CAAQ,EAS1D,GALI,KAAK,QAAQ,UACfD,EAAW,aAAa,YAAa,KAAK,QAAQ,QAAQ,EAIxD,KAAK,QAAQ,MAAQ,KAAK,QAAQ,KAAK,WAAa,KAAK,aAE3DA,EAAW,YAAY,KAAK,QAAQ,IAAI,UAEpC,KAAK,QAAQ,aACfA,EAAW,UAAY,KAAK,QAAQ,KAEpCA,EAAW,UAAY,KAAK,QAAQ,KAGlC,KAAK,QAAQ,SAAW,GAAI,CAC9B,IAAIE,EAAgB,SAAS,cAAc,KAAK,EAChDA,EAAc,IAAM,KAAK,QAAQ,OAEjCA,EAAc,UAAY,kBAEtB,KAAK,QAAQ,UAAY,QAAU,KAAK,QAAQ,eAAiB,GAEnEF,EAAW,YAAYE,CAAa,EAGpCF,EAAW,sBAAsB,aAAcE,CAAa,CAExE,CAIM,GAAI,KAAK,QAAQ,QAAU,GAAM,CAE/B,IAAIC,EAAe,SAAS,cAAc,QAAQ,EAClDA,EAAa,KAAO,SACpBA,EAAa,aAAa,aAAc,OAAO,EAC/CA,EAAa,UAAY,cACzBA,EAAa,UAAY,WAGzBA,EAAa,iBACX,QACA,SAASC,EAAO,CACdA,EAAM,gBAAe,EACrB,KAAK,cAAc,KAAK,YAAY,EACpC,OAAO,aAAa,KAAK,aAAa,YAAY,CAC9D,EAAY,KAAK,IAAI,GAIb,IAAIC,EAAQ,OAAO,WAAa,EAAI,OAAO,WAAa,OAAO,OAI1D,KAAK,QAAQ,UAAY,QAAU,KAAK,QAAQ,eAAiB,KAASA,EAAQ,IAErFL,EAAW,sBAAsB,aAAcG,CAAY,EAG3DH,EAAW,YAAYG,CAAY,CAE7C,CAGM,GAAI,KAAK,QAAQ,aAAe,KAAK,QAAQ,SAAW,EAAG,CACzD,IAAIG,EAAO,KAEXN,EAAW,iBACT,YACA,SAASI,EAAO,CACd,OAAO,aAAaJ,EAAW,YAAY,CACvD,CACA,EAEQA,EAAW,iBACT,aACA,UAAW,CACTA,EAAW,aAAe,OAAO,WAC/B,UAAW,CAETM,EAAK,cAAcN,CAAU,CAC7C,EACcM,EAAK,QAAQ,QAC3B,CACA,CACA,CACA,CA4BM,GAzBI,OAAO,KAAK,QAAQ,YAAgB,KACtCN,EAAW,iBACT,QACA,SAASI,EAAO,CACdA,EAAM,gBAAe,EACjB,KAAK,QAAQ,YAAc,GAC7B,OAAO,KAAK,KAAK,QAAQ,YAAa,QAAQ,EAE9C,OAAO,SAAW,KAAK,QAAQ,WAE7C,EAAY,KAAK,IAAI,GAIX,OAAO,KAAK,QAAQ,SAAY,YAAc,OAAO,KAAK,QAAQ,YAAgB,KACpFJ,EAAW,iBACT,QACA,SAASI,EAAO,CACdA,EAAM,gBAAe,EACrB,KAAK,QAAQ,QAAO,CAChC,EAAY,KAAK,IAAI,GAKZ,OAAO,KAAK,QAAQ,QAAW,SAAU,CAE1C,IAAIG,EAAIC,EAAoB,IAAK,KAAK,OAAO,EACzCC,EAAID,EAAoB,IAAK,KAAK,OAAO,EAEzCE,EAAU,KAAK,QAAQ,UAAY,OAASH,EAAI,IAAMA,EACtDI,EAAU,KAAK,QAAQ,SAAW,eAAiBF,EAAI,IAAMA,EAEjET,EAAW,MAAM,UAAY,aAAeU,EAAU,IAAMC,EAAU,GAE9E,CAGM,OAAOX,CACb,EAGI,UAAW,UAAW,CAEpB,KAAK,aAAe,KAAK,WAAU,EAGnC,IAAIY,EAUJ,GATI,OAAO,KAAK,QAAQ,UAAa,SACnCA,EAAc,SAAS,eAAe,KAAK,QAAQ,QAAQ,EAClD,KAAK,QAAQ,oBAAoB,aAAgB,OAAO,WAAe,KAAe,KAAK,QAAQ,oBAAoB,WAChIA,EAAc,KAAK,QAAQ,SAE3BA,EAAc,SAAS,KAIrB,CAACA,EACH,KAAM,8BAIR,IAAIC,EAAkBhB,EAAS,SAAS,YAAce,EAAY,WAAaA,EAAY,UAC3F,OAAAA,EAAY,aAAa,KAAK,aAAcC,CAAe,EAG3DhB,EAAS,WAAU,EAEf,KAAK,QAAQ,SAAW,IAC1B,KAAK,aAAa,aAAe,OAAO,WACtC,UAAW,CAET,KAAK,cAAc,KAAK,YAAY,CAChD,EAAY,KAAK,IAAI,EACX,KAAK,QAAQ,QACvB,GAIa,IACb,EAEI,UAAW,UAAW,CAChB,KAAK,aAAa,cACpB,aAAa,KAAK,aAAa,YAAY,EAE7C,KAAK,cAAc,KAAK,YAAY,CAC1C,EAGI,cAAe,SAASiB,EAAc,CAGpCA,EAAa,UAAYA,EAAa,UAAU,QAAQ,MAAO,EAAE,EAGjE,OAAO,WACL,UAAW,CAEL,KAAK,QAAQ,MAAQ,KAAK,QAAQ,KAAK,YACzC,KAAK,QAAQ,KAAK,WAAW,YAAY,KAAK,QAAQ,IAAI,EAIxDA,EAAa,YACfA,EAAa,WAAW,YAAYA,CAAY,EAIlD,KAAK,QAAQ,SAAS,KAAKA,CAAY,EAGvCjB,EAAS,WAAU,CAC7B,EAAU,KAAK,IAAI,EACX,GACR,CACA,GAIEA,EAAS,WAAa,UAAW,CAsB/B,QAnBIkB,EAAoB,CACtB,IAAK,GACL,OAAQ,IAENC,EAAqB,CACvB,IAAK,GACL,OAAQ,IAENC,EAAa,CACf,IAAK,GACL,OAAQ,IAINC,EAAY,SAAS,uBAAuB,UAAU,EAEtDC,EAGKC,EAAI,EAAGA,EAAIF,EAAU,OAAQE,IAAK,CAErCC,EAAcH,EAAUE,CAAC,EAAG,cAAc,IAAM,GAClDD,EAAY,eAEZA,EAAY,kBAGd,IAAIG,EAASJ,EAAUE,CAAC,EAAE,aAC1BD,EAAYA,EAAU,OAAO,EAAGA,EAAU,OAAO,CAAC,EAElD,IAAII,EAAS,GAETlB,EAAQ,OAAO,WAAa,EAAI,OAAO,WAAa,OAAO,MAG3DA,GAAS,KAEXa,EAAUE,CAAC,EAAE,MAAMD,CAAS,EAAIF,EAAWE,CAAS,EAAI,KAExDF,EAAWE,CAAS,GAAKG,EAASC,GAE9BF,EAAcH,EAAUE,CAAC,EAAG,eAAe,IAAM,IAEnDF,EAAUE,CAAC,EAAE,MAAMD,CAAS,EAAIJ,EAAkBI,CAAS,EAAI,KAE/DJ,EAAkBI,CAAS,GAAKG,EAASC,IAGzCL,EAAUE,CAAC,EAAE,MAAMD,CAAS,EAAIH,EAAmBG,CAAS,EAAI,KAEhEH,EAAmBG,CAAS,GAAKG,EAASC,EAGpD,CAGI,OAAO,IACX,EAGE,SAASf,EAAoBgB,EAAM1B,EAAS,CAE1C,OAAGA,EAAQ,OAAO0B,CAAI,EACjB,MAAM1B,EAAQ,OAAO0B,CAAI,CAAC,EACpB1B,EAAQ,OAAO0B,CAAI,EAGnB1B,EAAQ,OAAO0B,CAAI,EAAI,KAI3B,KAEX,CAEE,SAASH,EAAcI,EAAMC,EAAW,CACtC,MAAI,CAACD,GAAQ,OAAOC,GAAc,SACzB,GAEP,GAAAD,EAAK,WACLA,EAAK,UACF,KAAI,EACJ,MAAM,OAAO,EACb,QAAQC,CAAS,EAAI,GAM9B,CAGE,OAAA7B,EAAS,IAAI,KAAK,UAAYA,EAAS,IAGhCA,CACT,CAAC,yCC1YK8B,EAAW,8NACXC,EAAW,sOACXC,EAAYC,EAAiB,EAAG,eAAc,EACpD,UAAWC,IAAQ,CAAC,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,eAAgB,eAAgB,eAAgB,iBAAkB,eAAgB,aAAa,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,8BAA8B,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,YAAY,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,4DAA6D,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,sBAAsB,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,oBAAoB,GAAK,CAAE,MAAS,eAAgB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,yBAAyB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,4CAA4C,CAAC,CAAE,GAAK,CAAE,SAAY,MAAO,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,+DAA+D,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,qBAAsB,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,kEAAkE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,kEAAkE,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,2CAA2C,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,iDAAkD,OAAU,CAAC,uDAAuD,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,yCAA0C,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,oCAAoC,GAAK,CAAE,MAAS,sCAAuC,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,4DAA4D,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,0BAA2B,0BAA0B,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,qCAAsC,sCAAsC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,iBAAkB,iBAAiB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,0EAA0E,GAAK,CAAE,MAAS,6DAA8D,OAAU,CAAC,qEAAqE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,4BAA4B,GAAK,CAAE,MAAS,+BAAgC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,8BAA8B,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,yFAAyF,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,wDAAwD,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,0DAA0D,GAAK,CAAE,MAAS,oBAAqB,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,wDAAwD,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,2CAA2C,GAAK,CAAE,MAAS,qBAAsB,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,iBAAkB,iBAAiB,GAAK,CAAE,MAAS,iBAAkB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,gEAAgE,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,yGAAyG,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,0IAA0I,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,yEAAyE,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,sDAAsD,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,6CAA6C,GAAK,CAAE,MAAS,mEAAoE,OAAU,CAAC,6EAA6E,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,0DAA0D,GAAK,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,oBAAqB,oBAAqB,oBAAqB,mBAAmB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,gCAAiC,gCAAiC,gCAAiC,+BAA+B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,mBAAoB,oBAAqB,oBAAqB,mBAAmB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,gEAAgE,GAAK,CAAE,MAAS,6DAA8D,OAAU,CAAC,gEAAgE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,0BAA0B,GAAK,CAAE,MAAS,gDAAiD,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,oBAAoB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,8EAA8E,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,aAAa,GAAK,CAAE,MAAS,kBAAmB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,YAAY,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,qDAAqD,GAAK,CAAE,MAAS,oBAAqB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,sBAAuB,uBAAwB,uBAAwB,sBAAsB,GAAK,CAAE,MAAS,iBAAkB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,4EAA4E,GAAK,CAAE,MAAS,iGAAkG,OAAU,CAAC,yFAAyF,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,mHAAmH,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,oFAAoF,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,yCAA0C,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,sCAAuC,OAAU,CAAC,oCAAoC,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,8DAA8D,GAAK,CAAE,MAAS,2CAA4C,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,iBAAkB,qBAAqB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,6BAA8B,8BAA8B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,cAAe,eAAe,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,WAAY,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,yDAAyD,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,sDAAsD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,+BAAgC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,qBAAqB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,+FAA+F,GAAK,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,GAAK,CAAE,MAAS,4CAA6C,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,uBAAuB,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,qBAAsB,sBAAsB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,uBAAuB,GAAK,CAAE,MAAS,cAAe,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,0DAA0D,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,oGAAoG,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,8HAA8H,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,+DAA+D,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,qDAAqD,GAAK,CAAE,MAAS,wCAAyC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,2EAA2E,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,mBAAoB,mBAAmB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,gCAAiC,gCAAgC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,qBAAsB,sBAAsB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,0EAA0E,GAAK,CAAE,MAAS,6DAA8D,OAAU,CAAC,2EAA2E,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,GAAK,CAAE,MAAS,gDAAiD,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,qBAAqB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,uGAAuG,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,cAAc,GAAK,CAAE,MAAS,kBAAmB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,cAAc,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,kEAAkE,GAAK,CAAE,MAAS,oBAAqB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,yDAAyD,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,wBAAyB,yBAAyB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,iEAAiE,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,uHAAuH,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,6IAA6I,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,iFAAiF,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,2DAA2D,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,2EAA2E,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,mBAAoB,mBAAmB,GAAK,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,gCAAiC,gCAAgC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,qBAAsB,sBAAsB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,2EAA2E,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,6EAA6E,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,uFAAwF,OAAU,CAAC,uGAAuG,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,wBAAwB,GAAK,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,sCAAsC,GAAK,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,iEAAiE,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,yBAAyB,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,yDAAyD,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,yBAAyB,GAAK,CAAE,MAAS,4BAA6B,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,wBAAyB,yBAAyB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,0BAA0B,GAAK,CAAE,MAAS,cAAe,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,iDAAkD,OAAU,CAAC,0EAA0E,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,uHAAuH,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,6IAA6I,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,iFAAiF,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,6CAA6C,GAAK,CAAE,MAAS,wCAAyC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,oFAAoF,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,6DAA6D,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,uBAAwB,sBAAsB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,qCAAsC,oCAAoC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,qBAAsB,oBAAoB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,aAAa,GAAK,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,4EAA4E,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,0EAA0E,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,4BAA4B,GAAK,CAAE,MAAS,gDAAiD,OAAU,CAAC,mEAAmE,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,uBAAuB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,mGAAmG,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,0DAA0D,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,YAAY,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,yDAAyD,GAAK,CAAE,MAAS,oBAAqB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,0DAA0D,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,yBAA0B,sBAAsB,GAAK,CAAE,MAAS,iBAAkB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,gEAAgE,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,+HAA+H,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,8IAA8I,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,+EAA+E,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,+CAA+C,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,uCAAuC,GAAK,CAAE,MAAS,mEAAoE,OAAU,CAAC,qEAAqE,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,mBAAoB,mBAAmB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,gCAAiC,gCAAgC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,iBAAkB,iBAAiB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,YAAY,GAAK,CAAE,MAAS,4DAA6D,OAAU,CAAC,4DAA4D,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,4DAA4D,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,+CAA+C,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,sFAAsF,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,KAAK,GAAK,CAAE,MAAS,aAAc,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,iBAAiB,GAAK,CAAE,MAAS,cAAe,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,GAAK,CAAE,MAAS,4CAA6C,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,eAAgB,eAAe,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,gGAAgG,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,wIAAwI,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,mEAAmE,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,yCAA0C,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,sCAAuC,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,+CAA+C,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,yDAAyD,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,yDAAyD,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,mBAAoB,oBAAqB,wBAAwB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,kDAAkD,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,0BAA0B,GAAK,CAAE,MAAS,kBAAmB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,4BAA4B,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,oEAAoE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,qEAAqE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,4CAA4C,GAAK,CAAE,MAAS,MAAO,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,gBAAgB,GAAK,CAAE,MAAS,kBAAmB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,GAAK,CAAE,MAAS,4CAA6C,OAAU,CAAC,4DAA4D,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,yDAAyD,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,4DAA4D,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,4DAA4D,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,iCAAiC,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,4CAA4C,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,mBAAoB,oBAAqB,mBAAmB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,kCAAmC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,gDAAgD,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,oEAAoE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,qEAAqE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,GAAK,CAAE,MAAS,4CAA6C,OAAU,CAAC,yDAAyD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,8BAA8B,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,gCAAgC,GAAK,CAAE,MAAS,eAAgB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,4DAA4D,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,iFAAiF,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,wDAAwD,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,0BAA2B,2BAA4B,0BAA0B,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,uCAAwC,wCAAyC,uCAAuC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,aAAa,GAAK,CAAE,MAAS,gBAAiB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,yBAA0B,0BAA2B,yBAAyB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,mCAAmC,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,oEAAoE,GAAK,CAAE,MAAS,6DAA8D,OAAU,CAAC,qEAAqE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,8DAA8D,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,2GAA2G,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,oCAAoC,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,6CAA6C,GAAK,CAAE,MAAS,MAAO,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,kBAAmB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,yDAAyD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,wDAAwD,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,oBAAqB,qBAAsB,oBAAoB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,0DAA0D,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,oHAAoH,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,mJAAmJ,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,sDAAsD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,4EAA4E,EAAG,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,iEAAiE,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,iEAAiE,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,uBAAwB,gCAAgC,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,yCAA0C,kDAAkD,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,eAAgB,eAAe,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,kBAAkB,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,+BAA+B,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,8DAA8D,GAAK,CAAE,MAAS,6DAA8D,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,sBAAsB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,uEAAuE,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,cAAc,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,4CAA4C,GAAK,CAAE,MAAS,oBAAqB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,+CAA+C,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,uBAAuB,GAAK,CAAE,MAAS,qBAAsB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,sBAAuB,sBAAsB,GAAK,CAAE,MAAS,iBAAkB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,oGAAoG,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,4IAA4I,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,6DAA6D,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,4BAA4B,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,wCAAwC,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,KAAK,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,iBAAkB,gBAAgB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,GAAK,CAAE,MAAS,kCAAmC,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,sBAAsB,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,aAAa,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,4FAA4F,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,2EAA2E,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,aAAc,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,wCAAwC,GAAK,CAAE,MAAS,oBAAqB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,+DAA+D,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,iCAAiC,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,yCAA0C,OAAU,CAAC,mCAAmC,GAAK,CAAE,MAAS,wCAAyC,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,sCAAuC,OAAU,CAAC,wCAAwC,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,sBAAuB,sBAAsB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,sEAAsE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,kEAAkE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,gBAAiB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,4BAA4B,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,gBAAgB,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,cAAe,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,iDAAkD,OAAU,CAAC,0DAA0D,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,+BAA+B,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,8EAA8E,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,uDAAuD,GAAK,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,wBAAyB,yBAA0B,wBAAwB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,sCAAuC,wCAAyC,sCAAsC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,GAAK,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,qBAAsB,sBAAuB,sBAAsB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,6CAA6C,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,8BAA8B,GAAK,CAAE,MAAS,kBAAmB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,0BAA2B,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,kEAAkE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,kEAAkE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,oEAAoE,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,mFAAmF,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,wBAAwB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,sDAAsD,GAAK,CAAE,MAAS,2BAA4B,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,wDAAwD,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,yBAAyB,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,qBAAsB,uBAAwB,sBAAsB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,6GAA6G,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,wIAAwI,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,yCAAyC,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,iEAAiE,GAAK,CAAE,MAAS,oEAAqE,OAAU,CAAC,qEAAqE,CAAC,CAAE,GAAK,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,oCAAoC,GAAK,CAAE,MAAS,mEAAoE,OAAU,CAAC,sFAAsF,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,gEAAgE,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,uBAAwB,sBAAuB,sBAAuB,sBAAuB,qBAAqB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,mCAAoC,oCAAqC,oCAAqC,oCAAqC,mCAAmC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,sBAAuB,uBAAwB,uBAAwB,uBAAwB,sBAAsB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,0CAA0C,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,yCAAyC,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,yBAAyB,GAAK,CAAE,MAAS,kBAAmB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,6EAA6E,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,qEAAqE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,6DAA6D,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,4FAA4F,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,oEAAoE,GAAK,CAAE,MAAS,2BAA4B,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,wDAAwD,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,0CAA0C,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,oBAAoB,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,iBAAkB,kBAAmB,kBAAmB,kBAAmB,iBAAiB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,sGAAsG,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,uJAAuJ,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,gEAAgE,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,uFAAuF,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,mDAAmD,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,gFAAgF,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,0BAA2B,0BAA0B,GAAK,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,uCAAwC,uCAAuC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,uBAAwB,uBAAuB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,0BAA2B,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,4DAA6D,OAAU,CAAC,sEAAsE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,uEAAuE,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,0DAA0D,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,2FAA2F,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,4DAA4D,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,8CAA8C,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,aAAc,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,uBAAuB,GAAK,CAAE,MAAS,cAAe,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,qBAAsB,qBAAqB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,6DAA6D,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,gHAAgH,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,yIAAyI,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,sCAAsC,GAAK,CAAE,MAAS,oDAAqD,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,kFAAkF,EAAG,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,iEAAiE,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,4BAA6B,4BAA6B,2BAA2B,GAAK,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,gCAAiC,iCAAkC,gCAAgC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,sBAAuB,sBAAuB,qBAAqB,GAAK,CAAE,MAAS,UAAW,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,oEAAoE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,gEAAgE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,2EAA2E,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,2CAA4C,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,8BAA8B,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,0BAA0B,GAAK,CAAE,MAAS,eAAgB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,yBAAyB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,uBAAwB,uBAAwB,sBAAsB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,iEAAiE,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,oGAAoG,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,+GAA+G,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,6CAA6C,GAAK,CAAE,MAAS,oCAAqC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,kCAAkC,GAAK,CAAE,MAAS,oDAAqD,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,0EAA0E,EAAG,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,qEAAqE,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,iBAAkB,gBAAgB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,kCAAmC,iCAAiC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,4BAA4B,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,qBAAqB,GAAK,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,uBAAwB,sBAAsB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,2CAA2C,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,kBAAkB,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,4DAA4D,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,wDAAwD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,qFAAqF,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,YAAY,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,GAAK,CAAE,MAAS,2CAA4C,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,8BAA8B,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,2BAA2B,GAAK,CAAE,MAAS,eAAgB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,2CAA2C,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,oBAAqB,mBAAmB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,6DAA6D,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,4FAA4F,GAAK,CAAE,MAAS,yIAA0I,OAAU,CAAC,2HAA2H,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,kCAAkC,GAAK,CAAE,MAAS,8CAA+C,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,4BAA4B,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,yDAAyD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,8EAA8E,CAAC,CAAE,GAAK,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,sDAAsD,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,iBAAkB,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,sFAAsF,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,sEAAsE,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,0CAA0C,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,iDAAkD,OAAU,CAAC,sEAAsE,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,iFAAiF,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,+DAA+D,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,8BAA8B,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,8BAA+B,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,gBAAiB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,UAAW,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,kCAAmC,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,yEAAyE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,qEAAqE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,wDAAwD,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,uFAAwF,OAAU,CAAC,qFAAqF,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,0BAA0B,GAAK,CAAE,MAAS,gBAAiB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,6CAA6C,GAAK,CAAE,MAAS,WAAY,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,2CAA4C,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,0BAA0B,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,wCAAwC,GAAK,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,sDAAsD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,8BAA8B,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,+DAA+D,GAAK,CAAE,MAAS,iGAAkG,OAAU,CAAC,wFAAwF,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,sHAAsH,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,mDAAmD,GAAK,CAAE,MAAS,oCAAqC,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,8EAA8E,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,gBAAiB,gBAAgB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,0DAA0D,GAAK,CAAE,MAAS,6DAA8D,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,GAAK,CAAE,MAAS,+BAAgC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,WAAY,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,uDAAuD,EAAG,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,+DAA+D,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,mDAAmD,GAAK,CAAE,MAAS,wCAAyC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,8EAA8E,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,uBAAwB,uBAAwB,sBAAsB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,oCAAqC,oCAAqC,mCAAmC,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,8BAA+B,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,iBAAkB,iBAAkB,gBAAgB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,kCAAmC,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,+CAA+C,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,0EAA0E,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,0EAA0E,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,wDAAwD,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,yFAAyF,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,qCAAqC,GAAK,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,2CAA4C,OAAU,CAAC,gEAAgE,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,4DAA4D,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,sBAAsB,GAAK,CAAE,MAAS,4BAA6B,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,8BAA8B,GAAK,CAAE,MAAS,eAAgB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,kCAAkC,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,gBAAiB,gBAAiB,eAAe,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,gEAAgE,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,kHAAkH,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,2JAA2J,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,+CAA+C,GAAK,CAAE,MAAS,oCAAqC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,kCAAkC,GAAK,CAAE,MAAS,oDAAqD,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,+EAA+E,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,oCAAoC,GAAK,CAAE,MAAS,6DAA8D,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,GAAK,CAAE,MAAS,gDAAiD,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,kBAAmB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,iBAAiB,GAAK,CAAE,MAAS,qBAAsB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,aAAa,GAAK,CAAE,MAAS,cAAe,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,iDAAkD,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,wCAAwC,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,iCAAiC,GAAK,CAAE,MAAS,wCAAyC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,+CAA+C,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,gBAAgB,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,kBAAmB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,0BAA2B,OAAU,CAAC;AAAA,EAAqB,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,GAAG,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,2BAA2B,GAAK,CAAE,MAAS,2BAA4B,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,kCAAkC,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,GAAK,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,iDAAkD,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,0CAA0C,GAAK,CAAE,MAAS,yIAA0I,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,8CAA+C,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,sCAAsC,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,cAAc,GAAK,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,qBAAsB,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,YAAY,GAAK,CAAE,MAAS,4DAA6D,OAAU,CAAC,oEAAoE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,kEAAkE,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,kCAAkC,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,6BAA6B,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,iDAAkD,OAAU,CAAC,6DAA6D,CAAC,CAAE,GAAK,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,oEAAoE,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,kCAAkC,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,8BAA+B,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,UAAW,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,cAAc,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,gEAAgE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,4CAA4C,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,uFAAwF,OAAU,CAAC,sEAAsE,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,sBAAsB,GAAK,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,GAAK,CAAE,MAAS,4CAA6C,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,oBAAoB,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,mFAAmF,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,wGAAwG,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,wDAAwD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,qEAAqE,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,+CAA+C,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,mFAAmF,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,gEAAgE,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,uBAAwB,uBAAwB,uBAAwB,sBAAsB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,iCAAkC,iCAAkC,iCAAkC,gCAAgC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,aAAa,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,6BAA6B,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,sBAAuB,uBAAwB,sBAAuB,qBAAqB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,sBAAsB,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,iCAAiC,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,6EAA6E,GAAK,CAAE,MAAS,6DAA8D,OAAU,CAAC,gEAAgE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,4DAA4D,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,oFAAoF,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,gCAAgC,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,gCAAgC,GAAK,CAAE,MAAS,MAAO,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,iBAAiB,GAAK,CAAE,MAAS,kBAAmB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,qBAAsB,sBAAuB,qBAAsB,oBAAoB,GAAK,CAAE,MAAS,iBAAkB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,6DAA6D,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,8GAA8G,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,wHAAwH,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,uEAAuE,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,sCAAsC,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,8CAA8C,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,sBAAuB,sBAAuB,sBAAsB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,qCAAqC,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,4DAA6D,OAAU,CAAC,oEAAoE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,+DAA+D,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,sBAAsB,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,yBAAyB,GAAK,CAAE,MAAS,eAAgB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,0BAA0B,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,yDAAyD,CAAC,CAAE,GAAK,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,iEAAiE,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,0BAA2B,0BAA0B,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,uCAAwC,uCAAuC,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,8BAA+B,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,gBAAiB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,qBAAsB,oBAAoB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,gCAAgC,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,8CAA8C,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,wEAAwE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,uEAAuE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,wFAAwF,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,4DAA4D,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,gCAAgC,GAAK,CAAE,MAAS,qBAAsB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,qCAAqC,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,cAAc,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,wBAAyB,uBAAuB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,aAAa,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,mDAAmD,GAAK,CAAE,MAAS,iGAAkG,OAAU,CAAC,4FAA4F,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,0HAA0H,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,2EAA2E,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,0EAA0E,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,6EAA6E,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,iCAAiC,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,gEAAgE,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,yCAA0C,OAAU,CAAC,qCAAqC,GAAK,CAAE,MAAS,wCAAyC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,sCAAuC,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,sDAAsD,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,cAAe,eAAe,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,+BAA+B,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,gBAAiB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,uBAAuB,GAAK,CAAE,MAAS,eAAgB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,2BAA2B,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,cAAc,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,oCAAoC,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,uEAAuE,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,4BAA6B,kCAAkC,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,uCAAwC,uCAAuC,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,8BAA+B,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,kBAAmB,mBAAmB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,YAAY,GAAK,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,8BAA8B,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,qEAAqE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,0EAA0E,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,uGAAuG,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,iBAAiB,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,yCAAyC,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,8BAA8B,GAAK,CAAE,MAAS,qBAAsB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,oCAAoC,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,sBAAuB,uBAAuB,GAAK,CAAE,MAAS,iBAAkB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,kDAAkD,GAAK,CAAE,MAAS,iGAAkG,OAAU,CAAC,qGAAqG,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,mJAAmJ,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,qEAAqE,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,yCAAyC,GAAK,CAAE,MAAS,mEAAoE,OAAU,CAAC,6EAA6E,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,0DAA0D,GAAK,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,iBAAkB,qBAAsB,qBAAsB,oBAAoB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,kCAAmC,mCAAoC,mCAAoC,kCAAkC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,kBAAmB,mBAAoB,oBAAqB,mBAAmB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,0EAA0E,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,yEAAyE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,GAAK,CAAE,MAAS,gDAAiD,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,sBAAsB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,oFAAoF,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,uCAAuC,GAAK,CAAE,MAAS,2BAA4B,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,oCAAoC,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,cAAc,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,gBAAiB,kBAAmB,kBAAmB,iBAAiB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,4DAA4D,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,4GAA4G,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,2JAA2J,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,2BAA2B,GAAK,CAAE,MAAS,oDAAqD,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,wEAAwE,EAAG,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,sDAAsD,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,sEAAsE,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,sBAAuB,2BAA4B,uBAAuB,GAAK,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,sCAAuC,2CAA4C,uCAAuC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,sBAAuB,uBAAwB,sBAAsB,GAAK,CAAE,MAAS,UAAW,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,qEAAqE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,oEAAoE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,sDAAsD,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,uFAAwF,OAAU,CAAC,6FAA6F,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,yBAAyB,GAAK,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,GAAK,CAAE,MAAS,4CAA6C,OAAU,CAAC,6DAA6D,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,+BAA+B,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,qBAAsB,yBAA0B,qBAAqB,GAAK,CAAE,MAAS,iBAAkB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,aAAa,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,oEAAoE,GAAK,CAAE,MAAS,iGAAkG,OAAU,CAAC,4GAA4G,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,wIAAwI,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,8DAA8D,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,+EAA+E,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,sDAAsD,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,wCAAwC,GAAK,CAAE,MAAS,mEAAoE,OAAU,CAAC,wEAAwE,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,oDAAoD,GAAK,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,0BAA2B,2BAA4B,0BAA0B,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,uCAAwC,wCAAyC,uCAAuC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,oBAAoB,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,0BAA0B,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,iBAAiB,GAAK,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,sBAAuB,uBAAwB,sBAAsB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,0DAA0D,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,+BAA+B,GAAK,CAAE,MAAS,kBAAmB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,GAAK,CAAE,MAAS,0BAA2B,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,qEAAqE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,sEAAsE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,8FAA8F,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,6CAA6C,GAAK,CAAE,MAAS,2BAA4B,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,4CAA4C,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,kEAAkE,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,oBAAoB,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,sBAAuB,uBAAwB,sBAAsB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,8DAA8D,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,kHAAkH,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,wIAAwI,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,oCAAoC,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,4DAA4D,GAAK,CAAE,MAAS,oEAAqE,OAAU,CAAC,gFAAgF,CAAC,CAAE,GAAK,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,kBAAmB,mBAAoB,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,4DAA6D,OAAU,CAAC,uEAAuE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,wEAAwE,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,iCAAiC,GAAK,CAAE,MAAS,eAAgB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,qCAAqC,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,iDAAkD,OAAU,CAAC,qEAAqE,CAAC,CAAE,GAAK,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,uEAAuE,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,oBAAqB,sBAAuB,uBAAwB,sBAAsB,GAAK,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,iCAAkC,kCAAmC,mCAAoC,kCAAkC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,kBAAmB,mBAAoB,oBAAqB,mBAAmB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,yBAAyB,GAAK,CAAE,MAAS,kCAAmC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,uCAAuC,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,4EAA4E,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,sEAAsE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,4EAA4E,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,sCAAsC,GAAK,CAAE,MAAS,WAAY,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,aAAa,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,GAAK,CAAE,MAAS,2CAA4C,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,oBAAoB,GAAK,CAAE,MAAS,4BAA6B,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,yBAAyB,GAAK,CAAE,MAAS,eAAgB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,iCAAiC,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,qBAAsB,sBAAuB,uBAAwB,sBAAsB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,mEAAmE,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,uFAAuF,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,6HAA6H,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,yCAAyC,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,kDAAkD,GAAK,CAAE,MAAS,oEAAqE,OAAU,CAAC,sEAAsE,CAAC,CAAE,GAAK,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,wEAAwE,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,sBAAuB,uBAAwB,wBAAyB,sBAAsB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,kCAAmC,mCAAoC,oCAAqC,mCAAmC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,mBAAoB,oBAAqB,uBAAwB,sBAAsB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,0CAA0C,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,oBAAoB,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,iEAAiE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,gEAAgE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,qFAAqF,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,2CAA4C,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,yBAAyB,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,sDAAsD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,2BAA2B,GAAK,CAAE,MAAS,eAAgB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,iCAAiC,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,qBAAsB,sBAAuB,uBAAwB,qBAAqB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,qEAAqE,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,6FAA6F,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,wHAAwH,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,kDAAkD,GAAK,CAAE,MAAS,oEAAqE,OAAU,CAAC,4EAA4E,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,qBAAsB,qBAAsB,oBAAqB,mBAAmB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,iCAAiC,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,uCAAuC,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,6BAA6B,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,4EAA4E,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,6EAA6E,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,0DAA0D,GAAK,CAAE,MAAS,oBAAqB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,qBAAsB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,aAAa,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,6DAA6D,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,yCAA0C,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,sCAAuC,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,aAAa,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,oBAAqB,qBAAsB,sBAAsB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,0BAA2B,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,4DAA6D,OAAU,CAAC,sEAAsE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,oEAAoE,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,aAAa,GAAK,CAAE,MAAS,kBAAmB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,4CAA6C,OAAU,CAAC,wDAAwD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,qBAAqB,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,wDAAwD,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,mCAAmC,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,WAAY,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,uCAAuC,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,iDAAiD,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,oBAAqB,qBAAsB,sBAAsB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,0CAA0C,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,4DAA6D,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,qBAAqB,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,sBAAsB,GAAK,CAAE,MAAS,eAAgB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,6BAA6B,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,0DAA0D,CAAC,CAAE,GAAK,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,gEAAgE,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,uBAAwB,wBAAwB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,mCAAoC,oCAAoC,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,8BAA+B,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,gBAAiB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,cAAe,eAAe,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,iCAAiC,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,0BAA0B,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,oEAAoE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,8DAA8D,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,kGAAkG,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,yBAAyB,GAAK,CAAE,MAAS,qBAAsB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,4BAA4B,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,oBAAqB,qBAAqB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,aAAa,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,8DAA8D,GAAK,CAAE,MAAS,iGAAkG,OAAU,CAAC,mGAAmG,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,mHAAmH,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,iEAAiE,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,gFAAgF,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,+DAA+D,GAAK,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,qBAAsB,oBAAoB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,wCAAyC,uCAAuC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,cAAc,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,qBAAqB,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,cAAc,GAAK,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,iBAAkB,gBAAgB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,wBAAwB,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,gEAAgE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,wEAAwE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,kEAAkE,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,GAAK,CAAE,MAAS,2CAA4C,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,gBAAgB,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,oCAAoC,GAAK,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,2BAA2B,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,kBAAmB,iBAAiB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,yDAAyD,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,gFAAgF,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,iHAAiH,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,sCAAsC,GAAK,CAAE,MAAS,8CAA+C,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,+BAA+B,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,uCAAuC,GAAK,CAAE,MAAS,oEAAqE,OAAU,CAAC,8DAA8D,CAAC,CAAE,GAAK,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,qEAAqE,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,iEAAiE,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,qBAAsB,sBAAuB,uBAAwB,sBAAsB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,0CAA2C,2CAA4C,4CAA6C,2CAA2C,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,wBAAwB,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,GAAK,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,kBAAmB,mBAAoB,oBAAqB,mBAAmB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,oBAAoB,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,+BAA+B,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,oEAAoE,GAAK,CAAE,MAAS,6DAA8D,OAAU,CAAC,qEAAqE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,uDAAuD,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,yEAAyE,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,aAAa,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,6BAA6B,GAAK,CAAE,MAAS,oBAAqB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,4CAA4C,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,qBAAsB,sBAAuB,uBAAwB,sBAAsB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,iBAAiB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,uDAAuD,GAAK,CAAE,MAAS,iGAAkG,OAAU,CAAC,qFAAqF,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,oIAAoI,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,sEAAsE,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,2EAA2E,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,sDAAsD,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,cAAc,GAAK,CAAE,MAAS,4DAA6D,OAAU,CAAC,gEAAgE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,gEAAgE,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,sDAAsD,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,6FAA6F,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,aAAc,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,iBAAiB,GAAK,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,GAAK,CAAE,MAAS,4CAA6C,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,6BAA6B,GAAK,CAAE,MAAS,iBAAkB,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,kBAAkB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,yDAAyD,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,uFAAuF,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,gHAAgH,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,sDAAsD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,iFAAiF,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,uCAAuC,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,2CAA2C,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,gBAAiB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,aAAa,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,uBAAuB,GAAK,CAAE,MAAS,kCAAmC,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,+BAA+B,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,kEAAkE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,+DAA+D,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,aAAa,GAAK,CAAE,MAAS,kBAAmB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,GAAK,CAAE,MAAS,4CAA6C,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,iBAAiB,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,gEAAgE,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,oBAAqB,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,IAAI,GAAK,CAAE,MAAS,qBAAsB,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,iBAAiB,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,uBAAuB,GAAK,CAAE,MAAS,6DAA8D,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,gDAAiD,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,MAAO,OAAU,CAAC,GAAG,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,kBAAmB,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,KAAK,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,qBAAqB,GAAK,CAAE,MAAS,oCAAqC,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,oDAAqD,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,uBAAuB,EAAG,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,oCAAqC,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,sCAAuC,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,sBAAuB,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,uBAAuB,GAAK,CAAE,MAAS,6DAA8D,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,GAAG,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,GAAG,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,IAAI,GAAK,CAAE,MAAS,qBAAsB,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,IAAI,GAAK,CAAE,MAAS,iDAAkD,OAAU,CAAC,gBAAgB,CAAC,CAAE,CAAC,CAAE,EAAG,CACrz+Q,KAAM,CAAE,SAAAC,EAAU,aAAAC,CAAY,EAAKF,EAC7BG,EAAS,CACb,QAAS,GACT,aAAc,CACZ,GAAI,OAAO,YAAYD,EAAa,IAAKE,GAAgB,CAACA,EAAY,MAAOA,CAAW,CAAC,CAAC,CAChG,CACA,EACEN,EAAU,eAAeG,EAAUE,CAAM,CAC3C,CACA,MAAME,EAAKP,EAAU,MAAK,EACpBQ,EAAID,EAAG,SAAS,KAAKA,CAAE,EACvBE,EAAIF,EAAG,QAAQ,KAAKA,CAAE,EAKtBG,EAASC,EAAgB,EAAG,OAAO,oBAAoB,EAAE,eAAc,EAAG,MAAK,EASrF,MAAMC,UAAyB,KAAM,CACrC,CACA,MAAMC,EAAW,CACf,MACA,YACA,eACA,mBACA,OACA,QACA,KACA,OACA,QACA,UACA,mBACA,YAAYC,EAAOC,EAAaC,EAAgBC,EAAoBC,EAAQC,EAASC,EAAMC,EAAQC,EAASC,EAAWC,EAAqB,GAAO,CACjJ,KAAK,MAAQV,EACb,KAAK,YAAcC,EACnB,KAAK,eAAiBC,EACtB,KAAK,mBAAqBC,EAC1B,KAAK,OAASC,EACd,KAAK,KAAOE,EACZ,KAAK,OAASC,EACd,KAAK,QAAUC,EACf,KAAK,QAAUH,EACf,KAAK,UAAYI,EACjB,KAAK,mBAAqBC,CAC5B,CAMA,MAAM,WAAY,CAChB,KAAM,CAAE,QAASC,CAAa,EAAK,MAAKC,EAAA,wBAAAD,CAAA,OAAC,QAAO,0CAA2B,iBAAAA,CAAA,wJACrEE,EAAQ,MAAMC,EAAYH,EAAe,CAC7C,mBAAoB,KAAK,mBACzB,OAAQ,KAAK,OACb,QAAS,KAAK,QACd,KAAM,KAAK,MACX,KAAM,KAAK,KACX,eAAgB,KAAK,eACrB,YAAa,KAAK,YAClB,SAAU,KAAK,OACf,UAAW,KAAK,QAChB,mBAAoB,KAAK,kBAC/B,EAAO,CACD,UAAW,KAAK,SACtB,CAAK,EACD,GAAI,CAAC,MAAM,QAAQE,CAAK,GAAKA,EAAM,SAAW,EAC5C,MAAM,IAAIf,EAAiB,+BAA+B,EAE5D,OAAOe,CACT,CAMA,MAAM,MAAO,CACX,MAAMA,EAAQ,MAAM,KAAK,UAAS,EAClC,OAAI,KAAK,YACAA,EAAM,IAAKE,GAASA,EAAK,IAAI,EAEzBF,EAAM,CAAC,GAAG,MAAQ,GAEjC,CACF,CACA,MAAMG,EAAkB,CACtB,MACA,YAAc,GACd,eAAiB,GACjB,mBAAqB,GACrB,OAAS,GACT,KACA,OACA,QACA,QAAU,GACV,UACA,mBAAqB,GAMrB,YAAYhB,EAAO,CACjB,KAAK,MAAQA,CACf,CAOA,aAAaS,EAAW,CACtB,YAAK,UAAYA,EACV,IACT,CAMA,eAAeQ,EAAI,CACjB,YAAK,YAAcA,EACZ,IACT,CAMA,kBAAkBV,EAAQ,CACxB,YAAK,eAAe,KAAKA,CAAM,EACxB,IACT,CAMA,kBAAkBA,EAAQ,CACxB,YAAK,eAAiBA,EACf,IACT,CAOA,UAAUW,EAAQ,CAChB,OAAI,OAAO,KAAK,SAAY,aAC1BtB,EAAO,KAAK,6EAA6E,EACzF,KAAK,QAAU,IAEjB,KAAK,QAAQ,KAAKsB,CAAM,EACjB,IACT,CAOA,iBAAiBpE,EAAS,CACxB,YAAK,QAAUA,EACR,IACT,CAOA,QAAQqE,EAAM,CACZ,YAAK,QAAU,CAACN,EAAOP,IAAS,CAC9B,MAAMD,EAAU,GAEVe,EADOP,EAAM,CAAC,GACC,aAAeQ,EAASf,CAAI,EACjD,GAAIa,IAAS,EAAG,CACd,IAAIG,EAAQ3B,EAAE,QAAQ,EAClBkB,EAAM,SAAW,EACnBS,EAAQ3B,EAAE,gBAAiB,CAAE,KAAMyB,CAAM,CAAE,EAClC,KAAK,cACdE,EAAQ5B,EAAE,iBAAkB,kBAAmBmB,EAAM,MAAM,GAE7DR,EAAQ,KAAK,CACX,SAAU,IAAM,CAChB,EACA,MAAAiB,EACA,QAAS,SACnB,CAAS,CACH,CACA,OAAIH,IAAS,GAAKA,IAAS,IACzBd,EAAQ,KAAK,CACX,SAAU,IAAM,CAChB,EACA,MAAOe,EAASzB,EAAE,mBAAoB,CAAE,OAAAyB,EAAQ,EAAIzB,EAAE,MAAM,EAC5D,KAAMV,EACN,QAASkC,IAAS,EAAI,UAAY,WAC5C,CAAS,GAECA,IAAS,GAAKA,IAAS,IACzBd,EAAQ,KAAK,CACX,SAAU,IAAM,CAChB,EACA,MAAOe,EAASzB,EAAE,mBAAoB,CAAE,OAAAyB,EAAQ,EAAIzB,EAAE,MAAM,EAC5D,KAAMX,EACN,QAAS,SAEnB,CAAS,EAEIqB,CACT,EACO,IACT,CAMA,iBAAiBkB,EAAQ,GAAM,CAC7B,YAAK,mBAAqBA,EACnB,IACT,CAMA,UAAUnB,EAAS,GAAM,CACvB,YAAK,OAASA,EACP,IACT,CAMA,QAAQE,EAAM,CACZ,YAAK,KAAOA,EACL,IACT,CAMA,UAAUC,EAAQ,CAChB,YAAK,OAASA,EACP,IACT,CAMA,WAAWC,EAAS,CAClB,YAAK,QAAUA,EACR,IACT,CAIA,mBAAoB,CAClB,YAAK,mBAAqB,GACnB,IACT,CAIA,OAAQ,CACN,OAAO,IAAIT,GACT,KAAK,MACL,KAAK,YACL,KAAK,eACL,KAAK,mBACL,KAAK,OACL,KAAK,QACL,KAAK,KACL,KAAK,OACL,KAAK,QACL,KAAK,UACL,KAAK,kBACX,CACE,CACF,CACA,SAASyB,GAAqBxB,EAAO,CACnC,OAAO,IAAIgB,GAAkBhB,CAAK,CACpC,CAQA,MAAMyB,GAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUZC,GAAsB,MACtBC,GAAyB,SACzBC,GAA4B,YAClC,IAAIC,GAAkCC,IACpCA,EAAeA,EAAe,IAASJ,EAAmB,EAAI,MAC9DI,EAAeA,EAAe,OAAYH,EAAsB,EAAI,SACpEG,EAAeA,EAAe,UAAeF,EAAyB,EAAI,YACnEE,IACND,GAAiB,EAAE,EACjB,MAACE,GAAqB,IACrBC,GAAwB,IACxBC,GAA0B,GAChC,SAASC,EAAY9C,EAAMjC,EAAS,CAalC,GAZAA,EAAU,CACR,QAAS6E,GACT,OAAQ,GACR,KAAM,OAEN,SAAU,OACV,SAAU,IAAM,CAChB,EACA,QAAS,OACT,MAAO,GACP,GAAG7E,CACP,EACM,OAAOiC,GAAS,UAAY,CAACjC,EAAQ,OAAQ,CAC/C,MAAMgF,EAAU,SAAS,cAAc,KAAK,EAC5CA,EAAQ,UAAY/C,EACpBA,EAAO+C,EAAQ,SACjB,CACA,IAAIC,EAAUjF,EAAQ,MAAQ,GAC1B,OAAOA,EAAQ,SAAY,aAC7BiF,GAAW,sBAEb,MAAMC,EAASjD,aAAgB,KAC/B,IAAIkD,EAAWT,EAAc,OACzB1E,EAAQ,SACVmF,EAAWnF,EAAQ,UACVA,EAAQ,OAAS,eAAiBA,EAAQ,OAAS,gBAC5DmF,EAAWT,EAAc,WAE3B,MAAMU,EAAQrF,EAAS,CACrB,CAAEmF,EAAkB,OAAT,MAAe,EAAGjD,EAC7B,SAAUjC,EAAQ,QAClB,SAAUA,EAAQ,SAClB,QAASA,EAAQ,QACjB,MAAOA,EAAQ,MACf,QAAS,MACT,SAAUA,EAAQ,SAClB,SAAU,QACV,gBAAiB,GACjB,UAAW,WAAaiF,EACxB,aAAc,CAACjF,EAAQ,OACvB,SAAAmF,CACJ,CAAG,EACD,OAAAC,EAAM,UAAS,EACRA,CACT,CACA,SAASC,GAAUC,EAAMtF,EAAS,CAChC,OAAO+E,EAAYO,EAAM,CACvB,GAAGtF,EACH,KAAM,aAEV,CAAG,CACH,CACA,SAASuF,GAAYD,EAAMtF,EAAS,CAClC,OAAO+E,EAAYO,EAAM,CACvB,GAAGtF,EACH,KAAM,eAEV,CAAG,CACH,CACA,SAASwF,GAASF,EAAMtF,EAAS,CAC/B,OAAO+E,EAAYO,EAAM,CACvB,GAAGtF,EACH,KAAM,YAEV,CAAG,CACH,CACA,SAASyF,GAAYH,EAAMtF,EAAS,CAClC,OAAO+E,EAAYO,EAAM,CACvB,GAAGtF,EACH,KAAM,eAEV,CAAG,CACH,CACA,SAAS0F,GAAYJ,EAAMtF,EAAS,CAClC,MAAM2F,EAAS,SAAS,cAAc,MAAM,EAC5CA,EAAO,UAAYrB,GACnBqB,EAAO,UAAU,IAAI,cAAc,EACnC,MAAMC,EAAgB,SAAS,cAAc,MAAM,EACnD,OAAAA,EAAc,UAAU,IAAI,wBAAwB,EACpDA,EAAc,UAAYN,EAC1BM,EAAc,YAAYD,CAAM,EACzBZ,EAAYa,EAAe,CAChC,GAAG5F,EACH,MAAO,GACP,QAAS8E,GACT,KAAM,eAEV,CAAG,CACH,CACA,SAASe,GAASP,EAAMQ,EAAQ9F,EAAS,CACvC,GAAI,EAAE8F,aAAkB,UACtB,MAAM,IAAI,MAAM,sCAAsC,EAExD9F,EAAU,OAAO,OAAOA,GAAW,GAAI,CAErC,QAAS4E,EACb,CAAG,EACD,MAAMmB,EAAc,SAAS,cAAc,MAAM,EAC3CC,EAAa,SAAS,cAAc,QAAQ,EAClDD,EAAY,UAAU,IAAI,sBAAsB,EAChDC,EAAW,UAAU,IAAI,mBAAmB,EAC5CA,EAAW,UAAYxD,EAAE,MAAM,EAC/BuD,EAAY,UAAYT,EACxBS,EAAY,YAAYC,CAAU,EAClC,MAAMZ,EAAQL,EAAYgB,EAAa,CACrC,GAAG/F,EACH,KAAM,YAEV,CAAG,EACD,OAAAgG,EAAW,iBAAiB,QAAS,SAAS1F,EAAO,CACnDA,EAAM,gBAAe,EACrBwF,EAAOxF,CAAK,EACR8E,GAAO,qBAAqB,UAC9BA,EAAM,UAAS,CAEnB,CAAC,EACMA,CACT,CACA,MAAMa,GAAa,CAAC,aAAa,EAC3BC,GAAa,CAAC,WAAW,EACzBC,GAA4BC,EAAgB,CAChD,OAAQ,gBACR,MAAO,CACL,KAAM,GACN,KAAM,GACN,KAAM,GACN,QAAS,GACT,SAAU,EACd,EACE,MAAO,CAAC,OAAO,EACf,MAAMC,EAAS,CAAE,KAAMC,CAAM,EAAI,CAC/B,MAAMC,EAAQF,EACRG,EAAOF,EACPG,EAAgBC,EAAS,IAAMH,EAAM,SAAS,IAAKxC,IAAY,CACnE,GAAGA,EACH,UAAW,CACTA,EAAO,SAAQ,EACfyC,EAAK,QAAS,EAAI,CACpB,CACN,EAAM,CAAC,EACGG,EAAe,IAAM,GAAGJ,EAAM,IAAI,KAAKA,EAAM,IAAI,GACvD,OAAAK,EAAU,IAAM,OAAO,iBAAiB,SAAUD,CAAY,CAAC,EAC/DE,EAAY,IAAM,OAAO,oBAAoB,SAAUF,CAAY,CAAC,EAC7D,CAACG,EAAMC,KACLC,EAAS,EAAIC,EAAYC,EAAMC,CAAQ,EAAG,CAC/C,cAAe,oBACf,QAASV,EAAc,MACvB,KAAMJ,EAAQ,KACd,QAASA,EAAQ,KACjB,gBAAiBU,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKK,GAAWN,EAAK,MAAM,QAAS,EAAK,EACxF,EAAS,CACD,QAASO,EAAQ,IAAM,CACrBhB,EAAQ,UAAYW,EAAS,EAAIC,EAAYC,EAAMI,CAAU,EAAG,CAC9D,IAAK,EACL,KAAMjB,EAAQ,QAC1B,EAAa,CACD,QAASgB,EAAQ,IAAM,CACrBE,EAAmB,IAAK,CACtB,YAAaC,EAAgBnB,EAAQ,IAAI,CACzD,EAAiB,KAAM,EAAGJ,EAAU,CACpC,CAAa,EACD,EAAG,CACf,EAAa,EAAG,CAAC,MAAM,CAAC,GAAKwB,EAAmB,GAAI,EAAI,EAC9CpB,EAAQ,MAAQW,IAAaU,EAAmB,MAAO,CACrD,IAAK,EACL,UAAWrB,EAAQ,IAC/B,EAAa,KAAM,EAAGH,EAAU,GAAKuB,EAAmB,GAAI,EAAI,CAChE,CAAS,EACD,EAAG,CACX,EAAS,EAAG,CAAC,UAAW,OAAQ,SAAS,CAAC,EAExC,CACF,CAAC,EACD,MAAME,CAAO,CACXC,GACAC,GACAC,GACAC,GACA,YAAYC,EAAM1C,EAAMpC,EAAU,GAAI+E,EAAU,CAC9C,KAAKL,GAAQI,EACb,KAAKH,GAAQvC,EACb,KAAKwC,GAAW5E,EAChB,KAAK6E,GAAYE,CACnB,CAMA,MAAM,MAAO,CAUX,GAAI,CATW,MAAMtE,EACnBwC,GACA,CACE,QAAS,KAAK2B,GACd,KAAM,KAAKF,GACX,KAAM,KAAKC,GACX,SAAU,KAAKE,EACvB,CACA,EAEM,MAAM,IAAI,MAAM,eAAe,CAEnC,CACF,CACA,MAAMG,EAAc,CAClBH,GACAF,GACAD,GACAE,GACA,YAAYE,EAAM,CAChB,KAAKD,GAAY,OACjB,KAAKF,GAAQ,GACb,KAAKD,GAAQI,GAAQ,GACrB,KAAKF,GAAW,EAClB,CAMA,QAAQE,EAAM,CACZ,YAAKJ,GAAQI,EACN,IACT,CAMA,QAAQ1C,EAAM,CACZ,YAAKuC,GAAQvC,EACN,IACT,CAMA,YAAY2C,EAAU,CACpB,YAAKF,GAAYE,EACV,IACT,CAMA,WAAW/E,EAAS,CAClB,OAAI,KAAK4E,GAAS,OAAS,GACzBrF,EAAO,KAAK,wFAAwF,EAEtG,KAAKqF,GAAW5E,EACT,IACT,CAMA,UAAUa,EAAQ,CAChB,YAAK+D,GAAS,KAAK/D,CAAM,EAClB,IACT,CACA,OAAQ,CACN,OAAO,IAAI4D,EAAO,KAAKC,GAAO,KAAKC,GAAO,KAAKC,GAAU,KAAKC,EAAS,CACzE,CACF,CACA,SAASI,GAAiBH,EAAM,CAC9B,OAAO,IAAIE,GAAcF,CAAI,CAC/B,CACA,eAAeI,GAAiBpI,EAAS,CACvCA,EAAU,CACR,aAAcwC,EAAE,SAAS,EACzB,GAAGxC,CACP,EACE,KAAM,CAAE,QAAAqI,EAAS,QAAAC,GAAY,QAAQ,cAAa,EAC5CpF,EAAU,CAAC,CACf,MAAOlD,EAAQ,aACf,QAAS,UACT,UAAW,CACTsI,EAAQ,EAAI,CACd,CACJ,CAAG,EACD,OAAItI,EAAQ,aACVkD,EAAQ,QAAQ,CACd,MAAOlD,EAAQ,YACf,UAAW,CACTsI,EAAQ,EAAK,CACf,CACN,CAAK,EAQH,MANe,IAAIX,EACjB3H,EAAQ,KACRA,EAAQ,KACRkD,EACAlD,EAAQ,QACZ,EACe,KAAI,EACVqI,CACT","names":["root","factory","module","this","global","Toastify","options","version","divElement","property","avatarElement","closeElement","event","width","self","x","getAxisOffsetAValue","y","xOffset","yOffset","rootElement","elementToInsert","toastElement","topLeftOffsetSize","topRightOffsetSize","offsetSize","allToasts","classUsed","i","containsClass","height","offset","axis","elem","yourClass","IconMove","IconCopy","gtBuilder","getGettextBuilder","data","language","translations","bundle","translation","gt","n","t","logger","getLoggerBuilder","FilePickerClosed","FilePicker","title","multiSelect","mimeTypeFilter","directoriesAllowed","noMenu","buttons","path","filter","canPick","container","disabledNavigation","FilePickerVue","__vitePreload","nodes","spawnDialog","node","FilePickerBuilder","ms","button","type","target","basename","label","allow","getFilePickerBuilder","LoaderSvg","TOAST_ARIA_LIVE_OFF","TOAST_ARIA_LIVE_POLITE","TOAST_ARIA_LIVE_ASSERTIVE","ToastAriaLive","ToastAriaLive2","TOAST_UNDO_TIMEOUT","TOAST_DEFAULT_TIMEOUT","TOAST_PERMANENT_TIMEOUT","showMessage","element","classes","isNode","ariaLive","toast","showError","text","showWarning","showInfo","showSuccess","showLoading","loader","loaderContent","showUndo","onUndo","undoContent","undoButton","_hoisted_1","_hoisted_2","_sfc_main","defineComponent","__props","__emit","props","emit","dialogButtons","computed","handleUnload","onMounted","onUnmounted","_ctx","_cache","openBlock","createBlock","unref","NcDialog","$event","withCtx","NcNoteCard","createElementVNode","toDisplayString","createCommentVNode","createElementBlock","Dialog","#name","#text","#buttons","#severity","name","severity","DialogBuilder","getDialogBuilder","showConfirmation","promise","resolve"],"ignoreList":[0,1],"sources":["../node_modules/toastify-js/src/toastify.js","../node_modules/@nextcloud/dialogs/dist/chunks/index-DL1yHC1K.mjs"],"sourcesContent":["/*!\n * Toastify js 1.12.0\n * https://github.com/apvarun/toastify-js\n * @license MIT licensed\n *\n * Copyright (C) 2018 Varun A P\n */\n(function(root, factory) {\n if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Toastify = factory();\n }\n})(this, function(global) {\n // Object initialization\n var Toastify = function(options) {\n // Returning a new init object\n return new Toastify.lib.init(options);\n },\n // Library version\n version = \"1.12.0\";\n\n // Set the default global options\n Toastify.defaults = {\n oldestFirst: true,\n text: \"Toastify is awesome!\",\n node: undefined,\n duration: 3000,\n selector: undefined,\n callback: function () {\n },\n destination: undefined,\n newWindow: false,\n close: false,\n gravity: \"toastify-top\",\n positionLeft: false,\n position: '',\n backgroundColor: '',\n avatar: \"\",\n className: \"\",\n stopOnFocus: true,\n onClick: function () {\n },\n offset: {x: 0, y: 0},\n escapeMarkup: true,\n ariaLive: 'polite',\n style: {background: ''}\n };\n\n // Defining the prototype of the object\n Toastify.lib = Toastify.prototype = {\n toastify: version,\n\n constructor: Toastify,\n\n // Initializing the object with required parameters\n init: function(options) {\n // Verifying and validating the input object\n if (!options) {\n options = {};\n }\n\n // Creating the options object\n this.options = {};\n\n this.toastElement = null;\n\n // Validating the options\n this.options.text = options.text || Toastify.defaults.text; // Display message\n this.options.node = options.node || Toastify.defaults.node; // Display content as node\n this.options.duration = options.duration === 0 ? 0 : options.duration || Toastify.defaults.duration; // Display duration\n this.options.selector = options.selector || Toastify.defaults.selector; // Parent selector\n this.options.callback = options.callback || Toastify.defaults.callback; // Callback after display\n this.options.destination = options.destination || Toastify.defaults.destination; // On-click destination\n this.options.newWindow = options.newWindow || Toastify.defaults.newWindow; // Open destination in new window\n this.options.close = options.close || Toastify.defaults.close; // Show toast close icon\n this.options.gravity = options.gravity === \"bottom\" ? \"toastify-bottom\" : Toastify.defaults.gravity; // toast position - top or bottom\n this.options.positionLeft = options.positionLeft || Toastify.defaults.positionLeft; // toast position - left or right\n this.options.position = options.position || Toastify.defaults.position; // toast position - left or right\n this.options.backgroundColor = options.backgroundColor || Toastify.defaults.backgroundColor; // toast background color\n this.options.avatar = options.avatar || Toastify.defaults.avatar; // img element src - url or a path\n this.options.className = options.className || Toastify.defaults.className; // additional class names for the toast\n this.options.stopOnFocus = options.stopOnFocus === undefined ? Toastify.defaults.stopOnFocus : options.stopOnFocus; // stop timeout on focus\n this.options.onClick = options.onClick || Toastify.defaults.onClick; // Callback after click\n this.options.offset = options.offset || Toastify.defaults.offset; // toast offset\n this.options.escapeMarkup = options.escapeMarkup !== undefined ? options.escapeMarkup : Toastify.defaults.escapeMarkup;\n this.options.ariaLive = options.ariaLive || Toastify.defaults.ariaLive;\n this.options.style = options.style || Toastify.defaults.style;\n if(options.backgroundColor) {\n this.options.style.background = options.backgroundColor;\n }\n\n // Returning the current object for chaining functions\n return this;\n },\n\n // Building the DOM element\n buildToast: function() {\n // Validating if the options are defined\n if (!this.options) {\n throw \"Toastify is not initialized\";\n }\n\n // Creating the DOM object\n var divElement = document.createElement(\"div\");\n divElement.className = \"toastify on \" + this.options.className;\n\n // Positioning toast to left or right or center\n if (!!this.options.position) {\n divElement.className += \" toastify-\" + this.options.position;\n } else {\n // To be depreciated in further versions\n if (this.options.positionLeft === true) {\n divElement.className += \" toastify-left\";\n console.warn('Property `positionLeft` will be depreciated in further versions. Please use `position` instead.')\n } else {\n // Default position\n divElement.className += \" toastify-right\";\n }\n }\n\n // Assigning gravity of element\n divElement.className += \" \" + this.options.gravity;\n\n if (this.options.backgroundColor) {\n // This is being deprecated in favor of using the style HTML DOM property\n console.warn('DEPRECATION NOTICE: \"backgroundColor\" is being deprecated. Please use the \"style.background\" property.');\n }\n\n // Loop through our style object and apply styles to divElement\n for (var property in this.options.style) {\n divElement.style[property] = this.options.style[property];\n }\n\n // Announce the toast to screen readers\n if (this.options.ariaLive) {\n divElement.setAttribute('aria-live', this.options.ariaLive)\n }\n\n // Adding the toast message/node\n if (this.options.node && this.options.node.nodeType === Node.ELEMENT_NODE) {\n // If we have a valid node, we insert it\n divElement.appendChild(this.options.node)\n } else {\n if (this.options.escapeMarkup) {\n divElement.innerText = this.options.text;\n } else {\n divElement.innerHTML = this.options.text;\n }\n\n if (this.options.avatar !== \"\") {\n var avatarElement = document.createElement(\"img\");\n avatarElement.src = this.options.avatar;\n\n avatarElement.className = \"toastify-avatar\";\n\n if (this.options.position == \"left\" || this.options.positionLeft === true) {\n // Adding close icon on the left of content\n divElement.appendChild(avatarElement);\n } else {\n // Adding close icon on the right of content\n divElement.insertAdjacentElement(\"afterbegin\", avatarElement);\n }\n }\n }\n\n // Adding a close icon to the toast\n if (this.options.close === true) {\n // Create a span for close element\n var closeElement = document.createElement(\"button\");\n closeElement.type = \"button\";\n closeElement.setAttribute(\"aria-label\", \"Close\");\n closeElement.className = \"toast-close\";\n closeElement.innerHTML = \"✖\";\n\n // Triggering the removal of toast from DOM on close click\n closeElement.addEventListener(\n \"click\",\n function(event) {\n event.stopPropagation();\n this.removeElement(this.toastElement);\n window.clearTimeout(this.toastElement.timeOutValue);\n }.bind(this)\n );\n\n //Calculating screen width\n var width = window.innerWidth > 0 ? window.innerWidth : screen.width;\n\n // Adding the close icon to the toast element\n // Display on the right if screen width is less than or equal to 360px\n if ((this.options.position == \"left\" || this.options.positionLeft === true) && width > 360) {\n // Adding close icon on the left of content\n divElement.insertAdjacentElement(\"afterbegin\", closeElement);\n } else {\n // Adding close icon on the right of content\n divElement.appendChild(closeElement);\n }\n }\n\n // Clear timeout while toast is focused\n if (this.options.stopOnFocus && this.options.duration > 0) {\n var self = this;\n // stop countdown\n divElement.addEventListener(\n \"mouseover\",\n function(event) {\n window.clearTimeout(divElement.timeOutValue);\n }\n )\n // add back the timeout\n divElement.addEventListener(\n \"mouseleave\",\n function() {\n divElement.timeOutValue = window.setTimeout(\n function() {\n // Remove the toast from DOM\n self.removeElement(divElement);\n },\n self.options.duration\n )\n }\n )\n }\n\n // Adding an on-click destination path\n if (typeof this.options.destination !== \"undefined\") {\n divElement.addEventListener(\n \"click\",\n function(event) {\n event.stopPropagation();\n if (this.options.newWindow === true) {\n window.open(this.options.destination, \"_blank\");\n } else {\n window.location = this.options.destination;\n }\n }.bind(this)\n );\n }\n\n if (typeof this.options.onClick === \"function\" && typeof this.options.destination === \"undefined\") {\n divElement.addEventListener(\n \"click\",\n function(event) {\n event.stopPropagation();\n this.options.onClick();\n }.bind(this)\n );\n }\n\n // Adding offset\n if(typeof this.options.offset === \"object\") {\n\n var x = getAxisOffsetAValue(\"x\", this.options);\n var y = getAxisOffsetAValue(\"y\", this.options);\n\n var xOffset = this.options.position == \"left\" ? x : \"-\" + x;\n var yOffset = this.options.gravity == \"toastify-top\" ? y : \"-\" + y;\n\n divElement.style.transform = \"translate(\" + xOffset + \",\" + yOffset + \")\";\n\n }\n\n // Returning the generated element\n return divElement;\n },\n\n // Displaying the toast\n showToast: function() {\n // Creating the DOM object for the toast\n this.toastElement = this.buildToast();\n\n // Getting the root element to with the toast needs to be added\n var rootElement;\n if (typeof this.options.selector === \"string\") {\n rootElement = document.getElementById(this.options.selector);\n } else if (this.options.selector instanceof HTMLElement || (typeof ShadowRoot !== 'undefined' && this.options.selector instanceof ShadowRoot)) {\n rootElement = this.options.selector;\n } else {\n rootElement = document.body;\n }\n\n // Validating if root element is present in DOM\n if (!rootElement) {\n throw \"Root element is not defined\";\n }\n\n // Adding the DOM element\n var elementToInsert = Toastify.defaults.oldestFirst ? rootElement.firstChild : rootElement.lastChild;\n rootElement.insertBefore(this.toastElement, elementToInsert);\n\n // Repositioning the toasts in case multiple toasts are present\n Toastify.reposition();\n\n if (this.options.duration > 0) {\n this.toastElement.timeOutValue = window.setTimeout(\n function() {\n // Remove the toast from DOM\n this.removeElement(this.toastElement);\n }.bind(this),\n this.options.duration\n ); // Binding `this` for function invocation\n }\n\n // Supporting function chaining\n return this;\n },\n\n hideToast: function() {\n if (this.toastElement.timeOutValue) {\n clearTimeout(this.toastElement.timeOutValue);\n }\n this.removeElement(this.toastElement);\n },\n\n // Removing the element from the DOM\n removeElement: function(toastElement) {\n // Hiding the element\n // toastElement.classList.remove(\"on\");\n toastElement.className = toastElement.className.replace(\" on\", \"\");\n\n // Removing the element from DOM after transition end\n window.setTimeout(\n function() {\n // remove options node if any\n if (this.options.node && this.options.node.parentNode) {\n this.options.node.parentNode.removeChild(this.options.node);\n }\n\n // Remove the element from the DOM, only when the parent node was not removed before.\n if (toastElement.parentNode) {\n toastElement.parentNode.removeChild(toastElement);\n }\n\n // Calling the callback function\n this.options.callback.call(toastElement);\n\n // Repositioning the toasts again\n Toastify.reposition();\n }.bind(this),\n 400\n ); // Binding `this` for function invocation\n },\n };\n\n // Positioning the toasts on the DOM\n Toastify.reposition = function() {\n\n // Top margins with gravity\n var topLeftOffsetSize = {\n top: 15,\n bottom: 15,\n };\n var topRightOffsetSize = {\n top: 15,\n bottom: 15,\n };\n var offsetSize = {\n top: 15,\n bottom: 15,\n };\n\n // Get all toast messages on the DOM\n var allToasts = document.getElementsByClassName(\"toastify\");\n\n var classUsed;\n\n // Modifying the position of each toast element\n for (var i = 0; i < allToasts.length; i++) {\n // Getting the applied gravity\n if (containsClass(allToasts[i], \"toastify-top\") === true) {\n classUsed = \"toastify-top\";\n } else {\n classUsed = \"toastify-bottom\";\n }\n\n var height = allToasts[i].offsetHeight;\n classUsed = classUsed.substr(9, classUsed.length-1)\n // Spacing between toasts\n var offset = 15;\n\n var width = window.innerWidth > 0 ? window.innerWidth : screen.width;\n\n // Show toast in center if screen with less than or equal to 360px\n if (width <= 360) {\n // Setting the position\n allToasts[i].style[classUsed] = offsetSize[classUsed] + \"px\";\n\n offsetSize[classUsed] += height + offset;\n } else {\n if (containsClass(allToasts[i], \"toastify-left\") === true) {\n // Setting the position\n allToasts[i].style[classUsed] = topLeftOffsetSize[classUsed] + \"px\";\n\n topLeftOffsetSize[classUsed] += height + offset;\n } else {\n // Setting the position\n allToasts[i].style[classUsed] = topRightOffsetSize[classUsed] + \"px\";\n\n topRightOffsetSize[classUsed] += height + offset;\n }\n }\n }\n\n // Supporting function chaining\n return this;\n };\n\n // Helper function to get offset.\n function getAxisOffsetAValue(axis, options) {\n\n if(options.offset[axis]) {\n if(isNaN(options.offset[axis])) {\n return options.offset[axis];\n }\n else {\n return options.offset[axis] + 'px';\n }\n }\n\n return '0px';\n\n }\n\n function containsClass(elem, yourClass) {\n if (!elem || typeof yourClass !== \"string\") {\n return false;\n } else if (\n elem.className &&\n elem.className\n .trim()\n .split(/\\s+/gi)\n .indexOf(yourClass) > -1\n ) {\n return true;\n } else {\n return false;\n }\n }\n\n // Setting up the prototype for the init object\n Toastify.lib.init.prototype = Toastify.lib;\n\n // Returning the Toastify function to be assigned to the window object/module\n return Toastify;\n});\n","import { spawnDialog } from \"@nextcloud/vue/functions/dialog\";\nimport { defineAsyncComponent, defineComponent, computed, onMounted, onUnmounted, openBlock, createBlock, unref, withCtx, createElementVNode, toDisplayString, createCommentVNode, createElementBlock } from \"vue\";\nimport { basename } from \"@nextcloud/paths\";\nimport { getGettextBuilder } from \"@nextcloud/l10n/gettext\";\nimport { getLoggerBuilder } from \"@nextcloud/logger\";\nimport Toastify from \"toastify-js\";\nimport NcDialog from \"@nextcloud/vue/components/NcDialog\";\nimport NcNoteCard from \"@nextcloud/vue/components/NcNoteCard\";\n/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nasync function openConflictPicker(dirname, conflicts, content, options) {\n const ConflictPicker = defineAsyncComponent(() => import(\"./ConflictPicker-BwfOiKFa.mjs\"));\n const incoming = [];\n const existing = [];\n for (const node of content) {\n if (isConflictingNode(node)) {\n existing.push(node);\n incoming.push(conflicts[indexOf(node)]);\n }\n }\n if (conflicts.length === 0 || content.length === 0) {\n throw new Error(\"ConflictPicker: files and conflicts must not be empty\");\n }\n if (conflicts.length !== content.length) {\n throw new Error(\"ConflictPicker: files and conflicts must have the same length. Make sure you filter out non conflicting files from the conflicts array.\");\n }\n return await spawnDialog(ConflictPicker, {\n dirname,\n existing,\n incoming,\n isOverwriting: options?.overwriting === true,\n recursiveUpload: options?.recursive === true\n }, {\n container: options?.container\n });\n function isConflictingNode(node) {\n return conflicts.some((entry) => nodeIsConflict(node, entry));\n }\n function indexOf(node) {\n return conflicts.findIndex((entry) => nodeIsConflict(node, entry));\n }\n function nodeIsConflict(node, conflict) {\n if (\"basename\" in conflict) {\n return conflict.basename === node.basename;\n }\n return conflict.name === node.basename;\n }\n}\nconst IconMove = '';\nconst IconCopy = '';\nconst gtBuilder = getGettextBuilder().detectLanguage();\nfor (const data of [{ \"language\": \"ar\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": ['\"{name}\" لا يصلح كاسم مجلد.'] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": ['\"{name}\" غير مسموح به كاسم مجلد'] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\" غير مسموح به داخل اسم مجلد.'] }, { \"msgid\": \"All files\", \"msgstr\": [\"كل الملفات\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"إختَر\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"إختر {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"إختَر %n ملف\", \"إختَر %n ملف\", \"إختَر %n ملف\", \"إختَر %n ملفات\", \"إختَر %n ملف\", \"إختر %n ملف\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"نسخ\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"نسخ إلى {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"تعذّر إنشاء المجلد الجديد\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"يتعذّر تحميل إعدادات الملفات\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"تعذر تحميل عرض الملفات\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"إنشاء مجلد\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"محدد العرض الحالي\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"المفضلة\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"الملفات والمجلدات التي تحددها كمفضلة ستظهر هنا.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"الملفات و المجلدات التي قمت مؤخراً بتعديلها سوف تظهر هنا.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"تصفية قائمة الملفات\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"اسم المجلد لا يمكن أن يكون فارغاً.\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"البداية\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"التعديل\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"نقل\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"نقل إلى {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"الاسم\"] }, { \"msgid\": \"New\", \"msgstr\": [\"جديد\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"مجلد جديد\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"اسم المجلد الجديد\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"لا توجد ملفات هنا\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"لا توجد ملفات تتطابق مع عامل التصفية الذي وضعته\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"لا توجد ملفات مطابقة\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"الحالي\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"حدد جميع الإدخالات\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"إختَر المدخل\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"إختر سطر الـ {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"الحجم\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"تراجع\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"قم برفع بعض المحتوى أو المزامنة مع أجهزتك!\"] }] }, { \"language\": \"ast\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": [\"«{name}» ye un nome de carpeta inválidu.\"] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": [\"«{name}» ye un nome de carpeta inválidu\"] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": [\"Nun se permite'l caráuter «/» dientro'l nome de les carpetes.\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Tolos ficheros\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Escoyer\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Escoyer «{ficheru}»\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Escoyer %n ficheru\", \"Escoyer %n ficheros\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Copiar\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Copiar en: {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Nun se pudo crear la carpeta\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Nun se pudo cargar la configuración de los ficheros\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Nun se pudieron cargar les vistes de los ficheros\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Crear un direutoriu\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Selector de la vista actual\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoritos\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Equí apaecen los ficheros y les carpetes que metas en Favoritos.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Equí apaecen los fichero y les carpetes que modificares apocayá.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Peñerar la llista de ficheros\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"El nome de la carpeta nun pue tar baleru.\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Aniciu\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Modificóse\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Mover\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Mover a {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nome\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nuevu\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Carpeta nueva\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Nome de carpeta nuevu\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Equí nun hai nengún ficheru\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Nun s'atopó nengún ficheru que concasare cola peñera.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Nun hai nengún ficheru que concase\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"De recién\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Seleicionar toles entraes\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Seleicionar la entrada\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Seleicionar la filera de: {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Tamañu\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Desfacer\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"¡Xubi dalgún elementu o sincroniza colos tos preseos!\"] }] }, { \"language\": \"ca\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": [`No és permès d'usar el caràcter \"{char}\" en un nom.`] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" no és un nom permès.'] }, { \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": ['\"{name}\" no és vàlid com a nom de carpeta.'] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": ['\"{name}\" no és vàlid com a nom de carpeta'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" és un mot reservat i no està permès com a nom.'] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": [`\"/\" no està permès en el nom d'una carpeta.`] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n conflicte de fitxers\", \"%n conflictes de fitxers\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n onflicte de fitxers a {dirname}\", \"%n conflictes de fitxers a {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Tots els fitxers\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancel·lar\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancel·lar tota l'operació\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Tria\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Tria {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Tria %n fitxer\", \"Tria %n fitxers\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirma\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Copia\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Copia a {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"No s'ha pogut crear la carpeta nova\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"No es poden carregar fitxers de configuració\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"No es poden carregar fitxers de vistes\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Crea un directori\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Selector de visualització actual\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Escriviu el vostre nom\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Versió existent\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"No s'ha pogut desar el sobrenom.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Preferits\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Els fitxers i les carpetes que marqueu com a favorits es mostraran aquí.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Els fitxers i les carpetes recentment modificats es mostraran aquí.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrar llistat de fitxers\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"El nom de la carpeta no pot estar buit.\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Identificació com a convidat\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Inici\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Si seleccioneu les dues versions, el fitxer entrant tindrà un número afegit al seu nom.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Nom no vàlid.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Data de l'última modificació desconeguda\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Data de modificació\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Desplaça\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Desplaça a {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nom\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Els noms poden tenir com a màxim 64 caràcters.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Els noms no poden ser buits.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": [`Els noms no poden acabar amb l'extensió \"{extension}\".`] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Els noms no poden començar amb un punt.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Crea\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Carpeta nova\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Nom de la carpeta nova\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Nova versió\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"No hi ha cap fitxer\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"No s'ha trobat cap fitxer que coincideixi amb el filtre.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"No hi ha cap fitxer que coincideixi\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Si us plau, escriu un nom amb 2 caràcters com a mínim.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Recents\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Selecciona totes les caselles de selecció\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Selecciona totes les entrades\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Selecciona tots els fitxers existents\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Selecciona tots els fitxers nous\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Selecciona l'entrada\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Selecciona la fila per a {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Mida\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Omet %n fitxer\", \"Omet %n fitxers\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Omet aquest fitxer\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Entreu el nom\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Desfés\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Pugeu contingut o sincronitzeu-lo amb els vostres dispositius!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Quan es selecciona una carpeta entrant, també se sobreescriuran els fitxers que hi entrin en conflicte.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Quan es selecciona una carpeta entrant, el contingut s'escriu a la carpeta existent i es realitza una resolució recursiva de conflictes.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quins fitxers voleu conservar?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Actualment se us mostra com a {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Actualment no esteu identificat.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"No podeu deixar el nom buit.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Heu de triar com a mínim una solució de conflicte\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Heu de seleccionar com a mínim una versió de cada fitxer per continuar.\"] }] }, { \"language\": \"cs_CZ\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [\"znak „{char}“ není možné použít uvnitř názvu složky.\"] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": [\"„{char}“ není možné použít uvnitř názvu.\"] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": [\"„{extension}“ není možné použít jako název.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": [\"„{segment}“ je vyhrazeným názvem a není možné ho používat pro názvy složek.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": [\"„{segment}“ je vyhrazeným názvem a není možné ho použít.\"] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n kolize souboru\", \"%n kolize souborů\", \"%n kolizí souborů\", \"%n kolize souborů\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n kolize souborů v {dirname}\", \"%n kolize souborů v {dirname}\", \"%n kolizí souborů v {dirname}\", \"%n kolize souborů v {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Veškeré soubory\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Storno\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Zrušit celou operaci\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Zvolit\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Zvolit {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Zvolte %n soubor\", \"Zvolte %n soubory\", \"Zvolte %n souborů\", \"Zvolte %n soubory\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Potvrdit\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Pokračovat\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Zkopírovat\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Zkopírovat do {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Novou složku se nepodařilo vytvořit\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Nepodařilo se načíst nastavení pro soubory\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Nepodařilo se načíst pohledy souborů\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Vytvořit složku\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Výběr stávajícího zobrazení\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Zadejte své jméno\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Existující verze\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Nepodařilo se nastavit přezdívku.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Oblíbené\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Zde se zobrazí soubory a složky, které označíte jako oblíbené.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Zde se zobrazí soubory a složky, které jste nedávno pozměnili.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrovat seznam souborů\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": [\"Názvy složek nemohou končit na „{extension}“.\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Identifikace hosta\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Domů\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Pokud vyberete obě verze, pak k názvu příchozího souboru bude přidáno číslo.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Neplatný název složky.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Neplatný název.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Datum poslední změny neznámé\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Změněno\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Přesounout\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Přesunout do {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Název\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Je třeba, aby délka jmen nepřesahovala 64 znaků.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Názvy je třeba vyplnit.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": [\"Názvy nemohou končit na „{extension}“.\"] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Názvy nemohou začínat tečkou.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nové\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Nová složka\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Název pro novou složku\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Nová verze\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Nejsou zde žádné soubory\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Nenalezeny žádné soubory odpovídající vašemu filtru\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Žádné odpovídající soubory\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Zadejte jméno dlouhé alespoň 2 znaky.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Nedávné\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Vybrat všechny zaškrtávací kolonky\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Vybrat všechny položky\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Vybrat všechny existující soubory\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Vybrat všechny nové soubory\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Vybrat položku\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Vybrat řádek pro {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Velikost\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Přeskočit %n soubor\", \"Přeskočit %n soubory\", \"Přeskočit %n souborů\", \"Přeskočit %n soubory\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Přeskočit tento soubor\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Odeslat jméno\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Zpět\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Nahrajte sem nějaký obsah nebo proveďte synchronizaci se svými zařízeními!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Pokud je vybrána příchozí složka, budou v ní také přepsány jakékoli kolidující soubory.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Pokud je vybrána příchozí složka, je obsah zapsán do existující složky a je provedeno rekurzivní vyřešení kolizí.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Které soubory chcete ponechat?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"V tuto chvíli jste identifikováni jako {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"V tuto chvíli nejste identifikovaní.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Jméno nelze ponechat nevyplněné.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Je třeba zvolit alespoň jedno z řešení kolize\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Aby bylo možné pokračovat, je třeba vybrat alespoň jednu verzi od každého souboru.\"] }] }, { \"language\": \"da\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" er ikke tilladt i et navn.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" er ikke tilladt i et navn.'] }, { \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": ['\"{name}\" er et ugyldigt mappenavn.'] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": ['\"{name}\" er ikke et tilladt mappenavn'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" er et reserveret navn og er derfor ikke tilladt.'] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\" er ikke tilladt i et mappenavn.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n filkonflikt\", \"%n filer konflikter\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n filkonflikt i {dirname}\", \"%n filkonflikter i {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Alle filer\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Fortryd\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Annullér hele operationen\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Vælg\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Vælg {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Vælg %n fil\", \"Vælg %n filer\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Bekræft\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsæt\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopier\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Kopier til {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Kunne ikke oprette den nye mappe\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Filindstillingerne kunne ikke indlæses\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Kunne ikke indlæse filvisninger\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Opret mappe\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Aktuel visningsvælger\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Indtast dit navn\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Eksisterende version\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Forsøg på at gemme kaldenavn mislykkedes.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoritter\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Filer og mapper, du markerer som foretrukne, vises her.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Filer og mapper, du for nylig har ændret, vises her.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrer fil liste\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"Mappenavnet må ikke være tomt.\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Gæsteidentifikation\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Hjem\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Hvis du vælger begge versioner, vil den indkommende fil have et nummer tilføjet til sit navn.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Ugyldigt navn.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Senest ændret dato ukendt\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Ændret\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Flyt\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Flyt til {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Navn\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Navne kan højst være 64 tegn lange.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Navne kan ikke være tomt.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Navne må ikke ende på \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Navne skal starte med et punktum.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Ny\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Ny mappe\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Ny mappe navn\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Ny version\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Ingen filer here\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Der blev ikke fundet nogen filer, der matcher dit filter.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Ingen matchende filer\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Indtast et navn med mindst 2 tegn.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Seneste\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Markér alle afkrydsningsfelter\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Vælg alle poster\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Vælg alle eksisterende filer\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Vælg alle nye filer\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Vælg post\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Vælg rækken for {nodenavn}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Størelse\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Spring %n fil over\", \"Spring %n filer over\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Spring denne fil over\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Indsend navn\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Fortryd\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Upload noget indhold eller synkroniser med dine enheder!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Når en indkommende mappe er valgt, vil eventuelle modstridende filer i det også blive overskrevet.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Når en indkommende mappe er valgt, er indholdet skrevet ind i den eksisterende mappe og en rekursiv konfliktløsning udføres.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Hvilke filer vil du have?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Du er i øjeblikket identificeret som {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Du er ikke identificeret.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Du kan ikke efterlade navnet tomt.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Du skal vælge mindst én konfliktløsning\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Du skal vælge mindst én version af hver fil for at fortsætte.\"] }] }, { \"language\": \"de\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['\"{char}\" ist innerhalb eines Ordnernamens nicht zulässig.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" ist innerhalb eines Namens nicht zulässig.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" ist kein zulässiger Name.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" ist ein reservierter Name und nicht zulässig für Ordnernamen.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" ist ein reservierter Name und nicht zulässig.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n Dateikonflikt\", \"%n Dateikonflikte\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n Dateikonflikt in {dirname}\", \"%n Dateikonflikte in {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Alle Dateien\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Abbrechen\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Den gesamten Vorgang abbrechen\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Auswählen\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"{file} auswählen\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"%n Datei auswählen\", \"%n Dateien auswählen\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Bestätigen\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsetzen\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopieren\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Nach {target} kopieren\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Der neue Ordner konnte nicht erstellt werden\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Dateieinstellungen konnten nicht geladen werden\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Dateiansichten konnten nicht geladen werden\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Verzeichnis erstellen\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Aktuelle Ansichtsauswahl\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Gib deinen Namen ein\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Vorhandene Version\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Spitzname konnte nicht gespeichert werden.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoriten\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Dateien und Ordner, die du als Favorit markierst, werden hier angezeigt.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Dateien und Ordner, die du kürzlich geändert hast, werden hier angezeigt.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Dateiliste filtern\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Ordnernamen dürfen nicht mit \"{extension}\" enden.'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Gast-Identifikation\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Home\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Wenn beide Versionen ausgewählt werden, wird dem Namen der eingehenden Datei eine Nummer hinzugefügt.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Ungültiger Ordnername.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Ungültiger Name.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Datum der letzten Änderung unbekannt\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Geändert\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Verschieben\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Nach {target} verschieben\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Name\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Namen dürfen maximal 64 Zeichen lang sein.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Namen dürfen nicht leer sein.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Namen dürfen nicht mit \"{extension}\" enden.'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Namen dürfen nicht mit einem Punkt beginnen.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Neu\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Neuer Ordner\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Neuer Ordnername\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Neue Version\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Hier sind keine Dateien\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Es wurden keine Dateien gefunden, die deinem Filter entsprechen.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Keine passenden Dateien\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Bitte einen Namen mit mindestens zwei Zeichen eingeben.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Neueste\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Alle Kontrollkästchen aktivieren\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Alle Einträge auswählen\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Alle vorhandenen Dateien auswählen\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Alle neuen Dateien auswählen\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Eintrag auswählen\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Die Zeile für {nodename} auswählen.\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Größe\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"%n Datei überspringen\", \"%n Dateien überspringen\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Diese Datei überspringen\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Namen senden\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Rückgängig machen\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Lade Inhalte hoch oder synchronisiere diese mit deinen Geräten!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Wenn ein eingehender Ordner ausgewählt wird, werden auch alle darin enthaltenen Dateien mit Konflikten überschrieben.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Bei Auswahl eines eingehenden Ordners wird der Inhalt in den vorhandenen Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Welche Dateien sollen behalten werden?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Du bist derzeit als {nickname} identifiziert.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Du bist momentan nicht identifiziert.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Du kannst den Namen nicht leer lassen.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Es muss mindestens eine Konfliktlösung gewählt werden\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Es muss mindestens eine Version jeder Datei ausgewählt werden, um fortzufahren.\"] }] }, { \"language\": \"de_DE\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['\"{char}\" ist innerhalb eines Ordnernamens nicht zulässig.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" ist innerhalb eines Namens nicht zulässig.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" ist kein zulässiger Name.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" ist ein reservierter Name und nicht zulässig für Ordnernamen.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" ist ein reservierter Name und nicht zulässig.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n Dateikonflikt\", \"%n Dateikonflikte\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n Dateikonflikt in {dirname}\", \"%n Dateikonflikte in {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Alle Dateien\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Abbrechen\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Den gesamten Vorgang abbrechen\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Auswählen\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"{file} auswählen\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"%n Datei auswählen\", \"%n Dateien auswählen\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Bestätigen\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsetzen\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopieren\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Nach {target} kopieren\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Der neue Ordner konnte nicht erstellt werden\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Dateieinstellungen konnten nicht geladen werden\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Dateiansichten konnten nicht geladen werden\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Verzeichnis erstellen\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Aktuelle Ansichtsauswahl\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Geben Sie Ihren Namen ein\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Vorhandene Version\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Spitzname konnte nicht gespeichert werden.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoriten\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Dateien und Ordner, die Sie als Favorit markieren, werden hier angezeigt.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Dateien und Ordner, die Sie kürzlich geändert haben, werden hier angezeigt.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Dateiliste filtern\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Ordnernamen dürfen nicht mit \"{extension}\" enden.'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Gast-Identifikation\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Home\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Wenn beide Versionen ausgewählt werden, wird dem Namen der eingehenden Datei eine Nummer hinzugefügt.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Ungültiger Ordnername.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Ungültiger Name.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Datum der letzten Änderung unbekannt\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Geändert\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Verschieben\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Nach {target} verschieben\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Name\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Namen dürfen maximal 64 Zeichen lang sein.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Namen dürfen nicht leer sein.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Namen dürfen nicht mit \"{extension}\" enden.'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Namen dürfen nicht mit einem Punkt beginnen.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Neu\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Neuer Ordner\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Neuer Ordnername\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Neue Version\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Hier sind keine Dateien\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Es wurden keine Dateien gefunden, die Ihrem Filter entsprechen.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Keine passenden Dateien\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Bitte einen Namen mit mindestens zwei Zeichen eingeben.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Neueste\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Alle Kontrollkästchen aktivieren\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Alle Einträge auswählen\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Alle vorhandenen Dateien auswählen\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Alle neuen Dateien auswählen\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Eintrag auswählen\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Die Zeile für {nodename} auswählen.\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Größe\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"%n Datei überspringen\", \"%n Dateien überspringen\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Diese Datei überspringen\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Namen senden\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Rückgängig machen\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Laden Sie Inhalte hoch oder synchronisieren Sie diese mit Ihren Geräten!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Wenn ein eingehender Ordner ausgewählt wird, werden auch alle darin enthaltenen Dateien mit Konflikten überschrieben.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Bei Auswahl eines eingehenden Ordners wird der Inhalt in den vorhandenen Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Welche Dateien sollen behalten werden?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Sie sind derzeit als {nickname} identifiziert.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Sie sind momentan nicht identifiziert.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Sie können den Namen nicht leer lassen.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Es muss mindestens eine Konfliktlösung gewählt werden\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Es muss mindestens eine Version jeder Datei ausgewählt werden, um fortzufahren.\"] }] }, { \"language\": \"el\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [\"Το «{char}» δεν επιτρέπεται μέσα σε όνομα φακέλου.\"] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" δεν επιτρέπεται μέσα σε ένα όνομα.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" δεν είναι επιτρεπτό όνομα.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": [\"Το «{segment}» είναι ένα δεσμευμένο όνομα και δεν επιτρέπεται για ονόματα φακέλων.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" είναι ένα δεσμευμένο όνομα και δεν επιτρέπεται.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n σύγκρουση αρχείου\", \"%n σύγκρουση αρχείων\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n σύγκρουση αρχείου στο {dirname}\", \"%n σύγκρουση αρχείων στο {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Όλα τα αρχεία\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Ακύρωση\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Ακύρωση όλης της διαδικασίας\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Επιλογή\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Επιλέξτε {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Επιλέξτε %n αρχείο\", \"Επιλέξτε %n αρχεία\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Επιβεβαίωση\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Συνέχεια\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Αντιγραφή\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Αντιγραφή στο {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Αδυναμία δημιουργίας νέου φακέλου\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Αδυναμία φόρτωσης ρυθμίσεων αρχείων\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Αδυναμία φόρτωσης προβολών αρχείων\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Δημιουργία καταλόγου\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Επιλογέας τρέχουσας προβολής\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Εισάγετε το όνομά σας\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Υφιστάμενη έκδοση\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Αποτυχία στην ρύθμιση του ψευδώνυμου.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Αγαπημένα\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Τα αρχεία και οι φάκελοι που επισημάνετε ως αγαπημένα θα εμφανίζονται εδώ.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Τα αρχεία και οι φάκελοι που τροποποιήσατε πρόσφατα θα εμφανίζονται εδώ.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Φιλτράρισμα λίστας αρχείων\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": [\"Τα ονόματα των φακέλων δεν πρέπει να τελειώνουν με «{extension}».\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Ταυτοποίηση επισκέπτη\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Αρχική\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Εάν επιλέξετε και τις δύο εκδόσεις, στο όνομα του εισερχόμενου αρχείου θα προστεθεί ένας αριθμός.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Μη έγκυρο όνομα φακέλου.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Μη έγκυρο όνομα.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Άγνωστη ημερομηνία τελευταίας τροποποίησης\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Τροποποιήθηκε\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Μετακίνηση\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Μετακίνηση στο {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Όνομα\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Τα ονόματα μπορούν να έχουν μέγιστο μήκος 64 χαρακτήρες.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Τα ονόματα δεν πρέπει να είναι κενά.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Τα ονόματα δεν πρέπει να τελειώνουν με \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Τα ονόματα δεν πρέπει να ξεκινούν με τελεία.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Νέο\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Νέος φάκελος\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Όνομα νέου φακέλου\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Νέα έκδοση\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Δεν υπάρχουν αρχεία εδώ\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Δεν βρέθηκαν αρχεία που να ταιριάζουν με το φίλτρο σας.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Κανένα αρχείο δεν ταιριάζει\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Παρακαλώ εισάγετε ένα όνομα με τουλάχιστον 2 χαρακτήρες.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Πρόσφατα\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Επιλέξτε όλα τα πλαίσια ελέγχου\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Επιλογή όλων των καταχωρήσεων\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Επιλογή όλων των υπάρχοντων αρχείων\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Επιλογή όλων των νέων αρχείων\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Επιλογή εγγραφής\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Επιλέξτε τη γραμμή για το {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Μέγεθος\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Παράλειψη ενός αρχείου\", \"Παράλειψη %n αρχείων\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Παράλειψη αυτού το αρχείου\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Υποβολή ονόματος\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Αναίρεση\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Ανεβάστε κάποιο περιεχόμενο ή συγχρονίστε με τις συσκευές σας!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Όταν επιλέγεται ένας φάκελος εισερχομένων, όλα τα αρχεία που βρίσκονται σε σύγκρουση μέσα σε αυτόν θα αντικατασταθούν επίσης.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Όταν επιλέγεται ένας φάκελος εισερχομένων, το περιεχόμενο εγγράφεται στον υπάρχοντα φάκελο και εκτελείται μια αναδρομική επίλυση σύγκρουσης.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Ποια αρχεία θέλετε να διατηρήσετε;\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Αυτή τη στιγμή έχετε αναγνωριστεί ως {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Δεν έχετε ταυτοποιηθεί.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Δεν μπορείτε να αφήσετε το όνομα κενό.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Πρέπει να επιλέξετε τουλάχιστον μία λύση σύγκρουσης\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Πρέπει να επιλέξετε τουλάχιστον μία έκδοση από κάθε αρχείο για να συνεχίσετε.\"] }] }, { \"language\": \"en_GB\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['\"{char}\" is not allowed inside a folder name.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" is not allowed inside a name.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" is not an allowed name.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" is a reserved name and cannot be used for folder names.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" is a reserved name and not allowed.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n file conflict\", \"%n files conflict\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n file conflict in {dirname}\", \"%n file conflicts in {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"All files\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancel\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancel the entire operation\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Choose\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Choose {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Choose %n file\", \"Choose %n files\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirm\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Continue\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Copy\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Copy to {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Could not create the new folder\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Could not load files settings\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Could not load files views\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Create directory\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Current view selector\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Enter your name\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Existing version\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Failed to set nickname.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favourites\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Files and folders you mark as favourite will show up here.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Files and folders you recently modified will show up here.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filter file list\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Folder names must not end with \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Guest identification\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Home\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"If you select both versions, the incoming file will have a number added to its name.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Invalid folder name.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Invalid name.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Last modified date unknown\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Modified\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Move\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Move to {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Name\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Names may be at most 64 characters long.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Names must not be empty.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Names must not end with \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Names must not start with a dot.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"New\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"New folder\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"New folder name\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"New version\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"No files in here\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"No files matching your filter were found.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"No matching files\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Please enter a name with at least 2 characters.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Recent\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Select all checkboxes\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Select all entries\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Select all existing files\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Select all new files\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Select entry\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Select the row for {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Size\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Skip %n file\", \"Skip %n files\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Skip this file\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Submit name\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Undo\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Upload some content or sync with your devices!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"When an incoming folder is selected, any conflicting files within it will also be overwritten.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Which files do you want to keep?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"You are currently identified as {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"You are currently not identified.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"You cannot leave the name empty.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"You need to choose at least one conflict solution\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"You need to select at least one version of each file to continue.\"] }] }, { \"language\": \"es\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" no está permitido dentro de un nombre.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" no es un nombre permitido.'] }, { \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": ['\"{name}\" es un nombre de carpeta no válido.'] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": ['\"{name}\" no es un nombre de carpeta permitido'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" es un nombre reservado y no está permitido.'] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\" no está permitido dentro del nombre de una carpeta.'] }, { \"msgid\": \"All files\", \"msgstr\": [\"Todos los archivos\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Seleccionar\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Seleccionar {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Elige %n archivo\", \"Elige %n archivos\", \"Seleccione %n archivos\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Copiar\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Copiar a {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"No se pudo crear la nueva carpeta\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"No se pudieron cargar los ajustes de archivos\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"No se pudieron cargar las vistas de los archivos\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Crear directorio\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Selector de vista actual\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Ingrese su nombre\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Fallo al establecer apodo.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoritos\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Los archivos y carpetas que marque como favoritos aparecerán aquí.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Los archivos y carpetas que modificó recientemente aparecerán aquí.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrar lista de archivos\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"El nombre de la carpeta no puede estar vacío.\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Identificación de invitado\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Inicio\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Nombre inválido.\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Modificado\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Mover\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Mover a {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nombre\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Los nombres no deben estar vacíos.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Los nombres no deben terminar con \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Los nombres no deben iniciar con un punto.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nuevo\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\" Nueva carpeta\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Nuevo nombre de carpeta\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"No hay archivos aquí\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"No se encontraron archivos que coincidiesen con su filtro.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"No hay archivos coincidentes\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Por favor, ingrese un nombre con al menos 2 caracteres.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Reciente\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Seleccionar todas las entradas\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Seleccionar entrada\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Seleccione la fila para {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Tamaño\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Enviar nombre\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Deshacer\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"¡Cargue algún contenido o sincronice con sus dispositivos!\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Ud. se encuentra identificado actualmente como {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Ud. no se encuentra identificado actualmente.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"No puede dejar el nombre vacío.\"] }] }, { \"language\": \"es_AR\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": ['\"{name}\" es un nombre de carpeta inválido.'] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": ['\"{name}\" no es un nombre de carpeta permitido'] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\" no está permitido en el nombre de una carpeta.'] }, { \"msgid\": \"All files\", \"msgstr\": [\"Todos los archivos\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Elegir\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Elija {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Elija %n archivo\", \"Elija %n archivos\", \"Elija %n archivos\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Copiar\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Copiar a {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"No se pudo crear la nueva carpeta\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"No se pudo cargar la configuración de archivos\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"No se pudieron cargar las vistas de los archivos\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Crear directorio\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Selector de vista actual\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoritos\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Los archivos y carpetas que marque como favoritos aparecerán aquí.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Los archivos y carpetas que modificó recientemente aparecerán aquí.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrar lista de archivos\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"El nombre de la carpeta no puede estar vacío.\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Inicio\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Modificado\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Mover\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Mover a {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nombre\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nuevo\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Nueva carpeta\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Nombre de nueva carpeta\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"No hay archivos aquí\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"No se encontraron archivos que coincidan con su filtro.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"No hay archivos coincidentes\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Reciente\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Seleccionar todas las entradas\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Seleccionar entrada\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Seleccione la fila para {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Tamaño\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Deshacer\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"¡Cargue algún contenido o sincronice con sus dispositivos!\"] }] }, { \"language\": \"es_MX\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['\"{char}\" no está permitido dentro de un nombre de carpeta'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" no está permitido dentro de un nombre'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" no es un nombre permitido'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" es un nombre reservado y no está permitido para nombres de carpetas'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" es un nombre reservado y no está permitido'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n conflicto de archivo\", \"%n conflicto de archivos\", \"%n conflicto de archivos\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n conflicto de archivo en {dirname}\", \"%n conflictos de archivo en {dirname}\", \"%n conflictos de archivo en {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Todos los archivos\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancelar la operación completa\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Seleccionar\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Seleccionar {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Seleccionar %n archivo\", \"Seleccionar %n archivos\", \"Seleccionar %n archivos\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmar\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Copiar\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Copiar a {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"No se pudo crear la nueva carpeta\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"No se pudo cargar la configuración de archivos\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"No se pudieron cargar las vistas de los archivos\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Crear carpeta\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Selector de vista actual\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Ingresa tu nombre\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Versión existente\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"No se pudo establecer el nickname\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoritos\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Los archivos y carpetas que marque como favoritos aparecerán aquí.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Los archivos y carpetas que modificó recientemente aparecerán aquí.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrar lista de archivos\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Los nombres para carpeta no deben terminar con \"{extension}\"'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Identificación de invitado\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Inicio\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Si seleccionas ambas versiones, se le agregará al archivo que se está descargando, un número a su nombre.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Nombre de carpeta no válido\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Nombre no válido\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Última fecha de modificación desconocida\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Modificado\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Mover\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Mover a {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nombre\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Los nombres pueden tener como máximo 64 caracteres.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Los nombres no deben estar vacíos.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Los nombres no deben terminar con \"{extension}\"'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Los nombres no deben comenzar con un punto.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nuevo\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Nueva carpeta\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Nombre de nueva carpeta\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Versión nueva\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"No hay archivos aquí\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"No se encontraron archivos que coincidan con su filtro.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"No hay archivos coincidentes\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Por favor ingrese un nombre con al menos 2 caracteres.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Reciente\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Seleccione todas las casillas de verificación\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Seleccionar todas las entradas\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleccione todos los archivos que aparecen\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleccione todos los archivos nuevos\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Seleccionar entrada\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Seleccione la fila para {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Tamaño\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Omitir %n archivo\", \"Omitir %n archivos\", \"Omitir %n archivos\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Omitir este archivo\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Enviar nombre\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Deshacer\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"¡Suba algún contenido o sincronice con sus dispositivos!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Cuando se selecciona una carpeta en descarga, cualquier archivo conflictivo que contenga también se sobrescribirá.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Cuando se selecciona una carpeta en descarga, el contenido se escribe en la carpeta existente y se realiza una resolución de conflicto recursiva.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"¿Qué archivos deseas conservar?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Actualmente estás identificado como {nickname}\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"No estás identificado actualmente.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"No puedes dejar el nombre vacío.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Necesitas elegir al menos una solución al conflicto.\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Necesitas seleccionar al menos una versión de cada archivo para continuar.\"] }] }, { \"language\": \"et_EE\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [\"„{char}“ pole kausta nimes lubatud.\"] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": [\"„{char}“ pole nimes lubatud.\"] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": [\"„{extension}“ pole lubatud nimi.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": [\"„{segment}“ on reserveeritud nimi ja pole kausta nimes lubatud.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": [\"„{segment}“ on reserveeritud nimi ja pole kasutamiseks lubatud.\"] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n fail on vastuolus\", \"%n faili on omavahel vastuolus\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n fail on {dirname} kaustas vastuolus\", \"%n faili on omavahel {dirname} kaustas vastuolus\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Kõik failid\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Katkesta\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Katkesta kogu tegevus\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Tee valik\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Vali {file} fail\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Vali %n fail\", \"Vali %n faili\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Kinnita\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Jätka\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopeeri\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Kopeeri sihtkohta „{target}“\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Uut kausta ei saanud luua\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Failide seadistusi ei õnnestunud laadida\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Failide vaatamiskordi ei õnnestunud laadida\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Loo kaust\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Praeguse vaate valija\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Sisesta oma nimi\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Olemasolev versioon\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Hüüdnime ei õnnestunud lisada\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Lemmikud\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Failid ja kaustad, mida märgistad lemmikuks, kuvatakse siin.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Siin kuvatakse hiljuti muudetud failid ja kaustad.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtreeri faililoendit\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": [\"Kausta nime lõpus ei tohi olla „{extension}“.\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Külalise tuvastamine\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Avaleht\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Kui valid mõlemad versioonid, siis uue faili nimele lisatakse number.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Vigane kausta nimi.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Vigane nimi.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Viimase muutmise kuupäev pole teada\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Muudetud\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Teisalda\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Teisalda kausta „{target}“\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nimi\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Nimed võivad olla vaid kuni 64 tähemärki pikad.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Nimi ei saa olla tühi.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": [\"Nime lõpus ei tohi olla „{extension}“.\"] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Nime alguses ei tohi olla punkt.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Uus\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Uus kaust\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Uue kausta nimi\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Uus versioon\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Siin puuduvad failid\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Sinu filtrile vastavaid faile ei leidunud.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Puuduvad sobivad failid\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Palun sisesta vähemalt 2 tähemärki pikk nimi.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Hiljutine\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Vali kõik märkeruudud\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Vali kõik kirjed\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Vali kõik olemasolevad failid\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Vali kõik uued failid\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Vali kirje\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Vali rida „{nodename}“ jaoks\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Suurus\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Jäta %n fail vahele\", \"Jäta %n faili vahele\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Jäta see fail vahele\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Lisa nimi\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Tühista\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Lisa mingit sisu või sünkrooni see oma seadmetest!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Kui uute failide kaust on valitud, siis kõik seal leiduvad vastuolus failid saavad üle kirjutatud.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Kui uute failide kaust on valitud, siis sisu kirjutatakse olemasolevasse kausta ja korraldatakse rekursiivne failikonfliktide lahendamine.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Missugused failid tahaksid alles jätta?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Sa oled hetkel tuvastatav kui {nickname}..\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Sa oled hetkel tuvastamata.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Sa ei saa jätte nime tühjaks.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Sa pead valima vähemalt ühe failikonflikti lahenduse.\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Jätkamaks pead valima igast failist vähemalt ühe versiooni.\"] }] }, { \"language\": \"fa\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": [\"{name} نام پوشه معتبر نیست\"] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": [\"{name} نام پوشه مجاز نیست\"] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\" نمی‌تواند در نام پوشه استفاده شود.'] }, { \"msgid\": \"All files\", \"msgstr\": [\"همه فایل‌ها\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"لغو\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"انتخاب\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"انتخاب {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"انتخاب %n فایل\", \"انتخاب %n فایل\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"رونوشت\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"رونوشت از {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"پوشه جدید ایجاد نشد\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"تنظیمات فایل باز نشد\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"نمای فایل‌ها بارگیری نشد\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"ایجاد فهرست\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"انتخابگر نماگر فعلی\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"نام خود را وارد کنید\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"تنظیم نام مستعار ناموفق بود.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"علایق\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"فایل‌ها و پوشه‌هایی که به‌عنوان مورد علاقه علامت‌گذاری می‌کنید در اینجا نشان داده می‌شوند.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"فایل‌ها و پوشه‌هایی که اخیراً تغییر داده‌اید در اینجا نمایش داده می‌شوند.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"فیلتر لیست فایل\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"نام پوشه نمی تواند خالی باشد.\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"شناسایی مهمان\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"خانه\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"اصلاح شده\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"انتقال\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"انتقال به {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"نام\"] }, { \"msgid\": \"New\", \"msgstr\": [\"جدید\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"پوشه جدید\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"نام پوشه جدید\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"فایلی اینجا نیست\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"هیچ فایلی مطابق با فیلتر شما یافت نشد.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"فایل منطبقی وجود ندارد\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"لطفاً نامی با حداقل ۲ کاراکتر وارد کنید.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"اخیر\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"انتخاب همه ورودی ها\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"انتخاب ورودی\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"انتخاب ردیف برای {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"اندازه\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"ارسال نام\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"بازگردانی\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"مقداری محتوا آپلود کنید یا با دستگاه های خود همگام سازی کنید!\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"شما در حال حاضر شناسایی نشده‌اید.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"نمی‌توانید نام را خالی بگذارید.\"] }] }, { \"language\": \"fi_FI\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" ei ole sallittu nimessä.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" ei ole sallittu nimi.'] }, { \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": ['\"{name}\" on virheellinen kansion nimi.'] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": ['\"{name}\" ei ole sallittu kansion nimi'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" on varattu nimi eikä se ole sallittu.'] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\" ei ole sallittu kansion nimessä.'] }, { \"msgid\": \"All files\", \"msgstr\": [\"Kaikki tiedostot\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Peruuta\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Valitse\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Valitse {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Valitse %n tiedosto\", \"Valitse %n tiedostoa\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopioi\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Kopioi sijaintiin {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Uutta kansiota ei voitu luoda\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Tiedoston asetuksia ei saa ladattua\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Tiedoston näkymiä ei saa ladattua\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Luo kansio\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Nykyisen näkymän valinta\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Kirjoita nimesi\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Kutsumanimen asettaminen epäonnistui.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Suosikit\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Tiedostot ja kansiot, jotka merkitset suosikkeihisi, näkyvät täällä.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Tiedostot ja kansiot, joita muokkasit äskettäin, näkyvät täällä.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Suodata tiedostolistaa\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"Kansion nimi ei voi olla tyhjä.\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Vieraan tunnistaminen\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Koti\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Virheellinen nimi.\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Muokattu\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Siirrä\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Siirrä sijaintiin {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nimi\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Nimissä voi olla enintään 64 merkkiä.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Nimet eivät saa olla tyhjiä.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Nimet eivät saa päättyä sanaan \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Nimet eivät saa alkaa pisteellä.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Uusi\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Uusi kansio\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Uuden kansion nimi\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Täällä ei ole tiedostoja\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Suodatinta vastaavia tiedostoja ei löytynyt.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Ei vastaavia tiedostoja\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Kirjoita vähintään kaksi merkkiä sisältävä nimi.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Viimeisimmät\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Valitse kaikki tietueet\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Valitse tietue\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Valitse rivi {nodename}:lle\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Koko\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Lähetä nimi\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Kumoa\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Lähetä jotain sisältöä tai synkronoi laitteidesi kanssa!\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Sinut tunnetaan tällä hetkellä nimellä {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Sinua ei ole tunnistettu.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Nimeä ei voi jättää tyhjäksi.\"] }] }, { \"language\": \"fr\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [`\"{char}\" n'est pas autorisé dans un nom de dossier.`] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": [`\"{char}\" n'est pas autorisé dans un nom.`] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": [`\"{extension}\" n'est pas un nom autorisé.`] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": [`\"{segment}\" est un nom réservé et n'est pas autorisé pour un nom de dossier.`] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": [`\"{segment}\" est un nom réservé et n'est pas autorisé.`] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n conflit de fichier\", \"%n conflit de fichiers\", \"%n conflit de fichiers\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%nconflit de fichier dans {dirname}\", \"%n conflit de fichiers dans {dirname}\", \"%nconflit de fichiers dans {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Tous les fichiers\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Annuler\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Tout annuler \"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Choisir\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Choisir {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Choisir %n fichier\", \"Choisir %n fichiers\", \"Choisir %n fichiers \"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmer\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Continuer\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Copier\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Copier vers {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Impossible de créer le nouveau dossier\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Les paramètres des fichiers n'ont pas pu être chargés\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Impossible de charger les vues des fichiers\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Créer un répertoire\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Sélecteur d'affichage actuel\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Entrez votre nom\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Version actuelle \"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Échec de définition du surnom.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoris\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Les fichiers et répertoires marqués en favoris apparaîtront ici.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Les fichiers et répertoires modifiés récemment apparaîtront ici.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrer la liste des fichiers\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Les noms de dossiers ne doivent pas se terminer par \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Identification d'invité\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Accueil\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Si vous conservez les deux versions, le fichier reçu sera renommé avec un numéro.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Nom de dossier invalide.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Nom invalide.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Date de modification inconnue\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Modifié\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Déplacer\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Déplacer vers {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nom\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Les noms peuvent comporter au maximum 64 caractères.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Les noms ne peuvent pas être vides.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Les noms ne doivent pas se terminer par \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Les noms ne peuvent pas commencer par un point.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nouveau\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Nouveau dossier\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Nom du nouveau dossier\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Nouvelle version\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Aucun fichier ici\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Aucun fichier trouvé correspondant à votre filtre.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Aucun fichier correspondant\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Veuillez entrer un nom avec au moins 2 caractères.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Récents\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Sélectionner toutes les cases à cocher\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Tout sélectionner\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Sélectionner tous les fichiers existants\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Sélectionner tous les nouveaux fichiers\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Sélectionner une entrée\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Sélectionner la ligne correspondant à {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Taille\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Ignorer %n fichier\", \"Ignorer %n fichiers \", \"Ignorer %n fichiers \"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Ignorer ce fichier\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Envoyer le nom\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Annuler\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Chargez du contenu ou synchronisez avec vos équipements !\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"En sélectionnant un dossier entrant, les fichiers en conflit qu’il contient seront automatiquement écrasés.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Lorsque vous sélectionnez un dossier entrant, son contenu est ajouté au dossier existant et les conflits sont résolus automatiquement.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quels fichiers souhaitez-vous conserver ?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Vous êtes actuellement identifié comme {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Vous n'êtes pas identifié actuellement.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Vous ne pouvez pas laisser le nom vide.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Vous devez choisir au moins une option pour résoudre le conflit\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Sélectionnez au moins une version de chaque fichier pour continuer.\"] }] }, { \"language\": \"ga\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [`Ní cheadaítear \"{char}\" laistigh d'ainm fillteáin.`] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": [`Ní cheadaítear \"{char}\" laistigh d'ainm.`] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['Ní ainm ceadaithe é \"{extension}\".'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": [`Is ainm curtha in áirithe é \"{segment}\" agus ní cheadaítear é d'ainmneacha fillteán.`] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['Is ainm curtha in áirithe é \"{segment}\" agus ní cheadaítear é.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n coimhlint comhaid\", \"%n coimhlint comhad\", \"%n coimhlint comhad\", \"%n coimhlint comhad\", \"%n coimhlint comhad\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n coimhlint comhaid i {dirname}\", \"%n coimhlintí comhaid i {dirname}\", \"%n coimhlintí comhaid i {dirname}\", \"%n coimhlintí comhaid i {dirname}\", \"%n coimhlintí comhaid i {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Gach comhad\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Cealaigh\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cealaigh an oibríocht ar fad\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Roghnaigh\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Roghnaigh {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Roghnaigh %n comhad\", \"Roghnaigh %n comhaid\", \"Roghnaigh %n comhaid\", \"Roghnaigh %n comhaid\", \"Roghnaigh %n comhaid\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Deimhnigh\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Lean ar aghaidh\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Cóip\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Cóipeáil chuig {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Níorbh fhéidir an fillteán nua a chruthú\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Níorbh fhéidir socruithe comhaid a lódáil\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Níorbh fhéidir radhairc comhad a lódáil\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Cruthaigh eolaire\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Roghnóir amhairc reatha\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Cuir isteach d'ainm\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Leagan atá ann cheana féin\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Theip ar leasainm a shocrú.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Ceanáin\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Taispeánfar comhaid agus fillteáin a mharcálann tú mar is fearr leat anseo.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Taispeánfar comhaid agus fillteáin a d'athraigh tú le déanaí anseo.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Scag liosta comhad\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Ní féidir ainmneacha fillteán a chríochnú le \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Aitheantas aoi\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Baile\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Má roghnaíonn tú an dá leagan, cuirfear uimhir le hainm an chomhaid atá ag teacht isteach.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Ainm fillteáin neamhbhailí.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Ainm neamhbhailí.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Dáta an athraithe dheireanaigh anaithnid\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Athraithe\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Bog\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Bog go{target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Ainm\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Ní fhéadfaidh ainmneacha a bheith níos mó ná 64 carachtar ar fhad.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Ní féidir ainmneacha a bheith folamh.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Ní féidir ainmneacha a chríochnú le \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Ní mór ainmneacha a bheith ag tosú le ponc.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nua\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Fillteán nua\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Ainm fillteáin nua\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Leagan nua\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Níl aon chomhaid istigh anseo\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Níor aimsíodh aon chomhad a tháinig le do scagaire.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Gan comhaid meaitseála\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Cuir isteach ainm ina bhfuil 2 charachtar ar a laghad.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"le déanaí\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Roghnaigh na boscaí seiceála go léir\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Roghnaigh gach iontráil\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Roghnaigh na comhaid uile atá ann cheana\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Roghnaigh gach comhad nua\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Roghnaigh iontráil\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Roghnaigh an ró do {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Méid\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Léim %n comhad\", \"Léim %n comhaid\", \"Léim %n comhaid\", \"Léim %n comhaid\", \"Léim %n comhaid\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Scipeáil an comhad seo\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Cuir isteach ainm\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Cealaigh\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Uaslódáil roinnt ábhair nó sioncronaigh le do ghléasanna!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Nuair a roghnaítear fillteán isteach, déanfar aon chomhaid choimhlinteacha ann a athscríobh freisin.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Nuair a roghnaítear fillteán isteach, scríobhtar an t-ábhar isteach sa fhillteán atá ann cheana féin agus déantar réiteach coinbhleachta athchúrsach.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Cé na comhaid ar mhaith leat a choinneáil?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Is é {nickname} an ainm atá ort faoi láthair.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Níl aitheantas tugtha duit faoi láthair.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Ní féidir leat an t-ainm a fhágáil folamh.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Ní mór duit réiteach coinbhleachta amháin ar a laghad a roghnú\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Ní mór duit leagan amháin ar a laghad de gach comhad a roghnú le leanúint ar aghaidh.\"] }] }, { \"language\": \"gl\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [\"«{char}» non está permitido no nome dun cartafol.\"] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": [\"«{char}» non está permitido dentro dun nome.\"] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": [\"«{extension}» non é un nome permitido.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": [\"«{segment}» é un nome reservado e non está permitido para nomes de cartafoles.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": [\"«{segment}» é un nome reservado e non está permitido.\"] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n ficheiro en conflito\", \"%n ficheiros en conflito\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n ficheiro en conflito en {dirname}\", \"%n ficheiros en conflito en {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Todos os ficheiros\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancelar toda a operación\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Escoller\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Escoller {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Escoller %n ficheiro\", \"Escoller %n ficheiros\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmar\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Copiar\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Copiar en {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Non foi posíbel crear o novo cartafol\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Non foi posíbel cargar os axustes dos ficheiros\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Non foi posíbel cargar as vistas dos ficheiros\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Crear un directorio\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Selector de vista actual\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Introduza o seu nome\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Versión existente\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Produciuse un fallo ao definir o alcume.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoritos\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Os ficheiros e cartafoles que marque como favoritos aparecerán aquí.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Os ficheiros e cartafoles que modificou recentemente aparecerán aquí.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrar a lista de ficheiros\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": [\"Os nomes de cartafol non deben rematar en «{extension}».\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Identificación do convidado\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Inicio\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Se selecciona ambas as versións, o ficheiro entrante terá un número engadido ao seu nome.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"O nome de cartafol non é válido.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Nome incorrecto\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Data da última modificación descoñecida\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Modificado\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Mover\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Mover cara a {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nome\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Os nomes poden ter unha lonxitude máxima de 64 caracteres.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Os nomes non deben estar baleiros.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": [\"Os nomes non deben rematar en «{extension}».\"] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Os nomes non deben comezar cun punto.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Novo\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Novo cartafol\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Novo nome do cartafol\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Nova versión\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Aquí non hai ficheiros\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Non se atopou ningún ficheiro que coincida co filtro.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Non hai ficheiros coincidentes\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Introduza un nome con polo menos 2 caracteres.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Recente\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Seleccionar todas as caixas\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Seleccionar todas as entradas\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleccionar todos os ficheiros existentes\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleccionar todos os ficheiros novos\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Seleccionar a entrada\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Seleccionar a fila para {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Tamaño\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Omitir %n ficheiro\", \"Omitir %n ficheiros\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Omitir este ficheiro\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Enviar o nome\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Desfacer\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Enviar algún contido ou sincronizalo cos seus dispositivos!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Cando se selecciona un cartafol entrante, todos os ficheiros conflitivos dentro dela tamén serán sobrescritos.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Cando se selecciona un cartafol entrante, o contido escríbese no cartafol existente e realízase unha resolución recursiva de conflitos.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Que ficheiros quere conservar?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Vde. está identificado actualmente como {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Vde. non está identificado actualmente.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Vde. non pode deixar o nome baleiro.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"É necesario escoller polo menos unha solución de conflito\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"É necesario seleccionar polo menos unha versión de cada ficheiro para continuar.\"] }] }, { \"language\": \"hr\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [\"Znak „{char}” nije dopušten u nazivu mape.\"] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": [\"Znak „{char}” nije dopušten u nazivu.\"] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" nije dopušten u nazivu.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" je rezervirana riječ i nije dopušten u nazivu mape.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" je rezervirana riječ i nije dopušten.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"Sukobljava se %n datoteka\", \"Sukobljava se %n datoteke\", \"Sukobljava se %n datoteke\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n sukob datoteka u {dirname}\", \"%n sukoba datoteka u {dirname}\", \"%n sukoba datoteka u {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Sve datoteke\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Odustani\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Odustani od cijele operacije\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Odaberi\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Odaberi {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Odaberi %n datoteku\", \"Odaberi %n datoteka\", \"Odaberi %n datoteke\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Potvrdi\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Nastavi\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopiraj\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Kopiraj u {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Nije moguće stvoriti novu mapu\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Nije moguće učitati postavke datoteka\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Nije moguće učitati prikaze datoteka\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Stvori mapu\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Odabir trenutačnog prikaza\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Unesite vaše ime\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Postojeća verzija\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Neuspjelo postavljanje nadimka.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoriti\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Ovdje se prikazuju datoteke i mape koje ste označili kao favoriti.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Ovdje se prikazuju datoteke i mape koje ste nedavno ažurirali.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtriranje liste datoteka\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Nazivi mapa ne smiju završiti sa \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Identifikacija gosta\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Naslovna\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Ako odaberete obje verzije, dolaznoj datoteci bit će dodan broj u nazivu.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Neispavan naziv mape.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Neispravan naziv.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Nepoznat datum zadnjeg ažuriranja\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Ažurirano\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Premjesti\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Premjesti u {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Naziv\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Nazivi mogu imati najviše 64 znaka.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Nazivi ne smiju biti prazni.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Nazivi ne smiju završiti sa \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Nazivi ne smiju započinjati točkom.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Novo\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Nova mapa\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Novi naziv mape\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Nova verzija\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Ovdje nema datoteka\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Nisu pronađene datoteke koje odgovaraju vašem filtru.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Nema odgovarajućih datoteka.\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Unesite naziv s najmanje 2 znaka.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Nedavno\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Označi sve potvrdne okvire\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Označi sve stavke\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Označi sve postojeće datoteke\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Označi sve nove datoteke\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Označi stavku\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Označi red za{nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Veličina\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Preskoči %n datoteku\", \"Preskoči %n datoteke\", \"Preskoči %n datoteke\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Preskoči ovu datoteku\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Pošalji naziv\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Poništi\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Prenesite neki sadržaj ili sinkronizirajte sa svojim uređajima!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Kada je odabrana dolazna mapa, sve datoteke unutar nje koje su u sukobu također će biti prepisane.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Kada je odabrana dolazna mapa, sadržaj se upisuje u postojeću mapu i provodi se rekurzivno rješavanje sukoba.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Koje datoteke želite zadržati?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Trenutno ste identificirani kao {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Trenutno niste identificirani.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Ne možete ostaviti naziv prazan.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Morate odabrati barem jedno rješenje sukoba\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Morate odabrati barem jednu verziju svake datoteke kako biste nastavili.\"] }] }, { \"language\": \"hu_HU\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [\"A(z) „{char}” nem engedélyezett egy mappanévben.\"] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": [\"A(z) „{char}” nem engedélyezett egy névben.\"] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": [\"A(z) „{extension}” nem engedélyezett név.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": [\"A(z) „{segment}” foglalt név, és nem engedélyezett a mappanevekben.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": [\"A(z) „{segment}” foglalt név, és nem engedélyezett.\"] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n ütköző fájl\", \"%n ütköző fájl\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n ütköző fájl ebben: {dirname}\", \"%n ütköző fájl ebben: {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Összes fájl\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Mégse\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Egész művelet megszakítása\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Kiválasztás\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"{file} kiválasztása\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"%n fájl kiválasztása\", \"%n fájl kiválasztása\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Megerősítés\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Folytatás\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Másolás\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Másolás ide: {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Nem lehet létrehozni az új mappát\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Nem lehet betölteni a fájlok beállításait\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Nem lehet betölteni a fájlok nézeteit\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Mappa létrehozása\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Jelenlegi nézet választója\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Adja meg a nevét\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Meglévő verzió\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Nem sikerült a becenév beállítása.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Kedvencek\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"A kedvencként megjelölt fájlok és mappák itt jelennek meg.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"A nemrég módosított fájlok és mappák itt jelennek meg.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Fájllista szűrése\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": [\"A mappanevek nem végződhetnek ezzel: „{extension}”.\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Vendégazonosítás\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Kezdőlap\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Ha mindkét verziót választja, akkor a bejövő fájl nevéhez egy szám lesz hozzáfűzve.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Érvénytelen mappanév.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Érvénytelen név.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Legutóbbi módosítás ideje ismeretlen\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Módosítva\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Áthelyezés\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Áthelyezés ide: {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Név\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"A nevek legfeljebb 64 karakter hosszúak lehetnek.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"A nevek nem lehetnek üresek.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": [\"A nevek nem végződhetnek ezzel: „{extension}”.\"] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"A nevek nem kezdődhetnek ponttal.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Új\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Új mappa\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Új mappa neve\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Új verzió\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Itt nincsenek fájlok\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Nincs a szűrési feltételeknek megfelelő fájl.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Nincs ilyen fájl\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Legalább 2 karakteres nevet adjon meg.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Legutóbbi\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Összes jelölőmező bepipálása\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Összes bejegyzés kijelölése\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Összes meglévő fájl kijelölése\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Összes új fájl kijelölése\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Bejegyzés kijelölése\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Válasszon sort a következőnek: {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Méret\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"%n fájl kihagyása\", \"%n fájl kihagyása\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Fájl kihagyása\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Név beküldése\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Visszavonás\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Töltsön fel tartalmat, vagy szinkronizáljon az eszközeivel!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Ha egy bejövő mappa van kijelölve, akkor a benne lévő ütköző fájlok is felül lesznek írva.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Ha egy bejövő mappa van kijelölve, akkor a tartalom a meglévő mappába lesz írva, és rekurzív ütközéskezelés lesz végezve.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Mely fájlokat akarja megtartani?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Jelenleg ekként van azonosítva: {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Jelenleg nincs azonosítva.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"A nevet nem hagyhatja üresen.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Legalább egy ütközéskezelési megoldást kell választania\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"A folytatáshoz az összes fájlnak legalább egy verzióját ki kell választania.\"] }] }, { \"language\": \"hy\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": [\"{name} սխալ թղթապանակի անվանում է\"] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": [\"{name} համարվում է անթույլատրելի թղթապանակի անվանում\"] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": [\"/ չի թույլատրվում օգտագործել անվանման մեջ\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Բոլոր ֆայլերը\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Ընտրել\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Ընտրել {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Ընտրել %n ֆայլ\", \"Ընտրել %n ֆայլեր\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Պատճենել\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Պատճենել {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Չստացվեց ստեղծել նոր թղթապանակը\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Չստացվեց բեռնել ֆայլի կարգավորումները\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Չստացվեց բեռնել ֆայլերի դիտումները\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Ստեղծել դիրեկտորիա\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Ընթացիկ դիտման ընտրիչ\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Նախընտրելիներ\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Այստեղ կցուցադրվեն այն ֆայլերն ու պանակները, որոնք դուք նշել եք որպես նախընտրելիներ:\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Այստեղ կցուցադրվեն այն ֆայլերն ու պանակները, որոնք վերջերս փոխել եք:\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Ֆիլտրել ֆայլերի ցուցակը\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"Թղթապանակի անունը չի կարող դատարկ լինել:\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Սկիզբ\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Փոփոխված\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Տեղափոխել\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Տեղափոխել {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Անուն\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Նոր\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Նոր թղթապանակ\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Նոր թղթապանակի անվանում\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Այստեղ չկան ֆայլեր\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Ձեր ֆիլտրին համապատասխանող ֆայլերը չեն գտնվել:\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Չկան համապատասխան ֆայլեր\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Վերջին\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Ընտրել բոլոր գրառումները\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Ընտրել բոլոր գրառումը\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Ընտրեք տողը {nodename}-ի համար \"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Չափ\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Ետարկել\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Ներբեռնեք որոշ բովանդակություն կամ համաժամացրեք այն ձեր սարքերի հետ:\"] }] }, { \"language\": \"id\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['\"{char}\" tidak diizinkan di dalam nama folder.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" tidak diizinkan di dalam nama.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" bukan nama yang diizinkan.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" adalah nama yang dicadangkan dan tidak diizinkan untuk nama folder.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" adalah nama yang dicadangkan dan tidak diizinkan.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n konflik file\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n konflik file di {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Semua berkas\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Batal\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Batalkan seluruh operasi\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Pilih\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Pilih {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Pilih %n file\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Konfirmasi\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Lanjutkan\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Salin\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Salin ke {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Tidak dapat membuat folder baru\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Tidak dapat memuat pengaturan file\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Tidak dapat memuat tampilan file\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Buat direktori\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Pemilih tampilan saat ini\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Masukkan nama Anda\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Versi yang ada\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Gagal menetapkan nama panggilan.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favorit\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Berkas dan folder yang Anda tandai sebagai favorit akan muncul di sini.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Berkas dan folder yang Anda ubah baru-baru ini akan muncul di sini.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Saring daftar berkas\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Nama folder tidak boleh diakhiri dengan \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Identifikasi tamu\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Beranda\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Jika Anda memilih kedua versi, file yang masuk akan ditambahkan angka pada namanya.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Nama folder tidak valid.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Nama tidak valid.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Tanggal modifikasi terakhir tidak diketahui\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Diubah\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Pindahkan\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Pindahkan ke {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nama\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Panjang nama maksimal 64 karakter.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Nama tidak boleh kosong.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Nama tidak boleh diakhiri dengan \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Nama tidak boleh diawali dengan titik.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Baru\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Folder baru\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Nama folder baru\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Versi baru\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Tidak ada berkas di sini\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Tidak ada berkas yang cocok dengan penyaringan Anda.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Tidak ada berkas yang cocok\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Silakan masukkan nama dengan minimal 2 karakter.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Terkini\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Pilih semua kotak centang\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Pilih semua entri\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Pilih semua file yang ada\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Pilih semua file baru\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Pilih entri\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Pilih baris untuk {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Ukuran\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Lewati %n file\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Lewati file ini\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Kirim nama\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Tidak jadi\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Unggah beberapa konten atau sinkronkan dengan perangkat Anda!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Saat folder yang masuk dipilih, semua file yang konflik di dalamnya juga akan ditimpa.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Saat folder yang masuk dipilih, konten ditulis ke dalam folder yang ada dan penyelesaian konflik rekursif dilakukan.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"File mana yang ingin Anda pertahankan?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Saat ini Anda teridentifikasi sebagai {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Saat ini Anda tidak teridentifikasi.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Anda tidak dapat membiarkan nama kosong.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Anda perlu memilih setidaknya satu solusi konflik\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Anda perlu memilih setidaknya satu versi dari setiap file untuk melanjutkan.\"] }] }, { \"language\": \"is\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": ['\"{name}\" er ógilt möppuheiti.'] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": ['\"{name}\" er ekki leyfilegt möppuheiti'] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\" er er ekki leyfilegt innan í skráarheiti.'] }, { \"msgid\": \"All files\", \"msgstr\": [\"Allar skrár\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Veldu\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Veldu {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Veldu %n skrá\", \"Veldu %n skrár\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Afrita\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Afrita í {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Get ekki búið til nýju möppuna\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Tókst ekki að hlaða inn stillingum skráa\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Tókst ekki að hlaða inn sýnum skráa\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Búa til möppu\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Núverandi val sýnar\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Eftirlæti\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Skrár og möppur sem þú merkir sem eftirlæti birtast hér.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Skrár og möppur sem þú breyttir nýlega birtast hér.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Sía skráalista\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"Möppuheiti má ekki vera tómt.\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Heim\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Breytt\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Færa\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Færa í {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Heiti\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nýtt\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Ný mappa\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Heiti nýrrar möppu\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Engar skrár hér\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Engar skrár fundust sem passa við síuna.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Engar samsvarandi skrár\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Nýlegt\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Velja allar færslur\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Velja færslu\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Veldu röðina fyrir {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Stærð\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Afturkalla\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Sendu inn eitthvað efni eða samstilltu við tækin þín!\"] }] }, { \"language\": \"it\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [`\"{char}\" non è consentito all'interno di un nome di cartella.`] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": [`\"{char}\" non è consentito all'interno di un nome.`] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" non è un nome consentito'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" è un nome riservato e non consentito per i nomi delle cartelle.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" è un nome riservato e non consentito.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n file in conflitto\", \"%n file in conflitto\", \"%n file in conflitto\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n file in conflitto in {dirname}\", \"%n file in conflitto in {dirname}\", \"%n file in conflitto in {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Tutti i file\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Annulla\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Annulla l'intera operazione\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Scegli\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Scegli {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Scegli %n file\", \"Scegli %n file\", \"Scegli %n file\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Conferma\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Continua\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Copia\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Copia in {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Impossibile creare la nuova cartella\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Impossibile caricare le impostazioni dei file\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Impossibile caricare le visualizzazioni dei file\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Crea cartella\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Selettore della vista attuale\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Inserisci il tuo nome\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Versione esistente\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Impossibile impostare lo pseudonimo.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Preferiti\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"I file e le cartelle contrassegnate come preferite saranno mostrate qui.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"I file e le cartelle che hai modificato di recente saranno mostrate qui.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtra l'elenco dei file\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['I nomi delle cartelle devono finire con \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Identificazione ospiti\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Home\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Se selezioni entrambe le versioni, al nome del file in arrivo verrà aggiunto un numero.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Nome cartella non valido.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Nome non valido.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Data di ultima modifica sconosciuta\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Modificato\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Sposta\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Sposta in {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nome\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"I nomi dovrebbero avere una lunghezza massima di 64 caratteri.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"I nomi non devono essere vuoti.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['I nomi devono finire con \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"I nomi non possono iniziare con un punto.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nuovo\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Nuova cartella\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Nome della nuova cartella\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Nuova versione\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Nessun file qui\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Nessun file che corrisponde al tuo filtro è stato trovato.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Nessun file corrispondente\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Digita un nome con almeno 2 caratteri.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Recente\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Seleziona tutte le caselle\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Scegli tutte le voci\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleziona tutti i file esistenti\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleziona tutti i nuovi file\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Seleziona la voce\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Seleziona la riga per {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Dimensioni\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Salta %n file\", \"Salta %n file\", \"Salta %n file\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Salta questo file\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Invia nome\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Annulla\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Carica qualche contenuto o sincronizza con i tuoi dispositivi!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Quando si seleziona una cartella in arrivo, anche tutti i file in conflitto al suo interno saranno sovrascritti.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Quando si seleziona una cartella in arrivo, il contenuto viene scritto nella cartella esistente e viene eseguita una risoluzione ricorsiva dei conflitti.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quali file vuoi conservare?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Sei attualmente identificato come {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Attualmente non sei identificato.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Non puoi lasciare il nome vuoto.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Devi scegliere almeno una soluzione al conflitto\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Per continuare, è necessario selezionare almeno una versione di ciascun file.\"] }] }, { \"language\": \"ja_JP\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['フォルダー名に \"{char}\" を使用することはできません。'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['名前に \"{char}\" を使用することはできません。'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" は許可された名前ではありません。'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" は予約名のため、使用できません。'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" は予約名のため、使用できません。'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%nファイルが競合しています\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%nディレクトリ{dirname}内のファイル競合\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"すべてのファイル\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"キャンセル\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"すべての操作をキャンセル\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"選択\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"{file} を選択\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"%n 個のファイルを選択\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"確認\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"続行\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"コピー\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"{target} にコピー\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"新しいフォルダーを作成できませんでした\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"ファイル設定を読み込めませんでした\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"ファイルビューを読み込めませんでした\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"ディレクトリを作成\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"現在のビュー選択\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"名前を入力してください\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"現行バージョン\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"ニックネームの設定に失敗しました。\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"お気に入り\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"お気に入りとしてマークしたファイルとフォルダーがここに表示されます。\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"最近変更したファイルとフォルダーがここに表示されます。\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"ファイルのリストをフィルター\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['フォルダー名の末尾に \"{extension}\" を使用できません。'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"ゲスト識別\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"ホーム\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"両方のバージョンを選択した場合、受信ファイル名には番号が追加されます。\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"フォルダー名が無効です。\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"無効な名前です。\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"最終更新日不明\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"変更済み\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"移動\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"{target} に移動\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"名前\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"名前は最大64文字です。\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"名前は空にできません。\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['名前の末尾に \"{extension}\" を使用できません。'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"ドットで始まる名前は使用できません。\"] }, { \"msgid\": \"New\", \"msgstr\": [\"新規作成\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"新しいフォルダー\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"新しいフォルダーの名前\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"新バージョン\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"ファイルがありません\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"フィルターに一致するファイルは見つかりませんでした。\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"一致するファイルはありません\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"名前は2文字以上を入力してください。\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"最近\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"すべてのチェックボックスを選択\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"すべてのエントリを選択\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"既存のファイルをすべて選択\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"すべての新規ファイルを選択\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"エントリを選択\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"{nodename} の行を選択\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"サイズ\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"%n 個のファイルをスキップ\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"このファイルをスキップ\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"名前を送信する\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"元に戻す\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"コンテンツをアップロードするか、デバイスと同期してください!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"受信フォルダーを選択すると、そのフォルダー内の競合ファイルも上書きされます。\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"受信フォルダーを選択すると、内容は既存のフォルダーに書き込まれ、再帰的な競合解決が実行されます。\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"どのファイルを残しますか?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"現在、{nickname}として識別されています。\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"現在あなたは識別されていません。\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"名前を空にすることはできません。\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"少なくとも1つの競合ソリューションを選択する必要があります\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"続行するには、各ファイルのバージョンを少なくとも1つ選択する必要があります。\"] }] }, { \"language\": \"ko\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [\"문자 '{char}'은(는) 폴더 이름에 사용할 수 없습니다.\"] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": [\"문자 '{char}'은(는) 이름에 사용할 수 없습니다.\"] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": [\"'{extension}'은(는) 사용 불가능한 이름입니다.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": [\"'{segment}'은(는) 예약된 이름이므로 폴더 이름으로 사용할 수 없습니다.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": [\"'{segment}'은(는) 예약된 이름이므로 사용할 수 없습니다.\"] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n개의 파일이 충돌함\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"{dirname}에서 %n개의 파일이 충돌함\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"모든 파일\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"취소\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"전체 작업 취소\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"선택\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"{file} 선택\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"파일 %n개 선택\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"확인\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"계속\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"복사\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"{target}(으)로 복사\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"새 폴더를 만들 수 없음\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"파일 설정을 불러오지 못함\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"파일 보기를 불러오지 못함\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"디렉토리 만들기\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"현재 보기 방식\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"이름을 입력하세요\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"기존 버전\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"닉네임을 설정하지 못했습니다.\\n \"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"즐겨찾기\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"즐겨찾기 한 파일 및 폴더가 이곳에 표시됩니다.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"최근 수정된 파일 및 폴더가 이곳에 표시됩니다.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"파일 목록 필터링\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": [\"폴더 이름은 '{extension}'(으)로 끝날 수 없습니다.\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"게스트 확인\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"홈\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"두 버전을 모두 선택할 경우 새로 추가되는 파일의 이름에 숫자가 붙게 됩니다.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"잘못된 폴더 이름입니다.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"잘못된 이름입니다. \"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"최근 수정일 알 수 없음\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"수정됨\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"이동\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"{target}(으)로 이동\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"이름\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"이름은 최대 64글자까지 지정할 수 있습니다.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"이름은 비어 있을 수 없습니다.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": [\"이름은 '{extension}'(으)로 끝날 수 없습니다.\"] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"이름은 마침표로 시작될 수 없습니다.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"새로 만들기\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"새 폴더\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"새 폴더명\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"새로운 버전\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"파일이 없습니다\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"선택된 필터에 해당하는 파일이 없습니다.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"해당하는 파일 없음\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"최소 두 글자 이상의 이름을 입력해주세요.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"최근\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"체크박스 모두 선택\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"모두 선택\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"기존 파일 모두 선택\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"새 파일 모두 선택\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"항목 선택\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"{nodename}의 행 선택\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"크기\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"%n개 파일 건너뛰기\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"이 파일 건너뛰기\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"이름 제출\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"되돌리기\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"기기에서 파일을 업로드 또는 동기화하세요!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"새 폴더를 선택할 경우, 해당 폴더 내의 충돌 파일들도 덮어쓰기 됩니다.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"새 폴더를 선택할 경우 내용물이 기존 폴더에 기록되며 재귀적 충돌 해결이 수행됩니다.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"어떤 파일들을 유지하시겠습니까?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"{nickname}(으)로 인증된 상태 입니다.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"현재 인증 정보가 없습니다.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"이름은 비워 둘 수 없습니다. \"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"최소한 하나의 충돌 해결 방안을 선택해야 합니다.\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"계속하기 위해서는 한 파일에 최소 하나의 버전을 선택해야 합니다.\"] }] }, { \"language\": \"lb\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": [\"{name} ass en ongëlteg Dossier\"] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": [\"{name} ass net en erlaabten Dossiernumm\"] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\" ass net an engem Dossier Numm erlaabt'] }, { \"msgid\": \"All files\", \"msgstr\": [\"All Dateien\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Wielt\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Wielt {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Wielt %n Fichieren\", \"Wielt %n Fichier\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopie\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Kopie op {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Konnt den neien Dossier net erstellen\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Konnt d'Dateienastellungen net lueden\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Konnt d'Dateien net lueden\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Erstellt Verzeechnes\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Aktuell Vue selector\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoritten\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Dateien an Ordner, déi Dir als Favorit markéiert, ginn hei gewisen\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Dateien an Ordner déi Dir viru kuerzem geännert hutt ginn hei op\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filter Datei Lëscht\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"Dossier Numm kann net eidel sinn\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Wëllkomm\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Geännert\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Plënne\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Plënneren {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Numm\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nei\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Neien dossier\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Neien dossier numm\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Kee fichier hei\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Kee fichier deen äre filter passt gouf fonnt\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Keng passende dateien\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Rezent\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Wielt all entréen\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Wielt entrée\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Wielt d'zeil fir {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Gréisst\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Undoen\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Luet en inhalt erop oder synchroniséiert mat ären apparater\"] }] }, { \"language\": \"lo\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['\"{char}\" ບໍ່ອະນຸຍາດໃຫ້ມີຢູ່ໃນຊື່ໂຟນເດີ.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['ບໍ່ອະນຸຍາດໃຫ້ມີ \"{char}\" ພາຍໃນຊື່.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" ບໍ່ແມ່ນຊື່ທີ່ໄດ້ຮັບອະນຸຍາດ.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" ແມ່ນຊື່ທີ່ສະຫງວນໄວ້ ແລະ ບໍ່ອະນຸຍາດໃຫ້ໃຊ້ເປັນຊື່ໂຟນເດີ.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" ແມ່ນຊື່ທີ່ສະຫງວນໄວ້ ແລະ ບໍ່ໄດ້ຮັບອະນຸຍາດ.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"ໄຟລ໌ຂັດກັນ %n ລາຍການ\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"ໄຟລ໌ຂັດກັນ %n ລາຍການໃນ {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"ໄຟລ໌ທັງໝົດ\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"ຍົກເລີກ\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"ຍົກເລີກການດຳເນີນການທັງໝົດ\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"ເລືອກ\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"ເລືອກ {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"ເລືອກ %n ໄຟລ໌\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"ຢືນຢັນ\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"ດຳເນີນການຕໍ່\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"ຄັດລອກ\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"ຄັດລອກໄປທີ່ {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"ບໍ່ສາມາດສ້າງໂຟນເດີໃໝ່ໄດ້\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"ບໍ່ສາມາດໂຫຼດການຕັ້ງຄ່າໄຟລ໌ໄດ້\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"ບໍ່ສາມາດໂຫຼດມຸມມອງໄຟລ໌ໄດ້\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"ສ້າງໄດເຣັກທໍຣີ\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"ຕົວເລືອກມຸມມອງປັດຈຸບັນ\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"ປ້ອນຊື່ຂອງທ່ານ\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"ເວີຊັນທີ່ມີຢູ່\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"ຕັ້ງຊື່ຫຼິ້ນບໍ່ສຳເລັດ.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"ລາຍການທີ່ມັກ\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"ໄຟລ໌ ແລະ ໂຟນເດີທີ່ທ່ານໝາຍວ່າເປັນລາຍການທີ່ມັກຈະສະແດງຢູ່ບ່ອນນີ້.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"ໄຟລ໌ ແລະ ໂຟນເດີທີ່ທ່ານແກ້ໄຂລ່າສຸດຈະສະແດງຢູ່ບ່ອນນີ້.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"ກັ່ນຕອງລາຍການໄຟລ໌\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['ຊື່ໂຟນເດີຕ້ອງບໍ່ລົງທ້າຍດ້ວຍ \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"ການລະບຸຕົວຕົນຂອງແຂກ\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"ໜ້າຫຼັກ\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"ຖ້າທ່ານເລືອກທັງສອງເວີຊັນ, ໄຟລ໌ທີ່ເຂົ້າມາຈະມີຕົວເລກເພີ່ມໃສ່ຊື່ຂອງມັນ.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"ຊື່ໂຟນເດີບໍ່ຖືກຕ້ອງ.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"ຊື່ບໍ່ຖືກຕ້ອງ.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"ບໍ່ຮູ້ວັນທີແກ້ໄຂລ່າສຸດ\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"ແກ້ໄຂເມື່ອ\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"ຍ້າຍ\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"ຍ້າຍໄປທີ່ {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"ຊື່\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"ຊື່ອາດມີຄວາມຍາວສູງສຸດ 64 ຕົວອັກສອນ.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"ຊື່ຕ້ອງບໍ່ຫວ່າງເປົ່າ.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['ຊື່ຕ້ອງບໍ່ລົງທ້າຍດ້ວຍ \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"ຊື່ຕ້ອງບໍ່ຂຶ້ນຕົ້ນດ້ວຍຈຸດ.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"ໃໝ່\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"ໂຟນເດີໃໝ່\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"ຊື່ໂຟນເດີໃໝ່\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"ເວີຊັນໃໝ່\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"ບໍ່ມີໄຟລ໌ຢູ່ບ່ອນນີ້\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"ບໍ່ພົບໄຟລ໌ທີ່ກົງກັບການກັ່ນຕອງຂອງທ່ານ.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"ບໍ່ມີໄຟລ໌ທີ່ກົງກັນ\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"ກະລຸນາປ້ອນຊື່ທີ່ມີຢ່າງໜ້ອຍ 2 ຕົວອັກສອນ.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"ລ່າສຸດ\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"ເລືອກກ່ອງໝາຍທັງໝົດ\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"ເລືອກທຸກລາຍການ\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"ເລືອກໄຟລ໌ທີ່ມີຢູ່ທັງໝົດ\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"ເລືອກໄຟລ໌ໃໝ່ທັງໝົດ\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"ເລືອກລາຍການ\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"ເລືອກແຖວສຳລັບ {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"ຂະໜາດ\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"ຂ້າມ %n ໄຟລ໌\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"ຂ້າມໄຟລ໌ນີ້\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"ສົ່ງຊື່\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"ເອົາຄືນ\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"ອັບໂຫຼດເນື້ອຫາ ຫຼື ຊິງຄ໌ກັບອຸປະກອນຂອງທ່ານ!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"ເມື່ອເລືອກໂຟນເດີທີ່ເຂົ້າມາ, ໄຟລ໌ໃດໆທີ່ຂັດກັນພາຍໃນໂຟນເດີນັ້ນກໍຈະຖືກຂຽນທັບເຊັ່ນກັນ.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"ເມື່ອເລືອກໂຟນເດີທີ່ເຂົ້າມາ, ເນື້ອຫາຈະຖືກຂຽນລົງໃນໂຟນເດີທີ່ມີຢູ່ ແລະ ຈະມີການແກ້ໄຂຂໍ້ຂັດແຍ່ງແບບຕໍ່ເນື່ອງ.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"ທ່ານຕ້ອງການເກັບໄຟລ໌ໃດໄວ້?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"ຕອນນີ້ທ່ານຖືກລະບຸວ່າເປັນ {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"ຕອນນີ້ທ່ານຍັງບໍ່ໄດ້ຖືກລະບຸຕົວຕົນ.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"ທ່ານບໍ່ສາມາດປະຊື່ໃຫ້ຫວ່າງເປົ່າໄດ້.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"ທ່ານຈຳເປັນຕ້ອງເລືອກວິທີແກ້ໄຂຂໍ້ຂັດແຍ່ງຢ່າງໜ້ອຍໜຶ່ງຢ່າງ\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"ທ່ານຈຳເປັນຕ້ອງເລືອກຢ່າງໜ້ອຍໜຶ່ງເວີຊັນຂອງແຕ່ລະໄຟລ໌ເພື່ອດຳເນີນການຕໍ່.\"] }] }, { \"language\": \"lt_LT\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [\"„{char}“ negalima naudoti aplanko pavadinime.\"] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": [\"„{char}“ negalima naudoti vardo sudėtyje.\"] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": [\"„{extension}“ nėra leidžiamas vardas.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": [\"„{segment}“ yra rezervuotas vardas, kurio negalima naudoti aplankų pavadinimuose.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": [\"„{segment}“ yra rezervuotas vardas, todėl jo naudoti negalima.\"] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n failo konfliktas\", \"%n failų konfliktas\", \"%n failų konfliktas\", \"%n failų konfliktas\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n failo konfliktas {dirname}\", \"%n failų konfliktas {dirname}\", \"%n failų konfliktas {dirname}\", \"%n failų konfliktas {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Visi failai\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Atsisakyti\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Atsisakyti visos operacijos\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Pasirinkti\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Pasirinkti {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Pasirinkti %n failą\", \"Pasirinkti %n failus\", \"Pasirinkti %n failų\", \"Pasirinkti %n failą\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Patvirtinti\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Tęsti\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopijuoti\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Kopijuoti į {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Nepavyko sukurti naujo aplanko\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Nepavyko įkelti failų nustatymų\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Nepavyko įkelti failų peržiūrų\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Sukurti katalogą\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Dabartinis peržiūros pasirinkimas\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Įrašykite savo vardą\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Esama versija\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Nepavyko nustatyti slapyvardžio\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Populiariausi\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Failai ir aplankai, kuriuos pažymėsite kaip mėgstamiausius, bus rodomi čia.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Čia bus rodomi failai ir aplankai, kuriuos neseniai pakeitėte.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtruoti failų sąrašą\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": [\"Aplankų pavadinimai neturi baigtis simboliu „{extension}“.\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Svečio identifikacija\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Pradžia\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Jei pasirinksite abi versijas, prie gaunamo failo pavadinimo bus pridėtas numeris.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Netinkamas aplanko pavadinimas.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Netinkamas pavadinimas.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Paskutinio atnaujinimo data nežinoma\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Pakeista\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Perkelti\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Perkelti į {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Vardas\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Vardų ilgis negali viršyti 64 simbolių.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Pavadinimai negali būti tušti.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": [\"Vardai neturi baigtis simboliu „{extension}“.\"] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Vardai negali prasidėti tašku.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Naujas\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Naujas aplankas\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Naujas aplanko pavadinimas\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Nauja versija\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Čia failų nėra\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Nepavyko rasti failų pagal filtro nustatymus\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Nėra atitinkančių failų\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Įrašykite vardą iš mažiausiai dviejų ženklų.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Nauji\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Pažymėti visus langelius\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Žymėti visus įrašus\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Pažymėti visus esamus failus\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Pažymėti visus naujus failus\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Žymėti įrašą\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Pasirinkite eilutę {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Dydis\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Praleisti %n failą\", \"Praleisti %n failus\", \"Praleisti %n failų\", \"Praleisti %n failą\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Praleisti šį failą\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Pateikti pavadinimą\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Atšaukti\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Įkelkite turinio arba sinchronizuokite su savo įrenginiais!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Pasirinkus įeinančių failų aplanką, jame esantys failai, su kuriais kyla konfliktas, taip pat bus perrašyti.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Pasirinkus įeinančių failų aplanką, jo turinys įrašomas į esamą aplanką ir atliekamas rekursyvus konfliktų sprendimas.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Kokius failus norite išsaugoti?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Šiuo metu esate identifikuotas kaip {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Šiuo metu nesate identifikuotas.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Negalite palikti tuščio vardo lauko.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Turite pasirinkti bent vieną konflikto sprendimo būdą\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Norėdami tęsti, turite pasirinkti bent vieną kiekvieno failo versiją.\"] }] }, { \"language\": \"lv\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": ['\"{name}\" nav derīgs mapes nosaukums.'] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": ['\"{name}\" nav atļauts mapes nosaukums'] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\" nav atļauts mapes nosaukuma izmantošanā.'] }, { \"msgid\": \"All files\", \"msgstr\": [\"Visas datnes\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Izvēlieties\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Izvēlieties {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Izvēlēties %n datņu\", \"Izvēlēties %n datni\", \"Izvēlēties %n datnes\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopēt\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Kopēt uz {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Nevarēja izveidot jaunu mapi\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Nevarēja ielādēt datņu iestatījumus\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Nevarēja ielādēt datņu apskatījumus\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Izveidot direktoriju\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Pašreizēja skata atlasītājs\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favorīti\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Šeit parādīsies datnes un mapes, kas tiks atzīmētas kā iecienītas.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Šeit parādīsies datnes un mapes, kuras nesen tika izmainītas.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Atlasīt datņu sarakstu\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"Mapes nosaukums nevar būt tukšs.\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Sākums\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Izmaninīta\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Pārvietot\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Pārvietot uz {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nosaukums\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Jauns\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Jauna mape\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Jaunas mapes nosaukums\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Šeit nav datņu\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Netika atrasta neviena datne, kas atbilst atlasei.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Nav atbilstošu datņu\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Nesenās\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Atlasīt visus ierakstus\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Atlasīt ierakstu\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Atlasīt rindu {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Izmērs\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Atsaukt\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Augšupielādē kādu saturu vai sinhronizē savās iekārtās!\"] }] }, { \"language\": \"mk\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['\"{char}\" не е дозволен во име на папка.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" не е дозволено во име.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" не е дозволено име.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" е резервирано име и не е дозволено за име на папка.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" е резервирано име и не е дозволено.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n конфликт со датотекa\", \"%n конфликти со датотеки\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n конфликт со датотека во {dirname}\", \"%n конфликти со датотеки vo {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Сите датотеки\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Откажи\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Прекини ја целата операција\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Избери\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Избери {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Избери %n датотека\", \"Избери %n датотеки\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Потврди\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Продолжи\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Копирај\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Копирај во {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Неможе да се креира нова папка\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Неможе да се вчиаат параметрите за датотеките\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Неможе да се вчитаат погледите за датотеките\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Креирај папка\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Избирач на тековен приказ\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Внесете го вашето име\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Моментална верзија\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Неуспешно поставување прекар.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Фаворити\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Датотеките и папките кој ќе ги означите за омилени ќе се појават овде.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Датотеките и папките кој неодамна сте ги измениле ќе се појават овде.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Филтрирај листа на датотеки\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Имињата на папките неможе да завршуваат со \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Гостинска идентификација\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Почетна\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Ако ги избереш двете верзии, влезната датотека ќе добие број додаден на нејзиното име.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Невалидно име на папка.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Невалидно име.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Датумот на последна измена е непознат\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Променето\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Премести\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Премести во {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Име\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Имињата можат да бидат најмногу со 64 карактери.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Имињата неможе да бидат празни.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Имињата неможе да завршуваат со \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Имињата неможе да започнуваат со точка.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Нова\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Нова папка\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Ново име на папка\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Нова верзија\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Овде нема датотеки\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Не се пронајдени датотеки што одговараат на вашиот филтер.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Нема датотеки што се совпаѓаат\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Внесете име со најмалку 2 карактери.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Неодамнешни\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Избери ги сите полиња за избор\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Изберете ги сите записи\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Изберете ги сите постоечки датотеки\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Изберете ги сите нови датотеки\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Избери запис\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Избери ред за {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Големина\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Прескокни %n датотека\", \"Прескокни %n датотеки\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Прескокни ја оваа датотека\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Испрати име\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Врати\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Прикачи содржина или синхронизирај со ваши уреди!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Кога е избрана влезна папка, сите конфликтни датотеки во неа исто така ќе бидат препишани.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Кога е избрана влезна папка, содржината се запишува во постоечката папка и се извршува рекурсивно решавање на конфликти.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Кој датотеки сакаш да ги зачуваш?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Моментално сте идентификувани како {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Моментално не сте идентификувани.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Не можете да го оставите името празно.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Треба да избереш најмалку едно решение за конфликт\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Треба да избереш најмалку една верзија за секоја датотека за да продолжи.\"] }] }, { \"language\": \"ms_MY\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": ['\"{name}\" adalah nama folder yang tidak sesuai '] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": ['\"{name}\" nama folder yang tidak dibenarkan'] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\" tidak dibenarkan dalam nama folder'] }, { \"msgid\": \"All files\", \"msgstr\": [\"Semua fail\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Pilih\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Pilih {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Pilih fail %n\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"menyalin\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"menyalin ke {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Tidak dapat mewujudkan folder baharu\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Tidak dapat memuatkan tetapan fail\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Tidak dapat memuatkan paparan fail\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"mewujudkan direktori\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"pemilih pandangan semasa\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Pilihan\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Fail dan folder yang anda tanda sebagai pilihan akan dipaparkan di sini.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Fail dan folder yang anda telah ubah suai baru-baru ini dipaparkan di sini.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Menapis senarai fail\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"Nama folder tidak boleh kosong.\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Utama\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Ubah suai\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"pindah\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"pindah ke {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nama\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Baru\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Folder Baharu\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Nama folder baharu\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Tiada fail di sini\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Tiada fail yang sepadan dengan tapisan anda.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Tiada fail yang sepadan\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"baru-baru ini\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Pilih semua entri\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Pilih entri\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"memilih baris {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Saiz\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"buat asal\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Muat naik beberapa kandungan atau selaras dengan peranti anda!\"] }] }, { \"language\": \"nb_NO\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" er ikke tillatt i et navn.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" er ikke et tillatt navn.'] }, { \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": [\"«{name}» er ikke et gyldig mappenavn.\"] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": [\"«{name}» er ikke et tillatt mappenavn.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" er et reservert navn og er ikke tillatt.'] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\" er ikke tillatt inne i et mappenavn.'] }, { \"msgid\": \"All files\", \"msgstr\": [\"Alle filer\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Avbryt\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Velg\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Velg {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Velg %n fil\", \"Velg %n filer\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopier\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Kopier til {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Kunne ikke opprette den nye mappen\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Kunne ikke laste filinnstillinger\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Kunne ikke laste filvisninger\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Opprett mappe\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Nåværende visningsvelger\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Skriv inn navnet ditt\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Kunne ikke lagre kallenavnet.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoritter\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Filer og mapper du markerer som favoritter vil vises her.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Filer og mapper du nylig har endret, vil vises her.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrer filliste\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"Mappenavn kan ikke være tomt.\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Gjesteidentifikasjon\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Hjem\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Ugyldig navn.\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Modifisert\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Flytt\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Flytt til {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Navn\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Navn kan ikke være tomme.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Navn kan ikke ende med \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Navn kan ikke starte med et punktum.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Ny\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Ny mappe\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Nytt mappenavn\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Ingen filer her\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Ingen filer funnet med ditt filter.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Ingen filer samsvarer\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Vennligst angi et navn som har minst 2 tegn.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Nylige\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Velg alle oppføringer\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Velg oppføring\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Velg raden for {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Størrelse\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Bekreft navn\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Angre\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Last opp innhold eller synkroniser med enhetene dine!\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Du er akkurat nå identifisert som {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Du er akkurat nå ikke identifisert.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Du kan ikke la navnet være blankt.\"] }] }, { \"language\": \"nl\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [\"{char}is niet toegestaan in een mapnaam.\"] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" kan niet gebruikt worden in de benaming.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" is geen toegestane naam.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" is een gereserveerde naam en niet toegestaan in mapnamen.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" is een gereserveerde naam en niet toegestaan.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n bestanden conflicteren\", \"%nbestand bestanden conflicteren\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n bestand conflicteerd in {dirname}\", \"%nbestanden conflicteert in {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Alle bestanden\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Annuleren\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Annuleer de hele bewerking\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Kiezen\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Kies {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Kies %n bestand\", \"Kies %n bestanden\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Bevestigen\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Doorgaan\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopiëren\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Kopiëren naar {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Kon de nieuwe map niet maken\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Kon de bestandsinstellingen niet laden\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Kon de bestandsweergaves niet laden\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Map aanmaken\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Huidige weergave keuze\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Voer je naam in\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Bestaande versie\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Kon geen bijnaam instellen.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favorieten\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Bestanden en mappen die je als favoriet markeert, verschijnen hier.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Bestanden en mappen die je recentelijk hebt gewijzigd, verschijnen hier.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Bestandslijst filteren\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Mapnamen mogen niet eindigen op \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Gastenidentificatie\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Thuis\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Als u beide versies selecteert wordt een nummer toegevoegd aan de naam van het binnenkomende bestand.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Ongeldige mapnaam.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Ongeldige naam.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Laatste wijzigingsdatum onbekend\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Gewijzigd\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Verplaatsen\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Verplaatsen naar {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Naam\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Namen mogen maximaal 64 tekens lang zijn.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Namen mogen niet leeg zijn.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Namen mogen niet eindigen met \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Namen mogen niet begonnen met een punt.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nieuw\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Nieuwe map\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Nieuwe mapnaam\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Nieuwe versie\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Geen bestanden hier\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Geen bestanden gevonden die voldoen aan je filter.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Geen overeenkomende bestanden\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Voer een naam in met minimaal 2 tekens.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Recent\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Selecteer alle aanvinkopties\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Alle invoer selecteren\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Selecteer alle bestaande bestanden\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Selecteer alle nieuwe bestanden\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Invoer selecteren\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Selecteer de rij voor {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Grootte\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Sla %n bestand over\", \"Sla %n bestanden over\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Sla dit bestand over\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Naam indienen\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Ongedaan maken\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Upload inhoud of synchroniseer met je apparaten!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Als een inkomende map wordt geselecteerd, worden alle conflicterende bestanden daarin overschreven.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Als een inkomende map wordt geselecteerd, wordt de inhoud naar de bestaande map geschreven en wordt een recursieve conflict-oplossing uitgevoerd.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Welke bestanden wilt u bewaren?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Je wordt momenteel geïdentificeerd als {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Je bent momenteel niet geïdentificeerd.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Je kunt de naam niet leeg laten.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"U moet in elk geval een conflictoplossing kiezen\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"U moet minstens een versie van elk bestand kiezen om door te gaan. \"] }] }, { \"language\": \"pl\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['Znak \"{char}\" nie jest dozwolony w nazwie folderu.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" nie jest dozwolone w nazwie.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" nie jest dozwoloną nazwą.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" jest nazwą zastrzeżoną i nie jest dozwolona jako nazwa folderu.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" jest zastrzeżoną nazwą i nie jest dozwolone.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"Konflikt pliku\", \"Konflikt %n plików\", \"Konflikt %n plików\", \"Konflikt %n plików\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n konfliktów pliku w {dirname}\", \"%n konfliktów plików w {dirname}\", \"%n konfliktów plików w {dirname}\", \"%n konfliktów plików w {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Wszystkie pliki\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Anuluj\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Anuluj całą operację\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Wybierz\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Wybierz {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Wybierz %n plik\", \"Wybierz %n pliki\", \"Wybierz %n plików\", \"Wybierz %n plików\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Potwierdź\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Kontynuuj\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopiuj\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Skopiuj do {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Nie można utworzyć nowego folderu\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Nie można wczytać ustawień plików\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Nie można wczytać widoków plików\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Utwórz katalog\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Bieżący selektor widoku\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Wprowadź nazwę\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Istniejąca wersja\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Nie udało się utworzyć pseudonimu.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Ulubione\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Pliki i foldery które oznaczysz jako ulubione będą wyświetlały się tutaj\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Pliki i foldery które ostatnio modyfikowałeś będą wyświetlały się tutaj\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtruj listę plików\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Nazwy folderów nie mogą kończyć się na \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Identyfikacja gościa\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Strona główna\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Jeśli wybierzesz obie wersje, do nazwy przychodzącego pliku zostanie dodany numer.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Nieprawidłowa nazwa folderu.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Nieprawidłowa nazwa.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Data ostatniej modyfikacji nieznana\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Zmodyfikowano\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Przenieś\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Przejdź do {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nazwa\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Nazwy mogą mieć maksymalnie 64 znaki.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Nazwy nie mogą być puste.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Nazwy nie mogą kończyć się na \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Nazwy nie mogą zaczynać się od kropki.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nowy\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Nowy folder\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Nowa nazwa folderu\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Nowa wersja\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Brak plików\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Nie znaleziono plików spełniających warunki filtru\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Brak pasujących plików\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Wprowadź nazwę zawierającą minimum 2 znaki.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Ostatni\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Zaznacz wszystkie pola wyboru\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Wybierz wszystkie wpisy\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Zaznacz wszystkie istniejące pliki\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Zaznacz wszystkie nowe pliki\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Wybierz wpis\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Wybierz wiersz dla {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Rozmiar\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Pomiń %n plik\", \"Pomiń %n plików\", \"Pomiń %n plików\", \"Pomiń %n plików\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Pomiń ten plik\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Zatwierdź nazwę\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Cofnij\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Wyślij zawartość lub zsynchronizuj ze swoimi urządzeniami!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Po wybraniu przychodzącego folderu wszystkie konfliktujące pliki w jego obrębie również zostaną nadpisane.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Po wybraniu przychodzącego folderu jego zawartość zostanie zapisana w istniejącym folderze i zostanie przeprowadzone rekursywne rozwiązywanie konfliktów.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Które pliki chcesz zachować?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Obecnie jesteś zidentyfikowany jako {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Użytkownik nie został uwierzytelniony.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Nazwa nie może być pusta.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Musisz wybrać co najmniej jedno rozwiązanie konfliktu\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Aby kontynuować, musisz wybrać co najmniej jedną wersję każdego pliku.\"] }] }, { \"language\": \"pt_BR\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['\"{char}\" não é permitido dentro de um nome de pasta.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" não é permitido dentro de um nome.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" não é um nome permitido.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" é um nome reservado e não permitido para nomes de pasta.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" é um nome reservado e não permitido.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n arquivo conflita\", \"%n de arquivos conflitam\", \"%n arquivos conflitam\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n conflito de arquivo em {dirname}\", \"%n de conflitos de arquivos em {dirname}\", \"%n conflitos de arquivos em {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Todos os arquivos\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancelar toda a operação\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Escolher\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Escolher {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Escolher %n arquivo\", \"Escolher %n arquivos\", \"Escolher %n arquivos\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmar\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Copiar\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Copiar para {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Não foi possível criar a nova pasta\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Não foi possível carregar configurações de arquivos\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Não foi possível carregar visualições de arquivos\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Criar diretório\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Seletor de visualização atual\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Digite seu nome\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Versão existente\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Falha ao definir apelido.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoritos\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Os arquivos e pastas que você marca como favoritos aparecerão aqui.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Arquivos e pastas que você modificou recentemente aparecerão aqui.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrar lista de arquivos\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Nomes de pasta não podem terminar com \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Identificação de convidados\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Início\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Se você selecionar ambas as versões, um número será adicionado ao nome do arquivo recebido.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Nome de pasta inválido.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Nome inválido.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Data da última modificação desconhecida\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Modificado\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Mover\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Mover para {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nome\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Os nomes podem ter no máximo 64 caracteres.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Nomes não podem estar vazios.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Nomes não podem terminar com \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Nomes não podem começar com um ponto.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Novo\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Nova pasta\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Novo nome de pasta\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Nova versão\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Nenhum arquivo aqui\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Nenhum arquivo correspondente ao seu filtro foi encontrado.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Nenhum arquivo correspondente\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Digite um nome com pelo menos 2 caracteres.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Recente\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Selecione todas as caixas de seleção\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Selecionar todas as entradas\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Selecione todos os arquivos existentes\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Selecione todos os novos arquivos\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Selecionar entrada\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Selecionar a linha para {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Tamanho\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Ignorar %n arquivo\", \"Ignorar %n de arquivos\", \"Ignorar %n arquivos\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Ignorar este arquivo\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Enviar nome\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Desfazer\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Faça upload de algum conteúdo ou sincronize com seus dispositivos!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Ao selecionar uma pasta de entrada, quaisquer arquivos conflitantes dentro dela também serão sobrescritos.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Quando uma pasta de entrada é selecionada, o conteúdo é gravado na pasta existente e uma resolução recursiva de conflitos é realizada.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quais arquivos você deseja manter?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Você está atualmente identificado como {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"No momento, você não está identificado.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Você não pode deixar o nome vazio.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Você precisa escolher pelo menos uma solução para o conflito\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Você precisa selecionar pelo menos uma versão de cada arquivo para continuar.\"] }] }, { \"language\": \"pt_PT\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['\"{char}\" não é permitido dentro de um nome de pasta.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" não é permitido dentro de um nome.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" não é um nome permitido.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" é um nome reservado e não é permitido para nomes de pasta.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" é um nome reservado e não é permitido.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n ficheiro em conflito\", \"%n ficheiros em conflito\", \"%n ficheiros em conflito\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n ficheiro em conflito em {dirname}\", \"%n ficheiros em conflito em {dirname}\", \"%n ficheiros em conflito em {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Todos os ficheiros\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancelar toda a operação\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Escolher\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Escolher {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Escolha %n ficheiro\", \"Escolha %n ficheiros\", \"Escolha %n ficheiros\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmar\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Copiar\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Copiar para {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Não foi possível criar a nova pasta \"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Não foi possível carregar as definições dos ficheiros\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Não foi possível carregar as visualizações dos ficheiros\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Criar pasta\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Seletor de visualização atual\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Introduza o seu nome\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Versão existente\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Falha ao definir o nome alternativo.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoritos\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Os ficheiros e as pastas que marcar como favoritos aparecerão aqui.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Os ficheiros e as pastas que modificou recentemente aparecerão aqui.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrar lista de ficheiros\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Nomes de pasta não podem terminar em \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Identificação de convidado\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Início\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Se você selecionar ambas as versões, um número será adicionado ao nome do ficheiro recebido.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Nome de pasta inválido.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Nome inválido.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Data da última modificação desconhecida\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Modificado\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Mover\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Mover para {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nome\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Os nomes podem ter no máximo 64 caracteres.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"O nome não pode ficar em branco.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Nomes não podem terminar em \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Os nomes não podem começar por um ponto.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Novo\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Nova pasta\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Novo nome da pasta\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Nova versão\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Sem ficheiros aqui\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Não foi encontrado nenhum ficheiro correspondente ao seu filtro.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Nenhum ficheiro correspondente\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Introduza um nome com, pelo menos, 2 caracteres.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Recentes\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Selecione todas as caixas de seleção\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Selecionar todas as entradas\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Selecione todos os ficheiros existentes\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Selecione todos os novos ficheiros\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Selecionar entrada\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Selecione a linha para {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Tamanho\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Ignorar %n ficheiro\", \"Ignorar %n ficheiros\", \"Ignorar %n ficheiros\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Ignorar este ficheiro\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Submeter nome\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Anular\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Envie algum conteúdo ou sincronize com os seus dispositivos!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Ao selecionar uma pasta de entrada, quaisquer ficheiros conflituantes dentro da mesma serão também sobrescritos.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Quando uma pasta de entrada é selecionada, o conteúdo é gravado na pasta existente e é realizada uma resolução recursiva de conflitos.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quais os ficheiros que deseja manter?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Atualmente está identificado como {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Atualmente, não está identificado.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Não pode deixar o nome em branco.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"É preciso escolher pelo menos uma solução para o conflito.\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"É necessário selecionar pelo menos uma versão de cada ficheiro para continuar.\"] }] }, { \"language\": \"ro\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": ['\"{name}\" este un nume de director invalid.'] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": ['\"{name}\" nu este un nume de director permis'] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\" nu este permis în numele unui director.'] }, { \"msgid\": \"All files\", \"msgstr\": [\"Toate fișierele\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Alege\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Alege {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Alege %n fișier\", \"Alege %n fișiere\", \"Alege %n fișiere\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Copiază\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Copiază în {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Nu s-a putut crea noul director\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Nu s-au putut încărca setările fișierelor\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Nu s-au putut încărca vizualizările fișierelor\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Creează director\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Selectorul curent al vizualizării\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favorite\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Fișiere și directoare pe care le marcați ca favorite vor apărea aici.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Fișiere și directoare pe care le-ați modificat recent vor apărea aici.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrează lista de fișiere\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"Numele de director nu poate fi necompletat.\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Acasă\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Modificat\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Mută\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Mută către {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nume\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nou\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Director nou\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Numele noului director\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Nu există fișiere\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Nu există fișiere potrivite pentru filtrul selectat\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Nu există fișiere potrivite\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Recente\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Selectează toate înregistrările\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Selectează înregistrarea\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Selectează rândul pentru {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Mărime\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Anulează\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Încărcați conținut sau sincronizați cu dispozitivele dumneavoastră!\"] }] }, { \"language\": \"ru\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['\"{char}\" не допускается в названии папки.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" не допускается внутри имени.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" это не допустимое имя.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" это зарезервированное имя и не допустимо для имени папки.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" это зарезервированное имя и не допустимо.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n конфликт файла\", \"%n конфликта файлов\", \"%n конфликтов файлов\", \"%n конфликтов файлов\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n конфликт файлов в {dirname}\", \"%n конфликта файлов в {dirname}\", \"%n конфликтов файлов в {dirname}\", \"%n конфликтов файлов в {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Все файлы\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Отмена\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Отмена операции\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Выбрать\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Выбрать «{file}»\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Выбрать %n файл\", \"Выбрать %n файла\", \"Выбрать %n файлов\", \"Выбрать %n файлов\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Подтвердить\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Продолжить\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Копировать\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Копировать в «{target}»\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Не удалось создать новую папку\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Не удалось загрузить настройки файлов\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Не удалось загрузить конфигурацию просмотра файлов\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Создать папку\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Переключатель текущего вида\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Введите ваше имя\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Текущая версия\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Не удалось задать никнейм.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Избранное\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Здесь будут отображаться файлы и папки, которые вы пометили как избранные.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Здесь будут отображаться файлы и папки, которые вы недавно изменили.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Фильтровать список файлов\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Имена папок не могут оканчиваться на \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Гостевая идентификация\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Домой\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Если вы выберете обе версии, к имени входящего файла будет добавлен номер.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Недопустимое имя папки.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Неверное имя.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Дата последнего изменения неизвестна\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Изменен\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Переместить\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Переместить в «{target}»\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Имя\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Имена не могут быть длинее 64 символов.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Имена не могут быть пустыми.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Имена не могут оканчиваться на \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Имена должны начинаться с точки.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Новый\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Новая папка\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Имя новой папки\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Новая версия\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Здесь нет файлов\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Файлы, соответствующие вашему фильтру, не найдены.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Нет подходящих файлов\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Введите имя длиной не менее 2 символов.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Недавний\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Выбрать все флажки\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Выбрать все записи\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Выбрать все существующие файлы\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Выбрать все новые файлы\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Выбрать запись\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Выбрать строку для «{nodename}»\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Размер\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Пропустить %n файл\", \"Пропустить %n файла\", \"Пропустить %n файлов\", \"Пропустить %n файлов\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Пропустить файл\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Отправить имя\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Отменить\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Загрузите контент или синхронизируйте его со своими устройствами!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Когда выбрана входящая папка, все конфликтующие файлы в ней также будут перезаписаны.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Когда выбрана входящая папка, содержимое записывается в существующую папку и выполняется рекурсивное разрешение конфликтов.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Какие файлы вы хотите сохранить?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Вы идентифицированы как {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"В данный момент вы не идентифицированы.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Вы не можете оставить имя пустым.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Вам нужно выбрать хотя бы одно решение конфликта\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Для продолжения вам нужно выбрать хотя бы одну версию каждого файла.\"] }] }, { \"language\": \"sk_SK\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['\"{char}\" nie je povolené v názve priečinka.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" nie je povolené v rámci mena.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" nie je povolený názov.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": [\"„{segment}“ je rezervované meno a nie je povolené na názvy priečinkov.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" je rezervované meno a nie je povolené.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n konflikt súborov\", \"%n konflikty súborov\", \"%n konfliktov súborov\", \"%n konflikty súborov\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n konflikt súborov v {dirname}\", \"%n konflikty súborov v {dirname}\", \"%n konfliktov súborov v {dirname}\", \"%n konfliktov súborov v {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Všetky súbory\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Zrušiť\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Zrušiť celú operáciu\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Vybrať\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Vybrať {súbor}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Vybraný %n súbor\", \"Vybrané %n súbory\", \"Vybraných %n súborov\", \"Vybraných %n súborov\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Potvrdiť\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Pokračovať\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopírovať\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Kopírovať do {umiestnenia}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Nepodarilo sa vytvoriť nový priečinok\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Nepodarilo sa načítať nastavenia súborov\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Nepodarilo sa načítať pohľady súborov\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Vytvoriť adresár\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Výber aktuálneho zobrazenia\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Zadajte svoje meno\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Existujúca verzia\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Nepodarilo sa nastaviť prezývku.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Obľúbené\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Tu sa zobrazia súbory a priečinky, ktoré označíte ako obľúbené.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Tu sa zobrazia súbory a priečinky, ktoré ste nedávno upravili.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrovať zoznam súborov\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Názvy priečinkov nesmú končiť na \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Identifikácia hosťa\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Domov\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Ak vyberiete obe verzie, prichádzajúci súbor bude mať k svojmu názvu pridané číslo.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Neplatný názov priečinka.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Neplatné meno.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Posledná zmena dátumu neznáma\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Upravené\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Prejsť\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Prejsť na {umiestnenie}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Názov\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Mená môžu mať maximálne 64 znakov.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Mená nesmú byť prázdne.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Mená nesmú končiť \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Mená nesmú začínať bodkou.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Pridať\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Pridať priečinok\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Pridať názov priečinka\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Nová verzia\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Nie sú tu žiadne súbory\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Nenašli sa žiadne súbory zodpovedajúce vášmu filtru.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Žiadne zodpovedajúce súbory\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Zadajte meno s aspoň 2 znakmi.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Nedávne\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Vyberte všetky zaškrtávacie políčka\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Vybrať všetky položky\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Vybrať všetky existujúce súbory\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Vybrať všetky nové súbory\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Vybrať položku\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Vyberte riadok pre {názov uzla}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Veľkosť\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Preskočiť %n súbor\", \"Preskočiť %n súbory\", \"Preskočiť %n súborov\", \"Preskočiť %n súbory\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Preskočiť tento súbor\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Zadať meno\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Späť\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Nahrajte nejaký obsah alebo synchronizujte so svojimi zariadeniami!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Keď je vybraná prichádzajúca složka, všetky konfliktné súbory v nej budú taktiež prepísané.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Keď je vybraná prichádzajúca zložka, obsah sa zapíše do existujúcej zložky a vykoná sa rekurzívne riešenie konfliktov.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Ktoré súbory chcete zachovať?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Momentálne ste identifikovaný ako {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Momentálne nie ste identifikovaný.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Nemôžete nechať meno prázdne.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Musíte si vybrať aspoň jedno riešenie konfliktu.\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Musíte vybrať aspoň jednu verziu každého súboru, aby ste mohli pokračovať.\"] }] }, { \"language\": \"sl\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": [\"{name} je neveljavno ime mape.\"] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": [\"{name} ni dovoljeno ime mape\"] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\" ni dovoljen v imenu mape.'] }, { \"msgid\": \"All files\", \"msgstr\": [\"Vse datoteke\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Izberi\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Izberi {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Izberi %n datoteko\", \"Izberi %n datoteki\", \"Izberi %n datotek\", \"Izberi %n datotek\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopiraj\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Kopiraj v {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Nisem mogel ustvariti nove mape\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"NIsem mogel naložiti nastavitev datotek\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Nisem mogel naložiti pogledov datotek\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Ustvari mapo\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Izbirnik trenutnega pogleda\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Priljubljene\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Datoteke in mape ki jih označite kot priljubljene se bodo prikazale tukaj.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Daoteke in mape ki ste jih pred kratkim spremenili se bodo prikazale tukaj.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtriraj seznam datotek\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"Ime mape ne more biti prazno\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Domov\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Spremenjeno\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Premakni\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Premakni v {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Ime\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Nov\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Nova mapa\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Novo ime mape\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Tukaj ni datotek\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Ni bilo najdenih ujemajočih datotek glede na vaš filter.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Ni ujemajočih datotek\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Nedavne\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Izberi vse vnose\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Izberi vnos\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Izberi vrstico za {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Velikost\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Razveljavi\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Naloži nekaj vsebine ali sinhroniziraj s svojimi napravami!\"] }] }, { \"language\": \"sr\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": [\"„{char}” није дозвољено унутар имена.\"] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": [\"„{extension}” није дозвољено име.\"] }, { \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": [\"„{name}” није исправно име фолдера.\"] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": [\"„{name}” није дозвољено име за фолдер.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": [\"„{segment}” је резервисано име и није дозвољено.\"] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": [\"„/” није дозвољено унутар имена фолдера.\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Сви фајлови\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Откажи\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Изаберите\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Изаберите {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Изаберите %n фајл\", \"Изаберите %n фајла\", \"Изаберите %n фајлова\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Копирај\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Копирај у {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Није могао да се креира нови фолдер\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Не могу да се учитају подешавања фајлова\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Не могу да се учитају прикази фајлова\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Креирај директоријум\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Бирач тренутног приказа\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Унесите своје име\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Није успело постављање надимка.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Омиљено\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Овде ће се појавити фајлови и фолдери које сте означили као омиљене.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Овде ће се појавити фајлови и фолдери који се се недавно изменили.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Фитрирање листе фајлова\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"Име фолдера не може бити празно.\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Идентификација госта\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Почетак\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Неисправно име.\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Измењено\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Премести\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Премести у {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Име\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Највећа дужина имена може бити 64 карактера.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Имена не смеју да буду празна.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": [\"Имена не смеју да се завршавају на „{extension}”.\"] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Имена не смеју да почињу тачком.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Ново\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Нови фолдер\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Име новог фолдера\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Овде нема фајлова\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Није пронађен ниједан фајл који задовољава ваш филтер.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Нема таквих фајлова\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Молимо вас да унесете име од барем два карактера.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Скорашње\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Изаберите све ставке\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Изаберите ставку\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Изаберите ред за {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Величина\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Предај име\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Поништи\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Отпремите нешто или синхронизујте са својим уређајима!\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Тренутно се идентификујете као {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Тренутно немате идентификацију.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Име не можете да оставите празно.\"] }] }, { \"language\": \"sr@latin\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": [\"„{name}” je neispravan naziv foldera.\"] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": [\"„{name}” je nedozvoljen naziv foldera.\"] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": [\"„/” se ne može koristiti unutar naziva foldera.\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Svi fajlovi\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Izaberite\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Izaberite {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Izaberite %n fajl\", \"Izaberite %n fajla\", \"Izaberite %n fajlova\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopiraj\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Kopiraj u {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Neuspešno kreiranje novog foldera\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Neuspešno učitavanje podešavanja fajlova\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Neuspešno učitavanje prikaza fajlova\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Kreiraj direktorijum\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Birač trenutnog prikaza\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Omiljeno\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Lista omiljenih fajlova i foldera.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Lista fajlova i foldera sa skorašnjim izmenama.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Fitriranje liste fajlova\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"Naziv foldera ne može biti prazan.\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Početak\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Izmenjeno\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Premesti\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Premesti u {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Naziv\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Novo\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Novi folder\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Naziv novog foldera\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Bez fajlova\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Nema fajlova koji zadovoljavaju uslove filtera.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Nema takvih fajlova\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Skorašnje\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Izaberite sve stavke\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Izaberite stavku\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Izaberite red za {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Veličina\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Vrati\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Otpremite sadržaj ili sinhronizujte sa svojim uređajima!\"] }] }, { \"language\": \"sv\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['\"{char}\" är inte tillåtet i ett mappnamn.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" är inte tillåtet i ett namn.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" är inte ett tillåtet namn.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" är ett reserverat namn och inte tillåtet mappnamn.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" är ett reserverat namn och inte tillåtet.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n fil är i konflikt\", \"%n filer är i konflikt\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n fil är i konflikt i {dirname}\", \"%n filer är i konflikt i {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Alla filer\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Avbryt\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Avbryt hela operationen\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Välj\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Välj {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Välj %n fil\", \"Välj %n filer\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Bekräfta\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsätt\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopiera\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Kopiera till {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Kunde inte skapa den nya mappen\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Kunde inte ladda filinställningar\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Kunde inte ladda filvyer\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Skapa katalog\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Aktuell vyväljare\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Ange ditt namn\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Nuvarande version\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Kunde inte ställa in smeknamn.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Favoriter\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Filer och mappar som du markerar som favorit kommer att visas här.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Filer och mappar som du nyligen ändrat kommer att visas här.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filtrera fillistan\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Mappnamn får inte sluta med \"{extension}\".'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Gästidentifiering\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Hem\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Om du väljer båda versionerna kommer den inkommande filen att få ett nummer tillagt i sitt namn.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Ogiltigt mappnamn.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Ogiltigt namn.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Senaste ändringsdatum okänt\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Ändrad\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Flytta\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Flytta till {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Namn\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Namnen kan vara högst 64 tecken långa.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Namn får inte vara tomt.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Namn får inte sluta med \"{extension}\".'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Namn får inte börja med en punkt.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Ny\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Ny mapp\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Nytt mappnamn\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Ny version\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Inga filer här\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Inga filer som matchar ditt filter hittades.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Inga matchande filer\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Ange ett namn med minst 2 tecken.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Nyligen\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Markera alla kryssrutor\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Välj alla poster\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Välj alla befintliga filer\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Välj alla nya filer\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Välj post\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Välj raden för {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Storlek\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Hoppa över %n fil\", \"Hoppa över %n filer\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Hoppa över den här filen\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Skicka namn\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Ångra\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Ladda upp lite innehåll eller synkronisera med dina enheter!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"När en inkommande mapp väljs kommer eventuella konflikterande filer i den också att skrivas över.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"När en inkommande mapp väljs skrivs innehållet in i den befintliga mappen och en rekursiv konfliktlösning utförs.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Vilka filer vill du behålla?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Du är för närvarande identifierad som {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Du är för närvarande inte identifierad.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Du kan inte lämna namnet tomt.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Du måste välja minst en konfliktlösning\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Du måste välja minst en version av varje fil för att fortsätta.\"] }] }, { \"language\": \"tr\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['\"{char}\" karakteri bir klasör adında kullanılamaz.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['Bir ad içinde \"{char}\" karakteri kullanılamaz.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" adına izin verilmiyor.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": ['\"{segment}\" adı sistem için ayrılmış olduğundan klasör adlarında kullanılamaz.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" adı sistem için ayrılmış olduğundan kullanılamaz.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n dosya çakışıyor\", \"%n dosya çakışıyor\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"{dirname} içindeki %n dosya çakışıyor\", \"{dirname} içindeki %n dosya çakışıyor\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Tüm dosyalar\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"İptal\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Tüm işlemi iptal et\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Seçin\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"{file} seçin\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"%n dosya seçin\", \"%n dosya seçin\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Onayla\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"İlerle\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Kopyala\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"{target} üzerine kopyala\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Yeni klasör oluşturulamadı\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Dosyalar uygulamasının ayarları yüklenemedi\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Dosyalar uygulamasının görünümleri yüklenemedi\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Klasör oluştur\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Geçerli görünüm seçici\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Adınızı yazın\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Var olan sürüm\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Takma ad ayarlanamadı.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Sık kullanılanlar\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Sık kullanılan olarak seçtiğiniz dosyalar burada görüntülenir.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Son zamanlarda değiştirdiğiniz dosya ve klasörler burada görüntülenir.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Dosya listesini süz\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Klasör adları \"{extension}\" ile bitemez.'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Konuk kimliği\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Giriş\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"İki sürümü de seçerseniz, gelen dosyanın adına bir sayı eklenir.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Klasör adı geçersiz.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Ad geçersiz.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Son değiştirilme tarihi bilinmiyor.\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Değiştirilme\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Taşı\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"{target} üzerine taşı\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Ad\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Adlar en fazla 64 karakter uzunluğunda olabilir.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Ad boş olamaz.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Ad \"{extension}\" ile bitemez.'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Ad nokta karakteri ile başlayamaz.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Yeni\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Yeni klasör\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Yeni klasör adı\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Yeni sürüm\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Burada herhangi bir dosya yok\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Süzgece uyan bir dosya bulunamadı.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Eşleşen bir dosya yok\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Ad en az 2 karakter uzunluğunda olmalıdır.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Son kullanılanlar\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Tüm kutuları işaretle\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Tüm kayıtları seç\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Tüm var olan dosyaları seç\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Tüm yeni dosyaları seç\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Kaydı seç\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"{nodename} satırını seçin\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Boyut\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"%n dosyayı atla\", \"%n dosyayı atla\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Bu dosyayı atla\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Adı gönder\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Geri al\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Bazı içerikler yükleyin ya da aygıtlarınızla eşitleyin!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Bir gelen klasör seçildiğinde, içindeki çakışan dosyaların da üzerine yazılır.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Bir gelen klasör seçildiğinde, içerik var olan klasöre yazılır ve alt klasörlerle bir çakışma çözümü uygulanır.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Hangi dosyaları tutmak istiyorsunuz?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"{nickname} olarak tanınıyorsunuz.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Henüz kendinizi tanıtmadınız.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Ad boş bırakılamaz.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"En az bir çakışma çözümü seçmelisiniz\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"İlerlemek için her dosaynın en az bir sürümünü seçmelisiniz.\"] }] }, { \"language\": \"uk\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [\"{char} не дозволено всередині назви каталогу.\"] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['\"{char}\" не дозволено всередині імени.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": [`\"{extension}\" недозволене ім'я.`] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": [\"{segment} є зарезервованим ім'ям і не дозволено для назви каталогу.\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": [`\"{segment}\" зарезервоване ім'я і не дозволено для використання.`] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n конфлікт файлів\", \"%n конфлікти файлів\", \"%n конфліктів файлів\", \"%n конфліктів файлів\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"%n конфлікт файлів у каталозі {dirname}\", \"%n конфлікти файлів у каталозі {dirname}\", \"%n конфліктів файлів у каталозі {dirname}\", \"%n конфліктів файлів у каталозі {dirname}\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Всі файли\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Скасувати\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Скасувати всю операцію\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Вибрати\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Вибрати {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Вибрати %n файл\", \"Вибрати %n файли\", \"Вибрати %n файлів\", \"Вибрати %n файлів\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Підтвердити\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Продовжити\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Копіювати\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Копіювати до {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Не вдалося створити новий каталог\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Не вдалося завантажити налаштування файлів\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Не вдалося завантажити подання файлів\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Створити каталог\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Вибір подання\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Зазначте ваше ім'я\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Наявна версія\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Не вдалося встановити псевдо.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Із зірочкою\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Тут показуватимуться файли та каталоги, які ви позначите зірочкою.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Тут показуватимуться файли та каталоги, які було нещодавно змінено.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Фільтрувати список файлів\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": [`Ім'я каталогу не може закінчуватися на \"{extension}\".`] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Ім'я для гостя\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Домівка\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Якщо вибрати обидві версії, до назви вхідного файлу буде додано цифру. \"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Недійсне ім'я каталогу.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Недійсне ім'я.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Дата останньої зміни невідома\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Змінено\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Перемістити\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Перемістити до {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Ім'я\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Імена мають мати довжину не більше 64 символів.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Ім'я не може бути порожнє.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": [`Ім'я не може закінчуватися на \"{extension}\".`] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Ім'я не може починатися з крапки.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Новий\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Новий каталог\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Ім'я нового каталогу\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Нова версія\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Тут відсутні файли\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Відсутні збіги за фільтром.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Відсутні збіги файлів.\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Зазначте ім'я довжиною не менше 2 символів\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Останні\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Вибрати всі прапорці\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Вибрати всі записи\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Вибрати всі наявні файли\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Вибрати всі нові файли\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Вибрати запис\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Вибрати рядок для {nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Розмір\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"Пропустити %n файл\", \"Пропустити %n файли\", \"Пропустити %n файлів\", \"Пропустити %n файлів\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Пропустити цей файл\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Встановити ім'я\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Повернути\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Завантажте вміст або синхронізуйте з вашим пристроєм!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Коли вибрано вхідний каталог, будь-які файли з конфліктами буде також перезаписано.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Коли вибрано вхідний каталог, вміст буде записано до існуючого каталогу, а також виконано вирішення конфліктів всередині каталогу.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Які файли залишити?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Вас визначено як {nickname}.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Вас не ідентифіковано.\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Потрібно зазначити ім'я.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Треб вибрати щонайменше одне рішення конфлікту\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Треба вибрати щонайменше одну версію кожного файлу, щоби продовжити.\"] }] }, { \"language\": \"uz\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": ['Papka nomi ichida \"{char}\" ga ruxsat berilmaydi.'] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['Nom ichida \"{char}\" ga ruxsat berilmagan.'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": ['\"{extension}\" ruxsat etilgan nom emas.'] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": [`\"{segment}\" ajratilgan nom bo'lib, papka nomlari uchun ruxsat berilmagan.`] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": ['\"{segment}\" - zaxiralangan nom va ruxsat berilmaydi.'] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n fayl ziddiyatli\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"{dirname} da %n fayl ziddiyati\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"Barcha fayllar\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"Bekor qilish\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Butun operatsiyani bekor qiling\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Tanlang\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Tanlang {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Tanlang %n faylni\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Tasdiqlang\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"Davom eting\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Nusxa\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\" {target} ga nusxa\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Yangi jild yaratib bo‘lmadi\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Fayl sozlamalari yuklanmadi\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Fayllarni koʻrishni yuklab boʻlmadi\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Katalog yaratish\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Joriy ko'rinish selektori\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"Ismingizni kiriting\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"Mavjud versiya\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"Taxallusni o‘rnatib bo‘lmadi.\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Tanlanganlar\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Tanlangan deb belgilagan fayl va papkalar shu yerda koʻrinadi.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Siz yaqinda oʻzgartirgan fayl va papkalar shu yerda koʻrinadi.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Fayl ro'yxatini filtrlash\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": ['Papka nomlari \"{extension}\" bilan tugamasligi kerak.'] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"Foydalanuvchini identifikatsiyalash\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Uy\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Agar siz ikkala versiyani tanlasangiz, kiruvchi fayl nomiga qo'shilgan raqamga ega bo'ladi.\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"Jild nomi noto'g'ri.\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"Nomi noto‘g‘ri.\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Oxirgi tahrirlangan sana noma'lum\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Modifikatsiyalangan\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Ko'chirish\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\" {target} ga ko'chirish\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Nomi\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"Ismlar ko'pi bilan 64 ta belgidan iborat bo'lishi mumkin.\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"Ismlar bo'sh bo'lmasligi kerak.\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": ['Ismlar \"{extension}\" bilan tugamasligi kerak.'] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"Ismlar nuqta bilan boshlanmasligi kerak.\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Yangi\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"Yangi jild\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"Yangi jild nomi\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"Yangi versiya\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"Fayl mavjud emas\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Filtringizga mos keladigan fayl topilmadi.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"Mos fayllar yo'q\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"Kamida 2 ta belgidan iborat nom kiriting.\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Yaqinda\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Barcha katakchalarni belgilang\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Barcha yozuvlarni tanlang\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Barcha mavjud fayllarni tanlang\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"Barcha yangi fayllarni tanlang\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Yozuvni tanlang\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"{nodename} uchun qatorni tanlang\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"O`lcham\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"%n faylni oʻtkazib yuborish\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"Ushbu faylni o'tkazib yuboring\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"Ismni tasdiqlang\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Bekor qilish\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Qurilmangizga ba'zi kontentni yuklang yoki sinxronlang!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Kiruvchi papka tanlanganda, undagi har qanday ziddiyatli fayllar ham ustiga yoziladi.\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Kiruvchi papka tanlanganda, kontent mavjud jildga yoziladi va nizolarni rekursiv hal qilish amalga oshiriladi.\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Qaysi fayllarni saqlamoqchisiz?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"Siz hozirda {nickname} sifatida aniqlangansiz.\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"Siz hozirda identifikatsiyadan o'tmagansiz\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"Ism katagini bo'sh qoldirib bo'lmaydi.\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"Siz kamida bitta mojaro yechimini tanlashingiz kerak\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Davom etish uchun har bir faylning kamida bitta versiyasini tanlashingiz kerak.\"] }] }, { \"language\": \"vi\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": ['\"{name}\" là tên thư mục không hợp lệ.'] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": ['\"1{name}\"không phải là tên thư mục được cho phép'] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": ['\"/\"không được phép đặt trong tên thư mục.'] }, { \"msgid\": \"All files\", \"msgstr\": [\"Tất cả tệp\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"Chọn\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"Chọn {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"Chọn %n tệp\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"Sao chép\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"Sao chép đến {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"Không thể tạo thư mục mới\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"Không thể tải tập tin cài đặt\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"Không thể tải xuống tệp xem\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"Tạo thư mục\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"Hiện tại chế độ xem của bộ chọn\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"Yêu cầu thích\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"Các tập tin và thư mục bạn đánh dấu yêu thích sẽ hiển thị ở đây.\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"Các tập tin và thư mục bạn sửa đổi gần đây sẽ hiển thị ở đây.\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"Filter list file\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"Thư mục tên không được để trống.\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"Trang chủ\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"Đã sửa đổi\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"Di chuyển\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"Di chuyển đến{target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"Tên\"] }, { \"msgid\": \"New\", \"msgstr\": [\"Mới\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"New thư mục\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"New thư mục tên\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"No file at here\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"Không tìm thấy tệp nào phù hợp với bộ lọc của bạn.\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"No file phù hợp\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"Gần đây\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"Choose all items\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"Chọn mục nhập\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"Choose hang cho{nodename}\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"Kích cỡ\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"Hoàn tác\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"Tải lên một số nội dung hoặc đồng bộ hóa với thiết bị của bạn!\"] }] }, { \"language\": \"zh_CN\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid folder name.', \"msgstr\": [\"“{name}” 是无效的文件夹名称。\"] }, { \"msgid\": '\"{name}\" is not an allowed folder name', \"msgstr\": [\"“{name}” 不是允许的文件夹名称\"] }, { \"msgid\": '\"/\" is not allowed inside a folder name.', \"msgstr\": [\"文件夹名称中不允许包含 “/”。\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"所有文件\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"选择\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"选择 {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"选择 %n 个文件\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"复制\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"复制到 {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"无法创建新文件夹\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"无法加载文件设置\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"无法加载文件视图\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"创建目录\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"当前视图选择器\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"最爱\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"您标记为最爱的文件与文件夹会显示在这里\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"您最近修改的文件与文件夹会显示在这里\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"过滤文件列表\"] }, { \"msgid\": \"Folder name cannot be empty.\", \"msgstr\": [\"文件夹名称不能为空。\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"主目录\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"已修改\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"移动\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"移动至 {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"名称\"] }, { \"msgid\": \"New\", \"msgstr\": [\"新建\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"新文件夹\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"新文件夹名称\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"此处无文件\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"找不到符合您过滤条件的文件\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"无符合的文件\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"最近\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"选择所有条目\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"选择条目\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"选择 {nodename} 的列\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"大小\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\" 撤消\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"上传一些项目或与您的设备同步!\"] }] }, { \"language\": \"zh_HK\", \"translations\": [{ \"msgid\": '\"{char}\" is not allowed inside a folder name.', \"msgstr\": [\"資料夾名稱中不允許使用「{char}」。\"] }, { \"msgid\": '\"{char}\" is not allowed inside a name.', \"msgstr\": ['名稱中不能使用 \"{char}\"。'] }, { \"msgid\": '\"{extension}\" is not an allowed name.', \"msgstr\": [\"「{extension}」並非允許的名稱。\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed for folder names.', \"msgstr\": [\"「{segment}」為保留名稱,不能用作資料夾名稱。\"] }, { \"msgid\": '\"{segment}\" is a reserved name and not allowed.', \"msgstr\": [\"「{segment}」是一個保留名稱,不能使用。\"] }, { \"msgid\": \"%n file conflict\", \"msgid_plural\": \"%n files conflict\", \"msgstr\": [\"%n 檔案衝突\"] }, { \"msgid\": \"%n file conflict in {dirname}\", \"msgid_plural\": \"%n file conflicts in {dirname}\", \"msgstr\": [\"{dirname} 中有 %n 個檔案衝突\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"所有檔案\"] }, { \"msgid\": \"Cancel\", \"msgstr\": [\"取消\"] }, { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"取消整個操作\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"選擇\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"選擇 {file}\"] }, { \"msgid\": \"Choose %n file\", \"msgid_plural\": \"Choose %n files\", \"msgstr\": [\"選擇 %n 個檔案\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"確認\"] }, { \"msgid\": \"Continue\", \"msgstr\": [\"繼續\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"複製\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"複製到 {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"無法建立新資料夾\"] }, { \"msgid\": \"Could not load files settings\", \"msgstr\": [\"無法載入檔案設定\"] }, { \"msgid\": \"Could not load files views\", \"msgstr\": [\"無法載入檔案視圖\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"建立目錄\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"目前視圖選擇器\"] }, { \"msgid\": \"Enter your name\", \"msgstr\": [\"輸入您的名字\"] }, { \"msgid\": \"Existing version\", \"msgstr\": [\"現有的版本\"] }, { \"msgid\": \"Failed to set nickname.\", \"msgstr\": [\"無法設置暱稱。\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"最愛\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"您標記為最愛的檔案與資料夾將會顯示在此處。\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"您最近修改的檔案與資料夾將會顯示在此處。\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"過濾檔案清單\"] }, { \"msgid\": 'Folder names must not end with \"{extension}\".', \"msgstr\": [\"資料夾名稱不得以「{extension}」結尾。\"] }, { \"msgid\": \"Guest identification\", \"msgstr\": [\"訪客身份識別\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"首頁\"] }, { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"如果您選擇兩個版本,傳入的檔案名稱將會附加一個數字。\"] }, { \"msgid\": \"Invalid folder name.\", \"msgstr\": [\"無效的資料夾名稱。\"] }, { \"msgid\": \"Invalid name.\", \"msgstr\": [\"無效的名字。\"] }, { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"最後的修改日期不詳\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"已修改\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"移動\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"移動至 {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"名稱\"] }, { \"msgid\": \"Names may be at most 64 characters long.\", \"msgstr\": [\"名稱長度最多為 64 個字元。\"] }, { \"msgid\": \"Names must not be empty.\", \"msgstr\": [\"名稱不能為空。\"] }, { \"msgid\": 'Names must not end with \"{extension}\".', \"msgstr\": [\"名稱不得以「{extension}」結尾。\"] }, { \"msgid\": \"Names must not start with a dot.\", \"msgstr\": [\"名稱不得以點開頭。\"] }, { \"msgid\": \"New\", \"msgstr\": [\"新\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"新資料夾\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"新資料夾名稱\"] }, { \"msgid\": \"New version\", \"msgstr\": [\"新版本\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"此處無檔案\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"找不到符合您過濾條件的檔案。\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"沒有匹配的檔案\"] }, { \"msgid\": \"Please enter a name with at least 2 characters.\", \"msgstr\": [\"請輸入至少 2 個字符的名稱。\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"最近\"] }, { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"選擇所有復選框\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"選擇所有項目\"] }, { \"msgid\": \"Select all existing files\", \"msgstr\": [\"選擇所有現有的檔案\"] }, { \"msgid\": \"Select all new files\", \"msgstr\": [\"選擇所有新檔案\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"選擇項目\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"選擇 {nodename} 的列\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"大小\"] }, { \"msgid\": \"Skip %n file\", \"msgid_plural\": \"Skip %n files\", \"msgstr\": [\"跳過 %n 個檔案\"] }, { \"msgid\": \"Skip this file\", \"msgstr\": [\"跳過此檔案\"] }, { \"msgid\": \"Submit name\", \"msgstr\": [\"遞交名字\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"還原\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"上傳一些內容或與您的裝置同步!\"] }, { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"選取傳入資料夾時,其中任何衝突的檔案也將被覆蓋。\"] }, { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"當選取傳入資料夾時,內容將寫入現有資料夾,並執行遞歸衝突解決。\"] }, { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"你想保留哪些檔案?\"] }, { \"msgid\": \"You are currently identified as {nickname}.\", \"msgstr\": [\"您目前被識別為 {nickname}。\"] }, { \"msgid\": \"You are currently not identified.\", \"msgstr\": [\"您目前尚未被識別。\"] }, { \"msgid\": \"You cannot leave the name empty.\", \"msgstr\": [\"名稱不能留空。\"] }, { \"msgid\": \"You need to choose at least one conflict solution\", \"msgstr\": [\"你需要選擇至少一種衝突解決方案。\"] }, { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"您必須選擇每個文件的至少一個版本才能繼續。\"] }] }, { \"language\": \"zh_TW\", \"translations\": [{ \"msgid\": '\"{name}\" is an invalid file name.', \"msgstr\": [\"「{name}」是無效的檔案名稱。\"] }, { \"msgid\": '\"{name}\" is not an allowed filetype', \"msgstr\": [\"「{name}」並非允許的檔案類型\"] }, { \"msgid\": '\"/\" is not allowed inside a file name.', \"msgstr\": [\"檔案名稱中不允許使用「/」。\"] }, { \"msgid\": \"All files\", \"msgstr\": [\"所有檔案\"] }, { \"msgid\": \"Choose\", \"msgstr\": [\"選擇\"] }, { \"msgid\": \"Choose {file}\", \"msgstr\": [\"選擇 {file}\"] }, { \"msgid\": \"Copy\", \"msgstr\": [\"複製\"] }, { \"msgid\": \"Copy to {target}\", \"msgstr\": [\"複製到 {target}\"] }, { \"msgid\": \"Could not create the new folder\", \"msgstr\": [\"無法建立新資料夾\"] }, { \"msgid\": \"Create directory\", \"msgstr\": [\"建立目錄\"] }, { \"msgid\": \"Current view selector\", \"msgstr\": [\"目前檢視選取器\"] }, { \"msgid\": \"Favorites\", \"msgstr\": [\"最愛\"] }, { \"msgid\": \"File name cannot be empty.\", \"msgstr\": [\"檔案名稱不能為空。\"] }, { \"msgid\": \"Filepicker sections\", \"msgstr\": [\"檔案挑選器選取\"] }, { \"msgid\": \"Files and folders you mark as favorite will show up here.\", \"msgstr\": [\"您標記為最愛的檔案與資料夾將會顯示在此處。\"] }, { \"msgid\": \"Files and folders you recently modified will show up here.\", \"msgstr\": [\"您最近修改的檔案與資料夾將會顯示在此處。\"] }, { \"msgid\": \"Filter file list\", \"msgstr\": [\"過濾檔案清單\"] }, { \"msgid\": \"Home\", \"msgstr\": [\"家\"] }, { \"msgid\": \"Mime type {mime}\", \"msgstr\": [\"Mime type {mime}\"] }, { \"msgid\": \"Modified\", \"msgstr\": [\"已修改\"] }, { \"msgid\": \"Move\", \"msgstr\": [\"移動\"] }, { \"msgid\": \"Move to {target}\", \"msgstr\": [\"移動至 {target}\"] }, { \"msgid\": \"Name\", \"msgstr\": [\"名稱\"] }, { \"msgid\": \"New\", \"msgstr\": [\"新\"] }, { \"msgid\": \"New folder\", \"msgstr\": [\"新資料夾\"] }, { \"msgid\": \"New folder name\", \"msgstr\": [\"新資料夾名稱\"] }, { \"msgid\": \"No files in here\", \"msgstr\": [\"此處無檔案\"] }, { \"msgid\": \"No files matching your filter were found.\", \"msgstr\": [\"找不到符合您過濾條件的檔案。\"] }, { \"msgid\": \"No matching files\", \"msgstr\": [\"無符合的檔案\"] }, { \"msgid\": \"Recent\", \"msgstr\": [\"最近\"] }, { \"msgid\": \"Select all entries\", \"msgstr\": [\"選取所有條目\"] }, { \"msgid\": \"Select entry\", \"msgstr\": [\"選取條目\"] }, { \"msgid\": \"Select the row for {nodename}\", \"msgstr\": [\"選取 {nodename} 的列\"] }, { \"msgid\": \"Size\", \"msgstr\": [\"大小\"] }, { \"msgid\": \"Undo\", \"msgstr\": [\"復原\"] }, { \"msgid\": \"unknown\", \"msgstr\": [\"未知\"] }, { \"msgid\": \"Upload some content or sync with your devices!\", \"msgstr\": [\"上傳一些內容或與您的裝置同步\"] }] }]) {\n const { language, translations } = data;\n const bundle = {\n headers: {},\n translations: {\n \"\": Object.fromEntries(translations.map((translation) => [translation.msgid, translation]))\n }\n };\n gtBuilder.addTranslation(language, bundle);\n}\nconst gt = gtBuilder.build();\nconst n = gt.ngettext.bind(gt);\nconst t = gt.gettext.bind(gt);\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst logger = getLoggerBuilder().setApp(\"@nextcloud/dialogs\").detectLogLevel().build();\nvar FilePickerType = /* @__PURE__ */ ((FilePickerType2) => {\n FilePickerType2[FilePickerType2[\"Choose\"] = 1] = \"Choose\";\n FilePickerType2[FilePickerType2[\"Move\"] = 2] = \"Move\";\n FilePickerType2[FilePickerType2[\"Copy\"] = 3] = \"Copy\";\n FilePickerType2[FilePickerType2[\"CopyMove\"] = 4] = \"CopyMove\";\n FilePickerType2[FilePickerType2[\"Custom\"] = 5] = \"Custom\";\n return FilePickerType2;\n})(FilePickerType || {});\nclass FilePickerClosed extends Error {\n}\nclass FilePicker {\n title;\n multiSelect;\n mimeTypeFilter;\n directoriesAllowed;\n noMenu;\n buttons;\n path;\n filter;\n canPick;\n container;\n disabledNavigation;\n constructor(title, multiSelect, mimeTypeFilter, directoriesAllowed, noMenu, buttons, path, filter, canPick, container, disabledNavigation = false) {\n this.title = title;\n this.multiSelect = multiSelect;\n this.mimeTypeFilter = mimeTypeFilter;\n this.directoriesAllowed = directoriesAllowed;\n this.noMenu = noMenu;\n this.path = path;\n this.filter = filter;\n this.canPick = canPick;\n this.buttons = buttons;\n this.container = container;\n this.disabledNavigation = disabledNavigation;\n }\n /**\n * Pick files using the FilePicker.\n *\n * @return Promise with array of picked files or rejected promise on close without picking\n */\n async pickNodes() {\n const { default: FilePickerVue } = await import(\"./FilePicker-DWYoSaVg.mjs\");\n const nodes = await spawnDialog(FilePickerVue, {\n allowPickDirectory: this.directoriesAllowed,\n noMenu: this.noMenu,\n buttons: this.buttons,\n name: this.title,\n path: this.path,\n mimetypeFilter: this.mimeTypeFilter,\n multiselect: this.multiSelect,\n filterFn: this.filter,\n canPickFn: this.canPick,\n disabledNavigation: this.disabledNavigation\n }, {\n container: this.container\n });\n if (!Array.isArray(nodes) || nodes.length === 0) {\n throw new FilePickerClosed(\"FilePicker: No nodes selected\");\n }\n return nodes;\n }\n /**\n * Pick files using the FilePicker\n *\n * @return Promise with array of paths of picked files or rejected promise on close without picking\n */\n async pick() {\n const nodes = await this.pickNodes();\n if (this.multiSelect) {\n return nodes.map((node) => node.path);\n }\n const path = nodes[0]?.path ?? \"/\";\n return path;\n }\n}\nclass FilePickerBuilder {\n title;\n multiSelect = false;\n mimeTypeFilter = [];\n directoriesAllowed = false;\n noMenu = false;\n path;\n filter;\n canPick;\n buttons = [];\n container;\n disabledNavigation = false;\n /**\n * Construct a new FilePicker\n *\n * @param title Title of the FilePicker\n */\n constructor(title) {\n this.title = title;\n }\n /**\n * Set the container where the FilePicker will be mounted\n * By default 'body' is used\n *\n * @param container The dialog container\n */\n setContainer(container) {\n this.container = container;\n return this;\n }\n /**\n * Enable or disable picking multiple files\n *\n * @param ms True to enable picking multiple files, false otherwise\n */\n setMultiSelect(ms) {\n this.multiSelect = ms;\n return this;\n }\n /**\n * Add allowed MIME type\n *\n * @param filter MIME type to allow\n */\n addMimeTypeFilter(filter) {\n this.mimeTypeFilter.push(filter);\n return this;\n }\n /**\n * Set allowed MIME types\n *\n * @param filter Array of allowed MIME types\n */\n setMimeTypeFilter(filter) {\n this.mimeTypeFilter = filter;\n return this;\n }\n /**\n * Add a button to the FilePicker\n * Note: This overrides any previous `setButtonFactory` call\n *\n * @param button The button\n */\n addButton(button) {\n if (typeof this.buttons === \"function\") {\n logger.warn(\"FilePicker buttons were set to factory, now overwritten with button object.\");\n this.buttons = [];\n }\n this.buttons.push(button);\n return this;\n }\n /**\n * Set the button factory which is used to generate buttons from current view, path and selected nodes\n * Note: This overrides any previous `addButton` call\n *\n * @param factory The button factory\n */\n setButtonFactory(factory) {\n this.buttons = factory;\n return this;\n }\n /**\n * Set FilePicker type based on legacy file picker types\n *\n * @param type The legacy filepicker type to emulate\n * @deprecated Use `addButton` or `setButtonFactory` instead as with setType you do not know which button was pressed\n */\n setType(type) {\n this.buttons = (nodes, path) => {\n const buttons = [];\n const node = nodes[0];\n const target = node?.displayname || basename(path);\n if (type === 1) {\n let label = t(\"Choose\");\n if (nodes.length === 1) {\n label = t(\"Choose {file}\", { file: target });\n } else if (this.multiSelect) {\n label = n(\"Choose %n file\", \"Choose %n files\", nodes.length);\n }\n buttons.push({\n callback: () => {\n },\n label,\n variant: \"primary\"\n });\n }\n if (type === 4 || type === 3) {\n buttons.push({\n callback: () => {\n },\n label: target ? t(\"Copy to {target}\", { target }) : t(\"Copy\"),\n icon: IconCopy,\n variant: type === 3 ? \"primary\" : \"secondary\"\n });\n }\n if (type === 4 || type === 2) {\n buttons.push({\n callback: () => {\n },\n label: target ? t(\"Move to {target}\", { target }) : t(\"Move\"),\n icon: IconMove,\n variant: \"primary\"\n // move is always primary - also on copy-move\n });\n }\n return buttons;\n };\n return this;\n }\n /**\n * Allow to pick directories besides files\n *\n * @param allow True to allow picking directories\n */\n allowDirectories(allow = true) {\n this.directoriesAllowed = allow;\n return this;\n }\n /**\n * Allow to create New folders\n *\n * @param noMenu True to hide menu\n */\n setNoMenu(noMenu = true) {\n this.noMenu = noMenu;\n return this;\n }\n /**\n * Set starting path of the FilePicker\n *\n * @param path Path to start from picking\n */\n startAt(path) {\n this.path = path;\n return this;\n }\n /**\n * Add filter function to filter file list of FilePicker\n *\n * @param filter Filter function to apply\n */\n setFilter(filter) {\n this.filter = filter;\n return this;\n }\n /**\n * Add function to allow or not picking a node\n *\n * @param canPick Function to decide if a node can be picked\n */\n setCanPick(canPick) {\n this.canPick = canPick;\n return this;\n }\n /**\n * Disable navigation (view selection)\n */\n disableNavigation() {\n this.disabledNavigation = true;\n return this;\n }\n /**\n * Construct the configured FilePicker\n */\n build() {\n return new FilePicker(\n this.title,\n this.multiSelect,\n this.mimeTypeFilter,\n this.directoriesAllowed,\n this.noMenu,\n this.buttons,\n this.path,\n this.filter,\n this.canPick,\n this.container,\n this.disabledNavigation\n );\n }\n}\nfunction getFilePickerBuilder(title) {\n return new FilePickerBuilder(title);\n}\nasync function showGuestUserPrompt(props) {\n const name = await spawnDialog(\n defineAsyncComponent(() => import(\"./PublicAuthPrompt-CxPJPSnh.mjs\")),\n props\n );\n return name;\n}\nconst LoaderSvg = '\\n\t\\n\t\\n\\n';\nvar ToastType = /* @__PURE__ */ ((ToastType2) => {\n ToastType2[\"ERROR\"] = \"toast-error\";\n ToastType2[\"WARNING\"] = \"toast-warning\";\n ToastType2[\"INFO\"] = \"toast-info\";\n ToastType2[\"SUCCESS\"] = \"toast-success\";\n ToastType2[\"UNDO\"] = \"toast-undo\";\n ToastType2[\"LOADING\"] = \"toast-loading\";\n return ToastType2;\n})(ToastType || {});\nconst TOAST_ARIA_LIVE_OFF = \"off\";\nconst TOAST_ARIA_LIVE_POLITE = \"polite\";\nconst TOAST_ARIA_LIVE_ASSERTIVE = \"assertive\";\nvar ToastAriaLive = /* @__PURE__ */ ((ToastAriaLive2) => {\n ToastAriaLive2[ToastAriaLive2[\"OFF\"] = TOAST_ARIA_LIVE_OFF] = \"OFF\";\n ToastAriaLive2[ToastAriaLive2[\"POLITE\"] = TOAST_ARIA_LIVE_POLITE] = \"POLITE\";\n ToastAriaLive2[ToastAriaLive2[\"ASSERTIVE\"] = TOAST_ARIA_LIVE_ASSERTIVE] = \"ASSERTIVE\";\n return ToastAriaLive2;\n})(ToastAriaLive || {});\nconst TOAST_UNDO_TIMEOUT = 1e4;\nconst TOAST_DEFAULT_TIMEOUT = 7e3;\nconst TOAST_PERMANENT_TIMEOUT = -1;\nfunction showMessage(data, options) {\n options = {\n timeout: TOAST_DEFAULT_TIMEOUT,\n isHTML: false,\n type: void 0,\n // An undefined selector defaults to the body element\n selector: void 0,\n onRemove: () => {\n },\n onClick: void 0,\n close: true,\n ...options\n };\n if (typeof data === \"string\" && !options.isHTML) {\n const element = document.createElement(\"div\");\n element.innerHTML = data;\n data = element.innerText;\n }\n let classes = options.type ?? \"\";\n if (typeof options.onClick === \"function\") {\n classes += \" toast-with-click \";\n }\n const isNode = data instanceof Node;\n let ariaLive = ToastAriaLive.POLITE;\n if (options.ariaLive) {\n ariaLive = options.ariaLive;\n } else if (options.type === \"toast-error\" || options.type === \"toast-undo\") {\n ariaLive = ToastAriaLive.ASSERTIVE;\n }\n const toast = Toastify({\n [!isNode ? \"text\" : \"node\"]: data,\n duration: options.timeout,\n callback: options.onRemove,\n onClick: options.onClick,\n close: options.close,\n gravity: \"top\",\n selector: options.selector,\n position: \"right\",\n backgroundColor: \"\",\n className: \"dialogs \" + classes,\n escapeMarkup: !options.isHTML,\n ariaLive\n });\n toast.showToast();\n return toast;\n}\nfunction showError(text, options) {\n return showMessage(text, {\n ...options,\n type: \"toast-error\"\n /* ERROR */\n });\n}\nfunction showWarning(text, options) {\n return showMessage(text, {\n ...options,\n type: \"toast-warning\"\n /* WARNING */\n });\n}\nfunction showInfo(text, options) {\n return showMessage(text, {\n ...options,\n type: \"toast-info\"\n /* INFO */\n });\n}\nfunction showSuccess(text, options) {\n return showMessage(text, {\n ...options,\n type: \"toast-success\"\n /* SUCCESS */\n });\n}\nfunction showLoading(text, options) {\n const loader = document.createElement(\"span\");\n loader.innerHTML = LoaderSvg;\n loader.classList.add(\"toast-loader\");\n const loaderContent = document.createElement(\"span\");\n loaderContent.classList.add(\"toast-loader-container\");\n loaderContent.innerText = text;\n loaderContent.appendChild(loader);\n return showMessage(loaderContent, {\n ...options,\n close: false,\n timeout: TOAST_PERMANENT_TIMEOUT,\n type: \"toast-loading\"\n /* LOADING */\n });\n}\nfunction showUndo(text, onUndo, options) {\n if (!(onUndo instanceof Function)) {\n throw new Error(\"Please provide a valid onUndo method\");\n }\n options = Object.assign(options || {}, {\n // force 10 seconds of timeout\n timeout: TOAST_UNDO_TIMEOUT\n });\n const undoContent = document.createElement(\"span\");\n const undoButton = document.createElement(\"button\");\n undoContent.classList.add(\"toast-undo-container\");\n undoButton.classList.add(\"toast-undo-button\");\n undoButton.innerText = t(\"Undo\");\n undoContent.innerText = text;\n undoContent.appendChild(undoButton);\n const toast = showMessage(undoContent, {\n ...options,\n type: \"toast-undo\"\n /* UNDO */\n });\n undoButton.addEventListener(\"click\", function(event) {\n event.stopPropagation();\n onUndo(event);\n if (toast?.hideToast instanceof Function) {\n toast.hideToast();\n }\n });\n return toast;\n}\nconst _hoisted_1 = [\"textContent\"];\nconst _hoisted_2 = [\"innerHTML\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"GenericDialog\",\n props: {\n name: {},\n text: {},\n html: {},\n buttons: {},\n severity: {}\n },\n emits: [\"close\"],\n setup(__props, { emit: __emit }) {\n const props = __props;\n const emit = __emit;\n const dialogButtons = computed(() => props.buttons?.map((button) => ({\n ...button,\n callback() {\n button.callback();\n emit(\"close\", true);\n }\n })));\n const handleUnload = () => `${props.name}: ${props.text}`;\n onMounted(() => window.addEventListener(\"unload\", handleUnload));\n onUnmounted(() => window.removeEventListener(\"unload\", handleUnload));\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcDialog), {\n dialogClasses: \"nc-generic-dialog\",\n buttons: dialogButtons.value,\n name: __props.name,\n message: __props.text,\n \"onUpdate:open\": _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"close\", false))\n }, {\n default: withCtx(() => [\n __props.severity ? (openBlock(), createBlock(unref(NcNoteCard), {\n key: 0,\n type: __props.severity\n }, {\n default: withCtx(() => [\n createElementVNode(\"p\", {\n textContent: toDisplayString(__props.text)\n }, null, 8, _hoisted_1)\n ]),\n _: 1\n }, 8, [\"type\"])) : createCommentVNode(\"\", true),\n __props.html ? (openBlock(), createElementBlock(\"div\", {\n key: 1,\n innerHTML: __props.html\n }, null, 8, _hoisted_2)) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"buttons\", \"name\", \"message\"]);\n };\n }\n});\nclass Dialog {\n #name;\n #text;\n #buttons;\n #severity;\n constructor(name, text, buttons = [], severity) {\n this.#name = name;\n this.#text = text;\n this.#buttons = buttons;\n this.#severity = severity;\n }\n /**\n * Spawn and show the dialog - if already open the previous instance will be destroyed\n *\n * @return Promise that resolves when the dialog is answered successfully and rejects on close\n */\n async show() {\n const result = await spawnDialog(\n _sfc_main,\n {\n buttons: this.#buttons,\n name: this.#name,\n text: this.#text,\n severity: this.#severity\n }\n );\n if (!result) {\n throw new Error(\"Dialog closed\");\n }\n }\n}\nclass DialogBuilder {\n #severity;\n #text;\n #name;\n #buttons;\n constructor(name) {\n this.#severity = void 0;\n this.#text = \"\";\n this.#name = name ?? \"\";\n this.#buttons = [];\n }\n /**\n * Set dialog name\n *\n * @param name The name or headline of the dialog\n */\n setName(name) {\n this.#name = name;\n return this;\n }\n /**\n * Set the dialog text\n *\n * @param text Main text of the dialog\n */\n setText(text) {\n this.#text = text;\n return this;\n }\n /**\n * Set the severity of the dialog\n *\n * @param severity Severity of the dialog\n */\n setSeverity(severity) {\n this.#severity = severity;\n return this;\n }\n /**\n * Set buttons from array\n *\n * @param buttons Either an array of dialog buttons\n */\n setButtons(buttons) {\n if (this.#buttons.length > 0) {\n logger.warn(\"[@nextcloud/dialogs] Dialog buttons are already set - this overrides previous buttons.\");\n }\n this.#buttons = buttons;\n return this;\n }\n /**\n * Add a single button\n *\n * @param button Button to add\n */\n addButton(button) {\n this.#buttons.push(button);\n return this;\n }\n build() {\n return new Dialog(this.#name, this.#text, this.#buttons, this.#severity);\n }\n}\nfunction getDialogBuilder(name) {\n return new DialogBuilder(name);\n}\nasync function showConfirmation(options) {\n options = {\n labelConfirm: t(\"Confirm\"),\n ...options\n };\n const { promise, resolve } = Promise.withResolvers();\n const buttons = [{\n label: options.labelConfirm,\n variant: \"primary\",\n callback() {\n resolve(true);\n }\n }];\n if (options.labelReject) {\n buttons.unshift({\n label: options.labelReject,\n callback() {\n resolve(false);\n }\n });\n }\n const dialog = new Dialog(\n options.name,\n options.text,\n buttons,\n options.severity\n );\n await dialog.show();\n return promise;\n}\nexport {\n Dialog as D,\n FilePicker as F,\n TOAST_ARIA_LIVE_ASSERTIVE as T,\n DialogBuilder as a,\n FilePickerBuilder as b,\n FilePickerClosed as c,\n FilePickerType as d,\n TOAST_ARIA_LIVE_OFF as e,\n TOAST_ARIA_LIVE_POLITE as f,\n TOAST_DEFAULT_TIMEOUT as g,\n TOAST_PERMANENT_TIMEOUT as h,\n TOAST_UNDO_TIMEOUT as i,\n ToastAriaLive as j,\n ToastType as k,\n logger as l,\n getDialogBuilder as m,\n n,\n getFilePickerBuilder as o,\n openConflictPicker as p,\n showConfirmation as q,\n showGuestUserPrompt as r,\n showError as s,\n t,\n showInfo as u,\n showLoading as v,\n showMessage as w,\n showSuccess as x,\n showUndo as y,\n showWarning as z\n};\n//# sourceMappingURL=index-DL1yHC1K.mjs.map\n"],"file":"index-DL1yHC1K-BJ_TsAjb.chunk.mjs"} \ No newline at end of file diff --git a/dist/index-DL1yHC1K-DnBG6QLJ.chunk.mjs.map.license b/dist/index-DL1yHC1K-BJ_TsAjb.chunk.mjs.map.license similarity index 100% rename from dist/index-DL1yHC1K-DnBG6QLJ.chunk.mjs.map.license rename to dist/index-DL1yHC1K-BJ_TsAjb.chunk.mjs.map.license diff --git a/dist/index-XAFCS_Gy.chunk.mjs b/dist/index-DzL3ZhYR.chunk.mjs similarity index 99% rename from dist/index-XAFCS_Gy.chunk.mjs rename to dist/index-DzL3ZhYR.chunk.mjs index f80a74310d1..e79b7b367f5 100644 --- a/dist/index-XAFCS_Gy.chunk.mjs +++ b/dist/index-DzL3ZhYR.chunk.mjs @@ -1,8 +1,8 @@ -import{t as Ut}from"./index-B-dGqfIG.chunk.mjs";import{c as Ae,v as Pt}from"./index-C_wPY1fR.chunk.mjs";import{c as jt}from"./ArrowRight-DKsMJImQ.chunk.mjs";import"./Web-BwmPK40i.chunk.mjs";import"./public-C1mLBHT3.chunk.mjs";import"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./index-BLNGy7h5.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./index-BOH7nBEM.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";const Rn=(function(e,n,a){const i=jt(a);if(!e||!e.type||!e.children)throw new Error("Expected parent node");if(typeof n=="number"){if(n<0||n===Number.POSITIVE_INFINITY)throw new Error("Expected positive finite number as index")}else if(n=e.children.indexOf(n),n<0)throw new Error("Expected child node or index");for(;++no&&(o=b):b&&(o!==void 0&&o>-1&&g.push(` +import{t as Ut}from"./index-B-dGqfIG.chunk.mjs";import{c as Ae,v as Pt}from"./index-BrjNu3x_.chunk.mjs";import{c as jt}from"./ArrowRight-DKsMJImQ.chunk.mjs";import"./Web-BwmPK40i.chunk.mjs";import"./public-C1mLBHT3.chunk.mjs";import"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./index-BLNGy7h5.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./index-dqLzhRZM.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";const Rn=(function(e,n,a){const i=jt(a);if(!e||!e.type||!e.children)throw new Error("Expected parent node");if(typeof n=="number"){if(n<0||n===Number.POSITIVE_INFINITY)throw new Error("Expected positive finite number as index")}else if(n=e.children.indexOf(n),n<0)throw new Error("Expected child node or index");for(;++no&&(o=b):b&&(o!==void 0&&o>-1&&g.push(` `.repeat(o)||" "),o=-1,g.push(b))}return g.join("")}function Gn(e,n,a){return e.type==="element"?Ht(e,n,a):e.type==="text"?a.whitespace==="normal"?Hn(e,a):Zt(e):[]}function Ht(e,n,a){const i=Zn(e,a),r=e.children||[];let d=-1,s=[];if(Kt(e))return s;let l,g;for(pn(e)||Bn(e)&&Rn(n,e,Bn)?g=` `:qt(e)?(l=2,g=2):Kn(e)&&(l=1,g=1);++d]+>")+")",s={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},l={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},g={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},o={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(l,{className:"string"}),{className:"string",begin:/<.*?>/},a,e.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:n.optional(r)+e.IDENT_RE,relevance:0},p=n.optional(r)+e.IDENT_RE+"\\s*\\(",u=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],y=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],v=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],h=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],N={type:y,keyword:u,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:v},S={className:"function.dispatch",relevance:0,keywords:{_hint:h},begin:n.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,n.lookahead(/(<[^<>]+>|)\s*\(/))},C=[S,o,s,a,e.C_BLOCK_COMMENT_MODE,g,l],R={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:N,contains:C.concat([{begin:/\(/,end:/\)/,keywords:N,contains:C.concat(["self"]),relevance:0}]),relevance:0},B={className:"function",begin:"("+d+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:N,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:i,keywords:N,relevance:0},{begin:p,returnBegin:!0,contains:[b],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[l,g]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:N,relevance:0,contains:[a,e.C_BLOCK_COMMENT_MODE,l,g,s,{begin:/\(/,end:/\)/,keywords:N,relevance:0,contains:["self",a,e.C_BLOCK_COMMENT_MODE,l,g,s]}]},s,a,e.C_BLOCK_COMMENT_MODE,o]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:N,illegal:"",keywords:N,contains:["self",s]},{begin:e.IDENT_RE+"::",keywords:N},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function Yt(e){const n={type:["boolean","byte","word","String"],built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"]},a=Jt(e),i=a.keywords;return i.type=[...i.type,...n.type],i.literal=[...i.literal,...n.literal],i.built_in=[...i.built_in,...n.built_in],i._hints=n._hints,a.name="Arduino",a.aliases=["ino"],a.supersetOf="cpp",a}function ea(e){const n=e.regex,a={},i={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[a]}]};Object.assign(a,{className:"variable",variants:[{begin:n.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},i]});const r={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},d=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),s={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},l={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,a,r]};r.contains.push(l);const g={match:/\\"/},o={className:"string",begin:/'/,end:/'/},b={match:/\\'/},p={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,a]},u=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],y=e.SHEBANG({binary:`(${u.join("|")})`,relevance:10}),v={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},h=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],N=["true","false"],S={match:/(\/[a-z._-]+)+/},C=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],R=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],B=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],D=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:h,literal:N,built_in:[...C,...R,"set","shopt",...B,...D]},contains:[y,e.SHEBANG(),v,p,d,s,S,l,g,o,b,a]}}function na(e){const n=e.regex,a=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),i="decltype\\(auto\\)",r="[a-zA-Z_]\\w*::",d="("+i+"|"+n.optional(r)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",s={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},l={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},g={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},o={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(l,{className:"string"}),{className:"string",begin:/<.*?>/},a,e.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:n.optional(r)+e.IDENT_RE,relevance:0},p=n.optional(r)+e.IDENT_RE+"\\s*\\(",u={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},y=[o,s,a,e.C_BLOCK_COMMENT_MODE,g,l],v={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:u,contains:y.concat([{begin:/\(/,end:/\)/,keywords:u,contains:y.concat(["self"]),relevance:0}]),relevance:0},h={begin:"("+d+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:i,keywords:u,relevance:0},{begin:p,returnBegin:!0,contains:[e.inherit(b,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:[a,e.C_BLOCK_COMMENT_MODE,l,g,s,{begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:["self",a,e.C_BLOCK_COMMENT_MODE,l,g,s]}]},s,a,e.C_BLOCK_COMMENT_MODE,o]};return{name:"C",aliases:["h"],keywords:u,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:o,strings:l,keywords:u}}}function ta(e){const n=e.regex,a=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),i="decltype\\(auto\\)",r="[a-zA-Z_]\\w*::",d="(?!struct)("+i+"|"+n.optional(r)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",s={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},l={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},g={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},o={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(l,{className:"string"}),{className:"string",begin:/<.*?>/},a,e.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:n.optional(r)+e.IDENT_RE,relevance:0},p=n.optional(r)+e.IDENT_RE+"\\s*\\(",u=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],y=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],v=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],h=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],N={type:y,keyword:u,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:v},S={className:"function.dispatch",relevance:0,keywords:{_hint:h},begin:n.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,n.lookahead(/(<[^<>]+>|)\s*\(/))},C=[S,o,s,a,e.C_BLOCK_COMMENT_MODE,g,l],R={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:N,contains:C.concat([{begin:/\(/,end:/\)/,keywords:N,contains:C.concat(["self"]),relevance:0}]),relevance:0},B={className:"function",begin:"("+d+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:N,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:i,keywords:N,relevance:0},{begin:p,returnBegin:!0,contains:[b],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[l,g]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:N,relevance:0,contains:[a,e.C_BLOCK_COMMENT_MODE,l,g,s,{begin:/\(/,end:/\)/,keywords:N,relevance:0,contains:["self",a,e.C_BLOCK_COMMENT_MODE,l,g,s]}]},s,a,e.C_BLOCK_COMMENT_MODE,o]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:N,illegal:"",keywords:N,contains:["self",s]},{begin:e.IDENT_RE+"::",keywords:N},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function aa(e){const n=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],a=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],i=["default","false","null","true"],r=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],d=["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"],s={keyword:r.concat(d),built_in:n,literal:i},l=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),g={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},o={className:"string",begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},b={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},p=e.inherit(b,{illegal:/\n/}),u={className:"subst",begin:/\{/,end:/\}/,keywords:s},y=e.inherit(u,{illegal:/\n/}),v={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,y]},h={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},u]},N=e.inherit(h,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},y]});u.contains=[h,v,b,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,g,e.C_BLOCK_COMMENT_MODE],y.contains=[N,v,p,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,g,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const S={variants:[o,h,v,b,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},C={begin:"<",end:">",contains:[{beginKeywords:"in out"},l]},R=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",B={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:s,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:""},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},S,g,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},l,C,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[l,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[l,C,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+R+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:s,contains:[{beginKeywords:a.join(" "),relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,C],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:s,relevance:0,contains:[S,g,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},B]}}const ia=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),ra=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],sa=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],oa=[...ra,...sa],la=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),ca=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),da=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),ga=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function ua(e){const n=e.regex,a=ia(e),i={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},r="and or not only",d=/@-?\w[\w]*(-\w+)*/,s="[a-zA-Z-][a-zA-Z0-9_-]*",l=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[a.BLOCK_COMMENT,i,a.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+s,relevance:0},a.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+ca.join("|")+")"},{begin:":(:)?("+da.join("|")+")"}]},a.CSS_VARIABLE,{className:"attribute",begin:"\\b("+ga.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[a.BLOCK_COMMENT,a.HEXCOLOR,a.IMPORTANT,a.CSS_NUMBER_MODE,...l,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...l,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},a.FUNCTION_DISPATCH]},{begin:n.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:d},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:r,attribute:la.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...l,a.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+oa.join("|")+")\\b"}]}}function ba(e){const n=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:n.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:n.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}function ma(e){const n={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:n,illegal:"Wn(e,n,a-1))}function ha(e){const n=e.regex,a="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",i=a+Wn("(?:<"+a+"~~~(?:\\s*,\\s*"+a+"~~~)*>)?",/~~~/g,2),r={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},d={className:"meta",begin:"@"+a,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},s={className:"params",begin:/\(/,end:/\)/,keywords:r,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:r,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,a],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[n.concat(/(?!else)/,a),/\s+/,a,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,a],className:{1:"keyword",3:"title.class"},contains:[s,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+i+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:r,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:r,relevance:0,contains:[d,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,zn,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},zn,d]}}const Fn="[A-Za-z$_][0-9A-Za-z$_]*",_a=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],ya=["true","false","null","undefined","NaN","Infinity"],Xn=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],Qn=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Vn=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Ea=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],wa=[].concat(Vn,Xn,Qn);function va(e){const n=e.regex,a=(L,{after:Z})=>{const ae="",end:""},d=/<[A-Za-z0-9\\._:-]+\s*\/>/,s={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(L,Z)=>{const ae=L[0].length+L.index,ge=L.input[ae];if(ge==="<"||ge===","){Z.ignoreMatch();return}ge===">"&&(a(L,{after:ae})||Z.ignoreMatch());let se;const ie=L.input.substring(ae);if(se=ie.match(/^\s*=/)){Z.ignoreMatch();return}if((se=ie.match(/^\s+extends\s+/))&&se.index===0){Z.ignoreMatch();return}}},l={$pattern:Fn,keyword:_a,literal:ya,built_in:wa,"variable.language":Ea},g="[0-9](_?[0-9])*",o=`\\.(${g})`,b="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",p={className:"number",variants:[{begin:`(\\b(${b})((${o})|\\.)?|(${o}))[eE][+-]?(${g})\\b`},{begin:`\\b(${b})\\b((${o})\\b|\\.)?|(${o})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},u={className:"subst",begin:"\\$\\{",end:"\\}",keywords:l,contains:[]},y={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"xml"}},v={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"css"}},h={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"graphql"}},N={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,u]},S={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:i+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},C=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,y,v,h,N,{match:/\$\d+/},p];u.contains=C.concat({begin:/\{/,end:/\}/,keywords:l,contains:["self"].concat(C)});const R=[].concat(S,u.contains),B=R.concat([{begin:/(\s*)\(/,end:/\)/,keywords:l,contains:["self"].concat(R)}]),D={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:B},V={variants:[{match:[/class/,/\s+/,i,/\s+/,/extends/,/\s+/,n.concat(i,"(",n.concat(/\./,i),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,i],scope:{1:"keyword",3:"title.class"}}]},H={relevance:0,match:n.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...Xn,...Qn]}},J={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},q={variants:[{match:[/function/,/\s+/,i,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[D],illegal:/%/},le={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function de(L){return n.concat("(?!",L.join("|"),")")}const ce={match:n.concat(/\b/,de([...Vn,"super","import"].map(L=>`${L}\\s*\\(`)),i,n.lookahead(/\s*\(/)),className:"title.function",relevance:0},Y={begin:n.concat(/\./,n.lookahead(n.concat(i,/(?![0-9A-Za-z$_(])/))),end:i,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},j={match:[/get|set/,/\s+/,i,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},D]},te="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",ye={match:[/const|var|let/,/\s+/,i,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(te)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[D]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:l,exports:{PARAMS_CONTAINS:B,CLASS_REFERENCE:H},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),J,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,y,v,h,N,S,{match:/\$\d+/},p,H,{scope:"attr",match:i+n.lookahead(":"),relevance:0},ye,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[S,e.REGEXP_MODE,{className:"function",begin:te,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:B}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r.begin,end:r.end},{match:d},{begin:s.begin,"on:begin":s.isTrulyOpeningTag,end:s.end}],subLanguage:"xml",contains:[{begin:s.begin,end:s.end,skip:!0,contains:["self"]}]}]},q,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[D,e.inherit(e.TITLE_MODE,{begin:i,className:"title.function"})]},{match:/\.\.\./,relevance:0},Y,{match:"\\$"+i,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[D]},ce,le,V,j,{match:/\$[(.]/}]}}function Na(e){const n={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},a={match:/[{}[\],:]/,className:"punctuation",relevance:0},i=["true","false","null"],r={scope:"literal",beginKeywords:i.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:i},contains:[n,a,e.QUOTE_STRING_MODE,r,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var Oe="[0-9](_*[0-9])*",Ke=`\\.(${Oe})`,Ge="[0-9a-fA-F](_*[0-9a-fA-F])*",ka={className:"number",variants:[{begin:`(\\b(${Oe})((${Ke})|\\.)?|(${Ke}))[eE][+-]?(${Oe})[fFdD]?\\b`},{begin:`\\b(${Oe})((${Ke})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${Ke})[fFdD]?\\b`},{begin:`\\b(${Oe})[fFdD]\\b`},{begin:`\\b0[xX]((${Ge})\\.?|(${Ge})?\\.(${Ge}))[pP][+-]?(${Oe})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Ge})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function xa(e){const n={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},a={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},i={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},r={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},d={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},s={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[d,r]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,d,r]}]};r.contains.push(s);const l={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},g={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(s,{className:"string"}),"self"]}]},o=ka,b=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),p={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},u=p;return u.variants[1].contains=[p],p.variants[1].contains=[u],{name:"Kotlin",aliases:["kt","kts"],keywords:n,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,b,a,i,l,g,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[p,e.C_LINE_COMMENT_MODE,b],relevance:0},e.C_LINE_COMMENT_MODE,b,l,g,s,e.C_NUMBER_MODE]},b]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},l,g]},s,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:` `},o]}}const Sa=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Ma=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Oa=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],Aa=[...Ma,...Oa],Ca=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),Jn=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),Yn=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Ta=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse(),Ra=Jn.concat(Yn).sort().reverse();function Ia(e){const n=Sa(e),a=Ra,i="and or not only",r="[\\w-]+",d="("+r+"|@\\{"+r+"\\})",s=[],l=[],g=function(R){return{className:"string",begin:"~?"+R+".*?"+R}},o=function(R,B,D){return{className:R,begin:B,relevance:D}},b={$pattern:/[a-z-]+/,keyword:i,attribute:Ca.join(" ")},p={begin:"\\(",end:"\\)",contains:l,keywords:b,relevance:0};l.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,g("'"),g('"'),n.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},n.HEXCOLOR,p,o("variable","@@?"+r,10),o("variable","@\\{"+r+"\\}"),o("built_in","~?`[^`]*?`"),{className:"attribute",begin:r+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},n.IMPORTANT,{beginKeywords:"and not"},n.FUNCTION_DISPATCH);const u=l.concat({begin:/\{/,end:/\}/,contains:s}),y={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(l)},v={begin:d+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Ta.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:l}}]},h={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:b,returnEnd:!0,contains:l,relevance:0}},N={className:"variable",variants:[{begin:"@"+r+"\\s*:",relevance:15},{begin:"@"+r}],starts:{end:"[;}]",returnEnd:!0,contains:u}},S={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:d,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:`[<='$"]`,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,y,o("keyword","all\\b"),o("variable","@\\{"+r+"\\}"),{begin:"\\b("+Aa.join("|")+")\\b",className:"selector-tag"},n.CSS_NUMBER_MODE,o("selector-tag",d,0),o("selector-id","#"+d),o("selector-class","\\."+d,0),o("selector-tag","&",0),n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+Jn.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+Yn.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:u},{begin:"!important"},n.FUNCTION_DISPATCH]},C={begin:r+`:(:)?(${a.join("|")})`,returnBegin:!0,contains:[S]};return s.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,h,N,C,v,S,y,n.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:`[=>'/<($"]`,contains:s}}function Da(e){const n="\\[=*\\[",a="\\]=*\\]",i={begin:n,end:a,contains:["self"]},r=[e.COMMENT("--(?!"+n+")","$"),e.COMMENT("--"+n,a,{contains:[i],relevance:10})];return{name:"Lua",aliases:["pluto"],keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:r.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:r}].concat(r)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:n,end:a,contains:[i],relevance:5}])}}function La(e){const n={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%",subLanguage:"xml",relevance:0},i={begin:"^[-\\*]{3,}",end:"$"},r={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},d={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},s={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},l=/[A-Za-z][A-Za-z0-9+.-]*/,g={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:n.concat(/\[.+?\]\(/,l,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},o={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},b={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},p=e.inherit(o,{contains:[]}),u=e.inherit(b,{contains:[]});o.contains.push(u),b.contains.push(p);let y=[a,g];return[o,b,p,u].forEach(v=>{v.contains=v.contains.concat(y)}),y=y.concat(o,b),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:y},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:y}]}]},a,d,o,b,{className:"quote",begin:"^>\\s+",contains:y,end:"$"},r,i,g,s,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function za(e){const n={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},a=/[a-zA-Z@][a-zA-Z0-9_]*/,i={"variable.language":["this","super"],$pattern:a,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},r={$pattern:a,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:i,illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+r.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:r,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}function Fa(e){const n=e.regex,a=["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","class","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","field","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","method","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"],i=/[dualxmsipngr]{0,12}/,r={$pattern:/[\w.]+/,keyword:a.join(" ")},d={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:r},s={begin:/->\{/,end:/\}/},l={scope:"attr",match:/\s+:\s*\w+(\s*\(.*?\))?/},g={scope:"variable",variants:[{begin:/\$\d/},{begin:n.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[l]},o={className:"number",variants:[{match:/0?\.[0-9][0-9_]+\b/},{match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{match:/\b0b[0-1][0-1_]*\b/}],relevance:0},b=[e.BACKSLASH_ESCAPE,d,g],p=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],u=(h,N,S="\\1")=>{const C=S==="\\1"?S:n.concat(S,N);return n.concat(n.concat("(?:",h,")"),N,/(?:\\.|[^\\\/])*?/,C,/(?:\\.|[^\\\/])*?/,S,i)},y=(h,N,S)=>n.concat(n.concat("(?:",h,")"),N,/(?:\\.|[^\\\/])*?/,S,i),v=[g,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),s,{className:"string",contains:b,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},o,{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:u("s|tr|y",n.either(...p,{capture:!0}))},{begin:u("s|tr|y","\\(","\\)")},{begin:u("s|tr|y","\\[","\\]")},{begin:u("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:y("(?:m|qr)?",/\//,/\//)},{begin:y("m|qr",n.either(...p,{capture:!0}),/\1/)},{begin:y("m|qr",/\(/,/\)/)},{begin:y("m|qr",/\[/,/\]/)},{begin:y("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub method",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,l]},{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,l,o]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return d.contains=v,s.contains=v,{name:"Perl",aliases:["pl","pm"],keywords:r,contains:v}}function $a(e){const n=e.regex,a=/(?![A-Za-z0-9])(?![$])/,i=n.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,a),r=n.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,a),d=n.concat(/[A-Z]+/,a),s={scope:"variable",match:"\\$+"+i},l={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},g={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},o=e.inherit(e.APOS_STRING_MODE,{illegal:null}),b=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(g)}),p={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(g),"on:begin":(Y,j)=>{j.data._beginMatch=Y[1]||Y[2]},"on:end":(Y,j)=>{j.data._beginMatch!==Y[1]&&j.ignoreMatch()}},u=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),y=`[ ]`,v={scope:"string",variants:[b,o,p,u]},h={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},N=["false","null","true"],S=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],C=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],R={keyword:S,literal:(Y=>{const j=[];return Y.forEach(te=>{j.push(te),te.toLowerCase()===te?j.push(te.toUpperCase()):j.push(te.toLowerCase())}),j})(N),built_in:C},B=Y=>Y.map(j=>j.replace(/\|\d+$/,"")),D={variants:[{match:[/new/,n.concat(y,"+"),n.concat("(?!",B(C).join("\\b|"),"\\b)"),r],scope:{1:"keyword",4:"title.class"}}]},V=n.concat(i,"\\b(?!\\()"),H={variants:[{match:[n.concat(/::/,n.lookahead(/(?!class\b)/)),V],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[r,n.concat(/::/,n.lookahead(/(?!class\b)/)),V],scope:{1:"title.class",3:"variable.constant"}},{match:[r,n.concat("::",n.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[r,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},J={scope:"attr",match:n.concat(i,n.lookahead(":"),n.lookahead(/(?!::)/))},q={relevance:0,begin:/\(/,end:/\)/,keywords:R,contains:[J,s,H,e.C_BLOCK_COMMENT_MODE,v,h,D]},le={relevance:0,match:[/\b/,n.concat("(?!fn\\b|function\\b|",B(S).join("\\b|"),"|",B(C).join("\\b|"),"\\b)"),i,n.concat(y,"*"),n.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[q]};q.contains.push(le);const de=[J,H,e.C_BLOCK_COMMENT_MODE,v,h,D],ce={begin:n.concat(/#\[\s*\\?/,n.either(r,d)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:N,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:N,keyword:["new","array"]},contains:["self",...de]},...de,{scope:"meta",variants:[{match:r},{match:d}]}]};return{case_insensitive:!1,keywords:R,contains:[ce,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},l,{scope:"variable.language",match:/\$this\b/},s,le,H,{match:[/const/,/\s/,i],scope:{1:"keyword",3:"variable.constant"}},D,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:R,contains:["self",ce,s,H,e.C_BLOCK_COMMENT_MODE,v,h]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},v,h]}}function Ua(e){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}function Pa(e){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}function ja(e){const n=e.regex,a=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),i=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],r={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:i,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},d={className:"meta",begin:/^(>>>|\.\.\.) /},s={className:"subst",begin:/\{/,end:/\}/,keywords:r,illegal:/#/},l={begin:/\{\{/,relevance:0},g={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,d],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,d],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,d,l,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,d,l,s]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,l,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,l,s]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},o="[0-9](_?[0-9])*",b=`(\\b(${o}))?\\.(${o})|\\b(${o})\\.`,p=`\\b|${i.join("|")}`,u={className:"number",relevance:0,variants:[{begin:`(\\b(${o})|(${b}))[eE][+-]?(${o})[jJ]?(?=${p})`},{begin:`(${b})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${p})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${p})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${p})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${p})`},{begin:`\\b(${o})[jJ](?=${p})`}]},y={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:r,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},v={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:r,contains:["self",d,u,g,e.HASH_COMMENT_MODE]}]};return s.contains=[g,u,d],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:r,illegal:/(<\/|\?)|=>/,contains:[d,u,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},g,y,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,a],scope:{1:"keyword",3:"title.function"},contains:[v]},{variants:[{match:[/\bclass/,/\s+/,a,/\s*/,/\(\s*/,a,/\s*\)/]},{match:[/\bclass/,/\s+/,a]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[u,v,g]}]}}function qa(e){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}function Ka(e){const n=e.regex,a=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,i=n.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),r=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,d=n.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:a,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:n.lookahead(n.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:a},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[r,i]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,i]},{scope:{1:"punctuation",2:"number"},match:[d,i]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,i]}]},{scope:{3:"operator"},match:[a,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:r},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:d},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}function Ga(e){const n=e.regex,a="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",i=n.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),r=n.concat(i,/(::\w+)*/),d={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield","include","extend","prepend","public","private","protected","raise","throw"],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},s={className:"doctag",begin:"@[A-Za-z]+"},l={begin:"#<",end:">"},g=[e.COMMENT("#","$",{contains:[s]}),e.COMMENT("^=begin","^=end",{contains:[s],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],o={className:"subst",begin:/#\{/,end:/\}/,keywords:d},b={className:"string",contains:[e.BACKSLASH_ESCAPE,o],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:n.concat(/<<[-~]?'?/,n.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,o]})]}]},p="[1-9](_?[0-9])*|0",u="[0-9](_?[0-9])*",y={className:"number",relevance:0,variants:[{begin:`\\b(${p})(\\.(${u}))?([eE][+-]?(${u})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},v={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:d}]},h=[b,{variants:[{match:[/class\s+/,r,/\s+<\s+/,r]},{match:[/\b(class|module)\s+/,r]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:d},{match:[/(include|extend)\s+/,r],scope:{2:"title.class"},keywords:d},{relevance:0,match:[r,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:i,scope:"title.class"},{match:[/def/,/\s+/,a],scope:{1:"keyword",3:"title.function"},contains:[v]},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[b,{begin:a}],relevance:0},y,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:d},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,o],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(l,g),relevance:0}].concat(l,g);o.contains=h,v.contains=h;const N=[{begin:/^\s*=>/,starts:{end:"$",contains:h}},{className:"meta.prompt",begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])",starts:{end:"$",keywords:d,contains:h}}];return g.unshift(l),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:d,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(N).concat(g).concat(h)}}function Ha(e){const n=e.regex,a=/(r#)?/,i=n.concat(a,e.UNDERSCORE_IDENT_RE),r=n.concat(a,e.IDENT_RE),d={className:"title.function.invoke",relevance:0,begin:n.concat(/\b/,/(?!let|for|while|if|else|match\b)/,r,n.lookahead(/\s*\(/))},s="([ui](8|16|32|64|128|size)|f(32|64))?",l=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],g=["true","false","Some","None","Ok","Err"],o=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],b=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:b,keyword:l,literal:g,built_in:o},illegal:""},d]}}const Za=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Wa=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Xa=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],Qa=[...Wa,...Xa],Va=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),Ja=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),Ya=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),ei=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function ni(e){const n=Za(e),a=Ya,i=Ja,r="@[a-z-]+",d="and or not only",s={className:"variable",begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+Qa.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+i.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+a.join("|")+")"},s,{begin:/\(/,end:/\)/,contains:[n.CSS_NUMBER_MODE]},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+ei.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[n.BLOCK_COMMENT,s,n.HEXCOLOR,n.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.IMPORTANT,n.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:r,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:d,attribute:Va.join(" ")},contains:[{begin:r,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},s,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.HEXCOLOR,n.CSS_NUMBER_MODE]},n.FUNCTION_DISPATCH]}}function ti(e){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}function ai(e){const n=e.regex,a=e.COMMENT("--","$"),i={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},r={begin:/"/,end:/"/,contains:[{match:/""/}]},d=["true","false","unknown"],s=["double precision","large object","with timezone","without timezone"],l=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],g=["add","asc","collation","desc","final","first","last","view"],o=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],b=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],p=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],u=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],y=b,v=[...o,...g].filter(D=>!b.includes(D)),h={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},N={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},S={match:n.concat(/\b/,n.either(...y),/\s*\(/),relevance:0,keywords:{built_in:y}};function C(D){return n.concat(/\b/,n.either(...D.map(V=>V.replace(/\s+/,"\\s+"))),/\b/)}const R={scope:"keyword",match:C(u),relevance:0};function B(D,{exceptions:V,when:H}={}){const J=H;return V=V||[],D.map(q=>q.match(/\|\d+$/)||V.includes(q)?q:J(q)?`${q}|0`:q)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:B(v,{when:D=>D.length<3}),literal:d,type:l,built_in:p},contains:[{scope:"type",match:C(s)},R,S,h,i,r,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,a,N]}}function et(e){return e?typeof e=="string"?e:e.source:null}function Re(e){return $("(?=",e,")")}function $(...e){return e.map(n=>et(n)).join("")}function ii(e){const n=e[e.length-1];return typeof n=="object"&&n.constructor===Object?(e.splice(e.length-1,1),n):{}}function re(...e){return"("+(ii(e).capture?"":"?:")+e.map(n=>et(n)).join("|")+")"}const fn=e=>$(/\b/,e,/\w$/.test(e)?/\b/:/\B/),ri=["Protocol","Type"].map(fn),$n=["init","self"].map(fn),si=["Any","Self"],un=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],Un=["false","nil","true"],oi=["assignment","associativity","higherThan","left","lowerThan","none","right"],li=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],Pn=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],nt=re(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),tt=re(nt,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),bn=$(nt,tt,"*"),at=re(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),Ze=re(at,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),pe=$(at,Ze,"*"),He=$(/[A-Z]/,Ze,"*"),ci=["attached","autoclosure",$(/convention\(/,re("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",$(/objc\(/,pe,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],di=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function gi(e){const n={match:/\s+/,relevance:0},a=e.COMMENT("/\\*","\\*/",{contains:["self"]}),i=[e.C_LINE_COMMENT_MODE,a],r={match:[/\./,re(...ri,...$n)],className:{2:"keyword"}},d={match:$(/\./,re(...un)),relevance:0},s=un.filter(z=>typeof z=="string").concat(["_|0"]),l=un.filter(z=>typeof z!="string").concat(si).map(fn),g={variants:[{className:"keyword",match:re(...l,...$n)}]},o={$pattern:re(/\b\w+/,/#\w+/),keyword:s.concat(li),literal:Un},b=[r,d,g],p={match:$(/\./,re(...Pn)),relevance:0},u={className:"built_in",match:$(/\b/,re(...Pn),/(?=\()/)},y=[p,u],v={match:/->/,relevance:0},h={className:"operator",relevance:0,variants:[{match:bn},{match:`\\.(\\.|${tt})+`}]},N=[v,h],S="([0-9]_*)+",C="([0-9a-fA-F]_*)+",R={className:"number",relevance:0,variants:[{match:`\\b(${S})(\\.(${S}))?([eE][+-]?(${S}))?\\b`},{match:`\\b0x(${C})(\\.(${C}))?([pP][+-]?(${S}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},B=(z="")=>({className:"subst",variants:[{match:$(/\\/,z,/[0\\tnr"']/)},{match:$(/\\/,z,/u\{[0-9a-fA-F]{1,8}\}/)}]}),D=(z="")=>({className:"subst",match:$(/\\/,z,/[\t ]*(?:[\r\n]|\r\n)/)}),V=(z="")=>({className:"subst",label:"interpol",begin:$(/\\/,z,/\(/),end:/\)/}),H=(z="")=>({begin:$(z,/"""/),end:$(/"""/,z),contains:[B(z),D(z),V(z)]}),J=(z="")=>({begin:$(z,/"/),end:$(/"/,z),contains:[B(z),V(z)]}),q={className:"string",variants:[H(),H("#"),H("##"),H("###"),J(),J("#"),J("##"),J("###")]},le=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],de={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:le},ce=z=>{const ke=$(z,/\//),Ee=$(/\//,z);return{begin:ke,end:Ee,contains:[...le,{scope:"comment",begin:`#(?!.*${Ee})`,end:/$/}]}},Y={scope:"regexp",variants:[ce("###"),ce("##"),ce("#"),de]},j={match:$(/`/,pe,/`/)},te={className:"variable",match:/\$\d+/},ye={className:"variable",match:`\\$${Ze}+`},L=[j,te,ye],Z={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:di,contains:[...N,R,q]}]}},ae={scope:"keyword",match:$(/@/,re(...ci),Re(re(/\(/,/\s+/)))},ge={scope:"meta",match:$(/@/,pe)},se=[Z,ae,ge],ie={match:Re(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:$(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,Ze,"+")},{className:"type",match:He,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:$(/\s+&\s+/,Re(He)),relevance:0}]},Xe={begin://,keywords:o,contains:[...i,...b,...se,v,ie]};ie.contains.push(Xe);const Qe={match:$(pe,/\s*:/),keywords:"_|0",relevance:0},Ie={begin:/\(/,end:/\)/,relevance:0,keywords:o,contains:["self",Qe,...i,Y,...b,...y,...N,R,q,...L,...se,ie]},Ce={begin://,keywords:"repeat each",contains:[...i,ie]},Ve={begin:re(Re($(pe,/\s*:/)),Re($(pe,/\s+/,pe,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:pe}]},De={begin:/\(/,end:/\)/,keywords:o,contains:[Ve,...i,...b,...N,R,q,...se,ie,Ie],endsParent:!0,illegal:/["']/},Ne={match:[/(func|macro)/,/\s+/,re(j.match,pe,bn)],className:{1:"keyword",3:"title.function"},contains:[Ce,De,n],illegal:[/\[/,/%/]},Je={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[Ce,De,n],illegal:/\[|%/},Ye={match:[/operator/,/\s+/,bn],className:{1:"keyword",3:"title"}},en={begin:[/precedencegroup/,/\s+/,He],className:{1:"keyword",3:"title"},contains:[ie],keywords:[...oi,...Un],end:/}/},nn={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},tn={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},an={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,pe,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:o,contains:[Ce,...b,{begin:/:/,end:/\{/,keywords:o,contains:[{scope:"title.class.inherited",match:He},...b],relevance:0}]};for(const z of q.variants){const ke=z.contains.find(Le=>Le.label==="interpol");ke.keywords=o;const Ee=[...b,...y,...N,R,q,...L];ke.contains=[...Ee,{begin:/\(/,end:/\)/,contains:["self",...Ee]}]}return{name:"Swift",keywords:o,contains:[...i,Ne,Je,nn,tn,an,Ye,en,{beginKeywords:"import",end:/$/,contains:[...i],relevance:0},Y,...b,...y,...N,R,q,...L,...se,ie,Ie]}}const We="[A-Za-z$_][0-9A-Za-z$_]*",it=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],rt=["true","false","null","undefined","NaN","Infinity"],st=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],ot=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],lt=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],ct=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],dt=[].concat(lt,st,ot);function ui(e){const n=e.regex,a=(L,{after:Z})=>{const ae="",end:""},d=/<[A-Za-z0-9\\._:-]+\s*\/>/,s={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(L,Z)=>{const ae=L[0].length+L.index,ge=L.input[ae];if(ge==="<"||ge===","){Z.ignoreMatch();return}ge===">"&&(a(L,{after:ae})||Z.ignoreMatch());let se;const ie=L.input.substring(ae);if(se=ie.match(/^\s*=/)){Z.ignoreMatch();return}if((se=ie.match(/^\s+extends\s+/))&&se.index===0){Z.ignoreMatch();return}}},l={$pattern:We,keyword:it,literal:rt,built_in:dt,"variable.language":ct},g="[0-9](_?[0-9])*",o=`\\.(${g})`,b="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",p={className:"number",variants:[{begin:`(\\b(${b})((${o})|\\.)?|(${o}))[eE][+-]?(${g})\\b`},{begin:`\\b(${b})\\b((${o})\\b|\\.)?|(${o})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},u={className:"subst",begin:"\\$\\{",end:"\\}",keywords:l,contains:[]},y={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"xml"}},v={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"css"}},h={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"graphql"}},N={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,u]},S={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:i+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},C=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,y,v,h,N,{match:/\$\d+/},p];u.contains=C.concat({begin:/\{/,end:/\}/,keywords:l,contains:["self"].concat(C)});const R=[].concat(S,u.contains),B=R.concat([{begin:/(\s*)\(/,end:/\)/,keywords:l,contains:["self"].concat(R)}]),D={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:B},V={variants:[{match:[/class/,/\s+/,i,/\s+/,/extends/,/\s+/,n.concat(i,"(",n.concat(/\./,i),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,i],scope:{1:"keyword",3:"title.class"}}]},H={relevance:0,match:n.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...st,...ot]}},J={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},q={variants:[{match:[/function/,/\s+/,i,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[D],illegal:/%/},le={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function de(L){return n.concat("(?!",L.join("|"),")")}const ce={match:n.concat(/\b/,de([...lt,"super","import"].map(L=>`${L}\\s*\\(`)),i,n.lookahead(/\s*\(/)),className:"title.function",relevance:0},Y={begin:n.concat(/\./,n.lookahead(n.concat(i,/(?![0-9A-Za-z$_(])/))),end:i,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},j={match:[/get|set/,/\s+/,i,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},D]},te="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",ye={match:[/const|var|let/,/\s+/,i,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(te)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[D]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:l,exports:{PARAMS_CONTAINS:B,CLASS_REFERENCE:H},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),J,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,y,v,h,N,S,{match:/\$\d+/},p,H,{scope:"attr",match:i+n.lookahead(":"),relevance:0},ye,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[S,e.REGEXP_MODE,{className:"function",begin:te,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:B}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r.begin,end:r.end},{match:d},{begin:s.begin,"on:begin":s.isTrulyOpeningTag,end:s.end}],subLanguage:"xml",contains:[{begin:s.begin,end:s.end,skip:!0,contains:["self"]}]}]},q,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[D,e.inherit(e.TITLE_MODE,{begin:i,className:"title.function"})]},{match:/\.\.\./,relevance:0},Y,{match:"\\$"+i,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[D]},ce,le,V,j,{match:/\$[(.]/}]}}function bi(e){const n=e.regex,a=ui(e),i=We,r=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],d={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},s={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:r},contains:[a.exports.CLASS_REFERENCE]},l={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},g=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],o={$pattern:We,keyword:it.concat(g),literal:rt,built_in:dt.concat(r),"variable.language":ct},b={className:"meta",begin:"@"+i},p=(h,N,S)=>{const C=h.contains.findIndex(R=>R.label===N);if(C===-1)throw new Error("can not find mode to replace");h.contains.splice(C,1,S)};Object.assign(a.keywords,o),a.exports.PARAMS_CONTAINS.push(b);const u=a.contains.find(h=>h.scope==="attr"),y=Object.assign({},u,{match:n.concat(i,n.lookahead(/\s*\?:/))});a.exports.PARAMS_CONTAINS.push([a.exports.CLASS_REFERENCE,u,y]),a.contains=a.contains.concat([b,d,s,y]),p(a,"shebang",e.SHEBANG()),p(a,"use_strict",l);const v=a.contains.find(h=>h.label==="func.def");return v.relevance=0,Object.assign(a,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),a}function mi(e){const n=e.regex,a={className:"string",begin:/"(""|[^/n])"C\b/},i={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},r=/\d{1,2}\/\d{1,2}\/\d{4}/,d=/\d{4}-\d{1,2}-\d{1,2}/,s=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,l=/\d{1,2}(:\d{1,2}){1,2}/,g={className:"literal",variants:[{begin:n.concat(/# */,n.either(d,r),/ *#/)},{begin:n.concat(/# */,l,/ *#/)},{begin:n.concat(/# */,s,/ *#/)},{begin:n.concat(/# */,n.either(d,r),/ +/,n.either(s,l),/ *#/)}]},o={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},b={className:"label",begin:/^\w+:/},p=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),u=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[a,i,g,o,b,p,u,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[u]}]}}function pi(e){e.regex;const n=e.COMMENT(/\(;/,/;\)/);n.contains.push("self");const a=e.COMMENT(/;;/,/$/),i=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],r={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},d={className:"variable",begin:/\$[\w_]+/},s={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},l={className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/},g={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},o={className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:i},contains:[a,n,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},d,s,r,e.QUOTE_STRING_MODE,g,o,l]}}function fi(e){const n=e.regex,a=n.concat(/[\p{L}_]/u,n.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),i=/[\p{L}0-9._:-]+/u,r={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},d={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},s=e.inherit(d,{begin:/\(/,end:/\)/}),l=e.inherit(e.APOS_STRING_MODE,{className:"string"}),g=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),o={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[d,g,l,s,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[d,s,g,l]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},r,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[g]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[o],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[o],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:n.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:a,relevance:0,starts:o}]},{className:"tag",begin:n.concat(/<\//,n.lookahead(n.concat(a,/>/))),contains:[{className:"name",begin:a,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function hi(e){const n="true false yes no null",a="[\\w#;/?:@&=+$,.~*'()[\\]]+",i={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},r={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},d={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},s={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,r]},l=e.inherit(s,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),g={className:"number",begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"},o={end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},b={begin:/\{/,end:/\}/,contains:[o],illegal:"\\n",relevance:0},p={begin:"\\[",end:"\\]",contains:[o],illegal:"\\n",relevance:0},u=[i,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type",begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},g,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},b,p,d,s],y=[...u];return y.pop(),y.push(l),o.contains=y,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:u}}const _i={arduino:Yt,bash:ea,c:na,cpp:ta,csharp:aa,css:ua,diff:ba,go:ma,graphql:pa,ini:fa,java:ha,javascript:va,json:Na,kotlin:xa,less:Ia,lua:Da,makefile:La,markdown:Ba,objectivec:za,perl:Fa,php:$a,"php-template":Ua,plaintext:Pa,python:ja,"python-repl":qa,r:Ka,ruby:Ga,rust:Ha,scss:ni,shell:ti,sql:ai,swift:gi,typescript:bi,vbnet:mi,wasm:pi,xml:fi,yaml:hi};var mn,jn;function yi(){if(jn)return mn;jn=1;function e(t){return t instanceof Map?t.clear=t.delete=t.set=function(){throw new Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=function(){throw new Error("set is read-only")}),Object.freeze(t),Object.getOwnPropertyNames(t).forEach(c=>{const _=t[c],A=typeof _;(A==="object"||A==="function")&&!Object.isFrozen(_)&&e(_)}),t}class n{constructor(c){c.data===void 0&&(c.data={}),this.data=c.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function a(t){return t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function i(t,...c){const _=Object.create(null);for(const A in t)_[A]=t[A];return c.forEach(function(A){for(const K in A)_[K]=A[K]}),_}const r="",d=t=>!!t.scope,s=(t,{prefix:c})=>{if(t.startsWith("language:"))return t.replace("language:","language-");if(t.includes(".")){const _=t.split(".");return[`${c}${_.shift()}`,..._.map((A,K)=>`${A}${"_".repeat(K+1)}`)].join(" ")}return`${c}${t}`};class l{constructor(c,_){this.buffer="",this.classPrefix=_.classPrefix,c.walk(this)}addText(c){this.buffer+=a(c)}openNode(c){if(!d(c))return;const _=s(c.scope,{prefix:this.classPrefix});this.span(_)}closeNode(c){d(c)&&(this.buffer+=r)}value(){return this.buffer}span(c){this.buffer+=``}}const g=(t={})=>{const c={children:[]};return Object.assign(c,t),c};class o{constructor(){this.rootNode=g(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(c){this.top.children.push(c)}openNode(c){const _=g({scope:c});this.add(_),this.stack.push(_)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(c){return this.constructor._walk(c,this.rootNode)}static _walk(c,_){return typeof _=="string"?c.addText(_):_.children&&(c.openNode(_),_.children.forEach(A=>this._walk(c,A)),c.closeNode(_)),c}static _collapse(c){typeof c!="string"&&c.children&&(c.children.every(_=>typeof _=="string")?c.children=[c.children.join("")]:c.children.forEach(_=>{o._collapse(_)}))}}class b extends o{constructor(c){super(),this.options=c}addText(c){c!==""&&this.add(c)}startScope(c){this.openNode(c)}endScope(){this.closeNode()}__addSublanguage(c,_){const A=c.root;_&&(A.scope=`language:${_}`),this.add(A)}toHTML(){return new l(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function p(t){return t?typeof t=="string"?t:t.source:null}function u(t){return h("(?=",t,")")}function y(t){return h("(?:",t,")*")}function v(t){return h("(?:",t,")?")}function h(...t){return t.map(c=>p(c)).join("")}function N(t){const c=t[t.length-1];return typeof c=="object"&&c.constructor===Object?(t.splice(t.length-1,1),c):{}}function S(...t){return"("+(N(t).capture?"":"?:")+t.map(c=>p(c)).join("|")+")"}function C(t){return new RegExp(t.toString()+"|").exec("").length-1}function R(t,c){const _=t&&t.exec(c);return _&&_.index===0}const B=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function D(t,{joinWith:c}){let _=0;return t.map(A=>{_+=1;const K=_;let G=p(A),w="";for(;G.length>0;){const E=B.exec(G);if(!E){w+=G;break}w+=G.substring(0,E.index),G=G.substring(E.index+E[0].length),E[0][0]==="\\"&&E[1]?w+="\\"+String(Number(E[1])+K):(w+=E[0],E[0]==="("&&_++)}return w}).map(A=>`(${A})`).join(c)}const V=/\b\B/,H="[a-zA-Z]\\w*",J="[a-zA-Z_]\\w*",q="\\b\\d+(\\.\\d+)?",le="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",de="\\b(0b[01]+)",ce="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",Y=(t={})=>{const c=/^#![ ]*\//;return t.binary&&(t.begin=h(c,/.*\b/,t.binary,/\b.*/)),i({scope:"meta",begin:c,end:/$/,relevance:0,"on:begin":(_,A)=>{_.index!==0&&A.ignoreMatch()}},t)},j={begin:"\\\\[\\s\\S]",relevance:0},te={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[j]},ye={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[j]},L={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},Z=function(t,c,_={}){const A=i({scope:"comment",begin:t,end:c,contains:[]},_);A.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const K=S("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return A.contains.push({begin:h(/[ ]+/,"(",K,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),A},ae=Z("//","$"),ge=Z("/\\*","\\*/"),se=Z("#","$"),ie={scope:"number",begin:q,relevance:0},Xe={scope:"number",begin:le,relevance:0},Qe={scope:"number",begin:de,relevance:0},Ie={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[j,{begin:/\[/,end:/\]/,relevance:0,contains:[j]}]},Ce={scope:"title",begin:H,relevance:0},Ve={scope:"title",begin:J,relevance:0},De={begin:"\\.\\s*"+J,relevance:0};var Ne=Object.freeze({__proto__:null,APOS_STRING_MODE:te,BACKSLASH_ESCAPE:j,BINARY_NUMBER_MODE:Qe,BINARY_NUMBER_RE:de,COMMENT:Z,C_BLOCK_COMMENT_MODE:ge,C_LINE_COMMENT_MODE:ae,C_NUMBER_MODE:Xe,C_NUMBER_RE:le,END_SAME_AS_BEGIN:function(t){return Object.assign(t,{"on:begin":(c,_)=>{_.data._beginMatch=c[1]},"on:end":(c,_)=>{_.data._beginMatch!==c[1]&&_.ignoreMatch()}})},HASH_COMMENT_MODE:se,IDENT_RE:H,MATCH_NOTHING_RE:V,METHOD_GUARD:De,NUMBER_MODE:ie,NUMBER_RE:q,PHRASAL_WORDS_MODE:L,QUOTE_STRING_MODE:ye,REGEXP_MODE:Ie,RE_STARTERS_RE:ce,SHEBANG:Y,TITLE_MODE:Ce,UNDERSCORE_IDENT_RE:J,UNDERSCORE_TITLE_MODE:Ve});function Je(t,c){t.input[t.index-1]==="."&&c.ignoreMatch()}function Ye(t,c){t.className!==void 0&&(t.scope=t.className,delete t.className)}function en(t,c){c&&t.beginKeywords&&(t.begin="\\b("+t.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",t.__beforeBegin=Je,t.keywords=t.keywords||t.beginKeywords,delete t.beginKeywords,t.relevance===void 0&&(t.relevance=0))}function nn(t,c){Array.isArray(t.illegal)&&(t.illegal=S(...t.illegal))}function tn(t,c){if(t.match){if(t.begin||t.end)throw new Error("begin & end are not supported with match");t.begin=t.match,delete t.match}}function an(t,c){t.relevance===void 0&&(t.relevance=1)}const z=(t,c)=>{if(!t.beforeMatch)return;if(t.starts)throw new Error("beforeMatch cannot be used with starts");const _=Object.assign({},t);Object.keys(t).forEach(A=>{delete t[A]}),t.keywords=_.keywords,t.begin=h(_.beforeMatch,u(_.begin)),t.starts={relevance:0,contains:[Object.assign(_,{endsParent:!0})]},t.relevance=0,delete _.beforeMatch},ke=["of","and","for","in","not","or","if","then","parent","list","value"],Ee="keyword";function Le(t,c,_=Ee){const A=Object.create(null);return typeof t=="string"?K(_,t.split(" ")):Array.isArray(t)?K(_,t):Object.keys(t).forEach(function(G){Object.assign(A,Le(t[G],c,G))}),A;function K(G,w){c&&(w=w.map(E=>E.toLowerCase())),w.forEach(function(E){const M=E.split("|");A[M[0]]=[G,gt(M[0],M[1])]})}}function gt(t,c){return c?Number(c):ut(t)?0:1}function ut(t){return ke.includes(t.toLowerCase())}const hn={},we=t=>{console.error(t)},_n=(t,...c)=>{console.log(`WARN: ${t}`,...c)},xe=(t,c)=>{hn[`${t}/${c}`]||(console.log(`Deprecated as of ${t}. ${c}`),hn[`${t}/${c}`]=!0)},Be=new Error;function yn(t,c,{key:_}){let A=0;const K=t[_],G={},w={};for(let E=1;E<=c.length;E++)w[E+A]=K[E],G[E+A]=!0,A+=C(c[E-1]);t[_]=w,t[_]._emit=G,t[_]._multi=!0}function bt(t){if(Array.isArray(t.begin)){if(t.skip||t.excludeBegin||t.returnBegin)throw we("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Be;if(typeof t.beginScope!="object"||t.beginScope===null)throw we("beginScope must be object"),Be;yn(t,t.begin,{key:"beginScope"}),t.begin=D(t.begin,{joinWith:""})}}function mt(t){if(Array.isArray(t.end)){if(t.skip||t.excludeEnd||t.returnEnd)throw we("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Be;if(typeof t.endScope!="object"||t.endScope===null)throw we("endScope must be object"),Be;yn(t,t.end,{key:"endScope"}),t.end=D(t.end,{joinWith:""})}}function pt(t){t.scope&&typeof t.scope=="object"&&t.scope!==null&&(t.beginScope=t.scope,delete t.scope)}function ft(t){pt(t),typeof t.beginScope=="string"&&(t.beginScope={_wrap:t.beginScope}),typeof t.endScope=="string"&&(t.endScope={_wrap:t.endScope}),bt(t),mt(t)}function ht(t){function c(w,E){return new RegExp(p(w),"m"+(t.case_insensitive?"i":"")+(t.unicodeRegex?"u":"")+(E?"g":""))}class _{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(E,M){M.position=this.position++,this.matchIndexes[this.matchAt]=M,this.regexes.push([M,E]),this.matchAt+=C(E)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const E=this.regexes.map(M=>M[1]);this.matcherRe=c(D(E,{joinWith:"|"}),!0),this.lastIndex=0}exec(E){this.matcherRe.lastIndex=this.lastIndex;const M=this.matcherRe.exec(E);if(!M)return null;const Q=M.findIndex((Te,sn)=>sn>0&&Te!==void 0),W=this.matchIndexes[Q];return M.splice(0,Q),Object.assign(M,W)}}class A{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(E){if(this.multiRegexes[E])return this.multiRegexes[E];const M=new _;return this.rules.slice(E).forEach(([Q,W])=>M.addRule(Q,W)),M.compile(),this.multiRegexes[E]=M,M}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(E,M){this.rules.push([E,M]),M.type==="begin"&&this.count++}exec(E){const M=this.getMatcher(this.regexIndex);M.lastIndex=this.lastIndex;let Q=M.exec(E);if(this.resumingScanAtSamePosition()&&!(Q&&Q.index===this.lastIndex)){const W=this.getMatcher(0);W.lastIndex=this.lastIndex+1,Q=W.exec(E)}return Q&&(this.regexIndex+=Q.position+1,this.regexIndex===this.count&&this.considerAll()),Q}}function K(w){const E=new A;return w.contains.forEach(M=>E.addRule(M.begin,{rule:M,type:"begin"})),w.terminatorEnd&&E.addRule(w.terminatorEnd,{type:"end"}),w.illegal&&E.addRule(w.illegal,{type:"illegal"}),E}function G(w,E){const M=w;if(w.isCompiled)return M;[Ye,tn,ft,z].forEach(W=>W(w,E)),t.compilerExtensions.forEach(W=>W(w,E)),w.__beforeBegin=null,[en,nn,an].forEach(W=>W(w,E)),w.isCompiled=!0;let Q=null;return typeof w.keywords=="object"&&w.keywords.$pattern&&(w.keywords=Object.assign({},w.keywords),Q=w.keywords.$pattern,delete w.keywords.$pattern),Q=Q||/\w+/,w.keywords&&(w.keywords=Le(w.keywords,t.case_insensitive)),M.keywordPatternRe=c(Q,!0),E&&(w.begin||(w.begin=/\B|\b/),M.beginRe=c(M.begin),!w.end&&!w.endsWithParent&&(w.end=/\B|\b/),w.end&&(M.endRe=c(M.end)),M.terminatorEnd=p(M.end)||"",w.endsWithParent&&E.terminatorEnd&&(M.terminatorEnd+=(w.end?"|":"")+E.terminatorEnd)),w.illegal&&(M.illegalRe=c(w.illegal)),w.contains||(w.contains=[]),w.contains=[].concat(...w.contains.map(function(W){return _t(W==="self"?w:W)})),w.contains.forEach(function(W){G(W,M)}),w.starts&&G(w.starts,E),M.matcher=K(M),M}if(t.compilerExtensions||(t.compilerExtensions=[]),t.contains&&t.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return t.classNameAliases=i(t.classNameAliases||{}),G(t)}function En(t){return t?t.endsWithParent||En(t.starts):!1}function _t(t){return t.variants&&!t.cachedVariants&&(t.cachedVariants=t.variants.map(function(c){return i(t,{variants:null},c)})),t.cachedVariants?t.cachedVariants:En(t)?i(t,{starts:t.starts?i(t.starts):null}):Object.isFrozen(t)?i(t):t}var yt="11.11.1";class Et extends Error{constructor(c,_){super(c),this.name="HTMLInjectionError",this.html=_}}const rn=a,wn=i,vn=Symbol("nomatch"),wt=7,Nn=function(t){const c=Object.create(null),_=Object.create(null),A=[];let K=!0;const G="Could not find the language '{}', did you forget to load/include a language module?",w={disableAutodetect:!0,name:"Plain text",contains:[]};let E={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:b};function M(m){return E.noHighlightRe.test(m)}function Q(m){let x=m.className+" ";x+=m.parentNode?m.parentNode.className:"";const I=E.languageDetectRe.exec(x);if(I){const U=he(I[1]);return U||(_n(G.replace("{}",I[1])),_n("Falling back to no-highlight mode for this block.",m)),U?I[1]:"no-highlight"}return x.split(/\s+/).find(U=>M(U)||he(U))}function W(m,x,I){let U="",X="";typeof x=="object"?(U=m,I=x.ignoreIllegals,X=x.language):(xe("10.7.0","highlight(lang, code, ...args) has been deprecated."),xe("10.7.0",`Please use highlight(code, options) instead. https://github.com/highlightjs/highlight.js/issues/2277`),X=m,U=x),I===void 0&&(I=!0);const ue={code:U,language:X};Fe("before:highlight",ue);const _e=ue.result?ue.result:Te(ue.language,ue.code,I);return _e.code=ue.code,Fe("after:highlight",_e),_e}function Te(m,x,I,U){const X=Object.create(null);function ue(f,k){return f.keywords[k]}function _e(){if(!O.keywords){ee.addText(P);return}let f=0;O.keywordPatternRe.lastIndex=0;let k=O.keywordPatternRe.exec(P),T="";for(;k;){T+=P.substring(f,k.index);const F=me.case_insensitive?k[0].toLowerCase():k[0],ne=ue(O,F);if(ne){const[fe,Ft]=ne;if(ee.addText(T),T="",X[F]=(X[F]||0)+1,X[F]<=wt&&(Pe+=Ft),fe.startsWith("_"))T+=k[0];else{const $t=me.classNameAliases[fe]||fe;be(k[0],$t)}}else T+=k[0];f=O.keywordPatternRe.lastIndex,k=O.keywordPatternRe.exec(P)}T+=P.substring(f),ee.addText(T)}function $e(){if(P==="")return;let f=null;if(typeof O.subLanguage=="string"){if(!c[O.subLanguage]){ee.addText(P);return}f=Te(O.subLanguage,P,!0,Tn[O.subLanguage]),Tn[O.subLanguage]=f._top}else f=on(P,O.subLanguage.length?O.subLanguage:null);O.relevance>0&&(Pe+=f.relevance),ee.__addSublanguage(f._emitter,f.language)}function oe(){O.subLanguage!=null?$e():_e(),P=""}function be(f,k){f!==""&&(ee.startScope(k),ee.addText(f),ee.endScope())}function Mn(f,k){let T=1;const F=k.length-1;for(;T<=F;){if(!f._emit[T]){T++;continue}const ne=me.classNameAliases[f[T]]||f[T],fe=k[T];ne?be(fe,ne):(P=fe,_e(),P=""),T++}}function On(f,k){return f.scope&&typeof f.scope=="string"&&ee.openNode(me.classNameAliases[f.scope]||f.scope),f.beginScope&&(f.beginScope._wrap?(be(P,me.classNameAliases[f.beginScope._wrap]||f.beginScope._wrap),P=""):f.beginScope._multi&&(Mn(f.beginScope,k),P="")),O=Object.create(f,{parent:{value:O}}),O}function An(f,k,T){let F=R(f.endRe,T);if(F){if(f["on:end"]){const ne=new n(f);f["on:end"](k,ne),ne.isMatchIgnored&&(F=!1)}if(F){for(;f.endsParent&&f.parent;)f=f.parent;return f}}if(f.endsWithParent)return An(f.parent,k,T)}function It(f){return O.matcher.regexIndex===0?(P+=f[0],1):(gn=!0,0)}function Dt(f){const k=f[0],T=f.rule,F=new n(T),ne=[T.__beforeBegin,T["on:begin"]];for(const fe of ne)if(fe&&(fe(f,F),F.isMatchIgnored))return It(k);return T.skip?P+=k:(T.excludeBegin&&(P+=k),oe(),!T.returnBegin&&!T.excludeBegin&&(P=k)),On(T,f),T.returnBegin?0:k.length}function Lt(f){const k=f[0],T=x.substring(f.index),F=An(O,f,T);if(!F)return vn;const ne=O;O.endScope&&O.endScope._wrap?(oe(),be(k,O.endScope._wrap)):O.endScope&&O.endScope._multi?(oe(),Mn(O.endScope,f)):ne.skip?P+=k:(ne.returnEnd||ne.excludeEnd||(P+=k),oe(),ne.excludeEnd&&(P=k));do O.scope&&ee.closeNode(),!O.skip&&!O.subLanguage&&(Pe+=O.relevance),O=O.parent;while(O!==F.parent);return F.starts&&On(F.starts,f),ne.returnEnd?0:k.length}function Bt(){const f=[];for(let k=O;k!==me;k=k.parent)k.scope&&f.unshift(k.scope);f.forEach(k=>ee.openNode(k))}let Ue={};function Cn(f,k){const T=k&&k[0];if(P+=f,T==null)return oe(),0;if(Ue.type==="begin"&&k.type==="end"&&Ue.index===k.index&&T===""){if(P+=x.slice(k.index,k.index+1),!K){const F=new Error(`0 width match regex (${m})`);throw F.languageName=m,F.badRule=Ue.rule,F}return 1}if(Ue=k,k.type==="begin")return Dt(k);if(k.type==="illegal"&&!I){const F=new Error('Illegal lexeme "'+T+'" for mode "'+(O.scope||"")+'"');throw F.mode=O,F}else if(k.type==="end"){const F=Lt(k);if(F!==vn)return F}if(k.type==="illegal"&&T==="")return P+=` `,1;if(dn>1e5&&dn>k.index*3)throw new Error("potential infinite loop, way more iterations than matches");return P+=T,T.length}const me=he(m);if(!me)throw we(G.replace("{}",m)),new Error('Unknown language: "'+m+'"');const zt=ht(me);let cn="",O=U||zt;const Tn={},ee=new E.__emitter(E);Bt();let P="",Pe=0,ve=0,dn=0,gn=!1;try{if(me.__emitTokens)me.__emitTokens(x,ee);else{for(O.matcher.considerAll();;){dn++,gn?gn=!1:O.matcher.considerAll(),O.matcher.lastIndex=ve;const f=O.matcher.exec(x);if(!f)break;const k=x.substring(ve,f.index),T=Cn(k,f);ve=f.index+T}Cn(x.substring(ve))}return ee.finalize(),cn=ee.toHTML(),{language:m,value:cn,relevance:Pe,illegal:!1,_emitter:ee,_top:O}}catch(f){if(f.message&&f.message.includes("Illegal"))return{language:m,value:rn(x),illegal:!0,relevance:0,_illegalBy:{message:f.message,index:ve,context:x.slice(ve-100,ve+100),mode:f.mode,resultSoFar:cn},_emitter:ee};if(K)return{language:m,value:rn(x),illegal:!1,relevance:0,errorRaised:f,_emitter:ee,_top:O};throw f}}function sn(m){const x={value:rn(m),illegal:!1,relevance:0,_top:w,_emitter:new E.__emitter(E)};return x._emitter.addText(m),x}function on(m,x){x=x||E.languages||Object.keys(c);const I=sn(m),U=x.filter(he).filter(Sn).map(oe=>Te(oe,m,!1));U.unshift(I);const X=U.sort((oe,be)=>{if(oe.relevance!==be.relevance)return be.relevance-oe.relevance;if(oe.language&&be.language){if(he(oe.language).supersetOf===be.language)return 1;if(he(be.language).supersetOf===oe.language)return-1}return 0}),[ue,_e]=X,$e=ue;return $e.secondBest=_e,$e}function vt(m,x,I){const U=x&&_[x]||I;m.classList.add("hljs"),m.classList.add(`language-${U}`)}function ln(m){let x=null;const I=Q(m);if(M(I))return;if(Fe("before:highlightElement",{el:m,language:I}),m.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",m);return}if(m.children.length>0&&(E.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(m)),E.throwUnescapedHTML))throw new Et("One of your code blocks includes unescaped HTML.",m.innerHTML);x=m;const U=x.textContent,X=I?W(U,{language:I,ignoreIllegals:!0}):on(U);m.innerHTML=X.value,m.dataset.highlighted="yes",vt(m,I,X.language),m.result={language:X.language,re:X.relevance,relevance:X.relevance},X.secondBest&&(m.secondBest={language:X.secondBest.language,relevance:X.secondBest.relevance}),Fe("after:highlightElement",{el:m,result:X,text:U})}function Nt(m){E=wn(E,m)}const kt=()=>{ze(),xe("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function xt(){ze(),xe("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let kn=!1;function ze(){function m(){ze()}if(document.readyState==="loading"){kn||window.addEventListener("DOMContentLoaded",m,!1),kn=!0;return}document.querySelectorAll(E.cssSelector).forEach(ln)}function St(m,x){let I=null;try{I=x(t)}catch(U){if(we("Language definition for '{}' could not be registered.".replace("{}",m)),K)we(U);else throw U;I=w}I.name||(I.name=m),c[m]=I,I.rawDefinition=x.bind(null,t),I.aliases&&xn(I.aliases,{languageName:m})}function Mt(m){delete c[m];for(const x of Object.keys(_))_[x]===m&&delete _[x]}function Ot(){return Object.keys(c)}function he(m){return m=(m||"").toLowerCase(),c[m]||c[_[m]]}function xn(m,{languageName:x}){typeof m=="string"&&(m=[m]),m.forEach(I=>{_[I.toLowerCase()]=x})}function Sn(m){const x=he(m);return x&&!x.disableAutodetect}function At(m){m["before:highlightBlock"]&&!m["before:highlightElement"]&&(m["before:highlightElement"]=x=>{m["before:highlightBlock"](Object.assign({block:x.el},x))}),m["after:highlightBlock"]&&!m["after:highlightElement"]&&(m["after:highlightElement"]=x=>{m["after:highlightBlock"](Object.assign({block:x.el},x))})}function Ct(m){At(m),A.push(m)}function Tt(m){const x=A.indexOf(m);x!==-1&&A.splice(x,1)}function Fe(m,x){const I=m;A.forEach(function(U){U[I]&&U[I](x)})}function Rt(m){return xe("10.7.0","highlightBlock will be removed entirely in v12.0"),xe("10.7.0","Please use highlightElement now."),ln(m)}Object.assign(t,{highlight:W,highlightAuto:on,highlightAll:ze,highlightElement:ln,highlightBlock:Rt,configure:Nt,initHighlighting:kt,initHighlightingOnLoad:xt,registerLanguage:St,unregisterLanguage:Mt,listLanguages:Ot,getLanguage:he,registerAliases:xn,autoDetection:Sn,inherit:wn,addPlugin:Ct,removePlugin:Tt}),t.debugMode=function(){K=!1},t.safeMode=function(){K=!0},t.versionString=yt,t.regex={concat:h,lookahead:u,either:S,optional:v,anyNumberOfTimes:y};for(const m in Ne)typeof Ne[m]=="object"&&e(Ne[m]);return Object.assign(t,Ne),t},Se=Nn({});return Se.newInstance=()=>Nn({}),mn=Se,Se.HighlightJS=Se,Se.default=Se,mn}var Ei=yi();const wi=Ut(Ei),qn={},vi="hljs-";function Ni(e){const n=wi.newInstance();return e&&d(e),{highlight:a,highlightAuto:i,listLanguages:r,register:d,registerAlias:s,registered:l};function a(g,o,b){const p=b||qn,u=typeof p.prefix=="string"?p.prefix:vi;if(!n.getLanguage(g))throw new Error("Unknown language: `"+g+"` is not registered");n.configure({__emitter:ki,classPrefix:u});const y=n.highlight(o,{ignoreIllegals:!0,language:g});if(y.errorRaised)throw new Error("Could not highlight with `Highlight.js`",{cause:y.errorRaised});const v=y._emitter.root,h=v.data;return h.language=y.language,h.relevance=y.relevance,v}function i(g,o){const b=(o||qn).subset||r();let p=-1,u=0,y;for(;++pu&&(u=h.data.relevance,y=h)}return y||{type:"root",children:[],data:{language:void 0,relevance:u}}}function r(){return n.listLanguages()}function d(g,o){if(typeof g=="string")n.registerLanguage(g,o);else{let b;for(b in g)Object.hasOwn(g,b)&&n.registerLanguage(b,g[b])}}function s(g,o){if(typeof g=="string")n.registerAliases(typeof o=="string"?o:[...o],{languageName:g});else{let b;for(b in g)if(Object.hasOwn(g,b)){const p=g[b];n.registerAliases(typeof p=="string"?p:[...p],{languageName:b})}}}function l(g){return!!n.getLanguage(g)}}class ki{constructor(n){this.options=n,this.root={type:"root",children:[],data:{language:void 0,relevance:0}},this.stack=[this.root]}addText(n){if(n==="")return;const a=this.stack[this.stack.length-1],i=a.children[a.children.length-1];i&&i.type==="text"?i.value+=n:a.children.push({type:"text",value:n})}startScope(n){this.openNode(String(n))}endScope(){this.closeNode()}__addSublanguage(n,a){const i=this.stack[this.stack.length-1],r=n.root.children;a?i.children.push({type:"element",tagName:"span",properties:{className:[a]},children:r}):i.children.push(...r)}openNode(n){const a=this,i=n.split(".").map(function(s,l){return l?s+"_".repeat(l):a.options.classPrefix+s}),r=this.stack[this.stack.length-1],d={type:"element",tagName:"span",properties:{className:i},children:[]};r.children.push(d),this.stack.push(d)}closeNode(){this.stack.pop()}finalize(){}toHTML(){return""}}const xi={};function Ki(e){const n=e||xi,a=n.aliases,i=n.detect||!1,r=n.languages||_i,d=n.plainText,s=n.prefix,l=n.subset;let g="hljs";const o=Ni(r);if(a&&o.registerAlias(a),s){const b=s.indexOf("-");g=b===-1?s:s.slice(0,b)}return function(b,p){Pt(b,"element",function(u,y,v){if(u.tagName!=="code"||!v||v.type!=="element"||v.tagName!=="pre")return;const h=Si(u);if(h===!1||!h&&!i||h&&d&&d.includes(h))return;Array.isArray(u.properties.className)||(u.properties.className=[]),u.properties.className.includes(g)||u.properties.className.unshift(g);const N=Gt(u,{whitespace:"pre"});let S;try{S=h?o.highlight(h,N,{prefix:s}):o.highlightAuto(N,{prefix:s,subset:l})}catch(C){const R=C;if(h&&/Unknown language/.test(R.message)){p.message("Cannot highlight as `"+h+"`, it’s not registered",{ancestors:[v,u],cause:R,place:u.position,ruleId:"missing-language",source:"rehype-highlight"});return}throw R}!h&&S.data&&S.data.language&&u.properties.className.push("language-"+S.data.language),S.children.length>0&&(u.children=S.children)})}}function Si(e){const n=e.properties.className;let a=-1;if(!Array.isArray(n))return;let i;for(;++a | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate extends Value\n * ? Predicate\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array\n * ? MatchesOne\n * : MatchesOne\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {(\n * Kind extends {children: Array}\n * ? Child\n * : never\n * )} Child\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Kind\n * All node types.\n */\n\nimport {convert} from 'unist-util-is'\n\n/**\n * Find the first node in `parent` after another `node` or after an index,\n * that passes `test`.\n *\n * @param parent\n * Parent node.\n * @param index\n * Child node or index.\n * @param [test=undefined]\n * Test for child to look for (optional).\n * @returns\n * A child (matching `test`, if given) or `undefined`.\n */\nexport const findAfter =\n // Note: overloads like this are needed to support optional generics.\n /**\n * @type {(\n * ((parent: Kind, index: Child | number, test: Check) => Matches, Check> | undefined) &\n * ((parent: Kind, index: Child | number, test?: null | undefined) => Child | undefined)\n * )}\n */\n (\n /**\n * @param {UnistParent} parent\n * @param {UnistNode | number} index\n * @param {Test} [test]\n * @returns {UnistNode | undefined}\n */\n function (parent, index, test) {\n const is = convert(test)\n\n if (!parent || !parent.type || !parent.children) {\n throw new Error('Expected parent node')\n }\n\n if (typeof index === 'number') {\n if (index < 0 || index === Number.POSITIVE_INFINITY) {\n throw new Error('Expected positive finite number as index')\n }\n } else {\n index = parent.children.indexOf(index)\n\n if (index < 0) {\n throw new Error('Expected child node or index')\n }\n }\n\n while (++index < parent.children.length) {\n if (is(parent.children[index], index, parent)) {\n return parent.children[index]\n }\n }\n\n return undefined\n }\n )\n","/**\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast-util-is-element').TestFunction} TestFunction\n */\n\n/**\n * @typedef {'normal' | 'nowrap' | 'pre' | 'pre-wrap'} Whitespace\n * Valid and useful whitespace values (from CSS).\n *\n * @typedef {0 | 1 | 2} BreakNumber\n * Specific break:\n *\n * * `0` — space\n * * `1` — line ending\n * * `2` — blank line\n *\n * @typedef {'\\n'} BreakForce\n * Forced break.\n *\n * @typedef {boolean} BreakValue\n * Whether there was a break.\n *\n * @typedef {BreakNumber | BreakValue | undefined} BreakBefore\n * Any value for a break before.\n *\n * @typedef {BreakForce | BreakNumber | BreakValue | undefined} BreakAfter\n * Any value for a break after.\n *\n * @typedef CollectionInfo\n * Info on current collection.\n * @property {BreakAfter} breakAfter\n * Whether there was a break after.\n * @property {BreakBefore} breakBefore\n * Whether there was a break before.\n * @property {Whitespace} whitespace\n * Current whitespace setting.\n *\n * @typedef Options\n * Configuration.\n * @property {Whitespace | null | undefined} [whitespace='normal']\n * Initial CSS whitespace setting to use (default: `'normal'`).\n */\n\nimport {findAfter} from 'unist-util-find-after'\nimport {convertElement} from 'hast-util-is-element'\n\nconst searchLineFeeds = /\\n/g\nconst searchTabOrSpaces = /[\\t ]+/g\n\nconst br = convertElement('br')\nconst cell = convertElement(isCell)\nconst p = convertElement('p')\nconst row = convertElement('tr')\n\n// Note that we don’t need to include void elements here as they don’t have text.\n// See: \nconst notRendered = convertElement([\n // List from: \n 'datalist',\n 'head',\n 'noembed',\n 'noframes',\n 'noscript', // Act as if we support scripting.\n 'rp',\n 'script',\n 'style',\n 'template',\n 'title',\n // Hidden attribute.\n hidden,\n // From: \n closedDialog\n])\n\n// See: \nconst blockOrCaption = convertElement([\n 'address', // Flow content\n 'article', // Sections and headings\n 'aside', // Sections and headings\n 'blockquote', // Flow content\n 'body', // Page\n 'caption', // `table-caption`\n 'center', // Flow content (legacy)\n 'dd', // Lists\n 'dialog', // Flow content\n 'dir', // Lists (legacy)\n 'dl', // Lists\n 'dt', // Lists\n 'div', // Flow content\n 'figure', // Flow content\n 'figcaption', // Flow content\n 'footer', // Flow content\n 'form,', // Flow content\n 'h1', // Sections and headings\n 'h2', // Sections and headings\n 'h3', // Sections and headings\n 'h4', // Sections and headings\n 'h5', // Sections and headings\n 'h6', // Sections and headings\n 'header', // Flow content\n 'hgroup', // Sections and headings\n 'hr', // Flow content\n 'html', // Page\n 'legend', // Flow content\n 'li', // Lists (as `display: list-item`)\n 'listing', // Flow content (legacy)\n 'main', // Flow content\n 'menu', // Lists\n 'nav', // Sections and headings\n 'ol', // Lists\n 'p', // Flow content\n 'plaintext', // Flow content (legacy)\n 'pre', // Flow content\n 'section', // Sections and headings\n 'ul', // Lists\n 'xmp' // Flow content (legacy)\n])\n\n/**\n * Get the plain-text value of a node.\n *\n * ###### Algorithm\n *\n * * if `tree` is a comment, returns its `value`\n * * if `tree` is a text, applies normal whitespace collapsing to its\n * `value`, as defined by the CSS Text spec\n * * if `tree` is a root or element, applies an algorithm similar to the\n * `innerText` getter as defined by HTML\n *\n * ###### Notes\n *\n * > 👉 **Note**: the algorithm acts as if `tree` is being rendered, and as if\n * > we’re a CSS-supporting user agent, with scripting enabled.\n *\n * * if `tree` is an element that is not displayed (such as a `head`), we’ll\n * still use the `innerText` algorithm instead of switching to `textContent`\n * * if descendants of `tree` are elements that are not displayed, they are\n * ignored\n * * CSS is not considered, except for the default user agent style sheet\n * * a line feed is collapsed instead of ignored in cases where Fullwidth, Wide,\n * or Halfwidth East Asian Width characters are used, the same goes for a case\n * with Chinese, Japanese, or Yi writing systems\n * * replaced elements (such as `audio`) are treated like non-replaced elements\n *\n * @param {Nodes} tree\n * Tree to turn into text.\n * @param {Readonly | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized `tree`.\n */\nexport function toText(tree, options) {\n const options_ = options || {}\n const children = 'children' in tree ? tree.children : []\n const block = blockOrCaption(tree)\n const whitespace = inferWhitespace(tree, {\n whitespace: options_.whitespace || 'normal',\n breakBefore: false,\n breakAfter: false\n })\n\n /** @type {Array} */\n const results = []\n\n // Treat `text` and `comment` as having normal white-space.\n // This deviates from the spec as in the DOM the node’s `.data` has to be\n // returned.\n // If you want that behavior use `hast-util-to-string`.\n // All other nodes are later handled as if they are `element`s (so the\n // algorithm also works on a `root`).\n // Nodes without children are treated as a void element, so `doctype` is thus\n // ignored.\n if (tree.type === 'text' || tree.type === 'comment') {\n results.push(\n ...collectText(tree, {\n whitespace,\n breakBefore: true,\n breakAfter: true\n })\n )\n }\n\n // 1. If this element is not being rendered, or if the user agent is a\n // non-CSS user agent, then return the same value as the textContent IDL\n // attribute on this element.\n //\n // Note: we’re not supporting stylesheets so we’re acting as if the node\n // is rendered.\n //\n // If you want that behavior use `hast-util-to-string`.\n // Important: we’ll have to account for this later though.\n\n // 2. Let results be a new empty list.\n let index = -1\n\n // 3. For each child node node of this element:\n while (++index < children.length) {\n // 3.1. Let current be the list resulting in running the inner text\n // collection steps with node.\n // Each item in results will either be a JavaScript string or a\n // positive integer (a required line break count).\n // 3.2. For each item item in current, append item to results.\n results.push(\n ...renderedTextCollection(\n children[index],\n // @ts-expect-error: `tree` is a parent if we’re here.\n tree,\n {\n whitespace,\n breakBefore: index ? undefined : block,\n breakAfter:\n index < children.length - 1 ? br(children[index + 1]) : block\n }\n )\n )\n }\n\n // 4. Remove any items from results that are the empty string.\n // 5. Remove any runs of consecutive required line break count items at the\n // start or end of results.\n // 6. Replace each remaining run of consecutive required line break count\n // items with a string consisting of as many U+000A LINE FEED (LF)\n // characters as the maximum of the values in the required line break\n // count items.\n /** @type {Array} */\n const result = []\n /** @type {number | undefined} */\n let count\n\n index = -1\n\n while (++index < results.length) {\n const value = results[index]\n\n if (typeof value === 'number') {\n if (count !== undefined && value > count) count = value\n } else if (value) {\n if (count !== undefined && count > -1) {\n result.push('\\n'.repeat(count) || ' ')\n }\n\n count = -1\n result.push(value)\n }\n }\n\n // 7. Return the concatenation of the string items in results.\n return result.join('')\n}\n\n/**\n * \n *\n * @param {Nodes} node\n * @param {Parents} parent\n * @param {CollectionInfo} info\n * @returns {Array}\n */\nfunction renderedTextCollection(node, parent, info) {\n if (node.type === 'element') {\n return collectElement(node, parent, info)\n }\n\n if (node.type === 'text') {\n return info.whitespace === 'normal'\n ? collectText(node, info)\n : collectPreText(node)\n }\n\n return []\n}\n\n/**\n * Collect an element.\n *\n * @param {Element} node\n * Element node.\n * @param {Parents} parent\n * @param {CollectionInfo} info\n * Info on current collection.\n * @returns {Array}\n */\nfunction collectElement(node, parent, info) {\n // First we infer the `white-space` property.\n const whitespace = inferWhitespace(node, info)\n const children = node.children || []\n let index = -1\n /** @type {Array} */\n let items = []\n\n // We’re ignoring point 3, and exiting without any content here, because we\n // deviated from the spec in `toText` at step 3.\n if (notRendered(node)) {\n return items\n }\n\n /** @type {BreakNumber | undefined} */\n let prefix\n /** @type {BreakForce | BreakNumber | undefined} */\n let suffix\n // Note: we first detect if there is going to be a break before or after the\n // contents, as that changes the white-space handling.\n\n // 2. If node’s computed value of `visibility` is not `visible`, then return\n // items.\n //\n // Note: Ignored, as everything is visible by default user agent styles.\n\n // 3. If node is not being rendered, then return items. [...]\n //\n // Note: We already did this above.\n\n // See `collectText` for step 4.\n\n // 5. If node is a `
    ` element, then append a string containing a single\n // U+000A LINE FEED (LF) character to items.\n if (br(node)) {\n suffix = '\\n'\n }\n\n // 7. If node’s computed value of `display` is `table-row`, and node’s CSS\n // box is not the last `table-row` box of the nearest ancestor `table`\n // box, then append a string containing a single U+000A LINE FEED (LF)\n // character to items.\n //\n // See: \n // Note: needs further investigation as this does not account for implicit\n // rows.\n else if (\n row(node) &&\n // @ts-expect-error: something up with types of parents.\n findAfter(parent, node, row)\n ) {\n suffix = '\\n'\n }\n\n // 8. If node is a `

    ` element, then append 2 (a required line break count)\n // at the beginning and end of items.\n else if (p(node)) {\n prefix = 2\n suffix = 2\n }\n\n // 9. If node’s used value of `display` is block-level or `table-caption`,\n // then append 1 (a required line break count) at the beginning and end of\n // items.\n else if (blockOrCaption(node)) {\n prefix = 1\n suffix = 1\n }\n\n // 1. Let items be the result of running the inner text collection steps with\n // each child node of node in tree order, and then concatenating the\n // results to a single list.\n while (++index < children.length) {\n items = items.concat(\n renderedTextCollection(children[index], node, {\n whitespace,\n breakBefore: index ? undefined : prefix,\n breakAfter:\n index < children.length - 1 ? br(children[index + 1]) : suffix\n })\n )\n }\n\n // 6. If node’s computed value of `display` is `table-cell`, and node’s CSS\n // box is not the last `table-cell` box of its enclosing `table-row` box,\n // then append a string containing a single U+0009 CHARACTER TABULATION\n // (tab) character to items.\n //\n // See: \n if (\n cell(node) &&\n // @ts-expect-error: something up with types of parents.\n findAfter(parent, node, cell)\n ) {\n items.push('\\t')\n }\n\n // Add the pre- and suffix.\n if (prefix) items.unshift(prefix)\n if (suffix) items.push(suffix)\n\n return items\n}\n\n/**\n * 4. If node is a Text node, then for each CSS text box produced by node,\n * in content order, compute the text of the box after application of the\n * CSS `white-space` processing rules and `text-transform` rules, set\n * items to the list of the resulting strings, and return items.\n * The CSS `white-space` processing rules are slightly modified:\n * collapsible spaces at the end of lines are always collapsed, but they\n * are only removed if the line is the last line of the block, or it ends\n * with a br element.\n * Soft hyphens should be preserved.\n *\n * Note: See `collectText` and `collectPreText`.\n * Note: we don’t deal with `text-transform`, no element has that by\n * default.\n *\n * See: \n *\n * @param {Comment | Text} node\n * Text node.\n * @param {CollectionInfo} info\n * Info on current collection.\n * @returns {Array}\n * Result.\n */\nfunction collectText(node, info) {\n const value = String(node.value)\n /** @type {Array} */\n const lines = []\n /** @type {Array} */\n const result = []\n let start = 0\n\n while (start <= value.length) {\n searchLineFeeds.lastIndex = start\n\n const match = searchLineFeeds.exec(value)\n const end = match && 'index' in match ? match.index : value.length\n\n lines.push(\n // Any sequence of collapsible spaces and tabs immediately preceding or\n // following a segment break is removed.\n trimAndCollapseSpacesAndTabs(\n // […] ignoring bidi formatting characters (characters with the\n // Bidi_Control property [UAX9]: ALM, LTR, RTL, LRE-RLO, LRI-PDI) as if\n // they were not there.\n value\n .slice(start, end)\n .replace(/[\\u061C\\u200E\\u200F\\u202A-\\u202E\\u2066-\\u2069]/g, ''),\n start === 0 ? info.breakBefore : true,\n end === value.length ? info.breakAfter : true\n )\n )\n\n start = end + 1\n }\n\n // Collapsible segment breaks are transformed for rendering according to the\n // segment break transformation rules.\n // So here we jump to 4.1.2 of [CSSTEXT]:\n // Any collapsible segment break immediately following another collapsible\n // segment break is removed\n let index = -1\n /** @type {BreakNumber | undefined} */\n let join\n\n while (++index < lines.length) {\n // * If the character immediately before or immediately after the segment\n // break is the zero-width space character (U+200B), then the break is\n // removed, leaving behind the zero-width space.\n if (\n lines[index].charCodeAt(lines[index].length - 1) === 0x20_0b /* ZWSP */ ||\n (index < lines.length - 1 &&\n lines[index + 1].charCodeAt(0) === 0x20_0b) /* ZWSP */\n ) {\n result.push(lines[index])\n join = undefined\n }\n\n // * Otherwise, if the East Asian Width property [UAX11] of both the\n // character before and after the segment break is Fullwidth, Wide, or\n // Halfwidth (not Ambiguous), and neither side is Hangul, then the\n // segment break is removed.\n //\n // Note: ignored.\n // * Otherwise, if the writing system of the segment break is Chinese,\n // Japanese, or Yi, and the character before or after the segment break\n // is punctuation or a symbol (Unicode general category P* or S*) and\n // has an East Asian Width property of Ambiguous, and the character on\n // the other side of the segment break is Fullwidth, Wide, or Halfwidth,\n // and not Hangul, then the segment break is removed.\n //\n // Note: ignored.\n\n // * Otherwise, the segment break is converted to a space (U+0020).\n else if (lines[index]) {\n if (typeof join === 'number') result.push(join)\n result.push(lines[index])\n join = 0\n } else if (index === 0 || index === lines.length - 1) {\n // If this line is empty, and it’s the first or last, add a space.\n // Note that this function is only called in normal whitespace, so we\n // don’t worry about `pre`.\n result.push(0)\n }\n }\n\n return result\n}\n\n/**\n * Collect a text node as “pre” whitespace.\n *\n * @param {Text} node\n * Text node.\n * @returns {Array}\n * Result.\n */\nfunction collectPreText(node) {\n return [String(node.value)]\n}\n\n/**\n * 3. Every collapsible tab is converted to a collapsible space (U+0020).\n * 4. Any collapsible space immediately following another collapsible\n * space—even one outside the boundary of the inline containing that\n * space, provided both spaces are within the same inline formatting\n * context—is collapsed to have zero advance width. (It is invisible,\n * but retains its soft wrap opportunity, if any.)\n *\n * @param {string} value\n * Value to collapse.\n * @param {BreakBefore} breakBefore\n * Whether there was a break before.\n * @param {BreakAfter} breakAfter\n * Whether there was a break after.\n * @returns {string}\n * Result.\n */\nfunction trimAndCollapseSpacesAndTabs(value, breakBefore, breakAfter) {\n /** @type {Array} */\n const result = []\n let start = 0\n /** @type {number | undefined} */\n let end\n\n while (start < value.length) {\n searchTabOrSpaces.lastIndex = start\n const match = searchTabOrSpaces.exec(value)\n end = match ? match.index : value.length\n\n // If we’re not directly after a segment break, but there was white space,\n // add an empty value that will be turned into a space.\n if (!start && !end && match && !breakBefore) {\n result.push('')\n }\n\n if (start !== end) {\n result.push(value.slice(start, end))\n }\n\n start = match ? end + match[0].length : end\n }\n\n // If we reached the end, there was trailing white space, and there’s no\n // segment break after this node, add an empty value that will be turned\n // into a space.\n if (start !== end && !breakAfter) {\n result.push('')\n }\n\n return result.join(' ')\n}\n\n/**\n * Figure out the whitespace of a node.\n *\n * We don’t support void elements here (so `nobr wbr` -> `normal` is ignored).\n *\n * @param {Nodes} node\n * Node (typically `Element`).\n * @param {CollectionInfo} info\n * Info on current collection.\n * @returns {Whitespace}\n * Applied whitespace.\n */\nfunction inferWhitespace(node, info) {\n if (node.type === 'element') {\n const properties = node.properties || {}\n switch (node.tagName) {\n case 'listing':\n case 'plaintext':\n case 'xmp': {\n return 'pre'\n }\n\n case 'nobr': {\n return 'nowrap'\n }\n\n case 'pre': {\n return properties.wrap ? 'pre-wrap' : 'pre'\n }\n\n case 'td':\n case 'th': {\n return properties.noWrap ? 'nowrap' : info.whitespace\n }\n\n case 'textarea': {\n return 'pre-wrap'\n }\n\n default:\n }\n }\n\n return info.whitespace\n}\n\n/**\n * @type {TestFunction}\n * @param {Element} node\n * @returns {node is {properties: {hidden: true}}}\n */\nfunction hidden(node) {\n return Boolean((node.properties || {}).hidden)\n}\n\n/**\n * @type {TestFunction}\n * @param {Element} node\n * @returns {node is {tagName: 'td' | 'th'}}\n */\nfunction isCell(node) {\n return node.tagName === 'td' || node.tagName === 'th'\n}\n\n/**\n * @type {TestFunction}\n */\nfunction closedDialog(node) {\n return node.tagName === 'dialog' && !(node.properties || {}).open\n}\n","/*\nLanguage: C++\nCategory: common, system\nWebsite: https://isocpp.org\n*/\n\n/** @type LanguageFn */\nfunction cPlusPlus(hljs) {\n const regex = hljs.regex;\n // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does\n // not include such support nor can we be sure all the grammars depending\n // on it would desire this behavior\n const C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$', { contains: [ { begin: /\\\\\\n/ } ] });\n const DECLTYPE_AUTO_RE = 'decltype\\\\(auto\\\\)';\n const NAMESPACE_RE = '[a-zA-Z_]\\\\w*::';\n const TEMPLATE_ARGUMENT_RE = '<[^<>]+>';\n const FUNCTION_TYPE_RE = '(?!struct)('\n + DECLTYPE_AUTO_RE + '|'\n + regex.optional(NAMESPACE_RE)\n + '[a-zA-Z_]\\\\w*' + regex.optional(TEMPLATE_ARGUMENT_RE)\n + ')';\n\n const CPP_PRIMITIVE_TYPES = {\n className: 'type',\n begin: '\\\\b[a-z\\\\d_]*_t\\\\b'\n };\n\n // https://en.cppreference.com/w/cpp/language/escape\n // \\\\ \\x \\xFF \\u2837 \\u00323747 \\374\n const CHARACTER_ESCAPES = '\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)';\n const STRINGS = {\n className: 'string',\n variants: [\n {\n begin: '(u8?|U|L)?\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '(u8?|U|L)?\\'(' + CHARACTER_ESCAPES + '|.)',\n end: '\\'',\n illegal: '.'\n },\n hljs.END_SAME_AS_BEGIN({\n begin: /(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,\n end: /\\)([^()\\\\ ]{0,16})\"/\n })\n ]\n };\n\n const NUMBERS = {\n className: 'number',\n variants: [\n // Floating-point literal.\n { begin:\n \"[+-]?(?:\" // Leading sign.\n // Decimal.\n + \"(?:\"\n +\"[0-9](?:'?[0-9])*\\\\.(?:[0-9](?:'?[0-9])*)?\"\n + \"|\\\\.[0-9](?:'?[0-9])*\"\n + \")(?:[Ee][+-]?[0-9](?:'?[0-9])*)?\"\n + \"|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*\"\n // Hexadecimal.\n + \"|0[Xx](?:\"\n +\"[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?\"\n + \"|\\\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*\"\n + \")[Pp][+-]?[0-9](?:'?[0-9])*\"\n + \")(?:\" // Literal suffixes.\n + \"[Ff](?:16|32|64|128)?\"\n + \"|(BF|bf)16\"\n + \"|[Ll]\"\n + \"|\" // Literal suffix is optional.\n + \")\"\n },\n // Integer literal.\n { begin:\n \"[+-]?\\\\b(?:\" // Leading sign.\n + \"0[Bb][01](?:'?[01])*\" // Binary.\n + \"|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*\" // Hexadecimal.\n + \"|0(?:'?[0-7])*\" // Octal or just a lone zero.\n + \"|[1-9](?:'?[0-9])*\" // Decimal.\n + \")(?:\" // Literal suffixes.\n + \"[Uu](?:LL?|ll?)\"\n + \"|[Uu][Zz]?\"\n + \"|(?:LL?|ll?)[Uu]?\"\n + \"|[Zz][Uu]\"\n + \"|\" // Literal suffix is optional.\n + \")\"\n // Note: there are user-defined literal suffixes too, but perhaps having the custom suffix not part of the\n // literal highlight actually makes it stand out more.\n }\n ],\n relevance: 0\n };\n\n const PREPROCESSOR = {\n className: 'meta',\n begin: /#\\s*[a-z]+\\b/,\n end: /$/,\n keywords: { keyword:\n 'if else elif endif define undef warning error line '\n + 'pragma _Pragma ifdef ifndef include' },\n contains: [\n {\n begin: /\\\\\\n/,\n relevance: 0\n },\n hljs.inherit(STRINGS, { className: 'string' }),\n {\n className: 'string',\n begin: /<.*?>/\n },\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n\n const TITLE_MODE = {\n className: 'title',\n begin: regex.optional(NAMESPACE_RE) + hljs.IDENT_RE,\n relevance: 0\n };\n\n const FUNCTION_TITLE = regex.optional(NAMESPACE_RE) + hljs.IDENT_RE + '\\\\s*\\\\(';\n\n // https://en.cppreference.com/w/cpp/keyword\n const RESERVED_KEYWORDS = [\n 'alignas',\n 'alignof',\n 'and',\n 'and_eq',\n 'asm',\n 'atomic_cancel',\n 'atomic_commit',\n 'atomic_noexcept',\n 'auto',\n 'bitand',\n 'bitor',\n 'break',\n 'case',\n 'catch',\n 'class',\n 'co_await',\n 'co_return',\n 'co_yield',\n 'compl',\n 'concept',\n 'const_cast|10',\n 'consteval',\n 'constexpr',\n 'constinit',\n 'continue',\n 'decltype',\n 'default',\n 'delete',\n 'do',\n 'dynamic_cast|10',\n 'else',\n 'enum',\n 'explicit',\n 'export',\n 'extern',\n 'false',\n 'final',\n 'for',\n 'friend',\n 'goto',\n 'if',\n 'import',\n 'inline',\n 'module',\n 'mutable',\n 'namespace',\n 'new',\n 'noexcept',\n 'not',\n 'not_eq',\n 'nullptr',\n 'operator',\n 'or',\n 'or_eq',\n 'override',\n 'private',\n 'protected',\n 'public',\n 'reflexpr',\n 'register',\n 'reinterpret_cast|10',\n 'requires',\n 'return',\n 'sizeof',\n 'static_assert',\n 'static_cast|10',\n 'struct',\n 'switch',\n 'synchronized',\n 'template',\n 'this',\n 'thread_local',\n 'throw',\n 'transaction_safe',\n 'transaction_safe_dynamic',\n 'true',\n 'try',\n 'typedef',\n 'typeid',\n 'typename',\n 'union',\n 'using',\n 'virtual',\n 'volatile',\n 'while',\n 'xor',\n 'xor_eq'\n ];\n\n // https://en.cppreference.com/w/cpp/keyword\n const RESERVED_TYPES = [\n 'bool',\n 'char',\n 'char16_t',\n 'char32_t',\n 'char8_t',\n 'double',\n 'float',\n 'int',\n 'long',\n 'short',\n 'void',\n 'wchar_t',\n 'unsigned',\n 'signed',\n 'const',\n 'static'\n ];\n\n const TYPE_HINTS = [\n 'any',\n 'auto_ptr',\n 'barrier',\n 'binary_semaphore',\n 'bitset',\n 'complex',\n 'condition_variable',\n 'condition_variable_any',\n 'counting_semaphore',\n 'deque',\n 'false_type',\n 'flat_map',\n 'flat_set',\n 'future',\n 'imaginary',\n 'initializer_list',\n 'istringstream',\n 'jthread',\n 'latch',\n 'lock_guard',\n 'multimap',\n 'multiset',\n 'mutex',\n 'optional',\n 'ostringstream',\n 'packaged_task',\n 'pair',\n 'promise',\n 'priority_queue',\n 'queue',\n 'recursive_mutex',\n 'recursive_timed_mutex',\n 'scoped_lock',\n 'set',\n 'shared_future',\n 'shared_lock',\n 'shared_mutex',\n 'shared_timed_mutex',\n 'shared_ptr',\n 'stack',\n 'string_view',\n 'stringstream',\n 'timed_mutex',\n 'thread',\n 'true_type',\n 'tuple',\n 'unique_lock',\n 'unique_ptr',\n 'unordered_map',\n 'unordered_multimap',\n 'unordered_multiset',\n 'unordered_set',\n 'variant',\n 'vector',\n 'weak_ptr',\n 'wstring',\n 'wstring_view'\n ];\n\n const FUNCTION_HINTS = [\n 'abort',\n 'abs',\n 'acos',\n 'apply',\n 'as_const',\n 'asin',\n 'atan',\n 'atan2',\n 'calloc',\n 'ceil',\n 'cerr',\n 'cin',\n 'clog',\n 'cos',\n 'cosh',\n 'cout',\n 'declval',\n 'endl',\n 'exchange',\n 'exit',\n 'exp',\n 'fabs',\n 'floor',\n 'fmod',\n 'forward',\n 'fprintf',\n 'fputs',\n 'free',\n 'frexp',\n 'fscanf',\n 'future',\n 'invoke',\n 'isalnum',\n 'isalpha',\n 'iscntrl',\n 'isdigit',\n 'isgraph',\n 'islower',\n 'isprint',\n 'ispunct',\n 'isspace',\n 'isupper',\n 'isxdigit',\n 'labs',\n 'launder',\n 'ldexp',\n 'log',\n 'log10',\n 'make_pair',\n 'make_shared',\n 'make_shared_for_overwrite',\n 'make_tuple',\n 'make_unique',\n 'malloc',\n 'memchr',\n 'memcmp',\n 'memcpy',\n 'memset',\n 'modf',\n 'move',\n 'pow',\n 'printf',\n 'putchar',\n 'puts',\n 'realloc',\n 'scanf',\n 'sin',\n 'sinh',\n 'snprintf',\n 'sprintf',\n 'sqrt',\n 'sscanf',\n 'std',\n 'stderr',\n 'stdin',\n 'stdout',\n 'strcat',\n 'strchr',\n 'strcmp',\n 'strcpy',\n 'strcspn',\n 'strlen',\n 'strncat',\n 'strncmp',\n 'strncpy',\n 'strpbrk',\n 'strrchr',\n 'strspn',\n 'strstr',\n 'swap',\n 'tan',\n 'tanh',\n 'terminate',\n 'to_underlying',\n 'tolower',\n 'toupper',\n 'vfprintf',\n 'visit',\n 'vprintf',\n 'vsprintf'\n ];\n\n const LITERALS = [\n 'NULL',\n 'false',\n 'nullopt',\n 'nullptr',\n 'true'\n ];\n\n // https://en.cppreference.com/w/cpp/keyword\n const BUILT_IN = [ '_Pragma' ];\n\n const CPP_KEYWORDS = {\n type: RESERVED_TYPES,\n keyword: RESERVED_KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_IN,\n _type_hints: TYPE_HINTS\n };\n\n const FUNCTION_DISPATCH = {\n className: 'function.dispatch',\n relevance: 0,\n keywords: {\n // Only for relevance, not highlighting.\n _hint: FUNCTION_HINTS },\n begin: regex.concat(\n /\\b/,\n /(?!decltype)/,\n /(?!if)/,\n /(?!for)/,\n /(?!switch)/,\n /(?!while)/,\n hljs.IDENT_RE,\n regex.lookahead(/(<[^<>]+>|)\\s*\\(/))\n };\n\n const EXPRESSION_CONTAINS = [\n FUNCTION_DISPATCH,\n PREPROCESSOR,\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n NUMBERS,\n STRINGS\n ];\n\n const EXPRESSION_CONTEXT = {\n // This mode covers expression context where we can't expect a function\n // definition and shouldn't highlight anything that looks like one:\n // `return some()`, `else if()`, `(x*sum(1, 2))`\n variants: [\n {\n begin: /=/,\n end: /;/\n },\n {\n begin: /\\(/,\n end: /\\)/\n },\n {\n beginKeywords: 'new throw return else',\n end: /;/\n }\n ],\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([ 'self' ]),\n relevance: 0\n }\n ]),\n relevance: 0\n };\n\n const FUNCTION_DECLARATION = {\n className: 'function',\n begin: '(' + FUNCTION_TYPE_RE + '[\\\\*&\\\\s]+)+' + FUNCTION_TITLE,\n returnBegin: true,\n end: /[{;=]/,\n excludeEnd: true,\n keywords: CPP_KEYWORDS,\n illegal: /[^\\w\\s\\*&:<>.]/,\n contains: [\n { // to prevent it from being confused as the function title\n begin: DECLTYPE_AUTO_RE,\n keywords: CPP_KEYWORDS,\n relevance: 0\n },\n {\n begin: FUNCTION_TITLE,\n returnBegin: true,\n contains: [ TITLE_MODE ],\n relevance: 0\n },\n // needed because we do not have look-behind on the below rule\n // to prevent it from grabbing the final : in a :: pair\n {\n begin: /::/,\n relevance: 0\n },\n // initializers\n {\n begin: /:/,\n endsWithParent: true,\n contains: [\n STRINGS,\n NUMBERS\n ]\n },\n // allow for multiple declarations, e.g.:\n // extern void f(int), g(char);\n {\n relevance: 0,\n match: /,/\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES,\n // Count matching parentheses.\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n 'self',\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES\n ]\n }\n ]\n },\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n PREPROCESSOR\n ]\n };\n\n return {\n name: 'C++',\n aliases: [\n 'cc',\n 'c++',\n 'h++',\n 'hpp',\n 'hh',\n 'hxx',\n 'cxx'\n ],\n keywords: CPP_KEYWORDS,\n illegal: ' rooms (9);`\n begin: '\\\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\\\s*<(?!<)',\n end: '>',\n keywords: CPP_KEYWORDS,\n contains: [\n 'self',\n CPP_PRIMITIVE_TYPES\n ]\n },\n {\n begin: hljs.IDENT_RE + '::',\n keywords: CPP_KEYWORDS\n },\n {\n match: [\n // extra complexity to deal with `enum class` and `enum struct`\n /\\b(?:enum(?:\\s+(?:class|struct))?|class|struct|union)/,\n /\\s+/,\n /\\w+/\n ],\n className: {\n 1: 'keyword',\n 3: 'title.class'\n }\n }\n ])\n };\n}\n\n/*\nLanguage: Arduino\nAuthor: Stefania Mellai \nDescription: The Arduino® Language is a superset of C++. This rules are designed to highlight the Arduino® source code. For info about language see http://www.arduino.cc.\nWebsite: https://www.arduino.cc\nCategory: system\n*/\n\n\n/** @type LanguageFn */\nfunction arduino(hljs) {\n const ARDUINO_KW = {\n type: [\n \"boolean\",\n \"byte\",\n \"word\",\n \"String\"\n ],\n built_in: [\n \"KeyboardController\",\n \"MouseController\",\n \"SoftwareSerial\",\n \"EthernetServer\",\n \"EthernetClient\",\n \"LiquidCrystal\",\n \"RobotControl\",\n \"GSMVoiceCall\",\n \"EthernetUDP\",\n \"EsploraTFT\",\n \"HttpClient\",\n \"RobotMotor\",\n \"WiFiClient\",\n \"GSMScanner\",\n \"FileSystem\",\n \"Scheduler\",\n \"GSMServer\",\n \"YunClient\",\n \"YunServer\",\n \"IPAddress\",\n \"GSMClient\",\n \"GSMModem\",\n \"Keyboard\",\n \"Ethernet\",\n \"Console\",\n \"GSMBand\",\n \"Esplora\",\n \"Stepper\",\n \"Process\",\n \"WiFiUDP\",\n \"GSM_SMS\",\n \"Mailbox\",\n \"USBHost\",\n \"Firmata\",\n \"PImage\",\n \"Client\",\n \"Server\",\n \"GSMPIN\",\n \"FileIO\",\n \"Bridge\",\n \"Serial\",\n \"EEPROM\",\n \"Stream\",\n \"Mouse\",\n \"Audio\",\n \"Servo\",\n \"File\",\n \"Task\",\n \"GPRS\",\n \"WiFi\",\n \"Wire\",\n \"TFT\",\n \"GSM\",\n \"SPI\",\n \"SD\"\n ],\n _hints: [\n \"setup\",\n \"loop\",\n \"runShellCommandAsynchronously\",\n \"analogWriteResolution\",\n \"retrieveCallingNumber\",\n \"printFirmwareVersion\",\n \"analogReadResolution\",\n \"sendDigitalPortPair\",\n \"noListenOnLocalhost\",\n \"readJoystickButton\",\n \"setFirmwareVersion\",\n \"readJoystickSwitch\",\n \"scrollDisplayRight\",\n \"getVoiceCallStatus\",\n \"scrollDisplayLeft\",\n \"writeMicroseconds\",\n \"delayMicroseconds\",\n \"beginTransmission\",\n \"getSignalStrength\",\n \"runAsynchronously\",\n \"getAsynchronously\",\n \"listenOnLocalhost\",\n \"getCurrentCarrier\",\n \"readAccelerometer\",\n \"messageAvailable\",\n \"sendDigitalPorts\",\n \"lineFollowConfig\",\n \"countryNameWrite\",\n \"runShellCommand\",\n \"readStringUntil\",\n \"rewindDirectory\",\n \"readTemperature\",\n \"setClockDivider\",\n \"readLightSensor\",\n \"endTransmission\",\n \"analogReference\",\n \"detachInterrupt\",\n \"countryNameRead\",\n \"attachInterrupt\",\n \"encryptionType\",\n \"readBytesUntil\",\n \"robotNameWrite\",\n \"readMicrophone\",\n \"robotNameRead\",\n \"cityNameWrite\",\n \"userNameWrite\",\n \"readJoystickY\",\n \"readJoystickX\",\n \"mouseReleased\",\n \"openNextFile\",\n \"scanNetworks\",\n \"noInterrupts\",\n \"digitalWrite\",\n \"beginSpeaker\",\n \"mousePressed\",\n \"isActionDone\",\n \"mouseDragged\",\n \"displayLogos\",\n \"noAutoscroll\",\n \"addParameter\",\n \"remoteNumber\",\n \"getModifiers\",\n \"keyboardRead\",\n \"userNameRead\",\n \"waitContinue\",\n \"processInput\",\n \"parseCommand\",\n \"printVersion\",\n \"readNetworks\",\n \"writeMessage\",\n \"blinkVersion\",\n \"cityNameRead\",\n \"readMessage\",\n \"setDataMode\",\n \"parsePacket\",\n \"isListening\",\n \"setBitOrder\",\n \"beginPacket\",\n \"isDirectory\",\n \"motorsWrite\",\n \"drawCompass\",\n \"digitalRead\",\n \"clearScreen\",\n \"serialEvent\",\n \"rightToLeft\",\n \"setTextSize\",\n \"leftToRight\",\n \"requestFrom\",\n \"keyReleased\",\n \"compassRead\",\n \"analogWrite\",\n \"interrupts\",\n \"WiFiServer\",\n \"disconnect\",\n \"playMelody\",\n \"parseFloat\",\n \"autoscroll\",\n \"getPINUsed\",\n \"setPINUsed\",\n \"setTimeout\",\n \"sendAnalog\",\n \"readSlider\",\n \"analogRead\",\n \"beginWrite\",\n \"createChar\",\n \"motorsStop\",\n \"keyPressed\",\n \"tempoWrite\",\n \"readButton\",\n \"subnetMask\",\n \"debugPrint\",\n \"macAddress\",\n \"writeGreen\",\n \"randomSeed\",\n \"attachGPRS\",\n \"readString\",\n \"sendString\",\n \"remotePort\",\n \"releaseAll\",\n \"mouseMoved\",\n \"background\",\n \"getXChange\",\n \"getYChange\",\n \"answerCall\",\n \"getResult\",\n \"voiceCall\",\n \"endPacket\",\n \"constrain\",\n \"getSocket\",\n \"writeJSON\",\n \"getButton\",\n \"available\",\n \"connected\",\n \"findUntil\",\n \"readBytes\",\n \"exitValue\",\n \"readGreen\",\n \"writeBlue\",\n \"startLoop\",\n \"IPAddress\",\n \"isPressed\",\n \"sendSysex\",\n \"pauseMode\",\n \"gatewayIP\",\n \"setCursor\",\n \"getOemKey\",\n \"tuneWrite\",\n \"noDisplay\",\n \"loadImage\",\n \"switchPIN\",\n \"onRequest\",\n \"onReceive\",\n \"changePIN\",\n \"playFile\",\n \"noBuffer\",\n \"parseInt\",\n \"overflow\",\n \"checkPIN\",\n \"knobRead\",\n \"beginTFT\",\n \"bitClear\",\n \"updateIR\",\n \"bitWrite\",\n \"position\",\n \"writeRGB\",\n \"highByte\",\n \"writeRed\",\n \"setSpeed\",\n \"readBlue\",\n \"noStroke\",\n \"remoteIP\",\n \"transfer\",\n \"shutdown\",\n \"hangCall\",\n \"beginSMS\",\n \"endWrite\",\n \"attached\",\n \"maintain\",\n \"noCursor\",\n \"checkReg\",\n \"checkPUK\",\n \"shiftOut\",\n \"isValid\",\n \"shiftIn\",\n \"pulseIn\",\n \"connect\",\n \"println\",\n \"localIP\",\n \"pinMode\",\n \"getIMEI\",\n \"display\",\n \"noBlink\",\n \"process\",\n \"getBand\",\n \"running\",\n \"beginSD\",\n \"drawBMP\",\n \"lowByte\",\n \"setBand\",\n \"release\",\n \"bitRead\",\n \"prepare\",\n \"pointTo\",\n \"readRed\",\n \"setMode\",\n \"noFill\",\n \"remove\",\n \"listen\",\n \"stroke\",\n \"detach\",\n \"attach\",\n \"noTone\",\n \"exists\",\n \"buffer\",\n \"height\",\n \"bitSet\",\n \"circle\",\n \"config\",\n \"cursor\",\n \"random\",\n \"IRread\",\n \"setDNS\",\n \"endSMS\",\n \"getKey\",\n \"micros\",\n \"millis\",\n \"begin\",\n \"print\",\n \"write\",\n \"ready\",\n \"flush\",\n \"width\",\n \"isPIN\",\n \"blink\",\n \"clear\",\n \"press\",\n \"mkdir\",\n \"rmdir\",\n \"close\",\n \"point\",\n \"yield\",\n \"image\",\n \"BSSID\",\n \"click\",\n \"delay\",\n \"read\",\n \"text\",\n \"move\",\n \"peek\",\n \"beep\",\n \"rect\",\n \"line\",\n \"open\",\n \"seek\",\n \"fill\",\n \"size\",\n \"turn\",\n \"stop\",\n \"home\",\n \"find\",\n \"step\",\n \"tone\",\n \"sqrt\",\n \"RSSI\",\n \"SSID\",\n \"end\",\n \"bit\",\n \"tan\",\n \"cos\",\n \"sin\",\n \"pow\",\n \"map\",\n \"abs\",\n \"max\",\n \"min\",\n \"get\",\n \"run\",\n \"put\"\n ],\n literal: [\n \"DIGITAL_MESSAGE\",\n \"FIRMATA_STRING\",\n \"ANALOG_MESSAGE\",\n \"REPORT_DIGITAL\",\n \"REPORT_ANALOG\",\n \"INPUT_PULLUP\",\n \"SET_PIN_MODE\",\n \"INTERNAL2V56\",\n \"SYSTEM_RESET\",\n \"LED_BUILTIN\",\n \"INTERNAL1V1\",\n \"SYSEX_START\",\n \"INTERNAL\",\n \"EXTERNAL\",\n \"DEFAULT\",\n \"OUTPUT\",\n \"INPUT\",\n \"HIGH\",\n \"LOW\"\n ]\n };\n\n const ARDUINO = cPlusPlus(hljs);\n\n const kws = /** @type {Record} */ (ARDUINO.keywords);\n\n kws.type = [\n ...kws.type,\n ...ARDUINO_KW.type\n ];\n kws.literal = [\n ...kws.literal,\n ...ARDUINO_KW.literal\n ];\n kws.built_in = [\n ...kws.built_in,\n ...ARDUINO_KW.built_in\n ];\n kws._hints = ARDUINO_KW._hints;\n\n ARDUINO.name = 'Arduino';\n ARDUINO.aliases = [ 'ino' ];\n ARDUINO.supersetOf = \"cpp\";\n\n return ARDUINO;\n}\n\nexport { arduino as default };\n","/*\nLanguage: Bash\nAuthor: vah \nContributrors: Benjamin Pannell \nWebsite: https://www.gnu.org/software/bash/\nCategory: common, scripting\n*/\n\n/** @type LanguageFn */\nfunction bash(hljs) {\n const regex = hljs.regex;\n const VAR = {};\n const BRACED_VAR = {\n begin: /\\$\\{/,\n end: /\\}/,\n contains: [\n \"self\",\n {\n begin: /:-/,\n contains: [ VAR ]\n } // default values\n ]\n };\n Object.assign(VAR, {\n className: 'variable',\n variants: [\n { begin: regex.concat(/\\$[\\w\\d#@][\\w\\d_]*/,\n // negative look-ahead tries to avoid matching patterns that are not\n // Perl at all like $ident$, @ident@, etc.\n `(?![\\\\w\\\\d])(?![$])`) },\n BRACED_VAR\n ]\n });\n\n const SUBST = {\n className: 'subst',\n begin: /\\$\\(/,\n end: /\\)/,\n contains: [ hljs.BACKSLASH_ESCAPE ]\n };\n const COMMENT = hljs.inherit(\n hljs.COMMENT(),\n {\n match: [\n /(^|\\s)/,\n /#.*$/\n ],\n scope: {\n 2: 'comment'\n }\n }\n );\n const HERE_DOC = {\n begin: /<<-?\\s*(?=\\w+)/,\n starts: { contains: [\n hljs.END_SAME_AS_BEGIN({\n begin: /(\\w+)/,\n end: /(\\w+)/,\n className: 'string'\n })\n ] }\n };\n const QUOTE_STRING = {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n VAR,\n SUBST\n ]\n };\n SUBST.contains.push(QUOTE_STRING);\n const ESCAPED_QUOTE = {\n match: /\\\\\"/\n };\n const APOS_STRING = {\n className: 'string',\n begin: /'/,\n end: /'/\n };\n const ESCAPED_APOS = {\n match: /\\\\'/\n };\n const ARITHMETIC = {\n begin: /\\$?\\(\\(/,\n end: /\\)\\)/,\n contains: [\n {\n begin: /\\d+#[0-9a-f]+/,\n className: \"number\"\n },\n hljs.NUMBER_MODE,\n VAR\n ]\n };\n const SH_LIKE_SHELLS = [\n \"fish\",\n \"bash\",\n \"zsh\",\n \"sh\",\n \"csh\",\n \"ksh\",\n \"tcsh\",\n \"dash\",\n \"scsh\",\n ];\n const KNOWN_SHEBANG = hljs.SHEBANG({\n binary: `(${SH_LIKE_SHELLS.join(\"|\")})`,\n relevance: 10\n });\n const FUNCTION = {\n className: 'function',\n begin: /\\w[\\w\\d_]*\\s*\\(\\s*\\)\\s*\\{/,\n returnBegin: true,\n contains: [ hljs.inherit(hljs.TITLE_MODE, { begin: /\\w[\\w\\d_]*/ }) ],\n relevance: 0\n };\n\n const KEYWORDS = [\n \"if\",\n \"then\",\n \"else\",\n \"elif\",\n \"fi\",\n \"time\",\n \"for\",\n \"while\",\n \"until\",\n \"in\",\n \"do\",\n \"done\",\n \"case\",\n \"esac\",\n \"coproc\",\n \"function\",\n \"select\"\n ];\n\n const LITERALS = [\n \"true\",\n \"false\"\n ];\n\n // to consume paths to prevent keyword matches inside them\n const PATH_MODE = { match: /(\\/[a-z._-]+)+/ };\n\n // http://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html\n const SHELL_BUILT_INS = [\n \"break\",\n \"cd\",\n \"continue\",\n \"eval\",\n \"exec\",\n \"exit\",\n \"export\",\n \"getopts\",\n \"hash\",\n \"pwd\",\n \"readonly\",\n \"return\",\n \"shift\",\n \"test\",\n \"times\",\n \"trap\",\n \"umask\",\n \"unset\"\n ];\n\n const BASH_BUILT_INS = [\n \"alias\",\n \"bind\",\n \"builtin\",\n \"caller\",\n \"command\",\n \"declare\",\n \"echo\",\n \"enable\",\n \"help\",\n \"let\",\n \"local\",\n \"logout\",\n \"mapfile\",\n \"printf\",\n \"read\",\n \"readarray\",\n \"source\",\n \"sudo\",\n \"type\",\n \"typeset\",\n \"ulimit\",\n \"unalias\"\n ];\n\n const ZSH_BUILT_INS = [\n \"autoload\",\n \"bg\",\n \"bindkey\",\n \"bye\",\n \"cap\",\n \"chdir\",\n \"clone\",\n \"comparguments\",\n \"compcall\",\n \"compctl\",\n \"compdescribe\",\n \"compfiles\",\n \"compgroups\",\n \"compquote\",\n \"comptags\",\n \"comptry\",\n \"compvalues\",\n \"dirs\",\n \"disable\",\n \"disown\",\n \"echotc\",\n \"echoti\",\n \"emulate\",\n \"fc\",\n \"fg\",\n \"float\",\n \"functions\",\n \"getcap\",\n \"getln\",\n \"history\",\n \"integer\",\n \"jobs\",\n \"kill\",\n \"limit\",\n \"log\",\n \"noglob\",\n \"popd\",\n \"print\",\n \"pushd\",\n \"pushln\",\n \"rehash\",\n \"sched\",\n \"setcap\",\n \"setopt\",\n \"stat\",\n \"suspend\",\n \"ttyctl\",\n \"unfunction\",\n \"unhash\",\n \"unlimit\",\n \"unsetopt\",\n \"vared\",\n \"wait\",\n \"whence\",\n \"where\",\n \"which\",\n \"zcompile\",\n \"zformat\",\n \"zftp\",\n \"zle\",\n \"zmodload\",\n \"zparseopts\",\n \"zprof\",\n \"zpty\",\n \"zregexparse\",\n \"zsocket\",\n \"zstyle\",\n \"ztcp\"\n ];\n\n const GNU_CORE_UTILS = [\n \"chcon\",\n \"chgrp\",\n \"chown\",\n \"chmod\",\n \"cp\",\n \"dd\",\n \"df\",\n \"dir\",\n \"dircolors\",\n \"ln\",\n \"ls\",\n \"mkdir\",\n \"mkfifo\",\n \"mknod\",\n \"mktemp\",\n \"mv\",\n \"realpath\",\n \"rm\",\n \"rmdir\",\n \"shred\",\n \"sync\",\n \"touch\",\n \"truncate\",\n \"vdir\",\n \"b2sum\",\n \"base32\",\n \"base64\",\n \"cat\",\n \"cksum\",\n \"comm\",\n \"csplit\",\n \"cut\",\n \"expand\",\n \"fmt\",\n \"fold\",\n \"head\",\n \"join\",\n \"md5sum\",\n \"nl\",\n \"numfmt\",\n \"od\",\n \"paste\",\n \"ptx\",\n \"pr\",\n \"sha1sum\",\n \"sha224sum\",\n \"sha256sum\",\n \"sha384sum\",\n \"sha512sum\",\n \"shuf\",\n \"sort\",\n \"split\",\n \"sum\",\n \"tac\",\n \"tail\",\n \"tr\",\n \"tsort\",\n \"unexpand\",\n \"uniq\",\n \"wc\",\n \"arch\",\n \"basename\",\n \"chroot\",\n \"date\",\n \"dirname\",\n \"du\",\n \"echo\",\n \"env\",\n \"expr\",\n \"factor\",\n // \"false\", // keyword literal already\n \"groups\",\n \"hostid\",\n \"id\",\n \"link\",\n \"logname\",\n \"nice\",\n \"nohup\",\n \"nproc\",\n \"pathchk\",\n \"pinky\",\n \"printenv\",\n \"printf\",\n \"pwd\",\n \"readlink\",\n \"runcon\",\n \"seq\",\n \"sleep\",\n \"stat\",\n \"stdbuf\",\n \"stty\",\n \"tee\",\n \"test\",\n \"timeout\",\n // \"true\", // keyword literal already\n \"tty\",\n \"uname\",\n \"unlink\",\n \"uptime\",\n \"users\",\n \"who\",\n \"whoami\",\n \"yes\"\n ];\n\n return {\n name: 'Bash',\n aliases: [\n 'sh',\n 'zsh'\n ],\n keywords: {\n $pattern: /\\b[a-z][a-z0-9._-]+\\b/,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: [\n ...SHELL_BUILT_INS,\n ...BASH_BUILT_INS,\n // Shell modifiers\n \"set\",\n \"shopt\",\n ...ZSH_BUILT_INS,\n ...GNU_CORE_UTILS\n ]\n },\n contains: [\n KNOWN_SHEBANG, // to catch known shells and boost relevancy\n hljs.SHEBANG(), // to catch unknown shells but still highlight the shebang\n FUNCTION,\n ARITHMETIC,\n COMMENT,\n HERE_DOC,\n PATH_MODE,\n QUOTE_STRING,\n ESCAPED_QUOTE,\n APOS_STRING,\n ESCAPED_APOS,\n VAR\n ]\n };\n}\n\nexport { bash as default };\n","/*\nLanguage: C\nCategory: common, system\nWebsite: https://en.wikipedia.org/wiki/C_(programming_language)\n*/\n\n/** @type LanguageFn */\nfunction c(hljs) {\n const regex = hljs.regex;\n // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does\n // not include such support nor can we be sure all the grammars depending\n // on it would desire this behavior\n const C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$', { contains: [ { begin: /\\\\\\n/ } ] });\n const DECLTYPE_AUTO_RE = 'decltype\\\\(auto\\\\)';\n const NAMESPACE_RE = '[a-zA-Z_]\\\\w*::';\n const TEMPLATE_ARGUMENT_RE = '<[^<>]+>';\n const FUNCTION_TYPE_RE = '('\n + DECLTYPE_AUTO_RE + '|'\n + regex.optional(NAMESPACE_RE)\n + '[a-zA-Z_]\\\\w*' + regex.optional(TEMPLATE_ARGUMENT_RE)\n + ')';\n\n\n const TYPES = {\n className: 'type',\n variants: [\n { begin: '\\\\b[a-z\\\\d_]*_t\\\\b' },\n { match: /\\batomic_[a-z]{3,6}\\b/ }\n ]\n\n };\n\n // https://en.cppreference.com/w/cpp/language/escape\n // \\\\ \\x \\xFF \\u2837 \\u00323747 \\374\n const CHARACTER_ESCAPES = '\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)';\n const STRINGS = {\n className: 'string',\n variants: [\n {\n begin: '(u8?|U|L)?\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '(u8?|U|L)?\\'(' + CHARACTER_ESCAPES + \"|.)\",\n end: '\\'',\n illegal: '.'\n },\n hljs.END_SAME_AS_BEGIN({\n begin: /(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,\n end: /\\)([^()\\\\ ]{0,16})\"/\n })\n ]\n };\n\n const NUMBERS = {\n className: 'number',\n variants: [\n { match: /\\b(0b[01']+)/ }, \n { match: /(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/ }, \n { match: /(-?)\\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/ }, \n { match: /(-?)\\b\\d+(?:'\\d+)*(?:\\.\\d*(?:'\\d*)*)?(?:[eE][-+]?\\d+)?/ } \n ],\n relevance: 0\n }; \n \n const PREPROCESSOR = {\n className: 'meta',\n begin: /#\\s*[a-z]+\\b/,\n end: /$/,\n keywords: { keyword:\n 'if else elif endif define undef warning error line '\n + 'pragma _Pragma ifdef ifndef elifdef elifndef include' },\n contains: [\n {\n begin: /\\\\\\n/,\n relevance: 0\n },\n hljs.inherit(STRINGS, { className: 'string' }),\n {\n className: 'string',\n begin: /<.*?>/\n },\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n\n const TITLE_MODE = {\n className: 'title',\n begin: regex.optional(NAMESPACE_RE) + hljs.IDENT_RE,\n relevance: 0\n };\n\n const FUNCTION_TITLE = regex.optional(NAMESPACE_RE) + hljs.IDENT_RE + '\\\\s*\\\\(';\n\n const C_KEYWORDS = [\n \"asm\",\n \"auto\",\n \"break\",\n \"case\",\n \"continue\",\n \"default\",\n \"do\",\n \"else\",\n \"enum\",\n \"extern\",\n \"for\",\n \"fortran\",\n \"goto\",\n \"if\",\n \"inline\",\n \"register\",\n \"restrict\",\n \"return\",\n \"sizeof\",\n \"typeof\",\n \"typeof_unqual\",\n \"struct\",\n \"switch\",\n \"typedef\",\n \"union\",\n \"volatile\",\n \"while\",\n \"_Alignas\",\n \"_Alignof\",\n \"_Atomic\",\n \"_Generic\",\n \"_Noreturn\",\n \"_Static_assert\",\n \"_Thread_local\",\n // aliases\n \"alignas\",\n \"alignof\",\n \"noreturn\",\n \"static_assert\",\n \"thread_local\",\n // not a C keyword but is, for all intents and purposes, treated exactly like one.\n \"_Pragma\"\n ];\n\n const C_TYPES = [\n \"float\",\n \"double\",\n \"signed\",\n \"unsigned\",\n \"int\",\n \"short\",\n \"long\",\n \"char\",\n \"void\",\n \"_Bool\",\n \"_BitInt\",\n \"_Complex\",\n \"_Imaginary\",\n \"_Decimal32\",\n \"_Decimal64\",\n \"_Decimal96\",\n \"_Decimal128\",\n \"_Decimal64x\",\n \"_Decimal128x\",\n \"_Float16\",\n \"_Float32\",\n \"_Float64\",\n \"_Float128\",\n \"_Float32x\",\n \"_Float64x\",\n \"_Float128x\",\n // modifiers\n \"const\",\n \"static\",\n \"constexpr\",\n // aliases\n \"complex\",\n \"bool\",\n \"imaginary\"\n ];\n\n const KEYWORDS = {\n keyword: C_KEYWORDS,\n type: C_TYPES,\n literal: 'true false NULL',\n // TODO: apply hinting work similar to what was done in cpp.js\n built_in: 'std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream '\n + 'auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set '\n + 'unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos '\n + 'asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp '\n + 'fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper '\n + 'isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow '\n + 'printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp '\n + 'strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan '\n + 'vfprintf vprintf vsprintf endl initializer_list unique_ptr',\n };\n\n const EXPRESSION_CONTAINS = [\n PREPROCESSOR,\n TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n NUMBERS,\n STRINGS\n ];\n\n const EXPRESSION_CONTEXT = {\n // This mode covers expression context where we can't expect a function\n // definition and shouldn't highlight anything that looks like one:\n // `return some()`, `else if()`, `(x*sum(1, 2))`\n variants: [\n {\n begin: /=/,\n end: /;/\n },\n {\n begin: /\\(/,\n end: /\\)/\n },\n {\n beginKeywords: 'new throw return else',\n end: /;/\n }\n ],\n keywords: KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([ 'self' ]),\n relevance: 0\n }\n ]),\n relevance: 0\n };\n\n const FUNCTION_DECLARATION = {\n begin: '(' + FUNCTION_TYPE_RE + '[\\\\*&\\\\s]+)+' + FUNCTION_TITLE,\n returnBegin: true,\n end: /[{;=]/,\n excludeEnd: true,\n keywords: KEYWORDS,\n illegal: /[^\\w\\s\\*&:<>.]/,\n contains: [\n { // to prevent it from being confused as the function title\n begin: DECLTYPE_AUTO_RE,\n keywords: KEYWORDS,\n relevance: 0\n },\n {\n begin: FUNCTION_TITLE,\n returnBegin: true,\n contains: [ hljs.inherit(TITLE_MODE, { className: \"title.function\" }) ],\n relevance: 0\n },\n // allow for multiple declarations, e.g.:\n // extern void f(int), g(char);\n {\n relevance: 0,\n match: /,/\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n TYPES,\n // Count matching parentheses.\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [\n 'self',\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n TYPES\n ]\n }\n ]\n },\n TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n PREPROCESSOR\n ]\n };\n\n return {\n name: \"C\",\n aliases: [ 'h' ],\n keywords: KEYWORDS,\n // Until differentiations are added between `c` and `cpp`, `c` will\n // not be auto-detected to avoid auto-detect conflicts between C and C++\n disableAutodetect: true,\n illegal: '=]/,\n contains: [\n { beginKeywords: \"final class struct\" },\n hljs.TITLE_MODE\n ]\n }\n ]),\n exports: {\n preprocessor: PREPROCESSOR,\n strings: STRINGS,\n keywords: KEYWORDS\n }\n };\n}\n\nexport { c as default };\n","/*\nLanguage: C++\nCategory: common, system\nWebsite: https://isocpp.org\n*/\n\n/** @type LanguageFn */\nfunction cpp(hljs) {\n const regex = hljs.regex;\n // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does\n // not include such support nor can we be sure all the grammars depending\n // on it would desire this behavior\n const C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$', { contains: [ { begin: /\\\\\\n/ } ] });\n const DECLTYPE_AUTO_RE = 'decltype\\\\(auto\\\\)';\n const NAMESPACE_RE = '[a-zA-Z_]\\\\w*::';\n const TEMPLATE_ARGUMENT_RE = '<[^<>]+>';\n const FUNCTION_TYPE_RE = '(?!struct)('\n + DECLTYPE_AUTO_RE + '|'\n + regex.optional(NAMESPACE_RE)\n + '[a-zA-Z_]\\\\w*' + regex.optional(TEMPLATE_ARGUMENT_RE)\n + ')';\n\n const CPP_PRIMITIVE_TYPES = {\n className: 'type',\n begin: '\\\\b[a-z\\\\d_]*_t\\\\b'\n };\n\n // https://en.cppreference.com/w/cpp/language/escape\n // \\\\ \\x \\xFF \\u2837 \\u00323747 \\374\n const CHARACTER_ESCAPES = '\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)';\n const STRINGS = {\n className: 'string',\n variants: [\n {\n begin: '(u8?|U|L)?\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '(u8?|U|L)?\\'(' + CHARACTER_ESCAPES + '|.)',\n end: '\\'',\n illegal: '.'\n },\n hljs.END_SAME_AS_BEGIN({\n begin: /(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,\n end: /\\)([^()\\\\ ]{0,16})\"/\n })\n ]\n };\n\n const NUMBERS = {\n className: 'number',\n variants: [\n // Floating-point literal.\n { begin:\n \"[+-]?(?:\" // Leading sign.\n // Decimal.\n + \"(?:\"\n +\"[0-9](?:'?[0-9])*\\\\.(?:[0-9](?:'?[0-9])*)?\"\n + \"|\\\\.[0-9](?:'?[0-9])*\"\n + \")(?:[Ee][+-]?[0-9](?:'?[0-9])*)?\"\n + \"|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*\"\n // Hexadecimal.\n + \"|0[Xx](?:\"\n +\"[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?\"\n + \"|\\\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*\"\n + \")[Pp][+-]?[0-9](?:'?[0-9])*\"\n + \")(?:\" // Literal suffixes.\n + \"[Ff](?:16|32|64|128)?\"\n + \"|(BF|bf)16\"\n + \"|[Ll]\"\n + \"|\" // Literal suffix is optional.\n + \")\"\n },\n // Integer literal.\n { begin:\n \"[+-]?\\\\b(?:\" // Leading sign.\n + \"0[Bb][01](?:'?[01])*\" // Binary.\n + \"|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*\" // Hexadecimal.\n + \"|0(?:'?[0-7])*\" // Octal or just a lone zero.\n + \"|[1-9](?:'?[0-9])*\" // Decimal.\n + \")(?:\" // Literal suffixes.\n + \"[Uu](?:LL?|ll?)\"\n + \"|[Uu][Zz]?\"\n + \"|(?:LL?|ll?)[Uu]?\"\n + \"|[Zz][Uu]\"\n + \"|\" // Literal suffix is optional.\n + \")\"\n // Note: there are user-defined literal suffixes too, but perhaps having the custom suffix not part of the\n // literal highlight actually makes it stand out more.\n }\n ],\n relevance: 0\n };\n\n const PREPROCESSOR = {\n className: 'meta',\n begin: /#\\s*[a-z]+\\b/,\n end: /$/,\n keywords: { keyword:\n 'if else elif endif define undef warning error line '\n + 'pragma _Pragma ifdef ifndef include' },\n contains: [\n {\n begin: /\\\\\\n/,\n relevance: 0\n },\n hljs.inherit(STRINGS, { className: 'string' }),\n {\n className: 'string',\n begin: /<.*?>/\n },\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n\n const TITLE_MODE = {\n className: 'title',\n begin: regex.optional(NAMESPACE_RE) + hljs.IDENT_RE,\n relevance: 0\n };\n\n const FUNCTION_TITLE = regex.optional(NAMESPACE_RE) + hljs.IDENT_RE + '\\\\s*\\\\(';\n\n // https://en.cppreference.com/w/cpp/keyword\n const RESERVED_KEYWORDS = [\n 'alignas',\n 'alignof',\n 'and',\n 'and_eq',\n 'asm',\n 'atomic_cancel',\n 'atomic_commit',\n 'atomic_noexcept',\n 'auto',\n 'bitand',\n 'bitor',\n 'break',\n 'case',\n 'catch',\n 'class',\n 'co_await',\n 'co_return',\n 'co_yield',\n 'compl',\n 'concept',\n 'const_cast|10',\n 'consteval',\n 'constexpr',\n 'constinit',\n 'continue',\n 'decltype',\n 'default',\n 'delete',\n 'do',\n 'dynamic_cast|10',\n 'else',\n 'enum',\n 'explicit',\n 'export',\n 'extern',\n 'false',\n 'final',\n 'for',\n 'friend',\n 'goto',\n 'if',\n 'import',\n 'inline',\n 'module',\n 'mutable',\n 'namespace',\n 'new',\n 'noexcept',\n 'not',\n 'not_eq',\n 'nullptr',\n 'operator',\n 'or',\n 'or_eq',\n 'override',\n 'private',\n 'protected',\n 'public',\n 'reflexpr',\n 'register',\n 'reinterpret_cast|10',\n 'requires',\n 'return',\n 'sizeof',\n 'static_assert',\n 'static_cast|10',\n 'struct',\n 'switch',\n 'synchronized',\n 'template',\n 'this',\n 'thread_local',\n 'throw',\n 'transaction_safe',\n 'transaction_safe_dynamic',\n 'true',\n 'try',\n 'typedef',\n 'typeid',\n 'typename',\n 'union',\n 'using',\n 'virtual',\n 'volatile',\n 'while',\n 'xor',\n 'xor_eq'\n ];\n\n // https://en.cppreference.com/w/cpp/keyword\n const RESERVED_TYPES = [\n 'bool',\n 'char',\n 'char16_t',\n 'char32_t',\n 'char8_t',\n 'double',\n 'float',\n 'int',\n 'long',\n 'short',\n 'void',\n 'wchar_t',\n 'unsigned',\n 'signed',\n 'const',\n 'static'\n ];\n\n const TYPE_HINTS = [\n 'any',\n 'auto_ptr',\n 'barrier',\n 'binary_semaphore',\n 'bitset',\n 'complex',\n 'condition_variable',\n 'condition_variable_any',\n 'counting_semaphore',\n 'deque',\n 'false_type',\n 'flat_map',\n 'flat_set',\n 'future',\n 'imaginary',\n 'initializer_list',\n 'istringstream',\n 'jthread',\n 'latch',\n 'lock_guard',\n 'multimap',\n 'multiset',\n 'mutex',\n 'optional',\n 'ostringstream',\n 'packaged_task',\n 'pair',\n 'promise',\n 'priority_queue',\n 'queue',\n 'recursive_mutex',\n 'recursive_timed_mutex',\n 'scoped_lock',\n 'set',\n 'shared_future',\n 'shared_lock',\n 'shared_mutex',\n 'shared_timed_mutex',\n 'shared_ptr',\n 'stack',\n 'string_view',\n 'stringstream',\n 'timed_mutex',\n 'thread',\n 'true_type',\n 'tuple',\n 'unique_lock',\n 'unique_ptr',\n 'unordered_map',\n 'unordered_multimap',\n 'unordered_multiset',\n 'unordered_set',\n 'variant',\n 'vector',\n 'weak_ptr',\n 'wstring',\n 'wstring_view'\n ];\n\n const FUNCTION_HINTS = [\n 'abort',\n 'abs',\n 'acos',\n 'apply',\n 'as_const',\n 'asin',\n 'atan',\n 'atan2',\n 'calloc',\n 'ceil',\n 'cerr',\n 'cin',\n 'clog',\n 'cos',\n 'cosh',\n 'cout',\n 'declval',\n 'endl',\n 'exchange',\n 'exit',\n 'exp',\n 'fabs',\n 'floor',\n 'fmod',\n 'forward',\n 'fprintf',\n 'fputs',\n 'free',\n 'frexp',\n 'fscanf',\n 'future',\n 'invoke',\n 'isalnum',\n 'isalpha',\n 'iscntrl',\n 'isdigit',\n 'isgraph',\n 'islower',\n 'isprint',\n 'ispunct',\n 'isspace',\n 'isupper',\n 'isxdigit',\n 'labs',\n 'launder',\n 'ldexp',\n 'log',\n 'log10',\n 'make_pair',\n 'make_shared',\n 'make_shared_for_overwrite',\n 'make_tuple',\n 'make_unique',\n 'malloc',\n 'memchr',\n 'memcmp',\n 'memcpy',\n 'memset',\n 'modf',\n 'move',\n 'pow',\n 'printf',\n 'putchar',\n 'puts',\n 'realloc',\n 'scanf',\n 'sin',\n 'sinh',\n 'snprintf',\n 'sprintf',\n 'sqrt',\n 'sscanf',\n 'std',\n 'stderr',\n 'stdin',\n 'stdout',\n 'strcat',\n 'strchr',\n 'strcmp',\n 'strcpy',\n 'strcspn',\n 'strlen',\n 'strncat',\n 'strncmp',\n 'strncpy',\n 'strpbrk',\n 'strrchr',\n 'strspn',\n 'strstr',\n 'swap',\n 'tan',\n 'tanh',\n 'terminate',\n 'to_underlying',\n 'tolower',\n 'toupper',\n 'vfprintf',\n 'visit',\n 'vprintf',\n 'vsprintf'\n ];\n\n const LITERALS = [\n 'NULL',\n 'false',\n 'nullopt',\n 'nullptr',\n 'true'\n ];\n\n // https://en.cppreference.com/w/cpp/keyword\n const BUILT_IN = [ '_Pragma' ];\n\n const CPP_KEYWORDS = {\n type: RESERVED_TYPES,\n keyword: RESERVED_KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_IN,\n _type_hints: TYPE_HINTS\n };\n\n const FUNCTION_DISPATCH = {\n className: 'function.dispatch',\n relevance: 0,\n keywords: {\n // Only for relevance, not highlighting.\n _hint: FUNCTION_HINTS },\n begin: regex.concat(\n /\\b/,\n /(?!decltype)/,\n /(?!if)/,\n /(?!for)/,\n /(?!switch)/,\n /(?!while)/,\n hljs.IDENT_RE,\n regex.lookahead(/(<[^<>]+>|)\\s*\\(/))\n };\n\n const EXPRESSION_CONTAINS = [\n FUNCTION_DISPATCH,\n PREPROCESSOR,\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n NUMBERS,\n STRINGS\n ];\n\n const EXPRESSION_CONTEXT = {\n // This mode covers expression context where we can't expect a function\n // definition and shouldn't highlight anything that looks like one:\n // `return some()`, `else if()`, `(x*sum(1, 2))`\n variants: [\n {\n begin: /=/,\n end: /;/\n },\n {\n begin: /\\(/,\n end: /\\)/\n },\n {\n beginKeywords: 'new throw return else',\n end: /;/\n }\n ],\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([ 'self' ]),\n relevance: 0\n }\n ]),\n relevance: 0\n };\n\n const FUNCTION_DECLARATION = {\n className: 'function',\n begin: '(' + FUNCTION_TYPE_RE + '[\\\\*&\\\\s]+)+' + FUNCTION_TITLE,\n returnBegin: true,\n end: /[{;=]/,\n excludeEnd: true,\n keywords: CPP_KEYWORDS,\n illegal: /[^\\w\\s\\*&:<>.]/,\n contains: [\n { // to prevent it from being confused as the function title\n begin: DECLTYPE_AUTO_RE,\n keywords: CPP_KEYWORDS,\n relevance: 0\n },\n {\n begin: FUNCTION_TITLE,\n returnBegin: true,\n contains: [ TITLE_MODE ],\n relevance: 0\n },\n // needed because we do not have look-behind on the below rule\n // to prevent it from grabbing the final : in a :: pair\n {\n begin: /::/,\n relevance: 0\n },\n // initializers\n {\n begin: /:/,\n endsWithParent: true,\n contains: [\n STRINGS,\n NUMBERS\n ]\n },\n // allow for multiple declarations, e.g.:\n // extern void f(int), g(char);\n {\n relevance: 0,\n match: /,/\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES,\n // Count matching parentheses.\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n 'self',\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES\n ]\n }\n ]\n },\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n PREPROCESSOR\n ]\n };\n\n return {\n name: 'C++',\n aliases: [\n 'cc',\n 'c++',\n 'h++',\n 'hpp',\n 'hh',\n 'hxx',\n 'cxx'\n ],\n keywords: CPP_KEYWORDS,\n illegal: ' rooms (9);`\n begin: '\\\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\\\s*<(?!<)',\n end: '>',\n keywords: CPP_KEYWORDS,\n contains: [\n 'self',\n CPP_PRIMITIVE_TYPES\n ]\n },\n {\n begin: hljs.IDENT_RE + '::',\n keywords: CPP_KEYWORDS\n },\n {\n match: [\n // extra complexity to deal with `enum class` and `enum struct`\n /\\b(?:enum(?:\\s+(?:class|struct))?|class|struct|union)/,\n /\\s+/,\n /\\w+/\n ],\n className: {\n 1: 'keyword',\n 3: 'title.class'\n }\n }\n ])\n };\n}\n\nexport { cpp as default };\n","/*\nLanguage: C#\nAuthor: Jason Diamond \nContributor: Nicolas LLOBERA , Pieter Vantorre , David Pine \nWebsite: https://docs.microsoft.com/dotnet/csharp/\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction csharp(hljs) {\n const BUILT_IN_KEYWORDS = [\n 'bool',\n 'byte',\n 'char',\n 'decimal',\n 'delegate',\n 'double',\n 'dynamic',\n 'enum',\n 'float',\n 'int',\n 'long',\n 'nint',\n 'nuint',\n 'object',\n 'sbyte',\n 'short',\n 'string',\n 'ulong',\n 'uint',\n 'ushort'\n ];\n const FUNCTION_MODIFIERS = [\n 'public',\n 'private',\n 'protected',\n 'static',\n 'internal',\n 'protected',\n 'abstract',\n 'async',\n 'extern',\n 'override',\n 'unsafe',\n 'virtual',\n 'new',\n 'sealed',\n 'partial'\n ];\n const LITERAL_KEYWORDS = [\n 'default',\n 'false',\n 'null',\n 'true'\n ];\n const NORMAL_KEYWORDS = [\n 'abstract',\n 'as',\n 'base',\n 'break',\n 'case',\n 'catch',\n 'class',\n 'const',\n 'continue',\n 'do',\n 'else',\n 'event',\n 'explicit',\n 'extern',\n 'finally',\n 'fixed',\n 'for',\n 'foreach',\n 'goto',\n 'if',\n 'implicit',\n 'in',\n 'interface',\n 'internal',\n 'is',\n 'lock',\n 'namespace',\n 'new',\n 'operator',\n 'out',\n 'override',\n 'params',\n 'private',\n 'protected',\n 'public',\n 'readonly',\n 'record',\n 'ref',\n 'return',\n 'scoped',\n 'sealed',\n 'sizeof',\n 'stackalloc',\n 'static',\n 'struct',\n 'switch',\n 'this',\n 'throw',\n 'try',\n 'typeof',\n 'unchecked',\n 'unsafe',\n 'using',\n 'virtual',\n 'void',\n 'volatile',\n 'while'\n ];\n const CONTEXTUAL_KEYWORDS = [\n 'add',\n 'alias',\n 'and',\n 'ascending',\n 'args',\n 'async',\n 'await',\n 'by',\n 'descending',\n 'dynamic',\n 'equals',\n 'file',\n 'from',\n 'get',\n 'global',\n 'group',\n 'init',\n 'into',\n 'join',\n 'let',\n 'nameof',\n 'not',\n 'notnull',\n 'on',\n 'or',\n 'orderby',\n 'partial',\n 'record',\n 'remove',\n 'required',\n 'scoped',\n 'select',\n 'set',\n 'unmanaged',\n 'value|0',\n 'var',\n 'when',\n 'where',\n 'with',\n 'yield'\n ];\n\n const KEYWORDS = {\n keyword: NORMAL_KEYWORDS.concat(CONTEXTUAL_KEYWORDS),\n built_in: BUILT_IN_KEYWORDS,\n literal: LITERAL_KEYWORDS\n };\n const TITLE_MODE = hljs.inherit(hljs.TITLE_MODE, { begin: '[a-zA-Z](\\\\.?\\\\w)*' });\n const NUMBERS = {\n className: 'number',\n variants: [\n { begin: '\\\\b(0b[01\\']+)' },\n { begin: '(-?)\\\\b([\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)(u|U|l|L|ul|UL|f|F|b|B)' },\n { begin: '(-?)(\\\\b0[xX][a-fA-F0-9\\']+|(\\\\b[\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)([eE][-+]?[\\\\d\\']+)?)' }\n ],\n relevance: 0\n };\n const RAW_STRING = {\n className: 'string',\n begin: /\"\"\"(\"*)(?!\")(.|\\n)*?\"\"\"\\1/,\n relevance: 1\n };\n const VERBATIM_STRING = {\n className: 'string',\n begin: '@\"',\n end: '\"',\n contains: [ { begin: '\"\"' } ]\n };\n const VERBATIM_STRING_NO_LF = hljs.inherit(VERBATIM_STRING, { illegal: /\\n/ });\n const SUBST = {\n className: 'subst',\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS\n };\n const SUBST_NO_LF = hljs.inherit(SUBST, { illegal: /\\n/ });\n const INTERPOLATED_STRING = {\n className: 'string',\n begin: /\\$\"/,\n end: '\"',\n illegal: /\\n/,\n contains: [\n { begin: /\\{\\{/ },\n { begin: /\\}\\}/ },\n hljs.BACKSLASH_ESCAPE,\n SUBST_NO_LF\n ]\n };\n const INTERPOLATED_VERBATIM_STRING = {\n className: 'string',\n begin: /\\$@\"/,\n end: '\"',\n contains: [\n { begin: /\\{\\{/ },\n { begin: /\\}\\}/ },\n { begin: '\"\"' },\n SUBST\n ]\n };\n const INTERPOLATED_VERBATIM_STRING_NO_LF = hljs.inherit(INTERPOLATED_VERBATIM_STRING, {\n illegal: /\\n/,\n contains: [\n { begin: /\\{\\{/ },\n { begin: /\\}\\}/ },\n { begin: '\"\"' },\n SUBST_NO_LF\n ]\n });\n SUBST.contains = [\n INTERPOLATED_VERBATIM_STRING,\n INTERPOLATED_STRING,\n VERBATIM_STRING,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n NUMBERS,\n hljs.C_BLOCK_COMMENT_MODE\n ];\n SUBST_NO_LF.contains = [\n INTERPOLATED_VERBATIM_STRING_NO_LF,\n INTERPOLATED_STRING,\n VERBATIM_STRING_NO_LF,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n NUMBERS,\n hljs.inherit(hljs.C_BLOCK_COMMENT_MODE, { illegal: /\\n/ })\n ];\n const STRING = { variants: [\n RAW_STRING,\n INTERPOLATED_VERBATIM_STRING,\n INTERPOLATED_STRING,\n VERBATIM_STRING,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ] };\n\n const GENERIC_MODIFIER = {\n begin: \"<\",\n end: \">\",\n contains: [\n { beginKeywords: \"in out\" },\n TITLE_MODE\n ]\n };\n const TYPE_IDENT_RE = hljs.IDENT_RE + '(<' + hljs.IDENT_RE + '(\\\\s*,\\\\s*' + hljs.IDENT_RE + ')*>)?(\\\\[\\\\])?';\n const AT_IDENTIFIER = {\n // prevents expressions like `@class` from incorrect flagging\n // `class` as a keyword\n begin: \"@\" + hljs.IDENT_RE,\n relevance: 0\n };\n\n return {\n name: 'C#',\n aliases: [\n 'cs',\n 'c#'\n ],\n keywords: KEYWORDS,\n illegal: /::/,\n contains: [\n hljs.COMMENT(\n '///',\n '$',\n {\n returnBegin: true,\n contains: [\n {\n className: 'doctag',\n variants: [\n {\n begin: '///',\n relevance: 0\n },\n { begin: '' },\n {\n begin: ''\n }\n ]\n }\n ]\n }\n ),\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n {\n className: 'meta',\n begin: '#',\n end: '$',\n keywords: { keyword: 'if else elif endif define undef warning error line region endregion pragma checksum' }\n },\n STRING,\n NUMBERS,\n {\n beginKeywords: 'class interface',\n relevance: 0,\n end: /[{;=]/,\n illegal: /[^\\s:,]/,\n contains: [\n { beginKeywords: \"where class\" },\n TITLE_MODE,\n GENERIC_MODIFIER,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n {\n beginKeywords: 'namespace',\n relevance: 0,\n end: /[{;=]/,\n illegal: /[^\\s:]/,\n contains: [\n TITLE_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n {\n beginKeywords: 'record',\n relevance: 0,\n end: /[{;=]/,\n illegal: /[^\\s:]/,\n contains: [\n TITLE_MODE,\n GENERIC_MODIFIER,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n {\n // [Attributes(\"\")]\n className: 'meta',\n begin: '^\\\\s*\\\\[(?=[\\\\w])',\n excludeBegin: true,\n end: '\\\\]',\n excludeEnd: true,\n contains: [\n {\n className: 'string',\n begin: /\"/,\n end: /\"/\n }\n ]\n },\n {\n // Expression keywords prevent 'keyword Name(...)' from being\n // recognized as a function definition\n beginKeywords: 'new return throw await else',\n relevance: 0\n },\n {\n className: 'function',\n begin: '(' + TYPE_IDENT_RE + '\\\\s+)+' + hljs.IDENT_RE + '\\\\s*(<[^=]+>\\\\s*)?\\\\(',\n returnBegin: true,\n end: /\\s*[{;=]/,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [\n // prevents these from being highlighted `title`\n {\n beginKeywords: FUNCTION_MODIFIERS.join(\" \"),\n relevance: 0\n },\n {\n begin: hljs.IDENT_RE + '\\\\s*(<[^=]+>\\\\s*)?\\\\(',\n returnBegin: true,\n contains: [\n hljs.TITLE_MODE,\n GENERIC_MODIFIER\n ],\n relevance: 0\n },\n { match: /\\(\\)/ },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [\n STRING,\n NUMBERS,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n AT_IDENTIFIER\n ]\n };\n}\n\nexport { csharp as default };\n","const MODES = (hljs) => {\n return {\n IMPORTANT: {\n scope: 'meta',\n begin: '!important'\n },\n BLOCK_COMMENT: hljs.C_BLOCK_COMMENT_MODE,\n HEXCOLOR: {\n scope: 'number',\n begin: /#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\\b/\n },\n FUNCTION_DISPATCH: {\n className: \"built_in\",\n begin: /[\\w-]+(?=\\()/\n },\n ATTRIBUTE_SELECTOR_MODE: {\n scope: 'selector-attr',\n begin: /\\[/,\n end: /\\]/,\n illegal: '$',\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n },\n CSS_NUMBER_MODE: {\n scope: 'number',\n begin: hljs.NUMBER_RE + '(' +\n '%|em|ex|ch|rem' +\n '|vw|vh|vmin|vmax' +\n '|cm|mm|in|pt|pc|px' +\n '|deg|grad|rad|turn' +\n '|s|ms' +\n '|Hz|kHz' +\n '|dpi|dpcm|dppx' +\n ')?',\n relevance: 0\n },\n CSS_VARIABLE: {\n className: \"attr\",\n begin: /--[A-Za-z_][A-Za-z0-9_-]*/\n }\n };\n};\n\nconst HTML_TAGS = [\n 'a',\n 'abbr',\n 'address',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'blockquote',\n 'body',\n 'button',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'mark',\n 'menu',\n 'nav',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'picture',\n 'q',\n 'quote',\n 'samp',\n 'section',\n 'select',\n 'source',\n 'span',\n 'strong',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'ul',\n 'var',\n 'video'\n];\n\nconst SVG_TAGS = [\n 'defs',\n 'g',\n 'marker',\n 'mask',\n 'pattern',\n 'svg',\n 'switch',\n 'symbol',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feFlood',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMorphology',\n 'feOffset',\n 'feSpecularLighting',\n 'feTile',\n 'feTurbulence',\n 'linearGradient',\n 'radialGradient',\n 'stop',\n 'circle',\n 'ellipse',\n 'image',\n 'line',\n 'path',\n 'polygon',\n 'polyline',\n 'rect',\n 'text',\n 'use',\n 'textPath',\n 'tspan',\n 'foreignObject',\n 'clipPath'\n];\n\nconst TAGS = [\n ...HTML_TAGS,\n ...SVG_TAGS,\n];\n\n// Sorting, then reversing makes sure longer attributes/elements like\n// `font-weight` are matched fully instead of getting false positives on say `font`\n\nconst MEDIA_FEATURES = [\n 'any-hover',\n 'any-pointer',\n 'aspect-ratio',\n 'color',\n 'color-gamut',\n 'color-index',\n 'device-aspect-ratio',\n 'device-height',\n 'device-width',\n 'display-mode',\n 'forced-colors',\n 'grid',\n 'height',\n 'hover',\n 'inverted-colors',\n 'monochrome',\n 'orientation',\n 'overflow-block',\n 'overflow-inline',\n 'pointer',\n 'prefers-color-scheme',\n 'prefers-contrast',\n 'prefers-reduced-motion',\n 'prefers-reduced-transparency',\n 'resolution',\n 'scan',\n 'scripting',\n 'update',\n 'width',\n // TODO: find a better solution?\n 'min-width',\n 'max-width',\n 'min-height',\n 'max-height'\n].sort().reverse();\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes\nconst PSEUDO_CLASSES = [\n 'active',\n 'any-link',\n 'blank',\n 'checked',\n 'current',\n 'default',\n 'defined',\n 'dir', // dir()\n 'disabled',\n 'drop',\n 'empty',\n 'enabled',\n 'first',\n 'first-child',\n 'first-of-type',\n 'fullscreen',\n 'future',\n 'focus',\n 'focus-visible',\n 'focus-within',\n 'has', // has()\n 'host', // host or host()\n 'host-context', // host-context()\n 'hover',\n 'indeterminate',\n 'in-range',\n 'invalid',\n 'is', // is()\n 'lang', // lang()\n 'last-child',\n 'last-of-type',\n 'left',\n 'link',\n 'local-link',\n 'not', // not()\n 'nth-child', // nth-child()\n 'nth-col', // nth-col()\n 'nth-last-child', // nth-last-child()\n 'nth-last-col', // nth-last-col()\n 'nth-last-of-type', //nth-last-of-type()\n 'nth-of-type', //nth-of-type()\n 'only-child',\n 'only-of-type',\n 'optional',\n 'out-of-range',\n 'past',\n 'placeholder-shown',\n 'read-only',\n 'read-write',\n 'required',\n 'right',\n 'root',\n 'scope',\n 'target',\n 'target-within',\n 'user-invalid',\n 'valid',\n 'visited',\n 'where' // where()\n].sort().reverse();\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements\nconst PSEUDO_ELEMENTS = [\n 'after',\n 'backdrop',\n 'before',\n 'cue',\n 'cue-region',\n 'first-letter',\n 'first-line',\n 'grammar-error',\n 'marker',\n 'part',\n 'placeholder',\n 'selection',\n 'slotted',\n 'spelling-error'\n].sort().reverse();\n\nconst ATTRIBUTES = [\n 'accent-color',\n 'align-content',\n 'align-items',\n 'align-self',\n 'alignment-baseline',\n 'all',\n 'anchor-name',\n 'animation',\n 'animation-composition',\n 'animation-delay',\n 'animation-direction',\n 'animation-duration',\n 'animation-fill-mode',\n 'animation-iteration-count',\n 'animation-name',\n 'animation-play-state',\n 'animation-range',\n 'animation-range-end',\n 'animation-range-start',\n 'animation-timeline',\n 'animation-timing-function',\n 'appearance',\n 'aspect-ratio',\n 'backdrop-filter',\n 'backface-visibility',\n 'background',\n 'background-attachment',\n 'background-blend-mode',\n 'background-clip',\n 'background-color',\n 'background-image',\n 'background-origin',\n 'background-position',\n 'background-position-x',\n 'background-position-y',\n 'background-repeat',\n 'background-size',\n 'baseline-shift',\n 'block-size',\n 'border',\n 'border-block',\n 'border-block-color',\n 'border-block-end',\n 'border-block-end-color',\n 'border-block-end-style',\n 'border-block-end-width',\n 'border-block-start',\n 'border-block-start-color',\n 'border-block-start-style',\n 'border-block-start-width',\n 'border-block-style',\n 'border-block-width',\n 'border-bottom',\n 'border-bottom-color',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n 'border-bottom-style',\n 'border-bottom-width',\n 'border-collapse',\n 'border-color',\n 'border-end-end-radius',\n 'border-end-start-radius',\n 'border-image',\n 'border-image-outset',\n 'border-image-repeat',\n 'border-image-slice',\n 'border-image-source',\n 'border-image-width',\n 'border-inline',\n 'border-inline-color',\n 'border-inline-end',\n 'border-inline-end-color',\n 'border-inline-end-style',\n 'border-inline-end-width',\n 'border-inline-start',\n 'border-inline-start-color',\n 'border-inline-start-style',\n 'border-inline-start-width',\n 'border-inline-style',\n 'border-inline-width',\n 'border-left',\n 'border-left-color',\n 'border-left-style',\n 'border-left-width',\n 'border-radius',\n 'border-right',\n 'border-right-color',\n 'border-right-style',\n 'border-right-width',\n 'border-spacing',\n 'border-start-end-radius',\n 'border-start-start-radius',\n 'border-style',\n 'border-top',\n 'border-top-color',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-top-style',\n 'border-top-width',\n 'border-width',\n 'bottom',\n 'box-align',\n 'box-decoration-break',\n 'box-direction',\n 'box-flex',\n 'box-flex-group',\n 'box-lines',\n 'box-ordinal-group',\n 'box-orient',\n 'box-pack',\n 'box-shadow',\n 'box-sizing',\n 'break-after',\n 'break-before',\n 'break-inside',\n 'caption-side',\n 'caret-color',\n 'clear',\n 'clip',\n 'clip-path',\n 'clip-rule',\n 'color',\n 'color-interpolation',\n 'color-interpolation-filters',\n 'color-profile',\n 'color-rendering',\n 'color-scheme',\n 'column-count',\n 'column-fill',\n 'column-gap',\n 'column-rule',\n 'column-rule-color',\n 'column-rule-style',\n 'column-rule-width',\n 'column-span',\n 'column-width',\n 'columns',\n 'contain',\n 'contain-intrinsic-block-size',\n 'contain-intrinsic-height',\n 'contain-intrinsic-inline-size',\n 'contain-intrinsic-size',\n 'contain-intrinsic-width',\n 'container',\n 'container-name',\n 'container-type',\n 'content',\n 'content-visibility',\n 'counter-increment',\n 'counter-reset',\n 'counter-set',\n 'cue',\n 'cue-after',\n 'cue-before',\n 'cursor',\n 'cx',\n 'cy',\n 'direction',\n 'display',\n 'dominant-baseline',\n 'empty-cells',\n 'enable-background',\n 'field-sizing',\n 'fill',\n 'fill-opacity',\n 'fill-rule',\n 'filter',\n 'flex',\n 'flex-basis',\n 'flex-direction',\n 'flex-flow',\n 'flex-grow',\n 'flex-shrink',\n 'flex-wrap',\n 'float',\n 'flood-color',\n 'flood-opacity',\n 'flow',\n 'font',\n 'font-display',\n 'font-family',\n 'font-feature-settings',\n 'font-kerning',\n 'font-language-override',\n 'font-optical-sizing',\n 'font-palette',\n 'font-size',\n 'font-size-adjust',\n 'font-smooth',\n 'font-smoothing',\n 'font-stretch',\n 'font-style',\n 'font-synthesis',\n 'font-synthesis-position',\n 'font-synthesis-small-caps',\n 'font-synthesis-style',\n 'font-synthesis-weight',\n 'font-variant',\n 'font-variant-alternates',\n 'font-variant-caps',\n 'font-variant-east-asian',\n 'font-variant-emoji',\n 'font-variant-ligatures',\n 'font-variant-numeric',\n 'font-variant-position',\n 'font-variation-settings',\n 'font-weight',\n 'forced-color-adjust',\n 'gap',\n 'glyph-orientation-horizontal',\n 'glyph-orientation-vertical',\n 'grid',\n 'grid-area',\n 'grid-auto-columns',\n 'grid-auto-flow',\n 'grid-auto-rows',\n 'grid-column',\n 'grid-column-end',\n 'grid-column-start',\n 'grid-gap',\n 'grid-row',\n 'grid-row-end',\n 'grid-row-start',\n 'grid-template',\n 'grid-template-areas',\n 'grid-template-columns',\n 'grid-template-rows',\n 'hanging-punctuation',\n 'height',\n 'hyphenate-character',\n 'hyphenate-limit-chars',\n 'hyphens',\n 'icon',\n 'image-orientation',\n 'image-rendering',\n 'image-resolution',\n 'ime-mode',\n 'initial-letter',\n 'initial-letter-align',\n 'inline-size',\n 'inset',\n 'inset-area',\n 'inset-block',\n 'inset-block-end',\n 'inset-block-start',\n 'inset-inline',\n 'inset-inline-end',\n 'inset-inline-start',\n 'isolation',\n 'justify-content',\n 'justify-items',\n 'justify-self',\n 'kerning',\n 'left',\n 'letter-spacing',\n 'lighting-color',\n 'line-break',\n 'line-height',\n 'line-height-step',\n 'list-style',\n 'list-style-image',\n 'list-style-position',\n 'list-style-type',\n 'margin',\n 'margin-block',\n 'margin-block-end',\n 'margin-block-start',\n 'margin-bottom',\n 'margin-inline',\n 'margin-inline-end',\n 'margin-inline-start',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'margin-trim',\n 'marker',\n 'marker-end',\n 'marker-mid',\n 'marker-start',\n 'marks',\n 'mask',\n 'mask-border',\n 'mask-border-mode',\n 'mask-border-outset',\n 'mask-border-repeat',\n 'mask-border-slice',\n 'mask-border-source',\n 'mask-border-width',\n 'mask-clip',\n 'mask-composite',\n 'mask-image',\n 'mask-mode',\n 'mask-origin',\n 'mask-position',\n 'mask-repeat',\n 'mask-size',\n 'mask-type',\n 'masonry-auto-flow',\n 'math-depth',\n 'math-shift',\n 'math-style',\n 'max-block-size',\n 'max-height',\n 'max-inline-size',\n 'max-width',\n 'min-block-size',\n 'min-height',\n 'min-inline-size',\n 'min-width',\n 'mix-blend-mode',\n 'nav-down',\n 'nav-index',\n 'nav-left',\n 'nav-right',\n 'nav-up',\n 'none',\n 'normal',\n 'object-fit',\n 'object-position',\n 'offset',\n 'offset-anchor',\n 'offset-distance',\n 'offset-path',\n 'offset-position',\n 'offset-rotate',\n 'opacity',\n 'order',\n 'orphans',\n 'outline',\n 'outline-color',\n 'outline-offset',\n 'outline-style',\n 'outline-width',\n 'overflow',\n 'overflow-anchor',\n 'overflow-block',\n 'overflow-clip-margin',\n 'overflow-inline',\n 'overflow-wrap',\n 'overflow-x',\n 'overflow-y',\n 'overlay',\n 'overscroll-behavior',\n 'overscroll-behavior-block',\n 'overscroll-behavior-inline',\n 'overscroll-behavior-x',\n 'overscroll-behavior-y',\n 'padding',\n 'padding-block',\n 'padding-block-end',\n 'padding-block-start',\n 'padding-bottom',\n 'padding-inline',\n 'padding-inline-end',\n 'padding-inline-start',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'page',\n 'page-break-after',\n 'page-break-before',\n 'page-break-inside',\n 'paint-order',\n 'pause',\n 'pause-after',\n 'pause-before',\n 'perspective',\n 'perspective-origin',\n 'place-content',\n 'place-items',\n 'place-self',\n 'pointer-events',\n 'position',\n 'position-anchor',\n 'position-visibility',\n 'print-color-adjust',\n 'quotes',\n 'r',\n 'resize',\n 'rest',\n 'rest-after',\n 'rest-before',\n 'right',\n 'rotate',\n 'row-gap',\n 'ruby-align',\n 'ruby-position',\n 'scale',\n 'scroll-behavior',\n 'scroll-margin',\n 'scroll-margin-block',\n 'scroll-margin-block-end',\n 'scroll-margin-block-start',\n 'scroll-margin-bottom',\n 'scroll-margin-inline',\n 'scroll-margin-inline-end',\n 'scroll-margin-inline-start',\n 'scroll-margin-left',\n 'scroll-margin-right',\n 'scroll-margin-top',\n 'scroll-padding',\n 'scroll-padding-block',\n 'scroll-padding-block-end',\n 'scroll-padding-block-start',\n 'scroll-padding-bottom',\n 'scroll-padding-inline',\n 'scroll-padding-inline-end',\n 'scroll-padding-inline-start',\n 'scroll-padding-left',\n 'scroll-padding-right',\n 'scroll-padding-top',\n 'scroll-snap-align',\n 'scroll-snap-stop',\n 'scroll-snap-type',\n 'scroll-timeline',\n 'scroll-timeline-axis',\n 'scroll-timeline-name',\n 'scrollbar-color',\n 'scrollbar-gutter',\n 'scrollbar-width',\n 'shape-image-threshold',\n 'shape-margin',\n 'shape-outside',\n 'shape-rendering',\n 'speak',\n 'speak-as',\n 'src', // @font-face\n 'stop-color',\n 'stop-opacity',\n 'stroke',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-linecap',\n 'stroke-linejoin',\n 'stroke-miterlimit',\n 'stroke-opacity',\n 'stroke-width',\n 'tab-size',\n 'table-layout',\n 'text-align',\n 'text-align-all',\n 'text-align-last',\n 'text-anchor',\n 'text-combine-upright',\n 'text-decoration',\n 'text-decoration-color',\n 'text-decoration-line',\n 'text-decoration-skip',\n 'text-decoration-skip-ink',\n 'text-decoration-style',\n 'text-decoration-thickness',\n 'text-emphasis',\n 'text-emphasis-color',\n 'text-emphasis-position',\n 'text-emphasis-style',\n 'text-indent',\n 'text-justify',\n 'text-orientation',\n 'text-overflow',\n 'text-rendering',\n 'text-shadow',\n 'text-size-adjust',\n 'text-transform',\n 'text-underline-offset',\n 'text-underline-position',\n 'text-wrap',\n 'text-wrap-mode',\n 'text-wrap-style',\n 'timeline-scope',\n 'top',\n 'touch-action',\n 'transform',\n 'transform-box',\n 'transform-origin',\n 'transform-style',\n 'transition',\n 'transition-behavior',\n 'transition-delay',\n 'transition-duration',\n 'transition-property',\n 'transition-timing-function',\n 'translate',\n 'unicode-bidi',\n 'user-modify',\n 'user-select',\n 'vector-effect',\n 'vertical-align',\n 'view-timeline',\n 'view-timeline-axis',\n 'view-timeline-inset',\n 'view-timeline-name',\n 'view-transition-name',\n 'visibility',\n 'voice-balance',\n 'voice-duration',\n 'voice-family',\n 'voice-pitch',\n 'voice-range',\n 'voice-rate',\n 'voice-stress',\n 'voice-volume',\n 'white-space',\n 'white-space-collapse',\n 'widows',\n 'width',\n 'will-change',\n 'word-break',\n 'word-spacing',\n 'word-wrap',\n 'writing-mode',\n 'x',\n 'y',\n 'z-index',\n 'zoom'\n].sort().reverse();\n\n/*\nLanguage: CSS\nCategory: common, css, web\nWebsite: https://developer.mozilla.org/en-US/docs/Web/CSS\n*/\n\n\n/** @type LanguageFn */\nfunction css(hljs) {\n const regex = hljs.regex;\n const modes = MODES(hljs);\n const VENDOR_PREFIX = { begin: /-(webkit|moz|ms|o)-(?=[a-z])/ };\n const AT_MODIFIERS = \"and or not only\";\n const AT_PROPERTY_RE = /@-?\\w[\\w]*(-\\w+)*/; // @-webkit-keyframes\n const IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';\n const STRINGS = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ];\n\n return {\n name: 'CSS',\n case_insensitive: true,\n illegal: /[=|'\\$]/,\n keywords: { keyframePosition: \"from to\" },\n classNameAliases: {\n // for visual continuity with `tag {}` and because we\n // don't have a great class for this?\n keyframePosition: \"selector-tag\" },\n contains: [\n modes.BLOCK_COMMENT,\n VENDOR_PREFIX,\n // to recognize keyframe 40% etc which are outside the scope of our\n // attribute value mode\n modes.CSS_NUMBER_MODE,\n {\n className: 'selector-id',\n begin: /#[A-Za-z0-9_-]+/,\n relevance: 0\n },\n {\n className: 'selector-class',\n begin: '\\\\.' + IDENT_RE,\n relevance: 0\n },\n modes.ATTRIBUTE_SELECTOR_MODE,\n {\n className: 'selector-pseudo',\n variants: [\n { begin: ':(' + PSEUDO_CLASSES.join('|') + ')' },\n { begin: ':(:)?(' + PSEUDO_ELEMENTS.join('|') + ')' }\n ]\n },\n // we may actually need this (12/2020)\n // { // pseudo-selector params\n // begin: /\\(/,\n // end: /\\)/,\n // contains: [ hljs.CSS_NUMBER_MODE ]\n // },\n modes.CSS_VARIABLE,\n {\n className: 'attribute',\n begin: '\\\\b(' + ATTRIBUTES.join('|') + ')\\\\b'\n },\n // attribute values\n {\n begin: /:/,\n end: /[;}{]/,\n contains: [\n modes.BLOCK_COMMENT,\n modes.HEXCOLOR,\n modes.IMPORTANT,\n modes.CSS_NUMBER_MODE,\n ...STRINGS,\n // needed to highlight these as strings and to avoid issues with\n // illegal characters that might be inside urls that would tigger the\n // languages illegal stack\n {\n begin: /(url|data-uri)\\(/,\n end: /\\)/,\n relevance: 0, // from keywords\n keywords: { built_in: \"url data-uri\" },\n contains: [\n ...STRINGS,\n {\n className: \"string\",\n // any character other than `)` as in `url()` will be the start\n // of a string, which ends with `)` (from the parent mode)\n begin: /[^)]/,\n endsWithParent: true,\n excludeEnd: true\n }\n ]\n },\n modes.FUNCTION_DISPATCH\n ]\n },\n {\n begin: regex.lookahead(/@/),\n end: '[{;]',\n relevance: 0,\n illegal: /:/, // break on Less variables @var: ...\n contains: [\n {\n className: 'keyword',\n begin: AT_PROPERTY_RE\n },\n {\n begin: /\\s/,\n endsWithParent: true,\n excludeEnd: true,\n relevance: 0,\n keywords: {\n $pattern: /[a-z-]+/,\n keyword: AT_MODIFIERS,\n attribute: MEDIA_FEATURES.join(\" \")\n },\n contains: [\n {\n begin: /[a-z-]+(?=:)/,\n className: \"attribute\"\n },\n ...STRINGS,\n modes.CSS_NUMBER_MODE\n ]\n }\n ]\n },\n {\n className: 'selector-tag',\n begin: '\\\\b(' + TAGS.join('|') + ')\\\\b'\n }\n ]\n };\n}\n\nexport { css as default };\n","/*\nLanguage: Diff\nDescription: Unified and context diff\nAuthor: Vasily Polovnyov \nWebsite: https://www.gnu.org/software/diffutils/\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction diff(hljs) {\n const regex = hljs.regex;\n return {\n name: 'Diff',\n aliases: [ 'patch' ],\n contains: [\n {\n className: 'meta',\n relevance: 10,\n match: regex.either(\n /^@@ +-\\d+,\\d+ +\\+\\d+,\\d+ +@@/,\n /^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$/,\n /^--- +\\d+,\\d+ +----$/\n )\n },\n {\n className: 'comment',\n variants: [\n {\n begin: regex.either(\n /Index: /,\n /^index/,\n /={3,}/,\n /^-{3}/,\n /^\\*{3} /,\n /^\\+{3}/,\n /^diff --git/\n ),\n end: /$/\n },\n { match: /^\\*{15}$/ }\n ]\n },\n {\n className: 'addition',\n begin: /^\\+/,\n end: /$/\n },\n {\n className: 'deletion',\n begin: /^-/,\n end: /$/\n },\n {\n className: 'addition',\n begin: /^!/,\n end: /$/\n }\n ]\n };\n}\n\nexport { diff as default };\n","/*\nLanguage: Go\nAuthor: Stephan Kountso aka StepLg \nContributors: Evgeny Stepanischev \nDescription: Google go language (golang). For info about language\nWebsite: http://golang.org/\nCategory: common, system\n*/\n\nfunction go(hljs) {\n const LITERALS = [\n \"true\",\n \"false\",\n \"iota\",\n \"nil\"\n ];\n const BUILT_INS = [\n \"append\",\n \"cap\",\n \"close\",\n \"complex\",\n \"copy\",\n \"imag\",\n \"len\",\n \"make\",\n \"new\",\n \"panic\",\n \"print\",\n \"println\",\n \"real\",\n \"recover\",\n \"delete\"\n ];\n const TYPES = [\n \"bool\",\n \"byte\",\n \"complex64\",\n \"complex128\",\n \"error\",\n \"float32\",\n \"float64\",\n \"int8\",\n \"int16\",\n \"int32\",\n \"int64\",\n \"string\",\n \"uint8\",\n \"uint16\",\n \"uint32\",\n \"uint64\",\n \"int\",\n \"uint\",\n \"uintptr\",\n \"rune\"\n ];\n const KWS = [\n \"break\",\n \"case\",\n \"chan\",\n \"const\",\n \"continue\",\n \"default\",\n \"defer\",\n \"else\",\n \"fallthrough\",\n \"for\",\n \"func\",\n \"go\",\n \"goto\",\n \"if\",\n \"import\",\n \"interface\",\n \"map\",\n \"package\",\n \"range\",\n \"return\",\n \"select\",\n \"struct\",\n \"switch\",\n \"type\",\n \"var\",\n ];\n const KEYWORDS = {\n keyword: KWS,\n type: TYPES,\n literal: LITERALS,\n built_in: BUILT_INS\n };\n return {\n name: 'Go',\n aliases: [ 'golang' ],\n keywords: KEYWORDS,\n illegal: '\nCategory: common, config\nWebsite: https://github.com/toml-lang/toml\n*/\n\nfunction ini(hljs) {\n const regex = hljs.regex;\n const NUMBERS = {\n className: 'number',\n relevance: 0,\n variants: [\n { begin: /([+-]+)?[\\d]+_[\\d_]+/ },\n { begin: hljs.NUMBER_RE }\n ]\n };\n const COMMENTS = hljs.COMMENT();\n COMMENTS.variants = [\n {\n begin: /;/,\n end: /$/\n },\n {\n begin: /#/,\n end: /$/\n }\n ];\n const VARIABLES = {\n className: 'variable',\n variants: [\n { begin: /\\$[\\w\\d\"][\\w\\d_]*/ },\n { begin: /\\$\\{(.*?)\\}/ }\n ]\n };\n const LITERALS = {\n className: 'literal',\n begin: /\\bon|off|true|false|yes|no\\b/\n };\n const STRINGS = {\n className: \"string\",\n contains: [ hljs.BACKSLASH_ESCAPE ],\n variants: [\n {\n begin: \"'''\",\n end: \"'''\",\n relevance: 10\n },\n {\n begin: '\"\"\"',\n end: '\"\"\"',\n relevance: 10\n },\n {\n begin: '\"',\n end: '\"'\n },\n {\n begin: \"'\",\n end: \"'\"\n }\n ]\n };\n const ARRAY = {\n begin: /\\[/,\n end: /\\]/,\n contains: [\n COMMENTS,\n LITERALS,\n VARIABLES,\n STRINGS,\n NUMBERS,\n 'self'\n ],\n relevance: 0\n };\n\n const BARE_KEY = /[A-Za-z0-9_-]+/;\n const QUOTED_KEY_DOUBLE_QUOTE = /\"(\\\\\"|[^\"])*\"/;\n const QUOTED_KEY_SINGLE_QUOTE = /'[^']*'/;\n const ANY_KEY = regex.either(\n BARE_KEY, QUOTED_KEY_DOUBLE_QUOTE, QUOTED_KEY_SINGLE_QUOTE\n );\n const DOTTED_KEY = regex.concat(\n ANY_KEY, '(\\\\s*\\\\.\\\\s*', ANY_KEY, ')*',\n regex.lookahead(/\\s*=\\s*[^#\\s]/)\n );\n\n return {\n name: 'TOML, also INI',\n aliases: [ 'toml' ],\n case_insensitive: true,\n illegal: /\\S/,\n contains: [\n COMMENTS,\n {\n className: 'section',\n begin: /\\[+/,\n end: /\\]+/\n },\n {\n begin: DOTTED_KEY,\n className: 'attr',\n starts: {\n end: /$/,\n contains: [\n COMMENTS,\n ARRAY,\n LITERALS,\n VARIABLES,\n STRINGS,\n NUMBERS\n ]\n }\n }\n ]\n };\n}\n\nexport { ini as default };\n","// https://docs.oracle.com/javase/specs/jls/se15/html/jls-3.html#jls-3.10\nvar decimalDigits = '[0-9](_*[0-9])*';\nvar frac = `\\\\.(${decimalDigits})`;\nvar hexDigits = '[0-9a-fA-F](_*[0-9a-fA-F])*';\nvar NUMERIC = {\n className: 'number',\n variants: [\n // DecimalFloatingPointLiteral\n // including ExponentPart\n { begin: `(\\\\b(${decimalDigits})((${frac})|\\\\.)?|(${frac}))` +\n `[eE][+-]?(${decimalDigits})[fFdD]?\\\\b` },\n // excluding ExponentPart\n { begin: `\\\\b(${decimalDigits})((${frac})[fFdD]?\\\\b|\\\\.([fFdD]\\\\b)?)` },\n { begin: `(${frac})[fFdD]?\\\\b` },\n { begin: `\\\\b(${decimalDigits})[fFdD]\\\\b` },\n\n // HexadecimalFloatingPointLiteral\n { begin: `\\\\b0[xX]((${hexDigits})\\\\.?|(${hexDigits})?\\\\.(${hexDigits}))` +\n `[pP][+-]?(${decimalDigits})[fFdD]?\\\\b` },\n\n // DecimalIntegerLiteral\n { begin: '\\\\b(0|[1-9](_*[0-9])*)[lL]?\\\\b' },\n\n // HexIntegerLiteral\n { begin: `\\\\b0[xX](${hexDigits})[lL]?\\\\b` },\n\n // OctalIntegerLiteral\n { begin: '\\\\b0(_*[0-7])*[lL]?\\\\b' },\n\n // BinaryIntegerLiteral\n { begin: '\\\\b0[bB][01](_*[01])*[lL]?\\\\b' },\n ],\n relevance: 0\n};\n\n/*\nLanguage: Java\nAuthor: Vsevolod Solovyov \nCategory: common, enterprise\nWebsite: https://www.java.com/\n*/\n\n\n/**\n * Allows recursive regex expressions to a given depth\n *\n * ie: recurRegex(\"(abc~~~)\", /~~~/g, 2) becomes:\n * (abc(abc(abc)))\n *\n * @param {string} re\n * @param {RegExp} substitution (should be a g mode regex)\n * @param {number} depth\n * @returns {string}``\n */\nfunction recurRegex(re, substitution, depth) {\n if (depth === -1) return \"\";\n\n return re.replace(substitution, _ => {\n return recurRegex(re, substitution, depth - 1);\n });\n}\n\n/** @type LanguageFn */\nfunction java(hljs) {\n const regex = hljs.regex;\n const JAVA_IDENT_RE = '[\\u00C0-\\u02B8a-zA-Z_$][\\u00C0-\\u02B8a-zA-Z_$0-9]*';\n const GENERIC_IDENT_RE = JAVA_IDENT_RE\n + recurRegex('(?:<' + JAVA_IDENT_RE + '~~~(?:\\\\s*,\\\\s*' + JAVA_IDENT_RE + '~~~)*>)?', /~~~/g, 2);\n const MAIN_KEYWORDS = [\n 'synchronized',\n 'abstract',\n 'private',\n 'var',\n 'static',\n 'if',\n 'const ',\n 'for',\n 'while',\n 'strictfp',\n 'finally',\n 'protected',\n 'import',\n 'native',\n 'final',\n 'void',\n 'enum',\n 'else',\n 'break',\n 'transient',\n 'catch',\n 'instanceof',\n 'volatile',\n 'case',\n 'assert',\n 'package',\n 'default',\n 'public',\n 'try',\n 'switch',\n 'continue',\n 'throws',\n 'protected',\n 'public',\n 'private',\n 'module',\n 'requires',\n 'exports',\n 'do',\n 'sealed',\n 'yield',\n 'permits',\n 'goto',\n 'when'\n ];\n\n const BUILT_INS = [\n 'super',\n 'this'\n ];\n\n const LITERALS = [\n 'false',\n 'true',\n 'null'\n ];\n\n const TYPES = [\n 'char',\n 'boolean',\n 'long',\n 'float',\n 'int',\n 'byte',\n 'short',\n 'double'\n ];\n\n const KEYWORDS = {\n keyword: MAIN_KEYWORDS,\n literal: LITERALS,\n type: TYPES,\n built_in: BUILT_INS\n };\n\n const ANNOTATION = {\n className: 'meta',\n begin: '@' + JAVA_IDENT_RE,\n contains: [\n {\n begin: /\\(/,\n end: /\\)/,\n contains: [ \"self\" ] // allow nested () inside our annotation\n }\n ]\n };\n const PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [ hljs.C_BLOCK_COMMENT_MODE ],\n endsParent: true\n };\n\n return {\n name: 'Java',\n aliases: [ 'jsp' ],\n keywords: KEYWORDS,\n illegal: /<\\/|#/,\n contains: [\n hljs.COMMENT(\n '/\\\\*\\\\*',\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n // eat up @'s in emails to prevent them to be recognized as doctags\n begin: /\\w+@/,\n relevance: 0\n },\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n }\n ]\n }\n ),\n // relevance boost\n {\n begin: /import java\\.[a-z]+\\./,\n keywords: \"import\",\n relevance: 2\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n {\n begin: /\"\"\"/,\n end: /\"\"\"/,\n className: \"string\",\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n {\n match: [\n /\\b(?:class|interface|enum|extends|implements|new)/,\n /\\s+/,\n JAVA_IDENT_RE\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n {\n // Exceptions for hyphenated keywords\n match: /non-sealed/,\n scope: \"keyword\"\n },\n {\n begin: [\n regex.concat(/(?!else)/, JAVA_IDENT_RE),\n /\\s+/,\n JAVA_IDENT_RE,\n /\\s+/,\n /=(?!=)/\n ],\n className: {\n 1: \"type\",\n 3: \"variable\",\n 5: \"operator\"\n }\n },\n {\n begin: [\n /record/,\n /\\s+/,\n JAVA_IDENT_RE\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.class\"\n },\n contains: [\n PARAMS,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n {\n // Expression keywords prevent 'keyword Name(...)' from being\n // recognized as a function definition\n beginKeywords: 'new throw return else',\n relevance: 0\n },\n {\n begin: [\n '(?:' + GENERIC_IDENT_RE + '\\\\s+)',\n hljs.UNDERSCORE_IDENT_RE,\n /\\s*(?=\\()/\n ],\n className: { 2: \"title.function\" },\n keywords: KEYWORDS,\n contains: [\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [\n ANNOTATION,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n NUMERIC,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n NUMERIC,\n ANNOTATION\n ]\n };\n}\n\nexport { java as default };\n","const IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\nconst KEYWORDS = [\n \"as\", // for exports\n \"in\",\n \"of\",\n \"if\",\n \"for\",\n \"while\",\n \"finally\",\n \"var\",\n \"new\",\n \"function\",\n \"do\",\n \"return\",\n \"void\",\n \"else\",\n \"break\",\n \"catch\",\n \"instanceof\",\n \"with\",\n \"throw\",\n \"case\",\n \"default\",\n \"try\",\n \"switch\",\n \"continue\",\n \"typeof\",\n \"delete\",\n \"let\",\n \"yield\",\n \"const\",\n \"class\",\n // JS handles these with a special rule\n // \"get\",\n // \"set\",\n \"debugger\",\n \"async\",\n \"await\",\n \"static\",\n \"import\",\n \"from\",\n \"export\",\n \"extends\",\n // It's reached stage 3, which is \"recommended for implementation\":\n \"using\"\n];\nconst LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"undefined\",\n \"NaN\",\n \"Infinity\"\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\nconst TYPES = [\n // Fundamental objects\n \"Object\",\n \"Function\",\n \"Boolean\",\n \"Symbol\",\n // numbers and dates\n \"Math\",\n \"Date\",\n \"Number\",\n \"BigInt\",\n // text\n \"String\",\n \"RegExp\",\n // Indexed collections\n \"Array\",\n \"Float32Array\",\n \"Float64Array\",\n \"Int8Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"Int16Array\",\n \"Int32Array\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n // Keyed collections\n \"Set\",\n \"Map\",\n \"WeakSet\",\n \"WeakMap\",\n // Structured data\n \"ArrayBuffer\",\n \"SharedArrayBuffer\",\n \"Atomics\",\n \"DataView\",\n \"JSON\",\n // Control abstraction objects\n \"Promise\",\n \"Generator\",\n \"GeneratorFunction\",\n \"AsyncFunction\",\n // Reflection\n \"Reflect\",\n \"Proxy\",\n // Internationalization\n \"Intl\",\n // WebAssembly\n \"WebAssembly\"\n];\n\nconst ERROR_TYPES = [\n \"Error\",\n \"EvalError\",\n \"InternalError\",\n \"RangeError\",\n \"ReferenceError\",\n \"SyntaxError\",\n \"TypeError\",\n \"URIError\"\n];\n\nconst BUILT_IN_GLOBALS = [\n \"setInterval\",\n \"setTimeout\",\n \"clearInterval\",\n \"clearTimeout\",\n\n \"require\",\n \"exports\",\n\n \"eval\",\n \"isFinite\",\n \"isNaN\",\n \"parseFloat\",\n \"parseInt\",\n \"decodeURI\",\n \"decodeURIComponent\",\n \"encodeURI\",\n \"encodeURIComponent\",\n \"escape\",\n \"unescape\"\n];\n\nconst BUILT_IN_VARIABLES = [\n \"arguments\",\n \"this\",\n \"super\",\n \"console\",\n \"window\",\n \"document\",\n \"localStorage\",\n \"sessionStorage\",\n \"module\",\n \"global\" // Node.js\n];\n\nconst BUILT_INS = [].concat(\n BUILT_IN_GLOBALS,\n TYPES,\n ERROR_TYPES\n);\n\n/*\nLanguage: JavaScript\nDescription: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions.\nCategory: common, scripting, web\nWebsite: https://developer.mozilla.org/en-US/docs/Web/JavaScript\n*/\n\n\n/** @type LanguageFn */\nfunction javascript(hljs) {\n const regex = hljs.regex;\n /**\n * Takes a string like \" {\n const tag = \"',\n end: ''\n };\n // to avoid some special cases inside isTrulyOpeningTag\n const XML_SELF_CLOSING = /<[A-Za-z0-9\\\\._:-]+\\s*\\/>/;\n const XML_TAG = {\n begin: /<[A-Za-z0-9\\\\._:-]+/,\n end: /\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,\n /**\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\n isTrulyOpeningTag: (match, response) => {\n const afterMatchIndex = match[0].length + match.index;\n const nextChar = match.input[afterMatchIndex];\n if (\n // HTML should not include another raw `<` inside a tag\n // nested type?\n // `>`, etc.\n nextChar === \"<\" ||\n // the , gives away that this is not HTML\n // ``\n nextChar === \",\"\n ) {\n response.ignoreMatch();\n return;\n }\n\n // ``\n // Quite possibly a tag, lets look for a matching closing tag...\n if (nextChar === \">\") {\n // if we cannot find a matching closing tag, then we\n // will ignore it\n if (!hasClosingTag(match, { after: afterMatchIndex })) {\n response.ignoreMatch();\n }\n }\n\n // `` (self-closing)\n // handled by simpleSelfClosing rule\n\n let m;\n const afterMatch = match.input.substring(afterMatchIndex);\n\n // some more template typing stuff\n // (key?: string) => Modify<\n if ((m = afterMatch.match(/^\\s*=/))) {\n response.ignoreMatch();\n return;\n }\n\n // ``\n // technically this could be HTML, but it smells like a type\n // NOTE: This is ugh, but added specifically for https://github.com/highlightjs/highlight.js/issues/3276\n if ((m = afterMatch.match(/^\\s+extends\\s+/))) {\n if (m.index === 0) {\n response.ignoreMatch();\n // eslint-disable-next-line no-useless-return\n return;\n }\n }\n }\n };\n const KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_INS,\n \"variable.language\": BUILT_IN_VARIABLES\n };\n\n // https://tc39.es/ecma262/#sec-literals-numeric-literals\n const decimalDigits = '[0-9](_?[0-9])*';\n const frac = `\\\\.(${decimalDigits})`;\n // DecimalIntegerLiteral, including Annex B NonOctalDecimalIntegerLiteral\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;\n const NUMBER = {\n className: 'number',\n variants: [\n // DecimalLiteral\n { begin: `(\\\\b(${decimalInteger})((${frac})|\\\\.)?|(${frac}))` +\n `[eE][+-]?(${decimalDigits})\\\\b` },\n { begin: `\\\\b(${decimalInteger})\\\\b((${frac})\\\\b|\\\\.)?|(${frac})\\\\b` },\n\n // DecimalBigIntegerLiteral\n { begin: `\\\\b(0|[1-9](_?[0-9])*)n\\\\b` },\n\n // NonDecimalIntegerLiteral\n { begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\\\b\" },\n { begin: \"\\\\b0[bB][0-1](_?[0-1])*n?\\\\b\" },\n { begin: \"\\\\b0[oO][0-7](_?[0-7])*n?\\\\b\" },\n\n // LegacyOctalIntegerLiteral (does not include underscore separators)\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n { begin: \"\\\\b0[0-7]+n?\\\\b\" },\n ],\n relevance: 0\n };\n\n const SUBST = {\n className: 'subst',\n begin: '\\\\$\\\\{',\n end: '\\\\}',\n keywords: KEYWORDS$1,\n contains: [] // defined later\n };\n const HTML_TEMPLATE = {\n begin: '\\.?html`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'xml'\n }\n };\n const CSS_TEMPLATE = {\n begin: '\\.?css`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'css'\n }\n };\n const GRAPHQL_TEMPLATE = {\n begin: '\\.?gql`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'graphql'\n }\n };\n const TEMPLATE_STRING = {\n className: 'string',\n begin: '`',\n end: '`',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n const JSDOC_COMMENT = hljs.COMMENT(\n /\\/\\*\\*(?!\\/)/,\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n begin: '(?=@[A-Za-z]+)',\n relevance: 0,\n contains: [\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n },\n {\n className: 'type',\n begin: '\\\\{',\n end: '\\\\}',\n excludeEnd: true,\n excludeBegin: true,\n relevance: 0\n },\n {\n className: 'variable',\n begin: IDENT_RE$1 + '(?=\\\\s*(-)|$)',\n endsParent: true,\n relevance: 0\n },\n // eat spaces (not newlines) so we can find\n // types or variables\n {\n begin: /(?=[^\\n])\\s/,\n relevance: 0\n }\n ]\n }\n ]\n }\n );\n const COMMENT = {\n className: \"comment\",\n variants: [\n JSDOC_COMMENT,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE\n ]\n };\n const SUBST_INTERNALS = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n GRAPHQL_TEMPLATE,\n TEMPLATE_STRING,\n // Skip numbers when they are part of a variable name\n { match: /\\$\\d+/ },\n NUMBER,\n // This is intentional:\n // See https://github.com/highlightjs/highlight.js/issues/3288\n // hljs.REGEXP_MODE\n ];\n SUBST.contains = SUBST_INTERNALS\n .concat({\n // we need to pair up {} inside our subst to prevent\n // it from ending too early by matching another }\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS$1,\n contains: [\n \"self\"\n ].concat(SUBST_INTERNALS)\n });\n const SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains);\n const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([\n // eat recursive parens in sub expressions\n {\n begin: /(\\s*)\\(/,\n end: /\\)/,\n keywords: KEYWORDS$1,\n contains: [\"self\"].concat(SUBST_AND_COMMENTS)\n }\n ]);\n const PARAMS = {\n className: 'params',\n // convert this to negative lookbehind in v12\n begin: /(\\s*)\\(/, // to match the parms with\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n };\n\n // ES6 classes\n const CLASS_OR_EXTENDS = {\n variants: [\n // class Car extends vehicle\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1,\n /\\s+/,\n /extends/,\n /\\s+/,\n regex.concat(IDENT_RE$1, \"(\", regex.concat(/\\./, IDENT_RE$1), \")*\")\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\",\n 5: \"keyword\",\n 7: \"title.class.inherited\"\n }\n },\n // class Car\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n\n ]\n };\n\n const CLASS_REFERENCE = {\n relevance: 0,\n match:\n regex.either(\n // Hard coded exceptions\n /\\bJSON/,\n // Float32Array, OutT\n /\\b[A-Z][a-z]+([A-Z][a-z]*|\\d)*/,\n // CSSFactory, CSSFactoryT\n /\\b[A-Z]{2,}([A-Z][a-z]+|\\d)+([A-Z][a-z]*)*/,\n // FPs, FPsT\n /\\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\\d)*([A-Z][a-z]*)*/,\n // P\n // single letters are not highlighted\n // BLAH\n // this will be flagged as a UPPER_CASE_CONSTANT instead\n ),\n className: \"title.class\",\n keywords: {\n _: [\n // se we still get relevance credit for JS library classes\n ...TYPES,\n ...ERROR_TYPES\n ]\n }\n };\n\n const USE_STRICT = {\n label: \"use_strict\",\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use (strict|asm)['\"]/\n };\n\n const FUNCTION_DEFINITION = {\n variants: [\n {\n match: [\n /function/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\s*\\()/\n ]\n },\n // anonymous function\n {\n match: [\n /function/,\n /\\s*(?=\\()/\n ]\n }\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n label: \"func.def\",\n contains: [ PARAMS ],\n illegal: /%/\n };\n\n const UPPER_CASE_CONSTANT = {\n relevance: 0,\n match: /\\b[A-Z][A-Z_0-9]+\\b/,\n className: \"variable.constant\"\n };\n\n function noneOf(list) {\n return regex.concat(\"(?!\", list.join(\"|\"), \")\");\n }\n\n const FUNCTION_CALL = {\n match: regex.concat(\n /\\b/,\n noneOf([\n ...BUILT_IN_GLOBALS,\n \"super\",\n \"import\"\n ].map(x => `${x}\\\\s*\\\\(`)),\n IDENT_RE$1, regex.lookahead(/\\s*\\(/)),\n className: \"title.function\",\n relevance: 0\n };\n\n const PROPERTY_ACCESS = {\n begin: regex.concat(/\\./, regex.lookahead(\n regex.concat(IDENT_RE$1, /(?![0-9A-Za-z$_(])/)\n )),\n end: IDENT_RE$1,\n excludeBegin: true,\n keywords: \"prototype\",\n className: \"property\",\n relevance: 0\n };\n\n const GETTER_OR_SETTER = {\n match: [\n /get|set/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\()/\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n { // eat to avoid empty params\n begin: /\\(\\)/\n },\n PARAMS\n ]\n };\n\n const FUNC_LEAD_IN_RE = '(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\\\s*=>';\n\n const FUNCTION_VARIABLE = {\n match: [\n /const|var|let/, /\\s+/,\n IDENT_RE$1, /\\s*/,\n /=\\s*/,\n /(async\\s*)?/, // async is optional\n regex.lookahead(FUNC_LEAD_IN_RE)\n ],\n keywords: \"async\",\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n PARAMS\n ]\n };\n\n return {\n name: 'JavaScript',\n aliases: ['js', 'jsx', 'mjs', 'cjs'],\n keywords: KEYWORDS$1,\n // this will be extended by TypeScript\n exports: { PARAMS_CONTAINS, CLASS_REFERENCE },\n illegal: /#(?![$_A-z])/,\n contains: [\n hljs.SHEBANG({\n label: \"shebang\",\n binary: \"node\",\n relevance: 5\n }),\n USE_STRICT,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n GRAPHQL_TEMPLATE,\n TEMPLATE_STRING,\n COMMENT,\n // Skip numbers when they are part of a variable name\n { match: /\\$\\d+/ },\n NUMBER,\n CLASS_REFERENCE,\n {\n scope: 'attr',\n match: IDENT_RE$1 + regex.lookahead(':'),\n relevance: 0\n },\n FUNCTION_VARIABLE,\n { // \"value\" container\n begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(case|return|throw)\\\\b)\\\\s*',\n keywords: 'return throw case',\n relevance: 0,\n contains: [\n COMMENT,\n hljs.REGEXP_MODE,\n {\n className: 'function',\n // we have to count the parens to make sure we actually have the\n // correct bounding ( ) before the =>. There could be any number of\n // sub-expressions inside also surrounded by parens.\n begin: FUNC_LEAD_IN_RE,\n returnBegin: true,\n end: '\\\\s*=>',\n contains: [\n {\n className: 'params',\n variants: [\n {\n begin: hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n },\n {\n className: null,\n begin: /\\(\\s*\\)/,\n skip: true\n },\n {\n begin: /(\\s*)\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n }\n ]\n }\n ]\n },\n { // could be a comma delimited list of params to a function call\n begin: /,/,\n relevance: 0\n },\n {\n match: /\\s+/,\n relevance: 0\n },\n { // JSX\n variants: [\n { begin: FRAGMENT.begin, end: FRAGMENT.end },\n { match: XML_SELF_CLOSING },\n {\n begin: XML_TAG.begin,\n // we carefully check the opening tag to see if it truly\n // is a tag and not a false positive\n 'on:begin': XML_TAG.isTrulyOpeningTag,\n end: XML_TAG.end\n }\n ],\n subLanguage: 'xml',\n contains: [\n {\n begin: XML_TAG.begin,\n end: XML_TAG.end,\n skip: true,\n contains: ['self']\n }\n ]\n }\n ],\n },\n FUNCTION_DEFINITION,\n {\n // prevent this from getting swallowed up by function\n // since they appear \"function like\"\n beginKeywords: \"while if switch catch for\"\n },\n {\n // we have to count the parens to make sure we actually have the correct\n // bounding ( ). There could be any number of sub-expressions inside\n // also surrounded by parens.\n begin: '\\\\b(?!function)' + hljs.UNDERSCORE_IDENT_RE +\n '\\\\(' + // first parens\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)\\\\s*\\\\{', // end parens\n returnBegin:true,\n label: \"func.def\",\n contains: [\n PARAMS,\n hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1, className: \"title.function\" })\n ]\n },\n // catch ... so it won't trigger the property rule below\n {\n match: /\\.\\.\\./,\n relevance: 0\n },\n PROPERTY_ACCESS,\n // hack: prevents detection of keywords in some circumstances\n // .keyword()\n // $keyword = x\n {\n match: '\\\\$' + IDENT_RE$1,\n relevance: 0\n },\n {\n match: [ /\\bconstructor(?=\\s*\\()/ ],\n className: { 1: \"title.function\" },\n contains: [ PARAMS ]\n },\n FUNCTION_CALL,\n UPPER_CASE_CONSTANT,\n CLASS_OR_EXTENDS,\n GETTER_OR_SETTER,\n {\n match: /\\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`\n }\n ]\n };\n}\n\nexport { javascript as default };\n","/*\nLanguage: JSON\nDescription: JSON (JavaScript Object Notation) is a lightweight data-interchange format.\nAuthor: Ivan Sagalaev \nWebsite: http://www.json.org\nCategory: common, protocols, web\n*/\n\nfunction json(hljs) {\n const ATTRIBUTE = {\n className: 'attr',\n begin: /\"(\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n relevance: 1.01\n };\n const PUNCTUATION = {\n match: /[{}[\\],:]/,\n className: \"punctuation\",\n relevance: 0\n };\n const LITERALS = [\n \"true\",\n \"false\",\n \"null\"\n ];\n // NOTE: normally we would rely on `keywords` for this but using a mode here allows us\n // - to use the very tight `illegal: \\S` rule later to flag any other character\n // - as illegal indicating that despite looking like JSON we do not truly have\n // - JSON and thus improve false-positively greatly since JSON will try and claim\n // - all sorts of JSON looking stuff\n const LITERALS_MODE = {\n scope: \"literal\",\n beginKeywords: LITERALS.join(\" \"),\n };\n\n return {\n name: 'JSON',\n aliases: ['jsonc'],\n keywords:{\n literal: LITERALS,\n },\n contains: [\n ATTRIBUTE,\n PUNCTUATION,\n hljs.QUOTE_STRING_MODE,\n LITERALS_MODE,\n hljs.C_NUMBER_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ],\n illegal: '\\\\S'\n };\n}\n\nexport { json as default };\n","// https://docs.oracle.com/javase/specs/jls/se15/html/jls-3.html#jls-3.10\nvar decimalDigits = '[0-9](_*[0-9])*';\nvar frac = `\\\\.(${decimalDigits})`;\nvar hexDigits = '[0-9a-fA-F](_*[0-9a-fA-F])*';\nvar NUMERIC = {\n className: 'number',\n variants: [\n // DecimalFloatingPointLiteral\n // including ExponentPart\n { begin: `(\\\\b(${decimalDigits})((${frac})|\\\\.)?|(${frac}))` +\n `[eE][+-]?(${decimalDigits})[fFdD]?\\\\b` },\n // excluding ExponentPart\n { begin: `\\\\b(${decimalDigits})((${frac})[fFdD]?\\\\b|\\\\.([fFdD]\\\\b)?)` },\n { begin: `(${frac})[fFdD]?\\\\b` },\n { begin: `\\\\b(${decimalDigits})[fFdD]\\\\b` },\n\n // HexadecimalFloatingPointLiteral\n { begin: `\\\\b0[xX]((${hexDigits})\\\\.?|(${hexDigits})?\\\\.(${hexDigits}))` +\n `[pP][+-]?(${decimalDigits})[fFdD]?\\\\b` },\n\n // DecimalIntegerLiteral\n { begin: '\\\\b(0|[1-9](_*[0-9])*)[lL]?\\\\b' },\n\n // HexIntegerLiteral\n { begin: `\\\\b0[xX](${hexDigits})[lL]?\\\\b` },\n\n // OctalIntegerLiteral\n { begin: '\\\\b0(_*[0-7])*[lL]?\\\\b' },\n\n // BinaryIntegerLiteral\n { begin: '\\\\b0[bB][01](_*[01])*[lL]?\\\\b' },\n ],\n relevance: 0\n};\n\n/*\n Language: Kotlin\n Description: Kotlin is an OSS statically typed programming language that targets the JVM, Android, JavaScript and Native.\n Author: Sergey Mashkov \n Website: https://kotlinlang.org\n Category: common\n */\n\n\nfunction kotlin(hljs) {\n const KEYWORDS = {\n keyword:\n 'abstract as val var vararg get set class object open private protected public noinline '\n + 'crossinline dynamic final enum if else do while for when throw try catch finally '\n + 'import package is in fun override companion reified inline lateinit init '\n + 'interface annotation data sealed internal infix operator out by constructor super '\n + 'tailrec where const inner suspend typealias external expect actual',\n built_in:\n 'Byte Short Char Int Long Boolean Float Double Void Unit Nothing',\n literal:\n 'true false null'\n };\n const KEYWORDS_WITH_LABEL = {\n className: 'keyword',\n begin: /\\b(break|continue|return|this)\\b/,\n starts: { contains: [\n {\n className: 'symbol',\n begin: /@\\w+/\n }\n ] }\n };\n const LABEL = {\n className: 'symbol',\n begin: hljs.UNDERSCORE_IDENT_RE + '@'\n };\n\n // for string templates\n const SUBST = {\n className: 'subst',\n begin: /\\$\\{/,\n end: /\\}/,\n contains: [ hljs.C_NUMBER_MODE ]\n };\n const VARIABLE = {\n className: 'variable',\n begin: '\\\\$' + hljs.UNDERSCORE_IDENT_RE\n };\n const STRING = {\n className: 'string',\n variants: [\n {\n begin: '\"\"\"',\n end: '\"\"\"(?=[^\"])',\n contains: [\n VARIABLE,\n SUBST\n ]\n },\n // Can't use built-in modes easily, as we want to use STRING in the meta\n // context as 'meta-string' and there's no syntax to remove explicitly set\n // classNames in built-in modes.\n {\n begin: '\\'',\n end: '\\'',\n illegal: /\\n/,\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '\"',\n end: '\"',\n illegal: /\\n/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n VARIABLE,\n SUBST\n ]\n }\n ]\n };\n SUBST.contains.push(STRING);\n\n const ANNOTATION_USE_SITE = {\n className: 'meta',\n begin: '@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\\\s*:(?:\\\\s*' + hljs.UNDERSCORE_IDENT_RE + ')?'\n };\n const ANNOTATION = {\n className: 'meta',\n begin: '@' + hljs.UNDERSCORE_IDENT_RE,\n contains: [\n {\n begin: /\\(/,\n end: /\\)/,\n contains: [\n hljs.inherit(STRING, { className: 'string' }),\n \"self\"\n ]\n }\n ]\n };\n\n // https://kotlinlang.org/docs/reference/whatsnew11.html#underscores-in-numeric-literals\n // According to the doc above, the number mode of kotlin is the same as java 8,\n // so the code below is copied from java.js\n const KOTLIN_NUMBER_MODE = NUMERIC;\n const KOTLIN_NESTED_COMMENT = hljs.COMMENT(\n '/\\\\*', '\\\\*/',\n { contains: [ hljs.C_BLOCK_COMMENT_MODE ] }\n );\n const KOTLIN_PAREN_TYPE = { variants: [\n {\n className: 'type',\n begin: hljs.UNDERSCORE_IDENT_RE\n },\n {\n begin: /\\(/,\n end: /\\)/,\n contains: [] // defined later\n }\n ] };\n const KOTLIN_PAREN_TYPE2 = KOTLIN_PAREN_TYPE;\n KOTLIN_PAREN_TYPE2.variants[1].contains = [ KOTLIN_PAREN_TYPE ];\n KOTLIN_PAREN_TYPE.variants[1].contains = [ KOTLIN_PAREN_TYPE2 ];\n\n return {\n name: 'Kotlin',\n aliases: [\n 'kt',\n 'kts'\n ],\n keywords: KEYWORDS,\n contains: [\n hljs.COMMENT(\n '/\\\\*\\\\*',\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n }\n ]\n }\n ),\n hljs.C_LINE_COMMENT_MODE,\n KOTLIN_NESTED_COMMENT,\n KEYWORDS_WITH_LABEL,\n LABEL,\n ANNOTATION_USE_SITE,\n ANNOTATION,\n {\n className: 'function',\n beginKeywords: 'fun',\n end: '[(]|$',\n returnBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n relevance: 5,\n contains: [\n {\n begin: hljs.UNDERSCORE_IDENT_RE + '\\\\s*\\\\(',\n returnBegin: true,\n relevance: 0,\n contains: [ hljs.UNDERSCORE_TITLE_MODE ]\n },\n {\n className: 'type',\n begin: //,\n keywords: 'reified',\n relevance: 0\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n endsParent: true,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [\n {\n begin: /:/,\n end: /[=,\\/]/,\n endsWithParent: true,\n contains: [\n KOTLIN_PAREN_TYPE,\n hljs.C_LINE_COMMENT_MODE,\n KOTLIN_NESTED_COMMENT\n ],\n relevance: 0\n },\n hljs.C_LINE_COMMENT_MODE,\n KOTLIN_NESTED_COMMENT,\n ANNOTATION_USE_SITE,\n ANNOTATION,\n STRING,\n hljs.C_NUMBER_MODE\n ]\n },\n KOTLIN_NESTED_COMMENT\n ]\n },\n {\n begin: [\n /class|interface|trait/,\n /\\s+/,\n hljs.UNDERSCORE_IDENT_RE\n ],\n beginScope: {\n 3: \"title.class\"\n },\n keywords: 'class interface trait',\n end: /[:\\{(]|$/,\n excludeEnd: true,\n illegal: 'extends implements',\n contains: [\n { beginKeywords: 'public protected internal private constructor' },\n hljs.UNDERSCORE_TITLE_MODE,\n {\n className: 'type',\n begin: //,\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0\n },\n {\n className: 'type',\n begin: /[,:]\\s*/,\n end: /[<\\(,){\\s]|$/,\n excludeBegin: true,\n returnEnd: true\n },\n ANNOTATION_USE_SITE,\n ANNOTATION\n ]\n },\n STRING,\n {\n className: 'meta',\n begin: \"^#!/usr/bin/env\",\n end: '$',\n illegal: '\\n'\n },\n KOTLIN_NUMBER_MODE\n ]\n };\n}\n\nexport { kotlin as default };\n","const MODES = (hljs) => {\n return {\n IMPORTANT: {\n scope: 'meta',\n begin: '!important'\n },\n BLOCK_COMMENT: hljs.C_BLOCK_COMMENT_MODE,\n HEXCOLOR: {\n scope: 'number',\n begin: /#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\\b/\n },\n FUNCTION_DISPATCH: {\n className: \"built_in\",\n begin: /[\\w-]+(?=\\()/\n },\n ATTRIBUTE_SELECTOR_MODE: {\n scope: 'selector-attr',\n begin: /\\[/,\n end: /\\]/,\n illegal: '$',\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n },\n CSS_NUMBER_MODE: {\n scope: 'number',\n begin: hljs.NUMBER_RE + '(' +\n '%|em|ex|ch|rem' +\n '|vw|vh|vmin|vmax' +\n '|cm|mm|in|pt|pc|px' +\n '|deg|grad|rad|turn' +\n '|s|ms' +\n '|Hz|kHz' +\n '|dpi|dpcm|dppx' +\n ')?',\n relevance: 0\n },\n CSS_VARIABLE: {\n className: \"attr\",\n begin: /--[A-Za-z_][A-Za-z0-9_-]*/\n }\n };\n};\n\nconst HTML_TAGS = [\n 'a',\n 'abbr',\n 'address',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'blockquote',\n 'body',\n 'button',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'mark',\n 'menu',\n 'nav',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'picture',\n 'q',\n 'quote',\n 'samp',\n 'section',\n 'select',\n 'source',\n 'span',\n 'strong',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'ul',\n 'var',\n 'video'\n];\n\nconst SVG_TAGS = [\n 'defs',\n 'g',\n 'marker',\n 'mask',\n 'pattern',\n 'svg',\n 'switch',\n 'symbol',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feFlood',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMorphology',\n 'feOffset',\n 'feSpecularLighting',\n 'feTile',\n 'feTurbulence',\n 'linearGradient',\n 'radialGradient',\n 'stop',\n 'circle',\n 'ellipse',\n 'image',\n 'line',\n 'path',\n 'polygon',\n 'polyline',\n 'rect',\n 'text',\n 'use',\n 'textPath',\n 'tspan',\n 'foreignObject',\n 'clipPath'\n];\n\nconst TAGS = [\n ...HTML_TAGS,\n ...SVG_TAGS,\n];\n\n// Sorting, then reversing makes sure longer attributes/elements like\n// `font-weight` are matched fully instead of getting false positives on say `font`\n\nconst MEDIA_FEATURES = [\n 'any-hover',\n 'any-pointer',\n 'aspect-ratio',\n 'color',\n 'color-gamut',\n 'color-index',\n 'device-aspect-ratio',\n 'device-height',\n 'device-width',\n 'display-mode',\n 'forced-colors',\n 'grid',\n 'height',\n 'hover',\n 'inverted-colors',\n 'monochrome',\n 'orientation',\n 'overflow-block',\n 'overflow-inline',\n 'pointer',\n 'prefers-color-scheme',\n 'prefers-contrast',\n 'prefers-reduced-motion',\n 'prefers-reduced-transparency',\n 'resolution',\n 'scan',\n 'scripting',\n 'update',\n 'width',\n // TODO: find a better solution?\n 'min-width',\n 'max-width',\n 'min-height',\n 'max-height'\n].sort().reverse();\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes\nconst PSEUDO_CLASSES = [\n 'active',\n 'any-link',\n 'blank',\n 'checked',\n 'current',\n 'default',\n 'defined',\n 'dir', // dir()\n 'disabled',\n 'drop',\n 'empty',\n 'enabled',\n 'first',\n 'first-child',\n 'first-of-type',\n 'fullscreen',\n 'future',\n 'focus',\n 'focus-visible',\n 'focus-within',\n 'has', // has()\n 'host', // host or host()\n 'host-context', // host-context()\n 'hover',\n 'indeterminate',\n 'in-range',\n 'invalid',\n 'is', // is()\n 'lang', // lang()\n 'last-child',\n 'last-of-type',\n 'left',\n 'link',\n 'local-link',\n 'not', // not()\n 'nth-child', // nth-child()\n 'nth-col', // nth-col()\n 'nth-last-child', // nth-last-child()\n 'nth-last-col', // nth-last-col()\n 'nth-last-of-type', //nth-last-of-type()\n 'nth-of-type', //nth-of-type()\n 'only-child',\n 'only-of-type',\n 'optional',\n 'out-of-range',\n 'past',\n 'placeholder-shown',\n 'read-only',\n 'read-write',\n 'required',\n 'right',\n 'root',\n 'scope',\n 'target',\n 'target-within',\n 'user-invalid',\n 'valid',\n 'visited',\n 'where' // where()\n].sort().reverse();\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements\nconst PSEUDO_ELEMENTS = [\n 'after',\n 'backdrop',\n 'before',\n 'cue',\n 'cue-region',\n 'first-letter',\n 'first-line',\n 'grammar-error',\n 'marker',\n 'part',\n 'placeholder',\n 'selection',\n 'slotted',\n 'spelling-error'\n].sort().reverse();\n\nconst ATTRIBUTES = [\n 'accent-color',\n 'align-content',\n 'align-items',\n 'align-self',\n 'alignment-baseline',\n 'all',\n 'anchor-name',\n 'animation',\n 'animation-composition',\n 'animation-delay',\n 'animation-direction',\n 'animation-duration',\n 'animation-fill-mode',\n 'animation-iteration-count',\n 'animation-name',\n 'animation-play-state',\n 'animation-range',\n 'animation-range-end',\n 'animation-range-start',\n 'animation-timeline',\n 'animation-timing-function',\n 'appearance',\n 'aspect-ratio',\n 'backdrop-filter',\n 'backface-visibility',\n 'background',\n 'background-attachment',\n 'background-blend-mode',\n 'background-clip',\n 'background-color',\n 'background-image',\n 'background-origin',\n 'background-position',\n 'background-position-x',\n 'background-position-y',\n 'background-repeat',\n 'background-size',\n 'baseline-shift',\n 'block-size',\n 'border',\n 'border-block',\n 'border-block-color',\n 'border-block-end',\n 'border-block-end-color',\n 'border-block-end-style',\n 'border-block-end-width',\n 'border-block-start',\n 'border-block-start-color',\n 'border-block-start-style',\n 'border-block-start-width',\n 'border-block-style',\n 'border-block-width',\n 'border-bottom',\n 'border-bottom-color',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n 'border-bottom-style',\n 'border-bottom-width',\n 'border-collapse',\n 'border-color',\n 'border-end-end-radius',\n 'border-end-start-radius',\n 'border-image',\n 'border-image-outset',\n 'border-image-repeat',\n 'border-image-slice',\n 'border-image-source',\n 'border-image-width',\n 'border-inline',\n 'border-inline-color',\n 'border-inline-end',\n 'border-inline-end-color',\n 'border-inline-end-style',\n 'border-inline-end-width',\n 'border-inline-start',\n 'border-inline-start-color',\n 'border-inline-start-style',\n 'border-inline-start-width',\n 'border-inline-style',\n 'border-inline-width',\n 'border-left',\n 'border-left-color',\n 'border-left-style',\n 'border-left-width',\n 'border-radius',\n 'border-right',\n 'border-right-color',\n 'border-right-style',\n 'border-right-width',\n 'border-spacing',\n 'border-start-end-radius',\n 'border-start-start-radius',\n 'border-style',\n 'border-top',\n 'border-top-color',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-top-style',\n 'border-top-width',\n 'border-width',\n 'bottom',\n 'box-align',\n 'box-decoration-break',\n 'box-direction',\n 'box-flex',\n 'box-flex-group',\n 'box-lines',\n 'box-ordinal-group',\n 'box-orient',\n 'box-pack',\n 'box-shadow',\n 'box-sizing',\n 'break-after',\n 'break-before',\n 'break-inside',\n 'caption-side',\n 'caret-color',\n 'clear',\n 'clip',\n 'clip-path',\n 'clip-rule',\n 'color',\n 'color-interpolation',\n 'color-interpolation-filters',\n 'color-profile',\n 'color-rendering',\n 'color-scheme',\n 'column-count',\n 'column-fill',\n 'column-gap',\n 'column-rule',\n 'column-rule-color',\n 'column-rule-style',\n 'column-rule-width',\n 'column-span',\n 'column-width',\n 'columns',\n 'contain',\n 'contain-intrinsic-block-size',\n 'contain-intrinsic-height',\n 'contain-intrinsic-inline-size',\n 'contain-intrinsic-size',\n 'contain-intrinsic-width',\n 'container',\n 'container-name',\n 'container-type',\n 'content',\n 'content-visibility',\n 'counter-increment',\n 'counter-reset',\n 'counter-set',\n 'cue',\n 'cue-after',\n 'cue-before',\n 'cursor',\n 'cx',\n 'cy',\n 'direction',\n 'display',\n 'dominant-baseline',\n 'empty-cells',\n 'enable-background',\n 'field-sizing',\n 'fill',\n 'fill-opacity',\n 'fill-rule',\n 'filter',\n 'flex',\n 'flex-basis',\n 'flex-direction',\n 'flex-flow',\n 'flex-grow',\n 'flex-shrink',\n 'flex-wrap',\n 'float',\n 'flood-color',\n 'flood-opacity',\n 'flow',\n 'font',\n 'font-display',\n 'font-family',\n 'font-feature-settings',\n 'font-kerning',\n 'font-language-override',\n 'font-optical-sizing',\n 'font-palette',\n 'font-size',\n 'font-size-adjust',\n 'font-smooth',\n 'font-smoothing',\n 'font-stretch',\n 'font-style',\n 'font-synthesis',\n 'font-synthesis-position',\n 'font-synthesis-small-caps',\n 'font-synthesis-style',\n 'font-synthesis-weight',\n 'font-variant',\n 'font-variant-alternates',\n 'font-variant-caps',\n 'font-variant-east-asian',\n 'font-variant-emoji',\n 'font-variant-ligatures',\n 'font-variant-numeric',\n 'font-variant-position',\n 'font-variation-settings',\n 'font-weight',\n 'forced-color-adjust',\n 'gap',\n 'glyph-orientation-horizontal',\n 'glyph-orientation-vertical',\n 'grid',\n 'grid-area',\n 'grid-auto-columns',\n 'grid-auto-flow',\n 'grid-auto-rows',\n 'grid-column',\n 'grid-column-end',\n 'grid-column-start',\n 'grid-gap',\n 'grid-row',\n 'grid-row-end',\n 'grid-row-start',\n 'grid-template',\n 'grid-template-areas',\n 'grid-template-columns',\n 'grid-template-rows',\n 'hanging-punctuation',\n 'height',\n 'hyphenate-character',\n 'hyphenate-limit-chars',\n 'hyphens',\n 'icon',\n 'image-orientation',\n 'image-rendering',\n 'image-resolution',\n 'ime-mode',\n 'initial-letter',\n 'initial-letter-align',\n 'inline-size',\n 'inset',\n 'inset-area',\n 'inset-block',\n 'inset-block-end',\n 'inset-block-start',\n 'inset-inline',\n 'inset-inline-end',\n 'inset-inline-start',\n 'isolation',\n 'justify-content',\n 'justify-items',\n 'justify-self',\n 'kerning',\n 'left',\n 'letter-spacing',\n 'lighting-color',\n 'line-break',\n 'line-height',\n 'line-height-step',\n 'list-style',\n 'list-style-image',\n 'list-style-position',\n 'list-style-type',\n 'margin',\n 'margin-block',\n 'margin-block-end',\n 'margin-block-start',\n 'margin-bottom',\n 'margin-inline',\n 'margin-inline-end',\n 'margin-inline-start',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'margin-trim',\n 'marker',\n 'marker-end',\n 'marker-mid',\n 'marker-start',\n 'marks',\n 'mask',\n 'mask-border',\n 'mask-border-mode',\n 'mask-border-outset',\n 'mask-border-repeat',\n 'mask-border-slice',\n 'mask-border-source',\n 'mask-border-width',\n 'mask-clip',\n 'mask-composite',\n 'mask-image',\n 'mask-mode',\n 'mask-origin',\n 'mask-position',\n 'mask-repeat',\n 'mask-size',\n 'mask-type',\n 'masonry-auto-flow',\n 'math-depth',\n 'math-shift',\n 'math-style',\n 'max-block-size',\n 'max-height',\n 'max-inline-size',\n 'max-width',\n 'min-block-size',\n 'min-height',\n 'min-inline-size',\n 'min-width',\n 'mix-blend-mode',\n 'nav-down',\n 'nav-index',\n 'nav-left',\n 'nav-right',\n 'nav-up',\n 'none',\n 'normal',\n 'object-fit',\n 'object-position',\n 'offset',\n 'offset-anchor',\n 'offset-distance',\n 'offset-path',\n 'offset-position',\n 'offset-rotate',\n 'opacity',\n 'order',\n 'orphans',\n 'outline',\n 'outline-color',\n 'outline-offset',\n 'outline-style',\n 'outline-width',\n 'overflow',\n 'overflow-anchor',\n 'overflow-block',\n 'overflow-clip-margin',\n 'overflow-inline',\n 'overflow-wrap',\n 'overflow-x',\n 'overflow-y',\n 'overlay',\n 'overscroll-behavior',\n 'overscroll-behavior-block',\n 'overscroll-behavior-inline',\n 'overscroll-behavior-x',\n 'overscroll-behavior-y',\n 'padding',\n 'padding-block',\n 'padding-block-end',\n 'padding-block-start',\n 'padding-bottom',\n 'padding-inline',\n 'padding-inline-end',\n 'padding-inline-start',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'page',\n 'page-break-after',\n 'page-break-before',\n 'page-break-inside',\n 'paint-order',\n 'pause',\n 'pause-after',\n 'pause-before',\n 'perspective',\n 'perspective-origin',\n 'place-content',\n 'place-items',\n 'place-self',\n 'pointer-events',\n 'position',\n 'position-anchor',\n 'position-visibility',\n 'print-color-adjust',\n 'quotes',\n 'r',\n 'resize',\n 'rest',\n 'rest-after',\n 'rest-before',\n 'right',\n 'rotate',\n 'row-gap',\n 'ruby-align',\n 'ruby-position',\n 'scale',\n 'scroll-behavior',\n 'scroll-margin',\n 'scroll-margin-block',\n 'scroll-margin-block-end',\n 'scroll-margin-block-start',\n 'scroll-margin-bottom',\n 'scroll-margin-inline',\n 'scroll-margin-inline-end',\n 'scroll-margin-inline-start',\n 'scroll-margin-left',\n 'scroll-margin-right',\n 'scroll-margin-top',\n 'scroll-padding',\n 'scroll-padding-block',\n 'scroll-padding-block-end',\n 'scroll-padding-block-start',\n 'scroll-padding-bottom',\n 'scroll-padding-inline',\n 'scroll-padding-inline-end',\n 'scroll-padding-inline-start',\n 'scroll-padding-left',\n 'scroll-padding-right',\n 'scroll-padding-top',\n 'scroll-snap-align',\n 'scroll-snap-stop',\n 'scroll-snap-type',\n 'scroll-timeline',\n 'scroll-timeline-axis',\n 'scroll-timeline-name',\n 'scrollbar-color',\n 'scrollbar-gutter',\n 'scrollbar-width',\n 'shape-image-threshold',\n 'shape-margin',\n 'shape-outside',\n 'shape-rendering',\n 'speak',\n 'speak-as',\n 'src', // @font-face\n 'stop-color',\n 'stop-opacity',\n 'stroke',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-linecap',\n 'stroke-linejoin',\n 'stroke-miterlimit',\n 'stroke-opacity',\n 'stroke-width',\n 'tab-size',\n 'table-layout',\n 'text-align',\n 'text-align-all',\n 'text-align-last',\n 'text-anchor',\n 'text-combine-upright',\n 'text-decoration',\n 'text-decoration-color',\n 'text-decoration-line',\n 'text-decoration-skip',\n 'text-decoration-skip-ink',\n 'text-decoration-style',\n 'text-decoration-thickness',\n 'text-emphasis',\n 'text-emphasis-color',\n 'text-emphasis-position',\n 'text-emphasis-style',\n 'text-indent',\n 'text-justify',\n 'text-orientation',\n 'text-overflow',\n 'text-rendering',\n 'text-shadow',\n 'text-size-adjust',\n 'text-transform',\n 'text-underline-offset',\n 'text-underline-position',\n 'text-wrap',\n 'text-wrap-mode',\n 'text-wrap-style',\n 'timeline-scope',\n 'top',\n 'touch-action',\n 'transform',\n 'transform-box',\n 'transform-origin',\n 'transform-style',\n 'transition',\n 'transition-behavior',\n 'transition-delay',\n 'transition-duration',\n 'transition-property',\n 'transition-timing-function',\n 'translate',\n 'unicode-bidi',\n 'user-modify',\n 'user-select',\n 'vector-effect',\n 'vertical-align',\n 'view-timeline',\n 'view-timeline-axis',\n 'view-timeline-inset',\n 'view-timeline-name',\n 'view-transition-name',\n 'visibility',\n 'voice-balance',\n 'voice-duration',\n 'voice-family',\n 'voice-pitch',\n 'voice-range',\n 'voice-rate',\n 'voice-stress',\n 'voice-volume',\n 'white-space',\n 'white-space-collapse',\n 'widows',\n 'width',\n 'will-change',\n 'word-break',\n 'word-spacing',\n 'word-wrap',\n 'writing-mode',\n 'x',\n 'y',\n 'z-index',\n 'zoom'\n].sort().reverse();\n\n// some grammars use them all as a single group\nconst PSEUDO_SELECTORS = PSEUDO_CLASSES.concat(PSEUDO_ELEMENTS).sort().reverse();\n\n/*\nLanguage: Less\nDescription: It's CSS, with just a little more.\nAuthor: Max Mikhailov \nWebsite: http://lesscss.org\nCategory: common, css, web\n*/\n\n\n/** @type LanguageFn */\nfunction less(hljs) {\n const modes = MODES(hljs);\n const PSEUDO_SELECTORS$1 = PSEUDO_SELECTORS;\n\n const AT_MODIFIERS = \"and or not only\";\n const IDENT_RE = '[\\\\w-]+'; // yes, Less identifiers may begin with a digit\n const INTERP_IDENT_RE = '(' + IDENT_RE + '|@\\\\{' + IDENT_RE + '\\\\})';\n\n /* Generic Modes */\n\n const RULES = []; const VALUE_MODES = []; // forward def. for recursive modes\n\n const STRING_MODE = function(c) {\n return {\n // Less strings are not multiline (also include '~' for more consistent coloring of \"escaped\" strings)\n className: 'string',\n begin: '~?' + c + '.*?' + c\n };\n };\n\n const IDENT_MODE = function(name, begin, relevance) {\n return {\n className: name,\n begin: begin,\n relevance: relevance\n };\n };\n\n const AT_KEYWORDS = {\n $pattern: /[a-z-]+/,\n keyword: AT_MODIFIERS,\n attribute: MEDIA_FEATURES.join(\" \")\n };\n\n const PARENS_MODE = {\n // used only to properly balance nested parens inside mixin call, def. arg list\n begin: '\\\\(',\n end: '\\\\)',\n contains: VALUE_MODES,\n keywords: AT_KEYWORDS,\n relevance: 0\n };\n\n // generic Less highlighter (used almost everywhere except selectors):\n VALUE_MODES.push(\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING_MODE(\"'\"),\n STRING_MODE('\"'),\n modes.CSS_NUMBER_MODE, // fixme: it does not include dot for numbers like .5em :(\n {\n begin: '(url|data-uri)\\\\(',\n starts: {\n className: 'string',\n end: '[\\\\)\\\\n]',\n excludeEnd: true\n }\n },\n modes.HEXCOLOR,\n PARENS_MODE,\n IDENT_MODE('variable', '@@?' + IDENT_RE, 10),\n IDENT_MODE('variable', '@\\\\{' + IDENT_RE + '\\\\}'),\n IDENT_MODE('built_in', '~?`[^`]*?`'), // inline javascript (or whatever host language) *multiline* string\n { // @media features (it’s here to not duplicate things in AT_RULE_MODE with extra PARENS_MODE overriding):\n className: 'attribute',\n begin: IDENT_RE + '\\\\s*:',\n end: ':',\n returnBegin: true,\n excludeEnd: true\n },\n modes.IMPORTANT,\n { beginKeywords: 'and not' },\n modes.FUNCTION_DISPATCH\n );\n\n const VALUE_WITH_RULESETS = VALUE_MODES.concat({\n begin: /\\{/,\n end: /\\}/,\n contains: RULES\n });\n\n const MIXIN_GUARD_MODE = {\n beginKeywords: 'when',\n endsWithParent: true,\n contains: [ { beginKeywords: 'and not' } ].concat(VALUE_MODES) // using this form to override VALUE’s 'function' match\n };\n\n /* Rule-Level Modes */\n\n const RULE_MODE = {\n begin: INTERP_IDENT_RE + '\\\\s*:',\n returnBegin: true,\n end: /[;}]/,\n relevance: 0,\n contains: [\n { begin: /-(webkit|moz|ms|o)-/ },\n modes.CSS_VARIABLE,\n {\n className: 'attribute',\n begin: '\\\\b(' + ATTRIBUTES.join('|') + ')\\\\b',\n end: /(?=:)/,\n starts: {\n endsWithParent: true,\n illegal: '[<=$]',\n relevance: 0,\n contains: VALUE_MODES\n }\n }\n ]\n };\n\n const AT_RULE_MODE = {\n className: 'keyword',\n begin: '@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\\\b',\n starts: {\n end: '[;{}]',\n keywords: AT_KEYWORDS,\n returnEnd: true,\n contains: VALUE_MODES,\n relevance: 0\n }\n };\n\n // variable definitions and calls\n const VAR_RULE_MODE = {\n className: 'variable',\n variants: [\n // using more strict pattern for higher relevance to increase chances of Less detection.\n // this is *the only* Less specific statement used in most of the sources, so...\n // (we’ll still often loose to the css-parser unless there's '//' comment,\n // simply because 1 variable just can't beat 99 properties :)\n {\n begin: '@' + IDENT_RE + '\\\\s*:',\n relevance: 15\n },\n { begin: '@' + IDENT_RE }\n ],\n starts: {\n end: '[;}]',\n returnEnd: true,\n contains: VALUE_WITH_RULESETS\n }\n };\n\n const SELECTOR_MODE = {\n // first parse unambiguous selectors (i.e. those not starting with tag)\n // then fall into the scary lookahead-discriminator variant.\n // this mode also handles mixin definitions and calls\n variants: [\n {\n begin: '[\\\\.#:&\\\\[>]',\n end: '[;{}]' // mixin calls end with ';'\n },\n {\n begin: INTERP_IDENT_RE,\n end: /\\{/\n }\n ],\n returnBegin: true,\n returnEnd: true,\n illegal: '[<=\\'$\"]',\n relevance: 0,\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n MIXIN_GUARD_MODE,\n IDENT_MODE('keyword', 'all\\\\b'),\n IDENT_MODE('variable', '@\\\\{' + IDENT_RE + '\\\\}'), // otherwise it’s identified as tag\n \n {\n begin: '\\\\b(' + TAGS.join('|') + ')\\\\b',\n className: 'selector-tag'\n },\n modes.CSS_NUMBER_MODE,\n IDENT_MODE('selector-tag', INTERP_IDENT_RE, 0),\n IDENT_MODE('selector-id', '#' + INTERP_IDENT_RE),\n IDENT_MODE('selector-class', '\\\\.' + INTERP_IDENT_RE, 0),\n IDENT_MODE('selector-tag', '&', 0),\n modes.ATTRIBUTE_SELECTOR_MODE,\n {\n className: 'selector-pseudo',\n begin: ':(' + PSEUDO_CLASSES.join('|') + ')'\n },\n {\n className: 'selector-pseudo',\n begin: ':(:)?(' + PSEUDO_ELEMENTS.join('|') + ')'\n },\n {\n begin: /\\(/,\n end: /\\)/,\n relevance: 0,\n contains: VALUE_WITH_RULESETS\n }, // argument list of parametric mixins\n { begin: '!important' }, // eat !important after mixin call or it will be colored as tag\n modes.FUNCTION_DISPATCH\n ]\n };\n\n const PSEUDO_SELECTOR_MODE = {\n begin: IDENT_RE + ':(:)?' + `(${PSEUDO_SELECTORS$1.join('|')})`,\n returnBegin: true,\n contains: [ SELECTOR_MODE ]\n };\n\n RULES.push(\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n AT_RULE_MODE,\n VAR_RULE_MODE,\n PSEUDO_SELECTOR_MODE,\n RULE_MODE,\n SELECTOR_MODE,\n MIXIN_GUARD_MODE,\n modes.FUNCTION_DISPATCH\n );\n\n return {\n name: 'Less',\n case_insensitive: true,\n illegal: '[=>\\'/<($\"]',\n contains: RULES\n };\n}\n\nexport { less as default };\n","/*\nLanguage: Lua\nDescription: Lua is a powerful, efficient, lightweight, embeddable scripting language.\nAuthor: Andrew Fedorov \nCategory: common, gaming, scripting\nWebsite: https://www.lua.org\n*/\n\nfunction lua(hljs) {\n const OPENING_LONG_BRACKET = '\\\\[=*\\\\[';\n const CLOSING_LONG_BRACKET = '\\\\]=*\\\\]';\n const LONG_BRACKETS = {\n begin: OPENING_LONG_BRACKET,\n end: CLOSING_LONG_BRACKET,\n contains: [ 'self' ]\n };\n const COMMENTS = [\n hljs.COMMENT('--(?!' + OPENING_LONG_BRACKET + ')', '$'),\n hljs.COMMENT(\n '--' + OPENING_LONG_BRACKET,\n CLOSING_LONG_BRACKET,\n {\n contains: [ LONG_BRACKETS ],\n relevance: 10\n }\n )\n ];\n return {\n name: 'Lua',\n aliases: ['pluto'],\n keywords: {\n $pattern: hljs.UNDERSCORE_IDENT_RE,\n literal: \"true false nil\",\n keyword: \"and break do else elseif end for goto if in local not or repeat return then until while\",\n built_in:\n // Metatags and globals:\n '_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len '\n + '__gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert '\n // Standard methods and properties:\n + 'collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring '\n + 'module next pairs pcall print rawequal rawget rawset require select setfenv '\n + 'setmetatable tonumber tostring type unpack xpcall arg self '\n // Library methods and properties (one line per library):\n + 'coroutine resume yield status wrap create running debug getupvalue '\n + 'debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv '\n + 'io lines write close flush open output type read stderr stdin input stdout popen tmpfile '\n + 'math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan '\n + 'os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall '\n + 'string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower '\n + 'table setn insert getn foreachi maxn foreach concat sort remove'\n },\n contains: COMMENTS.concat([\n {\n className: 'function',\n beginKeywords: 'function',\n end: '\\\\)',\n contains: [\n hljs.inherit(hljs.TITLE_MODE, { begin: '([_a-zA-Z]\\\\w*\\\\.)*([_a-zA-Z]\\\\w*:)?[_a-zA-Z]\\\\w*' }),\n {\n className: 'params',\n begin: '\\\\(',\n endsWithParent: true,\n contains: COMMENTS\n }\n ].concat(COMMENTS)\n },\n hljs.C_NUMBER_MODE,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n {\n className: 'string',\n begin: OPENING_LONG_BRACKET,\n end: CLOSING_LONG_BRACKET,\n contains: [ LONG_BRACKETS ],\n relevance: 5\n }\n ])\n };\n}\n\nexport { lua as default };\n","/*\nLanguage: Makefile\nAuthor: Ivan Sagalaev \nContributors: Joël Porquet \nWebsite: https://www.gnu.org/software/make/manual/html_node/Introduction.html\nCategory: common, build-system\n*/\n\nfunction makefile(hljs) {\n /* Variables: simple (eg $(var)) and special (eg $@) */\n const VARIABLE = {\n className: 'variable',\n variants: [\n {\n begin: '\\\\$\\\\(' + hljs.UNDERSCORE_IDENT_RE + '\\\\)',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n { begin: /\\$[@%\nWebsite: https://daringfireball.net/projects/markdown/\nCategory: common, markup\n*/\n\nfunction markdown(hljs) {\n const regex = hljs.regex;\n const INLINE_HTML = {\n begin: /<\\/?[A-Za-z_]/,\n end: '>',\n subLanguage: 'xml',\n relevance: 0\n };\n const HORIZONTAL_RULE = {\n begin: '^[-\\\\*]{3,}',\n end: '$'\n };\n const CODE = {\n className: 'code',\n variants: [\n // TODO: fix to allow these to work with sublanguage also\n { begin: '(`{3,})[^`](.|\\\\n)*?\\\\1`*[ ]*' },\n { begin: '(~{3,})[^~](.|\\\\n)*?\\\\1~*[ ]*' },\n // needed to allow markdown as a sublanguage to work\n {\n begin: '```',\n end: '```+[ ]*$'\n },\n {\n begin: '~~~',\n end: '~~~+[ ]*$'\n },\n { begin: '`.+?`' },\n {\n begin: '(?=^( {4}|\\\\t))',\n // use contains to gobble up multiple lines to allow the block to be whatever size\n // but only have a single open/close tag vs one per line\n contains: [\n {\n begin: '^( {4}|\\\\t)',\n end: '(\\\\n)$'\n }\n ],\n relevance: 0\n }\n ]\n };\n const LIST = {\n className: 'bullet',\n begin: '^[ \\t]*([*+-]|(\\\\d+\\\\.))(?=\\\\s+)',\n end: '\\\\s+',\n excludeEnd: true\n };\n const LINK_REFERENCE = {\n begin: /^\\[[^\\n]+\\]:/,\n returnBegin: true,\n contains: [\n {\n className: 'symbol',\n begin: /\\[/,\n end: /\\]/,\n excludeBegin: true,\n excludeEnd: true\n },\n {\n className: 'link',\n begin: /:\\s*/,\n end: /$/,\n excludeBegin: true\n }\n ]\n };\n const URL_SCHEME = /[A-Za-z][A-Za-z0-9+.-]*/;\n const LINK = {\n variants: [\n // too much like nested array access in so many languages\n // to have any real relevance\n {\n begin: /\\[.+?\\]\\[.*?\\]/,\n relevance: 0\n },\n // popular internet URLs\n {\n begin: /\\[.+?\\]\\(((data|javascript|mailto):|(?:http|ftp)s?:\\/\\/).*?\\)/,\n relevance: 2\n },\n {\n begin: regex.concat(/\\[.+?\\]\\(/, URL_SCHEME, /:\\/\\/.*?\\)/),\n relevance: 2\n },\n // relative urls\n {\n begin: /\\[.+?\\]\\([./?&#].*?\\)/,\n relevance: 1\n },\n // whatever else, lower relevance (might not be a link at all)\n {\n begin: /\\[.*?\\]\\(.*?\\)/,\n relevance: 0\n }\n ],\n returnBegin: true,\n contains: [\n {\n // empty strings for alt or link text\n match: /\\[(?=\\])/ },\n {\n className: 'string',\n relevance: 0,\n begin: '\\\\[',\n end: '\\\\]',\n excludeBegin: true,\n returnEnd: true\n },\n {\n className: 'link',\n relevance: 0,\n begin: '\\\\]\\\\(',\n end: '\\\\)',\n excludeBegin: true,\n excludeEnd: true\n },\n {\n className: 'symbol',\n relevance: 0,\n begin: '\\\\]\\\\[',\n end: '\\\\]',\n excludeBegin: true,\n excludeEnd: true\n }\n ]\n };\n const BOLD = {\n className: 'strong',\n contains: [], // defined later\n variants: [\n {\n begin: /_{2}(?!\\s)/,\n end: /_{2}/\n },\n {\n begin: /\\*{2}(?!\\s)/,\n end: /\\*{2}/\n }\n ]\n };\n const ITALIC = {\n className: 'emphasis',\n contains: [], // defined later\n variants: [\n {\n begin: /\\*(?![*\\s])/,\n end: /\\*/\n },\n {\n begin: /_(?![_\\s])/,\n end: /_/,\n relevance: 0\n }\n ]\n };\n\n // 3 level deep nesting is not allowed because it would create confusion\n // in cases like `***testing***` because where we don't know if the last\n // `***` is starting a new bold/italic or finishing the last one\n const BOLD_WITHOUT_ITALIC = hljs.inherit(BOLD, { contains: [] });\n const ITALIC_WITHOUT_BOLD = hljs.inherit(ITALIC, { contains: [] });\n BOLD.contains.push(ITALIC_WITHOUT_BOLD);\n ITALIC.contains.push(BOLD_WITHOUT_ITALIC);\n\n let CONTAINABLE = [\n INLINE_HTML,\n LINK\n ];\n\n [\n BOLD,\n ITALIC,\n BOLD_WITHOUT_ITALIC,\n ITALIC_WITHOUT_BOLD\n ].forEach(m => {\n m.contains = m.contains.concat(CONTAINABLE);\n });\n\n CONTAINABLE = CONTAINABLE.concat(BOLD, ITALIC);\n\n const HEADER = {\n className: 'section',\n variants: [\n {\n begin: '^#{1,6}',\n end: '$',\n contains: CONTAINABLE\n },\n {\n begin: '(?=^.+?\\\\n[=-]{2,}$)',\n contains: [\n { begin: '^[=-]*$' },\n {\n begin: '^',\n end: \"\\\\n\",\n contains: CONTAINABLE\n }\n ]\n }\n ]\n };\n\n const BLOCKQUOTE = {\n className: 'quote',\n begin: '^>\\\\s+',\n contains: CONTAINABLE,\n end: '$'\n };\n\n const ENTITY = {\n //https://spec.commonmark.org/0.31.2/#entity-references\n scope: 'literal',\n match: /&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/\n };\n\n return {\n name: 'Markdown',\n aliases: [\n 'md',\n 'mkdown',\n 'mkd'\n ],\n contains: [\n HEADER,\n INLINE_HTML,\n LIST,\n BOLD,\n ITALIC,\n BLOCKQUOTE,\n CODE,\n HORIZONTAL_RULE,\n LINK,\n LINK_REFERENCE,\n ENTITY\n ]\n };\n}\n\nexport { markdown as default };\n","/*\nLanguage: Objective-C\nAuthor: Valerii Hiora \nContributors: Angel G. Olloqui , Matt Diephouse , Andrew Farmer , Minh Nguyễn \nWebsite: https://developer.apple.com/documentation/objectivec\nCategory: common\n*/\n\nfunction objectivec(hljs) {\n const API_CLASS = {\n className: 'built_in',\n begin: '\\\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\\\w+'\n };\n const IDENTIFIER_RE = /[a-zA-Z@][a-zA-Z0-9_]*/;\n const TYPES = [\n \"int\",\n \"float\",\n \"char\",\n \"unsigned\",\n \"signed\",\n \"short\",\n \"long\",\n \"double\",\n \"wchar_t\",\n \"unichar\",\n \"void\",\n \"bool\",\n \"BOOL\",\n \"id|0\",\n \"_Bool\"\n ];\n const KWS = [\n \"while\",\n \"export\",\n \"sizeof\",\n \"typedef\",\n \"const\",\n \"struct\",\n \"for\",\n \"union\",\n \"volatile\",\n \"static\",\n \"mutable\",\n \"if\",\n \"do\",\n \"return\",\n \"goto\",\n \"enum\",\n \"else\",\n \"break\",\n \"extern\",\n \"asm\",\n \"case\",\n \"default\",\n \"register\",\n \"explicit\",\n \"typename\",\n \"switch\",\n \"continue\",\n \"inline\",\n \"readonly\",\n \"assign\",\n \"readwrite\",\n \"self\",\n \"@synchronized\",\n \"id\",\n \"typeof\",\n \"nonatomic\",\n \"IBOutlet\",\n \"IBAction\",\n \"strong\",\n \"weak\",\n \"copy\",\n \"in\",\n \"out\",\n \"inout\",\n \"bycopy\",\n \"byref\",\n \"oneway\",\n \"__strong\",\n \"__weak\",\n \"__block\",\n \"__autoreleasing\",\n \"@private\",\n \"@protected\",\n \"@public\",\n \"@try\",\n \"@property\",\n \"@end\",\n \"@throw\",\n \"@catch\",\n \"@finally\",\n \"@autoreleasepool\",\n \"@synthesize\",\n \"@dynamic\",\n \"@selector\",\n \"@optional\",\n \"@required\",\n \"@encode\",\n \"@package\",\n \"@import\",\n \"@defs\",\n \"@compatibility_alias\",\n \"__bridge\",\n \"__bridge_transfer\",\n \"__bridge_retained\",\n \"__bridge_retain\",\n \"__covariant\",\n \"__contravariant\",\n \"__kindof\",\n \"_Nonnull\",\n \"_Nullable\",\n \"_Null_unspecified\",\n \"__FUNCTION__\",\n \"__PRETTY_FUNCTION__\",\n \"__attribute__\",\n \"getter\",\n \"setter\",\n \"retain\",\n \"unsafe_unretained\",\n \"nonnull\",\n \"nullable\",\n \"null_unspecified\",\n \"null_resettable\",\n \"class\",\n \"instancetype\",\n \"NS_DESIGNATED_INITIALIZER\",\n \"NS_UNAVAILABLE\",\n \"NS_REQUIRES_SUPER\",\n \"NS_RETURNS_INNER_POINTER\",\n \"NS_INLINE\",\n \"NS_AVAILABLE\",\n \"NS_DEPRECATED\",\n \"NS_ENUM\",\n \"NS_OPTIONS\",\n \"NS_SWIFT_UNAVAILABLE\",\n \"NS_ASSUME_NONNULL_BEGIN\",\n \"NS_ASSUME_NONNULL_END\",\n \"NS_REFINED_FOR_SWIFT\",\n \"NS_SWIFT_NAME\",\n \"NS_SWIFT_NOTHROW\",\n \"NS_DURING\",\n \"NS_HANDLER\",\n \"NS_ENDHANDLER\",\n \"NS_VALUERETURN\",\n \"NS_VOIDRETURN\"\n ];\n const LITERALS = [\n \"false\",\n \"true\",\n \"FALSE\",\n \"TRUE\",\n \"nil\",\n \"YES\",\n \"NO\",\n \"NULL\"\n ];\n const BUILT_INS = [\n \"dispatch_once_t\",\n \"dispatch_queue_t\",\n \"dispatch_sync\",\n \"dispatch_async\",\n \"dispatch_once\"\n ];\n const KEYWORDS = {\n \"variable.language\": [\n \"this\",\n \"super\"\n ],\n $pattern: IDENTIFIER_RE,\n keyword: KWS,\n literal: LITERALS,\n built_in: BUILT_INS,\n type: TYPES\n };\n const CLASS_KEYWORDS = {\n $pattern: IDENTIFIER_RE,\n keyword: [\n \"@interface\",\n \"@class\",\n \"@protocol\",\n \"@implementation\"\n ]\n };\n return {\n name: 'Objective-C',\n aliases: [\n 'mm',\n 'objc',\n 'obj-c',\n 'obj-c++',\n 'objective-c++'\n ],\n keywords: KEYWORDS,\n illegal: '/,\n end: /$/,\n illegal: '\\\\n'\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n {\n className: 'class',\n begin: '(' + CLASS_KEYWORDS.keyword.join('|') + ')\\\\b',\n end: /(\\{|$)/,\n excludeEnd: true,\n keywords: CLASS_KEYWORDS,\n contains: [ hljs.UNDERSCORE_TITLE_MODE ]\n },\n {\n begin: '\\\\.' + hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n }\n ]\n };\n}\n\nexport { objectivec as default };\n","/*\nLanguage: Perl\nAuthor: Peter Leonov \nWebsite: https://www.perl.org\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction perl(hljs) {\n const regex = hljs.regex;\n const KEYWORDS = [\n 'abs',\n 'accept',\n 'alarm',\n 'and',\n 'atan2',\n 'bind',\n 'binmode',\n 'bless',\n 'break',\n 'caller',\n 'chdir',\n 'chmod',\n 'chomp',\n 'chop',\n 'chown',\n 'chr',\n 'chroot',\n 'class',\n 'close',\n 'closedir',\n 'connect',\n 'continue',\n 'cos',\n 'crypt',\n 'dbmclose',\n 'dbmopen',\n 'defined',\n 'delete',\n 'die',\n 'do',\n 'dump',\n 'each',\n 'else',\n 'elsif',\n 'endgrent',\n 'endhostent',\n 'endnetent',\n 'endprotoent',\n 'endpwent',\n 'endservent',\n 'eof',\n 'eval',\n 'exec',\n 'exists',\n 'exit',\n 'exp',\n 'fcntl',\n 'field',\n 'fileno',\n 'flock',\n 'for',\n 'foreach',\n 'fork',\n 'format',\n 'formline',\n 'getc',\n 'getgrent',\n 'getgrgid',\n 'getgrnam',\n 'gethostbyaddr',\n 'gethostbyname',\n 'gethostent',\n 'getlogin',\n 'getnetbyaddr',\n 'getnetbyname',\n 'getnetent',\n 'getpeername',\n 'getpgrp',\n 'getpriority',\n 'getprotobyname',\n 'getprotobynumber',\n 'getprotoent',\n 'getpwent',\n 'getpwnam',\n 'getpwuid',\n 'getservbyname',\n 'getservbyport',\n 'getservent',\n 'getsockname',\n 'getsockopt',\n 'given',\n 'glob',\n 'gmtime',\n 'goto',\n 'grep',\n 'gt',\n 'hex',\n 'if',\n 'index',\n 'int',\n 'ioctl',\n 'join',\n 'keys',\n 'kill',\n 'last',\n 'lc',\n 'lcfirst',\n 'length',\n 'link',\n 'listen',\n 'local',\n 'localtime',\n 'log',\n 'lstat',\n 'lt',\n 'ma',\n 'map',\n 'method',\n 'mkdir',\n 'msgctl',\n 'msgget',\n 'msgrcv',\n 'msgsnd',\n 'my',\n 'ne',\n 'next',\n 'no',\n 'not',\n 'oct',\n 'open',\n 'opendir',\n 'or',\n 'ord',\n 'our',\n 'pack',\n 'package',\n 'pipe',\n 'pop',\n 'pos',\n 'print',\n 'printf',\n 'prototype',\n 'push',\n 'q|0',\n 'qq',\n 'quotemeta',\n 'qw',\n 'qx',\n 'rand',\n 'read',\n 'readdir',\n 'readline',\n 'readlink',\n 'readpipe',\n 'recv',\n 'redo',\n 'ref',\n 'rename',\n 'require',\n 'reset',\n 'return',\n 'reverse',\n 'rewinddir',\n 'rindex',\n 'rmdir',\n 'say',\n 'scalar',\n 'seek',\n 'seekdir',\n 'select',\n 'semctl',\n 'semget',\n 'semop',\n 'send',\n 'setgrent',\n 'sethostent',\n 'setnetent',\n 'setpgrp',\n 'setpriority',\n 'setprotoent',\n 'setpwent',\n 'setservent',\n 'setsockopt',\n 'shift',\n 'shmctl',\n 'shmget',\n 'shmread',\n 'shmwrite',\n 'shutdown',\n 'sin',\n 'sleep',\n 'socket',\n 'socketpair',\n 'sort',\n 'splice',\n 'split',\n 'sprintf',\n 'sqrt',\n 'srand',\n 'stat',\n 'state',\n 'study',\n 'sub',\n 'substr',\n 'symlink',\n 'syscall',\n 'sysopen',\n 'sysread',\n 'sysseek',\n 'system',\n 'syswrite',\n 'tell',\n 'telldir',\n 'tie',\n 'tied',\n 'time',\n 'times',\n 'tr',\n 'truncate',\n 'uc',\n 'ucfirst',\n 'umask',\n 'undef',\n 'unless',\n 'unlink',\n 'unpack',\n 'unshift',\n 'untie',\n 'until',\n 'use',\n 'utime',\n 'values',\n 'vec',\n 'wait',\n 'waitpid',\n 'wantarray',\n 'warn',\n 'when',\n 'while',\n 'write',\n 'x|0',\n 'xor',\n 'y|0'\n ];\n\n // https://perldoc.perl.org/perlre#Modifiers\n const REGEX_MODIFIERS = /[dualxmsipngr]{0,12}/; // aa and xx are valid, making max length 12\n const PERL_KEYWORDS = {\n $pattern: /[\\w.]+/,\n keyword: KEYWORDS.join(\" \")\n };\n const SUBST = {\n className: 'subst',\n begin: '[$@]\\\\{',\n end: '\\\\}',\n keywords: PERL_KEYWORDS\n };\n const METHOD = {\n begin: /->\\{/,\n end: /\\}/\n // contains defined later\n };\n const ATTR = {\n scope: 'attr',\n match: /\\s+:\\s*\\w+(\\s*\\(.*?\\))?/,\n };\n const VAR = {\n scope: 'variable',\n variants: [\n { begin: /\\$\\d/ },\n { begin: regex.concat(\n /[$%@](?!\")(\\^\\w\\b|#\\w+(::\\w+)*|\\{\\w+\\}|\\w+(::\\w*)*)/,\n // negative look-ahead tries to avoid matching patterns that are not\n // Perl at all like $ident$, @ident@, etc.\n `(?![A-Za-z])(?![@$%])`\n )\n },\n {\n // Only $= is a special Perl variable and one can't declare @= or %=.\n begin: /[$%@](?!\")[^\\s\\w{=]|\\$=/,\n relevance: 0\n }\n ],\n contains: [ ATTR ],\n };\n const NUMBER = {\n className: 'number',\n variants: [\n // decimal numbers:\n // include the case where a number starts with a dot (eg. .9), and\n // the leading 0? avoids mixing the first and second match on 0.x cases\n { match: /0?\\.[0-9][0-9_]+\\b/ },\n // include the special versioned number (eg. v5.38)\n { match: /\\bv?(0|[1-9][0-9_]*(\\.[0-9_]+)?|[1-9][0-9_]*)\\b/ },\n // non-decimal numbers:\n { match: /\\b0[0-7][0-7_]*\\b/ },\n { match: /\\b0x[0-9a-fA-F][0-9a-fA-F_]*\\b/ },\n { match: /\\b0b[0-1][0-1_]*\\b/ },\n ],\n relevance: 0\n };\n const STRING_CONTAINS = [\n hljs.BACKSLASH_ESCAPE,\n SUBST,\n VAR\n ];\n const REGEX_DELIMS = [\n /!/,\n /\\//,\n /\\|/,\n /\\?/,\n /'/,\n /\"/, // valid but infrequent and weird\n /#/ // valid but infrequent and weird\n ];\n /**\n * @param {string|RegExp} prefix\n * @param {string|RegExp} open\n * @param {string|RegExp} close\n */\n const PAIRED_DOUBLE_RE = (prefix, open, close = '\\\\1') => {\n const middle = (close === '\\\\1')\n ? close\n : regex.concat(close, open);\n return regex.concat(\n regex.concat(\"(?:\", prefix, \")\"),\n open,\n /(?:\\\\.|[^\\\\\\/])*?/,\n middle,\n /(?:\\\\.|[^\\\\\\/])*?/,\n close,\n REGEX_MODIFIERS\n );\n };\n /**\n * @param {string|RegExp} prefix\n * @param {string|RegExp} open\n * @param {string|RegExp} close\n */\n const PAIRED_RE = (prefix, open, close) => {\n return regex.concat(\n regex.concat(\"(?:\", prefix, \")\"),\n open,\n /(?:\\\\.|[^\\\\\\/])*?/,\n close,\n REGEX_MODIFIERS\n );\n };\n const PERL_DEFAULT_CONTAINS = [\n VAR,\n hljs.HASH_COMMENT_MODE,\n hljs.COMMENT(\n /^=\\w/,\n /=cut/,\n { endsWithParent: true }\n ),\n METHOD,\n {\n className: 'string',\n contains: STRING_CONTAINS,\n variants: [\n {\n begin: 'q[qwxr]?\\\\s*\\\\(',\n end: '\\\\)',\n relevance: 5\n },\n {\n begin: 'q[qwxr]?\\\\s*\\\\[',\n end: '\\\\]',\n relevance: 5\n },\n {\n begin: 'q[qwxr]?\\\\s*\\\\{',\n end: '\\\\}',\n relevance: 5\n },\n {\n begin: 'q[qwxr]?\\\\s*\\\\|',\n end: '\\\\|',\n relevance: 5\n },\n {\n begin: 'q[qwxr]?\\\\s*<',\n end: '>',\n relevance: 5\n },\n {\n begin: 'qw\\\\s+q',\n end: 'q',\n relevance: 5\n },\n {\n begin: '\\'',\n end: '\\'',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '\"',\n end: '\"'\n },\n {\n begin: '`',\n end: '`',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: /\\{\\w+\\}/,\n relevance: 0\n },\n {\n begin: '-?\\\\w+\\\\s*=>',\n relevance: 0\n }\n ]\n },\n NUMBER,\n { // regexp container\n begin: '(\\\\/\\\\/|' + hljs.RE_STARTERS_RE + '|\\\\b(split|return|print|reverse|grep)\\\\b)\\\\s*',\n keywords: 'split return print reverse grep',\n relevance: 0,\n contains: [\n hljs.HASH_COMMENT_MODE,\n {\n className: 'regexp',\n variants: [\n // allow matching common delimiters\n { begin: PAIRED_DOUBLE_RE(\"s|tr|y\", regex.either(...REGEX_DELIMS, { capture: true })) },\n // and then paired delmis\n { begin: PAIRED_DOUBLE_RE(\"s|tr|y\", \"\\\\(\", \"\\\\)\") },\n { begin: PAIRED_DOUBLE_RE(\"s|tr|y\", \"\\\\[\", \"\\\\]\") },\n { begin: PAIRED_DOUBLE_RE(\"s|tr|y\", \"\\\\{\", \"\\\\}\") }\n ],\n relevance: 2\n },\n {\n className: 'regexp',\n variants: [\n {\n // could be a comment in many languages so do not count\n // as relevant\n begin: /(m|qr)\\/\\//,\n relevance: 0\n },\n // prefix is optional with /regex/\n { begin: PAIRED_RE(\"(?:m|qr)?\", /\\//, /\\//) },\n // allow matching common delimiters\n { begin: PAIRED_RE(\"m|qr\", regex.either(...REGEX_DELIMS, { capture: true }), /\\1/) },\n // allow common paired delmins\n { begin: PAIRED_RE(\"m|qr\", /\\(/, /\\)/) },\n { begin: PAIRED_RE(\"m|qr\", /\\[/, /\\]/) },\n { begin: PAIRED_RE(\"m|qr\", /\\{/, /\\}/) }\n ]\n }\n ]\n },\n {\n className: 'function',\n beginKeywords: 'sub method',\n end: '(\\\\s*\\\\(.*?\\\\))?[;{]',\n excludeEnd: true,\n relevance: 5,\n contains: [ hljs.TITLE_MODE, ATTR ]\n },\n {\n className: 'class',\n beginKeywords: 'class',\n end: '[;{]',\n excludeEnd: true,\n relevance: 5,\n contains: [ hljs.TITLE_MODE, ATTR, NUMBER ]\n },\n {\n begin: '-\\\\w\\\\b',\n relevance: 0\n },\n {\n begin: \"^__DATA__$\",\n end: \"^__END__$\",\n subLanguage: 'mojolicious',\n contains: [\n {\n begin: \"^@@.*\",\n end: \"$\",\n className: \"comment\"\n }\n ]\n }\n ];\n SUBST.contains = PERL_DEFAULT_CONTAINS;\n METHOD.contains = PERL_DEFAULT_CONTAINS;\n\n return {\n name: 'Perl',\n aliases: [\n 'pl',\n 'pm'\n ],\n keywords: PERL_KEYWORDS,\n contains: PERL_DEFAULT_CONTAINS\n };\n}\n\nexport { perl as default };\n","/*\nLanguage: PHP\nAuthor: Victor Karamzin \nContributors: Evgeny Stepanischev , Ivan Sagalaev \nWebsite: https://www.php.net\nCategory: common\n*/\n\n/**\n * @param {HLJSApi} hljs\n * @returns {LanguageDetail}\n * */\nfunction php(hljs) {\n const regex = hljs.regex;\n // negative look-ahead tries to avoid matching patterns that are not\n // Perl at all like $ident$, @ident@, etc.\n const NOT_PERL_ETC = /(?![A-Za-z0-9])(?![$])/;\n const IDENT_RE = regex.concat(\n /[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*/,\n NOT_PERL_ETC);\n // Will not detect camelCase classes\n const PASCAL_CASE_CLASS_NAME_RE = regex.concat(\n /(\\\\?[A-Z][a-z0-9_\\x7f-\\xff]+|\\\\?[A-Z]+(?=[A-Z][a-z0-9_\\x7f-\\xff])){1,}/,\n NOT_PERL_ETC);\n const UPCASE_NAME_RE = regex.concat(\n /[A-Z]+/,\n NOT_PERL_ETC);\n const VARIABLE = {\n scope: 'variable',\n match: '\\\\$+' + IDENT_RE,\n };\n const PREPROCESSOR = {\n scope: \"meta\",\n variants: [\n { begin: /<\\?php/, relevance: 10 }, // boost for obvious PHP\n { begin: /<\\?=/ },\n // less relevant per PSR-1 which says not to use short-tags\n { begin: /<\\?/, relevance: 0.1 },\n { begin: /\\?>/ } // end php tag\n ]\n };\n const SUBST = {\n scope: 'subst',\n variants: [\n { begin: /\\$\\w+/ },\n {\n begin: /\\{\\$/,\n end: /\\}/\n }\n ]\n };\n const SINGLE_QUOTED = hljs.inherit(hljs.APOS_STRING_MODE, { illegal: null, });\n const DOUBLE_QUOTED = hljs.inherit(hljs.QUOTE_STRING_MODE, {\n illegal: null,\n contains: hljs.QUOTE_STRING_MODE.contains.concat(SUBST),\n });\n\n const HEREDOC = {\n begin: /<<<[ \\t]*(?:(\\w+)|\"(\\w+)\")\\n/,\n end: /[ \\t]*(\\w+)\\b/,\n contains: hljs.QUOTE_STRING_MODE.contains.concat(SUBST),\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1] || m[2]; },\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); },\n };\n\n const NOWDOC = hljs.END_SAME_AS_BEGIN({\n begin: /<<<[ \\t]*'(\\w+)'\\n/,\n end: /[ \\t]*(\\w+)\\b/,\n });\n // list of valid whitespaces because non-breaking space might be part of a IDENT_RE\n const WHITESPACE = '[ \\t\\n]';\n const STRING = {\n scope: 'string',\n variants: [\n DOUBLE_QUOTED,\n SINGLE_QUOTED,\n HEREDOC,\n NOWDOC\n ]\n };\n const NUMBER = {\n scope: 'number',\n variants: [\n { begin: `\\\\b0[bB][01]+(?:_[01]+)*\\\\b` }, // Binary w/ underscore support\n { begin: `\\\\b0[oO][0-7]+(?:_[0-7]+)*\\\\b` }, // Octals w/ underscore support\n { begin: `\\\\b0[xX][\\\\da-fA-F]+(?:_[\\\\da-fA-F]+)*\\\\b` }, // Hex w/ underscore support\n // Decimals w/ underscore support, with optional fragments and scientific exponent (e) suffix.\n { begin: `(?:\\\\b\\\\d+(?:_\\\\d+)*(\\\\.(?:\\\\d+(?:_\\\\d+)*))?|\\\\B\\\\.\\\\d+)(?:[eE][+-]?\\\\d+)?` }\n ],\n relevance: 0\n };\n const LITERALS = [\n \"false\",\n \"null\",\n \"true\"\n ];\n const KWS = [\n // Magic constants:\n // \n \"__CLASS__\",\n \"__DIR__\",\n \"__FILE__\",\n \"__FUNCTION__\",\n \"__COMPILER_HALT_OFFSET__\",\n \"__LINE__\",\n \"__METHOD__\",\n \"__NAMESPACE__\",\n \"__TRAIT__\",\n // Function that look like language construct or language construct that look like function:\n // List of keywords that may not require parenthesis\n \"die\",\n \"echo\",\n \"exit\",\n \"include\",\n \"include_once\",\n \"print\",\n \"require\",\n \"require_once\",\n // These are not language construct (function) but operate on the currently-executing function and can access the current symbol table\n // 'compact extract func_get_arg func_get_args func_num_args get_called_class get_parent_class ' +\n // Other keywords:\n // \n // \n \"array\",\n \"abstract\",\n \"and\",\n \"as\",\n \"binary\",\n \"bool\",\n \"boolean\",\n \"break\",\n \"callable\",\n \"case\",\n \"catch\",\n \"class\",\n \"clone\",\n \"const\",\n \"continue\",\n \"declare\",\n \"default\",\n \"do\",\n \"double\",\n \"else\",\n \"elseif\",\n \"empty\",\n \"enddeclare\",\n \"endfor\",\n \"endforeach\",\n \"endif\",\n \"endswitch\",\n \"endwhile\",\n \"enum\",\n \"eval\",\n \"extends\",\n \"final\",\n \"finally\",\n \"float\",\n \"for\",\n \"foreach\",\n \"from\",\n \"global\",\n \"goto\",\n \"if\",\n \"implements\",\n \"instanceof\",\n \"insteadof\",\n \"int\",\n \"integer\",\n \"interface\",\n \"isset\",\n \"iterable\",\n \"list\",\n \"match|0\",\n \"mixed\",\n \"new\",\n \"never\",\n \"object\",\n \"or\",\n \"private\",\n \"protected\",\n \"public\",\n \"readonly\",\n \"real\",\n \"return\",\n \"string\",\n \"switch\",\n \"throw\",\n \"trait\",\n \"try\",\n \"unset\",\n \"use\",\n \"var\",\n \"void\",\n \"while\",\n \"xor\",\n \"yield\"\n ];\n\n const BUILT_INS = [\n // Standard PHP library:\n // \n \"Error|0\",\n \"AppendIterator\",\n \"ArgumentCountError\",\n \"ArithmeticError\",\n \"ArrayIterator\",\n \"ArrayObject\",\n \"AssertionError\",\n \"BadFunctionCallException\",\n \"BadMethodCallException\",\n \"CachingIterator\",\n \"CallbackFilterIterator\",\n \"CompileError\",\n \"Countable\",\n \"DirectoryIterator\",\n \"DivisionByZeroError\",\n \"DomainException\",\n \"EmptyIterator\",\n \"ErrorException\",\n \"Exception\",\n \"FilesystemIterator\",\n \"FilterIterator\",\n \"GlobIterator\",\n \"InfiniteIterator\",\n \"InvalidArgumentException\",\n \"IteratorIterator\",\n \"LengthException\",\n \"LimitIterator\",\n \"LogicException\",\n \"MultipleIterator\",\n \"NoRewindIterator\",\n \"OutOfBoundsException\",\n \"OutOfRangeException\",\n \"OuterIterator\",\n \"OverflowException\",\n \"ParentIterator\",\n \"ParseError\",\n \"RangeException\",\n \"RecursiveArrayIterator\",\n \"RecursiveCachingIterator\",\n \"RecursiveCallbackFilterIterator\",\n \"RecursiveDirectoryIterator\",\n \"RecursiveFilterIterator\",\n \"RecursiveIterator\",\n \"RecursiveIteratorIterator\",\n \"RecursiveRegexIterator\",\n \"RecursiveTreeIterator\",\n \"RegexIterator\",\n \"RuntimeException\",\n \"SeekableIterator\",\n \"SplDoublyLinkedList\",\n \"SplFileInfo\",\n \"SplFileObject\",\n \"SplFixedArray\",\n \"SplHeap\",\n \"SplMaxHeap\",\n \"SplMinHeap\",\n \"SplObjectStorage\",\n \"SplObserver\",\n \"SplPriorityQueue\",\n \"SplQueue\",\n \"SplStack\",\n \"SplSubject\",\n \"SplTempFileObject\",\n \"TypeError\",\n \"UnderflowException\",\n \"UnexpectedValueException\",\n \"UnhandledMatchError\",\n // Reserved interfaces:\n // \n \"ArrayAccess\",\n \"BackedEnum\",\n \"Closure\",\n \"Fiber\",\n \"Generator\",\n \"Iterator\",\n \"IteratorAggregate\",\n \"Serializable\",\n \"Stringable\",\n \"Throwable\",\n \"Traversable\",\n \"UnitEnum\",\n \"WeakReference\",\n \"WeakMap\",\n // Reserved classes:\n // \n \"Directory\",\n \"__PHP_Incomplete_Class\",\n \"parent\",\n \"php_user_filter\",\n \"self\",\n \"static\",\n \"stdClass\"\n ];\n\n /** Dual-case keywords\n *\n * [\"then\",\"FILE\"] =>\n * [\"then\", \"THEN\", \"FILE\", \"file\"]\n *\n * @param {string[]} items */\n const dualCase = (items) => {\n /** @type string[] */\n const result = [];\n items.forEach(item => {\n result.push(item);\n if (item.toLowerCase() === item) {\n result.push(item.toUpperCase());\n } else {\n result.push(item.toLowerCase());\n }\n });\n return result;\n };\n\n const KEYWORDS = {\n keyword: KWS,\n literal: dualCase(LITERALS),\n built_in: BUILT_INS,\n };\n\n /**\n * @param {string[]} items */\n const normalizeKeywords = (items) => {\n return items.map(item => {\n return item.replace(/\\|\\d+$/, \"\");\n });\n };\n\n const CONSTRUCTOR_CALL = { variants: [\n {\n match: [\n /new/,\n regex.concat(WHITESPACE, \"+\"),\n // to prevent built ins from being confused as the class constructor call\n regex.concat(\"(?!\", normalizeKeywords(BUILT_INS).join(\"\\\\b|\"), \"\\\\b)\"),\n PASCAL_CASE_CLASS_NAME_RE,\n ],\n scope: {\n 1: \"keyword\",\n 4: \"title.class\",\n },\n }\n ] };\n\n const CONSTANT_REFERENCE = regex.concat(IDENT_RE, \"\\\\b(?!\\\\()\");\n\n const LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON = { variants: [\n {\n match: [\n regex.concat(\n /::/,\n regex.lookahead(/(?!class\\b)/)\n ),\n CONSTANT_REFERENCE,\n ],\n scope: { 2: \"variable.constant\", },\n },\n {\n match: [\n /::/,\n /class/,\n ],\n scope: { 2: \"variable.language\", },\n },\n {\n match: [\n PASCAL_CASE_CLASS_NAME_RE,\n regex.concat(\n /::/,\n regex.lookahead(/(?!class\\b)/)\n ),\n CONSTANT_REFERENCE,\n ],\n scope: {\n 1: \"title.class\",\n 3: \"variable.constant\",\n },\n },\n {\n match: [\n PASCAL_CASE_CLASS_NAME_RE,\n regex.concat(\n \"::\",\n regex.lookahead(/(?!class\\b)/)\n ),\n ],\n scope: { 1: \"title.class\", },\n },\n {\n match: [\n PASCAL_CASE_CLASS_NAME_RE,\n /::/,\n /class/,\n ],\n scope: {\n 1: \"title.class\",\n 3: \"variable.language\",\n },\n }\n ] };\n\n const NAMED_ARGUMENT = {\n scope: 'attr',\n match: regex.concat(IDENT_RE, regex.lookahead(':'), regex.lookahead(/(?!::)/)),\n };\n const PARAMS_MODE = {\n relevance: 0,\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n contains: [\n NAMED_ARGUMENT,\n VARIABLE,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n NUMBER,\n CONSTRUCTOR_CALL,\n ],\n };\n const FUNCTION_INVOKE = {\n relevance: 0,\n match: [\n /\\b/,\n // to prevent keywords from being confused as the function title\n regex.concat(\"(?!fn\\\\b|function\\\\b|\", normalizeKeywords(KWS).join(\"\\\\b|\"), \"|\", normalizeKeywords(BUILT_INS).join(\"\\\\b|\"), \"\\\\b)\"),\n IDENT_RE,\n regex.concat(WHITESPACE, \"*\"),\n regex.lookahead(/(?=\\()/)\n ],\n scope: { 3: \"title.function.invoke\", },\n contains: [ PARAMS_MODE ]\n };\n PARAMS_MODE.contains.push(FUNCTION_INVOKE);\n\n const ATTRIBUTE_CONTAINS = [\n NAMED_ARGUMENT,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n NUMBER,\n CONSTRUCTOR_CALL,\n ];\n\n const ATTRIBUTES = {\n begin: regex.concat(/#\\[\\s*\\\\?/,\n regex.either(\n PASCAL_CASE_CLASS_NAME_RE,\n UPCASE_NAME_RE\n )\n ),\n beginScope: \"meta\",\n end: /]/,\n endScope: \"meta\",\n keywords: {\n literal: LITERALS,\n keyword: [\n 'new',\n 'array',\n ]\n },\n contains: [\n {\n begin: /\\[/,\n end: /]/,\n keywords: {\n literal: LITERALS,\n keyword: [\n 'new',\n 'array',\n ]\n },\n contains: [\n 'self',\n ...ATTRIBUTE_CONTAINS,\n ]\n },\n ...ATTRIBUTE_CONTAINS,\n {\n scope: 'meta',\n variants: [\n { match: PASCAL_CASE_CLASS_NAME_RE },\n { match: UPCASE_NAME_RE }\n ]\n }\n ]\n };\n\n return {\n case_insensitive: false,\n keywords: KEYWORDS,\n contains: [\n ATTRIBUTES,\n hljs.HASH_COMMENT_MODE,\n hljs.COMMENT('//', '$'),\n hljs.COMMENT(\n '/\\\\*',\n '\\\\*/',\n { contains: [\n {\n scope: 'doctag',\n match: '@[A-Za-z]+'\n }\n ] }\n ),\n {\n match: /__halt_compiler\\(\\);/,\n keywords: '__halt_compiler',\n starts: {\n scope: \"comment\",\n end: hljs.MATCH_NOTHING_RE,\n contains: [\n {\n match: /\\?>/,\n scope: \"meta\",\n endsParent: true\n }\n ]\n }\n },\n PREPROCESSOR,\n {\n scope: 'variable.language',\n match: /\\$this\\b/\n },\n VARIABLE,\n FUNCTION_INVOKE,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n {\n match: [\n /const/,\n /\\s/,\n IDENT_RE,\n ],\n scope: {\n 1: \"keyword\",\n 3: \"variable.constant\",\n },\n },\n CONSTRUCTOR_CALL,\n {\n scope: 'function',\n relevance: 0,\n beginKeywords: 'fn function',\n end: /[;{]/,\n excludeEnd: true,\n illegal: '[$%\\\\[]',\n contains: [\n { beginKeywords: 'use', },\n hljs.UNDERSCORE_TITLE_MODE,\n {\n begin: '=>', // No markup, just a relevance booster\n endsParent: true\n },\n {\n scope: 'params',\n begin: '\\\\(',\n end: '\\\\)',\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [\n 'self',\n ATTRIBUTES,\n VARIABLE,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n NUMBER\n ]\n },\n ]\n },\n {\n scope: 'class',\n variants: [\n {\n beginKeywords: \"enum\",\n illegal: /[($\"]/\n },\n {\n beginKeywords: \"class interface trait\",\n illegal: /[:($\"]/\n }\n ],\n relevance: 0,\n end: /\\{/,\n excludeEnd: true,\n contains: [\n { beginKeywords: 'extends implements' },\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n // both use and namespace still use \"old style\" rules (vs multi-match)\n // because the namespace name can include `\\` and we still want each\n // element to be treated as its own *individual* title\n {\n beginKeywords: 'namespace',\n relevance: 0,\n end: ';',\n illegal: /[.']/,\n contains: [ hljs.inherit(hljs.UNDERSCORE_TITLE_MODE, { scope: \"title.class\" }) ]\n },\n {\n beginKeywords: 'use',\n relevance: 0,\n end: ';',\n contains: [\n // TODO: title.function vs title.class\n {\n match: /\\b(as|const|function)\\b/,\n scope: \"keyword\"\n },\n // TODO: could be title.class or title.function\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n STRING,\n NUMBER,\n ]\n };\n}\n\nexport { php as default };\n","/*\nLanguage: PHP Template\nRequires: xml.js, php.js\nAuthor: Josh Goebel \nWebsite: https://www.php.net\nCategory: common\n*/\n\nfunction phpTemplate(hljs) {\n return {\n name: \"PHP template\",\n subLanguage: 'xml',\n contains: [\n {\n begin: /<\\?(php|=)?/,\n end: /\\?>/,\n subLanguage: 'php',\n contains: [\n // We don't want the php closing tag ?> to close the PHP block when\n // inside any of the following blocks:\n {\n begin: '/\\\\*',\n end: '\\\\*/',\n skip: true\n },\n {\n begin: 'b\"',\n end: '\"',\n skip: true\n },\n {\n begin: 'b\\'',\n end: '\\'',\n skip: true\n },\n hljs.inherit(hljs.APOS_STRING_MODE, {\n illegal: null,\n className: null,\n contains: null,\n skip: true\n }),\n hljs.inherit(hljs.QUOTE_STRING_MODE, {\n illegal: null,\n className: null,\n contains: null,\n skip: true\n })\n ]\n }\n ]\n };\n}\n\nexport { phpTemplate as default };\n","/*\nLanguage: Plain text\nAuthor: Egor Rogov (e.rogov@postgrespro.ru)\nDescription: Plain text without any highlighting.\nCategory: common\n*/\n\nfunction plaintext(hljs) {\n return {\n name: 'Plain text',\n aliases: [\n 'text',\n 'txt'\n ],\n disableAutodetect: true\n };\n}\n\nexport { plaintext as default };\n","/*\nLanguage: Python\nDescription: Python is an interpreted, object-oriented, high-level programming language with dynamic semantics.\nWebsite: https://www.python.org\nCategory: common\n*/\n\nfunction python(hljs) {\n const regex = hljs.regex;\n const IDENT_RE = /[\\p{XID_Start}_]\\p{XID_Continue}*/u;\n const RESERVED_WORDS = [\n 'and',\n 'as',\n 'assert',\n 'async',\n 'await',\n 'break',\n 'case',\n 'class',\n 'continue',\n 'def',\n 'del',\n 'elif',\n 'else',\n 'except',\n 'finally',\n 'for',\n 'from',\n 'global',\n 'if',\n 'import',\n 'in',\n 'is',\n 'lambda',\n 'match',\n 'nonlocal|10',\n 'not',\n 'or',\n 'pass',\n 'raise',\n 'return',\n 'try',\n 'while',\n 'with',\n 'yield'\n ];\n\n const BUILT_INS = [\n '__import__',\n 'abs',\n 'all',\n 'any',\n 'ascii',\n 'bin',\n 'bool',\n 'breakpoint',\n 'bytearray',\n 'bytes',\n 'callable',\n 'chr',\n 'classmethod',\n 'compile',\n 'complex',\n 'delattr',\n 'dict',\n 'dir',\n 'divmod',\n 'enumerate',\n 'eval',\n 'exec',\n 'filter',\n 'float',\n 'format',\n 'frozenset',\n 'getattr',\n 'globals',\n 'hasattr',\n 'hash',\n 'help',\n 'hex',\n 'id',\n 'input',\n 'int',\n 'isinstance',\n 'issubclass',\n 'iter',\n 'len',\n 'list',\n 'locals',\n 'map',\n 'max',\n 'memoryview',\n 'min',\n 'next',\n 'object',\n 'oct',\n 'open',\n 'ord',\n 'pow',\n 'print',\n 'property',\n 'range',\n 'repr',\n 'reversed',\n 'round',\n 'set',\n 'setattr',\n 'slice',\n 'sorted',\n 'staticmethod',\n 'str',\n 'sum',\n 'super',\n 'tuple',\n 'type',\n 'vars',\n 'zip'\n ];\n\n const LITERALS = [\n '__debug__',\n 'Ellipsis',\n 'False',\n 'None',\n 'NotImplemented',\n 'True'\n ];\n\n // https://docs.python.org/3/library/typing.html\n // TODO: Could these be supplemented by a CamelCase matcher in certain\n // contexts, leaving these remaining only for relevance hinting?\n const TYPES = [\n \"Any\",\n \"Callable\",\n \"Coroutine\",\n \"Dict\",\n \"List\",\n \"Literal\",\n \"Generic\",\n \"Optional\",\n \"Sequence\",\n \"Set\",\n \"Tuple\",\n \"Type\",\n \"Union\"\n ];\n\n const KEYWORDS = {\n $pattern: /[A-Za-z]\\w+|__\\w+__/,\n keyword: RESERVED_WORDS,\n built_in: BUILT_INS,\n literal: LITERALS,\n type: TYPES\n };\n\n const PROMPT = {\n className: 'meta',\n begin: /^(>>>|\\.\\.\\.) /\n };\n\n const SUBST = {\n className: 'subst',\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS,\n illegal: /#/\n };\n\n const LITERAL_BRACKET = {\n begin: /\\{\\{/,\n relevance: 0\n };\n\n const STRING = {\n className: 'string',\n contains: [ hljs.BACKSLASH_ESCAPE ],\n variants: [\n {\n begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,\n end: /'''/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT\n ],\n relevance: 10\n },\n {\n begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?\"\"\"/,\n end: /\"\"\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT\n ],\n relevance: 10\n },\n {\n begin: /([fF][rR]|[rR][fF]|[fF])'''/,\n end: /'''/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n {\n begin: /([fF][rR]|[rR][fF]|[fF])\"\"\"/,\n end: /\"\"\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n {\n begin: /([uU]|[rR])'/,\n end: /'/,\n relevance: 10\n },\n {\n begin: /([uU]|[rR])\"/,\n end: /\"/,\n relevance: 10\n },\n {\n begin: /([bB]|[bB][rR]|[rR][bB])'/,\n end: /'/\n },\n {\n begin: /([bB]|[bB][rR]|[rR][bB])\"/,\n end: /\"/\n },\n {\n begin: /([fF][rR]|[rR][fF]|[fF])'/,\n end: /'/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n {\n begin: /([fF][rR]|[rR][fF]|[fF])\"/,\n end: /\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n };\n\n // https://docs.python.org/3.9/reference/lexical_analysis.html#numeric-literals\n const digitpart = '[0-9](_?[0-9])*';\n const pointfloat = `(\\\\b(${digitpart}))?\\\\.(${digitpart})|\\\\b(${digitpart})\\\\.`;\n // Whitespace after a number (or any lexical token) is needed only if its absence\n // would change the tokenization\n // https://docs.python.org/3.9/reference/lexical_analysis.html#whitespace-between-tokens\n // We deviate slightly, requiring a word boundary or a keyword\n // to avoid accidentally recognizing *prefixes* (e.g., `0` in `0x41` or `08` or `0__1`)\n const lookahead = `\\\\b|${RESERVED_WORDS.join('|')}`;\n const NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n // exponentfloat, pointfloat\n // https://docs.python.org/3.9/reference/lexical_analysis.html#floating-point-literals\n // optionally imaginary\n // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals\n // Note: no leading \\b because floats can start with a decimal point\n // and we don't want to mishandle e.g. `fn(.5)`,\n // no trailing \\b for pointfloat because it can end with a decimal point\n // and we don't want to mishandle e.g. `0..hex()`; this should be safe\n // because both MUST contain a decimal point and so cannot be confused with\n // the interior part of an identifier\n {\n begin: `(\\\\b(${digitpart})|(${pointfloat}))[eE][+-]?(${digitpart})[jJ]?(?=${lookahead})`\n },\n {\n begin: `(${pointfloat})[jJ]?`\n },\n\n // decinteger, bininteger, octinteger, hexinteger\n // https://docs.python.org/3.9/reference/lexical_analysis.html#integer-literals\n // optionally \"long\" in Python 2\n // https://docs.python.org/2.7/reference/lexical_analysis.html#integer-and-long-integer-literals\n // decinteger is optionally imaginary\n // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals\n {\n begin: `\\\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${lookahead})`\n },\n {\n begin: `\\\\b0[bB](_?[01])+[lL]?(?=${lookahead})`\n },\n {\n begin: `\\\\b0[oO](_?[0-7])+[lL]?(?=${lookahead})`\n },\n {\n begin: `\\\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${lookahead})`\n },\n\n // imagnumber (digitpart-based)\n // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals\n {\n begin: `\\\\b(${digitpart})[jJ](?=${lookahead})`\n }\n ]\n };\n const COMMENT_TYPE = {\n className: \"comment\",\n begin: regex.lookahead(/# type:/),\n end: /$/,\n keywords: KEYWORDS,\n contains: [\n { // prevent keywords from coloring `type`\n begin: /# type:/\n },\n // comment within a datatype comment includes no keywords\n {\n begin: /#/,\n end: /\\b\\B/,\n endsWithParent: true\n }\n ]\n };\n const PARAMS = {\n className: 'params',\n variants: [\n // Exclude params in functions without params\n {\n className: \"\",\n begin: /\\(\\s*\\)/,\n skip: true\n },\n {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [\n 'self',\n PROMPT,\n NUMBER,\n STRING,\n hljs.HASH_COMMENT_MODE\n ]\n }\n ]\n };\n SUBST.contains = [\n STRING,\n NUMBER,\n PROMPT\n ];\n\n return {\n name: 'Python',\n aliases: [\n 'py',\n 'gyp',\n 'ipython'\n ],\n unicodeRegex: true,\n keywords: KEYWORDS,\n illegal: /(<\\/|\\?)|=>/,\n contains: [\n PROMPT,\n NUMBER,\n {\n // very common convention\n scope: 'variable.language',\n match: /\\bself\\b/\n },\n {\n // eat \"if\" prior to string so that it won't accidentally be\n // labeled as an f-string\n beginKeywords: \"if\",\n relevance: 0\n },\n { match: /\\bor\\b/, scope: \"keyword\" },\n STRING,\n COMMENT_TYPE,\n hljs.HASH_COMMENT_MODE,\n {\n match: [\n /\\bdef/, /\\s+/,\n IDENT_RE,\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [ PARAMS ]\n },\n {\n variants: [\n {\n match: [\n /\\bclass/, /\\s+/,\n IDENT_RE, /\\s*/,\n /\\(\\s*/, IDENT_RE,/\\s*\\)/\n ],\n },\n {\n match: [\n /\\bclass/, /\\s+/,\n IDENT_RE\n ],\n }\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\",\n 6: \"title.class.inherited\",\n }\n },\n {\n className: 'meta',\n begin: /^[\\t ]*@/,\n end: /(?=#)|$/,\n contains: [\n NUMBER,\n PARAMS,\n STRING\n ]\n }\n ]\n };\n}\n\nexport { python as default };\n","/*\nLanguage: Python REPL\nRequires: python.js\nAuthor: Josh Goebel \nCategory: common\n*/\n\nfunction pythonRepl(hljs) {\n return {\n aliases: [ 'pycon' ],\n contains: [\n {\n className: 'meta.prompt',\n starts: {\n // a space separates the REPL prefix from the actual code\n // this is purely for cleaner HTML output\n end: / |$/,\n starts: {\n end: '$',\n subLanguage: 'python'\n }\n },\n variants: [\n { begin: /^>>>(?=[ ]|$)/ },\n { begin: /^\\.\\.\\.(?=[ ]|$)/ }\n ]\n }\n ]\n };\n}\n\nexport { pythonRepl as default };\n","/*\nLanguage: R\nDescription: R is a free software environment for statistical computing and graphics.\nAuthor: Joe Cheng \nContributors: Konrad Rudolph \nWebsite: https://www.r-project.org\nCategory: common,scientific\n*/\n\n/** @type LanguageFn */\nfunction r(hljs) {\n const regex = hljs.regex;\n // Identifiers in R cannot start with `_`, but they can start with `.` if it\n // is not immediately followed by a digit.\n // R also supports quoted identifiers, which are near-arbitrary sequences\n // delimited by backticks (`…`), which may contain escape sequences. These are\n // handled in a separate mode. See `test/markup/r/names.txt` for examples.\n // FIXME: Support Unicode identifiers.\n const IDENT_RE = /(?:(?:[a-zA-Z]|\\.[._a-zA-Z])[._a-zA-Z0-9]*)|\\.(?!\\d)/;\n const NUMBER_TYPES_RE = regex.either(\n // Special case: only hexadecimal binary powers can contain fractions\n /0[xX][0-9a-fA-F]+\\.[0-9a-fA-F]*[pP][+-]?\\d+i?/,\n // Hexadecimal numbers without fraction and optional binary power\n /0[xX][0-9a-fA-F]+(?:[pP][+-]?\\d+)?[Li]?/,\n // Decimal numbers\n /(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?[Li]?/\n );\n const OPERATORS_RE = /[=!<>:]=|\\|\\||&&|:::?|<-|<<-|->>|->|\\|>|[-+*\\/?!$&|:<=>@^~]|\\*\\*/;\n const PUNCTUATION_RE = regex.either(\n /[()]/,\n /[{}]/,\n /\\[\\[/,\n /[[\\]]/,\n /\\\\/,\n /,/\n );\n\n return {\n name: 'R',\n\n keywords: {\n $pattern: IDENT_RE,\n keyword:\n 'function if in break next repeat else for while',\n literal:\n 'NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 '\n + 'NA_character_|10 NA_complex_|10',\n built_in:\n // Builtin constants\n 'LETTERS letters month.abb month.name pi T F '\n // Primitive functions\n // These are all the functions in `base` that are implemented as a\n // `.Primitive`, minus those functions that are also keywords.\n + 'abs acos acosh all any anyNA Arg as.call as.character '\n + 'as.complex as.double as.environment as.integer as.logical '\n + 'as.null.default as.numeric as.raw asin asinh atan atanh attr '\n + 'attributes baseenv browser c call ceiling class Conj cos cosh '\n + 'cospi cummax cummin cumprod cumsum digamma dim dimnames '\n + 'emptyenv exp expression floor forceAndCall gamma gc.time '\n + 'globalenv Im interactive invisible is.array is.atomic is.call '\n + 'is.character is.complex is.double is.environment is.expression '\n + 'is.finite is.function is.infinite is.integer is.language '\n + 'is.list is.logical is.matrix is.na is.name is.nan is.null '\n + 'is.numeric is.object is.pairlist is.raw is.recursive is.single '\n + 'is.symbol lazyLoadDBfetch length lgamma list log max min '\n + 'missing Mod names nargs nzchar oldClass on.exit pos.to.env '\n + 'proc.time prod quote range Re rep retracemem return round '\n + 'seq_along seq_len seq.int sign signif sin sinh sinpi sqrt '\n + 'standardGeneric substitute sum switch tan tanh tanpi tracemem '\n + 'trigamma trunc unclass untracemem UseMethod xtfrm',\n },\n\n contains: [\n // Roxygen comments\n hljs.COMMENT(\n /#'/,\n /$/,\n { contains: [\n {\n // Handle `@examples` separately to cause all subsequent code\n // until the next `@`-tag on its own line to be kept as-is,\n // preventing highlighting. This code is example R code, so nested\n // doctags shouldn’t be treated as such. See\n // `test/markup/r/roxygen.txt` for an example.\n scope: 'doctag',\n match: /@examples/,\n starts: {\n end: regex.lookahead(regex.either(\n // end if another doc comment\n /\\n^#'\\s*(?=@[a-zA-Z]+)/,\n // or a line with no comment\n /\\n^(?!#')/\n )),\n endsParent: true\n }\n },\n {\n // Handle `@param` to highlight the parameter name following\n // after.\n scope: 'doctag',\n begin: '@param',\n end: /$/,\n contains: [\n {\n scope: 'variable',\n variants: [\n { match: IDENT_RE },\n { match: /`(?:\\\\.|[^`\\\\])+`/ }\n ],\n endsParent: true\n }\n ]\n },\n {\n scope: 'doctag',\n match: /@[a-zA-Z]+/\n },\n {\n scope: 'keyword',\n match: /\\\\[a-zA-Z]+/\n }\n ] }\n ),\n\n hljs.HASH_COMMENT_MODE,\n\n {\n scope: 'string',\n contains: [ hljs.BACKSLASH_ESCAPE ],\n variants: [\n hljs.END_SAME_AS_BEGIN({\n begin: /[rR]\"(-*)\\(/,\n end: /\\)(-*)\"/\n }),\n hljs.END_SAME_AS_BEGIN({\n begin: /[rR]\"(-*)\\{/,\n end: /\\}(-*)\"/\n }),\n hljs.END_SAME_AS_BEGIN({\n begin: /[rR]\"(-*)\\[/,\n end: /\\](-*)\"/\n }),\n hljs.END_SAME_AS_BEGIN({\n begin: /[rR]'(-*)\\(/,\n end: /\\)(-*)'/\n }),\n hljs.END_SAME_AS_BEGIN({\n begin: /[rR]'(-*)\\{/,\n end: /\\}(-*)'/\n }),\n hljs.END_SAME_AS_BEGIN({\n begin: /[rR]'(-*)\\[/,\n end: /\\](-*)'/\n }),\n {\n begin: '\"',\n end: '\"',\n relevance: 0\n },\n {\n begin: \"'\",\n end: \"'\",\n relevance: 0\n }\n ],\n },\n\n // Matching numbers immediately following punctuation and operators is\n // tricky since we need to look at the character ahead of a number to\n // ensure the number is not part of an identifier, and we cannot use\n // negative look-behind assertions. So instead we explicitly handle all\n // possible combinations of (operator|punctuation), number.\n // TODO: replace with negative look-behind when available\n // { begin: /(?\nContributors: Peter Leonov , Vasily Polovnyov , Loren Segal , Pascal Hurni , Cedric Sohrauer \nCategory: common, scripting\n*/\n\nfunction ruby(hljs) {\n const regex = hljs.regex;\n const RUBY_METHOD_RE = '([a-zA-Z_]\\\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~`|]|\\\\[\\\\]=?)';\n // TODO: move concepts like CAMEL_CASE into `modes.js`\n const CLASS_NAME_RE = regex.either(\n /\\b([A-Z]+[a-z0-9]+)+/,\n // ends in caps\n /\\b([A-Z]+[a-z0-9]+)+[A-Z]+/,\n )\n ;\n const CLASS_NAME_WITH_NAMESPACE_RE = regex.concat(CLASS_NAME_RE, /(::\\w+)*/);\n // very popular ruby built-ins that one might even assume\n // are actual keywords (despite that not being the case)\n const PSEUDO_KWS = [\n \"include\",\n \"extend\",\n \"prepend\",\n \"public\",\n \"private\",\n \"protected\",\n \"raise\",\n \"throw\"\n ];\n const RUBY_KEYWORDS = {\n \"variable.constant\": [\n \"__FILE__\",\n \"__LINE__\",\n \"__ENCODING__\"\n ],\n \"variable.language\": [\n \"self\",\n \"super\",\n ],\n keyword: [\n \"alias\",\n \"and\",\n \"begin\",\n \"BEGIN\",\n \"break\",\n \"case\",\n \"class\",\n \"defined\",\n \"do\",\n \"else\",\n \"elsif\",\n \"end\",\n \"END\",\n \"ensure\",\n \"for\",\n \"if\",\n \"in\",\n \"module\",\n \"next\",\n \"not\",\n \"or\",\n \"redo\",\n \"require\",\n \"rescue\",\n \"retry\",\n \"return\",\n \"then\",\n \"undef\",\n \"unless\",\n \"until\",\n \"when\",\n \"while\",\n \"yield\",\n ...PSEUDO_KWS\n ],\n built_in: [\n \"proc\",\n \"lambda\",\n \"attr_accessor\",\n \"attr_reader\",\n \"attr_writer\",\n \"define_method\",\n \"private_constant\",\n \"module_function\"\n ],\n literal: [\n \"true\",\n \"false\",\n \"nil\"\n ]\n };\n const YARDOCTAG = {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n };\n const IRB_OBJECT = {\n begin: '#<',\n end: '>'\n };\n const COMMENT_MODES = [\n hljs.COMMENT(\n '#',\n '$',\n { contains: [ YARDOCTAG ] }\n ),\n hljs.COMMENT(\n '^=begin',\n '^=end',\n {\n contains: [ YARDOCTAG ],\n relevance: 10\n }\n ),\n hljs.COMMENT('^__END__', hljs.MATCH_NOTHING_RE)\n ];\n const SUBST = {\n className: 'subst',\n begin: /#\\{/,\n end: /\\}/,\n keywords: RUBY_KEYWORDS\n };\n const STRING = {\n className: 'string',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n variants: [\n {\n begin: /'/,\n end: /'/\n },\n {\n begin: /\"/,\n end: /\"/\n },\n {\n begin: /`/,\n end: /`/\n },\n {\n begin: /%[qQwWx]?\\(/,\n end: /\\)/\n },\n {\n begin: /%[qQwWx]?\\[/,\n end: /\\]/\n },\n {\n begin: /%[qQwWx]?\\{/,\n end: /\\}/\n },\n {\n begin: /%[qQwWx]?/\n },\n {\n begin: /%[qQwWx]?\\//,\n end: /\\//\n },\n {\n begin: /%[qQwWx]?%/,\n end: /%/\n },\n {\n begin: /%[qQwWx]?-/,\n end: /-/\n },\n {\n begin: /%[qQwWx]?\\|/,\n end: /\\|/\n },\n // in the following expressions, \\B in the beginning suppresses recognition of ?-sequences\n // where ? is the last character of a preceding identifier, as in: `func?4`\n { begin: /\\B\\?(\\\\\\d{1,3})/ },\n { begin: /\\B\\?(\\\\x[A-Fa-f0-9]{1,2})/ },\n { begin: /\\B\\?(\\\\u\\{?[A-Fa-f0-9]{1,6}\\}?)/ },\n { begin: /\\B\\?(\\\\M-\\\\C-|\\\\M-\\\\c|\\\\c\\\\M-|\\\\M-|\\\\C-\\\\M-)[\\x20-\\x7e]/ },\n { begin: /\\B\\?\\\\(c|C-)[\\x20-\\x7e]/ },\n { begin: /\\B\\?\\\\?\\S/ },\n // heredocs\n {\n // this guard makes sure that we have an entire heredoc and not a false\n // positive (auto-detect, etc.)\n begin: regex.concat(\n /<<[-~]?'?/,\n regex.lookahead(/(\\w+)(?=\\W)[^\\n]*\\n(?:[^\\n]*\\n)*?\\s*\\1\\b/)\n ),\n contains: [\n hljs.END_SAME_AS_BEGIN({\n begin: /(\\w+)/,\n end: /(\\w+)/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n })\n ]\n }\n ]\n };\n\n // Ruby syntax is underdocumented, but this grammar seems to be accurate\n // as of version 2.7.2 (confirmed with (irb and `Ripper.sexp(...)`)\n // https://docs.ruby-lang.org/en/2.7.0/doc/syntax/literals_rdoc.html#label-Numbers\n const decimal = '[1-9](_?[0-9])*|0';\n const digits = '[0-9](_?[0-9])*';\n const NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n // decimal integer/float, optionally exponential or rational, optionally imaginary\n { begin: `\\\\b(${decimal})(\\\\.(${digits}))?([eE][+-]?(${digits})|r)?i?\\\\b` },\n\n // explicit decimal/binary/octal/hexadecimal integer,\n // optionally rational and/or imaginary\n { begin: \"\\\\b0[dD][0-9](_?[0-9])*r?i?\\\\b\" },\n { begin: \"\\\\b0[bB][0-1](_?[0-1])*r?i?\\\\b\" },\n { begin: \"\\\\b0[oO][0-7](_?[0-7])*r?i?\\\\b\" },\n { begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\\\b\" },\n\n // 0-prefixed implicit octal integer, optionally rational and/or imaginary\n { begin: \"\\\\b0(_?[0-7])+r?i?\\\\b\" }\n ]\n };\n\n const PARAMS = {\n variants: [\n {\n match: /\\(\\)/,\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /(?=\\))/,\n excludeBegin: true,\n endsParent: true,\n keywords: RUBY_KEYWORDS,\n }\n ]\n };\n\n const INCLUDE_EXTEND = {\n match: [\n /(include|extend)\\s+/,\n CLASS_NAME_WITH_NAMESPACE_RE\n ],\n scope: {\n 2: \"title.class\"\n },\n keywords: RUBY_KEYWORDS\n };\n\n const CLASS_DEFINITION = {\n variants: [\n {\n match: [\n /class\\s+/,\n CLASS_NAME_WITH_NAMESPACE_RE,\n /\\s+<\\s+/,\n CLASS_NAME_WITH_NAMESPACE_RE\n ]\n },\n {\n match: [\n /\\b(class|module)\\s+/,\n CLASS_NAME_WITH_NAMESPACE_RE\n ]\n }\n ],\n scope: {\n 2: \"title.class\",\n 4: \"title.class.inherited\"\n },\n keywords: RUBY_KEYWORDS\n };\n\n const UPPER_CASE_CONSTANT = {\n relevance: 0,\n match: /\\b[A-Z][A-Z_0-9]+\\b/,\n className: \"variable.constant\"\n };\n\n const METHOD_DEFINITION = {\n match: [\n /def/, /\\s+/,\n RUBY_METHOD_RE\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n PARAMS\n ]\n };\n\n const OBJECT_CREATION = {\n relevance: 0,\n match: [\n CLASS_NAME_WITH_NAMESPACE_RE,\n /\\.new[. (]/\n ],\n scope: {\n 1: \"title.class\"\n }\n };\n\n // CamelCase\n const CLASS_REFERENCE = {\n relevance: 0,\n match: CLASS_NAME_RE,\n scope: \"title.class\"\n };\n\n const RUBY_DEFAULT_CONTAINS = [\n STRING,\n CLASS_DEFINITION,\n INCLUDE_EXTEND,\n OBJECT_CREATION,\n UPPER_CASE_CONSTANT,\n CLASS_REFERENCE,\n METHOD_DEFINITION,\n {\n // swallow namespace qualifiers before symbols\n begin: hljs.IDENT_RE + '::' },\n {\n className: 'symbol',\n begin: hljs.UNDERSCORE_IDENT_RE + '(!|\\\\?)?:',\n relevance: 0\n },\n {\n className: 'symbol',\n begin: ':(?!\\\\s)',\n contains: [\n STRING,\n { begin: RUBY_METHOD_RE }\n ],\n relevance: 0\n },\n NUMBER,\n {\n // negative-look forward attempts to prevent false matches like:\n // @ident@ or $ident$ that might indicate this is not ruby at all\n className: \"variable\",\n begin: '(\\\\$\\\\W)|((\\\\$|@@?)(\\\\w+))(?=[^@$?])' + `(?![A-Za-z])(?![@$?'])`\n },\n {\n className: 'params',\n begin: /\\|(?!=)/,\n end: /\\|/,\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0, // this could be a lot of things (in other languages) other than params\n keywords: RUBY_KEYWORDS\n },\n { // regexp container\n begin: '(' + hljs.RE_STARTERS_RE + '|unless)\\\\s*',\n keywords: 'unless',\n contains: [\n {\n className: 'regexp',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n illegal: /\\n/,\n variants: [\n {\n begin: '/',\n end: '/[a-z]*'\n },\n {\n begin: /%r\\{/,\n end: /\\}[a-z]*/\n },\n {\n begin: '%r\\\\(',\n end: '\\\\)[a-z]*'\n },\n {\n begin: '%r!',\n end: '![a-z]*'\n },\n {\n begin: '%r\\\\[',\n end: '\\\\][a-z]*'\n }\n ]\n }\n ].concat(IRB_OBJECT, COMMENT_MODES),\n relevance: 0\n }\n ].concat(IRB_OBJECT, COMMENT_MODES);\n\n SUBST.contains = RUBY_DEFAULT_CONTAINS;\n PARAMS.contains = RUBY_DEFAULT_CONTAINS;\n\n // >>\n // ?>\n const SIMPLE_PROMPT = \"[>?]>\";\n // irb(main):001:0>\n const DEFAULT_PROMPT = \"[\\\\w#]+\\\\(\\\\w+\\\\):\\\\d+:\\\\d+[>*]\";\n const RVM_PROMPT = \"(\\\\w+-)?\\\\d+\\\\.\\\\d+\\\\.\\\\d+(p\\\\d+)?[^\\\\d][^>]+>\";\n\n const IRB_DEFAULT = [\n {\n begin: /^\\s*=>/,\n starts: {\n end: '$',\n contains: RUBY_DEFAULT_CONTAINS\n }\n },\n {\n className: 'meta.prompt',\n begin: '^(' + SIMPLE_PROMPT + \"|\" + DEFAULT_PROMPT + '|' + RVM_PROMPT + ')(?=[ ])',\n starts: {\n end: '$',\n keywords: RUBY_KEYWORDS,\n contains: RUBY_DEFAULT_CONTAINS\n }\n }\n ];\n\n COMMENT_MODES.unshift(IRB_OBJECT);\n\n return {\n name: 'Ruby',\n aliases: [\n 'rb',\n 'gemspec',\n 'podspec',\n 'thor',\n 'irb'\n ],\n keywords: RUBY_KEYWORDS,\n illegal: /\\/\\*/,\n contains: [ hljs.SHEBANG({ binary: \"ruby\" }) ]\n .concat(IRB_DEFAULT)\n .concat(COMMENT_MODES)\n .concat(RUBY_DEFAULT_CONTAINS)\n };\n}\n\nexport { ruby as default };\n","/*\nLanguage: Rust\nAuthor: Andrey Vlasovskikh \nContributors: Roman Shmatov , Kasper Andersen \nWebsite: https://www.rust-lang.org\nCategory: common, system\n*/\n\n/** @type LanguageFn */\n\nfunction rust(hljs) {\n const regex = hljs.regex;\n // ============================================\n // Added to support the r# keyword, which is a raw identifier in Rust.\n const RAW_IDENTIFIER = /(r#)?/;\n const UNDERSCORE_IDENT_RE = regex.concat(RAW_IDENTIFIER, hljs.UNDERSCORE_IDENT_RE);\n const IDENT_RE = regex.concat(RAW_IDENTIFIER, hljs.IDENT_RE);\n // ============================================\n const FUNCTION_INVOKE = {\n className: \"title.function.invoke\",\n relevance: 0,\n begin: regex.concat(\n /\\b/,\n /(?!let|for|while|if|else|match\\b)/,\n IDENT_RE,\n regex.lookahead(/\\s*\\(/))\n };\n const NUMBER_SUFFIX = '([ui](8|16|32|64|128|size)|f(32|64))\\?';\n const KEYWORDS = [\n \"abstract\",\n \"as\",\n \"async\",\n \"await\",\n \"become\",\n \"box\",\n \"break\",\n \"const\",\n \"continue\",\n \"crate\",\n \"do\",\n \"dyn\",\n \"else\",\n \"enum\",\n \"extern\",\n \"false\",\n \"final\",\n \"fn\",\n \"for\",\n \"if\",\n \"impl\",\n \"in\",\n \"let\",\n \"loop\",\n \"macro\",\n \"match\",\n \"mod\",\n \"move\",\n \"mut\",\n \"override\",\n \"priv\",\n \"pub\",\n \"ref\",\n \"return\",\n \"self\",\n \"Self\",\n \"static\",\n \"struct\",\n \"super\",\n \"trait\",\n \"true\",\n \"try\",\n \"type\",\n \"typeof\",\n \"union\",\n \"unsafe\",\n \"unsized\",\n \"use\",\n \"virtual\",\n \"where\",\n \"while\",\n \"yield\"\n ];\n const LITERALS = [\n \"true\",\n \"false\",\n \"Some\",\n \"None\",\n \"Ok\",\n \"Err\"\n ];\n const BUILTINS = [\n // functions\n 'drop ',\n // traits\n \"Copy\",\n \"Send\",\n \"Sized\",\n \"Sync\",\n \"Drop\",\n \"Fn\",\n \"FnMut\",\n \"FnOnce\",\n \"ToOwned\",\n \"Clone\",\n \"Debug\",\n \"PartialEq\",\n \"PartialOrd\",\n \"Eq\",\n \"Ord\",\n \"AsRef\",\n \"AsMut\",\n \"Into\",\n \"From\",\n \"Default\",\n \"Iterator\",\n \"Extend\",\n \"IntoIterator\",\n \"DoubleEndedIterator\",\n \"ExactSizeIterator\",\n \"SliceConcatExt\",\n \"ToString\",\n // macros\n \"assert!\",\n \"assert_eq!\",\n \"bitflags!\",\n \"bytes!\",\n \"cfg!\",\n \"col!\",\n \"concat!\",\n \"concat_idents!\",\n \"debug_assert!\",\n \"debug_assert_eq!\",\n \"env!\",\n \"eprintln!\",\n \"panic!\",\n \"file!\",\n \"format!\",\n \"format_args!\",\n \"include_bytes!\",\n \"include_str!\",\n \"line!\",\n \"local_data_key!\",\n \"module_path!\",\n \"option_env!\",\n \"print!\",\n \"println!\",\n \"select!\",\n \"stringify!\",\n \"try!\",\n \"unimplemented!\",\n \"unreachable!\",\n \"vec!\",\n \"write!\",\n \"writeln!\",\n \"macro_rules!\",\n \"assert_ne!\",\n \"debug_assert_ne!\"\n ];\n const TYPES = [\n \"i8\",\n \"i16\",\n \"i32\",\n \"i64\",\n \"i128\",\n \"isize\",\n \"u8\",\n \"u16\",\n \"u32\",\n \"u64\",\n \"u128\",\n \"usize\",\n \"f32\",\n \"f64\",\n \"str\",\n \"char\",\n \"bool\",\n \"Box\",\n \"Option\",\n \"Result\",\n \"String\",\n \"Vec\"\n ];\n return {\n name: 'Rust',\n aliases: [ 'rs' ],\n keywords: {\n $pattern: hljs.IDENT_RE + '!?',\n type: TYPES,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: BUILTINS\n },\n illegal: ''\n },\n FUNCTION_INVOKE\n ]\n };\n}\n\nexport { rust as default };\n","const MODES = (hljs) => {\n return {\n IMPORTANT: {\n scope: 'meta',\n begin: '!important'\n },\n BLOCK_COMMENT: hljs.C_BLOCK_COMMENT_MODE,\n HEXCOLOR: {\n scope: 'number',\n begin: /#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\\b/\n },\n FUNCTION_DISPATCH: {\n className: \"built_in\",\n begin: /[\\w-]+(?=\\()/\n },\n ATTRIBUTE_SELECTOR_MODE: {\n scope: 'selector-attr',\n begin: /\\[/,\n end: /\\]/,\n illegal: '$',\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n },\n CSS_NUMBER_MODE: {\n scope: 'number',\n begin: hljs.NUMBER_RE + '(' +\n '%|em|ex|ch|rem' +\n '|vw|vh|vmin|vmax' +\n '|cm|mm|in|pt|pc|px' +\n '|deg|grad|rad|turn' +\n '|s|ms' +\n '|Hz|kHz' +\n '|dpi|dpcm|dppx' +\n ')?',\n relevance: 0\n },\n CSS_VARIABLE: {\n className: \"attr\",\n begin: /--[A-Za-z_][A-Za-z0-9_-]*/\n }\n };\n};\n\nconst HTML_TAGS = [\n 'a',\n 'abbr',\n 'address',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'blockquote',\n 'body',\n 'button',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'mark',\n 'menu',\n 'nav',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'picture',\n 'q',\n 'quote',\n 'samp',\n 'section',\n 'select',\n 'source',\n 'span',\n 'strong',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'ul',\n 'var',\n 'video'\n];\n\nconst SVG_TAGS = [\n 'defs',\n 'g',\n 'marker',\n 'mask',\n 'pattern',\n 'svg',\n 'switch',\n 'symbol',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feFlood',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMorphology',\n 'feOffset',\n 'feSpecularLighting',\n 'feTile',\n 'feTurbulence',\n 'linearGradient',\n 'radialGradient',\n 'stop',\n 'circle',\n 'ellipse',\n 'image',\n 'line',\n 'path',\n 'polygon',\n 'polyline',\n 'rect',\n 'text',\n 'use',\n 'textPath',\n 'tspan',\n 'foreignObject',\n 'clipPath'\n];\n\nconst TAGS = [\n ...HTML_TAGS,\n ...SVG_TAGS,\n];\n\n// Sorting, then reversing makes sure longer attributes/elements like\n// `font-weight` are matched fully instead of getting false positives on say `font`\n\nconst MEDIA_FEATURES = [\n 'any-hover',\n 'any-pointer',\n 'aspect-ratio',\n 'color',\n 'color-gamut',\n 'color-index',\n 'device-aspect-ratio',\n 'device-height',\n 'device-width',\n 'display-mode',\n 'forced-colors',\n 'grid',\n 'height',\n 'hover',\n 'inverted-colors',\n 'monochrome',\n 'orientation',\n 'overflow-block',\n 'overflow-inline',\n 'pointer',\n 'prefers-color-scheme',\n 'prefers-contrast',\n 'prefers-reduced-motion',\n 'prefers-reduced-transparency',\n 'resolution',\n 'scan',\n 'scripting',\n 'update',\n 'width',\n // TODO: find a better solution?\n 'min-width',\n 'max-width',\n 'min-height',\n 'max-height'\n].sort().reverse();\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes\nconst PSEUDO_CLASSES = [\n 'active',\n 'any-link',\n 'blank',\n 'checked',\n 'current',\n 'default',\n 'defined',\n 'dir', // dir()\n 'disabled',\n 'drop',\n 'empty',\n 'enabled',\n 'first',\n 'first-child',\n 'first-of-type',\n 'fullscreen',\n 'future',\n 'focus',\n 'focus-visible',\n 'focus-within',\n 'has', // has()\n 'host', // host or host()\n 'host-context', // host-context()\n 'hover',\n 'indeterminate',\n 'in-range',\n 'invalid',\n 'is', // is()\n 'lang', // lang()\n 'last-child',\n 'last-of-type',\n 'left',\n 'link',\n 'local-link',\n 'not', // not()\n 'nth-child', // nth-child()\n 'nth-col', // nth-col()\n 'nth-last-child', // nth-last-child()\n 'nth-last-col', // nth-last-col()\n 'nth-last-of-type', //nth-last-of-type()\n 'nth-of-type', //nth-of-type()\n 'only-child',\n 'only-of-type',\n 'optional',\n 'out-of-range',\n 'past',\n 'placeholder-shown',\n 'read-only',\n 'read-write',\n 'required',\n 'right',\n 'root',\n 'scope',\n 'target',\n 'target-within',\n 'user-invalid',\n 'valid',\n 'visited',\n 'where' // where()\n].sort().reverse();\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements\nconst PSEUDO_ELEMENTS = [\n 'after',\n 'backdrop',\n 'before',\n 'cue',\n 'cue-region',\n 'first-letter',\n 'first-line',\n 'grammar-error',\n 'marker',\n 'part',\n 'placeholder',\n 'selection',\n 'slotted',\n 'spelling-error'\n].sort().reverse();\n\nconst ATTRIBUTES = [\n 'accent-color',\n 'align-content',\n 'align-items',\n 'align-self',\n 'alignment-baseline',\n 'all',\n 'anchor-name',\n 'animation',\n 'animation-composition',\n 'animation-delay',\n 'animation-direction',\n 'animation-duration',\n 'animation-fill-mode',\n 'animation-iteration-count',\n 'animation-name',\n 'animation-play-state',\n 'animation-range',\n 'animation-range-end',\n 'animation-range-start',\n 'animation-timeline',\n 'animation-timing-function',\n 'appearance',\n 'aspect-ratio',\n 'backdrop-filter',\n 'backface-visibility',\n 'background',\n 'background-attachment',\n 'background-blend-mode',\n 'background-clip',\n 'background-color',\n 'background-image',\n 'background-origin',\n 'background-position',\n 'background-position-x',\n 'background-position-y',\n 'background-repeat',\n 'background-size',\n 'baseline-shift',\n 'block-size',\n 'border',\n 'border-block',\n 'border-block-color',\n 'border-block-end',\n 'border-block-end-color',\n 'border-block-end-style',\n 'border-block-end-width',\n 'border-block-start',\n 'border-block-start-color',\n 'border-block-start-style',\n 'border-block-start-width',\n 'border-block-style',\n 'border-block-width',\n 'border-bottom',\n 'border-bottom-color',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n 'border-bottom-style',\n 'border-bottom-width',\n 'border-collapse',\n 'border-color',\n 'border-end-end-radius',\n 'border-end-start-radius',\n 'border-image',\n 'border-image-outset',\n 'border-image-repeat',\n 'border-image-slice',\n 'border-image-source',\n 'border-image-width',\n 'border-inline',\n 'border-inline-color',\n 'border-inline-end',\n 'border-inline-end-color',\n 'border-inline-end-style',\n 'border-inline-end-width',\n 'border-inline-start',\n 'border-inline-start-color',\n 'border-inline-start-style',\n 'border-inline-start-width',\n 'border-inline-style',\n 'border-inline-width',\n 'border-left',\n 'border-left-color',\n 'border-left-style',\n 'border-left-width',\n 'border-radius',\n 'border-right',\n 'border-right-color',\n 'border-right-style',\n 'border-right-width',\n 'border-spacing',\n 'border-start-end-radius',\n 'border-start-start-radius',\n 'border-style',\n 'border-top',\n 'border-top-color',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-top-style',\n 'border-top-width',\n 'border-width',\n 'bottom',\n 'box-align',\n 'box-decoration-break',\n 'box-direction',\n 'box-flex',\n 'box-flex-group',\n 'box-lines',\n 'box-ordinal-group',\n 'box-orient',\n 'box-pack',\n 'box-shadow',\n 'box-sizing',\n 'break-after',\n 'break-before',\n 'break-inside',\n 'caption-side',\n 'caret-color',\n 'clear',\n 'clip',\n 'clip-path',\n 'clip-rule',\n 'color',\n 'color-interpolation',\n 'color-interpolation-filters',\n 'color-profile',\n 'color-rendering',\n 'color-scheme',\n 'column-count',\n 'column-fill',\n 'column-gap',\n 'column-rule',\n 'column-rule-color',\n 'column-rule-style',\n 'column-rule-width',\n 'column-span',\n 'column-width',\n 'columns',\n 'contain',\n 'contain-intrinsic-block-size',\n 'contain-intrinsic-height',\n 'contain-intrinsic-inline-size',\n 'contain-intrinsic-size',\n 'contain-intrinsic-width',\n 'container',\n 'container-name',\n 'container-type',\n 'content',\n 'content-visibility',\n 'counter-increment',\n 'counter-reset',\n 'counter-set',\n 'cue',\n 'cue-after',\n 'cue-before',\n 'cursor',\n 'cx',\n 'cy',\n 'direction',\n 'display',\n 'dominant-baseline',\n 'empty-cells',\n 'enable-background',\n 'field-sizing',\n 'fill',\n 'fill-opacity',\n 'fill-rule',\n 'filter',\n 'flex',\n 'flex-basis',\n 'flex-direction',\n 'flex-flow',\n 'flex-grow',\n 'flex-shrink',\n 'flex-wrap',\n 'float',\n 'flood-color',\n 'flood-opacity',\n 'flow',\n 'font',\n 'font-display',\n 'font-family',\n 'font-feature-settings',\n 'font-kerning',\n 'font-language-override',\n 'font-optical-sizing',\n 'font-palette',\n 'font-size',\n 'font-size-adjust',\n 'font-smooth',\n 'font-smoothing',\n 'font-stretch',\n 'font-style',\n 'font-synthesis',\n 'font-synthesis-position',\n 'font-synthesis-small-caps',\n 'font-synthesis-style',\n 'font-synthesis-weight',\n 'font-variant',\n 'font-variant-alternates',\n 'font-variant-caps',\n 'font-variant-east-asian',\n 'font-variant-emoji',\n 'font-variant-ligatures',\n 'font-variant-numeric',\n 'font-variant-position',\n 'font-variation-settings',\n 'font-weight',\n 'forced-color-adjust',\n 'gap',\n 'glyph-orientation-horizontal',\n 'glyph-orientation-vertical',\n 'grid',\n 'grid-area',\n 'grid-auto-columns',\n 'grid-auto-flow',\n 'grid-auto-rows',\n 'grid-column',\n 'grid-column-end',\n 'grid-column-start',\n 'grid-gap',\n 'grid-row',\n 'grid-row-end',\n 'grid-row-start',\n 'grid-template',\n 'grid-template-areas',\n 'grid-template-columns',\n 'grid-template-rows',\n 'hanging-punctuation',\n 'height',\n 'hyphenate-character',\n 'hyphenate-limit-chars',\n 'hyphens',\n 'icon',\n 'image-orientation',\n 'image-rendering',\n 'image-resolution',\n 'ime-mode',\n 'initial-letter',\n 'initial-letter-align',\n 'inline-size',\n 'inset',\n 'inset-area',\n 'inset-block',\n 'inset-block-end',\n 'inset-block-start',\n 'inset-inline',\n 'inset-inline-end',\n 'inset-inline-start',\n 'isolation',\n 'justify-content',\n 'justify-items',\n 'justify-self',\n 'kerning',\n 'left',\n 'letter-spacing',\n 'lighting-color',\n 'line-break',\n 'line-height',\n 'line-height-step',\n 'list-style',\n 'list-style-image',\n 'list-style-position',\n 'list-style-type',\n 'margin',\n 'margin-block',\n 'margin-block-end',\n 'margin-block-start',\n 'margin-bottom',\n 'margin-inline',\n 'margin-inline-end',\n 'margin-inline-start',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'margin-trim',\n 'marker',\n 'marker-end',\n 'marker-mid',\n 'marker-start',\n 'marks',\n 'mask',\n 'mask-border',\n 'mask-border-mode',\n 'mask-border-outset',\n 'mask-border-repeat',\n 'mask-border-slice',\n 'mask-border-source',\n 'mask-border-width',\n 'mask-clip',\n 'mask-composite',\n 'mask-image',\n 'mask-mode',\n 'mask-origin',\n 'mask-position',\n 'mask-repeat',\n 'mask-size',\n 'mask-type',\n 'masonry-auto-flow',\n 'math-depth',\n 'math-shift',\n 'math-style',\n 'max-block-size',\n 'max-height',\n 'max-inline-size',\n 'max-width',\n 'min-block-size',\n 'min-height',\n 'min-inline-size',\n 'min-width',\n 'mix-blend-mode',\n 'nav-down',\n 'nav-index',\n 'nav-left',\n 'nav-right',\n 'nav-up',\n 'none',\n 'normal',\n 'object-fit',\n 'object-position',\n 'offset',\n 'offset-anchor',\n 'offset-distance',\n 'offset-path',\n 'offset-position',\n 'offset-rotate',\n 'opacity',\n 'order',\n 'orphans',\n 'outline',\n 'outline-color',\n 'outline-offset',\n 'outline-style',\n 'outline-width',\n 'overflow',\n 'overflow-anchor',\n 'overflow-block',\n 'overflow-clip-margin',\n 'overflow-inline',\n 'overflow-wrap',\n 'overflow-x',\n 'overflow-y',\n 'overlay',\n 'overscroll-behavior',\n 'overscroll-behavior-block',\n 'overscroll-behavior-inline',\n 'overscroll-behavior-x',\n 'overscroll-behavior-y',\n 'padding',\n 'padding-block',\n 'padding-block-end',\n 'padding-block-start',\n 'padding-bottom',\n 'padding-inline',\n 'padding-inline-end',\n 'padding-inline-start',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'page',\n 'page-break-after',\n 'page-break-before',\n 'page-break-inside',\n 'paint-order',\n 'pause',\n 'pause-after',\n 'pause-before',\n 'perspective',\n 'perspective-origin',\n 'place-content',\n 'place-items',\n 'place-self',\n 'pointer-events',\n 'position',\n 'position-anchor',\n 'position-visibility',\n 'print-color-adjust',\n 'quotes',\n 'r',\n 'resize',\n 'rest',\n 'rest-after',\n 'rest-before',\n 'right',\n 'rotate',\n 'row-gap',\n 'ruby-align',\n 'ruby-position',\n 'scale',\n 'scroll-behavior',\n 'scroll-margin',\n 'scroll-margin-block',\n 'scroll-margin-block-end',\n 'scroll-margin-block-start',\n 'scroll-margin-bottom',\n 'scroll-margin-inline',\n 'scroll-margin-inline-end',\n 'scroll-margin-inline-start',\n 'scroll-margin-left',\n 'scroll-margin-right',\n 'scroll-margin-top',\n 'scroll-padding',\n 'scroll-padding-block',\n 'scroll-padding-block-end',\n 'scroll-padding-block-start',\n 'scroll-padding-bottom',\n 'scroll-padding-inline',\n 'scroll-padding-inline-end',\n 'scroll-padding-inline-start',\n 'scroll-padding-left',\n 'scroll-padding-right',\n 'scroll-padding-top',\n 'scroll-snap-align',\n 'scroll-snap-stop',\n 'scroll-snap-type',\n 'scroll-timeline',\n 'scroll-timeline-axis',\n 'scroll-timeline-name',\n 'scrollbar-color',\n 'scrollbar-gutter',\n 'scrollbar-width',\n 'shape-image-threshold',\n 'shape-margin',\n 'shape-outside',\n 'shape-rendering',\n 'speak',\n 'speak-as',\n 'src', // @font-face\n 'stop-color',\n 'stop-opacity',\n 'stroke',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-linecap',\n 'stroke-linejoin',\n 'stroke-miterlimit',\n 'stroke-opacity',\n 'stroke-width',\n 'tab-size',\n 'table-layout',\n 'text-align',\n 'text-align-all',\n 'text-align-last',\n 'text-anchor',\n 'text-combine-upright',\n 'text-decoration',\n 'text-decoration-color',\n 'text-decoration-line',\n 'text-decoration-skip',\n 'text-decoration-skip-ink',\n 'text-decoration-style',\n 'text-decoration-thickness',\n 'text-emphasis',\n 'text-emphasis-color',\n 'text-emphasis-position',\n 'text-emphasis-style',\n 'text-indent',\n 'text-justify',\n 'text-orientation',\n 'text-overflow',\n 'text-rendering',\n 'text-shadow',\n 'text-size-adjust',\n 'text-transform',\n 'text-underline-offset',\n 'text-underline-position',\n 'text-wrap',\n 'text-wrap-mode',\n 'text-wrap-style',\n 'timeline-scope',\n 'top',\n 'touch-action',\n 'transform',\n 'transform-box',\n 'transform-origin',\n 'transform-style',\n 'transition',\n 'transition-behavior',\n 'transition-delay',\n 'transition-duration',\n 'transition-property',\n 'transition-timing-function',\n 'translate',\n 'unicode-bidi',\n 'user-modify',\n 'user-select',\n 'vector-effect',\n 'vertical-align',\n 'view-timeline',\n 'view-timeline-axis',\n 'view-timeline-inset',\n 'view-timeline-name',\n 'view-transition-name',\n 'visibility',\n 'voice-balance',\n 'voice-duration',\n 'voice-family',\n 'voice-pitch',\n 'voice-range',\n 'voice-rate',\n 'voice-stress',\n 'voice-volume',\n 'white-space',\n 'white-space-collapse',\n 'widows',\n 'width',\n 'will-change',\n 'word-break',\n 'word-spacing',\n 'word-wrap',\n 'writing-mode',\n 'x',\n 'y',\n 'z-index',\n 'zoom'\n].sort().reverse();\n\n/*\nLanguage: SCSS\nDescription: Scss is an extension of the syntax of CSS.\nAuthor: Kurt Emch \nWebsite: https://sass-lang.com\nCategory: common, css, web\n*/\n\n\n/** @type LanguageFn */\nfunction scss(hljs) {\n const modes = MODES(hljs);\n const PSEUDO_ELEMENTS$1 = PSEUDO_ELEMENTS;\n const PSEUDO_CLASSES$1 = PSEUDO_CLASSES;\n\n const AT_IDENTIFIER = '@[a-z-]+'; // @font-face\n const AT_MODIFIERS = \"and or not only\";\n const IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';\n const VARIABLE = {\n className: 'variable',\n begin: '(\\\\$' + IDENT_RE + ')\\\\b',\n relevance: 0\n };\n\n return {\n name: 'SCSS',\n case_insensitive: true,\n illegal: '[=/|\\']',\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n // to recognize keyframe 40% etc which are outside the scope of our\n // attribute value mode\n modes.CSS_NUMBER_MODE,\n {\n className: 'selector-id',\n begin: '#[A-Za-z0-9_-]+',\n relevance: 0\n },\n {\n className: 'selector-class',\n begin: '\\\\.[A-Za-z0-9_-]+',\n relevance: 0\n },\n modes.ATTRIBUTE_SELECTOR_MODE,\n {\n className: 'selector-tag',\n begin: '\\\\b(' + TAGS.join('|') + ')\\\\b',\n // was there, before, but why?\n relevance: 0\n },\n {\n className: 'selector-pseudo',\n begin: ':(' + PSEUDO_CLASSES$1.join('|') + ')'\n },\n {\n className: 'selector-pseudo',\n begin: ':(:)?(' + PSEUDO_ELEMENTS$1.join('|') + ')'\n },\n VARIABLE,\n { // pseudo-selector params\n begin: /\\(/,\n end: /\\)/,\n contains: [ modes.CSS_NUMBER_MODE ]\n },\n modes.CSS_VARIABLE,\n {\n className: 'attribute',\n begin: '\\\\b(' + ATTRIBUTES.join('|') + ')\\\\b'\n },\n { begin: '\\\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\\\b' },\n {\n begin: /:/,\n end: /[;}{]/,\n relevance: 0,\n contains: [\n modes.BLOCK_COMMENT,\n VARIABLE,\n modes.HEXCOLOR,\n modes.CSS_NUMBER_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n modes.IMPORTANT,\n modes.FUNCTION_DISPATCH\n ]\n },\n // matching these here allows us to treat them more like regular CSS\n // rules so everything between the {} gets regular rule highlighting,\n // which is what we want for page and font-face\n {\n begin: '@(page|font-face)',\n keywords: {\n $pattern: AT_IDENTIFIER,\n keyword: '@page @font-face'\n }\n },\n {\n begin: '@',\n end: '[{;]',\n returnBegin: true,\n keywords: {\n $pattern: /[a-z-]+/,\n keyword: AT_MODIFIERS,\n attribute: MEDIA_FEATURES.join(\" \")\n },\n contains: [\n {\n begin: AT_IDENTIFIER,\n className: \"keyword\"\n },\n {\n begin: /[a-z-]+(?=:)/,\n className: \"attribute\"\n },\n VARIABLE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n modes.HEXCOLOR,\n modes.CSS_NUMBER_MODE\n ]\n },\n modes.FUNCTION_DISPATCH\n ]\n };\n}\n\nexport { scss as default };\n","/*\nLanguage: Shell Session\nRequires: bash.js\nAuthor: TSUYUSATO Kitsune \nCategory: common\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction shell(hljs) {\n return {\n name: 'Shell Session',\n aliases: [\n 'console',\n 'shellsession'\n ],\n contains: [\n {\n className: 'meta.prompt',\n // We cannot add \\s (spaces) in the regular expression otherwise it will be too broad and produce unexpected result.\n // For instance, in the following example, it would match \"echo /path/to/home >\" as a prompt:\n // echo /path/to/home > t.exe\n begin: /^\\s{0,3}[/~\\w\\d[\\]()@-]*[>%$#][ ]?/,\n starts: {\n end: /[^\\\\](?=\\s*$)/,\n subLanguage: 'bash'\n }\n }\n ]\n };\n}\n\nexport { shell as default };\n","/*\n Language: SQL\n Website: https://en.wikipedia.org/wiki/SQL\n Category: common, database\n */\n\n/*\n\nGoals:\n\nSQL is intended to highlight basic/common SQL keywords and expressions\n\n- If pretty much every single SQL server includes supports, then it's a canidate.\n- It is NOT intended to include tons of vendor specific keywords (Oracle, MySQL,\n PostgreSQL) although the list of data types is purposely a bit more expansive.\n- For more specific SQL grammars please see:\n - PostgreSQL and PL/pgSQL - core\n - T-SQL - https://github.com/highlightjs/highlightjs-tsql\n - sql_more (core)\n\n */\n\nfunction sql(hljs) {\n const regex = hljs.regex;\n const COMMENT_MODE = hljs.COMMENT('--', '$');\n const STRING = {\n scope: 'string',\n variants: [\n {\n begin: /'/,\n end: /'/,\n contains: [ { match: /''/ } ]\n }\n ]\n };\n const QUOTED_IDENTIFIER = {\n begin: /\"/,\n end: /\"/,\n contains: [ { match: /\"\"/ } ]\n };\n\n const LITERALS = [\n \"true\",\n \"false\",\n // Not sure it's correct to call NULL literal, and clauses like IS [NOT] NULL look strange that way.\n // \"null\",\n \"unknown\"\n ];\n\n const MULTI_WORD_TYPES = [\n \"double precision\",\n \"large object\",\n \"with timezone\",\n \"without timezone\"\n ];\n\n const TYPES = [\n 'bigint',\n 'binary',\n 'blob',\n 'boolean',\n 'char',\n 'character',\n 'clob',\n 'date',\n 'dec',\n 'decfloat',\n 'decimal',\n 'float',\n 'int',\n 'integer',\n 'interval',\n 'nchar',\n 'nclob',\n 'national',\n 'numeric',\n 'real',\n 'row',\n 'smallint',\n 'time',\n 'timestamp',\n 'varchar',\n 'varying', // modifier (character varying)\n 'varbinary'\n ];\n\n const NON_RESERVED_WORDS = [\n \"add\",\n \"asc\",\n \"collation\",\n \"desc\",\n \"final\",\n \"first\",\n \"last\",\n \"view\"\n ];\n\n // https://jakewheat.github.io/sql-overview/sql-2016-foundation-grammar.html#reserved-word\n const RESERVED_WORDS = [\n \"abs\",\n \"acos\",\n \"all\",\n \"allocate\",\n \"alter\",\n \"and\",\n \"any\",\n \"are\",\n \"array\",\n \"array_agg\",\n \"array_max_cardinality\",\n \"as\",\n \"asensitive\",\n \"asin\",\n \"asymmetric\",\n \"at\",\n \"atan\",\n \"atomic\",\n \"authorization\",\n \"avg\",\n \"begin\",\n \"begin_frame\",\n \"begin_partition\",\n \"between\",\n \"bigint\",\n \"binary\",\n \"blob\",\n \"boolean\",\n \"both\",\n \"by\",\n \"call\",\n \"called\",\n \"cardinality\",\n \"cascaded\",\n \"case\",\n \"cast\",\n \"ceil\",\n \"ceiling\",\n \"char\",\n \"char_length\",\n \"character\",\n \"character_length\",\n \"check\",\n \"classifier\",\n \"clob\",\n \"close\",\n \"coalesce\",\n \"collate\",\n \"collect\",\n \"column\",\n \"commit\",\n \"condition\",\n \"connect\",\n \"constraint\",\n \"contains\",\n \"convert\",\n \"copy\",\n \"corr\",\n \"corresponding\",\n \"cos\",\n \"cosh\",\n \"count\",\n \"covar_pop\",\n \"covar_samp\",\n \"create\",\n \"cross\",\n \"cube\",\n \"cume_dist\",\n \"current\",\n \"current_catalog\",\n \"current_date\",\n \"current_default_transform_group\",\n \"current_path\",\n \"current_role\",\n \"current_row\",\n \"current_schema\",\n \"current_time\",\n \"current_timestamp\",\n \"current_path\",\n \"current_role\",\n \"current_transform_group_for_type\",\n \"current_user\",\n \"cursor\",\n \"cycle\",\n \"date\",\n \"day\",\n \"deallocate\",\n \"dec\",\n \"decimal\",\n \"decfloat\",\n \"declare\",\n \"default\",\n \"define\",\n \"delete\",\n \"dense_rank\",\n \"deref\",\n \"describe\",\n \"deterministic\",\n \"disconnect\",\n \"distinct\",\n \"double\",\n \"drop\",\n \"dynamic\",\n \"each\",\n \"element\",\n \"else\",\n \"empty\",\n \"end\",\n \"end_frame\",\n \"end_partition\",\n \"end-exec\",\n \"equals\",\n \"escape\",\n \"every\",\n \"except\",\n \"exec\",\n \"execute\",\n \"exists\",\n \"exp\",\n \"external\",\n \"extract\",\n \"false\",\n \"fetch\",\n \"filter\",\n \"first_value\",\n \"float\",\n \"floor\",\n \"for\",\n \"foreign\",\n \"frame_row\",\n \"free\",\n \"from\",\n \"full\",\n \"function\",\n \"fusion\",\n \"get\",\n \"global\",\n \"grant\",\n \"group\",\n \"grouping\",\n \"groups\",\n \"having\",\n \"hold\",\n \"hour\",\n \"identity\",\n \"in\",\n \"indicator\",\n \"initial\",\n \"inner\",\n \"inout\",\n \"insensitive\",\n \"insert\",\n \"int\",\n \"integer\",\n \"intersect\",\n \"intersection\",\n \"interval\",\n \"into\",\n \"is\",\n \"join\",\n \"json_array\",\n \"json_arrayagg\",\n \"json_exists\",\n \"json_object\",\n \"json_objectagg\",\n \"json_query\",\n \"json_table\",\n \"json_table_primitive\",\n \"json_value\",\n \"lag\",\n \"language\",\n \"large\",\n \"last_value\",\n \"lateral\",\n \"lead\",\n \"leading\",\n \"left\",\n \"like\",\n \"like_regex\",\n \"listagg\",\n \"ln\",\n \"local\",\n \"localtime\",\n \"localtimestamp\",\n \"log\",\n \"log10\",\n \"lower\",\n \"match\",\n \"match_number\",\n \"match_recognize\",\n \"matches\",\n \"max\",\n \"member\",\n \"merge\",\n \"method\",\n \"min\",\n \"minute\",\n \"mod\",\n \"modifies\",\n \"module\",\n \"month\",\n \"multiset\",\n \"national\",\n \"natural\",\n \"nchar\",\n \"nclob\",\n \"new\",\n \"no\",\n \"none\",\n \"normalize\",\n \"not\",\n \"nth_value\",\n \"ntile\",\n \"null\",\n \"nullif\",\n \"numeric\",\n \"octet_length\",\n \"occurrences_regex\",\n \"of\",\n \"offset\",\n \"old\",\n \"omit\",\n \"on\",\n \"one\",\n \"only\",\n \"open\",\n \"or\",\n \"order\",\n \"out\",\n \"outer\",\n \"over\",\n \"overlaps\",\n \"overlay\",\n \"parameter\",\n \"partition\",\n \"pattern\",\n \"per\",\n \"percent\",\n \"percent_rank\",\n \"percentile_cont\",\n \"percentile_disc\",\n \"period\",\n \"portion\",\n \"position\",\n \"position_regex\",\n \"power\",\n \"precedes\",\n \"precision\",\n \"prepare\",\n \"primary\",\n \"procedure\",\n \"ptf\",\n \"range\",\n \"rank\",\n \"reads\",\n \"real\",\n \"recursive\",\n \"ref\",\n \"references\",\n \"referencing\",\n \"regr_avgx\",\n \"regr_avgy\",\n \"regr_count\",\n \"regr_intercept\",\n \"regr_r2\",\n \"regr_slope\",\n \"regr_sxx\",\n \"regr_sxy\",\n \"regr_syy\",\n \"release\",\n \"result\",\n \"return\",\n \"returns\",\n \"revoke\",\n \"right\",\n \"rollback\",\n \"rollup\",\n \"row\",\n \"row_number\",\n \"rows\",\n \"running\",\n \"savepoint\",\n \"scope\",\n \"scroll\",\n \"search\",\n \"second\",\n \"seek\",\n \"select\",\n \"sensitive\",\n \"session_user\",\n \"set\",\n \"show\",\n \"similar\",\n \"sin\",\n \"sinh\",\n \"skip\",\n \"smallint\",\n \"some\",\n \"specific\",\n \"specifictype\",\n \"sql\",\n \"sqlexception\",\n \"sqlstate\",\n \"sqlwarning\",\n \"sqrt\",\n \"start\",\n \"static\",\n \"stddev_pop\",\n \"stddev_samp\",\n \"submultiset\",\n \"subset\",\n \"substring\",\n \"substring_regex\",\n \"succeeds\",\n \"sum\",\n \"symmetric\",\n \"system\",\n \"system_time\",\n \"system_user\",\n \"table\",\n \"tablesample\",\n \"tan\",\n \"tanh\",\n \"then\",\n \"time\",\n \"timestamp\",\n \"timezone_hour\",\n \"timezone_minute\",\n \"to\",\n \"trailing\",\n \"translate\",\n \"translate_regex\",\n \"translation\",\n \"treat\",\n \"trigger\",\n \"trim\",\n \"trim_array\",\n \"true\",\n \"truncate\",\n \"uescape\",\n \"union\",\n \"unique\",\n \"unknown\",\n \"unnest\",\n \"update\",\n \"upper\",\n \"user\",\n \"using\",\n \"value\",\n \"values\",\n \"value_of\",\n \"var_pop\",\n \"var_samp\",\n \"varbinary\",\n \"varchar\",\n \"varying\",\n \"versioning\",\n \"when\",\n \"whenever\",\n \"where\",\n \"width_bucket\",\n \"window\",\n \"with\",\n \"within\",\n \"without\",\n \"year\",\n ];\n\n // these are reserved words we have identified to be functions\n // and should only be highlighted in a dispatch-like context\n // ie, array_agg(...), etc.\n const RESERVED_FUNCTIONS = [\n \"abs\",\n \"acos\",\n \"array_agg\",\n \"asin\",\n \"atan\",\n \"avg\",\n \"cast\",\n \"ceil\",\n \"ceiling\",\n \"coalesce\",\n \"corr\",\n \"cos\",\n \"cosh\",\n \"count\",\n \"covar_pop\",\n \"covar_samp\",\n \"cume_dist\",\n \"dense_rank\",\n \"deref\",\n \"element\",\n \"exp\",\n \"extract\",\n \"first_value\",\n \"floor\",\n \"json_array\",\n \"json_arrayagg\",\n \"json_exists\",\n \"json_object\",\n \"json_objectagg\",\n \"json_query\",\n \"json_table\",\n \"json_table_primitive\",\n \"json_value\",\n \"lag\",\n \"last_value\",\n \"lead\",\n \"listagg\",\n \"ln\",\n \"log\",\n \"log10\",\n \"lower\",\n \"max\",\n \"min\",\n \"mod\",\n \"nth_value\",\n \"ntile\",\n \"nullif\",\n \"percent_rank\",\n \"percentile_cont\",\n \"percentile_disc\",\n \"position\",\n \"position_regex\",\n \"power\",\n \"rank\",\n \"regr_avgx\",\n \"regr_avgy\",\n \"regr_count\",\n \"regr_intercept\",\n \"regr_r2\",\n \"regr_slope\",\n \"regr_sxx\",\n \"regr_sxy\",\n \"regr_syy\",\n \"row_number\",\n \"sin\",\n \"sinh\",\n \"sqrt\",\n \"stddev_pop\",\n \"stddev_samp\",\n \"substring\",\n \"substring_regex\",\n \"sum\",\n \"tan\",\n \"tanh\",\n \"translate\",\n \"translate_regex\",\n \"treat\",\n \"trim\",\n \"trim_array\",\n \"unnest\",\n \"upper\",\n \"value_of\",\n \"var_pop\",\n \"var_samp\",\n \"width_bucket\",\n ];\n\n // these functions can\n const POSSIBLE_WITHOUT_PARENS = [\n \"current_catalog\",\n \"current_date\",\n \"current_default_transform_group\",\n \"current_path\",\n \"current_role\",\n \"current_schema\",\n \"current_transform_group_for_type\",\n \"current_user\",\n \"session_user\",\n \"system_time\",\n \"system_user\",\n \"current_time\",\n \"localtime\",\n \"current_timestamp\",\n \"localtimestamp\"\n ];\n\n // those exist to boost relevance making these very\n // \"SQL like\" keyword combos worth +1 extra relevance\n const COMBOS = [\n \"create table\",\n \"insert into\",\n \"primary key\",\n \"foreign key\",\n \"not null\",\n \"alter table\",\n \"add constraint\",\n \"grouping sets\",\n \"on overflow\",\n \"character set\",\n \"respect nulls\",\n \"ignore nulls\",\n \"nulls first\",\n \"nulls last\",\n \"depth first\",\n \"breadth first\"\n ];\n\n const FUNCTIONS = RESERVED_FUNCTIONS;\n\n const KEYWORDS = [\n ...RESERVED_WORDS,\n ...NON_RESERVED_WORDS\n ].filter((keyword) => {\n return !RESERVED_FUNCTIONS.includes(keyword);\n });\n\n const VARIABLE = {\n scope: \"variable\",\n match: /@[a-z0-9][a-z0-9_]*/,\n };\n\n const OPERATOR = {\n scope: \"operator\",\n match: /[-+*/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,\n relevance: 0,\n };\n\n const FUNCTION_CALL = {\n match: regex.concat(/\\b/, regex.either(...FUNCTIONS), /\\s*\\(/),\n relevance: 0,\n keywords: { built_in: FUNCTIONS }\n };\n\n // turns a multi-word keyword combo into a regex that doesn't\n // care about extra whitespace etc.\n // input: \"START QUERY\"\n // output: /\\bSTART\\s+QUERY\\b/\n function kws_to_regex(list) {\n return regex.concat(\n /\\b/,\n regex.either(...list.map((kw) => {\n return kw.replace(/\\s+/, \"\\\\s+\")\n })),\n /\\b/\n )\n }\n\n const MULTI_WORD_KEYWORDS = {\n scope: \"keyword\",\n match: kws_to_regex(COMBOS),\n relevance: 0,\n };\n\n // keywords with less than 3 letters are reduced in relevancy\n function reduceRelevancy(list, {\n exceptions, when\n } = {}) {\n const qualifyFn = when;\n exceptions = exceptions || [];\n return list.map((item) => {\n if (item.match(/\\|\\d+$/) || exceptions.includes(item)) {\n return item;\n } else if (qualifyFn(item)) {\n return `${item}|0`;\n } else {\n return item;\n }\n });\n }\n\n return {\n name: 'SQL',\n case_insensitive: true,\n // does not include {} or HTML tags ` x.length < 3 }),\n literal: LITERALS,\n type: TYPES,\n built_in: POSSIBLE_WITHOUT_PARENS\n },\n contains: [\n {\n scope: \"type\",\n match: kws_to_regex(MULTI_WORD_TYPES)\n },\n MULTI_WORD_KEYWORDS,\n FUNCTION_CALL,\n VARIABLE,\n STRING,\n QUOTED_IDENTIFIER,\n hljs.C_NUMBER_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n COMMENT_MODE,\n OPERATOR\n ]\n };\n}\n\nexport { sql as default };\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\nconst keywordWrapper = keyword => concat(\n /\\b/,\n keyword,\n /\\w$/.test(keyword) ? /\\b/ : /\\B/\n);\n\n// Keywords that require a leading dot.\nconst dotKeywords = [\n 'Protocol', // contextual\n 'Type' // contextual\n].map(keywordWrapper);\n\n// Keywords that may have a leading dot.\nconst optionalDotKeywords = [\n 'init',\n 'self'\n].map(keywordWrapper);\n\n// should register as keyword, not type\nconst keywordTypes = [\n 'Any',\n 'Self'\n];\n\n// Regular keywords and literals.\nconst keywords = [\n // strings below will be fed into the regular `keywords` engine while regex\n // will result in additional modes being created to scan for those keywords to\n // avoid conflicts with other rules\n 'actor',\n 'any', // contextual\n 'associatedtype',\n 'async',\n 'await',\n /as\\?/, // operator\n /as!/, // operator\n 'as', // operator\n 'borrowing', // contextual\n 'break',\n 'case',\n 'catch',\n 'class',\n 'consume', // contextual\n 'consuming', // contextual\n 'continue',\n 'convenience', // contextual\n 'copy', // contextual\n 'default',\n 'defer',\n 'deinit',\n 'didSet', // contextual\n 'distributed',\n 'do',\n 'dynamic', // contextual\n 'each',\n 'else',\n 'enum',\n 'extension',\n 'fallthrough',\n /fileprivate\\(set\\)/,\n 'fileprivate',\n 'final', // contextual\n 'for',\n 'func',\n 'get', // contextual\n 'guard',\n 'if',\n 'import',\n 'indirect', // contextual\n 'infix', // contextual\n /init\\?/,\n /init!/,\n 'inout',\n /internal\\(set\\)/,\n 'internal',\n 'in',\n 'is', // operator\n 'isolated', // contextual\n 'nonisolated', // contextual\n 'lazy', // contextual\n 'let',\n 'macro',\n 'mutating', // contextual\n 'nonmutating', // contextual\n /open\\(set\\)/, // contextual\n 'open', // contextual\n 'operator',\n 'optional', // contextual\n 'override', // contextual\n 'package',\n 'postfix', // contextual\n 'precedencegroup',\n 'prefix', // contextual\n /private\\(set\\)/,\n 'private',\n 'protocol',\n /public\\(set\\)/,\n 'public',\n 'repeat',\n 'required', // contextual\n 'rethrows',\n 'return',\n 'set', // contextual\n 'some', // contextual\n 'static',\n 'struct',\n 'subscript',\n 'super',\n 'switch',\n 'throws',\n 'throw',\n /try\\?/, // operator\n /try!/, // operator\n 'try', // operator\n 'typealias',\n /unowned\\(safe\\)/, // contextual\n /unowned\\(unsafe\\)/, // contextual\n 'unowned', // contextual\n 'var',\n 'weak', // contextual\n 'where',\n 'while',\n 'willSet' // contextual\n];\n\n// NOTE: Contextual keywords are reserved only in specific contexts.\n// Ideally, these should be matched using modes to avoid false positives.\n\n// Literals.\nconst literals = [\n 'false',\n 'nil',\n 'true'\n];\n\n// Keywords used in precedence groups.\nconst precedencegroupKeywords = [\n 'assignment',\n 'associativity',\n 'higherThan',\n 'left',\n 'lowerThan',\n 'none',\n 'right'\n];\n\n// Keywords that start with a number sign (#).\n// #(un)available is handled separately.\nconst numberSignKeywords = [\n '#colorLiteral',\n '#column',\n '#dsohandle',\n '#else',\n '#elseif',\n '#endif',\n '#error',\n '#file',\n '#fileID',\n '#fileLiteral',\n '#filePath',\n '#function',\n '#if',\n '#imageLiteral',\n '#keyPath',\n '#line',\n '#selector',\n '#sourceLocation',\n '#warning'\n];\n\n// Global functions in the Standard Library.\nconst builtIns = [\n 'abs',\n 'all',\n 'any',\n 'assert',\n 'assertionFailure',\n 'debugPrint',\n 'dump',\n 'fatalError',\n 'getVaList',\n 'isKnownUniquelyReferenced',\n 'max',\n 'min',\n 'numericCast',\n 'pointwiseMax',\n 'pointwiseMin',\n 'precondition',\n 'preconditionFailure',\n 'print',\n 'readLine',\n 'repeatElement',\n 'sequence',\n 'stride',\n 'swap',\n 'swift_unboxFromSwiftValueWithType',\n 'transcode',\n 'type',\n 'unsafeBitCast',\n 'unsafeDowncast',\n 'withExtendedLifetime',\n 'withUnsafeMutablePointer',\n 'withUnsafePointer',\n 'withVaList',\n 'withoutActuallyEscaping',\n 'zip'\n];\n\n// Valid first characters for operators.\nconst operatorHead = either(\n /[/=\\-+!*%<>&|^~?]/,\n /[\\u00A1-\\u00A7]/,\n /[\\u00A9\\u00AB]/,\n /[\\u00AC\\u00AE]/,\n /[\\u00B0\\u00B1]/,\n /[\\u00B6\\u00BB\\u00BF\\u00D7\\u00F7]/,\n /[\\u2016-\\u2017]/,\n /[\\u2020-\\u2027]/,\n /[\\u2030-\\u203E]/,\n /[\\u2041-\\u2053]/,\n /[\\u2055-\\u205E]/,\n /[\\u2190-\\u23FF]/,\n /[\\u2500-\\u2775]/,\n /[\\u2794-\\u2BFF]/,\n /[\\u2E00-\\u2E7F]/,\n /[\\u3001-\\u3003]/,\n /[\\u3008-\\u3020]/,\n /[\\u3030]/\n);\n\n// Valid characters for operators.\nconst operatorCharacter = either(\n operatorHead,\n /[\\u0300-\\u036F]/,\n /[\\u1DC0-\\u1DFF]/,\n /[\\u20D0-\\u20FF]/,\n /[\\uFE00-\\uFE0F]/,\n /[\\uFE20-\\uFE2F]/\n // TODO: The following characters are also allowed, but the regex isn't supported yet.\n // /[\\u{E0100}-\\u{E01EF}]/u\n);\n\n// Valid operator.\nconst operator = concat(operatorHead, operatorCharacter, '*');\n\n// Valid first characters for identifiers.\nconst identifierHead = either(\n /[a-zA-Z_]/,\n /[\\u00A8\\u00AA\\u00AD\\u00AF\\u00B2-\\u00B5\\u00B7-\\u00BA]/,\n /[\\u00BC-\\u00BE\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF]/,\n /[\\u0100-\\u02FF\\u0370-\\u167F\\u1681-\\u180D\\u180F-\\u1DBF]/,\n /[\\u1E00-\\u1FFF]/,\n /[\\u200B-\\u200D\\u202A-\\u202E\\u203F-\\u2040\\u2054\\u2060-\\u206F]/,\n /[\\u2070-\\u20CF\\u2100-\\u218F\\u2460-\\u24FF\\u2776-\\u2793]/,\n /[\\u2C00-\\u2DFF\\u2E80-\\u2FFF]/,\n /[\\u3004-\\u3007\\u3021-\\u302F\\u3031-\\u303F\\u3040-\\uD7FF]/,\n /[\\uF900-\\uFD3D\\uFD40-\\uFDCF\\uFDF0-\\uFE1F\\uFE30-\\uFE44]/,\n /[\\uFE47-\\uFEFE\\uFF00-\\uFFFD]/ // Should be /[\\uFE47-\\uFFFD]/, but we have to exclude FEFF.\n // The following characters are also allowed, but the regexes aren't supported yet.\n // /[\\u{10000}-\\u{1FFFD}\\u{20000-\\u{2FFFD}\\u{30000}-\\u{3FFFD}\\u{40000}-\\u{4FFFD}]/u,\n // /[\\u{50000}-\\u{5FFFD}\\u{60000-\\u{6FFFD}\\u{70000}-\\u{7FFFD}\\u{80000}-\\u{8FFFD}]/u,\n // /[\\u{90000}-\\u{9FFFD}\\u{A0000-\\u{AFFFD}\\u{B0000}-\\u{BFFFD}\\u{C0000}-\\u{CFFFD}]/u,\n // /[\\u{D0000}-\\u{DFFFD}\\u{E0000-\\u{EFFFD}]/u\n);\n\n// Valid characters for identifiers.\nconst identifierCharacter = either(\n identifierHead,\n /\\d/,\n /[\\u0300-\\u036F\\u1DC0-\\u1DFF\\u20D0-\\u20FF\\uFE20-\\uFE2F]/\n);\n\n// Valid identifier.\nconst identifier = concat(identifierHead, identifierCharacter, '*');\n\n// Valid type identifier.\nconst typeIdentifier = concat(/[A-Z]/, identifierCharacter, '*');\n\n// Built-in attributes, which are highlighted as keywords.\n// @available is handled separately.\n// https://docs.swift.org/swift-book/documentation/the-swift-programming-language/attributes\nconst keywordAttributes = [\n 'attached',\n 'autoclosure',\n concat(/convention\\(/, either('swift', 'block', 'c'), /\\)/),\n 'discardableResult',\n 'dynamicCallable',\n 'dynamicMemberLookup',\n 'escaping',\n 'freestanding',\n 'frozen',\n 'GKInspectable',\n 'IBAction',\n 'IBDesignable',\n 'IBInspectable',\n 'IBOutlet',\n 'IBSegueAction',\n 'inlinable',\n 'main',\n 'nonobjc',\n 'NSApplicationMain',\n 'NSCopying',\n 'NSManaged',\n concat(/objc\\(/, identifier, /\\)/),\n 'objc',\n 'objcMembers',\n 'propertyWrapper',\n 'requires_stored_property_inits',\n 'resultBuilder',\n 'Sendable',\n 'testable',\n 'UIApplicationMain',\n 'unchecked',\n 'unknown',\n 'usableFromInline',\n 'warn_unqualified_access'\n];\n\n// Contextual keywords used in @available and #(un)available.\nconst availabilityKeywords = [\n 'iOS',\n 'iOSApplicationExtension',\n 'macOS',\n 'macOSApplicationExtension',\n 'macCatalyst',\n 'macCatalystApplicationExtension',\n 'watchOS',\n 'watchOSApplicationExtension',\n 'tvOS',\n 'tvOSApplicationExtension',\n 'swift'\n];\n\n/*\nLanguage: Swift\nDescription: Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns.\nAuthor: Steven Van Impe \nContributors: Chris Eidhof , Nate Cook , Alexander Lichter , Richard Gibson \nWebsite: https://swift.org\nCategory: common, system\n*/\n\n\n/** @type LanguageFn */\nfunction swift(hljs) {\n const WHITESPACE = {\n match: /\\s+/,\n relevance: 0\n };\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID411\n const BLOCK_COMMENT = hljs.COMMENT(\n '/\\\\*',\n '\\\\*/',\n { contains: [ 'self' ] }\n );\n const COMMENTS = [\n hljs.C_LINE_COMMENT_MODE,\n BLOCK_COMMENT\n ];\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID413\n // https://docs.swift.org/swift-book/ReferenceManual/zzSummaryOfTheGrammar.html\n const DOT_KEYWORD = {\n match: [\n /\\./,\n either(...dotKeywords, ...optionalDotKeywords)\n ],\n className: { 2: \"keyword\" }\n };\n const KEYWORD_GUARD = {\n // Consume .keyword to prevent highlighting properties and methods as keywords.\n match: concat(/\\./, either(...keywords)),\n relevance: 0\n };\n const PLAIN_KEYWORDS = keywords\n .filter(kw => typeof kw === 'string')\n .concat([ \"_|0\" ]); // seems common, so 0 relevance\n const REGEX_KEYWORDS = keywords\n .filter(kw => typeof kw !== 'string') // find regex\n .concat(keywordTypes)\n .map(keywordWrapper);\n const KEYWORD = { variants: [\n {\n className: 'keyword',\n match: either(...REGEX_KEYWORDS, ...optionalDotKeywords)\n }\n ] };\n // find all the regular keywords\n const KEYWORDS = {\n $pattern: either(\n /\\b\\w+/, // regular keywords\n /#\\w+/ // number keywords\n ),\n keyword: PLAIN_KEYWORDS\n .concat(numberSignKeywords),\n literal: literals\n };\n const KEYWORD_MODES = [\n DOT_KEYWORD,\n KEYWORD_GUARD,\n KEYWORD\n ];\n\n // https://github.com/apple/swift/tree/main/stdlib/public/core\n const BUILT_IN_GUARD = {\n // Consume .built_in to prevent highlighting properties and methods.\n match: concat(/\\./, either(...builtIns)),\n relevance: 0\n };\n const BUILT_IN = {\n className: 'built_in',\n match: concat(/\\b/, either(...builtIns), /(?=\\()/)\n };\n const BUILT_INS = [\n BUILT_IN_GUARD,\n BUILT_IN\n ];\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID418\n const OPERATOR_GUARD = {\n // Prevent -> from being highlighting as an operator.\n match: /->/,\n relevance: 0\n };\n const OPERATOR = {\n className: 'operator',\n relevance: 0,\n variants: [\n { match: operator },\n {\n // dot-operator: only operators that start with a dot are allowed to use dots as\n // characters (..., ...<, .*, etc). So there rule here is: a dot followed by one or more\n // characters that may also include dots.\n match: `\\\\.(\\\\.|${operatorCharacter})+` }\n ]\n };\n const OPERATORS = [\n OPERATOR_GUARD,\n OPERATOR\n ];\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#grammar_numeric-literal\n // TODO: Update for leading `-` after lookbehind is supported everywhere\n const decimalDigits = '([0-9]_*)+';\n const hexDigits = '([0-9a-fA-F]_*)+';\n const NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n // decimal floating-point-literal (subsumes decimal-literal)\n { match: `\\\\b(${decimalDigits})(\\\\.(${decimalDigits}))?` + `([eE][+-]?(${decimalDigits}))?\\\\b` },\n // hexadecimal floating-point-literal (subsumes hexadecimal-literal)\n { match: `\\\\b0x(${hexDigits})(\\\\.(${hexDigits}))?` + `([pP][+-]?(${decimalDigits}))?\\\\b` },\n // octal-literal\n { match: /\\b0o([0-7]_*)+\\b/ },\n // binary-literal\n { match: /\\b0b([01]_*)+\\b/ }\n ]\n };\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#grammar_string-literal\n const ESCAPED_CHARACTER = (rawDelimiter = \"\") => ({\n className: 'subst',\n variants: [\n { match: concat(/\\\\/, rawDelimiter, /[0\\\\tnr\"']/) },\n { match: concat(/\\\\/, rawDelimiter, /u\\{[0-9a-fA-F]{1,8}\\}/) }\n ]\n });\n const ESCAPED_NEWLINE = (rawDelimiter = \"\") => ({\n className: 'subst',\n match: concat(/\\\\/, rawDelimiter, /[\\t ]*(?:[\\r\\n]|\\r\\n)/)\n });\n const INTERPOLATION = (rawDelimiter = \"\") => ({\n className: 'subst',\n label: \"interpol\",\n begin: concat(/\\\\/, rawDelimiter, /\\(/),\n end: /\\)/\n });\n const MULTILINE_STRING = (rawDelimiter = \"\") => ({\n begin: concat(rawDelimiter, /\"\"\"/),\n end: concat(/\"\"\"/, rawDelimiter),\n contains: [\n ESCAPED_CHARACTER(rawDelimiter),\n ESCAPED_NEWLINE(rawDelimiter),\n INTERPOLATION(rawDelimiter)\n ]\n });\n const SINGLE_LINE_STRING = (rawDelimiter = \"\") => ({\n begin: concat(rawDelimiter, /\"/),\n end: concat(/\"/, rawDelimiter),\n contains: [\n ESCAPED_CHARACTER(rawDelimiter),\n INTERPOLATION(rawDelimiter)\n ]\n });\n const STRING = {\n className: 'string',\n variants: [\n MULTILINE_STRING(),\n MULTILINE_STRING(\"#\"),\n MULTILINE_STRING(\"##\"),\n MULTILINE_STRING(\"###\"),\n SINGLE_LINE_STRING(),\n SINGLE_LINE_STRING(\"#\"),\n SINGLE_LINE_STRING(\"##\"),\n SINGLE_LINE_STRING(\"###\")\n ]\n };\n\n const REGEXP_CONTENTS = [\n hljs.BACKSLASH_ESCAPE,\n {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [ hljs.BACKSLASH_ESCAPE ]\n }\n ];\n\n const BARE_REGEXP_LITERAL = {\n begin: /\\/[^\\s](?=[^/\\n]*\\/)/,\n end: /\\//,\n contains: REGEXP_CONTENTS\n };\n\n const EXTENDED_REGEXP_LITERAL = (rawDelimiter) => {\n const begin = concat(rawDelimiter, /\\//);\n const end = concat(/\\//, rawDelimiter);\n return {\n begin,\n end,\n contains: [\n ...REGEXP_CONTENTS,\n {\n scope: \"comment\",\n begin: `#(?!.*${end})`,\n end: /$/,\n },\n ],\n };\n };\n\n // https://docs.swift.org/swift-book/documentation/the-swift-programming-language/lexicalstructure/#Regular-Expression-Literals\n const REGEXP = {\n scope: \"regexp\",\n variants: [\n EXTENDED_REGEXP_LITERAL('###'),\n EXTENDED_REGEXP_LITERAL('##'),\n EXTENDED_REGEXP_LITERAL('#'),\n BARE_REGEXP_LITERAL\n ]\n };\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID412\n const QUOTED_IDENTIFIER = { match: concat(/`/, identifier, /`/) };\n const IMPLICIT_PARAMETER = {\n className: 'variable',\n match: /\\$\\d+/\n };\n const PROPERTY_WRAPPER_PROJECTION = {\n className: 'variable',\n match: `\\\\$${identifierCharacter}+`\n };\n const IDENTIFIERS = [\n QUOTED_IDENTIFIER,\n IMPLICIT_PARAMETER,\n PROPERTY_WRAPPER_PROJECTION\n ];\n\n // https://docs.swift.org/swift-book/ReferenceManual/Attributes.html\n const AVAILABLE_ATTRIBUTE = {\n match: /(@|#(un)?)available/,\n scope: 'keyword',\n starts: { contains: [\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: availabilityKeywords,\n contains: [\n ...OPERATORS,\n NUMBER,\n STRING\n ]\n }\n ] }\n };\n\n const KEYWORD_ATTRIBUTE = {\n scope: 'keyword',\n match: concat(/@/, either(...keywordAttributes), lookahead(either(/\\(/, /\\s+/))),\n };\n\n const USER_DEFINED_ATTRIBUTE = {\n scope: 'meta',\n match: concat(/@/, identifier)\n };\n\n const ATTRIBUTES = [\n AVAILABLE_ATTRIBUTE,\n KEYWORD_ATTRIBUTE,\n USER_DEFINED_ATTRIBUTE\n ];\n\n // https://docs.swift.org/swift-book/ReferenceManual/Types.html\n const TYPE = {\n match: lookahead(/\\b[A-Z]/),\n relevance: 0,\n contains: [\n { // Common Apple frameworks, for relevance boost\n className: 'type',\n match: concat(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/, identifierCharacter, '+')\n },\n { // Type identifier\n className: 'type',\n match: typeIdentifier,\n relevance: 0\n },\n { // Optional type\n match: /[?!]+/,\n relevance: 0\n },\n { // Variadic parameter\n match: /\\.\\.\\./,\n relevance: 0\n },\n { // Protocol composition\n match: concat(/\\s+&\\s+/, lookahead(typeIdentifier)),\n relevance: 0\n }\n ]\n };\n const GENERIC_ARGUMENTS = {\n begin: //,\n keywords: KEYWORDS,\n contains: [\n ...COMMENTS,\n ...KEYWORD_MODES,\n ...ATTRIBUTES,\n OPERATOR_GUARD,\n TYPE\n ]\n };\n TYPE.contains.push(GENERIC_ARGUMENTS);\n\n // https://docs.swift.org/swift-book/ReferenceManual/Expressions.html#ID552\n // Prevents element names from being highlighted as keywords.\n const TUPLE_ELEMENT_NAME = {\n match: concat(identifier, /\\s*:/),\n keywords: \"_|0\",\n relevance: 0\n };\n // Matches tuples as well as the parameter list of a function type.\n const TUPLE = {\n begin: /\\(/,\n end: /\\)/,\n relevance: 0,\n keywords: KEYWORDS,\n contains: [\n 'self',\n TUPLE_ELEMENT_NAME,\n ...COMMENTS,\n REGEXP,\n ...KEYWORD_MODES,\n ...BUILT_INS,\n ...OPERATORS,\n NUMBER,\n STRING,\n ...IDENTIFIERS,\n ...ATTRIBUTES,\n TYPE\n ]\n };\n\n const GENERIC_PARAMETERS = {\n begin: //,\n keywords: 'repeat each',\n contains: [\n ...COMMENTS,\n TYPE\n ]\n };\n const FUNCTION_PARAMETER_NAME = {\n begin: either(\n lookahead(concat(identifier, /\\s*:/)),\n lookahead(concat(identifier, /\\s+/, identifier, /\\s*:/))\n ),\n end: /:/,\n relevance: 0,\n contains: [\n {\n className: 'keyword',\n match: /\\b_\\b/\n },\n {\n className: 'params',\n match: identifier\n }\n ]\n };\n const FUNCTION_PARAMETERS = {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n contains: [\n FUNCTION_PARAMETER_NAME,\n ...COMMENTS,\n ...KEYWORD_MODES,\n ...OPERATORS,\n NUMBER,\n STRING,\n ...ATTRIBUTES,\n TYPE,\n TUPLE\n ],\n endsParent: true,\n illegal: /[\"']/\n };\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID362\n // https://docs.swift.org/swift-book/documentation/the-swift-programming-language/declarations/#Macro-Declaration\n const FUNCTION_OR_MACRO = {\n match: [\n /(func|macro)/,\n /\\s+/,\n either(QUOTED_IDENTIFIER.match, identifier, operator)\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n GENERIC_PARAMETERS,\n FUNCTION_PARAMETERS,\n WHITESPACE\n ],\n illegal: [\n /\\[/,\n /%/\n ]\n };\n\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID375\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID379\n const INIT_SUBSCRIPT = {\n match: [\n /\\b(?:subscript|init[?!]?)/,\n /\\s*(?=[<(])/,\n ],\n className: { 1: \"keyword\" },\n contains: [\n GENERIC_PARAMETERS,\n FUNCTION_PARAMETERS,\n WHITESPACE\n ],\n illegal: /\\[|%/\n };\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID380\n const OPERATOR_DECLARATION = {\n match: [\n /operator/,\n /\\s+/,\n operator\n ],\n className: {\n 1: \"keyword\",\n 3: \"title\"\n }\n };\n\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID550\n const PRECEDENCEGROUP = {\n begin: [\n /precedencegroup/,\n /\\s+/,\n typeIdentifier\n ],\n className: {\n 1: \"keyword\",\n 3: \"title\"\n },\n contains: [ TYPE ],\n keywords: [\n ...precedencegroupKeywords,\n ...literals\n ],\n end: /}/\n };\n\n const CLASS_FUNC_DECLARATION = {\n match: [\n /class\\b/, \n /\\s+/,\n /func\\b/,\n /\\s+/,\n /\\b[A-Za-z_][A-Za-z0-9_]*\\b/ \n ],\n scope: {\n 1: \"keyword\",\n 3: \"keyword\",\n 5: \"title.function\"\n }\n };\n\n const CLASS_VAR_DECLARATION = {\n match: [\n /class\\b/,\n /\\s+/, \n /var\\b/, \n ],\n scope: {\n 1: \"keyword\",\n 3: \"keyword\"\n }\n };\n\n const TYPE_DECLARATION = {\n begin: [\n /(struct|protocol|class|extension|enum|actor)/,\n /\\s+/,\n identifier,\n /\\s*/,\n ],\n beginScope: {\n 1: \"keyword\",\n 3: \"title.class\"\n },\n keywords: KEYWORDS,\n contains: [\n GENERIC_PARAMETERS,\n ...KEYWORD_MODES,\n {\n begin: /:/,\n end: /\\{/,\n keywords: KEYWORDS,\n contains: [\n {\n scope: \"title.class.inherited\",\n match: typeIdentifier,\n },\n ...KEYWORD_MODES,\n ],\n relevance: 0,\n },\n ]\n };\n\n // Add supported submodes to string interpolation.\n for (const variant of STRING.variants) {\n const interpolation = variant.contains.find(mode => mode.label === \"interpol\");\n // TODO: Interpolation can contain any expression, so there's room for improvement here.\n interpolation.keywords = KEYWORDS;\n const submodes = [\n ...KEYWORD_MODES,\n ...BUILT_INS,\n ...OPERATORS,\n NUMBER,\n STRING,\n ...IDENTIFIERS\n ];\n interpolation.contains = [\n ...submodes,\n {\n begin: /\\(/,\n end: /\\)/,\n contains: [\n 'self',\n ...submodes\n ]\n }\n ];\n }\n\n return {\n name: 'Swift',\n keywords: KEYWORDS,\n contains: [\n ...COMMENTS,\n FUNCTION_OR_MACRO,\n INIT_SUBSCRIPT,\n CLASS_FUNC_DECLARATION,\n CLASS_VAR_DECLARATION,\n TYPE_DECLARATION,\n OPERATOR_DECLARATION,\n PRECEDENCEGROUP,\n {\n beginKeywords: 'import',\n end: /$/,\n contains: [ ...COMMENTS ],\n relevance: 0\n },\n REGEXP,\n ...KEYWORD_MODES,\n ...BUILT_INS,\n ...OPERATORS,\n NUMBER,\n STRING,\n ...IDENTIFIERS,\n ...ATTRIBUTES,\n TYPE,\n TUPLE\n ]\n };\n}\n\nexport { swift as default };\n","const IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\nconst KEYWORDS = [\n \"as\", // for exports\n \"in\",\n \"of\",\n \"if\",\n \"for\",\n \"while\",\n \"finally\",\n \"var\",\n \"new\",\n \"function\",\n \"do\",\n \"return\",\n \"void\",\n \"else\",\n \"break\",\n \"catch\",\n \"instanceof\",\n \"with\",\n \"throw\",\n \"case\",\n \"default\",\n \"try\",\n \"switch\",\n \"continue\",\n \"typeof\",\n \"delete\",\n \"let\",\n \"yield\",\n \"const\",\n \"class\",\n // JS handles these with a special rule\n // \"get\",\n // \"set\",\n \"debugger\",\n \"async\",\n \"await\",\n \"static\",\n \"import\",\n \"from\",\n \"export\",\n \"extends\",\n // It's reached stage 3, which is \"recommended for implementation\":\n \"using\"\n];\nconst LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"undefined\",\n \"NaN\",\n \"Infinity\"\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\nconst TYPES = [\n // Fundamental objects\n \"Object\",\n \"Function\",\n \"Boolean\",\n \"Symbol\",\n // numbers and dates\n \"Math\",\n \"Date\",\n \"Number\",\n \"BigInt\",\n // text\n \"String\",\n \"RegExp\",\n // Indexed collections\n \"Array\",\n \"Float32Array\",\n \"Float64Array\",\n \"Int8Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"Int16Array\",\n \"Int32Array\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n // Keyed collections\n \"Set\",\n \"Map\",\n \"WeakSet\",\n \"WeakMap\",\n // Structured data\n \"ArrayBuffer\",\n \"SharedArrayBuffer\",\n \"Atomics\",\n \"DataView\",\n \"JSON\",\n // Control abstraction objects\n \"Promise\",\n \"Generator\",\n \"GeneratorFunction\",\n \"AsyncFunction\",\n // Reflection\n \"Reflect\",\n \"Proxy\",\n // Internationalization\n \"Intl\",\n // WebAssembly\n \"WebAssembly\"\n];\n\nconst ERROR_TYPES = [\n \"Error\",\n \"EvalError\",\n \"InternalError\",\n \"RangeError\",\n \"ReferenceError\",\n \"SyntaxError\",\n \"TypeError\",\n \"URIError\"\n];\n\nconst BUILT_IN_GLOBALS = [\n \"setInterval\",\n \"setTimeout\",\n \"clearInterval\",\n \"clearTimeout\",\n\n \"require\",\n \"exports\",\n\n \"eval\",\n \"isFinite\",\n \"isNaN\",\n \"parseFloat\",\n \"parseInt\",\n \"decodeURI\",\n \"decodeURIComponent\",\n \"encodeURI\",\n \"encodeURIComponent\",\n \"escape\",\n \"unescape\"\n];\n\nconst BUILT_IN_VARIABLES = [\n \"arguments\",\n \"this\",\n \"super\",\n \"console\",\n \"window\",\n \"document\",\n \"localStorage\",\n \"sessionStorage\",\n \"module\",\n \"global\" // Node.js\n];\n\nconst BUILT_INS = [].concat(\n BUILT_IN_GLOBALS,\n TYPES,\n ERROR_TYPES\n);\n\n/*\nLanguage: JavaScript\nDescription: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions.\nCategory: common, scripting, web\nWebsite: https://developer.mozilla.org/en-US/docs/Web/JavaScript\n*/\n\n\n/** @type LanguageFn */\nfunction javascript(hljs) {\n const regex = hljs.regex;\n /**\n * Takes a string like \" {\n const tag = \"',\n end: ''\n };\n // to avoid some special cases inside isTrulyOpeningTag\n const XML_SELF_CLOSING = /<[A-Za-z0-9\\\\._:-]+\\s*\\/>/;\n const XML_TAG = {\n begin: /<[A-Za-z0-9\\\\._:-]+/,\n end: /\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,\n /**\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\n isTrulyOpeningTag: (match, response) => {\n const afterMatchIndex = match[0].length + match.index;\n const nextChar = match.input[afterMatchIndex];\n if (\n // HTML should not include another raw `<` inside a tag\n // nested type?\n // `>`, etc.\n nextChar === \"<\" ||\n // the , gives away that this is not HTML\n // ``\n nextChar === \",\"\n ) {\n response.ignoreMatch();\n return;\n }\n\n // ``\n // Quite possibly a tag, lets look for a matching closing tag...\n if (nextChar === \">\") {\n // if we cannot find a matching closing tag, then we\n // will ignore it\n if (!hasClosingTag(match, { after: afterMatchIndex })) {\n response.ignoreMatch();\n }\n }\n\n // `` (self-closing)\n // handled by simpleSelfClosing rule\n\n let m;\n const afterMatch = match.input.substring(afterMatchIndex);\n\n // some more template typing stuff\n // (key?: string) => Modify<\n if ((m = afterMatch.match(/^\\s*=/))) {\n response.ignoreMatch();\n return;\n }\n\n // ``\n // technically this could be HTML, but it smells like a type\n // NOTE: This is ugh, but added specifically for https://github.com/highlightjs/highlight.js/issues/3276\n if ((m = afterMatch.match(/^\\s+extends\\s+/))) {\n if (m.index === 0) {\n response.ignoreMatch();\n // eslint-disable-next-line no-useless-return\n return;\n }\n }\n }\n };\n const KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_INS,\n \"variable.language\": BUILT_IN_VARIABLES\n };\n\n // https://tc39.es/ecma262/#sec-literals-numeric-literals\n const decimalDigits = '[0-9](_?[0-9])*';\n const frac = `\\\\.(${decimalDigits})`;\n // DecimalIntegerLiteral, including Annex B NonOctalDecimalIntegerLiteral\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;\n const NUMBER = {\n className: 'number',\n variants: [\n // DecimalLiteral\n { begin: `(\\\\b(${decimalInteger})((${frac})|\\\\.)?|(${frac}))` +\n `[eE][+-]?(${decimalDigits})\\\\b` },\n { begin: `\\\\b(${decimalInteger})\\\\b((${frac})\\\\b|\\\\.)?|(${frac})\\\\b` },\n\n // DecimalBigIntegerLiteral\n { begin: `\\\\b(0|[1-9](_?[0-9])*)n\\\\b` },\n\n // NonDecimalIntegerLiteral\n { begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\\\b\" },\n { begin: \"\\\\b0[bB][0-1](_?[0-1])*n?\\\\b\" },\n { begin: \"\\\\b0[oO][0-7](_?[0-7])*n?\\\\b\" },\n\n // LegacyOctalIntegerLiteral (does not include underscore separators)\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n { begin: \"\\\\b0[0-7]+n?\\\\b\" },\n ],\n relevance: 0\n };\n\n const SUBST = {\n className: 'subst',\n begin: '\\\\$\\\\{',\n end: '\\\\}',\n keywords: KEYWORDS$1,\n contains: [] // defined later\n };\n const HTML_TEMPLATE = {\n begin: '\\.?html`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'xml'\n }\n };\n const CSS_TEMPLATE = {\n begin: '\\.?css`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'css'\n }\n };\n const GRAPHQL_TEMPLATE = {\n begin: '\\.?gql`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'graphql'\n }\n };\n const TEMPLATE_STRING = {\n className: 'string',\n begin: '`',\n end: '`',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n const JSDOC_COMMENT = hljs.COMMENT(\n /\\/\\*\\*(?!\\/)/,\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n begin: '(?=@[A-Za-z]+)',\n relevance: 0,\n contains: [\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n },\n {\n className: 'type',\n begin: '\\\\{',\n end: '\\\\}',\n excludeEnd: true,\n excludeBegin: true,\n relevance: 0\n },\n {\n className: 'variable',\n begin: IDENT_RE$1 + '(?=\\\\s*(-)|$)',\n endsParent: true,\n relevance: 0\n },\n // eat spaces (not newlines) so we can find\n // types or variables\n {\n begin: /(?=[^\\n])\\s/,\n relevance: 0\n }\n ]\n }\n ]\n }\n );\n const COMMENT = {\n className: \"comment\",\n variants: [\n JSDOC_COMMENT,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE\n ]\n };\n const SUBST_INTERNALS = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n GRAPHQL_TEMPLATE,\n TEMPLATE_STRING,\n // Skip numbers when they are part of a variable name\n { match: /\\$\\d+/ },\n NUMBER,\n // This is intentional:\n // See https://github.com/highlightjs/highlight.js/issues/3288\n // hljs.REGEXP_MODE\n ];\n SUBST.contains = SUBST_INTERNALS\n .concat({\n // we need to pair up {} inside our subst to prevent\n // it from ending too early by matching another }\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS$1,\n contains: [\n \"self\"\n ].concat(SUBST_INTERNALS)\n });\n const SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains);\n const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([\n // eat recursive parens in sub expressions\n {\n begin: /(\\s*)\\(/,\n end: /\\)/,\n keywords: KEYWORDS$1,\n contains: [\"self\"].concat(SUBST_AND_COMMENTS)\n }\n ]);\n const PARAMS = {\n className: 'params',\n // convert this to negative lookbehind in v12\n begin: /(\\s*)\\(/, // to match the parms with\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n };\n\n // ES6 classes\n const CLASS_OR_EXTENDS = {\n variants: [\n // class Car extends vehicle\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1,\n /\\s+/,\n /extends/,\n /\\s+/,\n regex.concat(IDENT_RE$1, \"(\", regex.concat(/\\./, IDENT_RE$1), \")*\")\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\",\n 5: \"keyword\",\n 7: \"title.class.inherited\"\n }\n },\n // class Car\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n\n ]\n };\n\n const CLASS_REFERENCE = {\n relevance: 0,\n match:\n regex.either(\n // Hard coded exceptions\n /\\bJSON/,\n // Float32Array, OutT\n /\\b[A-Z][a-z]+([A-Z][a-z]*|\\d)*/,\n // CSSFactory, CSSFactoryT\n /\\b[A-Z]{2,}([A-Z][a-z]+|\\d)+([A-Z][a-z]*)*/,\n // FPs, FPsT\n /\\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\\d)*([A-Z][a-z]*)*/,\n // P\n // single letters are not highlighted\n // BLAH\n // this will be flagged as a UPPER_CASE_CONSTANT instead\n ),\n className: \"title.class\",\n keywords: {\n _: [\n // se we still get relevance credit for JS library classes\n ...TYPES,\n ...ERROR_TYPES\n ]\n }\n };\n\n const USE_STRICT = {\n label: \"use_strict\",\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use (strict|asm)['\"]/\n };\n\n const FUNCTION_DEFINITION = {\n variants: [\n {\n match: [\n /function/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\s*\\()/\n ]\n },\n // anonymous function\n {\n match: [\n /function/,\n /\\s*(?=\\()/\n ]\n }\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n label: \"func.def\",\n contains: [ PARAMS ],\n illegal: /%/\n };\n\n const UPPER_CASE_CONSTANT = {\n relevance: 0,\n match: /\\b[A-Z][A-Z_0-9]+\\b/,\n className: \"variable.constant\"\n };\n\n function noneOf(list) {\n return regex.concat(\"(?!\", list.join(\"|\"), \")\");\n }\n\n const FUNCTION_CALL = {\n match: regex.concat(\n /\\b/,\n noneOf([\n ...BUILT_IN_GLOBALS,\n \"super\",\n \"import\"\n ].map(x => `${x}\\\\s*\\\\(`)),\n IDENT_RE$1, regex.lookahead(/\\s*\\(/)),\n className: \"title.function\",\n relevance: 0\n };\n\n const PROPERTY_ACCESS = {\n begin: regex.concat(/\\./, regex.lookahead(\n regex.concat(IDENT_RE$1, /(?![0-9A-Za-z$_(])/)\n )),\n end: IDENT_RE$1,\n excludeBegin: true,\n keywords: \"prototype\",\n className: \"property\",\n relevance: 0\n };\n\n const GETTER_OR_SETTER = {\n match: [\n /get|set/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\()/\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n { // eat to avoid empty params\n begin: /\\(\\)/\n },\n PARAMS\n ]\n };\n\n const FUNC_LEAD_IN_RE = '(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\\\s*=>';\n\n const FUNCTION_VARIABLE = {\n match: [\n /const|var|let/, /\\s+/,\n IDENT_RE$1, /\\s*/,\n /=\\s*/,\n /(async\\s*)?/, // async is optional\n regex.lookahead(FUNC_LEAD_IN_RE)\n ],\n keywords: \"async\",\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n PARAMS\n ]\n };\n\n return {\n name: 'JavaScript',\n aliases: ['js', 'jsx', 'mjs', 'cjs'],\n keywords: KEYWORDS$1,\n // this will be extended by TypeScript\n exports: { PARAMS_CONTAINS, CLASS_REFERENCE },\n illegal: /#(?![$_A-z])/,\n contains: [\n hljs.SHEBANG({\n label: \"shebang\",\n binary: \"node\",\n relevance: 5\n }),\n USE_STRICT,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n GRAPHQL_TEMPLATE,\n TEMPLATE_STRING,\n COMMENT,\n // Skip numbers when they are part of a variable name\n { match: /\\$\\d+/ },\n NUMBER,\n CLASS_REFERENCE,\n {\n scope: 'attr',\n match: IDENT_RE$1 + regex.lookahead(':'),\n relevance: 0\n },\n FUNCTION_VARIABLE,\n { // \"value\" container\n begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(case|return|throw)\\\\b)\\\\s*',\n keywords: 'return throw case',\n relevance: 0,\n contains: [\n COMMENT,\n hljs.REGEXP_MODE,\n {\n className: 'function',\n // we have to count the parens to make sure we actually have the\n // correct bounding ( ) before the =>. There could be any number of\n // sub-expressions inside also surrounded by parens.\n begin: FUNC_LEAD_IN_RE,\n returnBegin: true,\n end: '\\\\s*=>',\n contains: [\n {\n className: 'params',\n variants: [\n {\n begin: hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n },\n {\n className: null,\n begin: /\\(\\s*\\)/,\n skip: true\n },\n {\n begin: /(\\s*)\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n }\n ]\n }\n ]\n },\n { // could be a comma delimited list of params to a function call\n begin: /,/,\n relevance: 0\n },\n {\n match: /\\s+/,\n relevance: 0\n },\n { // JSX\n variants: [\n { begin: FRAGMENT.begin, end: FRAGMENT.end },\n { match: XML_SELF_CLOSING },\n {\n begin: XML_TAG.begin,\n // we carefully check the opening tag to see if it truly\n // is a tag and not a false positive\n 'on:begin': XML_TAG.isTrulyOpeningTag,\n end: XML_TAG.end\n }\n ],\n subLanguage: 'xml',\n contains: [\n {\n begin: XML_TAG.begin,\n end: XML_TAG.end,\n skip: true,\n contains: ['self']\n }\n ]\n }\n ],\n },\n FUNCTION_DEFINITION,\n {\n // prevent this from getting swallowed up by function\n // since they appear \"function like\"\n beginKeywords: \"while if switch catch for\"\n },\n {\n // we have to count the parens to make sure we actually have the correct\n // bounding ( ). There could be any number of sub-expressions inside\n // also surrounded by parens.\n begin: '\\\\b(?!function)' + hljs.UNDERSCORE_IDENT_RE +\n '\\\\(' + // first parens\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)\\\\s*\\\\{', // end parens\n returnBegin:true,\n label: \"func.def\",\n contains: [\n PARAMS,\n hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1, className: \"title.function\" })\n ]\n },\n // catch ... so it won't trigger the property rule below\n {\n match: /\\.\\.\\./,\n relevance: 0\n },\n PROPERTY_ACCESS,\n // hack: prevents detection of keywords in some circumstances\n // .keyword()\n // $keyword = x\n {\n match: '\\\\$' + IDENT_RE$1,\n relevance: 0\n },\n {\n match: [ /\\bconstructor(?=\\s*\\()/ ],\n className: { 1: \"title.function\" },\n contains: [ PARAMS ]\n },\n FUNCTION_CALL,\n UPPER_CASE_CONSTANT,\n CLASS_OR_EXTENDS,\n GETTER_OR_SETTER,\n {\n match: /\\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`\n }\n ]\n };\n}\n\n/*\nLanguage: TypeScript\nAuthor: Panu Horsmalahti \nContributors: Ike Ku \nDescription: TypeScript is a strict superset of JavaScript\nWebsite: https://www.typescriptlang.org\nCategory: common, scripting\n*/\n\n\n/** @type LanguageFn */\nfunction typescript(hljs) {\n const regex = hljs.regex;\n const tsLanguage = javascript(hljs);\n\n const IDENT_RE$1 = IDENT_RE;\n const TYPES = [\n \"any\",\n \"void\",\n \"number\",\n \"boolean\",\n \"string\",\n \"object\",\n \"never\",\n \"symbol\",\n \"bigint\",\n \"unknown\"\n ];\n const NAMESPACE = {\n begin: [\n /namespace/,\n /\\s+/,\n hljs.IDENT_RE\n ],\n beginScope: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n };\n const INTERFACE = {\n beginKeywords: 'interface',\n end: /\\{/,\n excludeEnd: true,\n keywords: {\n keyword: 'interface extends',\n built_in: TYPES\n },\n contains: [ tsLanguage.exports.CLASS_REFERENCE ]\n };\n const USE_STRICT = {\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use strict['\"]/\n };\n const TS_SPECIFIC_KEYWORDS = [\n \"type\",\n // \"namespace\",\n \"interface\",\n \"public\",\n \"private\",\n \"protected\",\n \"implements\",\n \"declare\",\n \"abstract\",\n \"readonly\",\n \"enum\",\n \"override\",\n \"satisfies\"\n ];\n /*\n namespace is a TS keyword but it's fine to use it as a variable name too.\n const message = 'foo';\n const namespace = 'bar';\n */\n const KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS.concat(TS_SPECIFIC_KEYWORDS),\n literal: LITERALS,\n built_in: BUILT_INS.concat(TYPES),\n \"variable.language\": BUILT_IN_VARIABLES\n };\n\n const DECORATOR = {\n className: 'meta',\n begin: '@' + IDENT_RE$1,\n };\n\n const swapMode = (mode, label, replacement) => {\n const indx = mode.contains.findIndex(m => m.label === label);\n if (indx === -1) { throw new Error(\"can not find mode to replace\"); }\n\n mode.contains.splice(indx, 1, replacement);\n };\n\n\n // this should update anywhere keywords is used since\n // it will be the same actual JS object\n Object.assign(tsLanguage.keywords, KEYWORDS$1);\n\n tsLanguage.exports.PARAMS_CONTAINS.push(DECORATOR);\n\n // highlight the function params\n const ATTRIBUTE_HIGHLIGHT = tsLanguage.contains.find(c => c.scope === \"attr\");\n\n // take default attr rule and extend it to support optionals\n const OPTIONAL_KEY_OR_ARGUMENT = Object.assign({},\n ATTRIBUTE_HIGHLIGHT,\n { match: regex.concat(IDENT_RE$1, regex.lookahead(/\\s*\\?:/)) }\n );\n tsLanguage.exports.PARAMS_CONTAINS.push([\n tsLanguage.exports.CLASS_REFERENCE, // class reference for highlighting the params types\n ATTRIBUTE_HIGHLIGHT, // highlight the params key\n OPTIONAL_KEY_OR_ARGUMENT, // Added for optional property assignment highlighting\n ]);\n\n // Add the optional property assignment highlighting for objects or classes\n tsLanguage.contains = tsLanguage.contains.concat([\n DECORATOR,\n NAMESPACE,\n INTERFACE,\n OPTIONAL_KEY_OR_ARGUMENT, // Added for optional property assignment highlighting\n ]);\n\n // TS gets a simpler shebang rule than JS\n swapMode(tsLanguage, \"shebang\", hljs.SHEBANG());\n // JS use strict rule purposely excludes `asm` which makes no sense\n swapMode(tsLanguage, \"use_strict\", USE_STRICT);\n\n const functionDeclaration = tsLanguage.contains.find(m => m.label === \"func.def\");\n functionDeclaration.relevance = 0; // () => {} is more typical in TypeScript\n\n Object.assign(tsLanguage, {\n name: 'TypeScript',\n aliases: [\n 'ts',\n 'tsx',\n 'mts',\n 'cts'\n ]\n });\n\n return tsLanguage;\n}\n\nexport { typescript as default };\n","/*\nLanguage: Visual Basic .NET\nDescription: Visual Basic .NET (VB.NET) is a multi-paradigm, object-oriented programming language, implemented on the .NET Framework.\nAuthors: Poren Chiang , Jan Pilzer\nWebsite: https://docs.microsoft.com/dotnet/visual-basic/getting-started\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction vbnet(hljs) {\n const regex = hljs.regex;\n /**\n * Character Literal\n * Either a single character (\"a\"C) or an escaped double quote (\"\"\"\"C).\n */\n const CHARACTER = {\n className: 'string',\n begin: /\"(\"\"|[^/n])\"C\\b/\n };\n\n const STRING = {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n illegal: /\\n/,\n contains: [\n {\n // double quote escape\n begin: /\"\"/ }\n ]\n };\n\n /** Date Literals consist of a date, a time, or both separated by whitespace, surrounded by # */\n const MM_DD_YYYY = /\\d{1,2}\\/\\d{1,2}\\/\\d{4}/;\n const YYYY_MM_DD = /\\d{4}-\\d{1,2}-\\d{1,2}/;\n const TIME_12H = /(\\d|1[012])(:\\d+){0,2} *(AM|PM)/;\n const TIME_24H = /\\d{1,2}(:\\d{1,2}){1,2}/;\n const DATE = {\n className: 'literal',\n variants: [\n {\n // #YYYY-MM-DD# (ISO-Date) or #M/D/YYYY# (US-Date)\n begin: regex.concat(/# */, regex.either(YYYY_MM_DD, MM_DD_YYYY), / *#/) },\n {\n // #H:mm[:ss]# (24h Time)\n begin: regex.concat(/# */, TIME_24H, / *#/) },\n {\n // #h[:mm[:ss]] A# (12h Time)\n begin: regex.concat(/# */, TIME_12H, / *#/) },\n {\n // date plus time\n begin: regex.concat(\n /# */,\n regex.either(YYYY_MM_DD, MM_DD_YYYY),\n / +/,\n regex.either(TIME_12H, TIME_24H),\n / *#/\n ) }\n ]\n };\n\n const NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n {\n // Float\n begin: /\\b\\d[\\d_]*((\\.[\\d_]+(E[+-]?[\\d_]+)?)|(E[+-]?[\\d_]+))[RFD@!#]?/ },\n {\n // Integer (base 10)\n begin: /\\b\\d[\\d_]*((U?[SIL])|[%&])?/ },\n {\n // Integer (base 16)\n begin: /&H[\\dA-F_]+((U?[SIL])|[%&])?/ },\n {\n // Integer (base 8)\n begin: /&O[0-7_]+((U?[SIL])|[%&])?/ },\n {\n // Integer (base 2)\n begin: /&B[01_]+((U?[SIL])|[%&])?/ }\n ]\n };\n\n const LABEL = {\n className: 'label',\n begin: /^\\w+:/\n };\n\n const DOC_COMMENT = hljs.COMMENT(/'''/, /$/, { contains: [\n {\n className: 'doctag',\n begin: /<\\/?/,\n end: />/\n }\n ] });\n\n const COMMENT = hljs.COMMENT(null, /$/, { variants: [\n { begin: /'/ },\n {\n // TODO: Use multi-class for leading spaces\n begin: /([\\t ]|^)REM(?=\\s)/ }\n ] });\n\n const DIRECTIVES = {\n className: 'meta',\n // TODO: Use multi-class for indentation once available\n begin: /[\\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\\b/,\n end: /$/,\n keywords: { keyword:\n 'const disable else elseif enable end externalsource if region then' },\n contains: [ COMMENT ]\n };\n\n return {\n name: 'Visual Basic .NET',\n aliases: [ 'vb' ],\n case_insensitive: true,\n classNameAliases: { label: 'symbol' },\n keywords: {\n keyword:\n 'addhandler alias aggregate ansi as async assembly auto binary by byref byval ' /* a-b */\n + 'call case catch class compare const continue custom declare default delegate dim distinct do ' /* c-d */\n + 'each equals else elseif end enum erase error event exit explicit finally for friend from function ' /* e-f */\n + 'get global goto group handles if implements imports in inherits interface into iterator ' /* g-i */\n + 'join key let lib loop me mid module mustinherit mustoverride mybase myclass ' /* j-m */\n + 'namespace narrowing new next notinheritable notoverridable ' /* n */\n + 'of off on operator option optional order overloads overridable overrides ' /* o */\n + 'paramarray partial preserve private property protected public ' /* p */\n + 'raiseevent readonly redim removehandler resume return ' /* r */\n + 'select set shadows shared skip static step stop structure strict sub synclock ' /* s */\n + 'take text then throw to try unicode until using when where while widening with withevents writeonly yield' /* t-y */,\n built_in:\n // Operators https://docs.microsoft.com/dotnet/visual-basic/language-reference/operators\n 'addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor '\n // Type Conversion Functions https://docs.microsoft.com/dotnet/visual-basic/language-reference/functions/type-conversion-functions\n + 'cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort',\n type:\n // Data types https://docs.microsoft.com/dotnet/visual-basic/language-reference/data-types\n 'boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort',\n literal: 'true false nothing'\n },\n illegal:\n '//|\\\\{|\\\\}|endif|gosub|variant|wend|^\\\\$ ' /* reserved deprecated keywords */,\n contains: [\n CHARACTER,\n STRING,\n DATE,\n NUMBER,\n LABEL,\n DOC_COMMENT,\n COMMENT,\n DIRECTIVES\n ]\n };\n}\n\nexport { vbnet as default };\n","/*\nLanguage: WebAssembly\nWebsite: https://webassembly.org\nDescription: Wasm is designed as a portable compilation target for programming languages, enabling deployment on the web for client and server applications.\nCategory: web, common\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction wasm(hljs) {\n hljs.regex;\n const BLOCK_COMMENT = hljs.COMMENT(/\\(;/, /;\\)/);\n BLOCK_COMMENT.contains.push(\"self\");\n const LINE_COMMENT = hljs.COMMENT(/;;/, /$/);\n\n const KWS = [\n \"anyfunc\",\n \"block\",\n \"br\",\n \"br_if\",\n \"br_table\",\n \"call\",\n \"call_indirect\",\n \"data\",\n \"drop\",\n \"elem\",\n \"else\",\n \"end\",\n \"export\",\n \"func\",\n \"global.get\",\n \"global.set\",\n \"local.get\",\n \"local.set\",\n \"local.tee\",\n \"get_global\",\n \"get_local\",\n \"global\",\n \"if\",\n \"import\",\n \"local\",\n \"loop\",\n \"memory\",\n \"memory.grow\",\n \"memory.size\",\n \"module\",\n \"mut\",\n \"nop\",\n \"offset\",\n \"param\",\n \"result\",\n \"return\",\n \"select\",\n \"set_global\",\n \"set_local\",\n \"start\",\n \"table\",\n \"tee_local\",\n \"then\",\n \"type\",\n \"unreachable\"\n ];\n\n const FUNCTION_REFERENCE = {\n begin: [\n /(?:func|call|call_indirect)/,\n /\\s+/,\n /\\$[^\\s)]+/\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n }\n };\n\n const ARGUMENT = {\n className: \"variable\",\n begin: /\\$[\\w_]+/\n };\n\n const PARENS = {\n match: /(\\((?!;)|\\))+/,\n className: \"punctuation\",\n relevance: 0\n };\n\n const NUMBER = {\n className: \"number\",\n relevance: 0,\n // borrowed from Prism, TODO: split out into variants\n match: /[+-]?\\b(?:\\d(?:_?\\d)*(?:\\.\\d(?:_?\\d)*)?(?:[eE][+-]?\\d(?:_?\\d)*)?|0x[\\da-fA-F](?:_?[\\da-fA-F])*(?:\\.[\\da-fA-F](?:_?[\\da-fA-D])*)?(?:[pP][+-]?\\d(?:_?\\d)*)?)\\b|\\binf\\b|\\bnan(?::0x[\\da-fA-F](?:_?[\\da-fA-D])*)?\\b/\n };\n\n const TYPE = {\n // look-ahead prevents us from gobbling up opcodes\n match: /(i32|i64|f32|f64)(?!\\.)/,\n className: \"type\"\n };\n\n const MATH_OPERATIONS = {\n className: \"keyword\",\n // borrowed from Prism, TODO: split out into variants\n match: /\\b(f32|f64|i32|i64)(?:\\.(?:abs|add|and|ceil|clz|const|convert_[su]\\/i(?:32|64)|copysign|ctz|demote\\/f64|div(?:_[su])?|eqz?|extend_[su]\\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\\/f32|reinterpret\\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\\/f(?:32|64))?|wrap\\/i64|xor))\\b/\n };\n\n const OFFSET_ALIGN = {\n match: [\n /(?:offset|align)/,\n /\\s*/,\n /=/\n ],\n className: {\n 1: \"keyword\",\n 3: \"operator\"\n }\n };\n\n return {\n name: 'WebAssembly',\n keywords: {\n $pattern: /[\\w.]+/,\n keyword: KWS\n },\n contains: [\n LINE_COMMENT,\n BLOCK_COMMENT,\n OFFSET_ALIGN,\n ARGUMENT,\n PARENS,\n FUNCTION_REFERENCE,\n hljs.QUOTE_STRING_MODE,\n TYPE,\n MATH_OPERATIONS,\n NUMBER\n ]\n };\n}\n\nexport { wasm as default };\n","/*\nLanguage: HTML, XML\nWebsite: https://www.w3.org/XML/\nCategory: common, web\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction xml(hljs) {\n const regex = hljs.regex;\n // XML names can have the following additional letters: https://www.w3.org/TR/xml/#NT-NameChar\n // OTHER_NAME_CHARS = /[:\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]/;\n // Element names start with NAME_START_CHAR followed by optional other Unicode letters, ASCII digits, hyphens, underscores, and periods\n // const TAG_NAME_RE = regex.concat(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/, regex.optional(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*:/), /[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*/);;\n // const XML_IDENT_RE = /[A-Z_a-z:\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]+/;\n // const TAG_NAME_RE = regex.concat(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/, regex.optional(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*:/), /[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*/);\n // however, to cater for performance and more Unicode support rely simply on the Unicode letter class\n const TAG_NAME_RE = regex.concat(/[\\p{L}_]/u, regex.optional(/[\\p{L}0-9_.-]*:/u), /[\\p{L}0-9_.-]*/u);\n const XML_IDENT_RE = /[\\p{L}0-9._:-]+/u;\n const XML_ENTITIES = {\n className: 'symbol',\n begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/\n };\n const XML_META_KEYWORDS = {\n begin: /\\s/,\n contains: [\n {\n className: 'keyword',\n begin: /#?[a-z_][a-z1-9_-]+/,\n illegal: /\\n/\n }\n ]\n };\n const XML_META_PAR_KEYWORDS = hljs.inherit(XML_META_KEYWORDS, {\n begin: /\\(/,\n end: /\\)/\n });\n const APOS_META_STRING_MODE = hljs.inherit(hljs.APOS_STRING_MODE, { className: 'string' });\n const QUOTE_META_STRING_MODE = hljs.inherit(hljs.QUOTE_STRING_MODE, { className: 'string' });\n const TAG_INTERNALS = {\n endsWithParent: true,\n illegal: /`]+/ }\n ]\n }\n ]\n }\n ]\n };\n return {\n name: 'HTML, XML',\n aliases: [\n 'html',\n 'xhtml',\n 'rss',\n 'atom',\n 'xjb',\n 'xsd',\n 'xsl',\n 'plist',\n 'wsf',\n 'svg'\n ],\n case_insensitive: true,\n unicodeRegex: true,\n contains: [\n {\n className: 'meta',\n begin: //,\n relevance: 10,\n contains: [\n XML_META_KEYWORDS,\n QUOTE_META_STRING_MODE,\n APOS_META_STRING_MODE,\n XML_META_PAR_KEYWORDS,\n {\n begin: /\\[/,\n end: /\\]/,\n contains: [\n {\n className: 'meta',\n begin: //,\n contains: [\n XML_META_KEYWORDS,\n XML_META_PAR_KEYWORDS,\n QUOTE_META_STRING_MODE,\n APOS_META_STRING_MODE\n ]\n }\n ]\n }\n ]\n },\n hljs.COMMENT(\n //,\n { relevance: 10 }\n ),\n {\n begin: //,\n relevance: 10\n },\n XML_ENTITIES,\n // xml processing instructions\n {\n className: 'meta',\n end: /\\?>/,\n variants: [\n {\n begin: /<\\?xml/,\n relevance: 10,\n contains: [\n QUOTE_META_STRING_MODE\n ]\n },\n {\n begin: /<\\?[a-z][a-z0-9]+/,\n }\n ]\n\n },\n {\n className: 'tag',\n /*\n The lookahead pattern (?=...) ensures that 'begin' only matches\n ')/,\n end: />/,\n keywords: { name: 'style' },\n contains: [ TAG_INTERNALS ],\n starts: {\n end: /<\\/style>/,\n returnEnd: true,\n subLanguage: [\n 'css',\n 'xml'\n ]\n }\n },\n {\n className: 'tag',\n // See the comment in the