From 58b35b749d0ff6efb07b859c93045ba4729eb4e3 Mon Sep 17 00:00:00 2001 From: Alessandro Pasotti Date: Mon, 28 Jun 2021 16:20:29 +0200 Subject: [PATCH] Server landing page: fix relative service links For metadata when using QGIS_SERVER_LANDING_PAGE_PREFIX --- ...4add.0889ca49.css => chunk-e7ca2a40.0c5dbbc5.css} | 2 +- .../server/api/ogc/static/landingpage/index.html | 2 +- .../js/{app.fc7d2f48.js => app.f9f4e567.js} | 4 ++-- .../js/{app.fc7d2f48.js.map => app.f9f4e567.js.map} | 2 +- .../static/landingpage/js/chunk-23874add.1912a0b5.js | 2 -- .../landingpage/js/chunk-23874add.1912a0b5.js.map | 1 - .../static/landingpage/js/chunk-e7ca2a40.c6c8ec03.js | 2 ++ .../landingpage/js/chunk-e7ca2a40.c6c8ec03.js.map | 1 + resources/server/src/landingpage/README.md | 2 ++ .../src/landingpage/src/components/Metadata.vue | 12 ++++++------ 10 files changed, 16 insertions(+), 14 deletions(-) rename resources/server/api/ogc/static/landingpage/css/{chunk-23874add.0889ca49.css => chunk-e7ca2a40.0c5dbbc5.css} (95%) rename resources/server/api/ogc/static/landingpage/js/{app.fc7d2f48.js => app.f9f4e567.js} (94%) rename resources/server/api/ogc/static/landingpage/js/{app.fc7d2f48.js.map => app.f9f4e567.js.map} (98%) delete mode 100644 resources/server/api/ogc/static/landingpage/js/chunk-23874add.1912a0b5.js delete mode 100644 resources/server/api/ogc/static/landingpage/js/chunk-23874add.1912a0b5.js.map create mode 100644 resources/server/api/ogc/static/landingpage/js/chunk-e7ca2a40.c6c8ec03.js create mode 100644 resources/server/api/ogc/static/landingpage/js/chunk-e7ca2a40.c6c8ec03.js.map diff --git a/resources/server/api/ogc/static/landingpage/css/chunk-23874add.0889ca49.css b/resources/server/api/ogc/static/landingpage/css/chunk-e7ca2a40.0c5dbbc5.css similarity index 95% rename from resources/server/api/ogc/static/landingpage/css/chunk-23874add.0889ca49.css rename to resources/server/api/ogc/static/landingpage/css/chunk-e7ca2a40.0c5dbbc5.css index 29478c9f147..b04689a1353 100644 --- a/resources/server/api/ogc/static/landingpage/css/chunk-23874add.0889ca49.css +++ b/resources/server/api/ogc/static/landingpage/css/chunk-e7ca2a40.0c5dbbc5.css @@ -1 +1 @@ -dt[data-v-2c58573b]{font-weight:700}.leaflet-container[data-v-603d1f06]{height:20rem}.card-footer .btn[data-v-603d1f06]{margin-right:.5em}h4.loading[data-v-603d1f06]{margin-top:.35em}.metadata[data-v-603d1f06]{z-index:1001}.v-footer[data-v-603d1f06]{height:1.5rem}.v-dialog{border-radius:4px;margin:24px;overflow-y:auto;pointer-events:auto;transition:.3s cubic-bezier(.25,.8,.25,1);width:100%;z-index:inherit;box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)}.v-dialog:not(.v-dialog--fullscreen){max-height:90%}.v-dialog>*{width:100%}.v-dialog>.v-card>.v-card__title{font-size:1.25rem;font-weight:500;letter-spacing:.0125em;padding:16px 24px 10px}.v-dialog>.v-card>.v-card__subtitle,.v-dialog>.v-card>.v-card__text{padding:0 24px 20px}.v-dialog__content{align-items:center;display:flex;height:100%;justify-content:center;left:0;pointer-events:none;position:fixed;top:0;transition:.2s cubic-bezier(.25,.8,.25,1),z-index 1ms;width:100%;z-index:6;outline:none}.v-dialog__container{display:none}.v-dialog__container--attached{display:inline}.v-dialog--animated{-webkit-animation-duration:.15s;animation-duration:.15s;-webkit-animation-name:animate-dialog;animation-name:animate-dialog;-webkit-animation-timing-function:cubic-bezier(.25,.8,.25,1);animation-timing-function:cubic-bezier(.25,.8,.25,1)}.v-dialog--fullscreen{border-radius:0;margin:0;height:100%;position:fixed;overflow-y:auto;top:0;left:0}.v-dialog--fullscreen>.v-card{min-height:100%;min-width:100%;margin:0!important;padding:0!important}.v-dialog--scrollable,.v-dialog--scrollable>form{display:flex}.v-dialog--scrollable>.v-card,.v-dialog--scrollable>form>.v-card{display:flex;flex:1 1 100%;flex-direction:column;max-height:100%;max-width:100%}.v-dialog--scrollable>.v-card>.v-card__actions,.v-dialog--scrollable>.v-card>.v-card__title,.v-dialog--scrollable>form>.v-card>.v-card__actions,.v-dialog--scrollable>form>.v-card>.v-card__title{flex:0 0 auto}.v-dialog--scrollable>.v-card>.v-card__text,.v-dialog--scrollable>form>.v-card>.v-card__text{-webkit-backface-visibility:hidden;backface-visibility:hidden;flex:1 1 auto;overflow-y:auto}@-webkit-keyframes animate-dialog{0%{transform:scale(1)}50%{transform:scale(1.03)}to{transform:scale(1)}}@keyframes animate-dialog{0%{transform:scale(1)}50%{transform:scale(1.03)}to{transform:scale(1)}} \ No newline at end of file +dt[data-v-3899b65a]{font-weight:700}.leaflet-container[data-v-603d1f06]{height:20rem}.card-footer .btn[data-v-603d1f06]{margin-right:.5em}h4.loading[data-v-603d1f06]{margin-top:.35em}.metadata[data-v-603d1f06]{z-index:1001}.v-footer[data-v-603d1f06]{height:1.5rem}.v-dialog{border-radius:4px;margin:24px;overflow-y:auto;pointer-events:auto;transition:.3s cubic-bezier(.25,.8,.25,1);width:100%;z-index:inherit;box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)}.v-dialog:not(.v-dialog--fullscreen){max-height:90%}.v-dialog>*{width:100%}.v-dialog>.v-card>.v-card__title{font-size:1.25rem;font-weight:500;letter-spacing:.0125em;padding:16px 24px 10px}.v-dialog>.v-card>.v-card__subtitle,.v-dialog>.v-card>.v-card__text{padding:0 24px 20px}.v-dialog__content{align-items:center;display:flex;height:100%;justify-content:center;left:0;pointer-events:none;position:fixed;top:0;transition:.2s cubic-bezier(.25,.8,.25,1),z-index 1ms;width:100%;z-index:6;outline:none}.v-dialog__container{display:none}.v-dialog__container--attached{display:inline}.v-dialog--animated{-webkit-animation-duration:.15s;animation-duration:.15s;-webkit-animation-name:animate-dialog;animation-name:animate-dialog;-webkit-animation-timing-function:cubic-bezier(.25,.8,.25,1);animation-timing-function:cubic-bezier(.25,.8,.25,1)}.v-dialog--fullscreen{border-radius:0;margin:0;height:100%;position:fixed;overflow-y:auto;top:0;left:0}.v-dialog--fullscreen>.v-card{min-height:100%;min-width:100%;margin:0!important;padding:0!important}.v-dialog--scrollable,.v-dialog--scrollable>form{display:flex}.v-dialog--scrollable>.v-card,.v-dialog--scrollable>form>.v-card{display:flex;flex:1 1 100%;flex-direction:column;max-height:100%;max-width:100%}.v-dialog--scrollable>.v-card>.v-card__actions,.v-dialog--scrollable>.v-card>.v-card__title,.v-dialog--scrollable>form>.v-card>.v-card__actions,.v-dialog--scrollable>form>.v-card>.v-card__title{flex:0 0 auto}.v-dialog--scrollable>.v-card>.v-card__text,.v-dialog--scrollable>form>.v-card>.v-card__text{-webkit-backface-visibility:hidden;backface-visibility:hidden;flex:1 1 auto;overflow-y:auto}@-webkit-keyframes animate-dialog{0%{transform:scale(1)}50%{transform:scale(1.03)}to{transform:scale(1)}}@keyframes animate-dialog{0%{transform:scale(1)}50%{transform:scale(1.03)}to{transform:scale(1)}} \ No newline at end of file diff --git a/resources/server/api/ogc/static/landingpage/index.html b/resources/server/api/ogc/static/landingpage/index.html index 7760f79e4d0..6e48d58e5e8 100644 --- a/resources/server/api/ogc/static/landingpage/index.html +++ b/resources/server/api/ogc/static/landingpage/index.html @@ -1 +1 @@ -app
\ No newline at end of file +app
\ No newline at end of file diff --git a/resources/server/api/ogc/static/landingpage/js/app.fc7d2f48.js b/resources/server/api/ogc/static/landingpage/js/app.f9f4e567.js similarity index 94% rename from resources/server/api/ogc/static/landingpage/js/app.fc7d2f48.js rename to resources/server/api/ogc/static/landingpage/js/app.f9f4e567.js index 1d376106fe7..d47b6c8b4a1 100644 --- a/resources/server/api/ogc/static/landingpage/js/app.fc7d2f48.js +++ b/resources/server/api/ogc/static/landingpage/js/app.f9f4e567.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var n,a,u=t[0],i=t[1],s=t[2],f=0,l=[];f\n \n \n \n\n\n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=06073f6c&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\ninstallComponents(component, {VApp})\n","/**\n * Store\n *\n * Author: elpaso@itopen.it\n * Date: 2020-06-30\n * Copyright: Copyright 2020, ItOpen\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n */\nimport Vue from \"vue\"\nimport Vuex from \"vuex\"\n\nVue.use(Vuex)\n\nexport default new Vuex.Store({\n state: {\n catalog: [],\n projects: {},\n attributeTableTypename: \"\",\n tocs: {},\n error: \"\",\n status: \"loading\",\n activeTool: \"\",\n identifyResults: {},\n baseMap: \"\",\n mapScaleDenominator: 1,\n },\n mutations: {\n setCatalog(state, payload) {\n state.catalog = payload\n },\n setBaseMap(state, payload) {\n state.baseMap = payload\n },\n setStatus(state, payload) {\n state.status = payload\n },\n setActiveTool(state, payload) {\n state.activeTool = payload\n },\n setError(state, payload) {\n state.error = payload\n },\n clearError(state) {\n state.error = \"\"\n },\n clearIdentifyResults(state) {\n state.identifyResults = {}\n },\n setProject(state, project) {\n Vue.set(state.projects, project.id, project)\n },\n setToc(state, { projectId, toc }) {\n Vue.set(state.tocs, projectId, toc)\n },\n setIdentifyResults(state, { identifyResults }) {\n state.identifyResults = identifyResults\n },\n setAttributeTableLayerTypename(state, tree_hash_id) {\n state.attributeTableTypename = tree_hash_id\n },\n clearAttributeTableTypename(state) {\n state.attributeTableTypename = \"\"\n },\n setMapScaleDenominator(state, mapScaleDenominator) {\n state.mapScaleDenominator = mapScaleDenominator\n },\n },\n actions: {\n async getCatalog({ commit }) {\n try {\n fetch(`./index.json`)\n .then((response) => {\n if (!response) {\n throw Error(`Error fetching data from QGIS Server`)\n }\n if (!response.ok) {\n throw Error(response.statusText)\n }\n return response\n })\n .then((response) => response.json())\n .then((json) => {\n json.projects.forEach((element) => {\n element.show = false\n })\n commit(\"setCatalog\", json.projects)\n commit(\"setStatus\", json.projects.length ? `projects` : `empty`)\n })\n .catch((error) => {\n commit(\"setError\", error.message)\n })\n } catch (error) {\n commit(\"setError\", error.message)\n }\n },\n async getProject({ commit }, projectId) {\n try {\n fetch(`./map/${projectId}.json`)\n .then((response) => {\n if (!response) {\n throw Error(`Error fetching data from QGIS Server`)\n }\n if (!response.ok) {\n throw Error(response.statusText)\n }\n return response\n })\n .then((response) => response.json())\n .then((json) => {\n commit(\"setProject\", json.project)\n commit(\"setStatus\", `project`)\n })\n .catch((error) => {\n commit(\"setError\", error.message)\n })\n } catch (error) {\n commit(\"setError\", error.message)\n }\n },\n setStatus({ commit }, status) {\n commit(\"setStatus\", status)\n },\n /**\n * Fetches the TOC style icons from GetLegendGraphics\n */\n async getToc({ commit }, payload) {\n let toc_url = `./project/${payload.projectId}/?SERVICE=WMS&REQUEST=GetLegendGraphics&LAYERS=${payload.layers}&FORMAT=application/json`\n fetch(toc_url)\n .then(this.handleErrors)\n .then((response) => response.json())\n .then((toc) => {\n commit(\"setToc\", { projectId: payload.projectId, toc })\n })\n .catch((error) => {\n commit(\"setError\", error.message)\n })\n },\n /*,\n async getIdentifyResults({ commit }, payload) {\n let toc_url = payload.url\n fetch(toc_url)\n .then(this.handleErrors)\n .then((response) => response.json())\n .then((identifyResults) => {\n commit(\"setIdentifyResults\", { projectId: payload.projectId, identifyResults })\n })\n .catch((error) => {\n commit(\"setError\", error.message)\n })\n },*/\n },\n})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n});\n","/**\n * Landing page app entry point\n *\n * Author: elpaso@itopen.it\n * Date: 2020-06-30\n * Copyright: Copyright 2020, ItOpen\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n */\nimport Vue from \"vue\"\nimport VueRouter from \"vue-router\"\nimport App from \"@/App.vue\"\nimport store from \"@/store\"\n\nimport vuetify from \"./plugins/vuetify\"\n\nVue.config.productionTip = false\n\n// Routing\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: \"/\",\n name: \"catalog\",\n component: () => import(\"@/views/Catalog.vue\"),\n meta: {\n title: \"QGIS Server Catalog - Home Page\",\n metaTags: [\n {\n name: \"description\",\n content: \"List of available projects in QGIS Server catalog.\",\n },\n ],\n },\n },\n {\n path: \"/map/:projectId\",\n name: \"map\",\n component: () => import(\"@/views/WebGis.vue\"),\n props: true,\n meta: {\n title: \"QGIS Server Project\",\n metaTags: [\n {\n name: \"description\",\n content: \"QGIS Server Project\",\n },\n ],\n },\n },\n]\n\nconst router = new VueRouter({\n routes, // short for `routes: routes`\n})\n\n// This callback runs before every route change, including on page load.\nrouter.beforeEach((to, from, next) => {\n // This goes through the matched routes from last to first, finding the closest route with a title.\n // eg. if we have /some/deep/nested/route and /some, /deep, and /nested have titles, nested's will be chosen.\n const nearestWithTitle = to.matched\n .slice()\n .reverse()\n .find((r) => r.meta && r.meta.title)\n\n // Find the nearest route element with meta tags.\n const nearestWithMeta = to.matched\n .slice()\n .reverse()\n .find((r) => r.meta && r.meta.metaTags)\n\n // If a route with a title was found, set the document (page) title to that value.\n if (nearestWithTitle) document.title = nearestWithTitle.meta.title\n\n // Remove any stale meta tags from the document using the key attribute we set below.\n Array.from(document.querySelectorAll(\"[data-vue-router-controlled]\")).map((el) => el.parentNode.removeChild(el))\n\n // Skip rendering meta tags if there are none.\n if (!nearestWithMeta) return next()\n\n // Turn the meta tag definitions into actual elements in the head.\n nearestWithMeta.meta.metaTags\n .map((tagDef) => {\n const tag = document.createElement(\"meta\")\n\n Object.keys(tagDef).forEach((key) => {\n tag.setAttribute(key, tagDef[key])\n })\n\n // We use this to track which meta tags we create, so we don't interfere with other ones.\n tag.setAttribute(\"data-vue-router-controlled\", \"\")\n\n return tag\n })\n // Add the meta tags to the document head.\n .forEach((tag) => document.head.appendChild(tag))\n\n next()\n})\n\nnew Vue({\n router,\n vuetify,\n store,\n render: (h) => h(App),\n}).$mount(\"#app\")\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?0f16","webpack:///./src/App.vue?9f68","webpack:///src/App.vue","webpack:///./src/App.vue?3359","webpack:///./src/App.vue?2667","webpack:///./src/store.js","webpack:///./src/plugins/vuetify.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","attrs","staticRenderFns","component","VApp","Vue","use","Vuex","Store","state","catalog","projects","attributeTableTypename","tocs","status","activeTool","identifyResults","baseMap","mapScaleDenominator","mutations","setCatalog","payload","setBaseMap","setStatus","setActiveTool","setError","clearError","clearIdentifyResults","setProject","project","set","id","setToc","projectId","toc","setIdentifyResults","setAttributeTableLayerTypename","tree_hash_id","clearAttributeTableTypename","setMapScaleDenominator","actions","getCatalog","commit","fetch","response","ok","statusText","json","forEach","element","show","catch","getProject","getToc","toc_url","layers","handleErrors","Vuetify","config","productionTip","VueRouter","routes","path","meta","title","metaTags","content","props","router","beforeEach","to","from","next","nearestWithTitle","matched","reverse","find","nearestWithMeta","Array","querySelectorAll","map","el","tagDef","keys","vuetify","store","render","h","App","$mount"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAGnBC,EAAqB,CACxB,IAAO,GAMJjB,EAAkB,CACrB,IAAO,GAGJK,EAAkB,GAGtB,SAASa,EAAe7B,GACvB,OAAOyB,EAAoBK,EAAI,OAAS,GAAG9B,IAAUA,GAAW,IAAM,CAAC,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,YAAYA,GAAW,MAIxK,SAASyB,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAUgC,QAGnC,IAAIC,EAASL,EAAiB5B,GAAY,CACzCK,EAAGL,EACHkC,GAAG,EACHF,QAAS,IAUV,OANAlB,EAAQd,GAAUW,KAAKsB,EAAOD,QAASC,EAAQA,EAAOD,QAASN,GAG/DO,EAAOC,GAAI,EAGJD,EAAOD,QAKfN,EAAoBS,EAAI,SAAuBlC,GAC9C,IAAImC,EAAW,GAIXC,EAAY,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,GACrER,EAAmB5B,GAAUmC,EAASvB,KAAKgB,EAAmB5B,IACzB,IAAhC4B,EAAmB5B,IAAkBoC,EAAUpC,IACtDmC,EAASvB,KAAKgB,EAAmB5B,GAAW,IAAIqC,SAAQ,SAASC,EAASC,GAIzE,IAHA,IAAIC,EAAO,QAAU,GAAGxC,IAAUA,GAAW,IAAM,CAAC,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,YAAYA,GAAW,OAChJyC,EAAWhB,EAAoBK,EAAIU,EACnCE,EAAmBC,SAASC,qBAAqB,QAC7CxC,EAAI,EAAGA,EAAIsC,EAAiBpC,OAAQF,IAAK,CAChD,IAAIyC,EAAMH,EAAiBtC,GACvB0C,EAAWD,EAAIE,aAAa,cAAgBF,EAAIE,aAAa,QACjE,GAAe,eAAZF,EAAIG,MAAyBF,IAAaN,GAAQM,IAAaL,GAAW,OAAOH,IAErF,IAAIW,EAAoBN,SAASC,qBAAqB,SACtD,IAAQxC,EAAI,EAAGA,EAAI6C,EAAkB3C,OAAQF,IAAK,CAC7CyC,EAAMI,EAAkB7C,GACxB0C,EAAWD,EAAIE,aAAa,aAChC,GAAGD,IAAaN,GAAQM,IAAaL,EAAU,OAAOH,IAEvD,IAAIY,EAAUP,SAASQ,cAAc,QACrCD,EAAQF,IAAM,aACdE,EAAQE,KAAO,WACfF,EAAQG,OAASf,EACjBY,EAAQI,QAAU,SAASC,GAC1B,IAAIC,EAAUD,GAASA,EAAME,QAAUF,EAAME,OAAOC,KAAOjB,EACvDkB,EAAM,IAAIC,MAAM,qBAAuB5D,EAAU,cAAgBwD,EAAU,KAC/EG,EAAIE,KAAO,wBACXF,EAAIH,QAAUA,SACP5B,EAAmB5B,GAC1BkD,EAAQY,WAAWC,YAAYb,GAC/BX,EAAOoB,IAERT,EAAQV,KAAOC,EAEf,IAAIuB,EAAOrB,SAASC,qBAAqB,QAAQ,GACjDoB,EAAKC,YAAYf,MACfgB,MAAK,WACPtC,EAAmB5B,GAAW,MAMhC,IAAImE,EAAqBxD,EAAgBX,GACzC,GAA0B,IAAvBmE,EAGF,GAAGA,EACFhC,EAASvB,KAAKuD,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAI/B,SAAQ,SAASC,EAASC,GAC3C4B,EAAqBxD,EAAgBX,GAAW,CAACsC,EAASC,MAE3DJ,EAASvB,KAAKuD,EAAmB,GAAKC,GAGtC,IACIC,EADAC,EAAS3B,SAASQ,cAAc,UAGpCmB,EAAOC,QAAU,QACjBD,EAAOE,QAAU,IACb/C,EAAoBgD,IACvBH,EAAOI,aAAa,QAASjD,EAAoBgD,IAElDH,EAAOZ,IAAM7B,EAAe7B,GAG5B,IAAI2E,EAAQ,IAAIf,MAChBS,EAAmB,SAAUd,GAE5Be,EAAOhB,QAAUgB,EAAOjB,OAAS,KACjCuB,aAAaJ,GACb,IAAIK,EAAQlE,EAAgBX,GAC5B,GAAa,IAAV6E,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYvB,IAAyB,SAAfA,EAAMH,KAAkB,UAAYG,EAAMH,MAChE2B,EAAUxB,GAASA,EAAME,QAAUF,EAAME,OAAOC,IACpDiB,EAAMK,QAAU,iBAAmBhF,EAAU,cAAgB8E,EAAY,KAAOC,EAAU,IAC1FJ,EAAMM,KAAO,iBACbN,EAAMvB,KAAO0B,EACbH,EAAMnB,QAAUuB,EAChBF,EAAM,GAAGF,GAEVhE,EAAgBX,QAAWkF,IAG7B,IAAIV,EAAUW,YAAW,WACxBd,EAAiB,CAAEjB,KAAM,UAAWK,OAAQa,MAC1C,MACHA,EAAOhB,QAAUgB,EAAOjB,OAASgB,EACjC1B,SAASqB,KAAKC,YAAYK,GAG5B,OAAOjC,QAAQ+C,IAAIjD,IAIpBV,EAAoB4D,EAAIxE,EAGxBY,EAAoB6D,EAAI3D,EAGxBF,EAAoB8D,EAAI,SAASxD,EAASkD,EAAMO,GAC3C/D,EAAoBgE,EAAE1D,EAASkD,IAClC1E,OAAOmF,eAAe3D,EAASkD,EAAM,CAAEU,YAAY,EAAMC,IAAKJ,KAKhE/D,EAAoBoE,EAAI,SAAS9D,GACX,qBAAX+D,QAA0BA,OAAOC,aAC1CxF,OAAOmF,eAAe3D,EAAS+D,OAAOC,YAAa,CAAEC,MAAO,WAE7DzF,OAAOmF,eAAe3D,EAAS,aAAc,CAAEiE,OAAO,KAQvDvE,EAAoBwE,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQvE,EAAoBuE,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAK7F,OAAO8F,OAAO,MAGvB,GAFA5E,EAAoBoE,EAAEO,GACtB7F,OAAOmF,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOvE,EAAoB8D,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIR3E,EAAoB+E,EAAI,SAASxE,GAChC,IAAIwD,EAASxD,GAAUA,EAAOmE,WAC7B,WAAwB,OAAOnE,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAP,EAAoB8D,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR/D,EAAoBgE,EAAI,SAASgB,EAAQC,GAAY,OAAOnG,OAAOC,UAAUC,eAAeC,KAAK+F,EAAQC,IAGzGjF,EAAoBK,EAAI,GAGxBL,EAAoBkF,GAAK,SAAShD,GAA2B,MAApBiD,QAAQjC,MAAMhB,GAAYA,GAEnE,IAAIkD,EAAaC,OAAO,gBAAkBA,OAAO,iBAAmB,GAChEC,EAAmBF,EAAWjG,KAAK2F,KAAKM,GAC5CA,EAAWjG,KAAOf,EAClBgH,EAAaA,EAAWG,QACxB,IAAI,IAAI5G,EAAI,EAAGA,EAAIyG,EAAWvG,OAAQF,IAAKP,EAAqBgH,EAAWzG,IAC3E,IAAIU,EAAsBiG,EAI1B/F,EAAgBJ,KAAK,CAAC,EAAE,kBAEjBM,K,6EC1QT,yBAAwb,EAAG,G,yMCAvb,EAAS,WAAa,IAAI+F,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACE,MAAM,CAAC,GAAK,QAAQ,CAACF,EAAG,gBAAgB,IAChJG,EAAkB,GCmBtB,GACEvC,KAAM,OCrBsT,I,yDCQ1TwC,EAAY,eACd,EACA,EACAD,GACA,EACA,KACA,KACA,MAIa,EAAAC,EAAiB,QAKhC,IAAkBA,EAAW,CAACC,OAAA,O,gDCR9BC,OAAIC,IAAIC,QAEO,UAAIA,OAAKC,MAAM,CAC5BC,MAAO,CACLC,QAAS,GACTC,SAAU,GACVC,uBAAwB,GACxBC,KAAM,GACNxD,MAAO,GACPyD,OAAQ,UACRC,WAAY,GACZC,gBAAiB,GACjBC,QAAS,GACTC,oBAAqB,GAEvBC,UAAW,CACTC,WADS,SACEX,EAAOY,GAChBZ,EAAMC,QAAUW,GAElBC,WAJS,SAIEb,EAAOY,GAChBZ,EAAMQ,QAAUI,GAElBE,UAPS,SAOCd,EAAOY,GACfZ,EAAMK,OAASO,GAEjBG,cAVS,SAUKf,EAAOY,GACnBZ,EAAMM,WAAaM,GAErBI,SAbS,SAaAhB,EAAOY,GACdZ,EAAMpD,MAAQgE,GAEhBK,WAhBS,SAgBEjB,GACTA,EAAMpD,MAAQ,IAEhBsE,qBAnBS,SAmBYlB,GACnBA,EAAMO,gBAAkB,IAE1BY,WAtBS,SAsBEnB,EAAOoB,GAChBxB,OAAIyB,IAAIrB,EAAME,SAAUkB,EAAQE,GAAIF,IAEtCG,OAzBS,SAyBFvB,EAzBE,GAyByB,IAAlBwB,EAAkB,EAAlBA,UAAWC,EAAO,EAAPA,IACzB7B,OAAIyB,IAAIrB,EAAMI,KAAMoB,EAAWC,IAEjCC,mBA5BS,SA4BU1B,EA5BV,GA4BsC,IAAnBO,EAAmB,EAAnBA,gBAC1BP,EAAMO,gBAAkBA,GAE1BoB,+BA/BS,SA+BsB3B,EAAO4B,GACpC5B,EAAMG,uBAAyByB,GAEjCC,4BAlCS,SAkCmB7B,GAC1BA,EAAMG,uBAAyB,IAEjC2B,uBArCS,SAqCc9B,EAAOS,GAC5BT,EAAMS,oBAAsBA,IAGhCsB,QAAS,CACDC,WADC,YACsB,mJAAVC,EAAU,EAAVA,OACjB,IACEC,MAAM,gBACH/F,MAAK,SAACgG,GACL,IAAKA,EACH,MAAMtG,MAAM,wCAEd,IAAKsG,EAASC,GACZ,MAAMvG,MAAMsG,EAASE,YAEvB,OAAOF,KAERhG,MAAK,SAACgG,GAAD,OAAcA,EAASG,UAC5BnG,MAAK,SAACmG,GACLA,EAAKpC,SAASqC,SAAQ,SAACC,GACrBA,EAAQC,MAAO,KAEjBR,EAAO,aAAcK,EAAKpC,UAC1B+B,EAAO,YAAaK,EAAKpC,SAAS3H,OAAd,uBAErBmK,OAAM,SAAC9F,GACNqF,EAAO,WAAYrF,EAAMK,YAE7B,MAAOL,GACPqF,EAAO,WAAYrF,EAAMK,SAxBA,8CA2BvB0F,WA5BC,WA4BsBnB,GAAW,mJAArBS,EAAqB,EAArBA,OACjB,IACEC,MAAM,SAAD,OAAUV,EAAV,UACFrF,MAAK,SAACgG,GACL,IAAKA,EACH,MAAMtG,MAAM,wCAEd,IAAKsG,EAASC,GACZ,MAAMvG,MAAMsG,EAASE,YAEvB,OAAOF,KAERhG,MAAK,SAACgG,GAAD,OAAcA,EAASG,UAC5BnG,MAAK,SAACmG,GACLL,EAAO,aAAcK,EAAKlB,SAC1Ba,EAAO,YAAD,cAEPS,OAAM,SAAC9F,GACNqF,EAAO,WAAYrF,EAAMK,YAE7B,MAAOL,GACPqF,EAAO,WAAYrF,EAAMK,SArBW,8CAwBxC6D,UApDO,WAoDeT,GAAQ,IAAlB4B,EAAkB,EAAlBA,OACVA,EAAO,YAAa5B,IAKhBuC,OA1DC,WA0DkBhC,GAAS,gKAAnBqB,EAAmB,EAAnBA,OACTY,EAD4B,oBACLjC,EAAQY,UADH,0DAC8DZ,EAAQkC,OADtE,4BAEhCZ,MAAMW,GACH1G,KAAK,EAAK4G,cACV5G,MAAK,SAACgG,GAAD,OAAcA,EAASG,UAC5BnG,MAAK,SAACsF,GACLQ,EAAO,SAAU,CAAET,UAAWZ,EAAQY,UAAWC,WAElDiB,OAAM,SAAC9F,GACNqF,EAAO,WAAYrF,EAAMK,YATG,iD,YC/HtC2C,OAAIC,IAAImD,QAEO,UAAIA,OAAQ,ICe3BpD,OAAIqD,OAAOC,eAAgB,EAG3BtD,OAAIC,IAAIsD,QAER,IAAMC,EAAS,CACb,CACEC,KAAM,IACNnG,KAAM,UACNwC,UAAW,kBAAM,sFACjB4D,KAAM,CACJC,MAAO,kCACPC,SAAU,CACR,CACEtG,KAAM,cACNuG,QAAS,yDAKjB,CACEJ,KAAM,kBACNnG,KAAM,MACNwC,UAAW,kBAAM,sFACjBgE,OAAO,EACPJ,KAAM,CACJC,MAAO,sBACPC,SAAU,CACR,CACEtG,KAAM,cACNuG,QAAS,2BAObE,EAAS,IAAIR,OAAU,CAC3BC,WAIFO,EAAOC,YAAW,SAACC,EAAIC,EAAMC,GAG3B,IAAMC,EAAmBH,EAAGI,QACzBhF,QACAiF,UACAC,MAAK,SAACrG,GAAD,OAAOA,EAAEwF,MAAQxF,EAAEwF,KAAKC,SAG1Ba,EAAkBP,EAAGI,QACxBhF,QACAiF,UACAC,MAAK,SAACrG,GAAD,OAAOA,EAAEwF,MAAQxF,EAAEwF,KAAKE,YAShC,GANIQ,IAAkBpJ,SAAS2I,MAAQS,EAAiBV,KAAKC,OAG7Dc,MAAMP,KAAKlJ,SAAS0J,iBAAiB,iCAAiCC,KAAI,SAACC,GAAD,OAAQA,EAAGzI,WAAWC,YAAYwI,OAGvGJ,EAAiB,OAAOL,IAG7BK,EAAgBd,KAAKE,SAClBe,KAAI,SAACE,GACJ,IAAM3J,EAAMF,SAASQ,cAAc,QASnC,OAPA5C,OAAOkM,KAAKD,GAAQlC,SAAQ,SAAChE,GAC3BzD,EAAI6B,aAAa4B,EAAKkG,EAAOlG,OAI/BzD,EAAI6B,aAAa,6BAA8B,IAExC7B,KAGRyH,SAAQ,SAACzH,GAAD,OAASF,SAASqB,KAAKC,YAAYpB,MAE9CiJ,OAGF,IAAInE,OAAI,CACN+D,SACAgB,UACAC,QACAC,OAAQ,SAACC,GAAD,OAAOA,EAAEC,MAChBC,OAAO,S","file":"js/app.f9f4e567.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-123bc409\":\"ec41f71a\",\"chunk-a28d6c70\":\"7ed0c6db\",\"chunk-e7ca2a40\":\"c6c8ec03\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-123bc409\":1,\"chunk-a28d6c70\":1,\"chunk-e7ca2a40\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-123bc409\":\"8679d8ba\",\"chunk-a28d6c70\":\"162a27d1\",\"chunk-e7ca2a40\":\"0c5dbbc5\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',{attrs:{\"id\":\"app\"}},[_c('router-view')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * Main app wrapper\n *\n * Author: elpaso@itopen.it\n * Date: 2020-06-30\n * Copyright: Copyright 2020, ItOpen\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n */\n\n\n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=06073f6c&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\ninstallComponents(component, {VApp})\n","/**\n * Store\n *\n * Author: elpaso@itopen.it\n * Date: 2020-06-30\n * Copyright: Copyright 2020, ItOpen\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n */\nimport Vue from \"vue\"\nimport Vuex from \"vuex\"\n\nVue.use(Vuex)\n\nexport default new Vuex.Store({\n state: {\n catalog: [],\n projects: {},\n attributeTableTypename: \"\",\n tocs: {},\n error: \"\",\n status: \"loading\",\n activeTool: \"\",\n identifyResults: {},\n baseMap: \"\",\n mapScaleDenominator: 1,\n },\n mutations: {\n setCatalog(state, payload) {\n state.catalog = payload\n },\n setBaseMap(state, payload) {\n state.baseMap = payload\n },\n setStatus(state, payload) {\n state.status = payload\n },\n setActiveTool(state, payload) {\n state.activeTool = payload\n },\n setError(state, payload) {\n state.error = payload\n },\n clearError(state) {\n state.error = \"\"\n },\n clearIdentifyResults(state) {\n state.identifyResults = {}\n },\n setProject(state, project) {\n Vue.set(state.projects, project.id, project)\n },\n setToc(state, { projectId, toc }) {\n Vue.set(state.tocs, projectId, toc)\n },\n setIdentifyResults(state, { identifyResults }) {\n state.identifyResults = identifyResults\n },\n setAttributeTableLayerTypename(state, tree_hash_id) {\n state.attributeTableTypename = tree_hash_id\n },\n clearAttributeTableTypename(state) {\n state.attributeTableTypename = \"\"\n },\n setMapScaleDenominator(state, mapScaleDenominator) {\n state.mapScaleDenominator = mapScaleDenominator\n },\n },\n actions: {\n async getCatalog({ commit }) {\n try {\n fetch(`./index.json`)\n .then((response) => {\n if (!response) {\n throw Error(`Error fetching data from QGIS Server`)\n }\n if (!response.ok) {\n throw Error(response.statusText)\n }\n return response\n })\n .then((response) => response.json())\n .then((json) => {\n json.projects.forEach((element) => {\n element.show = false\n })\n commit(\"setCatalog\", json.projects)\n commit(\"setStatus\", json.projects.length ? `projects` : `empty`)\n })\n .catch((error) => {\n commit(\"setError\", error.message)\n })\n } catch (error) {\n commit(\"setError\", error.message)\n }\n },\n async getProject({ commit }, projectId) {\n try {\n fetch(`./map/${projectId}.json`)\n .then((response) => {\n if (!response) {\n throw Error(`Error fetching data from QGIS Server`)\n }\n if (!response.ok) {\n throw Error(response.statusText)\n }\n return response\n })\n .then((response) => response.json())\n .then((json) => {\n commit(\"setProject\", json.project)\n commit(\"setStatus\", `project`)\n })\n .catch((error) => {\n commit(\"setError\", error.message)\n })\n } catch (error) {\n commit(\"setError\", error.message)\n }\n },\n setStatus({ commit }, status) {\n commit(\"setStatus\", status)\n },\n /**\n * Fetches the TOC style icons from GetLegendGraphics\n */\n async getToc({ commit }, payload) {\n let toc_url = `./project/${payload.projectId}/?SERVICE=WMS&REQUEST=GetLegendGraphics&LAYERS=${payload.layers}&FORMAT=application/json`\n fetch(toc_url)\n .then(this.handleErrors)\n .then((response) => response.json())\n .then((toc) => {\n commit(\"setToc\", { projectId: payload.projectId, toc })\n })\n .catch((error) => {\n commit(\"setError\", error.message)\n })\n },\n /*,\n async getIdentifyResults({ commit }, payload) {\n let toc_url = payload.url\n fetch(toc_url)\n .then(this.handleErrors)\n .then((response) => response.json())\n .then((identifyResults) => {\n commit(\"setIdentifyResults\", { projectId: payload.projectId, identifyResults })\n })\n .catch((error) => {\n commit(\"setError\", error.message)\n })\n },*/\n },\n})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n});\n","/**\n * Landing page app entry point\n *\n * Author: elpaso@itopen.it\n * Date: 2020-06-30\n * Copyright: Copyright 2020, ItOpen\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n */\nimport Vue from \"vue\"\nimport VueRouter from \"vue-router\"\nimport App from \"@/App.vue\"\nimport store from \"@/store\"\n\nimport vuetify from \"./plugins/vuetify\"\n\nVue.config.productionTip = false\n\n// Routing\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: \"/\",\n name: \"catalog\",\n component: () => import(\"@/views/Catalog.vue\"),\n meta: {\n title: \"QGIS Server Catalog - Home Page\",\n metaTags: [\n {\n name: \"description\",\n content: \"List of available projects in QGIS Server catalog.\",\n },\n ],\n },\n },\n {\n path: \"/map/:projectId\",\n name: \"map\",\n component: () => import(\"@/views/WebGis.vue\"),\n props: true,\n meta: {\n title: \"QGIS Server Project\",\n metaTags: [\n {\n name: \"description\",\n content: \"QGIS Server Project\",\n },\n ],\n },\n },\n]\n\nconst router = new VueRouter({\n routes, // short for `routes: routes`\n})\n\n// This callback runs before every route change, including on page load.\nrouter.beforeEach((to, from, next) => {\n // This goes through the matched routes from last to first, finding the closest route with a title.\n // eg. if we have /some/deep/nested/route and /some, /deep, and /nested have titles, nested's will be chosen.\n const nearestWithTitle = to.matched\n .slice()\n .reverse()\n .find((r) => r.meta && r.meta.title)\n\n // Find the nearest route element with meta tags.\n const nearestWithMeta = to.matched\n .slice()\n .reverse()\n .find((r) => r.meta && r.meta.metaTags)\n\n // If a route with a title was found, set the document (page) title to that value.\n if (nearestWithTitle) document.title = nearestWithTitle.meta.title\n\n // Remove any stale meta tags from the document using the key attribute we set below.\n Array.from(document.querySelectorAll(\"[data-vue-router-controlled]\")).map((el) => el.parentNode.removeChild(el))\n\n // Skip rendering meta tags if there are none.\n if (!nearestWithMeta) return next()\n\n // Turn the meta tag definitions into actual elements in the head.\n nearestWithMeta.meta.metaTags\n .map((tagDef) => {\n const tag = document.createElement(\"meta\")\n\n Object.keys(tagDef).forEach((key) => {\n tag.setAttribute(key, tagDef[key])\n })\n\n // We use this to track which meta tags we create, so we don't interfere with other ones.\n tag.setAttribute(\"data-vue-router-controlled\", \"\")\n\n return tag\n })\n // Add the meta tags to the document head.\n .forEach((tag) => document.head.appendChild(tag))\n\n next()\n})\n\nnew Vue({\n router,\n vuetify,\n store,\n render: (h) => h(App),\n}).$mount(\"#app\")\n"],"sourceRoot":""} \ No newline at end of file diff --git a/resources/server/api/ogc/static/landingpage/js/chunk-23874add.1912a0b5.js b/resources/server/api/ogc/static/landingpage/js/chunk-23874add.1912a0b5.js deleted file mode 100644 index 1a834bdf8f4..00000000000 --- a/resources/server/api/ogc/static/landingpage/js/chunk-23874add.1912a0b5.js +++ /dev/null @@ -1,2 +0,0 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-23874add"],{"12c7":function(t,e,i){},"247d":function(t,e,i){"use strict";i.r(e);var a=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-app",{attrs:{id:"catalog"}},["loading"==t.status&&0==t.error.length?i("v-overlay",{attrs:{light:""}},[i("v-progress-circular",{attrs:{indeterminate:"",color:"lime",size:"64"}})],1):t._e(),i("v-app-bar",{attrs:{app:"",dense:"","hide-on-scroll":"",color:"green",dark:""}},[i("v-toolbar-title",[t._v("QGIS Server Catalog")]),i("v-spacer")],1),i("v-main",[t.catalog?i("v-container",{staticClass:"fill-height",attrs:{id:"catalog",fluid:""}},[t.error.length>0||"empty"==t.status?i("v-row",{attrs:{align:"center"}},[i("v-col",{attrs:{cols:"12"}},[t.error.length>0?i("Error",{attrs:{error:t.error}}):t._e(),"empty"==t.status?i("v-alert",{attrs:{type:"warning"}},[i("h2",[t._v("This QGIS Server catalog does not contain any project.")]),i("p",[t._v(" The projects (.QGS and .QGZ files) are searched in directories set by the environment variable "),i("code",[t._v("QGIS_SERVER_LANDING_PAGE_PROJECTS_DIRECTORIES")]),t._v(" (multiple paths can be specified by joining them with "),i("code",[t._v("||")]),t._v("). ")]),i("p",[t._v(" Example: "),i("br"),i("code",[t._v("QGIS_SERVER_LANDING_PAGE_PROJECTS_DIRECTORIES=/path/to/my/projects||/another_path/to/my/projects")])]),i("p",[t._v(" Postgres projects are searched in the connections set by the environment variable "),i("code",[t._v("QGIS_SERVER_LANDING_PAGE_PROJECTS_PG_CONNECTIONS")]),t._v(" (multiple connections can be specified by joining them with "),i("code",[t._v("||")]),t._v("). ")]),i("p",[t._v(" Example: "),i("br"),i("code",[t._v("QGIS_SERVER_LANDING_PAGE_PROJECTS_PG_CONNECTIONS=postgresql://myusername:mypassword@myhost:myport?sslmode=disable&dbname=mydatabase&schema=public")])])]):t._e()],1)],1):t._e(),t.catalog?t._l(t.catalog,(function(e){return i("v-card",{key:e.identifier,staticClass:"mx-auto mb-4",attrs:{"max-width":"800","min-width":"400"}},[i("l-map",{ref:"mapid-"+e.id,refInFor:!0,on:{ready:function(i){return t.loadMap(e,i)}}},[e.capabilities.wmsOutputCrsList.includes("EPSG:3857")?i("l-tile-layer",{attrs:{url:"https://tile.openstreetmap.org/{z}/{x}/{y}.png"}}):t._e()],1),i("v-card-title",[t._v(t._s(e.title))]),e.description?i("v-card-subtitle",{staticClass:"description"},[t._v(t._s(e.description))]):t._e(),i("v-card-actions",[i("v-dialog",{staticClass:"metadata",attrs:{scrollable:"","max-width":"800px"},scopedSlots:t._u([{key:"activator",fn:function(e){var a=e.on;return[i("v-btn",t._g({attrs:{color:"orange",text:""}},a),[i("v-icon",[t._v("mdi-information")]),t._v("Metadata ")],1)]}}],null,!0),model:{value:e.show,callback:function(i){t.$set(e,"show",i)},expression:"project.show"}},[i("v-card",[i("v-card-title",[t._v(t._s(e.title))]),i("v-divider"),i("v-card-text",{staticStyle:{height:"300px"}},[i("Metadata",{attrs:{project:e}})],1),i("v-divider"),i("v-card-actions",[i("v-btn",{attrs:{color:"blue darken-1",text:""},on:{click:function(t){e.show=!1}}},[t._v("Close")])],1)],1)],1),i("v-btn",{attrs:{color:"orange",text:"",to:{name:"map",params:{projectId:e.id}}}},[i("v-icon",[t._v("mdi-map")]),t._v("Browse ")],1)],1)],1)})):t._e()],2):t._e()],1),i("v-footer",{attrs:{color:"lime",app:""}})],1)},n=[],s=i("2699"),r=i("a40a"),o=(i("6cc5"),i("e11e")),c=i("7e9c"),l=i.n(c),d=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-tabs",[i("v-tab",{attrs:{href:"#general-"+t.project.id}},[t._v("General")]),i("v-tab-item",{attrs:{value:"general-"+t.project.id}},[i("v-card",{attrs:{flat:"",tile:""}},[i("v-card-text",[t._l(t.project.metadata,(function(e,a){return["categories"==a||"history"==a?[e.length?[i("dt",{key:t.uniqueKey(a+"k")},[t._v(t._s(t._f("camelTitle")(a)))]),i("dd",{key:t.uniqueKey(a+"v")},t._l(e,(function(e){return i("ul",{key:t.uniqueKey(e)},[i("li",{key:t.uniqueKey(e)},[t._v(t._s(e))])])})),0)]:t._e()]:"links"!=a&&"contacts"!=a&&e?[i("dt",{key:t.uniqueKey(a)},[t._v(t._s(t._f("camelTitle")(a)))]),i("dd",{key:t.uniqueKey(e)},[t._v(t._s(e))])]:t._e()]}))],2)],1)],1),t.project.metadata.contacts.legth>0?[i("v-tab",{attrs:{href:"#contacts-"+t.project.id}},[t._v("Contacts")]),t.project.metadata.contacts?i("v-tab-item",{attrs:{value:"contacts-"+t.project.id}},[i("v-card",{attrs:{flat:"",tile:""}},[i("v-card-text",[t._l(t.project.metadata.contacts,(function(e){return[i("h5",{key:t.uniqueKey(e.name)},[t._v(t._s(e.name))]),i("dl",{key:t.uniqueKey(e.name)},[t._l(e,(function(e,a){return["addresses"!=a&&"name"!=a&&e?[i("dt",{key:t.uniqueKey(a)},[t._v(t._s(t._f("camelTitle")(a)))]),i("dd",{key:t.uniqueKey(e)},[t._v(t._s(e))])]:t._e()]}))],2),t._l(e.addresses,(function(e){return[i("dl",{key:t.uniqueKey(e.name),staticClass:"address"},[t._l(e,(function(e,a){return[e?[i("dt",{key:t.uniqueKey(a)},[t._v(t._s(t._f("camelTitle")(a)))]),i("dd",{key:t.uniqueKey(e)},[t._v(t._s(e))])]:t._e()]}))],2)]}))]}))],2)],1)],1):t._e()]:t._e(),t.project.metadata.links.legth>0?[i("v-tab",{attrs:{href:"#links-"+t.project.id}},[t._v("Links")]),t.project.metadata.links?i("v-tab-item",{attrs:{value:"links-"+t.project.id}},[i("v-card",{attrs:{flat:"",tile:""}},[i("v-card-text",t._l(t.project.metadata.links,(function(e){return i("ul",{key:t.uniqueKey(e.url)},[i("li",[i("a",{attrs:{href:e.url}},[t._v(t._s(e.name))]),t._v(" — "+t._s(e.description)+" ")])])})),0)],1)],1):t._e()]:t._e(),i("v-tab",{attrs:{href:"#services-"+t.project.id}},[t._v("Services")]),i("v-tab-item",{attrs:{value:"services-"+t.project.id}},[i("v-card",{attrs:{flat:"",tile:""}},[i("v-card-text",[i("v-list",[i("v-list-item-group",[t.project.capabilities.wfsLayerIds.length?[i("v-list-item",{attrs:{href:"/project/"+t.project.id+"/wfs3"}},[i("v-list-item-content",[i("v-list-item-title",[t._v("OAPIF/WFS3")])],1)],1),i("v-list-item",{attrs:{href:"/project/"+t.project.id+"/?SERVICE=WFS&REQUEST=GetCapabilities"}},[i("v-list-item-content",[i("v-list-item-title",[t._v("WFS GetCapabilities")])],1)],1)]:t._e(),i("v-list-item",{attrs:{href:"/project/"+t.project.id+"/?SERVICE=WMS&REQUEST=GetCapabilities"}},[i("v-list-item-content",[i("v-list-item-title",[t._v("WMS GetCapabilities")])],1)],1)],2)],1)],1)],1)],1)],2)},u=[],h=(i("a15b"),i("fb6a"),i("ac1f"),i("5319"),i("1276"),i("c64e")),v={props:{project:Object},filters:{camelTitle:function(t){t=t.replace(/([A-Z])/g," $1").toLowerCase().split(" ");for(var e=0;e=this.getMaxZIndex()},hideScroll:function(){this.fullscreen?document.documentElement.classList.add("overflow-y-hidden"):W["a"].options.methods.hideScroll.call(this)},show:function(){var t=this;!this.fullscreen&&!this.hideOverlay&&this.genOverlay(),this.$nextTick((function(){t.$refs.content.focus(),t.bind()}))},bind:function(){window.addEventListener("focusin",this.onFocusin)},unbind:function(){window.removeEventListener("focusin",this.onFocusin)},onClickOutside:function(t){this.$emit("click:outside",t),this.persistent?this.noClickAnimation||this.animateClick():this.isActive=!1},onKeydown:function(t){if(t.keyCode===Y["w"].esc&&!this.getOpenDependents().length)if(this.persistent)this.noClickAnimation||this.animateClick();else{this.isActive=!1;var e=this.getActivator();this.$nextTick((function(){return e&&e.focus()}))}this.$emit("keydown",t)},onFocusin:function(t){if(t&&this.retainFocus){var e=t.target;if(e&&![document,this.$refs.content].includes(e)&&!this.$refs.content.contains(e)&&this.activeZIndex>=this.getMaxZIndex()&&!this.getOpenDependentElements().some((function(t){return t.contains(e)}))){var i=this.$refs.content.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'),a=Object(N["a"])(i).find((function(t){return!t.hasAttribute("disabled")}));a&&a.focus()}}},genContent:function(){var t=this;return this.showLazyContent((function(){return[t.$createElement(D["a"],{props:{root:!0,light:t.light,dark:t.dark}},[t.$createElement("div",{class:t.contentClasses,attrs:Object(K["a"])({role:"document",tabindex:t.isActive?0:void 0},t.getScopeIdAttrs()),on:{keydown:t.onKeydown},style:{zIndex:t.activeZIndex},ref:"content"},[t.genTransition()])])]}))},genTransition:function(){var t=this.genInnerContent();return this.transition?this.$createElement("transition",{props:{name:this.transition,origin:this.origin,appear:!0}},[t]):t},genInnerContent:function(){var t={class:this.classes,ref:"dialog",directives:[{name:"click-outside",value:{handler:this.onClickOutside,closeConditional:this.closeConditional,include:this.getOpenDependentElements}},{name:"show",value:this.isActive}],style:{transformOrigin:this.origin}};return this.fullscreen||(t.style=Object(K["a"])(Object(K["a"])({},t.style),{},{maxWidth:"none"===this.maxWidth?void 0:Object(Y["g"])(this.maxWidth),width:"auto"===this.width?void 0:Object(Y["g"])(this.width)})),this.$createElement("div",t,this.getContentSlot())}},render:function(t){return t("div",{staticClass:"v-dialog__container",class:{"v-dialog__container--attached":""===this.attach||!0===this.attach||"attach"===this.attach},attrs:{role:"dialog"}},[this.genActivator(),this.genContent()])}}),it=i("ce7e"),at=i("553a"),nt=i("132d"),st=i("f6c4"),rt=i("a797"),ot=i("490a"),ct=i("0fd9"),lt=i("2fa4"),dt=i("2a7f"),ut=Object(f["a"])(A,a,n,!1,null,"603d1f06",null);e["default"]=ut.exports;_()(ut,{VAlert:$["a"],VApp:G["a"],VAppBar:L["a"],VBtn:B["a"],VCard:g["a"],VCardActions:b["a"],VCardSubtitle:b["b"],VCardText:b["c"],VCardTitle:b["d"],VCol:R["a"],VContainer:q["a"],VDialog:et,VDivider:it["a"],VFooter:at["a"],VIcon:nt["a"],VMain:st["a"],VOverlay:rt["a"],VProgressCircular:ot["a"],VRow:ct["a"],VSpacer:lt["a"],VToolbarTitle:dt["a"]})},"26c2":function(t,e,i){},"368e":function(t,e,i){},"554e":function(t,e,i){"use strict";var a=i("12c7"),n=i.n(a);n.a},ae52:function(t,e,i){"use strict";var a=i("26c2"),n=i.n(a);n.a}}]); -//# sourceMappingURL=chunk-23874add.1912a0b5.js.map \ No newline at end of file diff --git a/resources/server/api/ogc/static/landingpage/js/chunk-23874add.1912a0b5.js.map b/resources/server/api/ogc/static/landingpage/js/chunk-23874add.1912a0b5.js.map deleted file mode 100644 index d1f9ce09d25..00000000000 --- a/resources/server/api/ogc/static/landingpage/js/chunk-23874add.1912a0b5.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./src/views/Catalog.vue?c7a3","webpack:///./src/components/Metadata.vue?1645","webpack:///src/components/Metadata.vue","webpack:///./src/components/Metadata.vue?ac3f","webpack:///./src/components/Metadata.vue?62d1","webpack:///src/views/Catalog.vue","webpack:///./src/views/Catalog.vue?adf9","webpack:///../../../src/components/VDialog/VDialog.ts","webpack:///./src/views/Catalog.vue?3cd1","webpack:///./src/views/Catalog.vue?1ad9","webpack:///./src/components/Metadata.vue?62a8"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","status","error","length","_e","_v","staticClass","_l","project","key","identifier","ref","id","refInFor","on","$event","loadMap","capabilities","wmsOutputCrsList","includes","_s","title","description","scopedSlots","_u","fn","_g","model","value","callback","$$v","$set","expression","staticStyle","show","name","params","projectId","staticRenderFns","entry","uniqueKey","_f","item","metadata","contacts","legth","contact","cv","ce","address","av","ae","links","link","url","wfsLayerIds","props","Object","filters","camelTitle","str","i","charAt","toUpperCase","slice","join","data","uuidv4","component","VCard","VCardText","VList","VListItem","VListItemContent","VListItemGroup","VListItemTitle","VTab","VTabItem","VTabs","components","LMap","LTileLayer","Metadata","Error","computed","$store","state","catalog","commit","created","dispatch","methods","map","setView","jl","getBounds","getCenter","fitBounds","layers","Utils","transparent","format","baseMixins","mixins","directives","ClickOutside","dark","disabled","fullscreen","light","maxWidth","type","String","default","noClickAnimation","origin","persistent","retainFocus","scrollable","transition","width","activatedBy","animate","animateTimeout","isActive","stackMinZIndex","classes","contentClasses","hasActivator","Boolean","$slots","$scopedSlots","watch","$attrs","hasOwnProperty","beforeMount","beforeDestroy","window","unbind","animateClick","closeConditional","target","e","_isDestroyed","$refs","content","contains","overlay","$el","activeZIndex","hideScroll","document","bind","onClickOutside","onKeydown","getOpenDependents","activator","onFocusin","getOpenDependentElements","some","el","focusable","querySelectorAll","genContent","showLazyContent","root","class","role","tabindex","keydown","style","zIndex","genTransition","appear","genInnerContent","handler","include","transformOrigin","undefined","h","attach","VAlert","VApp","VAppBar","VBtn","VCardActions","VCardSubtitle","VCardTitle","VCol","VContainer","VDialog","VDivider","VFooter","VIcon","VMain","VOverlay","VProgressCircular","VRow","VSpacer","VToolbarTitle","VToolbar"],"mappings":"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","file":"js/chunk-23874add.1912a0b5.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',{attrs:{\"id\":\"catalog\"}},[(_vm.status == \"loading\" && _vm.error.length == 0)?_c('v-overlay',{attrs:{\"light\":\"\"}},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"lime\",\"size\":\"64\"}})],1):_vm._e(),_c('v-app-bar',{attrs:{\"app\":\"\",\"dense\":\"\",\"hide-on-scroll\":\"\",\"color\":\"green\",\"dark\":\"\"}},[_c('v-toolbar-title',[_vm._v(\"QGIS Server Catalog\")]),_c('v-spacer')],1),_c('v-main',[(_vm.catalog)?_c('v-container',{staticClass:\"fill-height\",attrs:{\"id\":\"catalog\",\"fluid\":\"\"}},[(_vm.error.length > 0 || _vm.status == \"empty\")?_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[(_vm.error.length > 0)?_c('Error',{attrs:{\"error\":_vm.error}}):_vm._e(),(_vm.status == \"empty\")?_c('v-alert',{attrs:{\"type\":\"warning\"}},[_c('h2',[_vm._v(\"This QGIS Server catalog does not contain any project.\")]),_c('p',[_vm._v(\" The projects (.QGS and .QGZ files) are searched in directories set by the environment variable \"),_c('code',[_vm._v(\"QGIS_SERVER_LANDING_PAGE_PROJECTS_DIRECTORIES\")]),_vm._v(\" (multiple paths can be specified by joining them with \"),_c('code',[_vm._v(\"||\")]),_vm._v(\"). \")]),_c('p',[_vm._v(\" Example: \"),_c('br'),_c('code',[_vm._v(\"QGIS_SERVER_LANDING_PAGE_PROJECTS_DIRECTORIES=/path/to/my/projects||/another_path/to/my/projects\")])]),_c('p',[_vm._v(\" Postgres projects are searched in the connections set by the environment variable \"),_c('code',[_vm._v(\"QGIS_SERVER_LANDING_PAGE_PROJECTS_PG_CONNECTIONS\")]),_vm._v(\" (multiple connections can be specified by joining them with \"),_c('code',[_vm._v(\"||\")]),_vm._v(\"). \")]),_c('p',[_vm._v(\" Example: \"),_c('br'),_c('code',[_vm._v(\"QGIS_SERVER_LANDING_PAGE_PROJECTS_PG_CONNECTIONS=postgresql://myusername:mypassword@myhost:myport?sslmode=disable&dbname=mydatabase&schema=public\")])])]):_vm._e()],1)],1):_vm._e(),(_vm.catalog)?_vm._l((_vm.catalog),function(project){return _c('v-card',{key:project.identifier,staticClass:\"mx-auto mb-4\",attrs:{\"max-width\":\"800\",\"min-width\":\"400\"}},[_c('l-map',{ref:'mapid-' + project.id,refInFor:true,on:{\"ready\":function($event){return _vm.loadMap(project, $event)}}},[(\n project.capabilities.wmsOutputCrsList.includes('EPSG:3857')\n )?_c('l-tile-layer',{attrs:{\"url\":\"https://tile.openstreetmap.org/{z}/{x}/{y}.png\"}}):_vm._e()],1),_c('v-card-title',[_vm._v(_vm._s(project.title))]),(project.description)?_c('v-card-subtitle',{staticClass:\"description\"},[_vm._v(_vm._s(project.description))]):_vm._e(),_c('v-card-actions',[_c('v-dialog',{staticClass:\"metadata\",attrs:{\"scrollable\":\"\",\"max-width\":\"800px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-btn',_vm._g({attrs:{\"color\":\"orange\",\"text\":\"\"}},on),[_c('v-icon',[_vm._v(\"mdi-information\")]),_vm._v(\"Metadata \")],1)]}}],null,true),model:{value:(project.show),callback:function ($$v) {_vm.$set(project, \"show\", $$v)},expression:\"project.show\"}},[_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(project.title))]),_c('v-divider'),_c('v-card-text',{staticStyle:{\"height\":\"300px\"}},[_c('Metadata',{attrs:{\"project\":project}})],1),_c('v-divider'),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"blue darken-1\",\"text\":\"\"},on:{\"click\":function($event){project.show = false}}},[_vm._v(\"Close\")])],1)],1)],1),_c('v-btn',{attrs:{\"color\":\"orange\",\"text\":\"\",\"to\":{ name: 'map', params: { projectId: project.id } }}},[_c('v-icon',[_vm._v(\"mdi-map\")]),_vm._v(\"Browse \")],1)],1)],1)}):_vm._e()],2):_vm._e()],1),_c('v-footer',{attrs:{\"color\":\"lime\",\"app\":\"\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-tabs',[_c('v-tab',{attrs:{\"href\":(\"#general-\" + (_vm.project.id))}},[_vm._v(\"General\")]),_c('v-tab-item',{attrs:{\"value\":(\"general-\" + (_vm.project.id))}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('v-card-text',[_vm._l((_vm.project.metadata),function(value,entry){return [(entry == 'categories' || entry == 'history')?[(value.length)?[_c('dt',{key:_vm.uniqueKey(entry + 'k')},[_vm._v(_vm._s(_vm._f(\"camelTitle\")(entry)))]),_c('dd',{key:_vm.uniqueKey(entry + 'v')},_vm._l((value),function(item){return _c('ul',{key:_vm.uniqueKey(item)},[_c('li',{key:_vm.uniqueKey(item)},[_vm._v(_vm._s(item))])])}),0)]:_vm._e()]:(entry != 'links' && entry != 'contacts' && value )?[_c('dt',{key:_vm.uniqueKey(entry)},[_vm._v(_vm._s(_vm._f(\"camelTitle\")(entry)))]),_c('dd',{key:_vm.uniqueKey(value)},[_vm._v(_vm._s(value))])]:_vm._e()]})],2)],1)],1),(_vm.project.metadata.contacts.legth > 0)?[_c('v-tab',{attrs:{\"href\":(\"#contacts-\" + (_vm.project.id))}},[_vm._v(\"Contacts\")]),(_vm.project.metadata.contacts)?_c('v-tab-item',{attrs:{\"value\":(\"contacts-\" + (_vm.project.id))}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('v-card-text',[_vm._l((_vm.project.metadata.contacts),function(contact){return [_c('h5',{key:_vm.uniqueKey(contact.name)},[_vm._v(_vm._s(contact.name))]),_c('dl',{key:_vm.uniqueKey(contact.name)},[_vm._l((contact),function(cv,ce){return [(ce != 'addresses' && ce != 'name' && cv )?[_c('dt',{key:_vm.uniqueKey(ce)},[_vm._v(_vm._s(_vm._f(\"camelTitle\")(ce)))]),_c('dd',{key:_vm.uniqueKey(cv)},[_vm._v(_vm._s(cv))])]:_vm._e()]})],2),_vm._l((contact.addresses),function(address){return [_c('dl',{key:_vm.uniqueKey(address.name),staticClass:\"address\"},[_vm._l((address),function(av,ae){return [(av)?[_c('dt',{key:_vm.uniqueKey(ae)},[_vm._v(_vm._s(_vm._f(\"camelTitle\")(ae)))]),_c('dd',{key:_vm.uniqueKey(av)},[_vm._v(_vm._s(av))])]:_vm._e()]})],2)]})]})],2)],1)],1):_vm._e()]:_vm._e(),(_vm.project.metadata.links.legth > 0)?[_c('v-tab',{attrs:{\"href\":(\"#links-\" + (_vm.project.id))}},[_vm._v(\"Links\")]),(_vm.project.metadata.links)?_c('v-tab-item',{attrs:{\"value\":(\"links-\" + (_vm.project.id))}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('v-card-text',_vm._l((_vm.project.metadata.links),function(link){return _c('ul',{key:_vm.uniqueKey(link.url)},[_c('li',[_c('a',{attrs:{\"href\":link.url}},[_vm._v(_vm._s(link.name))]),_vm._v(\" — \"+_vm._s(link.description)+\" \")])])}),0)],1)],1):_vm._e()]:_vm._e(),_c('v-tab',{attrs:{\"href\":(\"#services-\" + (_vm.project.id))}},[_vm._v(\"Services\")]),_c('v-tab-item',{attrs:{\"value\":(\"services-\" + (_vm.project.id))}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('v-card-text',[_c('v-list',[_c('v-list-item-group',[(_vm.project.capabilities.wfsLayerIds.length)?[_c('v-list-item',{attrs:{\"href\":'/project/' + _vm.project.id + '/wfs3'}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"OAPIF/WFS3\")])],1)],1),_c('v-list-item',{attrs:{\"href\":'/project/' + _vm.project.id + '/?SERVICE=WFS&REQUEST=GetCapabilities'}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"WFS GetCapabilities\")])],1)],1)]:_vm._e(),_c('v-list-item',{attrs:{\"href\":'/project/' + _vm.project.id + '/?SERVICE=WMS&REQUEST=GetCapabilities'}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"WMS GetCapabilities\")])],1)],1)],2)],1)],1)],1)],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * Metadata\n *\n * Author: elpaso@itopen.it\n * Date: 2020-06-30\n * Copyright: Copyright 2020, ItOpen\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n */\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Metadata.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Metadata.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Metadata.vue?vue&type=template&id=2c58573b&scoped=true&\"\nimport script from \"./Metadata.vue?vue&type=script&lang=js&\"\nexport * from \"./Metadata.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Metadata.vue?vue&type=style&index=0&id=2c58573b&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 \"2c58573b\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemGroup } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\ninstallComponents(component, {VCard,VCardText,VList,VListItem,VListItemContent,VListItemGroup,VListItemTitle,VTab,VTabItem,VTabs})\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=script&lang=js&\"","// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Dependent from '../../mixins/dependent'\nimport Detachable from '../../mixins/detachable'\nimport Overlayable from '../../mixins/overlayable'\nimport Returnable from '../../mixins/returnable'\nimport Stackable from '../../mixins/stackable'\nimport Toggleable from '../../mixins/toggleable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Activatable,\n Dependent,\n Detachable,\n Overlayable,\n Returnable,\n Stackable,\n Toggleable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-dialog',\n\n directives: { ClickOutside },\n\n props: {\n dark: Boolean,\n disabled: Boolean,\n fullscreen: Boolean,\n light: Boolean,\n maxWidth: {\n type: [String, Number],\n default: 'none',\n },\n noClickAnimation: Boolean,\n origin: {\n type: String,\n default: 'center center',\n },\n persistent: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n transition: {\n type: [String, Boolean],\n default: 'dialog-transition',\n },\n width: {\n type: [String, Number],\n default: 'auto',\n },\n },\n\n data () {\n return {\n activatedBy: null as EventTarget | null,\n animate: false,\n animateTimeout: -1,\n isActive: !!this.value,\n stackMinZIndex: 200,\n }\n },\n\n computed: {\n classes (): object {\n return {\n [(`v-dialog ${this.contentClass}`).trim()]: true,\n 'v-dialog--active': this.isActive,\n 'v-dialog--persistent': this.persistent,\n 'v-dialog--fullscreen': this.fullscreen,\n 'v-dialog--scrollable': this.scrollable,\n 'v-dialog--animated': this.animate,\n }\n },\n contentClasses (): object {\n return {\n 'v-dialog__content': true,\n 'v-dialog__content--active': this.isActive,\n }\n },\n hasActivator (): boolean {\n return Boolean(\n !!this.$slots.activator ||\n !!this.$scopedSlots.activator\n )\n },\n },\n\n watch: {\n isActive (val) {\n if (val) {\n this.show()\n this.hideScroll()\n } else {\n this.removeOverlay()\n this.unbind()\n }\n },\n fullscreen (val) {\n if (!this.isActive) return\n\n if (val) {\n this.hideScroll()\n this.removeOverlay(false)\n } else {\n this.showScroll()\n this.genOverlay()\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n beforeMount () {\n this.$nextTick(() => {\n this.isBooted = this.isActive\n this.isActive && this.show()\n })\n },\n\n beforeDestroy () {\n if (typeof window !== 'undefined') this.unbind()\n },\n\n methods: {\n animateClick () {\n this.animate = false\n // Needed for when clicking very fast\n // outside of the dialog\n this.$nextTick(() => {\n this.animate = true\n window.clearTimeout(this.animateTimeout)\n this.animateTimeout = window.setTimeout(() => (this.animate = false), 150)\n })\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n // Ignore the click if the dialog is closed or destroyed,\n // if it was on an element inside the content,\n // if it was dragged onto the overlay (#6969),\n // or if this isn't the topmost dialog (#9907)\n return !(\n this._isDestroyed ||\n !this.isActive ||\n this.$refs.content.contains(target) ||\n (this.overlay && target && !this.overlay.$el.contains(target))\n ) && this.activeZIndex >= this.getMaxZIndex()\n },\n hideScroll () {\n if (this.fullscreen) {\n document.documentElement.classList.add('overflow-y-hidden')\n } else {\n Overlayable.options.methods.hideScroll.call(this)\n }\n },\n show () {\n !this.fullscreen && !this.hideOverlay && this.genOverlay()\n this.$nextTick(() => {\n this.$refs.content.focus()\n this.bind()\n })\n },\n bind () {\n window.addEventListener('focusin', this.onFocusin)\n },\n unbind () {\n window.removeEventListener('focusin', this.onFocusin)\n },\n onClickOutside (e: Event) {\n this.$emit('click:outside', e)\n\n if (this.persistent) {\n this.noClickAnimation || this.animateClick()\n } else {\n this.isActive = false\n }\n },\n onKeydown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc && !this.getOpenDependents().length) {\n if (!this.persistent) {\n this.isActive = false\n const activator = this.getActivator()\n this.$nextTick(() => activator && (activator as HTMLElement).focus())\n } else if (!this.noClickAnimation) {\n this.animateClick()\n }\n }\n this.$emit('keydown', e)\n },\n // On focus change, wrap focus to stay inside the dialog\n // https://github.com/vuetifyjs/vuetify/issues/6892\n onFocusin (e: Event) {\n if (!e || !this.retainFocus) return\n\n const target = e.target as HTMLElement\n\n if (\n !!target &&\n // It isn't the document or the dialog body\n ![document, this.$refs.content].includes(target) &&\n // It isn't inside the dialog body\n !this.$refs.content.contains(target) &&\n // We're the topmost dialog\n this.activeZIndex >= this.getMaxZIndex() &&\n // It isn't inside a dependent element (like a menu)\n !this.getOpenDependentElements().some(el => el.contains(target))\n // So we must have focused something outside the dialog and its children\n ) {\n // Find and focus the first available element inside the dialog\n const focusable = this.$refs.content.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n const el = [...focusable].find(el => !el.hasAttribute('disabled')) as HTMLElement | undefined\n el && el.focus()\n }\n },\n genContent () {\n return this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [\n this.$createElement('div', {\n class: this.contentClasses,\n attrs: {\n role: 'document',\n tabindex: this.isActive ? 0 : undefined,\n ...this.getScopeIdAttrs(),\n },\n on: { keydown: this.onKeydown },\n style: { zIndex: this.activeZIndex },\n ref: 'content',\n }, [this.genTransition()]),\n ]),\n ])\n },\n genTransition () {\n const content = this.genInnerContent()\n\n if (!this.transition) return content\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n appear: true,\n },\n }, [content])\n },\n genInnerContent () {\n const data: VNodeData = {\n class: this.classes,\n ref: 'dialog',\n directives: [\n {\n name: 'click-outside',\n value: {\n handler: this.onClickOutside,\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n },\n { name: 'show', value: this.isActive },\n ],\n style: {\n transformOrigin: this.origin,\n },\n }\n\n if (!this.fullscreen) {\n data.style = {\n ...data.style as object,\n maxWidth: this.maxWidth === 'none' ? undefined : convertToUnit(this.maxWidth),\n width: this.width === 'auto' ? undefined : convertToUnit(this.width),\n }\n }\n\n return this.$createElement('div', data, this.getContentSlot())\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-dialog__container',\n class: {\n 'v-dialog__container--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n attrs: { role: 'dialog' },\n }, [\n this.genActivator(),\n this.genContent(),\n ])\n },\n})\n","import { render, staticRenderFns } from \"./Catalog.vue?vue&type=template&id=603d1f06&scoped=true&\"\nimport script from \"./Catalog.vue?vue&type=script&lang=js&\"\nexport * from \"./Catalog.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Catalog.vue?vue&type=style&index=0&id=603d1f06&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"603d1f06\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VAppBar } from 'vuetify/lib/components/VAppBar';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardSubtitle } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VFooter } from 'vuetify/lib/components/VFooter';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VMain } from 'vuetify/lib/components/VMain';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VAlert,VApp,VAppBar,VBtn,VCard,VCardActions,VCardSubtitle,VCardText,VCardTitle,VCol,VContainer,VDialog,VDivider,VFooter,VIcon,VMain,VOverlay,VProgressCircular,VRow,VSpacer,VToolbarTitle})\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=style&index=0&id=603d1f06&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=style&index=0&id=603d1f06&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Metadata.vue?vue&type=style&index=0&id=2c58573b&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Metadata.vue?vue&type=style&index=0&id=2c58573b&lang=scss&scoped=true&\""],"sourceRoot":""} \ No newline at end of file diff --git a/resources/server/api/ogc/static/landingpage/js/chunk-e7ca2a40.c6c8ec03.js b/resources/server/api/ogc/static/landingpage/js/chunk-e7ca2a40.c6c8ec03.js new file mode 100644 index 00000000000..654d5c059a7 --- /dev/null +++ b/resources/server/api/ogc/static/landingpage/js/chunk-e7ca2a40.c6c8ec03.js @@ -0,0 +1,2 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-e7ca2a40"],{"12c7":function(t,e,i){},"247d":function(t,e,i){"use strict";i.r(e);var a=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-app",{attrs:{id:"catalog"}},["loading"==t.status&&0==t.error.length?i("v-overlay",{attrs:{light:""}},[i("v-progress-circular",{attrs:{indeterminate:"",color:"lime",size:"64"}})],1):t._e(),i("v-app-bar",{attrs:{app:"",dense:"","hide-on-scroll":"",color:"green",dark:""}},[i("v-toolbar-title",[t._v("QGIS Server Catalog")]),i("v-spacer")],1),i("v-main",[t.catalog?i("v-container",{staticClass:"fill-height",attrs:{id:"catalog",fluid:""}},[t.error.length>0||"empty"==t.status?i("v-row",{attrs:{align:"center"}},[i("v-col",{attrs:{cols:"12"}},[t.error.length>0?i("Error",{attrs:{error:t.error}}):t._e(),"empty"==t.status?i("v-alert",{attrs:{type:"warning"}},[i("h2",[t._v("This QGIS Server catalog does not contain any project.")]),i("p",[t._v(" The projects (.QGS and .QGZ files) are searched in directories set by the environment variable "),i("code",[t._v("QGIS_SERVER_LANDING_PAGE_PROJECTS_DIRECTORIES")]),t._v(" (multiple paths can be specified by joining them with "),i("code",[t._v("||")]),t._v("). ")]),i("p",[t._v(" Example: "),i("br"),i("code",[t._v("QGIS_SERVER_LANDING_PAGE_PROJECTS_DIRECTORIES=/path/to/my/projects||/another_path/to/my/projects")])]),i("p",[t._v(" Postgres projects are searched in the connections set by the environment variable "),i("code",[t._v("QGIS_SERVER_LANDING_PAGE_PROJECTS_PG_CONNECTIONS")]),t._v(" (multiple connections can be specified by joining them with "),i("code",[t._v("||")]),t._v("). ")]),i("p",[t._v(" Example: "),i("br"),i("code",[t._v("QGIS_SERVER_LANDING_PAGE_PROJECTS_PG_CONNECTIONS=postgresql://myusername:mypassword@myhost:myport?sslmode=disable&dbname=mydatabase&schema=public")])])]):t._e()],1)],1):t._e(),t.catalog?t._l(t.catalog,(function(e){return i("v-card",{key:e.identifier,staticClass:"mx-auto mb-4",attrs:{"max-width":"800","min-width":"400"}},[i("l-map",{ref:"mapid-"+e.id,refInFor:!0,on:{ready:function(i){return t.loadMap(e,i)}}},[e.capabilities.wmsOutputCrsList.includes("EPSG:3857")?i("l-tile-layer",{attrs:{url:"https://tile.openstreetmap.org/{z}/{x}/{y}.png"}}):t._e()],1),i("v-card-title",[t._v(t._s(e.title))]),e.description?i("v-card-subtitle",{staticClass:"description"},[t._v(t._s(e.description))]):t._e(),i("v-card-actions",[i("v-dialog",{staticClass:"metadata",attrs:{scrollable:"","max-width":"800px"},scopedSlots:t._u([{key:"activator",fn:function(e){var a=e.on;return[i("v-btn",t._g({attrs:{color:"orange",text:""}},a),[i("v-icon",[t._v("mdi-information")]),t._v("Metadata ")],1)]}}],null,!0),model:{value:e.show,callback:function(i){t.$set(e,"show",i)},expression:"project.show"}},[i("v-card",[i("v-card-title",[t._v(t._s(e.title))]),i("v-divider"),i("v-card-text",{staticStyle:{height:"300px"}},[i("Metadata",{attrs:{project:e}})],1),i("v-divider"),i("v-card-actions",[i("v-btn",{attrs:{color:"blue darken-1",text:""},on:{click:function(t){e.show=!1}}},[t._v("Close")])],1)],1)],1),i("v-btn",{attrs:{color:"orange",text:"",to:{name:"map",params:{projectId:e.id}}}},[i("v-icon",[t._v("mdi-map")]),t._v("Browse ")],1)],1)],1)})):t._e()],2):t._e()],1),i("v-footer",{attrs:{color:"lime",app:""}})],1)},n=[],s=i("2699"),r=i("a40a"),o=(i("6cc5"),i("e11e")),c=i("7e9c"),l=i.n(c),d=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-tabs",[i("v-tab",{attrs:{href:"#general-"+t.project.id}},[t._v("General")]),i("v-tab-item",{attrs:{value:"general-"+t.project.id}},[i("v-card",{attrs:{flat:"",tile:""}},[i("v-card-text",[t._l(t.project.metadata,(function(e,a){return["categories"==a||"history"==a?[e.length?[i("dt",{key:t.uniqueKey(a+"k")},[t._v(t._s(t._f("camelTitle")(a)))]),i("dd",{key:t.uniqueKey(a+"v")},t._l(e,(function(e){return i("ul",{key:t.uniqueKey(e)},[i("li",{key:t.uniqueKey(e)},[t._v(t._s(e))])])})),0)]:t._e()]:"links"!=a&&"contacts"!=a&&e?[i("dt",{key:t.uniqueKey(a)},[t._v(t._s(t._f("camelTitle")(a)))]),i("dd",{key:t.uniqueKey(e)},[t._v(t._s(e))])]:t._e()]}))],2)],1)],1),t.project.metadata.contacts.length>0?[i("v-tab",{attrs:{href:"#contacts-"+t.project.id}},[t._v("Contacts")]),t.project.metadata.contacts?i("v-tab-item",{attrs:{value:"contacts-"+t.project.id}},[i("v-card",{attrs:{flat:"",tile:""}},[i("v-card-text",[t._l(t.project.metadata.contacts,(function(e){return[i("h5",{key:t.uniqueKey(e.name)},[t._v(t._s(e.name))]),i("dl",{key:t.uniqueKey(e.name)},[t._l(e,(function(e,a){return["addresses"!=a&&"name"!=a&&e?[i("dt",{key:t.uniqueKey(a)},[t._v(t._s(t._f("camelTitle")(a)))]),i("dd",{key:t.uniqueKey(e)},[t._v(t._s(e))])]:t._e()]}))],2),t._l(e.addresses,(function(e){return[i("dl",{key:t.uniqueKey(e.name),staticClass:"address"},[t._l(e,(function(e,a){return[e?[i("dt",{key:t.uniqueKey(a)},[t._v(t._s(t._f("camelTitle")(a)))]),i("dd",{key:t.uniqueKey(e)},[t._v(t._s(e))])]:t._e()]}))],2)]}))]}))],2)],1)],1):t._e()]:t._e(),t.project.metadata.links.length>0?[i("v-tab",{attrs:{href:"#links-"+t.project.id}},[t._v("Links")]),t.project.metadata.links?i("v-tab-item",{attrs:{value:"links-"+t.project.id}},[i("v-card",{attrs:{flat:"",tile:""}},[i("v-card-text",t._l(t.project.metadata.links,(function(e){return i("ul",{key:t.uniqueKey(e.url)},[i("li",[i("a",{attrs:{href:e.url}},[t._v(t._s(e.name))]),t._v(" — "+t._s(e.description)+" ")])])})),0)],1)],1):t._e()]:t._e(),i("v-tab",{attrs:{href:"#services-"+t.project.id}},[t._v("Services")]),i("v-tab-item",{attrs:{value:"services-"+t.project.id}},[i("v-card",{attrs:{flat:"",tile:""}},[i("v-card-text",[i("v-list",[i("v-list-item-group",[t.project.capabilities.wfsLayerIds.length?[i("v-list-item",{attrs:{href:"./project/"+t.project.id+"/wfs3"}},[i("v-list-item-content",[i("v-list-item-title",[t._v("OAPIF/WFS3")])],1)],1),i("v-list-item",{attrs:{href:"./project/"+t.project.id+"/?SERVICE=WFS&REQUEST=GetCapabilities"}},[i("v-list-item-content",[i("v-list-item-title",[t._v("WFS GetCapabilities")])],1)],1)]:t._e(),i("v-list-item",{attrs:{href:"./project/"+t.project.id+"/?SERVICE=WMS&REQUEST=GetCapabilities"}},[i("v-list-item-content",[i("v-list-item-title",[t._v("WMS GetCapabilities")])],1)],1)],2)],1)],1)],1)],1)],2)},u=[],h=(i("a15b"),i("fb6a"),i("ac1f"),i("5319"),i("1276"),i("c64e")),v={props:{project:Object},filters:{camelTitle:function(t){t=t.replace(/([A-Z])/g," $1").toLowerCase().split(" ");for(var e=0;e=this.getMaxZIndex()},hideScroll:function(){this.fullscreen?document.documentElement.classList.add("overflow-y-hidden"):W["a"].options.methods.hideScroll.call(this)},show:function(){var t=this;!this.fullscreen&&!this.hideOverlay&&this.genOverlay(),this.$nextTick((function(){t.$refs.content.focus(),t.bind()}))},bind:function(){window.addEventListener("focusin",this.onFocusin)},unbind:function(){window.removeEventListener("focusin",this.onFocusin)},onClickOutside:function(t){this.$emit("click:outside",t),this.persistent?this.noClickAnimation||this.animateClick():this.isActive=!1},onKeydown:function(t){if(t.keyCode===Y["w"].esc&&!this.getOpenDependents().length)if(this.persistent)this.noClickAnimation||this.animateClick();else{this.isActive=!1;var e=this.getActivator();this.$nextTick((function(){return e&&e.focus()}))}this.$emit("keydown",t)},onFocusin:function(t){if(t&&this.retainFocus){var e=t.target;if(e&&![document,this.$refs.content].includes(e)&&!this.$refs.content.contains(e)&&this.activeZIndex>=this.getMaxZIndex()&&!this.getOpenDependentElements().some((function(t){return t.contains(e)}))){var i=this.$refs.content.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'),a=Object(N["a"])(i).find((function(t){return!t.hasAttribute("disabled")}));a&&a.focus()}}},genContent:function(){var t=this;return this.showLazyContent((function(){return[t.$createElement(D["a"],{props:{root:!0,light:t.light,dark:t.dark}},[t.$createElement("div",{class:t.contentClasses,attrs:Object(K["a"])({role:"document",tabindex:t.isActive?0:void 0},t.getScopeIdAttrs()),on:{keydown:t.onKeydown},style:{zIndex:t.activeZIndex},ref:"content"},[t.genTransition()])])]}))},genTransition:function(){var t=this.genInnerContent();return this.transition?this.$createElement("transition",{props:{name:this.transition,origin:this.origin,appear:!0}},[t]):t},genInnerContent:function(){var t={class:this.classes,ref:"dialog",directives:[{name:"click-outside",value:{handler:this.onClickOutside,closeConditional:this.closeConditional,include:this.getOpenDependentElements}},{name:"show",value:this.isActive}],style:{transformOrigin:this.origin}};return this.fullscreen||(t.style=Object(K["a"])(Object(K["a"])({},t.style),{},{maxWidth:"none"===this.maxWidth?void 0:Object(Y["g"])(this.maxWidth),width:"auto"===this.width?void 0:Object(Y["g"])(this.width)})),this.$createElement("div",t,this.getContentSlot())}},render:function(t){return t("div",{staticClass:"v-dialog__container",class:{"v-dialog__container--attached":""===this.attach||!0===this.attach||"attach"===this.attach},attrs:{role:"dialog"}},[this.genActivator(),this.genContent()])}}),it=i("ce7e"),at=i("553a"),nt=i("132d"),st=i("f6c4"),rt=i("a797"),ot=i("490a"),ct=i("0fd9"),lt=i("2fa4"),dt=i("2a7f"),ut=Object(f["a"])(A,a,n,!1,null,"603d1f06",null);e["default"]=ut.exports;_()(ut,{VAlert:$["a"],VApp:G["a"],VAppBar:L["a"],VBtn:B["a"],VCard:g["a"],VCardActions:b["a"],VCardSubtitle:b["b"],VCardText:b["c"],VCardTitle:b["d"],VCol:R["a"],VContainer:q["a"],VDialog:et,VDivider:it["a"],VFooter:at["a"],VIcon:nt["a"],VMain:st["a"],VOverlay:rt["a"],VProgressCircular:ot["a"],VRow:ct["a"],VSpacer:lt["a"],VToolbarTitle:dt["a"]})},"368e":function(t,e,i){},"554e":function(t,e,i){"use strict";var a=i("12c7"),n=i.n(a);n.a},ba2e:function(t,e,i){"use strict";var a=i("f6a2"),n=i.n(a);n.a},f6a2:function(t,e,i){}}]); +//# sourceMappingURL=chunk-e7ca2a40.c6c8ec03.js.map \ No newline at end of file diff --git a/resources/server/api/ogc/static/landingpage/js/chunk-e7ca2a40.c6c8ec03.js.map b/resources/server/api/ogc/static/landingpage/js/chunk-e7ca2a40.c6c8ec03.js.map new file mode 100644 index 00000000000..28ebee2dcdf --- /dev/null +++ b/resources/server/api/ogc/static/landingpage/js/chunk-e7ca2a40.c6c8ec03.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./src/views/Catalog.vue?c7a3","webpack:///./src/components/Metadata.vue?3b73","webpack:///src/components/Metadata.vue","webpack:///./src/components/Metadata.vue?ac3f","webpack:///./src/components/Metadata.vue?62d1","webpack:///src/views/Catalog.vue","webpack:///./src/views/Catalog.vue?adf9","webpack:///../../../src/components/VDialog/VDialog.ts","webpack:///./src/views/Catalog.vue?3cd1","webpack:///./src/views/Catalog.vue?1ad9","webpack:///./src/components/Metadata.vue?f4c4"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","status","error","length","_e","_v","staticClass","_l","project","key","identifier","ref","id","refInFor","on","$event","loadMap","capabilities","wmsOutputCrsList","includes","_s","title","description","scopedSlots","_u","fn","_g","model","value","callback","$$v","$set","expression","staticStyle","show","name","params","projectId","staticRenderFns","entry","uniqueKey","_f","item","metadata","contacts","contact","cv","ce","address","av","ae","links","link","url","wfsLayerIds","props","Object","filters","camelTitle","str","i","charAt","toUpperCase","slice","join","data","uuidv4","component","VCard","VCardText","VList","VListItem","VListItemContent","VListItemGroup","VListItemTitle","VTab","VTabItem","VTabs","components","LMap","LTileLayer","Metadata","Error","computed","$store","state","catalog","commit","created","dispatch","methods","map","setView","jl","getBounds","getCenter","fitBounds","layers","Utils","transparent","format","baseMixins","mixins","directives","ClickOutside","dark","disabled","fullscreen","light","maxWidth","type","String","default","noClickAnimation","origin","persistent","retainFocus","scrollable","transition","width","activatedBy","animate","animateTimeout","isActive","stackMinZIndex","classes","contentClasses","hasActivator","Boolean","$slots","$scopedSlots","watch","$attrs","hasOwnProperty","beforeMount","beforeDestroy","window","unbind","animateClick","closeConditional","target","e","_isDestroyed","$refs","content","contains","overlay","$el","activeZIndex","hideScroll","document","bind","onClickOutside","onKeydown","getOpenDependents","activator","onFocusin","getOpenDependentElements","some","el","focusable","querySelectorAll","genContent","showLazyContent","root","class","role","tabindex","keydown","style","zIndex","genTransition","appear","genInnerContent","handler","include","transformOrigin","undefined","h","attach","VAlert","VApp","VAppBar","VBtn","VCardActions","VCardSubtitle","VCardTitle","VCol","VContainer","VDialog","VDivider","VFooter","VIcon","VMain","VOverlay","VProgressCircular","VRow","VSpacer","VToolbarTitle","VToolbar"],"mappings":"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","file":"js/chunk-e7ca2a40.c6c8ec03.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',{attrs:{\"id\":\"catalog\"}},[(_vm.status == \"loading\" && _vm.error.length == 0)?_c('v-overlay',{attrs:{\"light\":\"\"}},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"lime\",\"size\":\"64\"}})],1):_vm._e(),_c('v-app-bar',{attrs:{\"app\":\"\",\"dense\":\"\",\"hide-on-scroll\":\"\",\"color\":\"green\",\"dark\":\"\"}},[_c('v-toolbar-title',[_vm._v(\"QGIS Server Catalog\")]),_c('v-spacer')],1),_c('v-main',[(_vm.catalog)?_c('v-container',{staticClass:\"fill-height\",attrs:{\"id\":\"catalog\",\"fluid\":\"\"}},[(_vm.error.length > 0 || _vm.status == \"empty\")?_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[(_vm.error.length > 0)?_c('Error',{attrs:{\"error\":_vm.error}}):_vm._e(),(_vm.status == \"empty\")?_c('v-alert',{attrs:{\"type\":\"warning\"}},[_c('h2',[_vm._v(\"This QGIS Server catalog does not contain any project.\")]),_c('p',[_vm._v(\" The projects (.QGS and .QGZ files) are searched in directories set by the environment variable \"),_c('code',[_vm._v(\"QGIS_SERVER_LANDING_PAGE_PROJECTS_DIRECTORIES\")]),_vm._v(\" (multiple paths can be specified by joining them with \"),_c('code',[_vm._v(\"||\")]),_vm._v(\"). \")]),_c('p',[_vm._v(\" Example: \"),_c('br'),_c('code',[_vm._v(\"QGIS_SERVER_LANDING_PAGE_PROJECTS_DIRECTORIES=/path/to/my/projects||/another_path/to/my/projects\")])]),_c('p',[_vm._v(\" Postgres projects are searched in the connections set by the environment variable \"),_c('code',[_vm._v(\"QGIS_SERVER_LANDING_PAGE_PROJECTS_PG_CONNECTIONS\")]),_vm._v(\" (multiple connections can be specified by joining them with \"),_c('code',[_vm._v(\"||\")]),_vm._v(\"). \")]),_c('p',[_vm._v(\" Example: \"),_c('br'),_c('code',[_vm._v(\"QGIS_SERVER_LANDING_PAGE_PROJECTS_PG_CONNECTIONS=postgresql://myusername:mypassword@myhost:myport?sslmode=disable&dbname=mydatabase&schema=public\")])])]):_vm._e()],1)],1):_vm._e(),(_vm.catalog)?_vm._l((_vm.catalog),function(project){return _c('v-card',{key:project.identifier,staticClass:\"mx-auto mb-4\",attrs:{\"max-width\":\"800\",\"min-width\":\"400\"}},[_c('l-map',{ref:'mapid-' + project.id,refInFor:true,on:{\"ready\":function($event){return _vm.loadMap(project, $event)}}},[(\n project.capabilities.wmsOutputCrsList.includes('EPSG:3857')\n )?_c('l-tile-layer',{attrs:{\"url\":\"https://tile.openstreetmap.org/{z}/{x}/{y}.png\"}}):_vm._e()],1),_c('v-card-title',[_vm._v(_vm._s(project.title))]),(project.description)?_c('v-card-subtitle',{staticClass:\"description\"},[_vm._v(_vm._s(project.description))]):_vm._e(),_c('v-card-actions',[_c('v-dialog',{staticClass:\"metadata\",attrs:{\"scrollable\":\"\",\"max-width\":\"800px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-btn',_vm._g({attrs:{\"color\":\"orange\",\"text\":\"\"}},on),[_c('v-icon',[_vm._v(\"mdi-information\")]),_vm._v(\"Metadata \")],1)]}}],null,true),model:{value:(project.show),callback:function ($$v) {_vm.$set(project, \"show\", $$v)},expression:\"project.show\"}},[_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(project.title))]),_c('v-divider'),_c('v-card-text',{staticStyle:{\"height\":\"300px\"}},[_c('Metadata',{attrs:{\"project\":project}})],1),_c('v-divider'),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"blue darken-1\",\"text\":\"\"},on:{\"click\":function($event){project.show = false}}},[_vm._v(\"Close\")])],1)],1)],1),_c('v-btn',{attrs:{\"color\":\"orange\",\"text\":\"\",\"to\":{ name: 'map', params: { projectId: project.id } }}},[_c('v-icon',[_vm._v(\"mdi-map\")]),_vm._v(\"Browse \")],1)],1)],1)}):_vm._e()],2):_vm._e()],1),_c('v-footer',{attrs:{\"color\":\"lime\",\"app\":\"\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-tabs',[_c('v-tab',{attrs:{\"href\":(\"#general-\" + (_vm.project.id))}},[_vm._v(\"General\")]),_c('v-tab-item',{attrs:{\"value\":(\"general-\" + (_vm.project.id))}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('v-card-text',[_vm._l((_vm.project.metadata),function(value,entry){return [(entry == 'categories' || entry == 'history')?[(value.length)?[_c('dt',{key:_vm.uniqueKey(entry + 'k')},[_vm._v(_vm._s(_vm._f(\"camelTitle\")(entry)))]),_c('dd',{key:_vm.uniqueKey(entry + 'v')},_vm._l((value),function(item){return _c('ul',{key:_vm.uniqueKey(item)},[_c('li',{key:_vm.uniqueKey(item)},[_vm._v(_vm._s(item))])])}),0)]:_vm._e()]:(entry != 'links' && entry != 'contacts' && value )?[_c('dt',{key:_vm.uniqueKey(entry)},[_vm._v(_vm._s(_vm._f(\"camelTitle\")(entry)))]),_c('dd',{key:_vm.uniqueKey(value)},[_vm._v(_vm._s(value))])]:_vm._e()]})],2)],1)],1),(_vm.project.metadata.contacts.length > 0)?[_c('v-tab',{attrs:{\"href\":(\"#contacts-\" + (_vm.project.id))}},[_vm._v(\"Contacts\")]),(_vm.project.metadata.contacts)?_c('v-tab-item',{attrs:{\"value\":(\"contacts-\" + (_vm.project.id))}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('v-card-text',[_vm._l((_vm.project.metadata.contacts),function(contact){return [_c('h5',{key:_vm.uniqueKey(contact.name)},[_vm._v(_vm._s(contact.name))]),_c('dl',{key:_vm.uniqueKey(contact.name)},[_vm._l((contact),function(cv,ce){return [(ce != 'addresses' && ce != 'name' && cv )?[_c('dt',{key:_vm.uniqueKey(ce)},[_vm._v(_vm._s(_vm._f(\"camelTitle\")(ce)))]),_c('dd',{key:_vm.uniqueKey(cv)},[_vm._v(_vm._s(cv))])]:_vm._e()]})],2),_vm._l((contact.addresses),function(address){return [_c('dl',{key:_vm.uniqueKey(address.name),staticClass:\"address\"},[_vm._l((address),function(av,ae){return [(av)?[_c('dt',{key:_vm.uniqueKey(ae)},[_vm._v(_vm._s(_vm._f(\"camelTitle\")(ae)))]),_c('dd',{key:_vm.uniqueKey(av)},[_vm._v(_vm._s(av))])]:_vm._e()]})],2)]})]})],2)],1)],1):_vm._e()]:_vm._e(),(_vm.project.metadata.links.length > 0)?[_c('v-tab',{attrs:{\"href\":(\"#links-\" + (_vm.project.id))}},[_vm._v(\"Links\")]),(_vm.project.metadata.links)?_c('v-tab-item',{attrs:{\"value\":(\"links-\" + (_vm.project.id))}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('v-card-text',_vm._l((_vm.project.metadata.links),function(link){return _c('ul',{key:_vm.uniqueKey(link.url)},[_c('li',[_c('a',{attrs:{\"href\":link.url}},[_vm._v(_vm._s(link.name))]),_vm._v(\" — \"+_vm._s(link.description)+\" \")])])}),0)],1)],1):_vm._e()]:_vm._e(),_c('v-tab',{attrs:{\"href\":(\"#services-\" + (_vm.project.id))}},[_vm._v(\"Services\")]),_c('v-tab-item',{attrs:{\"value\":(\"services-\" + (_vm.project.id))}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('v-card-text',[_c('v-list',[_c('v-list-item-group',[(_vm.project.capabilities.wfsLayerIds.length)?[_c('v-list-item',{attrs:{\"href\":'./project/' + _vm.project.id + '/wfs3'}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"OAPIF/WFS3\")])],1)],1),_c('v-list-item',{attrs:{\"href\":'./project/' + _vm.project.id + '/?SERVICE=WFS&REQUEST=GetCapabilities'}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"WFS GetCapabilities\")])],1)],1)]:_vm._e(),_c('v-list-item',{attrs:{\"href\":'./project/' + _vm.project.id + '/?SERVICE=WMS&REQUEST=GetCapabilities'}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"WMS GetCapabilities\")])],1)],1)],2)],1)],1)],1)],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * Metadata\n *\n * Author: elpaso@itopen.it\n * Date: 2020-06-30\n * Copyright: Copyright 2020, ItOpen\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n */\n\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Metadata.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Metadata.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Metadata.vue?vue&type=template&id=3899b65a&scoped=true&\"\nimport script from \"./Metadata.vue?vue&type=script&lang=js&\"\nexport * from \"./Metadata.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Metadata.vue?vue&type=style&index=0&id=3899b65a&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 \"3899b65a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemGroup } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\ninstallComponents(component, {VCard,VCardText,VList,VListItem,VListItemContent,VListItemGroup,VListItemTitle,VTab,VTabItem,VTabs})\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=script&lang=js&\"","// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Dependent from '../../mixins/dependent'\nimport Detachable from '../../mixins/detachable'\nimport Overlayable from '../../mixins/overlayable'\nimport Returnable from '../../mixins/returnable'\nimport Stackable from '../../mixins/stackable'\nimport Toggleable from '../../mixins/toggleable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Activatable,\n Dependent,\n Detachable,\n Overlayable,\n Returnable,\n Stackable,\n Toggleable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-dialog',\n\n directives: { ClickOutside },\n\n props: {\n dark: Boolean,\n disabled: Boolean,\n fullscreen: Boolean,\n light: Boolean,\n maxWidth: {\n type: [String, Number],\n default: 'none',\n },\n noClickAnimation: Boolean,\n origin: {\n type: String,\n default: 'center center',\n },\n persistent: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n transition: {\n type: [String, Boolean],\n default: 'dialog-transition',\n },\n width: {\n type: [String, Number],\n default: 'auto',\n },\n },\n\n data () {\n return {\n activatedBy: null as EventTarget | null,\n animate: false,\n animateTimeout: -1,\n isActive: !!this.value,\n stackMinZIndex: 200,\n }\n },\n\n computed: {\n classes (): object {\n return {\n [(`v-dialog ${this.contentClass}`).trim()]: true,\n 'v-dialog--active': this.isActive,\n 'v-dialog--persistent': this.persistent,\n 'v-dialog--fullscreen': this.fullscreen,\n 'v-dialog--scrollable': this.scrollable,\n 'v-dialog--animated': this.animate,\n }\n },\n contentClasses (): object {\n return {\n 'v-dialog__content': true,\n 'v-dialog__content--active': this.isActive,\n }\n },\n hasActivator (): boolean {\n return Boolean(\n !!this.$slots.activator ||\n !!this.$scopedSlots.activator\n )\n },\n },\n\n watch: {\n isActive (val) {\n if (val) {\n this.show()\n this.hideScroll()\n } else {\n this.removeOverlay()\n this.unbind()\n }\n },\n fullscreen (val) {\n if (!this.isActive) return\n\n if (val) {\n this.hideScroll()\n this.removeOverlay(false)\n } else {\n this.showScroll()\n this.genOverlay()\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n beforeMount () {\n this.$nextTick(() => {\n this.isBooted = this.isActive\n this.isActive && this.show()\n })\n },\n\n beforeDestroy () {\n if (typeof window !== 'undefined') this.unbind()\n },\n\n methods: {\n animateClick () {\n this.animate = false\n // Needed for when clicking very fast\n // outside of the dialog\n this.$nextTick(() => {\n this.animate = true\n window.clearTimeout(this.animateTimeout)\n this.animateTimeout = window.setTimeout(() => (this.animate = false), 150)\n })\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n // Ignore the click if the dialog is closed or destroyed,\n // if it was on an element inside the content,\n // if it was dragged onto the overlay (#6969),\n // or if this isn't the topmost dialog (#9907)\n return !(\n this._isDestroyed ||\n !this.isActive ||\n this.$refs.content.contains(target) ||\n (this.overlay && target && !this.overlay.$el.contains(target))\n ) && this.activeZIndex >= this.getMaxZIndex()\n },\n hideScroll () {\n if (this.fullscreen) {\n document.documentElement.classList.add('overflow-y-hidden')\n } else {\n Overlayable.options.methods.hideScroll.call(this)\n }\n },\n show () {\n !this.fullscreen && !this.hideOverlay && this.genOverlay()\n this.$nextTick(() => {\n this.$refs.content.focus()\n this.bind()\n })\n },\n bind () {\n window.addEventListener('focusin', this.onFocusin)\n },\n unbind () {\n window.removeEventListener('focusin', this.onFocusin)\n },\n onClickOutside (e: Event) {\n this.$emit('click:outside', e)\n\n if (this.persistent) {\n this.noClickAnimation || this.animateClick()\n } else {\n this.isActive = false\n }\n },\n onKeydown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc && !this.getOpenDependents().length) {\n if (!this.persistent) {\n this.isActive = false\n const activator = this.getActivator()\n this.$nextTick(() => activator && (activator as HTMLElement).focus())\n } else if (!this.noClickAnimation) {\n this.animateClick()\n }\n }\n this.$emit('keydown', e)\n },\n // On focus change, wrap focus to stay inside the dialog\n // https://github.com/vuetifyjs/vuetify/issues/6892\n onFocusin (e: Event) {\n if (!e || !this.retainFocus) return\n\n const target = e.target as HTMLElement\n\n if (\n !!target &&\n // It isn't the document or the dialog body\n ![document, this.$refs.content].includes(target) &&\n // It isn't inside the dialog body\n !this.$refs.content.contains(target) &&\n // We're the topmost dialog\n this.activeZIndex >= this.getMaxZIndex() &&\n // It isn't inside a dependent element (like a menu)\n !this.getOpenDependentElements().some(el => el.contains(target))\n // So we must have focused something outside the dialog and its children\n ) {\n // Find and focus the first available element inside the dialog\n const focusable = this.$refs.content.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n const el = [...focusable].find(el => !el.hasAttribute('disabled')) as HTMLElement | undefined\n el && el.focus()\n }\n },\n genContent () {\n return this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [\n this.$createElement('div', {\n class: this.contentClasses,\n attrs: {\n role: 'document',\n tabindex: this.isActive ? 0 : undefined,\n ...this.getScopeIdAttrs(),\n },\n on: { keydown: this.onKeydown },\n style: { zIndex: this.activeZIndex },\n ref: 'content',\n }, [this.genTransition()]),\n ]),\n ])\n },\n genTransition () {\n const content = this.genInnerContent()\n\n if (!this.transition) return content\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n appear: true,\n },\n }, [content])\n },\n genInnerContent () {\n const data: VNodeData = {\n class: this.classes,\n ref: 'dialog',\n directives: [\n {\n name: 'click-outside',\n value: {\n handler: this.onClickOutside,\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n },\n { name: 'show', value: this.isActive },\n ],\n style: {\n transformOrigin: this.origin,\n },\n }\n\n if (!this.fullscreen) {\n data.style = {\n ...data.style as object,\n maxWidth: this.maxWidth === 'none' ? undefined : convertToUnit(this.maxWidth),\n width: this.width === 'auto' ? undefined : convertToUnit(this.width),\n }\n }\n\n return this.$createElement('div', data, this.getContentSlot())\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-dialog__container',\n class: {\n 'v-dialog__container--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n attrs: { role: 'dialog' },\n }, [\n this.genActivator(),\n this.genContent(),\n ])\n },\n})\n","import { render, staticRenderFns } from \"./Catalog.vue?vue&type=template&id=603d1f06&scoped=true&\"\nimport script from \"./Catalog.vue?vue&type=script&lang=js&\"\nexport * from \"./Catalog.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Catalog.vue?vue&type=style&index=0&id=603d1f06&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"603d1f06\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VAppBar } from 'vuetify/lib/components/VAppBar';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardSubtitle } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VFooter } from 'vuetify/lib/components/VFooter';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VMain } from 'vuetify/lib/components/VMain';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VAlert,VApp,VAppBar,VBtn,VCard,VCardActions,VCardSubtitle,VCardText,VCardTitle,VCol,VContainer,VDialog,VDivider,VFooter,VIcon,VMain,VOverlay,VProgressCircular,VRow,VSpacer,VToolbarTitle})\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=style&index=0&id=603d1f06&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=style&index=0&id=603d1f06&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Metadata.vue?vue&type=style&index=0&id=3899b65a&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Metadata.vue?vue&type=style&index=0&id=3899b65a&lang=scss&scoped=true&\""],"sourceRoot":""} \ No newline at end of file diff --git a/resources/server/src/landingpage/README.md b/resources/server/src/landingpage/README.md index 34eb9a333aa..63afc6f0324 100644 --- a/resources/server/src/landingpage/README.md +++ b/resources/server/src/landingpage/README.md @@ -17,6 +17,8 @@ yarn serve yarn build ``` +Built files needs to be moved from `dist` to `resources/server/api/ogc/static/landingpage`. + ### Lints and fixes files ``` yarn lint diff --git a/resources/server/src/landingpage/src/components/Metadata.vue b/resources/server/src/landingpage/src/components/Metadata.vue index 86dff7bbb76..3889ad32dc9 100644 --- a/resources/server/src/landingpage/src/components/Metadata.vue +++ b/resources/server/src/landingpage/src/components/Metadata.vue @@ -38,7 +38,7 @@ -