Files
nextcloud-server-mirror/dist/core-public-page-menu.js
2026-10-17 16:23:46 +00:00

2 lines
15 KiB
JavaScript

(()=>{"use strict";var e={44769(e,t,n){var r=n(21777),i=n(85471),o=n(81222),l=n(53334),a=n(53429),c=n(98469),s=n(74095),u=n(2769),p=n(21721);const d=(0,i.pM)({__name:"PublicPageMenuCustomEntry",props:{id:null,html:null},setup(e){const t=(0,i.KR)(),n=(0,i.KR)("presentation");return(0,i.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,i.pM)({__name:"PublicPageMenuEntry",props:{clickOnly:{type:Boolean},id:null,label:null,icon:null,href:null,details:null},setup(e){const t=e;return(0,i.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 h=n(85072),v=n.n(h),A=n(97825),y=n.n(A),_=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),D=n(40306),N={};N.styleTagTransform=E(),N.setAttributes=x(),N.insert=k().bind(null,"head"),N.domAPI=y(),N.insertStyleElement=w(),v()(D.A,N),D.A&&D.A.locals&&D.A.locals;const S=(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 I=n(44368),L=n(85168),T=n(63814),O=n(32505),R=n(94219),$=n(88289),F=n(82182),j=n(35947);const q=null===(B=(0,r.HW)())?(0,j.YK)().setApp("core").build():(0,j.YK)().setApp("core").setUid(B.uid).build();var B;(0,j.YK)().setApp("unified-search").detectUser().build();const U=(0,i.pM)({__name:"PublicPageMenuExternalDialog",props:{label:null},setup(e){const t=(0,i.KR)(!1),n=(0,i.KR)(""),r=(0,i.KR)(),o=(0,i.KR)(!0);return(0,i.sV)(()=>(0,i.dY)(()=>r.value.focus())),(0,i.wB)(n,()=>{let e="";n.value.includes("@")?n.value.match(/@(.+\..{2,}|(?:http:\/\/)?localhost)(:\d\d+)?$/)||(e=(0,l.t)("core","Invalid remote URL.")):e=(0,l.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,T.Jv)("/apps/federatedfilesharing/createFederatedShare"),{data:t}=await I.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){q.error("Failed to create federated share",{error:e}),(0,L.Qg)((0,l.t)("files_sharing","Failed to add the public link to your Nextcloud"))}finally{t.value=!1}},t:l.t,NcButton:s.A,NcDialog:R.A,NcLoadingIcon:$.A,NcTextField:F.A}}}),K=(0,m.A)(U,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,i.pM)({__name:"PublicPageMenuExternalEntry",props:{id:null,label:null,icon:null,href:null},emits:["click"],setup(e,{emit:t}){const n=(0,i.KR)(!1);return{__sfc:!0,emit:t,showDialog:n,openDialog:function(){n.value=!0,t("click")},Fragment:G.F,PublicPageMenuEntry:S,PublicPageMenuExternalDialog:K}}}),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,i.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,L.Te)((0,l.t)("core","Direct link copied"))}catch{window.prompt((0,l.t)("core","Please copy the link manually:"),n.href)}}return{__sfc:!0,props:n,emit:t,copyLink:r,onClick:function(){r(),t("click")},PublicPageMenuEntry:S}}}),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,i.pM)({__name:"PublicPageMenu",setup(e){const t=(0,o.C)("core","public-page-menu"),n=(0,i.KR)(!1),r=(0,a.F)(),d=(0,i.EW)(()=>r.value?void 0:t[0]),m=(0,i.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 S}},openDialogIfNeeded:function(){"save"===d.value?.id&&(0,c.S)(K,{label:d.value.label})},t:l.t,NcButton:s.A,NcHeaderMenu:u.A,IconMore:p.A}}});var X=n(48020),J={};J.styleTagTransform=E(),J.setAttributes=x(),J.insert=k().bind(null,"head"),J.domAPI=y(),J.insertStyleElement=w(),v()(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,i){return t(n.getComponent(r),e._b({key:i,tag:"component",on:{click:function(e){n.showMenu=!1}}},"component",r,!1))}),1)]):e._e()],1)},[],!1,null,"09e9f584",null).exports;n.nc=(0,r.aV)(),(new(i.Ay.extend(Q))).$mount("#public-page-menu")},48020(e,t,n){var r=n(71354),i=n.n(r),o=n(76314),l=n.n(o)()(i());l.push([e.id,".public-page-menu[data-v-09e9f584]{box-sizing:border-box}.public-page-menu[data-v-09e9f584]> *{box-sizing:border-box}.public-page-menu__wrapper[data-v-09e9f584]{display:flex;flex-direction:row;gap:var(--default-grid-baseline)}.public-page-menu__primary[data-v-09e9f584]{height:var(--default-clickable-area);margin-block:calc((var(--header-height) - var(--default-clickable-area))/2)}.public-page-menu__primary[data-v-09e9f584]:focus-visible{border-color:var(--color-background-plain-text) !important}.public-page-menu__primary-icon[data-v-09e9f584]{filter:var(--primary-invert-if-dark)}@media(prefers-color-scheme: dark){.public-page-menu__primary-icon[data-v-09e9f584]{filter:var(--primary-invert-if-bright)}}[data-themes*=dark] .public-page-menu__primary-icon{filter:var(--primary-invert-if-bright)}[data-themes*=light] .public-page-menu__primary-icon{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,oDACC,sCAAA,CAID,qDACC,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:""}]);const a=l;n.d(t,["A",0,a])},40306(e,t,n){var r=n(71354),i=n.n(r),o=n(76314),l=n.n(o)()(i());l.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<template>\n\t<NcListItem\n\t\t:anchor-id="`${id}--link`"\n\t\tcompact\n\t\t:details="details"\n\t\t:href="href"\n\t\t:name="label"\n\t\trole="presentation"\n\t\t@click="$emit(\'click\')">\n\t\t<template #icon>\n\t\t\t<slot v-if="$scopedSlots.icon" name="icon" />\n\t\t\t<div\n\t\t\t\tv-else\n\t\t\t\trole="presentation"\n\t\t\t\tclass="icon public-page-menu-entry__icon"\n\t\t\t\t:class="[icon]" />\n\t\t</template>\n\t</NcListItem>\n</template>\n\n<script setup lang="ts">\nimport { onMounted } from \'vue\'\nimport NcListItem from \'@nextcloud/vue/components/NcListItem\'\n\nconst props = defineProps<{\n\t/** Only emit click event but do not open href */\n\tclickOnly?: boolean\n\t// menu entry props\n\tid: string\n\tlabel: string\n\ticon?: string\n\thref: string\n\tdetails?: string\n}>()\n\nonMounted(() => {\n\tconst anchor = document.getElementById(`${props.id}--link`) as HTMLAnchorElement\n\t// Make the `<a>` a menuitem\n\tanchor.role = \'menuitem\'\n\t// Prevent native click handling if required\n\tif (props.clickOnly) {\n\t\tanchor.onclick = (event) => event.preventDefault()\n\t}\n})\n<\/script>\n\n<style scoped>\n.public-page-menu-entry__icon {\n\tpadding-inline-start: var(--default-grid-baseline);\n}\n</style>\n'],sourceRoot:""}]);const a=l;n.d(t,["A",0,a])}};const t={};function n(r){const i=t[r];if(void 0!==i)return i.exports;const o=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}n.m=e,(()=>{const e=[];n.O=(t,r,i)=>{if(!r){for(var o=0;o<e.length;o++){let[r,i]=e[o],a=!0;for(var l=0;l<r.length;l++)n.O.j(r[l])?r.splice(l--,1):a=!1;if(a){e.splice(o--,1);const n=i();void 0!==n&&(t=n)}}return t}e.push([r,i])}})(),n.n=e=>{const t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.cw=e=>{var t;return()=>{if(e){var n=e;e=0,t={exports:{}},n.call(t.exports,t,t.exports)}return t.exports}},n.d=(e,t)=>{if(Array.isArray(t))for(var r=0;r<t.length;){var i=t[r++],o=t[r++],l=0===o?{enumerable:!0,value:t[r++]}:{enumerable:!0,get:o};n.o(e,i)||Object.defineProperty(e,i,l)}else for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.f={},n.e=e=>{const t=[];return n.f.j(e,t),Promise.all(t)},n.u=e=>e+"-"+e+".js?v="+{4017:"5dc3e242118489888374",4515:"c6562b1f311daa11dbe2",5236:"17695a6f2ce3ea20ba1d",7859:"05867917919f6aee0915",8259:"a341a94431f48aba1050",8374:"2ac0774159561788f4b5",8689:"5e55988a5731e08aa881"}[e],n.o=(e,t)=>Object.hasOwn(e,t),(()=>{const e={},t="nextcloud-ui-legacy:";n.l=(r,i,o,l)=>{if(e[r])return void e[r].push(i);let a,c;if(void 0!==o){const e=document.getElementsByTagName("script");for(var s=0;s<e.length;s++){const n=e[s];if(n.getAttribute("src")==r||n.getAttribute("data-webpack")==t+o){a=n;break}}}a||(c=!0,a=document.createElement("script"),a.charset="utf-8",n.nc&&a.setAttribute("nonce",n.nc),a.setAttribute("data-webpack",t+o),a.src=r),e[r]=[i];const u=(t,n)=>{a.onerror=a.onload=null,clearTimeout(p);const i=e[r];if(delete e[r],a.parentNode?.removeChild(a),i?.forEach(e=>e(n)),t)return t(n)},p=setTimeout(u.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=u.bind(null,a.onerror),a.onload=u.bind(null,a.onload),c&&document.head.appendChild(a)}})(),n.r=e=>{Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.j=1688,n.dn=e=>{var t=Object.getOwnPropertyDescriptor(e,"name");(!t||!t.writable&&t.configurable)&&Object.defineProperty(e,"name",{value:"default",configurable:!0})},(()=>{let e;globalThis.importScripts&&(e=globalThis.location+"");const t=globalThis.document;if(!e&&t&&("SCRIPT"===t.currentScript?.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){const n=t.getElementsByTagName("script");if(n.length){let t=n.length-1;for(;t>-1&&(!e||!/^https?:/.test(e));)e=n[t--].src}}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:|[?#].*$/g,"").replace(/\/[^/]+$/,"/"),n.p=e})(),(()=>{n.b="undefined"!=typeof document&&document.baseURI||self.location.href;const e={1688:0};n.f.j=(t,r)=>{let i=n.o(e,t)?e[t]:void 0;if(0!==i)if(i)r.push(i[2]);else{const o=new Promise((n,r)=>i=e[t]=[n,r]);r.push(i[2]=o);const l=new Error,a=r=>{if(n.o(e,t)&&(i=e[t],0!==i&&(e[t]=void 0),i)){const e=r&&("load"===r.type?"missing":r.type),n=r&&r.target&&r.target.src;l.message="Loading chunk "+t+" failed.\n("+e+": "+n+")",l.name="ChunkLoadError",l.type=e,l.request=n,l.event=r,i[1](l)}};n.l(n.p+n.u(t),a,"chunk-"+t,t)}},n.O.j=t=>0===e[t];const t=(t,r)=>{let[i,o,l]=r;var a,c,s=0;if(i.some(t=>0!==e[t])){for(a in o)n.o(o,a)&&(n.m[a]=o[a]);if(l)var u=l(n)}for(t&&t(r);s<i.length;s++)c=i[s],n.o(e,c)&&e[c]&&e[c][0](),e[c]=0;return n.O(u)},r=globalThis.webpackChunknextcloud_ui_legacy||=[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),n.nc=void 0;let r=n.O(void 0,[4208],()=>n(44769));r=n.O(r)})();
//# sourceMappingURL=core-public-page-menu.js.map?v=51972fac493aacfe98e6