diff --git a/js/photos-0.js b/js/photos-0.js index 4f76a1c09..5c95b5212 100644 --- a/js/photos-0.js +++ b/js/photos-0.js @@ -1,2 +1,2 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{399:function(n,t,i){"use strict";var e=i(79),a=i.n(e);t.a=function(n){const t=a.a.CancelToken.source();return{request:async function(i,e){return n(i,Object.assign({cancelToken:t.token},e))},cancel:t.cancel}}},443:function(n,t,i){"use strict";var e={name:"EmptyContent",props:{illustrationName:{type:String,default:""}},data:()=>({illustration:""}),computed:{haveIllustration(){return""!==this.illustrationName},isLoaded(){return!this.haveIllustration||""!==this.illustration},isReady(){return!this.haveIllustration||this.haveIllustration&&this.isLoaded}},watch:{illustrationName(){this.getIllustration()}},beforeMount(){this.getIllustration()},methods:{async getIllustration(){if(this.illustration="",""!==this.illustrationName)try{const n=await i(667)("./".concat(this.illustrationName,".svg"));this.illustration=n.default}catch(n){console.error("Could not get the error illustration",n)}}}},a=i(117),o=i.n(a),r=i(668),s={insert:"head",singleton:!1},d=(o()(r.a,s),r.a.locals,i(51)),c=Object(d.a)(e,(function(){var n=this,t=n.$createElement,i=n._self._c||t;return n.isReady?i("div",{staticClass:"emptycontent"},[n.haveIllustration?i("div",{staticClass:"illustration",domProps:{innerHTML:n._s(n.illustration)}}):i("div",{staticClass:"icon-error"}),n._v(" "),i("h2",[n._t("default")],2),n._v(" "),i("p",{directives:[{name:"show",rawName:"v-show",value:n.$slots.desc,expression:"$slots.desc"}]},[n._t("desc")],2)]):n._e()}),[],!1,null,null,null);t.a=c.exports},444:function(n,i,e){"use strict";var a=e(13),o=e(25),r={name:"File",mixins:[e(194).a],inheritAttrs:!1,props:{item:{type:Object,required:!0}},data:()=>({loaded:!1,error:!1}),computed:{davPath(){return Object(a.generateRemoteUrl)("dav/files/".concat(Object(o.getCurrentUser)().uid))+this.item.injected.filename},ariaUuid(){return"image-".concat(this.item.injected.fileid)},ariaLabel(){return t("photos",'Open the full size "{name}" image',{name:this.item.injected.basename})},isImage(){return this.item.injected.mime.startsWith("image")},src(){return Object(a.generateUrl)("/core/preview?fileId=".concat(this.item.injected.fileid,"&x=",256,"&y=",256,"&a=").concat(!this.croppedLayout,"&v=").concat(this.item.injected.etag))}},beforeDestroy(){this.$refs.src=""},methods:{openViewer(){OCA.Viewer.open({path:this.item.injected.filename,list:this.item.injected.list,loadMore:this.item.injected.loadMore?async()=>await this.item.injected.loadMore(!0):()=>[],canLoop:this.item.injected.canLoop})},onLoad(){this.loaded=!0},onError(){this.error=!0}}},s=e(117),d=e.n(s),c=e(670),A={insert:"head",singleton:!1},l=(d()(c.a,A),c.a.locals,e(51)),p=Object(l.a)(r,(function(){var n=this,t=n.$createElement,i=n._self._c||t;return i("a",{staticClass:"file",class:{"file--cropped":n.croppedLayout},attrs:{href:n.davPath,"aria-label":n.ariaLabel},on:{click:function(t){return t.preventDefault(),n.openViewer(t)}}},[n.item.injected.mime.includes("video")&&n.item.injected.hasPreview?i("div",{staticClass:"icon-video-white"}):n._e(),n._v(" "),i("transition-group",{staticClass:"transition-group",attrs:{name:"fade"}},[n.error?n._e():i("img",{key:n.item.injected.basename+"-img",ref:"img",attrs:{src:n.src,alt:n.item.injected.basename,"aria-describedby":n.ariaUuid},on:{load:n.onLoad,error:n.onError}}),n._v(" "),!n.loaded||n.error?i("svg",{key:n.item.injected.basename+"-svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"url(#placeholder__gradient)"}},[n.isImage?i("use",{attrs:{"xlink:href":"#placeholder--img"}}):i("use",{attrs:{"xlink:href":"#placeholder--video"}})]):n._e()]),n._v(" "),i("p",{staticClass:"hidden-visually",attrs:{id:n.ariaUuid}},[n._v(n._s(n.item.injected.basename))]),n._v(" "),i("div",{staticClass:"cover",attrs:{role:"none"}})],1)}),[],!1,null,"6d0d8c3b",null);i.a=p.exports},445:function(n,i,e){"use strict";var a=e(671),o=e.n(a),r=e(672),s={name:"Navigation",components:{ActionButton:e.n(r).a,Actions:o.a},inheritAttrs:!1,props:{basename:{type:String,required:!0},filename:{type:String,required:!0},showActions:{type:Boolean,default:!1},rootTitle:{type:String,default:t("photos","Photos")}},computed:{isRoot(){return"/"===this.filename},name(){return this.isRoot?this.rootTitle:this.basename},parentPath(){const n=this.filename.split("/");n.pop();const t=n.join("/");return this.isRoot||""===t.trim()?"/":n.join("/")},parentName(){return this.parentPath&&this.parentPath.split("/").pop()},backToText(){return"/"===this.parentPath?t("photos","Back to {folder}",{folder:this.rootTitle}):t("photos","Back to {folder}",{folder:this.parentName})},to(){const n=/^\/?(.*)/i.exec(this.parentPath)[1],{name:t,params:i}=Object.assign({},this.$route,{params:{path:n}});return""===n?{name:t}:decodeURIComponent(this.$router.resolve({name:t,params:i}).resolved.path)}},methods:{folderUp(){this.$router.push(this.to)},showSidebar(){OCA.Files.Sidebar.open(this.filename)}}},d=e(117),c=e.n(d),A=e(673),l={insert:"head",singleton:!1},p=(c()(A.a,l),A.a.locals,e(51)),h=Object(p.a)(s,(function(){var n=this,t=n.$createElement,i=n._self._c||t;return i("div",{staticClass:"photos-navigation",class:{"photos-navigation--root":n.isRoot},attrs:{role:"toolbar"}},[n.isRoot?n._e():i("Actions",{staticClass:"photos-navigation__back"},[i("ActionButton",{attrs:{icon:"icon-confirm"},on:{click:n.folderUp}},[n._v("\n\t\t\t"+n._s(n.backToText)+"\n\t\t")])],1),n._v(" "),i("h2",{staticClass:"photos-navigation__title"},[n._v("\n\t\t"+n._s(n.name)+"\n\t")]),n._v(" "),!n.isRoot&&n.showActions?i("Actions",{staticClass:"photos-navigation__share"},[i("ActionButton",{attrs:{icon:"icon-shared"},on:{click:n.showSidebar}},[n._v("\n\t\t\t"+n._s(n.t("photos","Share this folder"))+"\n\t\t")])],1):n._e()],1)}),[],!1,null,"4c3113d6",null);i.a=h.exports},447:function(n,t,i){"use strict";var e=i(4),a=i(448),o=new e.default({data:()=>({gridConfig:a.sizes.max}),watch:{gridConfig(n){this.$emit("changed",n)}},created(){window.addEventListener("resize",this.handleWindowResize),this.handleWindowResize()},beforeDestroy(){window.removeEventListener("resize",this.handleWindowResize)},methods:{handleWindowResize(){const n=Object.keys(a.sizes).find(n=>n>document.documentElement.clientWidth);this.gridConfig=a.sizes[n]||a.sizes.max}}});t.a={data:()=>({gridConfig:{}}),created(){o.$on("changed",n=>{this.gridConfig=n}),console.debug("[".concat("photos","]"),"Grid config",Object.assign({},o.gridConfig)),this.gridConfig=o.gridConfig},beforeDestroy(){o.$off("changed",this.gridConfig)}}},448:function(n,t){n.exports={sizes:{400:{marginTop:66,marginW:8,count:3,gap:8},700:{marginTop:66,marginW:8,count:4,gap:8},1024:{marginTop:66,marginW:44,count:5,gap:8},1280:{marginTop:66,marginW:44,count:4,gap:8},1440:{marginTop:88,marginW:66,count:5,gap:8},1600:{marginTop:88,marginW:66,count:6,gap:8},2048:{marginTop:88,marginW:66,count:7,gap:8},2560:{marginTop:88,marginW:88,count:8,gap:8},3440:{marginTop:88,marginW:88,count:9,gap:8},max:{marginTop:88,marginW:88,count:10,gap:8}}}},667:function(n,t,i){var e={"./empty.svg":[816,8],"./folder.svg":[817,9],"./images.svg":[818,10]};function a(n){if(!i.o(e,n))return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+n+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=e[n],a=t[0];return i.e(t[1]).then((function(){return i(a)}))}a.keys=function(){return Object.keys(e)},a.id=667,n.exports=a},668:function(n,t,i){"use strict";var e=i(118),a=i.n(e)()(!0);a.push([n.i,".emptycontent{grid-column:1/-1;margin-top:20vh}.illustration{min-width:200px;max-width:15%;width:300px;margin:auto;margin-bottom:20px;position:relative}.illustration svg{width:100%;height:100%;max-height:40vh}.illustration [fill*='6c63ff']{fill:var(--color-primary-element)}\n","",{version:3,sources:["webpack://src/components/EmptyContent.vue"],names:[],mappings:"AAkHA,cAEC,gBAAiB,CACjB,eAAgB,CAChB,cAGA,eAAgB,CAChB,aAAc,CACd,WAAY,CACZ,WAAY,CACZ,kBAAmB,CACnB,iBAAkB,CANnB,kBASE,UAAW,CACX,WAAY,CACZ,eAAgB,CAXlB,+BAgBE,iCAAkC",sourcesContent:["\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\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\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.emptycontent {\n\t// span all the available columns\n\tgrid-column: 1/-1;\n\tmargin-top: 20vh;\n}\n\n.illustration {\n\tmin-width: 200px;\n\tmax-width: 15%;\n\twidth: 300px;\n\tmargin: auto;\n\tmargin-bottom: 20px;\n\tposition: relative;\n\n\tsvg {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tmax-height: 40vh;\n\t}\n\n\t// change colour of illustration\n\t[fill*='6c63ff'] {\n\t\tfill: var(--color-primary-element);\n\t}\n}\n"],sourceRoot:""}]),t.a=a},670:function(n,t,i){"use strict";var e=i(118),a=i.n(e)()(!0);a.push([n.i,".file[data-v-6d0d8c3b],.folder[data-v-6d0d8c3b]{position:relative;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:var(--border-radius);overflow:hidden}.file .cover[data-v-6d0d8c3b],.folder .cover[data-v-6d0d8c3b]{z-index:2;width:100%;padding-bottom:100%;transition:opacity var(--animation-quick) ease-in-out;opacity:0;background-color:var(--color-main-text)}.file.active .cover[data-v-6d0d8c3b],.file:active .cover[data-v-6d0d8c3b],.file:hover .cover[data-v-6d0d8c3b],.file:focus .cover[data-v-6d0d8c3b],.folder.active .cover[data-v-6d0d8c3b],.folder:active .cover[data-v-6d0d8c3b],.folder:hover .cover[data-v-6d0d8c3b],.folder:focus .cover[data-v-6d0d8c3b]{opacity:.3}.file--clear.active .cover[data-v-6d0d8c3b],.file--clear:active .cover[data-v-6d0d8c3b],.file--clear:hover .cover[data-v-6d0d8c3b],.file--clear:focus .cover[data-v-6d0d8c3b],.folder--clear.active .cover[data-v-6d0d8c3b],.folder--clear:active .cover[data-v-6d0d8c3b],.folder--clear:hover .cover[data-v-6d0d8c3b],.folder--clear:focus .cover[data-v-6d0d8c3b]{opacity:.1}.fade-enter-active[data-v-6d0d8c3b],.fade-leave-active[data-v-6d0d8c3b]{transition:opacity var(--animation-quick) ease-in-out}.fade-enter[data-v-6d0d8c3b],.fade-leave-to[data-v-6d0d8c3b]{opacity:0}.transition-group[data-v-6d0d8c3b]{display:contents}.icon-video-white[data-v-6d0d8c3b]{position:absolute;top:10px;right:10px;z-index:5}img[data-v-6d0d8c3b]{position:absolute;width:100%;height:100%;z-index:10;color:transparent;object-fit:contain}.file--cropped img[data-v-6d0d8c3b]{object-fit:cover}svg[data-v-6d0d8c3b]{position:absolute;width:70%;height:70%}\n","",{version:3,sources:["webpack://src/mixins/FileFolder.scss","webpack://src/components/File.vue"],names:[],mappings:"AAsBA,gDAEC,iBAAkB,CAClB,YAAa,CACb,kBAAmB,CACnB,sBAAuB,CACvB,wBAAiB,CAAjB,qBAAiB,CAAjB,oBAAiB,CAAjB,gBAAiB,CACjB,kCAAmC,CACnC,eAAgB,CARjB,8DAWE,SAAU,CAMV,UAAW,CACX,mBAAoB,CACpB,qDAAsD,CACtD,SAAU,CACV,uCAAwC,CArB1C,4SA6BG,UAAW,CACX,oWAQA,UAAW,CACX,wEAKF,qDAAsD,CACtD,6DAGA,SAAU,CC8DX,mCACC,gBAAiB,CACjB,mCAGA,iBAAkB,CAClB,QAAS,CACT,UAAW,CACX,SAAU,CACV,qBAGA,iBAAkB,CAClB,UAAW,CACX,WAAY,CACZ,UAAW,CAEX,iBAAkB,CAElB,kBAAmB,CAEnB,oCACC,gBAAiB,CACjB,qBAID,iBAAkB,CAClB,SAAU,CACV,UAAW",sourcesContent:["/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n.file,\n.folder {\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tuser-select: none;\n\tborder-radius: var(--border-radius);\n\toverflow: hidden;\n\n\t.cover {\n\t\tz-index: 2;\n\t\t// We want nice squares despite anything that is in it.\n\t\t// The .cover is what makes the exact square size of the grid.\n\t\t// We use padding-bottom because padding with percentage\n\t\t// always refers to the width. And we only want to fit\n\t\t// the css grid's width.\n\t\twidth: 100%;\n\t\tpadding-bottom: 100%;\n\t\ttransition: opacity var(--animation-quick) ease-in-out;\n\t\topacity: 0;\n\t\tbackground-color: var(--color-main-text);\n\t}\n\n\t&.active,\n\t&:active,\n\t&:hover,\n\t&:focus {\n\t\t.cover {\n\t\t\topacity: .3;\n\t\t}\n\t}\n\n\t&--clear.active,\n\t&--clear:active,\n\t&--clear:hover,\n\t&--clear:focus {\n\t\t.cover {\n\t\t\topacity: .1;\n\t\t}\n\t}\n}\n\n.fade-enter-active, .fade-leave-active {\n\ttransition: opacity var(--animation-quick) ease-in-out;\n}\n\n.fade-enter, .fade-leave-to {\n\topacity: 0;\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\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\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\n\n\n\n\n\n\n\n\n@import '../mixins/FileFolder.scss';\n\n.transition-group {\n\tdisplay: contents;\n}\n\n.icon-video-white {\n\tposition: absolute;\n\ttop: 10px;\n\tright: 10px;\n\tz-index: 5;\n}\n\nimg {\n\tposition: absolute;\n\twidth: 100%;\n\theight: 100%;\n\tz-index: 10;\n\n\tcolor: transparent; // should be diplayed on error\n\n\tobject-fit: contain;\n\n\t.file--cropped & {\n\t\tobject-fit: cover;\n\t}\n}\n\nsvg {\n\tposition: absolute;\n\twidth: 70%;\n\theight: 70%;\n}\n"],sourceRoot:""}]),t.a=a},673:function(n,t,i){"use strict";var e=i(118),a=i.n(e)()(!0);a.push([n.i,".icon-confirm[data-v-4c3113d6]{transform:rotate(180deg)}.photos-navigation[data-v-4c3113d6]{display:flex;position:block;height:44px;padding:0 40px;align-items:center;max-width:100%}.photos-navigation__title[data-v-4c3113d6]{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photos-navigation__share[data-v-4c3113d6]{margin-left:10px}.photos-navigation__back[data-v-4c3113d6],.photos-navigation__share[data-v-4c3113d6]{flex-grow:0;flex-shrink:0}@media (min-width: 0px) and (max-width: 400px){.photos-navigation[data-v-4c3113d6]{top:14.66667px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:-36px}}@media (min-width: 400px) and (max-width: 700px){.photos-navigation[data-v-4c3113d6]{top:14.66667px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:-36px}}@media (min-width: 700px) and (max-width: 1024px){.photos-navigation[data-v-4c3113d6]{top:14.66667px}.photos-navigation__back[data-v-4c3113d6]{margin:0 0px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:0px}}@media (min-width: 1024px) and (max-width: 1280px){.photos-navigation[data-v-4c3113d6]{top:14.66667px}.photos-navigation__back[data-v-4c3113d6]{margin:0 0px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:0px}}@media (min-width: 1280px) and (max-width: 1440px){.photos-navigation[data-v-4c3113d6]{top:29.33333px}.photos-navigation__back[data-v-4c3113d6]{margin:0 11px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:22px}}@media (min-width: 1440px) and (max-width: 1600px){.photos-navigation[data-v-4c3113d6]{top:29.33333px}.photos-navigation__back[data-v-4c3113d6]{margin:0 11px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:22px}}@media (min-width: 1600px) and (max-width: 2048px){.photos-navigation[data-v-4c3113d6]{top:29.33333px}.photos-navigation__back[data-v-4c3113d6]{margin:0 11px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:22px}}@media (min-width: 2048px) and (max-width: 2560px){.photos-navigation[data-v-4c3113d6]{top:29.33333px}.photos-navigation__back[data-v-4c3113d6]{margin:0 22px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:44px}}@media (min-width: 2560px) and (max-width: 3440px){.photos-navigation[data-v-4c3113d6]{top:29.33333px}.photos-navigation__back[data-v-4c3113d6]{margin:0 22px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:44px}}@media (min-width: 3440px){.photos-navigation[data-v-4c3113d6]{top:29.33333px}.photos-navigation__back[data-v-4c3113d6]{margin:0 22px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:44px}}\n","",{version:3,sources:["webpack://src/components/Navigation.vue"],names:[],mappings:"AAiJA,+BACC,wBAAyB,CACzB,oCAGA,YAAa,CACb,cAAe,CACf,WAAY,CACZ,cAAe,CACf,kBAAmB,CACnB,cAAe,CACf,2CACC,QAAS,CACT,kBAAmB,CACnB,eAAgB,CAChB,sBAAuB,CACvB,2CAEA,gBAAiB,CACjB,qFAGA,WAAY,CACZ,aAAc,CACd,+CAmBA,oCAEC,cAAgC,CAOhC,oEACC,kBAAc,CACd,CAZH,iDACC,oCAEC,cAAgC,CAOhC,oEACC,kBAAc,CACd,CAZH,kDACC,oCAEC,cAAgC,CAG/B,0CACC,YAAiC,CACjC,oEAGD,gBAAc,CACd,CAZH,mDACC,oCAEC,cAAgC,CAG/B,0CACC,YAAiC,CACjC,oEAGD,gBAAc,CACd,CAZH,mDACC,oCAEC,cAAgC,CAG/B,0CACC,aAAiC,CACjC,oEAGD,iBAAc,CACd,CAZH,mDACC,oCAEC,cAAgC,CAG/B,0CACC,aAAiC,CACjC,oEAGD,iBAAc,CACd,CAZH,mDACC,oCAEC,cAAgC,CAG/B,0CACC,aAAiC,CACjC,oEAGD,iBAAc,CACd,CAZH,mDACC,oCAEC,cAAgC,CAG/B,0CACC,aAAiC,CACjC,oEAGD,iBAAc,CACd,CAZH,mDACC,oCAEC,cAAgC,CAG/B,0CACC,aAAiC,CACjC,oEAGD,iBAAc,CACd,CAZH,2BACC,oCAEC,cAAgC,CAG/B,0CACC,aAAiC,CACjC,oEAGD,iBAAc,CACd",sourcesContent:["\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\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\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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.icon-confirm {\n\ttransform: rotate(180deg)\n}\n\n.photos-navigation {\n\tdisplay: flex;\n\tposition: block;\n\theight: 44px;\n\tpadding: 0 40px;\n\talign-items: center;\n\tmax-width: 100%;\n\t&__title {\n\t\tmargin: 0;\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\t&__share {\n\t\tmargin-left: 10px;\n\t}\n\t&__back,\n\t&__share {\n\t\tflex-grow: 0;\n\t\tflex-shrink: 0;\n\t}\n}\n\n// generate variants based on grid sizes\n// TODO: use mixins/GridSizes as soon as node-sass supports it\n// needs node-sass 5.0 (with libsass 3.6)\n// https://github.com/sass/node-sass/pull/2312\n$previous: 0;\n@each $size, $config in get('sizes') {\n\t$marginTop: map-get($config, 'marginTop');\n\t$marginW: map-get($config, 'marginW');\n\n\t// if this is the last entry, only use min-width\n\t$rule: '(min-width: #{$previous}px) and (max-width: #{$size}px)';\n\t@if $size == 'max' {\n\t\t$rule: '(min-width: #{$previous}px)';\n\t}\n\n\t@media #{$rule} {\n\t\t.photos-navigation {\n\t\t\t// we space this with 2/3 margin top, 1/3 margin bottom\n\t\t\ttop: ($marginTop - 44px) * 2 / 3;\n\t\t\t// padding-left: $marginW;\n\t\t\t@if $marginW >= 44px {\n\t\t\t\t&__back {\n\t\t\t\t\tmargin: 0 (($marginW - 44px) / 2);\n\t\t\t\t}\n\t\t\t}\n\t\t\t&--root &__title {\n\t\t\t\tpadding-left: #{$marginW - 44}px;\n\t\t\t}\n\t\t}\n\t}\n\t$previous: $size;\n}\n"],sourceRoot:""}]),t.a=a}}]); -//# sourceMappingURL=photos-0.js.map?v=b1eaf3e708959dc706dd \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{399:function(n,t,i){"use strict";var e=i(79),a=i.n(e);t.a=function(n){const t=a.a.CancelToken.source();return{request:async function(i,e){return n(i,Object.assign({cancelToken:t.token},e))},cancel:t.cancel}}},443:function(n,t,i){"use strict";var e={name:"EmptyContent",props:{illustrationName:{type:String,default:""}},data:()=>({illustration:""}),computed:{haveIllustration(){return""!==this.illustrationName},isLoaded(){return!this.haveIllustration||""!==this.illustration},isReady(){return!this.haveIllustration||this.haveIllustration&&this.isLoaded}},watch:{illustrationName(){this.getIllustration()}},beforeMount(){this.getIllustration()},methods:{async getIllustration(){if(this.illustration="",""!==this.illustrationName)try{const n=await i(659)("./".concat(this.illustrationName,".svg"));this.illustration=n.default}catch(n){console.error("Could not get the error illustration",n)}}}},a=i(117),o=i.n(a),r=i(660),s={insert:"head",singleton:!1},d=(o()(r.a,s),r.a.locals,i(51)),c=Object(d.a)(e,(function(){var n=this,t=n.$createElement,i=n._self._c||t;return n.isReady?i("div",{staticClass:"emptycontent"},[n.haveIllustration?i("div",{staticClass:"illustration",domProps:{innerHTML:n._s(n.illustration)}}):i("div",{staticClass:"icon-error"}),n._v(" "),i("h2",[n._t("default")],2),n._v(" "),i("p",{directives:[{name:"show",rawName:"v-show",value:n.$slots.desc,expression:"$slots.desc"}]},[n._t("desc")],2)]):n._e()}),[],!1,null,null,null);t.a=c.exports},444:function(n,i,e){"use strict";var a=e(13),o=e(25),r={name:"File",mixins:[e(194).a],inheritAttrs:!1,props:{item:{type:Object,required:!0}},data:()=>({loaded:!1,error:!1}),computed:{davPath(){return Object(a.generateRemoteUrl)("dav/files/".concat(Object(o.getCurrentUser)().uid))+this.item.injected.filename},ariaUuid(){return"image-".concat(this.item.injected.fileid)},ariaLabel(){return t("photos",'Open the full size "{name}" image',{name:this.item.injected.basename})},isImage(){return this.item.injected.mime.startsWith("image")},src(){return Object(a.generateUrl)("/core/preview?fileId=".concat(this.item.injected.fileid,"&x=",256,"&y=",256,"&a=").concat(!this.croppedLayout,"&v=").concat(this.item.injected.etag))}},beforeDestroy(){this.$refs.src=""},methods:{openViewer(){OCA.Viewer.open({path:this.item.injected.filename,list:this.item.injected.list,loadMore:this.item.injected.loadMore?async()=>await this.item.injected.loadMore(!0):()=>[],canLoop:this.item.injected.canLoop})},onLoad(){this.loaded=!0},onError(){this.error=!0}}},s=e(117),d=e.n(s),c=e(662),A={insert:"head",singleton:!1},l=(d()(c.a,A),c.a.locals,e(51)),p=Object(l.a)(r,(function(){var n=this,t=n.$createElement,i=n._self._c||t;return i("a",{staticClass:"file",class:{"file--cropped":n.croppedLayout},attrs:{href:n.davPath,"aria-label":n.ariaLabel},on:{click:function(t){return t.preventDefault(),n.openViewer(t)}}},[n.item.injected.mime.includes("video")&&n.item.injected.hasPreview?i("div",{staticClass:"icon-video-white"}):n._e(),n._v(" "),i("transition-group",{staticClass:"transition-group",attrs:{name:"fade"}},[n.error?n._e():i("img",{key:n.item.injected.basename+"-img",ref:"img",attrs:{src:n.src,alt:n.item.injected.basename,"aria-describedby":n.ariaUuid},on:{load:n.onLoad,error:n.onError}}),n._v(" "),!n.loaded||n.error?i("svg",{key:n.item.injected.basename+"-svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"url(#placeholder__gradient)"}},[n.isImage?i("use",{attrs:{"xlink:href":"#placeholder--img"}}):i("use",{attrs:{"xlink:href":"#placeholder--video"}})]):n._e()]),n._v(" "),i("p",{staticClass:"hidden-visually",attrs:{id:n.ariaUuid}},[n._v(n._s(n.item.injected.basename))]),n._v(" "),i("div",{staticClass:"cover",attrs:{role:"none"}})],1)}),[],!1,null,"6d0d8c3b",null);i.a=p.exports},445:function(n,i,e){"use strict";var a=e(663),o=e.n(a),r=e(664),s={name:"Navigation",components:{ActionButton:e.n(r).a,Actions:o.a},inheritAttrs:!1,props:{basename:{type:String,required:!0},filename:{type:String,required:!0},showActions:{type:Boolean,default:!1},rootTitle:{type:String,default:t("photos","Photos")}},computed:{isRoot(){return"/"===this.filename},name(){return this.isRoot?this.rootTitle:this.basename},parentPath(){const n=this.filename.split("/");n.pop();const t=n.join("/");return this.isRoot||""===t.trim()?"/":n.join("/")},parentName(){return this.parentPath&&this.parentPath.split("/").pop()},backToText(){return"/"===this.parentPath?t("photos","Back to {folder}",{folder:this.rootTitle}):t("photos","Back to {folder}",{folder:this.parentName})},to(){const n=/^\/?(.*)/i.exec(this.parentPath)[1],{name:t,params:i}=Object.assign({},this.$route,{params:{path:n}});return""===n?{name:t}:decodeURIComponent(this.$router.resolve({name:t,params:i}).resolved.path)}},methods:{folderUp(){this.$router.push(this.to)},showSidebar(){OCA.Files.Sidebar.open(this.filename)}}},d=e(117),c=e.n(d),A=e(665),l={insert:"head",singleton:!1},p=(c()(A.a,l),A.a.locals,e(51)),h=Object(p.a)(s,(function(){var n=this,t=n.$createElement,i=n._self._c||t;return i("div",{staticClass:"photos-navigation",class:{"photos-navigation--root":n.isRoot},attrs:{role:"toolbar"}},[n.isRoot?n._e():i("Actions",{staticClass:"photos-navigation__back"},[i("ActionButton",{attrs:{icon:"icon-confirm"},on:{click:n.folderUp}},[n._v("\n\t\t\t"+n._s(n.backToText)+"\n\t\t")])],1),n._v(" "),i("h2",{staticClass:"photos-navigation__title"},[n._v("\n\t\t"+n._s(n.name)+"\n\t")]),n._v(" "),!n.isRoot&&n.showActions?i("Actions",{staticClass:"photos-navigation__share"},[i("ActionButton",{attrs:{icon:"icon-shared"},on:{click:n.showSidebar}},[n._v("\n\t\t\t"+n._s(n.t("photos","Share this folder"))+"\n\t\t")])],1):n._e()],1)}),[],!1,null,"4c3113d6",null);i.a=h.exports},447:function(n,t,i){"use strict";var e=i(4),a=i(448),o=new e.default({data:()=>({gridConfig:a.sizes.max}),watch:{gridConfig(n){this.$emit("changed",n)}},created(){window.addEventListener("resize",this.handleWindowResize),this.handleWindowResize()},beforeDestroy(){window.removeEventListener("resize",this.handleWindowResize)},methods:{handleWindowResize(){const n=Object.keys(a.sizes).find(n=>n>document.documentElement.clientWidth);this.gridConfig=a.sizes[n]||a.sizes.max}}});t.a={data:()=>({gridConfig:{}}),created(){o.$on("changed",n=>{this.gridConfig=n}),console.debug("[".concat("photos","]"),"Grid config",Object.assign({},o.gridConfig)),this.gridConfig=o.gridConfig},beforeDestroy(){o.$off("changed",this.gridConfig)}}},448:function(n,t){n.exports={sizes:{400:{marginTop:66,marginW:8,count:3,gap:8},700:{marginTop:66,marginW:8,count:4,gap:8},1024:{marginTop:66,marginW:44,count:5,gap:8},1280:{marginTop:66,marginW:44,count:4,gap:8},1440:{marginTop:88,marginW:66,count:5,gap:8},1600:{marginTop:88,marginW:66,count:6,gap:8},2048:{marginTop:88,marginW:66,count:7,gap:8},2560:{marginTop:88,marginW:88,count:8,gap:8},3440:{marginTop:88,marginW:88,count:9,gap:8},max:{marginTop:88,marginW:88,count:10,gap:8}}}},659:function(n,t,i){var e={"./empty.svg":[812,8],"./folder.svg":[813,9],"./images.svg":[814,10]};function a(n){if(!i.o(e,n))return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+n+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=e[n],a=t[0];return i.e(t[1]).then((function(){return i(a)}))}a.keys=function(){return Object.keys(e)},a.id=659,n.exports=a},660:function(n,t,i){"use strict";var e=i(118),a=i.n(e)()(!0);a.push([n.i,".emptycontent{grid-column:1/-1;margin-top:20vh}.illustration{min-width:200px;max-width:15%;width:300px;margin:auto;margin-bottom:20px;position:relative}.illustration svg{width:100%;height:100%;max-height:40vh}.illustration [fill*='6c63ff']{fill:var(--color-primary-element)}\n","",{version:3,sources:["webpack://src/components/EmptyContent.vue"],names:[],mappings:"AAkHA,cAEC,gBAAiB,CACjB,eAAgB,CAChB,cAGA,eAAgB,CAChB,aAAc,CACd,WAAY,CACZ,WAAY,CACZ,kBAAmB,CACnB,iBAAkB,CANnB,kBASE,UAAW,CACX,WAAY,CACZ,eAAgB,CAXlB,+BAgBE,iCAAkC",sourcesContent:["\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\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\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.emptycontent {\n\t// span all the available columns\n\tgrid-column: 1/-1;\n\tmargin-top: 20vh;\n}\n\n.illustration {\n\tmin-width: 200px;\n\tmax-width: 15%;\n\twidth: 300px;\n\tmargin: auto;\n\tmargin-bottom: 20px;\n\tposition: relative;\n\n\tsvg {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tmax-height: 40vh;\n\t}\n\n\t// change colour of illustration\n\t[fill*='6c63ff'] {\n\t\tfill: var(--color-primary-element);\n\t}\n}\n"],sourceRoot:""}]),t.a=a},662:function(n,t,i){"use strict";var e=i(118),a=i.n(e)()(!0);a.push([n.i,".file[data-v-6d0d8c3b],.folder[data-v-6d0d8c3b]{position:relative;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:var(--border-radius);overflow:hidden}.file .cover[data-v-6d0d8c3b],.folder .cover[data-v-6d0d8c3b]{z-index:2;width:100%;padding-bottom:100%;transition:opacity var(--animation-quick) ease-in-out;opacity:0;background-color:var(--color-main-text)}.file.active .cover[data-v-6d0d8c3b],.file:active .cover[data-v-6d0d8c3b],.file:hover .cover[data-v-6d0d8c3b],.file:focus .cover[data-v-6d0d8c3b],.folder.active .cover[data-v-6d0d8c3b],.folder:active .cover[data-v-6d0d8c3b],.folder:hover .cover[data-v-6d0d8c3b],.folder:focus .cover[data-v-6d0d8c3b]{opacity:.3}.file--clear.active .cover[data-v-6d0d8c3b],.file--clear:active .cover[data-v-6d0d8c3b],.file--clear:hover .cover[data-v-6d0d8c3b],.file--clear:focus .cover[data-v-6d0d8c3b],.folder--clear.active .cover[data-v-6d0d8c3b],.folder--clear:active .cover[data-v-6d0d8c3b],.folder--clear:hover .cover[data-v-6d0d8c3b],.folder--clear:focus .cover[data-v-6d0d8c3b]{opacity:.1}.fade-enter-active[data-v-6d0d8c3b],.fade-leave-active[data-v-6d0d8c3b]{transition:opacity var(--animation-quick) ease-in-out}.fade-enter[data-v-6d0d8c3b],.fade-leave-to[data-v-6d0d8c3b]{opacity:0}.transition-group[data-v-6d0d8c3b]{display:contents}.icon-video-white[data-v-6d0d8c3b]{position:absolute;top:10px;right:10px;z-index:5}img[data-v-6d0d8c3b]{position:absolute;width:100%;height:100%;z-index:10;color:transparent;object-fit:contain}.file--cropped img[data-v-6d0d8c3b]{object-fit:cover}svg[data-v-6d0d8c3b]{position:absolute;width:70%;height:70%}\n","",{version:3,sources:["webpack://src/mixins/FileFolder.scss","webpack://src/components/File.vue"],names:[],mappings:"AAsBA,gDAEC,iBAAkB,CAClB,YAAa,CACb,kBAAmB,CACnB,sBAAuB,CACvB,wBAAiB,CAAjB,qBAAiB,CAAjB,oBAAiB,CAAjB,gBAAiB,CACjB,kCAAmC,CACnC,eAAgB,CARjB,8DAWE,SAAU,CAMV,UAAW,CACX,mBAAoB,CACpB,qDAAsD,CACtD,SAAU,CACV,uCAAwC,CArB1C,4SA6BG,UAAW,CACX,oWAQA,UAAW,CACX,wEAKF,qDAAsD,CACtD,6DAGA,SAAU,CC8DX,mCACC,gBAAiB,CACjB,mCAGA,iBAAkB,CAClB,QAAS,CACT,UAAW,CACX,SAAU,CACV,qBAGA,iBAAkB,CAClB,UAAW,CACX,WAAY,CACZ,UAAW,CAEX,iBAAkB,CAElB,kBAAmB,CAEnB,oCACC,gBAAiB,CACjB,qBAID,iBAAkB,CAClB,SAAU,CACV,UAAW",sourcesContent:["/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n.file,\n.folder {\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tuser-select: none;\n\tborder-radius: var(--border-radius);\n\toverflow: hidden;\n\n\t.cover {\n\t\tz-index: 2;\n\t\t// We want nice squares despite anything that is in it.\n\t\t// The .cover is what makes the exact square size of the grid.\n\t\t// We use padding-bottom because padding with percentage\n\t\t// always refers to the width. And we only want to fit\n\t\t// the css grid's width.\n\t\twidth: 100%;\n\t\tpadding-bottom: 100%;\n\t\ttransition: opacity var(--animation-quick) ease-in-out;\n\t\topacity: 0;\n\t\tbackground-color: var(--color-main-text);\n\t}\n\n\t&.active,\n\t&:active,\n\t&:hover,\n\t&:focus {\n\t\t.cover {\n\t\t\topacity: .3;\n\t\t}\n\t}\n\n\t&--clear.active,\n\t&--clear:active,\n\t&--clear:hover,\n\t&--clear:focus {\n\t\t.cover {\n\t\t\topacity: .1;\n\t\t}\n\t}\n}\n\n.fade-enter-active, .fade-leave-active {\n\ttransition: opacity var(--animation-quick) ease-in-out;\n}\n\n.fade-enter, .fade-leave-to {\n\topacity: 0;\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\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\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\n\n\n\n\n\n\n\n\n@import '../mixins/FileFolder.scss';\n\n.transition-group {\n\tdisplay: contents;\n}\n\n.icon-video-white {\n\tposition: absolute;\n\ttop: 10px;\n\tright: 10px;\n\tz-index: 5;\n}\n\nimg {\n\tposition: absolute;\n\twidth: 100%;\n\theight: 100%;\n\tz-index: 10;\n\n\tcolor: transparent; // should be diplayed on error\n\n\tobject-fit: contain;\n\n\t.file--cropped & {\n\t\tobject-fit: cover;\n\t}\n}\n\nsvg {\n\tposition: absolute;\n\twidth: 70%;\n\theight: 70%;\n}\n"],sourceRoot:""}]),t.a=a},665:function(n,t,i){"use strict";var e=i(118),a=i.n(e)()(!0);a.push([n.i,".icon-confirm[data-v-4c3113d6]{transform:rotate(180deg)}.photos-navigation[data-v-4c3113d6]{display:flex;position:block;height:44px;padding:0 40px;align-items:center;max-width:100%}.photos-navigation__title[data-v-4c3113d6]{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photos-navigation__share[data-v-4c3113d6]{margin-left:10px}.photos-navigation__back[data-v-4c3113d6],.photos-navigation__share[data-v-4c3113d6]{flex-grow:0;flex-shrink:0}@media (min-width: 0px) and (max-width: 400px){.photos-navigation[data-v-4c3113d6]{top:14.66667px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:-36px}}@media (min-width: 400px) and (max-width: 700px){.photos-navigation[data-v-4c3113d6]{top:14.66667px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:-36px}}@media (min-width: 700px) and (max-width: 1024px){.photos-navigation[data-v-4c3113d6]{top:14.66667px}.photos-navigation__back[data-v-4c3113d6]{margin:0 0px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:0px}}@media (min-width: 1024px) and (max-width: 1280px){.photos-navigation[data-v-4c3113d6]{top:14.66667px}.photos-navigation__back[data-v-4c3113d6]{margin:0 0px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:0px}}@media (min-width: 1280px) and (max-width: 1440px){.photos-navigation[data-v-4c3113d6]{top:29.33333px}.photos-navigation__back[data-v-4c3113d6]{margin:0 11px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:22px}}@media (min-width: 1440px) and (max-width: 1600px){.photos-navigation[data-v-4c3113d6]{top:29.33333px}.photos-navigation__back[data-v-4c3113d6]{margin:0 11px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:22px}}@media (min-width: 1600px) and (max-width: 2048px){.photos-navigation[data-v-4c3113d6]{top:29.33333px}.photos-navigation__back[data-v-4c3113d6]{margin:0 11px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:22px}}@media (min-width: 2048px) and (max-width: 2560px){.photos-navigation[data-v-4c3113d6]{top:29.33333px}.photos-navigation__back[data-v-4c3113d6]{margin:0 22px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:44px}}@media (min-width: 2560px) and (max-width: 3440px){.photos-navigation[data-v-4c3113d6]{top:29.33333px}.photos-navigation__back[data-v-4c3113d6]{margin:0 22px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:44px}}@media (min-width: 3440px){.photos-navigation[data-v-4c3113d6]{top:29.33333px}.photos-navigation__back[data-v-4c3113d6]{margin:0 22px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:44px}}\n","",{version:3,sources:["webpack://src/components/Navigation.vue"],names:[],mappings:"AAiJA,+BACC,wBAAyB,CACzB,oCAGA,YAAa,CACb,cAAe,CACf,WAAY,CACZ,cAAe,CACf,kBAAmB,CACnB,cAAe,CACf,2CACC,QAAS,CACT,kBAAmB,CACnB,eAAgB,CAChB,sBAAuB,CACvB,2CAEA,gBAAiB,CACjB,qFAGA,WAAY,CACZ,aAAc,CACd,+CAmBA,oCAEC,cAAgC,CAOhC,oEACC,kBAAc,CACd,CAZH,iDACC,oCAEC,cAAgC,CAOhC,oEACC,kBAAc,CACd,CAZH,kDACC,oCAEC,cAAgC,CAG/B,0CACC,YAAiC,CACjC,oEAGD,gBAAc,CACd,CAZH,mDACC,oCAEC,cAAgC,CAG/B,0CACC,YAAiC,CACjC,oEAGD,gBAAc,CACd,CAZH,mDACC,oCAEC,cAAgC,CAG/B,0CACC,aAAiC,CACjC,oEAGD,iBAAc,CACd,CAZH,mDACC,oCAEC,cAAgC,CAG/B,0CACC,aAAiC,CACjC,oEAGD,iBAAc,CACd,CAZH,mDACC,oCAEC,cAAgC,CAG/B,0CACC,aAAiC,CACjC,oEAGD,iBAAc,CACd,CAZH,mDACC,oCAEC,cAAgC,CAG/B,0CACC,aAAiC,CACjC,oEAGD,iBAAc,CACd,CAZH,mDACC,oCAEC,cAAgC,CAG/B,0CACC,aAAiC,CACjC,oEAGD,iBAAc,CACd,CAZH,2BACC,oCAEC,cAAgC,CAG/B,0CACC,aAAiC,CACjC,oEAGD,iBAAc,CACd",sourcesContent:["\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\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\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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.icon-confirm {\n\ttransform: rotate(180deg)\n}\n\n.photos-navigation {\n\tdisplay: flex;\n\tposition: block;\n\theight: 44px;\n\tpadding: 0 40px;\n\talign-items: center;\n\tmax-width: 100%;\n\t&__title {\n\t\tmargin: 0;\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\t&__share {\n\t\tmargin-left: 10px;\n\t}\n\t&__back,\n\t&__share {\n\t\tflex-grow: 0;\n\t\tflex-shrink: 0;\n\t}\n}\n\n// generate variants based on grid sizes\n// TODO: use mixins/GridSizes as soon as node-sass supports it\n// needs node-sass 5.0 (with libsass 3.6)\n// https://github.com/sass/node-sass/pull/2312\n$previous: 0;\n@each $size, $config in get('sizes') {\n\t$marginTop: map-get($config, 'marginTop');\n\t$marginW: map-get($config, 'marginW');\n\n\t// if this is the last entry, only use min-width\n\t$rule: '(min-width: #{$previous}px) and (max-width: #{$size}px)';\n\t@if $size == 'max' {\n\t\t$rule: '(min-width: #{$previous}px)';\n\t}\n\n\t@media #{$rule} {\n\t\t.photos-navigation {\n\t\t\t// we space this with 2/3 margin top, 1/3 margin bottom\n\t\t\ttop: ($marginTop - 44px) * 2 / 3;\n\t\t\t// padding-left: $marginW;\n\t\t\t@if $marginW >= 44px {\n\t\t\t\t&__back {\n\t\t\t\t\tmargin: 0 (($marginW - 44px) / 2);\n\t\t\t\t}\n\t\t\t}\n\t\t\t&--root &__title {\n\t\t\t\tpadding-left: #{$marginW - 44}px;\n\t\t\t}\n\t\t}\n\t}\n\t$previous: $size;\n}\n"],sourceRoot:""}]),t.a=a}}]); +//# sourceMappingURL=photos-0.js.map?v=a304b1b28e7a01836e09 \ No newline at end of file diff --git a/js/photos-0.js.map b/js/photos-0.js.map index 33a665a82..90f08d076 100644 --- a/js/photos-0.js.map +++ b/js/photos-0.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./src/utils/CancelableRequest.js","webpack:///./src/components/EmptyContent.vue?9bb1","webpack:///./src/components/EmptyContent.vue?78c7","webpack:///src/components/EmptyContent.vue","webpack:///./src/components/EmptyContent.vue?c8bc","webpack:///./src/components/EmptyContent.vue","webpack:///./src/components/File.vue?5497","webpack:///./src/components/File.vue?dce6","webpack:///src/components/File.vue","webpack:///./src/components/File.vue?c7b1","webpack:///./src/components/File.vue","webpack:///./src/components/Navigation.vue?0cf3","webpack:///./src/components/Navigation.vue?b567","webpack:///src/components/Navigation.vue","webpack:///./src/components/Navigation.vue?db22","webpack:///./src/components/Navigation.vue","webpack:///./src/services/GridConfig.js","webpack:///./src/mixins/GridConfig.js","webpack:///./src/assets/grid-sizes.js","webpack:///./src/assets/Illustrations lazy ^\\.\\/.*\\.svg$ namespace object","webpack:///./src/components/EmptyContent.vue?6200","webpack:///./src/components/File.vue?f178","webpack:///./src/components/Navigation.vue?f149"],"names":["CancelableRequest","request","cancelToken","axios","CancelToken","source","async","url","options","Object","assign","token","cancel","locals","component","_vm","this","_h","$createElement","_c","_self","staticClass","domProps","_s","illustration","_v","_t","directives","name","rawName","value","$slots","expression","_e","class","croppedLayout","attrs","davPath","ariaLabel","on","$event","preventDefault","openViewer","item","injected","mime","includes","hasPreview","error","key","ref","src","basename","ariaUuid","onLoad","onError","loaded","isRoot","folderUp","backToText","showActions","showSidebar","t","Vue","data","gridConfig","sizes","max","watch","val","$emit","created","window","addEventListener","handleWindowResize","beforeDestroy","removeEventListener","methods","currentSize","keys","find","size","document","documentElement","clientWidth","getGridConfig","$on","console","debug","appName","$off","module","exports","400","marginTop","marginW","count","gap","700","1024","1280","1440","1600","2048","2560","3440","map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","id","___CSS_LOADER_EXPORT___","push","i"],"mappings":"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","file":"photos-0.js?v=b1eaf3e708959dc706dd","sourcesContent":["/**\n * @copyright Copyright (c) 2019 Marco Ambrosini \n *\n * @author Marco Ambrosini \n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport axios from '@nextcloud/axios'\n\n/**\n * Create a cancel token\n * @returns {CancelTokenSource}\n */\nconst createCancelToken = () => axios.CancelToken.source()\n\n/**\n * Creates a cancelable axios 'request object'.\n *\n * @param {function} request the axios promise request\n * @returns {Object}\n */\nconst CancelableRequest = function(request) {\n\t/**\n\t * Generate an axios cancel token\n\t */\n\tconst cancelToken = createCancelToken()\n\n\t/**\n\t * Execute the request\n\t *\n\t * @param {string} url the url to send the request to\n\t * @param {Object} [options] optional config for the request\n\t */\n\tconst fetch = async function(url, options) {\n\t\treturn request(\n\t\t\turl,\n\t\t\tObject.assign({ cancelToken: cancelToken.token }, options)\n\t\t)\n\t}\n\n\treturn {\n\t\trequest: fetch,\n\t\tcancel: cancelToken.cancel,\n\t}\n}\n\nexport default CancelableRequest\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isReady)?_c('div',{staticClass:\"emptycontent\"},[(_vm.haveIllustration)?_c('div',{staticClass:\"illustration\",domProps:{\"innerHTML\":_vm._s(_vm.illustration)}}):_c('div',{staticClass:\"icon-error\"}),_vm._v(\" \"),_c('h2',[_vm._t(\"default\")],2),_vm._v(\" \"),_c('p',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$slots.desc),expression:\"$slots.desc\"}]},[_vm._t(\"desc\")],2)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmptyContent.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmptyContent.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n","import api from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmptyContent.vue?vue&type=style&index=0&lang=scss&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./EmptyContent.vue?vue&type=template&id=5881a110&\"\nimport script from \"./EmptyContent.vue?vue&type=script&lang=js&\"\nexport * from \"./EmptyContent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EmptyContent.vue?vue&type=style&index=0&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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',{staticClass:\"file\",class:{\n\t\t'file--cropped': _vm.croppedLayout,\n\t},attrs:{\"href\":_vm.davPath,\"aria-label\":_vm.ariaLabel},on:{\"click\":function($event){$event.preventDefault();return _vm.openViewer($event)}}},[(_vm.item.injected.mime.includes('video') && _vm.item.injected.hasPreview)?_c('div',{staticClass:\"icon-video-white\"}):_vm._e(),_vm._v(\" \"),_c('transition-group',{staticClass:\"transition-group\",attrs:{\"name\":\"fade\"}},[(!_vm.error)?_c('img',{key:((_vm.item.injected.basename) + \"-img\"),ref:\"img\",attrs:{\"src\":_vm.src,\"alt\":_vm.item.injected.basename,\"aria-describedby\":_vm.ariaUuid},on:{\"load\":_vm.onLoad,\"error\":_vm.onError}}):_vm._e(),_vm._v(\" \"),(!_vm.loaded || _vm.error)?_c('svg',{key:((_vm.item.injected.basename) + \"-svg\"),attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 32 32\",\"fill\":\"url(#placeholder__gradient)\"}},[(_vm.isImage)?_c('use',{attrs:{\"xlink:href\":\"#placeholder--img\"}}):_c('use',{attrs:{\"xlink:href\":\"#placeholder--video\"}})]):_vm._e()]),_vm._v(\" \"),_c('p',{staticClass:\"hidden-visually\",attrs:{\"id\":_vm.ariaUuid}},[_vm._v(_vm._s(_vm.item.injected.basename))]),_vm._v(\" \"),_c('div',{staticClass:\"cover\",attrs:{\"role\":\"none\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./File.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./File.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n","import api from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./File.vue?vue&type=style&index=0&id=6d0d8c3b&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./File.vue?vue&type=template&id=6d0d8c3b&scoped=true&\"\nimport script from \"./File.vue?vue&type=script&lang=js&\"\nexport * from \"./File.vue?vue&type=script&lang=js&\"\nimport style0 from \"./File.vue?vue&type=style&index=0&id=6d0d8c3b&lang=scss&scoped=true&\"\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 \"6d0d8c3b\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"photos-navigation\",class:{'photos-navigation--root': _vm.isRoot},attrs:{\"role\":\"toolbar\"}},[(!_vm.isRoot)?_c('Actions',{staticClass:\"photos-navigation__back\"},[_c('ActionButton',{attrs:{\"icon\":\"icon-confirm\"},on:{\"click\":_vm.folderUp}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.backToText)+\"\\n\\t\\t\")])],1):_vm._e(),_vm._v(\" \"),_c('h2',{staticClass:\"photos-navigation__title\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.name)+\"\\n\\t\")]),_vm._v(\" \"),(!_vm.isRoot && _vm.showActions)?_c('Actions',{staticClass:\"photos-navigation__share\"},[_c('ActionButton',{attrs:{\"icon\":\"icon-shared\"},on:{\"click\":_vm.showSidebar}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('photos', 'Share this folder'))+\"\\n\\t\\t\")])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n","import api from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=style&index=0&id=4c3113d6&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./Navigation.vue?vue&type=template&id=4c3113d6&scoped=true&\"\nimport script from \"./Navigation.vue?vue&type=script&lang=js&\"\nexport * from \"./Navigation.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Navigation.vue?vue&type=style&index=0&id=4c3113d6&lang=scss&scoped=true&\"\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 \"4c3113d6\",\n null\n \n)\n\nexport default component.exports","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport Vue from 'vue'\nimport { sizes } from '../assets/grid-sizes'\n\nexport default new Vue({\n\tdata() {\n\t\treturn {\n\t\t\tgridConfig: sizes.max,\n\t\t}\n\t},\n\twatch: {\n\t\tgridConfig(val) {\n\t\t\tthis.$emit('changed', val)\n\t\t},\n\t},\n\tcreated() {\n\t\twindow.addEventListener('resize', this.handleWindowResize)\n\t\tthis.handleWindowResize()\n\t},\n\tbeforeDestroy() {\n\t\twindow.removeEventListener('resize', this.handleWindowResize)\n\t},\n\tmethods: {\n\t\thandleWindowResize() {\n\t\t\t// find the first grid size that fit the current window width\n\t\t\tconst currentSize = Object.keys(sizes).find(size => size > document.documentElement.clientWidth)\n\t\t\tthis.gridConfig = sizes[currentSize] || sizes.max\n\t\t},\n\t},\n})\n","/**\n * @copyright Copyright (c) 2018 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport getGridConfig from '../services/GridConfig'\n\n/**\n * Get the current used grid config\n */\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tgridConfig: {},\n\t\t}\n\t},\n\n\tcreated() {\n\t\tgetGridConfig.$on('changed', val => {\n\t\t\tthis.gridConfig = val\n\t\t})\n\t\tconsole.debug(`[${appName}]`, 'Grid config', Object.assign({}, getGridConfig.gridConfig))\n\t\tthis.gridConfig = getGridConfig.gridConfig\n\t},\n\n\tbeforeDestroy() {\n\t\tgetGridConfig.$off('changed', this.gridConfig)\n\t},\n}\n","/**\n * @copyright Copyright (c) 2018 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// for now we want to keep the same gap everywhere\nconst gap = 8\n\n/**\n * Define the max width proportions\n * The number (key) indicate the MAX size\n *\n * needs to be ompatible with webpack config\n * so no export default {}\n */\nmodule.exports = {\n\tsizes: {\n\t\t400: {\n\t\t\tmarginTop: 66, // same as grid-gap\n\t\t\tmarginW: gap, // same as grid-gap\n\t\t\tcount: 3,\n\t\t\tgap,\n\t\t},\n\t\t700: {\n\t\t\tmarginTop: 66,\n\t\t\tmarginW: 8, // same as grid-gap\n\t\t\tcount: 4,\n\t\t\tgap,\n\t\t},\n\t\t1024: {\n\t\t\tmarginTop: 66,\n\t\t\tmarginW: 44,\n\t\t\tcount: 5,\n\t\t\tgap,\n\t\t},\n\t\t1280: {\n\t\t\tmarginTop: 66,\n\t\t\tmarginW: 44,\n\t\t\tcount: 4,\n\t\t\tgap,\n\t\t},\n\t\t1440: {\n\t\t\tmarginTop: 88,\n\t\t\tmarginW: 66,\n\t\t\tcount: 5,\n\t\t\tgap,\n\t\t},\n\t\t1600: {\n\t\t\tmarginTop: 88,\n\t\t\tmarginW: 66,\n\t\t\tcount: 6,\n\t\t\tgap,\n\t\t},\n\t\t2048: {\n\t\t\tmarginTop: 88,\n\t\t\tmarginW: 66,\n\t\t\tcount: 7,\n\t\t\tgap,\n\t\t},\n\t\t2560: {\n\t\t\tmarginTop: 88,\n\t\t\tmarginW: 88,\n\t\t\tcount: 8,\n\t\t\tgap,\n\t\t},\n\t\t3440: {\n\t\t\tmarginTop: 88,\n\t\t\tmarginW: 88,\n\t\t\tcount: 9,\n\t\t\tgap,\n\t\t},\n\t\tmax: {\n\t\t\tmarginTop: 88,\n\t\t\tmarginW: 88,\n\t\t\tcount: 10,\n\t\t\tgap,\n\t\t},\n\t},\n}\n","var map = {\n\t\"./empty.svg\": [\n\t\t816,\n\t\t8\n\t],\n\t\"./folder.svg\": [\n\t\t817,\n\t\t9\n\t],\n\t\"./images.svg\": [\n\t\t818,\n\t\t10\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 667;\nmodule.exports = webpackAsyncContext;","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".emptycontent{grid-column:1/-1;margin-top:20vh}.illustration{min-width:200px;max-width:15%;width:300px;margin:auto;margin-bottom:20px;position:relative}.illustration svg{width:100%;height:100%;max-height:40vh}.illustration [fill*='6c63ff']{fill:var(--color-primary-element)}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://src/components/EmptyContent.vue\"],\"names\":[],\"mappings\":\"AAkHA,cAEC,gBAAiB,CACjB,eAAgB,CAChB,cAGA,eAAgB,CAChB,aAAc,CACd,WAAY,CACZ,WAAY,CACZ,kBAAmB,CACnB,iBAAkB,CANnB,kBASE,UAAW,CACX,WAAY,CACZ,eAAgB,CAXlB,+BAgBE,iCAAkC\",\"sourcesContent\":[\"\\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\\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\\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.emptycontent {\\n\\t// span all the available columns\\n\\tgrid-column: 1/-1;\\n\\tmargin-top: 20vh;\\n}\\n\\n.illustration {\\n\\tmin-width: 200px;\\n\\tmax-width: 15%;\\n\\twidth: 300px;\\n\\tmargin: auto;\\n\\tmargin-bottom: 20px;\\n\\tposition: relative;\\n\\n\\tsvg {\\n\\t\\twidth: 100%;\\n\\t\\theight: 100%;\\n\\t\\tmax-height: 40vh;\\n\\t}\\n\\n\\t// change colour of illustration\\n\\t[fill*='6c63ff'] {\\n\\t\\tfill: var(--color-primary-element);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".file[data-v-6d0d8c3b],.folder[data-v-6d0d8c3b]{position:relative;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:var(--border-radius);overflow:hidden}.file .cover[data-v-6d0d8c3b],.folder .cover[data-v-6d0d8c3b]{z-index:2;width:100%;padding-bottom:100%;transition:opacity var(--animation-quick) ease-in-out;opacity:0;background-color:var(--color-main-text)}.file.active .cover[data-v-6d0d8c3b],.file:active .cover[data-v-6d0d8c3b],.file:hover .cover[data-v-6d0d8c3b],.file:focus .cover[data-v-6d0d8c3b],.folder.active .cover[data-v-6d0d8c3b],.folder:active .cover[data-v-6d0d8c3b],.folder:hover .cover[data-v-6d0d8c3b],.folder:focus .cover[data-v-6d0d8c3b]{opacity:.3}.file--clear.active .cover[data-v-6d0d8c3b],.file--clear:active .cover[data-v-6d0d8c3b],.file--clear:hover .cover[data-v-6d0d8c3b],.file--clear:focus .cover[data-v-6d0d8c3b],.folder--clear.active .cover[data-v-6d0d8c3b],.folder--clear:active .cover[data-v-6d0d8c3b],.folder--clear:hover .cover[data-v-6d0d8c3b],.folder--clear:focus .cover[data-v-6d0d8c3b]{opacity:.1}.fade-enter-active[data-v-6d0d8c3b],.fade-leave-active[data-v-6d0d8c3b]{transition:opacity var(--animation-quick) ease-in-out}.fade-enter[data-v-6d0d8c3b],.fade-leave-to[data-v-6d0d8c3b]{opacity:0}.transition-group[data-v-6d0d8c3b]{display:contents}.icon-video-white[data-v-6d0d8c3b]{position:absolute;top:10px;right:10px;z-index:5}img[data-v-6d0d8c3b]{position:absolute;width:100%;height:100%;z-index:10;color:transparent;object-fit:contain}.file--cropped img[data-v-6d0d8c3b]{object-fit:cover}svg[data-v-6d0d8c3b]{position:absolute;width:70%;height:70%}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://src/mixins/FileFolder.scss\",\"webpack://src/components/File.vue\"],\"names\":[],\"mappings\":\"AAsBA,gDAEC,iBAAkB,CAClB,YAAa,CACb,kBAAmB,CACnB,sBAAuB,CACvB,wBAAiB,CAAjB,qBAAiB,CAAjB,oBAAiB,CAAjB,gBAAiB,CACjB,kCAAmC,CACnC,eAAgB,CARjB,8DAWE,SAAU,CAMV,UAAW,CACX,mBAAoB,CACpB,qDAAsD,CACtD,SAAU,CACV,uCAAwC,CArB1C,4SA6BG,UAAW,CACX,oWAQA,UAAW,CACX,wEAKF,qDAAsD,CACtD,6DAGA,SAAU,CC8DX,mCACC,gBAAiB,CACjB,mCAGA,iBAAkB,CAClB,QAAS,CACT,UAAW,CACX,SAAU,CACV,qBAGA,iBAAkB,CAClB,UAAW,CACX,WAAY,CACZ,UAAW,CAEX,iBAAkB,CAElB,kBAAmB,CAEnB,oCACC,gBAAiB,CACjB,qBAID,iBAAkB,CAClB,SAAU,CACV,UAAW\",\"sourcesContent\":[\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n.file,\\n.folder {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\tuser-select: none;\\n\\tborder-radius: var(--border-radius);\\n\\toverflow: hidden;\\n\\n\\t.cover {\\n\\t\\tz-index: 2;\\n\\t\\t// We want nice squares despite anything that is in it.\\n\\t\\t// The .cover is what makes the exact square size of the grid.\\n\\t\\t// We use padding-bottom because padding with percentage\\n\\t\\t// always refers to the width. And we only want to fit\\n\\t\\t// the css grid's width.\\n\\t\\twidth: 100%;\\n\\t\\tpadding-bottom: 100%;\\n\\t\\ttransition: opacity var(--animation-quick) ease-in-out;\\n\\t\\topacity: 0;\\n\\t\\tbackground-color: var(--color-main-text);\\n\\t}\\n\\n\\t&.active,\\n\\t&:active,\\n\\t&:hover,\\n\\t&:focus {\\n\\t\\t.cover {\\n\\t\\t\\topacity: .3;\\n\\t\\t}\\n\\t}\\n\\n\\t&--clear.active,\\n\\t&--clear:active,\\n\\t&--clear:hover,\\n\\t&--clear:focus {\\n\\t\\t.cover {\\n\\t\\t\\topacity: .1;\\n\\t\\t}\\n\\t}\\n}\\n\\n.fade-enter-active, .fade-leave-active {\\n\\ttransition: opacity var(--animation-quick) ease-in-out;\\n}\\n\\n.fade-enter, .fade-leave-to {\\n\\topacity: 0;\\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\\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\\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\\n\\n\\n\\n\\n\\n\\n\\n\\n@import '../mixins/FileFolder.scss';\\n\\n.transition-group {\\n\\tdisplay: contents;\\n}\\n\\n.icon-video-white {\\n\\tposition: absolute;\\n\\ttop: 10px;\\n\\tright: 10px;\\n\\tz-index: 5;\\n}\\n\\nimg {\\n\\tposition: absolute;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\tz-index: 10;\\n\\n\\tcolor: transparent; // should be diplayed on error\\n\\n\\tobject-fit: contain;\\n\\n\\t.file--cropped & {\\n\\t\\tobject-fit: cover;\\n\\t}\\n}\\n\\nsvg {\\n\\tposition: absolute;\\n\\twidth: 70%;\\n\\theight: 70%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".icon-confirm[data-v-4c3113d6]{transform:rotate(180deg)}.photos-navigation[data-v-4c3113d6]{display:flex;position:block;height:44px;padding:0 40px;align-items:center;max-width:100%}.photos-navigation__title[data-v-4c3113d6]{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photos-navigation__share[data-v-4c3113d6]{margin-left:10px}.photos-navigation__back[data-v-4c3113d6],.photos-navigation__share[data-v-4c3113d6]{flex-grow:0;flex-shrink:0}@media (min-width: 0px) and (max-width: 400px){.photos-navigation[data-v-4c3113d6]{top:14.66667px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:-36px}}@media (min-width: 400px) and (max-width: 700px){.photos-navigation[data-v-4c3113d6]{top:14.66667px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:-36px}}@media (min-width: 700px) and (max-width: 1024px){.photos-navigation[data-v-4c3113d6]{top:14.66667px}.photos-navigation__back[data-v-4c3113d6]{margin:0 0px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:0px}}@media (min-width: 1024px) and (max-width: 1280px){.photos-navigation[data-v-4c3113d6]{top:14.66667px}.photos-navigation__back[data-v-4c3113d6]{margin:0 0px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:0px}}@media (min-width: 1280px) and (max-width: 1440px){.photos-navigation[data-v-4c3113d6]{top:29.33333px}.photos-navigation__back[data-v-4c3113d6]{margin:0 11px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:22px}}@media (min-width: 1440px) and (max-width: 1600px){.photos-navigation[data-v-4c3113d6]{top:29.33333px}.photos-navigation__back[data-v-4c3113d6]{margin:0 11px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:22px}}@media (min-width: 1600px) and (max-width: 2048px){.photos-navigation[data-v-4c3113d6]{top:29.33333px}.photos-navigation__back[data-v-4c3113d6]{margin:0 11px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:22px}}@media (min-width: 2048px) and (max-width: 2560px){.photos-navigation[data-v-4c3113d6]{top:29.33333px}.photos-navigation__back[data-v-4c3113d6]{margin:0 22px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:44px}}@media (min-width: 2560px) and (max-width: 3440px){.photos-navigation[data-v-4c3113d6]{top:29.33333px}.photos-navigation__back[data-v-4c3113d6]{margin:0 22px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:44px}}@media (min-width: 3440px){.photos-navigation[data-v-4c3113d6]{top:29.33333px}.photos-navigation__back[data-v-4c3113d6]{margin:0 22px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:44px}}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://src/components/Navigation.vue\"],\"names\":[],\"mappings\":\"AAiJA,+BACC,wBAAyB,CACzB,oCAGA,YAAa,CACb,cAAe,CACf,WAAY,CACZ,cAAe,CACf,kBAAmB,CACnB,cAAe,CACf,2CACC,QAAS,CACT,kBAAmB,CACnB,eAAgB,CAChB,sBAAuB,CACvB,2CAEA,gBAAiB,CACjB,qFAGA,WAAY,CACZ,aAAc,CACd,+CAmBA,oCAEC,cAAgC,CAOhC,oEACC,kBAAc,CACd,CAZH,iDACC,oCAEC,cAAgC,CAOhC,oEACC,kBAAc,CACd,CAZH,kDACC,oCAEC,cAAgC,CAG/B,0CACC,YAAiC,CACjC,oEAGD,gBAAc,CACd,CAZH,mDACC,oCAEC,cAAgC,CAG/B,0CACC,YAAiC,CACjC,oEAGD,gBAAc,CACd,CAZH,mDACC,oCAEC,cAAgC,CAG/B,0CACC,aAAiC,CACjC,oEAGD,iBAAc,CACd,CAZH,mDACC,oCAEC,cAAgC,CAG/B,0CACC,aAAiC,CACjC,oEAGD,iBAAc,CACd,CAZH,mDACC,oCAEC,cAAgC,CAG/B,0CACC,aAAiC,CACjC,oEAGD,iBAAc,CACd,CAZH,mDACC,oCAEC,cAAgC,CAG/B,0CACC,aAAiC,CACjC,oEAGD,iBAAc,CACd,CAZH,mDACC,oCAEC,cAAgC,CAG/B,0CACC,aAAiC,CACjC,oEAGD,iBAAc,CACd,CAZH,2BACC,oCAEC,cAAgC,CAG/B,0CACC,aAAiC,CACjC,oEAGD,iBAAc,CACd\",\"sourcesContent\":[\"\\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\\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\\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\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.icon-confirm {\\n\\ttransform: rotate(180deg)\\n}\\n\\n.photos-navigation {\\n\\tdisplay: flex;\\n\\tposition: block;\\n\\theight: 44px;\\n\\tpadding: 0 40px;\\n\\talign-items: center;\\n\\tmax-width: 100%;\\n\\t&__title {\\n\\t\\tmargin: 0;\\n\\t\\twhite-space: nowrap;\\n\\t\\toverflow: hidden;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n\\t&__share {\\n\\t\\tmargin-left: 10px;\\n\\t}\\n\\t&__back,\\n\\t&__share {\\n\\t\\tflex-grow: 0;\\n\\t\\tflex-shrink: 0;\\n\\t}\\n}\\n\\n// generate variants based on grid sizes\\n// TODO: use mixins/GridSizes as soon as node-sass supports it\\n// needs node-sass 5.0 (with libsass 3.6)\\n// https://github.com/sass/node-sass/pull/2312\\n$previous: 0;\\n@each $size, $config in get('sizes') {\\n\\t$marginTop: map-get($config, 'marginTop');\\n\\t$marginW: map-get($config, 'marginW');\\n\\n\\t// if this is the last entry, only use min-width\\n\\t$rule: '(min-width: #{$previous}px) and (max-width: #{$size}px)';\\n\\t@if $size == 'max' {\\n\\t\\t$rule: '(min-width: #{$previous}px)';\\n\\t}\\n\\n\\t@media #{$rule} {\\n\\t\\t.photos-navigation {\\n\\t\\t\\t// we space this with 2/3 margin top, 1/3 margin bottom\\n\\t\\t\\ttop: ($marginTop - 44px) * 2 / 3;\\n\\t\\t\\t// padding-left: $marginW;\\n\\t\\t\\t@if $marginW >= 44px {\\n\\t\\t\\t\\t&__back {\\n\\t\\t\\t\\t\\tmargin: 0 (($marginW - 44px) / 2);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t&--root &__title {\\n\\t\\t\\t\\tpadding-left: #{$marginW - 44}px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\t$previous: $size;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./src/utils/CancelableRequest.js","webpack:///./src/components/EmptyContent.vue?9bb1","webpack:///./src/components/EmptyContent.vue?78c7","webpack:///src/components/EmptyContent.vue","webpack:///./src/components/EmptyContent.vue?c8bc","webpack:///./src/components/EmptyContent.vue","webpack:///./src/components/File.vue?5497","webpack:///./src/components/File.vue?dce6","webpack:///src/components/File.vue","webpack:///./src/components/File.vue?c7b1","webpack:///./src/components/File.vue","webpack:///./src/components/Navigation.vue?0cf3","webpack:///./src/components/Navigation.vue?b567","webpack:///src/components/Navigation.vue","webpack:///./src/components/Navigation.vue?db22","webpack:///./src/components/Navigation.vue","webpack:///./src/services/GridConfig.js","webpack:///./src/mixins/GridConfig.js","webpack:///./src/assets/grid-sizes.js","webpack:///./src/assets/Illustrations lazy ^\\.\\/.*\\.svg$ namespace object","webpack:///./src/components/EmptyContent.vue?6200","webpack:///./src/components/File.vue?f178","webpack:///./src/components/Navigation.vue?f149"],"names":["CancelableRequest","request","cancelToken","axios","CancelToken","source","async","url","options","Object","assign","token","cancel","locals","component","_vm","this","_h","$createElement","_c","_self","staticClass","domProps","_s","illustration","_v","_t","directives","name","rawName","value","$slots","expression","_e","class","croppedLayout","attrs","davPath","ariaLabel","on","$event","preventDefault","openViewer","item","injected","mime","includes","hasPreview","error","key","ref","src","basename","ariaUuid","onLoad","onError","loaded","isRoot","folderUp","backToText","showActions","showSidebar","t","Vue","data","gridConfig","sizes","max","watch","val","$emit","created","window","addEventListener","handleWindowResize","beforeDestroy","removeEventListener","methods","currentSize","keys","find","size","document","documentElement","clientWidth","getGridConfig","$on","console","debug","appName","$off","module","exports","400","marginTop","marginW","count","gap","700","1024","1280","1440","1600","2048","2560","3440","map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","id","___CSS_LOADER_EXPORT___","push","i"],"mappings":"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","file":"photos-0.js?v=a304b1b28e7a01836e09","sourcesContent":["/**\n * @copyright Copyright (c) 2019 Marco Ambrosini \n *\n * @author Marco Ambrosini \n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport axios from '@nextcloud/axios'\n\n/**\n * Create a cancel token\n * @returns {CancelTokenSource}\n */\nconst createCancelToken = () => axios.CancelToken.source()\n\n/**\n * Creates a cancelable axios 'request object'.\n *\n * @param {function} request the axios promise request\n * @returns {Object}\n */\nconst CancelableRequest = function(request) {\n\t/**\n\t * Generate an axios cancel token\n\t */\n\tconst cancelToken = createCancelToken()\n\n\t/**\n\t * Execute the request\n\t *\n\t * @param {string} url the url to send the request to\n\t * @param {Object} [options] optional config for the request\n\t */\n\tconst fetch = async function(url, options) {\n\t\treturn request(\n\t\t\turl,\n\t\t\tObject.assign({ cancelToken: cancelToken.token }, options)\n\t\t)\n\t}\n\n\treturn {\n\t\trequest: fetch,\n\t\tcancel: cancelToken.cancel,\n\t}\n}\n\nexport default CancelableRequest\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isReady)?_c('div',{staticClass:\"emptycontent\"},[(_vm.haveIllustration)?_c('div',{staticClass:\"illustration\",domProps:{\"innerHTML\":_vm._s(_vm.illustration)}}):_c('div',{staticClass:\"icon-error\"}),_vm._v(\" \"),_c('h2',[_vm._t(\"default\")],2),_vm._v(\" \"),_c('p',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$slots.desc),expression:\"$slots.desc\"}]},[_vm._t(\"desc\")],2)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmptyContent.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmptyContent.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n","import api from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmptyContent.vue?vue&type=style&index=0&lang=scss&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./EmptyContent.vue?vue&type=template&id=5881a110&\"\nimport script from \"./EmptyContent.vue?vue&type=script&lang=js&\"\nexport * from \"./EmptyContent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EmptyContent.vue?vue&type=style&index=0&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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',{staticClass:\"file\",class:{\n\t\t'file--cropped': _vm.croppedLayout,\n\t},attrs:{\"href\":_vm.davPath,\"aria-label\":_vm.ariaLabel},on:{\"click\":function($event){$event.preventDefault();return _vm.openViewer($event)}}},[(_vm.item.injected.mime.includes('video') && _vm.item.injected.hasPreview)?_c('div',{staticClass:\"icon-video-white\"}):_vm._e(),_vm._v(\" \"),_c('transition-group',{staticClass:\"transition-group\",attrs:{\"name\":\"fade\"}},[(!_vm.error)?_c('img',{key:((_vm.item.injected.basename) + \"-img\"),ref:\"img\",attrs:{\"src\":_vm.src,\"alt\":_vm.item.injected.basename,\"aria-describedby\":_vm.ariaUuid},on:{\"load\":_vm.onLoad,\"error\":_vm.onError}}):_vm._e(),_vm._v(\" \"),(!_vm.loaded || _vm.error)?_c('svg',{key:((_vm.item.injected.basename) + \"-svg\"),attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 32 32\",\"fill\":\"url(#placeholder__gradient)\"}},[(_vm.isImage)?_c('use',{attrs:{\"xlink:href\":\"#placeholder--img\"}}):_c('use',{attrs:{\"xlink:href\":\"#placeholder--video\"}})]):_vm._e()]),_vm._v(\" \"),_c('p',{staticClass:\"hidden-visually\",attrs:{\"id\":_vm.ariaUuid}},[_vm._v(_vm._s(_vm.item.injected.basename))]),_vm._v(\" \"),_c('div',{staticClass:\"cover\",attrs:{\"role\":\"none\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./File.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./File.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n","import api from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./File.vue?vue&type=style&index=0&id=6d0d8c3b&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./File.vue?vue&type=template&id=6d0d8c3b&scoped=true&\"\nimport script from \"./File.vue?vue&type=script&lang=js&\"\nexport * from \"./File.vue?vue&type=script&lang=js&\"\nimport style0 from \"./File.vue?vue&type=style&index=0&id=6d0d8c3b&lang=scss&scoped=true&\"\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 \"6d0d8c3b\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"photos-navigation\",class:{'photos-navigation--root': _vm.isRoot},attrs:{\"role\":\"toolbar\"}},[(!_vm.isRoot)?_c('Actions',{staticClass:\"photos-navigation__back\"},[_c('ActionButton',{attrs:{\"icon\":\"icon-confirm\"},on:{\"click\":_vm.folderUp}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.backToText)+\"\\n\\t\\t\")])],1):_vm._e(),_vm._v(\" \"),_c('h2',{staticClass:\"photos-navigation__title\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.name)+\"\\n\\t\")]),_vm._v(\" \"),(!_vm.isRoot && _vm.showActions)?_c('Actions',{staticClass:\"photos-navigation__share\"},[_c('ActionButton',{attrs:{\"icon\":\"icon-shared\"},on:{\"click\":_vm.showSidebar}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('photos', 'Share this folder'))+\"\\n\\t\\t\")])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n","import api from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=style&index=0&id=4c3113d6&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./Navigation.vue?vue&type=template&id=4c3113d6&scoped=true&\"\nimport script from \"./Navigation.vue?vue&type=script&lang=js&\"\nexport * from \"./Navigation.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Navigation.vue?vue&type=style&index=0&id=4c3113d6&lang=scss&scoped=true&\"\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 \"4c3113d6\",\n null\n \n)\n\nexport default component.exports","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport Vue from 'vue'\nimport { sizes } from '../assets/grid-sizes'\n\nexport default new Vue({\n\tdata() {\n\t\treturn {\n\t\t\tgridConfig: sizes.max,\n\t\t}\n\t},\n\twatch: {\n\t\tgridConfig(val) {\n\t\t\tthis.$emit('changed', val)\n\t\t},\n\t},\n\tcreated() {\n\t\twindow.addEventListener('resize', this.handleWindowResize)\n\t\tthis.handleWindowResize()\n\t},\n\tbeforeDestroy() {\n\t\twindow.removeEventListener('resize', this.handleWindowResize)\n\t},\n\tmethods: {\n\t\thandleWindowResize() {\n\t\t\t// find the first grid size that fit the current window width\n\t\t\tconst currentSize = Object.keys(sizes).find(size => size > document.documentElement.clientWidth)\n\t\t\tthis.gridConfig = sizes[currentSize] || sizes.max\n\t\t},\n\t},\n})\n","/**\n * @copyright Copyright (c) 2018 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport getGridConfig from '../services/GridConfig'\n\n/**\n * Get the current used grid config\n */\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tgridConfig: {},\n\t\t}\n\t},\n\n\tcreated() {\n\t\tgetGridConfig.$on('changed', val => {\n\t\t\tthis.gridConfig = val\n\t\t})\n\t\tconsole.debug(`[${appName}]`, 'Grid config', Object.assign({}, getGridConfig.gridConfig))\n\t\tthis.gridConfig = getGridConfig.gridConfig\n\t},\n\n\tbeforeDestroy() {\n\t\tgetGridConfig.$off('changed', this.gridConfig)\n\t},\n}\n","/**\n * @copyright Copyright (c) 2018 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// for now we want to keep the same gap everywhere\nconst gap = 8\n\n/**\n * Define the max width proportions\n * The number (key) indicate the MAX size\n *\n * needs to be ompatible with webpack config\n * so no export default {}\n */\nmodule.exports = {\n\tsizes: {\n\t\t400: {\n\t\t\tmarginTop: 66, // same as grid-gap\n\t\t\tmarginW: gap, // same as grid-gap\n\t\t\tcount: 3,\n\t\t\tgap,\n\t\t},\n\t\t700: {\n\t\t\tmarginTop: 66,\n\t\t\tmarginW: 8, // same as grid-gap\n\t\t\tcount: 4,\n\t\t\tgap,\n\t\t},\n\t\t1024: {\n\t\t\tmarginTop: 66,\n\t\t\tmarginW: 44,\n\t\t\tcount: 5,\n\t\t\tgap,\n\t\t},\n\t\t1280: {\n\t\t\tmarginTop: 66,\n\t\t\tmarginW: 44,\n\t\t\tcount: 4,\n\t\t\tgap,\n\t\t},\n\t\t1440: {\n\t\t\tmarginTop: 88,\n\t\t\tmarginW: 66,\n\t\t\tcount: 5,\n\t\t\tgap,\n\t\t},\n\t\t1600: {\n\t\t\tmarginTop: 88,\n\t\t\tmarginW: 66,\n\t\t\tcount: 6,\n\t\t\tgap,\n\t\t},\n\t\t2048: {\n\t\t\tmarginTop: 88,\n\t\t\tmarginW: 66,\n\t\t\tcount: 7,\n\t\t\tgap,\n\t\t},\n\t\t2560: {\n\t\t\tmarginTop: 88,\n\t\t\tmarginW: 88,\n\t\t\tcount: 8,\n\t\t\tgap,\n\t\t},\n\t\t3440: {\n\t\t\tmarginTop: 88,\n\t\t\tmarginW: 88,\n\t\t\tcount: 9,\n\t\t\tgap,\n\t\t},\n\t\tmax: {\n\t\t\tmarginTop: 88,\n\t\t\tmarginW: 88,\n\t\t\tcount: 10,\n\t\t\tgap,\n\t\t},\n\t},\n}\n","var map = {\n\t\"./empty.svg\": [\n\t\t812,\n\t\t8\n\t],\n\t\"./folder.svg\": [\n\t\t813,\n\t\t9\n\t],\n\t\"./images.svg\": [\n\t\t814,\n\t\t10\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 659;\nmodule.exports = webpackAsyncContext;","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".emptycontent{grid-column:1/-1;margin-top:20vh}.illustration{min-width:200px;max-width:15%;width:300px;margin:auto;margin-bottom:20px;position:relative}.illustration svg{width:100%;height:100%;max-height:40vh}.illustration [fill*='6c63ff']{fill:var(--color-primary-element)}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://src/components/EmptyContent.vue\"],\"names\":[],\"mappings\":\"AAkHA,cAEC,gBAAiB,CACjB,eAAgB,CAChB,cAGA,eAAgB,CAChB,aAAc,CACd,WAAY,CACZ,WAAY,CACZ,kBAAmB,CACnB,iBAAkB,CANnB,kBASE,UAAW,CACX,WAAY,CACZ,eAAgB,CAXlB,+BAgBE,iCAAkC\",\"sourcesContent\":[\"\\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\\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\\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.emptycontent {\\n\\t// span all the available columns\\n\\tgrid-column: 1/-1;\\n\\tmargin-top: 20vh;\\n}\\n\\n.illustration {\\n\\tmin-width: 200px;\\n\\tmax-width: 15%;\\n\\twidth: 300px;\\n\\tmargin: auto;\\n\\tmargin-bottom: 20px;\\n\\tposition: relative;\\n\\n\\tsvg {\\n\\t\\twidth: 100%;\\n\\t\\theight: 100%;\\n\\t\\tmax-height: 40vh;\\n\\t}\\n\\n\\t// change colour of illustration\\n\\t[fill*='6c63ff'] {\\n\\t\\tfill: var(--color-primary-element);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".file[data-v-6d0d8c3b],.folder[data-v-6d0d8c3b]{position:relative;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:var(--border-radius);overflow:hidden}.file .cover[data-v-6d0d8c3b],.folder .cover[data-v-6d0d8c3b]{z-index:2;width:100%;padding-bottom:100%;transition:opacity var(--animation-quick) ease-in-out;opacity:0;background-color:var(--color-main-text)}.file.active .cover[data-v-6d0d8c3b],.file:active .cover[data-v-6d0d8c3b],.file:hover .cover[data-v-6d0d8c3b],.file:focus .cover[data-v-6d0d8c3b],.folder.active .cover[data-v-6d0d8c3b],.folder:active .cover[data-v-6d0d8c3b],.folder:hover .cover[data-v-6d0d8c3b],.folder:focus .cover[data-v-6d0d8c3b]{opacity:.3}.file--clear.active .cover[data-v-6d0d8c3b],.file--clear:active .cover[data-v-6d0d8c3b],.file--clear:hover .cover[data-v-6d0d8c3b],.file--clear:focus .cover[data-v-6d0d8c3b],.folder--clear.active .cover[data-v-6d0d8c3b],.folder--clear:active .cover[data-v-6d0d8c3b],.folder--clear:hover .cover[data-v-6d0d8c3b],.folder--clear:focus .cover[data-v-6d0d8c3b]{opacity:.1}.fade-enter-active[data-v-6d0d8c3b],.fade-leave-active[data-v-6d0d8c3b]{transition:opacity var(--animation-quick) ease-in-out}.fade-enter[data-v-6d0d8c3b],.fade-leave-to[data-v-6d0d8c3b]{opacity:0}.transition-group[data-v-6d0d8c3b]{display:contents}.icon-video-white[data-v-6d0d8c3b]{position:absolute;top:10px;right:10px;z-index:5}img[data-v-6d0d8c3b]{position:absolute;width:100%;height:100%;z-index:10;color:transparent;object-fit:contain}.file--cropped img[data-v-6d0d8c3b]{object-fit:cover}svg[data-v-6d0d8c3b]{position:absolute;width:70%;height:70%}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://src/mixins/FileFolder.scss\",\"webpack://src/components/File.vue\"],\"names\":[],\"mappings\":\"AAsBA,gDAEC,iBAAkB,CAClB,YAAa,CACb,kBAAmB,CACnB,sBAAuB,CACvB,wBAAiB,CAAjB,qBAAiB,CAAjB,oBAAiB,CAAjB,gBAAiB,CACjB,kCAAmC,CACnC,eAAgB,CARjB,8DAWE,SAAU,CAMV,UAAW,CACX,mBAAoB,CACpB,qDAAsD,CACtD,SAAU,CACV,uCAAwC,CArB1C,4SA6BG,UAAW,CACX,oWAQA,UAAW,CACX,wEAKF,qDAAsD,CACtD,6DAGA,SAAU,CC8DX,mCACC,gBAAiB,CACjB,mCAGA,iBAAkB,CAClB,QAAS,CACT,UAAW,CACX,SAAU,CACV,qBAGA,iBAAkB,CAClB,UAAW,CACX,WAAY,CACZ,UAAW,CAEX,iBAAkB,CAElB,kBAAmB,CAEnB,oCACC,gBAAiB,CACjB,qBAID,iBAAkB,CAClB,SAAU,CACV,UAAW\",\"sourcesContent\":[\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n.file,\\n.folder {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\tuser-select: none;\\n\\tborder-radius: var(--border-radius);\\n\\toverflow: hidden;\\n\\n\\t.cover {\\n\\t\\tz-index: 2;\\n\\t\\t// We want nice squares despite anything that is in it.\\n\\t\\t// The .cover is what makes the exact square size of the grid.\\n\\t\\t// We use padding-bottom because padding with percentage\\n\\t\\t// always refers to the width. And we only want to fit\\n\\t\\t// the css grid's width.\\n\\t\\twidth: 100%;\\n\\t\\tpadding-bottom: 100%;\\n\\t\\ttransition: opacity var(--animation-quick) ease-in-out;\\n\\t\\topacity: 0;\\n\\t\\tbackground-color: var(--color-main-text);\\n\\t}\\n\\n\\t&.active,\\n\\t&:active,\\n\\t&:hover,\\n\\t&:focus {\\n\\t\\t.cover {\\n\\t\\t\\topacity: .3;\\n\\t\\t}\\n\\t}\\n\\n\\t&--clear.active,\\n\\t&--clear:active,\\n\\t&--clear:hover,\\n\\t&--clear:focus {\\n\\t\\t.cover {\\n\\t\\t\\topacity: .1;\\n\\t\\t}\\n\\t}\\n}\\n\\n.fade-enter-active, .fade-leave-active {\\n\\ttransition: opacity var(--animation-quick) ease-in-out;\\n}\\n\\n.fade-enter, .fade-leave-to {\\n\\topacity: 0;\\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\\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\\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\\n\\n\\n\\n\\n\\n\\n\\n\\n@import '../mixins/FileFolder.scss';\\n\\n.transition-group {\\n\\tdisplay: contents;\\n}\\n\\n.icon-video-white {\\n\\tposition: absolute;\\n\\ttop: 10px;\\n\\tright: 10px;\\n\\tz-index: 5;\\n}\\n\\nimg {\\n\\tposition: absolute;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\tz-index: 10;\\n\\n\\tcolor: transparent; // should be diplayed on error\\n\\n\\tobject-fit: contain;\\n\\n\\t.file--cropped & {\\n\\t\\tobject-fit: cover;\\n\\t}\\n}\\n\\nsvg {\\n\\tposition: absolute;\\n\\twidth: 70%;\\n\\theight: 70%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".icon-confirm[data-v-4c3113d6]{transform:rotate(180deg)}.photos-navigation[data-v-4c3113d6]{display:flex;position:block;height:44px;padding:0 40px;align-items:center;max-width:100%}.photos-navigation__title[data-v-4c3113d6]{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photos-navigation__share[data-v-4c3113d6]{margin-left:10px}.photos-navigation__back[data-v-4c3113d6],.photos-navigation__share[data-v-4c3113d6]{flex-grow:0;flex-shrink:0}@media (min-width: 0px) and (max-width: 400px){.photos-navigation[data-v-4c3113d6]{top:14.66667px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:-36px}}@media (min-width: 400px) and (max-width: 700px){.photos-navigation[data-v-4c3113d6]{top:14.66667px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:-36px}}@media (min-width: 700px) and (max-width: 1024px){.photos-navigation[data-v-4c3113d6]{top:14.66667px}.photos-navigation__back[data-v-4c3113d6]{margin:0 0px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:0px}}@media (min-width: 1024px) and (max-width: 1280px){.photos-navigation[data-v-4c3113d6]{top:14.66667px}.photos-navigation__back[data-v-4c3113d6]{margin:0 0px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:0px}}@media (min-width: 1280px) and (max-width: 1440px){.photos-navigation[data-v-4c3113d6]{top:29.33333px}.photos-navigation__back[data-v-4c3113d6]{margin:0 11px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:22px}}@media (min-width: 1440px) and (max-width: 1600px){.photos-navigation[data-v-4c3113d6]{top:29.33333px}.photos-navigation__back[data-v-4c3113d6]{margin:0 11px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:22px}}@media (min-width: 1600px) and (max-width: 2048px){.photos-navigation[data-v-4c3113d6]{top:29.33333px}.photos-navigation__back[data-v-4c3113d6]{margin:0 11px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:22px}}@media (min-width: 2048px) and (max-width: 2560px){.photos-navigation[data-v-4c3113d6]{top:29.33333px}.photos-navigation__back[data-v-4c3113d6]{margin:0 22px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:44px}}@media (min-width: 2560px) and (max-width: 3440px){.photos-navigation[data-v-4c3113d6]{top:29.33333px}.photos-navigation__back[data-v-4c3113d6]{margin:0 22px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:44px}}@media (min-width: 3440px){.photos-navigation[data-v-4c3113d6]{top:29.33333px}.photos-navigation__back[data-v-4c3113d6]{margin:0 22px}.photos-navigation--root .photos-navigation__title[data-v-4c3113d6]{padding-left:44px}}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://src/components/Navigation.vue\"],\"names\":[],\"mappings\":\"AAiJA,+BACC,wBAAyB,CACzB,oCAGA,YAAa,CACb,cAAe,CACf,WAAY,CACZ,cAAe,CACf,kBAAmB,CACnB,cAAe,CACf,2CACC,QAAS,CACT,kBAAmB,CACnB,eAAgB,CAChB,sBAAuB,CACvB,2CAEA,gBAAiB,CACjB,qFAGA,WAAY,CACZ,aAAc,CACd,+CAmBA,oCAEC,cAAgC,CAOhC,oEACC,kBAAc,CACd,CAZH,iDACC,oCAEC,cAAgC,CAOhC,oEACC,kBAAc,CACd,CAZH,kDACC,oCAEC,cAAgC,CAG/B,0CACC,YAAiC,CACjC,oEAGD,gBAAc,CACd,CAZH,mDACC,oCAEC,cAAgC,CAG/B,0CACC,YAAiC,CACjC,oEAGD,gBAAc,CACd,CAZH,mDACC,oCAEC,cAAgC,CAG/B,0CACC,aAAiC,CACjC,oEAGD,iBAAc,CACd,CAZH,mDACC,oCAEC,cAAgC,CAG/B,0CACC,aAAiC,CACjC,oEAGD,iBAAc,CACd,CAZH,mDACC,oCAEC,cAAgC,CAG/B,0CACC,aAAiC,CACjC,oEAGD,iBAAc,CACd,CAZH,mDACC,oCAEC,cAAgC,CAG/B,0CACC,aAAiC,CACjC,oEAGD,iBAAc,CACd,CAZH,mDACC,oCAEC,cAAgC,CAG/B,0CACC,aAAiC,CACjC,oEAGD,iBAAc,CACd,CAZH,2BACC,oCAEC,cAAgC,CAG/B,0CACC,aAAiC,CACjC,oEAGD,iBAAc,CACd\",\"sourcesContent\":[\"\\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\\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\\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\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.icon-confirm {\\n\\ttransform: rotate(180deg)\\n}\\n\\n.photos-navigation {\\n\\tdisplay: flex;\\n\\tposition: block;\\n\\theight: 44px;\\n\\tpadding: 0 40px;\\n\\talign-items: center;\\n\\tmax-width: 100%;\\n\\t&__title {\\n\\t\\tmargin: 0;\\n\\t\\twhite-space: nowrap;\\n\\t\\toverflow: hidden;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n\\t&__share {\\n\\t\\tmargin-left: 10px;\\n\\t}\\n\\t&__back,\\n\\t&__share {\\n\\t\\tflex-grow: 0;\\n\\t\\tflex-shrink: 0;\\n\\t}\\n}\\n\\n// generate variants based on grid sizes\\n// TODO: use mixins/GridSizes as soon as node-sass supports it\\n// needs node-sass 5.0 (with libsass 3.6)\\n// https://github.com/sass/node-sass/pull/2312\\n$previous: 0;\\n@each $size, $config in get('sizes') {\\n\\t$marginTop: map-get($config, 'marginTop');\\n\\t$marginW: map-get($config, 'marginW');\\n\\n\\t// if this is the last entry, only use min-width\\n\\t$rule: '(min-width: #{$previous}px) and (max-width: #{$size}px)';\\n\\t@if $size == 'max' {\\n\\t\\t$rule: '(min-width: #{$previous}px)';\\n\\t}\\n\\n\\t@media #{$rule} {\\n\\t\\t.photos-navigation {\\n\\t\\t\\t// we space this with 2/3 margin top, 1/3 margin bottom\\n\\t\\t\\ttop: ($marginTop - 44px) * 2 / 3;\\n\\t\\t\\t// padding-left: $marginW;\\n\\t\\t\\t@if $marginW >= 44px {\\n\\t\\t\\t\\t&__back {\\n\\t\\t\\t\\t\\tmargin: 0 (($marginW - 44px) / 2);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t&--root &__title {\\n\\t\\t\\t\\tpadding-left: #{$marginW - 44}px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\t$previous: $size;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n"],"sourceRoot":""} \ No newline at end of file diff --git a/js/photos-1.js b/js/photos-1.js index 03f9a894a..2cbc23d42 100644 --- a/js/photos-1.js +++ b/js/photos-1.js @@ -4,7 +4,7 @@ * (c) 2015-present Evan You * @license MIT */ -function l(t){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function u(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function g(t){return function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e1&&void 0!==arguments[1]?arguments[1]:{};e.name=e.name||t._componentTag||t.name;var n=t.prototype;Object.getOwnPropertyNames(n).forEach((function(t){if("constructor"!==t)if(b.indexOf(t)>-1)e[t]=n[t];else{var A=Object.getOwnPropertyDescriptor(n,t);void 0!==A.value?"function"==typeof A.value?(e.methods||(e.methods={}))[t]=A.value:(e.mixins||(e.mixins=[])).push({data:function(){return u({},t,A.value)}}):(A.get||A.set)&&((e.computed||(e.computed={}))[t]={get:A.get,set:A.set})}})),(e.mixins||(e.mixins=[])).push({data:function(){return C(this,t)}});var A=t.__decorators__;A&&(A.forEach((function(t){return t(e)})),delete t.__decorators__);var o=Object.getPrototypeOf(t.prototype),i=o instanceof c.a?o.constructor:c.a,r=i.extend(e);return B(r,t,i),d()&&m(r,t),r}var v={prototype:!0,arguments:!0,callee:!0,caller:!0};function B(t,e,n){Object.getOwnPropertyNames(e).forEach((function(A){if(!v[A]){var o=Object.getOwnPropertyDescriptor(t,A);if(!o||o.configurable){var i,r,a=Object.getOwnPropertyDescriptor(e,A);if(!f){if("cid"===A)return;var s=Object.getOwnPropertyDescriptor(n,A);if(i=a.value,r=l(i),null!=i&&("object"===r||"function"===r)&&s&&s.value===a.value)return}0,Object.defineProperty(t,A,a)}}}))}function w(t){return"function"==typeof t?y(t):function(e){return y(e,t)}}w.registerHooks=function(t){b.push.apply(b,g(t))};var M=w;function I(t){return"function"!=typeof t||!t.managed&&!t.managedReactive}function E(t){var e=function(){var n=this,A="function"==typeof t?t.call(this):t;for(var o in(A=Object.create(A||null))[S]=Object.create(this[S]||{}),e.managed)A[e.managed[o]]=this[o];var i=function(t){A[e.managedReactive[t]]=r[t],Object.defineProperty(A[S],e.managedReactive[t],{enumerable:!0,configurable:!0,get:function(){return n[t]}})},r=this;for(var o in e.managedReactive)i(o);return A};return e.managed={},e.managedReactive={},e}var S="__reactiveInject__";function x(t){Array.isArray(t.inject)||(t.inject=t.inject||{},t.inject[S]={from:S,default:{}})}var T="undefined"!=typeof Reflect&&void 0!==Reflect.getMetadata;function N(t,e,n){if(T&&!Array.isArray(t)&&"function"!=typeof t&&!t.hasOwnProperty("type")&&void 0===t.type){var A=Reflect.getMetadata("design:type",e,n);A!==Object&&(t.type=A)}}function D(t){return void 0===t&&(t={}),function(e,n){N(t,e,n),h((function(e,n){(e.props||(e.props={}))[n]=t}))(e,n)}}function k(t){return h((function(e,n){var A=e.provide;x(e),I(A)&&(A=e.provide=E(A)),A.managedReactive[n]=t||n}))}const j=(t,e)=>t>720&&e>480?10:5,z=t=>Math.floor(t/250),Q=t=>Math.round(1.5*t),O=(t,e,n)=>{const A=t/e;return Math.round(n*A)},P=(t,...e)=>{t&&console.debug(...e)};var L,U;let Y=class extends c.a{constructor(){super(...arguments),this.updateLock=!1,this.bottomReached=!1,this.ref=null,this.containerData={windowSize:{height:0,width:0},windowScroll:{x:0,y:0},elementWindowOffset:0,elementSize:{height:0,width:0}}}get loadingBatch(){return this.loader&&this.updateLock}get configData(){return this.computeConfigData(this.containerData,this.items)}get layoutData(){return this.computeLayoutData(this.configData)}get renderData(){return this.computeRenderData(this.configData,this.containerData,this.layoutData)}mounted(){this.ref=this.$refs.virtualGrid,this.initiliazeGrid(),window.addEventListener("resize",this.resize),window.addEventListener("scroll",this.scroll)}beforeDestroy(){window.removeEventListener("resize",this.resize),window.removeEventListener("scroll",this.scroll)}resize(){this.loadMoreData()}scroll(){this.loadMoreData()}initiliazeGrid(){this.computeContainerData(),this.$nextTick(async()=>{this.loadMoreData()})}loadMoreData(){this.loadMoreDataAsync().catch(t=>{t&&console.error("Fail to load next data batch",t)}).then()}async loadMoreDataAsync(){this.computeContainerData();const t=this.containerData.windowScroll.y+this.containerData.windowSize.height,e=Math.max(0,this.containerData.elementWindowOffset+this.containerData.elementSize.height-this.updateTriggerMargin);if(!this.bottomReached&&t>=e&&!this.updateLock){this.updateLock=!0,P(this.debug,"Loading next batch");await this.updateFunction()&&(P(this.debug,"Bottom reached"),this.bottomReached=!0),this.updateLock=!1,await this.loadMoreDataAsync()}}computeContainerData(){if(null===this.ref)return;const t=this.getWindowSize(),e=this.getWindowScroll(),n=this.getElementOffset(this.ref),A=this.getElementSize(this.ref);this.containerData={windowSize:t,windowScroll:e,elementWindowOffset:n,elementSize:A}}computeConfigData(t,e){if(null===t||null===e)return{windowMargin:0,gridGap:0,columnCount:1,entries:[]};const n=t.elementSize?t.elementSize.width:null,A=this.getWindowMargin(t.windowSize.height),o=this.getGridGap(n,t.windowSize.height),i=this.getColumnCount(n),r=this.getColumnWidth(i,o,n),a=e.map(t=>{if(!t.width)return t;const e=r*t.columnSpan+o*(t.columnSpan-1);return{...t,height:this.getItemRatioHeight(t.height,t.width,e),width:e}});return{windowMargin:A,gridGap:o,columnCount:i,entries:a}}computeLayoutData(t){if(null===t)return{cells:[],totalHeight:0};let e=1,n=0,A=0,o=0;return{cells:t.entries.map((i,r)=>{const{columnCount:a,gridGap:s}=t;let c=i.columnSpan,l=i.height;c<1&&(c=a);const u=(r+o)%a;i.newRow&&0!==u&&(o+=a-u);const g=r+o,d=g%a+1,m=Math.floor(g/a)+1;if(d+c>a+1){const t=d+c-a-1;l*=1-t/c,c-=t}c>1&&(o+=c-1),m!==e&&(e=m,n+=A+s,A=0);const p=n,f=Math.round(l);return A=Math.max(A,f),{...i,columnNumber:d,rowNumber:m,offset:p,height:f,columnSpan:c}}),totalHeight:n+A}}computeRenderData(t,e,n){if(null===n||null===t)return{cellsToRender:[],firstRenderedRowNumber:0,firstRenderedRowOffset:0};const A=[];let o=null,i=null;if(null!==e.elementWindowOffset){const r=e.elementWindowOffset;for(const a of n.cells){const n=r+a.offset,s=n+a.height,c=e.windowScroll.y,l=c+e.windowSize.height,u=c-t.windowMargin;n>l+t.windowMargin||(s()=>!0}),a("design:type",Function)],Y.prototype,"updateFunction",void 0),r([D({default:()=>j}),a("design:type",Function)],Y.prototype,"getGridGap",void 0),r([D({default:()=>z}),a("design:type",Function)],Y.prototype,"getColumnCount",void 0),r([D({default:()=>Q}),a("design:type",Function)],Y.prototype,"getWindowMargin",void 0),r([D({default:()=>O}),a("design:type",Function)],Y.prototype,"getItemRatioHeight",void 0),r([D({default:500}),a("design:type",Number)],Y.prototype,"updateTriggerMargin",void 0),r([D({default:null}),a("design:type","function"==typeof(L=void 0!==c.a&&c.a.Component)?L:Object)],Y.prototype,"loader",void 0),r([D({default:!1}),a("design:type",Boolean)],Y.prototype,"debug",void 0),r([k(),a("design:type",Boolean)],Y.prototype,"updateLock",void 0),r([k(),a("design:type",Boolean)],Y.prototype,"bottomReached",void 0),r([k(),a("design:type","function"==typeof(U="undefined"!=typeof Element&&Element)?U:Object)],Y.prototype,"ref",void 0),r([k(),a("design:type",Object)],Y.prototype,"containerData",void 0),Y=r([M],Y);var F=Y;n("c489");var G=function(t,e,n,A,o,i,r,a){var s,c="function"==typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=n,c._compiled=!0),A&&(c.functional=!0),i&&(c._scopeId="data-v-"+i),r?(s=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),o&&o.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(r)},c._ssrRegister=s):o&&(s=a?function(){o.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:o),s)if(c.functional){c._injectStyles=s;var l=c.render;c.render=function(t,e){return s.call(e),l(t,e)}}else{var u=c.beforeCreate;c.beforeCreate=u?[].concat(u,s):[s]}return{exports:t,options:c}}(F,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{ref:"virtualGrid",style:{boxSizing:"border-box",height:t.layoutData.totalHeight+"px",paddingTop:null!==t.renderData&&null!==t.renderData.firstRenderedRowOffset?t.renderData.firstRenderedRowOffset+"px":"0px"}},[n("div",{staticClass:"grid",style:{"grid-template-columns":"repeat("+t.configData.columnCount+", 1fr)",gap:t.configData.gridGap+"px"}},t._l(t.renderData.cellsToRender,(function(e){return n("div",{key:e.id,style:{height:e.height,"grid-column-start":e.columnNumber,"grid-column-end":e.columnNumber+e.columnSpan,"grid-row-start":t.getGridRowStart(e,t.renderData)}},[n(e.renderComponent,t._g({tag:"component",attrs:{item:e}},t.$listeners))],1)})),0),n(t.loadingBatch&&t.loader,{tag:"component"})],1)}),[],!1,null,"24e4d634",null).exports;e.default=G}})},671:function(t,e,n){window,t.exports=function(t){var e={};function n(A){if(e[A])return e[A].exports;var o=e[A]={i:A,l:!1,exports:{}};return t[A].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,A){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:A})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var A=Object.create(null);if(n.r(A),Object.defineProperty(A,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(A,o,function(e){return t[e]}.bind(null,o));return A},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="/dist/",n(n.s=73)}([function(t,e,n){"use strict";function A(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t)){var n=[],A=!0,o=!1,i=void 0;try{for(var r,a=t[Symbol.iterator]();!(A=(r=a.next()).done)&&(n.push(r.value),!e||n.length!==e);A=!0);}catch(t){o=!0,i=t}finally{try{A||null==a.return||a.return()}finally{if(o)throw i}}return n}}(t,e)||function(t,e){if(t){if("string"==typeof t)return o(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,A=new Array(e);n1&&void 0!==arguments[1]?arguments[1]:{};e.name=e.name||t._componentTag||t.name;var n=t.prototype;Object.getOwnPropertyNames(n).forEach((function(t){if("constructor"!==t)if(b.indexOf(t)>-1)e[t]=n[t];else{var A=Object.getOwnPropertyDescriptor(n,t);void 0!==A.value?"function"==typeof A.value?(e.methods||(e.methods={}))[t]=A.value:(e.mixins||(e.mixins=[])).push({data:function(){return u({},t,A.value)}}):(A.get||A.set)&&((e.computed||(e.computed={}))[t]={get:A.get,set:A.set})}})),(e.mixins||(e.mixins=[])).push({data:function(){return C(this,t)}});var A=t.__decorators__;A&&(A.forEach((function(t){return t(e)})),delete t.__decorators__);var o=Object.getPrototypeOf(t.prototype),i=o instanceof c.a?o.constructor:c.a,r=i.extend(e);return B(r,t,i),d()&&m(r,t),r}var v={prototype:!0,arguments:!0,callee:!0,caller:!0};function B(t,e,n){Object.getOwnPropertyNames(e).forEach((function(A){if(!v[A]){var o=Object.getOwnPropertyDescriptor(t,A);if(!o||o.configurable){var i,r,a=Object.getOwnPropertyDescriptor(e,A);if(!f){if("cid"===A)return;var s=Object.getOwnPropertyDescriptor(n,A);if(i=a.value,r=l(i),null!=i&&("object"===r||"function"===r)&&s&&s.value===a.value)return}0,Object.defineProperty(t,A,a)}}}))}function w(t){return"function"==typeof t?y(t):function(e){return y(e,t)}}w.registerHooks=function(t){b.push.apply(b,g(t))};var M=w;function I(t){return"function"!=typeof t||!t.managed&&!t.managedReactive}function E(t){var e=function(){var n=this,A="function"==typeof t?t.call(this):t;for(var o in(A=Object.create(A||null))[S]=Object.create(this[S]||{}),e.managed)A[e.managed[o]]=this[o];var i=function(t){A[e.managedReactive[t]]=r[t],Object.defineProperty(A[S],e.managedReactive[t],{enumerable:!0,configurable:!0,get:function(){return n[t]}})},r=this;for(var o in e.managedReactive)i(o);return A};return e.managed={},e.managedReactive={},e}var S="__reactiveInject__";function x(t){Array.isArray(t.inject)||(t.inject=t.inject||{},t.inject[S]={from:S,default:{}})}var T="undefined"!=typeof Reflect&&void 0!==Reflect.getMetadata;function N(t,e,n){if(T&&!Array.isArray(t)&&"function"!=typeof t&&!t.hasOwnProperty("type")&&void 0===t.type){var A=Reflect.getMetadata("design:type",e,n);A!==Object&&(t.type=A)}}function D(t){return void 0===t&&(t={}),function(e,n){N(t,e,n),h((function(e,n){(e.props||(e.props={}))[n]=t}))(e,n)}}function k(t){return h((function(e,n){var A=e.provide;x(e),I(A)&&(A=e.provide=E(A)),A.managedReactive[n]=t||n}))}const j=(t,e)=>t>720&&e>480?10:5,z=t=>Math.floor(t/250),Q=t=>Math.round(1.5*t),O=(t,e,n)=>{const A=t/e;return Math.round(n*A)},P=(t,...e)=>{t&&console.debug(...e)};var L,U;let Y=class extends c.a{constructor(){super(...arguments),this.updateLock=!1,this.bottomReached=!1,this.ref=null,this.containerData={windowSize:{height:0,width:0},windowScroll:{x:0,y:0},elementWindowOffset:0,elementSize:{height:0,width:0}}}get loadingBatch(){return this.loader&&this.updateLock}get configData(){return this.computeConfigData(this.containerData,this.items)}get layoutData(){return this.computeLayoutData(this.configData)}get renderData(){return this.computeRenderData(this.configData,this.containerData,this.layoutData)}mounted(){this.ref=this.$refs.virtualGrid,this.initiliazeGrid(),window.addEventListener("resize",this.resize),window.addEventListener("scroll",this.scroll)}beforeDestroy(){window.removeEventListener("resize",this.resize),window.removeEventListener("scroll",this.scroll)}resize(){this.loadMoreData()}scroll(){this.loadMoreData()}initiliazeGrid(){this.computeContainerData(),this.$nextTick(async()=>{this.loadMoreData()})}loadMoreData(){this.loadMoreDataAsync().catch(t=>{t&&console.error("Fail to load next data batch",t)}).then()}async loadMoreDataAsync(){this.computeContainerData();const t=this.containerData.windowScroll.y+this.containerData.windowSize.height,e=Math.max(0,this.containerData.elementWindowOffset+this.containerData.elementSize.height-this.updateTriggerMargin);if(!this.bottomReached&&t>=e&&!this.updateLock){this.updateLock=!0,P(this.debug,"Loading next batch");await this.updateFunction()&&(P(this.debug,"Bottom reached"),this.bottomReached=!0),this.updateLock=!1,await this.loadMoreDataAsync()}}computeContainerData(){if(null===this.ref)return;const t=this.getWindowSize(),e=this.getWindowScroll(),n=this.getElementOffset(this.ref),A=this.getElementSize(this.ref);this.containerData={windowSize:t,windowScroll:e,elementWindowOffset:n,elementSize:A}}computeConfigData(t,e){if(null===t||null===e)return{windowMargin:0,gridGap:0,columnCount:1,entries:[]};const n=t.elementSize?t.elementSize.width:null,A=this.getWindowMargin(t.windowSize.height),o=this.getGridGap(n,t.windowSize.height),i=this.getColumnCount(n),r=this.getColumnWidth(i,o,n),a=e.map(t=>{if(!t.width)return t;const e=r*t.columnSpan+o*(t.columnSpan-1);return{...t,height:this.getItemRatioHeight(t.height,t.width,e),width:e}});return{windowMargin:A,gridGap:o,columnCount:i,entries:a}}computeLayoutData(t){if(null===t)return{cells:[],totalHeight:0};let e=1,n=0,A=0,o=0;return{cells:t.entries.map((i,r)=>{const{columnCount:a,gridGap:s}=t;let c=i.columnSpan,l=i.height;c<1&&(c=a);const u=(r+o)%a;i.newRow&&0!==u&&(o+=a-u);const g=r+o,d=g%a+1,m=Math.floor(g/a)+1;if(d+c>a+1){const t=d+c-a-1;l*=1-t/c,c-=t}c>1&&(o+=c-1),m!==e&&(e=m,n+=A+s,A=0);const p=n,f=Math.round(l);return A=Math.max(A,f),{...i,columnNumber:d,rowNumber:m,offset:p,height:f,columnSpan:c}}),totalHeight:n+A}}computeRenderData(t,e,n){if(null===n||null===t)return{cellsToRender:[],firstRenderedRowNumber:0,firstRenderedRowOffset:0};const A=[];let o=null,i=null;if(null!==e.elementWindowOffset){const r=e.elementWindowOffset;for(const a of n.cells){const n=r+a.offset,s=n+a.height,c=e.windowScroll.y,l=c+e.windowSize.height,u=c-t.windowMargin;n>l+t.windowMargin||(s()=>!0}),a("design:type",Function)],Y.prototype,"updateFunction",void 0),r([D({default:()=>j}),a("design:type",Function)],Y.prototype,"getGridGap",void 0),r([D({default:()=>z}),a("design:type",Function)],Y.prototype,"getColumnCount",void 0),r([D({default:()=>Q}),a("design:type",Function)],Y.prototype,"getWindowMargin",void 0),r([D({default:()=>O}),a("design:type",Function)],Y.prototype,"getItemRatioHeight",void 0),r([D({default:500}),a("design:type",Number)],Y.prototype,"updateTriggerMargin",void 0),r([D({default:null}),a("design:type","function"==typeof(L=void 0!==c.a&&c.a.Component)?L:Object)],Y.prototype,"loader",void 0),r([D({default:!1}),a("design:type",Boolean)],Y.prototype,"debug",void 0),r([k(),a("design:type",Boolean)],Y.prototype,"updateLock",void 0),r([k(),a("design:type",Boolean)],Y.prototype,"bottomReached",void 0),r([k(),a("design:type","function"==typeof(U="undefined"!=typeof Element&&Element)?U:Object)],Y.prototype,"ref",void 0),r([k(),a("design:type",Object)],Y.prototype,"containerData",void 0),Y=r([M],Y);var F=Y;n("c489");var G=function(t,e,n,A,o,i,r,a){var s,c="function"==typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=n,c._compiled=!0),A&&(c.functional=!0),i&&(c._scopeId="data-v-"+i),r?(s=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),o&&o.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(r)},c._ssrRegister=s):o&&(s=a?function(){o.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:o),s)if(c.functional){c._injectStyles=s;var l=c.render;c.render=function(t,e){return s.call(e),l(t,e)}}else{var u=c.beforeCreate;c.beforeCreate=u?[].concat(u,s):[s]}return{exports:t,options:c}}(F,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{ref:"virtualGrid",style:{boxSizing:"border-box",height:t.layoutData.totalHeight+"px",paddingTop:null!==t.renderData&&null!==t.renderData.firstRenderedRowOffset?t.renderData.firstRenderedRowOffset+"px":"0px"}},[n("div",{staticClass:"grid",style:{"grid-template-columns":"repeat("+t.configData.columnCount+", 1fr)",gap:t.configData.gridGap+"px"}},t._l(t.renderData.cellsToRender,(function(e){return n("div",{key:e.id,style:{height:e.height,"grid-column-start":e.columnNumber,"grid-column-end":e.columnNumber+e.columnSpan,"grid-row-start":t.getGridRowStart(e,t.renderData)}},[n(e.renderComponent,t._g({tag:"component",attrs:{item:e}},t.$listeners))],1)})),0),n(t.loadingBatch&&t.loader,{tag:"component"})],1)}),[],!1,null,"24e4d634",null).exports;e.default=G}})},663:function(t,e,n){window,t.exports=function(t){var e={};function n(A){if(e[A])return e[A].exports;var o=e[A]={i:A,l:!1,exports:{}};return t[A].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,A){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:A})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var A=Object.create(null);if(n.r(A),Object.defineProperty(A,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(A,o,function(e){return t[e]}.bind(null,o));return A},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="/dist/",n(n.s=73)}([function(t,e,n){"use strict";function A(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t)){var n=[],A=!0,o=!1,i=void 0;try{for(var r,a=t[Symbol.iterator]();!(A=(r=a.next()).done)&&(n.push(r.value),!e||n.length!==e);A=!0);}catch(t){o=!0,i=t}finally{try{A||null==a.return||a.return()}finally{if(o)throw i}}return n}}(t,e)||function(t,e){if(t){if("string"==typeof t)return o(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,A=new Array(e);n * @@ -48,7 +48,7 @@ A.VTooltip.options.defaultTemplate='