@data-fair/dev-server 1.6.0 → 1.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/local-development.js +5 -0
- package/dist/200.html +2 -2
- package/dist/_nuxt/9363572.js +1 -0
- package/dist/_nuxt/{c140857.js → bcc65de.js} +1 -1
- package/dist/index.html +2 -2
- package/package.json +1 -1
- package/server/app.js +37 -16
- package/dist/_nuxt/1d11d1a.js +0 -1
package/dist/200.html
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<!doctype html>
|
|
2
2
|
<html>
|
|
3
3
|
<head>
|
|
4
|
-
<title>DataFair - Dev server</title><meta data-n-head="1" charset="utf-8"><meta data-n-head="1" name="viewport" content="width=device-width,initial-scale=1"><meta data-n-head="1" data-hid="application" name="application-name" content="DataFair - Dev server"><meta data-n-head="1" data-hid="description" name="description" content="A development server for optimal development experience of data-fair applications."><meta data-n-head="1" data-hid="robots" name="robots" content="noindex"><link rel="preload" href="/_nuxt/
|
|
4
|
+
<title>DataFair - Dev server</title><meta data-n-head="1" charset="utf-8"><meta data-n-head="1" name="viewport" content="width=device-width,initial-scale=1"><meta data-n-head="1" data-hid="application" name="application-name" content="DataFair - Dev server"><meta data-n-head="1" data-hid="description" name="description" content="A development server for optimal development experience of data-fair applications."><meta data-n-head="1" data-hid="robots" name="robots" content="noindex"><link rel="preload" href="/_nuxt/bcc65de.js" as="script"><link rel="preload" href="/_nuxt/0c5f45a.js" as="script"><link rel="preload" href="/_nuxt/df98766.js" as="script"><link rel="preload" href="/_nuxt/b1b5217.js" as="script">
|
|
5
5
|
</head>
|
|
6
6
|
<body>
|
|
7
7
|
<div id="__nuxt"><style>#nuxt-loading{background:#fff;visibility:hidden;opacity:0;position:absolute;left:0;right:0;top:0;bottom:0;display:flex;justify-content:center;align-items:center;flex-direction:column;animation:nuxtLoadingIn 10s ease;-webkit-animation:nuxtLoadingIn 10s ease;animation-fill-mode:forwards;overflow:hidden}@keyframes nuxtLoadingIn{0%{visibility:hidden;opacity:0}20%{visibility:visible;opacity:0}100%{visibility:visible;opacity:1}}@-webkit-keyframes nuxtLoadingIn{0%{visibility:hidden;opacity:0}20%{visibility:visible;opacity:0}100%{visibility:visible;opacity:1}}#nuxt-loading>div,#nuxt-loading>div:after{border-radius:50%;width:5rem;height:5rem}#nuxt-loading>div{font-size:10px;position:relative;text-indent:-9999em;border:.5rem solid #f5f5f5;border-left:.5rem solid #000;-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:nuxtLoading 1.1s infinite linear;animation:nuxtLoading 1.1s infinite linear}#nuxt-loading.error>div{border-left:.5rem solid #ff4500;animation-duration:5s}@-webkit-keyframes nuxtLoading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes nuxtLoading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}</style><script>window.addEventListener("error",function(){var e=document.getElementById("nuxt-loading");e&&(e.className+=" error")})</script><div id="nuxt-loading" aria-live="polite" role="status"><div>Loading...</div></div></div><script>window.__NUXT__={config:{_app:{basePath:"/",assetsPath:"/_nuxt/",cdnURL:null}}}</script>
|
|
8
|
-
<script src="/_nuxt/
|
|
8
|
+
<script src="/_nuxt/bcc65de.js"></script><script src="/_nuxt/0c5f45a.js"></script><script src="/_nuxt/df98766.js"></script><script src="/_nuxt/b1b5217.js"></script></body>
|
|
9
9
|
</html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[6,5],{308:function(e,t){e.exports=function(e){e.options.__i18n=e.options.__i18n||[],e.options.__i18n.push('{"en":{"metadata":"Metadata read from index.html","missingApplicationName":"Metadata \\"application-name\\" is missing. Add a tag <meta name=\\"application-name\\" content=\\"my-application\\">","missingThumbnail":"Metadata \\"thumbnail\\" is missing. Add a tag <meta name=\\"thumbnail\\" content=\\"http://my/thumbnail.png\\">","missingTitle":"Add a tag <title lang=\\"{locale}\\">My title</title>","missingDesc":"Metadata \\"description\\" is missing. Add a tag <meta name=\\"description\\" lang=\\"{locale}\\" content=\\"My description\\">","missingKeywords":"Metadata \\"keywords\\" is missing. Add a tag <meta name=\\"keywords\\" lang=\\"{locale}\\" content=\\"My keyword\\">","missingVocabAccept":"Metadata \\"vocabulary-accept\\" is missing. Add a tag <meta name=\\"vocabulary-accept\\" content=\\"http://www.w3.org/2000/01/rdf-schema#label\\">","missingVocabRequire":"Metadata \\"vocabulary-require\\" is missing. Add a tag <meta name=\\"vocabulary-require\\" content=\\"http://www.w3.org/2003/01/geo/wgs84_pos#lat_long\\">","config":"Configuration form created from config-schema.json"}}'),delete e.options._Ctor}},312:function(e,t,n){"use strict";n.r(t);var r={components:{VIframe:n(311).a},data:function(){return{dialog:!1}}},o=n(63),l=n(127),c=n.n(l),d=n(358),m=n(328),f=n(264),v=n(659),component=Object(o.a)(r,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("v-dialog",{attrs:{scrollable:"","max-width":"1100px"},scopedSlots:e._u([{key:"activator",fn:function(t){var r=t.on;return[n("v-btn",e._g({attrs:{color:"primary",text:""}},r),[e._v("\n Simulate screenshot\n ")])]}}]),model:{value:e.dialog,callback:function(t){e.dialog=t},expression:"dialog"}},[e._v(" "),n("v-card",[n("v-card-title",{attrs:{"primary-title":""}},[e._v("\n Screenshot simulation\n ")]),e._v(" "),n("v-card-text",[n("p",[e._v("Data Fair will automatically render the visualization after each configuration change and take a screenshot to be used as a thumbnail.")]),e._v(" "),n("p",[e._v("The screenshot will be rendered in a box of 1050x450 pixels (21/9 resolution) and the URL will have the query parameter ?thumbnail=true.")]),e._v(" "),n("p",[e._v('For performance it is a recommended to call the window.triggerCapture method as soon as the application is fully rendered. For guidance look for messages prefixed with "[capture]" in your browser developper\'s console.')]),e._v(" "),e.dialog?n("v-iframe",{staticStyle:{border:"1px solid grey",width:"1050px"},attrs:{"aspect-ratio":21/9,src:"http://localhost:5888/app?thumbnail=true"}}):e._e()],1)],1)],1)}),[],!1,null,"c87a3f30",null);t.default=component.exports;c()(component,{VBtn:d.a,VCard:m.a,VCardText:f.b,VCardTitle:f.c,VDialog:v.a})},356:function(e,t,n){var content=n(641);content.__esModule&&(content=content.default),"string"==typeof content&&(content=[[e.i,content,""]]),content.locals&&(e.exports=content.locals);(0,n(61).default)("2068a7e4",content,!0,{sourceMap:!1})},357:function(e,t,n){"use strict";n.r(t);var r={computed:{locales:function(){return["en","fr"]}},methods:{setLocale:function(e){this.$i18n.setLocale(e),window.location.reload()}}},o=n(63),l=n(127),c=n.n(l),d=n(358),m=n(643),component=Object(o.a)(r,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.locales.length>1?n("v-speed-dial",{attrs:{direction:"bottom",transition:"fade-transition"},scopedSlots:e._u([{key:"activator",fn:function(){return[n("v-btn",{staticClass:"mx-2",attrs:{fab:"",small:""}},[e._v("\n "+e._s(e.$i18n.locale)+"\n ")])]},proxy:!0}],null,!1,4142082435)},[e._v(" "),e._l(e.locales.filter((function(t){return t!==e.$i18n.locale})),(function(t){return n("v-btn",{key:t,attrs:{fab:"",small:"",nuxt:""},on:{click:function(n){return e.setLocale(t)}}},[e._v("\n "+e._s(t)+"\n ")])}))],2):e._e()}),[],!1,null,null,null);t.default=component.exports;c()(component,{VBtn:d.a,VSpeedDial:m.a})},640:function(e,t,n){"use strict";n(356)},641:function(e,t,n){var r=n(60)(!1);r.push([e.i,".app-meta p[data-v-57858f63]{margin-bottom:4px}",""]),e.exports=r},642:function(e,t,n){"use strict";var r=n(308),o=n.n(r);t.default=o.a},658:function(e,t,n){"use strict";n.r(t);n(15),n(11),n(26),n(27),n(28),n(36),n(35),n(32);var r=n(3),o=n(4),l=(n(83),n(16),n(22),n(31),n(38),n(39),n(13),n(45),n(362)),c=n(644),d=(n(489),n(491),n(314)),m=n(620),f=n.n(m),v=(n(622),n(311)),h=n(312);function _(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return y(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return y(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var i=0,r=function(){};return{s:r,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,l=!0,c=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){c=!0,o=e},f:function(){try{l||null==n.return||n.return()}finally{if(c)throw o}}}}function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}function w(object,e){var t=Object.keys(object);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(object);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(object,e).enumerable}))),t.push.apply(t,n)}return t}function x(e){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{};i%2?w(Object(source),!0).forEach((function(t){Object(r.a)(e,t,source[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(source)):w(Object(source)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(source,t))}))}return e}var k=n(627),$=n(302),C=n(349),A=n(348),O=new $({strict:!1,allErrors:!0,messages:!1});O.addFormat("hexcolor",/^#[0-9A-Fa-f]{6,8}$/),C(O);var S={components:{VIframe:v.a,VJsf:c.a,ScreenshotSimulation:h.default},data:function(){return{error:null,schema:null,dataFair:null,editConfig:null,showPreview:!0,compileError:null,formValid:!1,iframeLog:!1,loading:!1,meta:null}},computed:{options:function(){return{context:{owner:this.dataFair&&this.dataFair.owner},locale:this.$i18n.locale,defaultLocale:this.$i18n.defaultLocale,rootDisplay:"expansion-panels",expansionPanelsProps:{value:0,hover:!0},dialogProps:{maxWidth:500,overlayOpacity:0},arrayItemCardProps:{outlined:!0,tile:!0},dialogCardProps:{outlined:!0}}},validationErrors:function(){if(this.schema&&this.schemaValidate)return this.schemaValidate(this.editConfig)?null:(A[this.$i18n.locale](this.schemaValidate.errors),this.schemaValidate.errors)}},created:function(){var e=this;return Object(o.a)(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e.dataFair={url:"https://STARTCONFIGALIAS-string-dataFair.url-ENDCONFIGALIAS",owner:{type:"STARTCONFIGALIAS-string-dataFair.owner.type-ENDCONFIGALIAS",id:"STARTCONFIGALIAS-string-dataFair.owner.id-ENDCONFIGALIAS"},apiKey:"STARTCONFIGALIAS-string-dataFair.apiKey-ENDCONFIGALIAS"},e.iframeLog="STARTCONFIGALIAS-boolean-iframeLog-ENDCONFIGALIAS",t.next=4,e.$axios.$get("http://localhost:5888/config");case 4:e.editConfig=t.sent,e.fetchInfo();case 6:case"end":return t.stop()}}),t)})))()},mounted:function(){var e=this;console.log("connect to to ws://localhost:5888"),this.socketDevServer=new l.a("ws://localhost:5888"),this.socketDevServer.onopen=function(){e.socketDevServer.onmessage=function(t){var data=JSON.parse(t.data);"app-error"===data.type&&(e.error=data.data.message)}},window.addEventListener("message",function(){var t=Object(o.a)(regeneratorRuntime.mark((function t(n){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(console.log("received message from iframe",n.data),"set-config"!==n.data.type){t.next=7;break}return e.loading=!0,e.editConfig=f.a.set(x({},e.editConfig),n.data.content.field,n.data.content.value),t.next=6,e.validate();case 6:e.loading=!1;case 7:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}())},destroyed:function(){this.socketDevServer&&this.socketDevServer.close()},methods:{empty:function(){var e=this;return Object(o.a)(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e.editConfig=null,t.next=3,e.save({});case 3:e.editConfig={};case 4:case"end":return t.stop()}}),t)})))()},validate:function(){var e=this;return Object(o.a)(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!e.$refs.form.validate()){t.next=4;break}return e.error=null,t.next=4,e.save(e.editConfig);case 4:case"end":return t.stop()}}),t)})))()},save:function(e){var t=this;return Object(o.a)(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.$axios.$put("http://localhost:5888/config",e);case 2:return n.next=4,t.reloadIframe();case 4:case"end":return n.stop()}}),n)})))()},fetchInfo:function(){var e=this;return Object(o.a)(regeneratorRuntime.mark((function t(){var n,r,o,l,html,c,head,meta,m,f,v,h,y,w,x,$,C,A,S,I,V;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e.loading=!0,t.next=3,e.$axios.$get("http://localhost:5888/app/index.html");case 3:if(o=t.sent,l=k.parse(o),html=l.childNodes.find((function(e){return"html"===e.tagName}))){t.next=8;break}throw new Error("broken HTML");case 8:if(c=(null===(n=html.attrs)||void 0===n||null===(r=n.find((function(a){return"lang"===a.name})))||void 0===r?void 0:r.value)||e.$i18n.defaultLocale,head=html.childNodes.find((function(e){return"head"===e.tagName}))){t.next=12;break}throw new Error("broken HTML, missing head tag");case 12:meta={title:{}},m=_(head.childNodes.filter((function(e){return"title"===e.tagName})));try{for(m.s();!(f=m.n()).done;)y=f.value,meta.title[(null==y||null===(v=y.attrs.find((function(a){return"lang"===a.name})))||void 0===v?void 0:v.value)||c]=null===(h=y.childNodes)||void 0===h?void 0:h[0].value}catch(e){m.e(e)}finally{m.f()}w=["application-name","description","keywords","vocabulary-accept","vocabulary-require","thumbnail"],x=["description","keywords"],$=["keywords","vocabulary-accept","vocabulary-require"],C=head.childNodes.filter((function(e){return"meta"===e.tagName})).map((function(e){var t,n,r;return{name:null===(t=e.attrs.find((function(a){return"name"===a.name})))||void 0===t?void 0:t.value,locale:(null===(n=e.attrs.find((function(a){return"lang"===a.name})))||void 0===n?void 0:n.value)||c,content:null===(r=e.attrs.find((function(a){return"content"===a.name})))||void 0===r?void 0:r.value}})).filter((function(e){return w.includes(e.name)})),A=_(C);try{for(A.s();!(S=A.n()).done;)I=S.value,x.includes(I.name)?(meta[I.name]=meta[I.name]||{},$.includes(I.name)?(meta[I.name][I.locale]=meta[I.name][I.locale]||[],I.content&&meta[I.name][I.locale].push(I.content)):meta[I.name][I.locale]=I.content):$.includes(I.name)?(meta[I.name]=meta[I.name]||[],I.content&&meta[I.name].push(I.content)):meta[I.name]=I.content}catch(e){A.e(e)}finally{A.f()}return e.meta=meta,e.schema=null,t.next=25,e.$axios.$get("http://localhost:5888/app/config-schema.json");case 25:(V=t.sent)["x-display"]="tabs",e.schema=d.a.resolve(V,{"~$locale~":e.$i18n.locale===e.$i18n.defaultLocale?e.$i18n.locale:[e.$i18n.locale,e.$i18n.defaultLocale]});try{e.schemaValidate=O.compile(e.schema),e.compileError=null}catch(t){console.error(t),e.compileError=t.message}e.loading=!1;case 30:case"end":return t.stop()}}),t)})))()},reloadIframe:function(){var e=this;return Object(o.a)(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e.showPreview=!1,t.next=3,new Promise((function(e){return setTimeout(e,10)}));case 3:e.showPreview=!0;case 4:case"end":return t.stop()}}),t)})))()}}},I=S,V=(n(640),n(63)),j=n(642),L=n(127),N=n.n(L),F=n(651),E=n(358),R=n(328),T=n(653),D=n(660),P=n(656),M=n(322),G=n(654),J=n(655),component=Object(V.a)(I,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("v-container",{staticClass:"pt-4",attrs:{fluid:""}},[n("v-row",[n("v-col",{attrs:{xs:"12",md:"6",lg:"4"}},[e.error?n("v-alert",{attrs:{color:"error"}},[e._v("\n "+e._s(e.error.message||e.error)+"\n ")]):e._e(),e._v(" "),n("v-row",{staticClass:"mb-2"},[n("v-spacer"),e._v(" "),n("v-btn",{staticClass:"mx-2",attrs:{fab:"",dark:"",small:"",color:"primary",loading:e.loading},on:{click:e.fetchInfo}},[n("v-icon",{attrs:{dark:""}},[e._v("\n mdi-refresh\n ")])],1)],1),e._v(" "),n("h2",{staticClass:"text-h6 mt-2"},[e._v("\n "+e._s(e.$t("config"))+"\n ")]),e._v(" "),n("v-form",{ref:"form",model:{value:e.formValid,callback:function(t){e.formValid=t},expression:"formValid"}},[n("v-alert",{attrs:{value:!!e.compileError,type:"error"}},[e._v("\n "+e._s(e.compileError)+"\n ")]),e._v(" "),n("v-alert",{attrs:{value:!!e.validationErrors&&e.formValid,type:"error"}},[e._v("\n Formulaire valide pourtant le modèle ne respecte pas le schéma:\n "),n("p",[e._v(e._s(e.validationErrors))])]),e._v(" "),e.schema&&e.editConfig&&!e.loading?n("v-jsf",{attrs:{schema:e.schema,options:e.options},on:{change:e.validate},model:{value:e.editConfig,callback:function(t){e.editConfig=t},expression:"editConfig"}}):e._e()],1),e._v(" "),n("v-row",{staticClass:"ma-2"},[n("v-spacer"),e._v(" "),n("v-btn",{attrs:{color:"warning"},on:{click:e.empty}},[e._v("\n Empty\n ")])],1),e._v(" "),e.meta?n("v-row",{staticClass:"mt-4"},[n("v-col",{staticClass:"app-meta"},[n("h2",{staticClass:"text-h6"},[e._v("\n "+e._s(e.$t("metadata"))+"\n ")]),e._v(" "),e.meta["application-name"]?n("p",[n("b",[e._v("application-name:")]),e._v(" "+e._s(e.meta["application-name"])+"\n ")]):n("v-alert",{attrs:{type:"error",dense:""}},[e._v("\n "+e._s(e.$t("missingApplicationName"))+"\n ")]),e._v(" "),e.meta.thumbnail?n("p",[n("b",[e._v("thumbnail:")]),e._v(" "),n("img",{attrs:{width:"25",src:e.meta.thumbnail.startsWith("http://")||e.meta.thumbnail.startsWith("https://")?e.meta.thumbnail:"http://localhost:5888/app/"+e.meta.thumbnail}})]):n("v-alert",{attrs:{type:"error",dense:""}},[e._v("\n "+e._s(e.$t("missingThumbnail"))+"\n ")]),e._v(" "),e.meta.title&&e.meta.title[e.$i18n.locale]?n("p",[n("b",[e._v("title:")]),e._v(" "+e._s(e.meta.title[e.$i18n.locale])+"\n ")]):n("v-alert",{attrs:{type:"error",dense:""}},[e._v("\n "+e._s(e.$t("missingTitle",{locale:e.$i18n.locale}))+"\n ")]),e._v(" "),e.meta.description&&e.meta.description[e.$i18n.locale]?n("p",[n("b",[e._v("description:")]),e._v(" "+e._s(e.meta.description[e.$i18n.locale])+"\n ")]):n("v-alert",{attrs:{type:"error",dense:""}},[e._v("\n "+e._s(e.$t("missingDesc",{locale:e.$i18n.locale}))+"\n ")]),e._v(" "),e.meta.keywords&&e.meta.keywords[e.$i18n.locale]?n("p",[n("b",[e._v("keywords:")]),e._v(" "+e._s(e.meta.keywords[e.$i18n.locale])+"\n ")]):n("v-alert",{attrs:{type:"error",dense:""}},[e._v("\n "+e._s(e.$t("missingKeywords",{locale:e.$i18n.locale}))+"\n ")]),e._v(" "),e.meta["vocabulary-accept"]&&e.meta["vocabulary-accept"]?n("p",[n("b",[e._v("vocabulary-accept:")]),e._v(" "+e._s(e.meta["vocabulary-accept"])+"\n ")]):n("v-alert",{attrs:{type:"info",dense:""}},[e._v("\n "+e._s(e.$t("missingVocabAccept",{locale:e.$i18n.locale}))+"\n ")]),e._v(" "),e.meta["vocabulary-require"]&&e.meta["vocabulary-require"]?n("p",[n("b",[e._v("vocabulary-require:")]),e._v(" "+e._s(e.meta["vocabulary-require"])+"\n ")]):n("v-alert",{attrs:{type:"info",dense:""}},[e._v("\n "+e._s(e.$t("missingVocabRequire",{locale:e.$i18n.locale}))+"\n ")])],1)],1):e._e()],1),e._v(" "),n("v-col",{attrs:{xs:"12",md:"6",lg:"8"}},[n("v-row",{staticClass:"mb-2"},[n("v-spacer"),e._v(" "),n("screenshot-simulation"),e._v(" "),n("v-btn",{staticClass:"mx-2",attrs:{fab:"",dark:"",small:"",color:"primary"},on:{click:e.reloadIframe}},[n("v-icon",{attrs:{dark:""}},[e._v("\n mdi-refresh\n ")])],1),e._v(" "),n("lang-switcher")],1),e._v(" "),n("v-card",[e.showPreview?n("v-iframe",{attrs:{src:"http://localhost:5888/app?draft=true",log:e.iframeLog}}):e._e()],1)],1)],1)],1)}),[],!1,null,"57858f63",null);"function"==typeof j.default&&Object(j.default)(component);t.default=component.exports;N()(component,{ScreenshotSimulation:n(312).default,LangSwitcher:n(357).default}),N()(component,{VAlert:F.a,VBtn:E.a,VCard:R.a,VCol:T.a,VContainer:D.a,VForm:P.a,VIcon:M.a,VRow:G.a,VSpacer:J.a})}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e){function r(data){for(var r,n,f=data[0],l=data[1],d=data[2],i=0,h=[];i<f.length;i++)n=f[i],Object.prototype.hasOwnProperty.call(o,n)&&o[n]&&h.push(o[n][0]),o[n]=0;for(r in l)Object.prototype.hasOwnProperty.call(l,r)&&(e[r]=l[r]);for(v&&v(data);h.length;)h.shift()();return c.push.apply(c,d||[]),t()}function t(){for(var e,i=0;i<c.length;i++){for(var r=c[i],t=!0,n=1;n<r.length;n++){var l=r[n];0!==o[l]&&(t=!1)}t&&(c.splice(i--,1),e=f(f.s=r[0]))}return e}var n={},o={7:0},c=[];function f(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,f),t.l=!0,t.exports}f.e=function(e){var r=[],t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise((function(r,n){t=o[e]=[r,n]}));r.push(t[2]=n);var c,script=document.createElement("script");script.charset="utf-8",script.timeout=120,f.nc&&script.setAttribute("nonce",f.nc),script.src=function(e){return f.p+""+{0:"b68e30f",1:"553dac1",4:"d6dd90c",5:"898243c",6:"
|
|
1
|
+
!function(e){function r(data){for(var r,n,f=data[0],l=data[1],d=data[2],i=0,h=[];i<f.length;i++)n=f[i],Object.prototype.hasOwnProperty.call(o,n)&&o[n]&&h.push(o[n][0]),o[n]=0;for(r in l)Object.prototype.hasOwnProperty.call(l,r)&&(e[r]=l[r]);for(v&&v(data);h.length;)h.shift()();return c.push.apply(c,d||[]),t()}function t(){for(var e,i=0;i<c.length;i++){for(var r=c[i],t=!0,n=1;n<r.length;n++){var l=r[n];0!==o[l]&&(t=!1)}t&&(c.splice(i--,1),e=f(f.s=r[0]))}return e}var n={},o={7:0},c=[];function f(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,f),t.l=!0,t.exports}f.e=function(e){var r=[],t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise((function(r,n){t=o[e]=[r,n]}));r.push(t[2]=n);var c,script=document.createElement("script");script.charset="utf-8",script.timeout=120,f.nc&&script.setAttribute("nonce",f.nc),script.src=function(e){return f.p+""+{0:"b68e30f",1:"553dac1",4:"d6dd90c",5:"898243c",6:"9363572",9:"5d119d6",10:"4f0f04d"}[e]+".js"}(e);var l=new Error;c=function(r){script.onerror=script.onload=null,clearTimeout(d);var t=o[e];if(0!==t){if(t){var n=r&&("load"===r.type?"missing":r.type),c=r&&r.target&&r.target.src;l.message="Loading chunk "+e+" failed.\n("+n+": "+c+")",l.name="ChunkLoadError",l.type=n,l.request=c,t[1](l)}o[e]=void 0}};var d=setTimeout((function(){c({type:"timeout",target:script})}),12e4);script.onerror=script.onload=c,document.head.appendChild(script)}return Promise.all(r)},f.m=e,f.c=n,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,r){if(1&r&&(e=f(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)f.d(t,n,function(r){return e[r]}.bind(null,n));return t},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(object,e){return Object.prototype.hasOwnProperty.call(object,e)},f.p="/_nuxt/",f.oe=function(e){throw console.error(e),e};var l=window.webpackJsonp=window.webpackJsonp||[],d=l.push.bind(l);l.push=r,l=l.slice();for(var i=0;i<l.length;i++)r(l[i]);var v=d;t()}([]);
|
package/dist/index.html
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<!doctype html>
|
|
2
2
|
<html>
|
|
3
3
|
<head>
|
|
4
|
-
<title>DataFair - Dev server</title><meta data-n-head="1" charset="utf-8"><meta data-n-head="1" name="viewport" content="width=device-width,initial-scale=1"><meta data-n-head="1" data-hid="application" name="application-name" content="DataFair - Dev server"><meta data-n-head="1" data-hid="description" name="description" content="A development server for optimal development experience of data-fair applications."><meta data-n-head="1" data-hid="robots" name="robots" content="noindex"><link rel="preload" href="/_nuxt/
|
|
4
|
+
<title>DataFair - Dev server</title><meta data-n-head="1" charset="utf-8"><meta data-n-head="1" name="viewport" content="width=device-width,initial-scale=1"><meta data-n-head="1" data-hid="application" name="application-name" content="DataFair - Dev server"><meta data-n-head="1" data-hid="description" name="description" content="A development server for optimal development experience of data-fair applications."><meta data-n-head="1" data-hid="robots" name="robots" content="noindex"><link rel="preload" href="/_nuxt/bcc65de.js" as="script"><link rel="preload" href="/_nuxt/0c5f45a.js" as="script"><link rel="preload" href="/_nuxt/df98766.js" as="script"><link rel="preload" href="/_nuxt/b1b5217.js" as="script">
|
|
5
5
|
</head>
|
|
6
6
|
<body>
|
|
7
7
|
<div id="__nuxt"><style>#nuxt-loading{background:#fff;visibility:hidden;opacity:0;position:absolute;left:0;right:0;top:0;bottom:0;display:flex;justify-content:center;align-items:center;flex-direction:column;animation:nuxtLoadingIn 10s ease;-webkit-animation:nuxtLoadingIn 10s ease;animation-fill-mode:forwards;overflow:hidden}@keyframes nuxtLoadingIn{0%{visibility:hidden;opacity:0}20%{visibility:visible;opacity:0}100%{visibility:visible;opacity:1}}@-webkit-keyframes nuxtLoadingIn{0%{visibility:hidden;opacity:0}20%{visibility:visible;opacity:0}100%{visibility:visible;opacity:1}}#nuxt-loading>div,#nuxt-loading>div:after{border-radius:50%;width:5rem;height:5rem}#nuxt-loading>div{font-size:10px;position:relative;text-indent:-9999em;border:.5rem solid #f5f5f5;border-left:.5rem solid #000;-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:nuxtLoading 1.1s infinite linear;animation:nuxtLoading 1.1s infinite linear}#nuxt-loading.error>div{border-left:.5rem solid #ff4500;animation-duration:5s}@-webkit-keyframes nuxtLoading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes nuxtLoading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}</style><script>window.addEventListener("error",function(){var e=document.getElementById("nuxt-loading");e&&(e.className+=" error")})</script><div id="nuxt-loading" aria-live="polite" role="status"><div>Loading...</div></div></div><script>window.__NUXT__={config:{_app:{basePath:"/",assetsPath:"/_nuxt/",cdnURL:null}}}</script>
|
|
8
|
-
<script src="/_nuxt/
|
|
8
|
+
<script src="/_nuxt/bcc65de.js"></script><script src="/_nuxt/0c5f45a.js"></script><script src="/_nuxt/df98766.js"></script><script src="/_nuxt/b1b5217.js"></script></body>
|
|
9
9
|
</html>
|
package/package.json
CHANGED
package/server/app.js
CHANGED
|
@@ -7,30 +7,49 @@ const config = require('config')
|
|
|
7
7
|
const eventToPromise = require('event-to-promise')
|
|
8
8
|
const http = require('http')
|
|
9
9
|
const fs = require('fs-extra')
|
|
10
|
-
const { createProxyMiddleware } = require('http-proxy-middleware')
|
|
10
|
+
const { createProxyMiddleware, fixRequestBody } = require('http-proxy-middleware')
|
|
11
11
|
const cors = require('cors')
|
|
12
12
|
const kill = require('tree-kill')
|
|
13
13
|
const escapeStringRegexp = require('escape-string-regexp')
|
|
14
14
|
const parse5 = require('parse5')
|
|
15
|
-
const WebSocket = require('ws')
|
|
15
|
+
const { WebSocket, WebSocketServer } = require('ws')
|
|
16
16
|
const debug = require('debug')('df-dev-server')
|
|
17
17
|
const chalk = require('chalk')
|
|
18
18
|
|
|
19
19
|
const app = express()
|
|
20
20
|
const server = http.createServer(app)
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
wss
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
22
|
+
// web socket server, used both by dev-server UI (opened on / path)
|
|
23
|
+
// and by application (opened on /data-fair), in this case we transmit all messages to and from data-fair
|
|
24
|
+
const wss = new WebSocketServer({ noServer: true })
|
|
25
|
+
let devServerWS, dataFairWS
|
|
26
|
+
server.on('upgrade', function upgrade (req, socket, head) {
|
|
27
|
+
wss.handleUpgrade(req, socket, head, (ws) => {
|
|
28
|
+
if (req.url === '/data-fair') {
|
|
29
|
+
console.log('data-fair websocket connection from application')
|
|
30
|
+
if (dataFairWS) dataFairWS.terminate()
|
|
31
|
+
dataFairWS = ws
|
|
32
|
+
ws.on('message', (data) => {
|
|
33
|
+
if (dataFairOutputWS) {
|
|
34
|
+
const message = JSON.parse(data)
|
|
35
|
+
if (message.type === 'subscribe') message.apiKey = config.dataFair.apiKey
|
|
36
|
+
dataFairOutputWS.send(JSON.stringify(message))
|
|
37
|
+
}
|
|
38
|
+
})
|
|
39
|
+
} else {
|
|
40
|
+
if (devServerWS) devServerWS.terminate()
|
|
41
|
+
devServerWS = ws
|
|
42
|
+
}
|
|
43
|
+
wss.emit('connection', ws, req)
|
|
30
44
|
})
|
|
31
|
-
ws.send(JSON.stringify({ type: 'ping' }))
|
|
32
45
|
})
|
|
33
46
|
|
|
47
|
+
const dfWsUrl = config.dataFair.url.replace('http://', 'ws://').replace('https://', 'wss://') + '/'
|
|
48
|
+
const dataFairOutputWS = new WebSocket(dfWsUrl)
|
|
49
|
+
dataFairOutputWS.on('open', () => dataFairOutputWS.send('connect to external websocket server', dfWsUrl))
|
|
50
|
+
dataFairOutputWS.on('message', (data) => { if (dataFairWS) dataFairWS.send(data.toString()) })
|
|
51
|
+
dataFairOutputWS.on('error', (err) => console.error('failed to connect to external websocket server', dfWsUrl, err))
|
|
52
|
+
|
|
34
53
|
app.use(bodyParser.json())
|
|
35
54
|
app.use(cors())
|
|
36
55
|
|
|
@@ -47,7 +66,8 @@ app.put('/config', (req, res, next) => {
|
|
|
47
66
|
})
|
|
48
67
|
app.post('/config/error', (req, res) => {
|
|
49
68
|
console.log('Application sent an error', req.body)
|
|
50
|
-
if (
|
|
69
|
+
if (devServerWS) devServerWS.send(JSON.stringify({ type: 'app-error', data: req.body }))
|
|
70
|
+
else console.error('no dev-server websocket open to send error to')
|
|
51
71
|
res.send()
|
|
52
72
|
})
|
|
53
73
|
|
|
@@ -58,7 +78,6 @@ app.use('/app', createProxyMiddleware({
|
|
|
58
78
|
pathRewrite: { '^/app': appUrl.pathname === '/' ? '' : appUrl.pathname },
|
|
59
79
|
secure: false,
|
|
60
80
|
changeOrigin: true,
|
|
61
|
-
ws: true,
|
|
62
81
|
selfHandleResponse: true, // so that the onProxyRes takes care of sending the response
|
|
63
82
|
onProxyReq (proxyReq, req, res) {
|
|
64
83
|
proxyReq.setHeader('Accept-Encoding', 'identity') // disable compression
|
|
@@ -160,13 +179,14 @@ app.use('/data-fair', createProxyMiddleware({
|
|
|
160
179
|
pathRewrite: { '^/data-fair': dfUrl.pathname },
|
|
161
180
|
secure: false,
|
|
162
181
|
changeOrigin: true,
|
|
163
|
-
ws: true,
|
|
164
182
|
selfHandleResponse: true, // so that the onProxyRes takes care of sending the response
|
|
165
|
-
onProxyReq (proxyReq) {
|
|
183
|
+
onProxyReq (proxyReq, req, res) {
|
|
166
184
|
// no gzip so that we can process the content
|
|
167
185
|
proxyReq.setHeader('accept-encoding', 'identity')
|
|
168
186
|
proxyReq.setHeader('cookie', '')
|
|
169
187
|
if (config.dataFair.apiKey) proxyReq.setHeader('x-apiKey', config.dataFair.apiKey)
|
|
188
|
+
// body was already parsed by body-parser and no longer available as a stream
|
|
189
|
+
fixRequestBody(proxyReq, req, res)
|
|
170
190
|
},
|
|
171
191
|
onProxyRes (proxyRes, req, res) {
|
|
172
192
|
if (proxyRes.headers['content-type'] && proxyRes.headers['content-type'].startsWith('application/json')) {
|
|
@@ -227,7 +247,8 @@ exports.run = async () => {
|
|
|
227
247
|
|
|
228
248
|
exports.stop = async () => {
|
|
229
249
|
if (spawnedDevSrc) kill(spawnedDevSrc.pid)
|
|
230
|
-
if (
|
|
250
|
+
if (devServerWS) devServerWS.terminate()
|
|
251
|
+
if (dataFairWS) dataFairWS.terminate()
|
|
231
252
|
server.close()
|
|
232
253
|
await eventToPromise(server, 'close')
|
|
233
254
|
await app.get('client').close()
|
package/dist/_nuxt/1d11d1a.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[6,5],{308:function(e,t){e.exports=function(e){e.options.__i18n=e.options.__i18n||[],e.options.__i18n.push('{"en":{"metadata":"Metadata read from index.html","missingApplicationName":"Metadata \\"application-name\\" is missing. Add a tag <meta name=\\"application-name\\" content=\\"my-application\\">","missingThumbnail":"Metadata \\"thumbnail\\" is missing. Add a tag <meta name=\\"thumbnail\\" content=\\"http://my/thumbnail.png\\">","missingTitle":"Add a tag <title lang=\\"{locale}\\">My title</title>","missingDesc":"Metadata \\"description\\" is missing. Add a tag <meta name=\\"description\\" lang=\\"{locale}\\" content=\\"My description\\">","missingKeywords":"Metadata \\"keywords\\" is missing. Add a tag <meta name=\\"keywords\\" lang=\\"{locale}\\" content=\\"My keyword\\">","missingVocabAccept":"Metadata \\"vocabulary-accept\\" is missing. Add a tag <meta name=\\"vocabulary-accept\\" content=\\"http://www.w3.org/2000/01/rdf-schema#label\\">","missingVocabRequire":"Metadata \\"vocabulary-require\\" is missing. Add a tag <meta name=\\"vocabulary-require\\" content=\\"http://www.w3.org/2003/01/geo/wgs84_pos#lat_long\\">","config":"Configuration form created from config-schema.json"}}'),delete e.options._Ctor}},312:function(e,t,n){"use strict";n.r(t);var r={components:{VIframe:n(311).a},data:function(){return{dialog:!1}}},o=n(63),l=n(127),c=n.n(l),d=n(358),m=n(328),f=n(264),v=n(659),component=Object(o.a)(r,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("v-dialog",{attrs:{scrollable:"","max-width":"1100px"},scopedSlots:e._u([{key:"activator",fn:function(t){var r=t.on;return[n("v-btn",e._g({attrs:{color:"primary",text:""}},r),[e._v("\n Simulate screenshot\n ")])]}}]),model:{value:e.dialog,callback:function(t){e.dialog=t},expression:"dialog"}},[e._v(" "),n("v-card",[n("v-card-title",{attrs:{"primary-title":""}},[e._v("\n Screenshot simulation\n ")]),e._v(" "),n("v-card-text",[n("p",[e._v("Data Fair will automatically render the visualization after each configuration change and take a screenshot to be used as a thumbnail.")]),e._v(" "),n("p",[e._v("The screenshot will be rendered in a box of 1050x450 pixels (21/9 resolution) and the URL will have the query parameter ?thumbnail=true.")]),e._v(" "),n("p",[e._v('For performance it is a recommended to call the window.triggerCapture method as soon as the application is fully rendered. For guidance look for messages prefixed with "[capture]" in your browser developper\'s console.')]),e._v(" "),e.dialog?n("v-iframe",{staticStyle:{border:"1px solid grey",width:"1050px"},attrs:{"aspect-ratio":21/9,src:"http://localhost:5888/app?thumbnail=true"}}):e._e()],1)],1)],1)}),[],!1,null,"c87a3f30",null);t.default=component.exports;c()(component,{VBtn:d.a,VCard:m.a,VCardText:f.b,VCardTitle:f.c,VDialog:v.a})},356:function(e,t,n){var content=n(641);content.__esModule&&(content=content.default),"string"==typeof content&&(content=[[e.i,content,""]]),content.locals&&(e.exports=content.locals);(0,n(61).default)("1c80b324",content,!0,{sourceMap:!1})},357:function(e,t,n){"use strict";n.r(t);var r={computed:{locales:function(){return["en","fr"]}},methods:{setLocale:function(e){this.$i18n.setLocale(e),window.location.reload()}}},o=n(63),l=n(127),c=n.n(l),d=n(358),m=n(643),component=Object(o.a)(r,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.locales.length>1?n("v-speed-dial",{attrs:{direction:"bottom",transition:"fade-transition"},scopedSlots:e._u([{key:"activator",fn:function(){return[n("v-btn",{staticClass:"mx-2",attrs:{fab:"",small:""}},[e._v("\n "+e._s(e.$i18n.locale)+"\n ")])]},proxy:!0}],null,!1,4142082435)},[e._v(" "),e._l(e.locales.filter((function(t){return t!==e.$i18n.locale})),(function(t){return n("v-btn",{key:t,attrs:{fab:"",small:"",nuxt:""},on:{click:function(n){return e.setLocale(t)}}},[e._v("\n "+e._s(t)+"\n ")])}))],2):e._e()}),[],!1,null,null,null);t.default=component.exports;c()(component,{VBtn:d.a,VSpeedDial:m.a})},640:function(e,t,n){"use strict";n(356)},641:function(e,t,n){var r=n(60)(!1);r.push([e.i,".app-meta p[data-v-8fe84b72]{margin-bottom:4px}",""]),e.exports=r},642:function(e,t,n){"use strict";var r=n(308),o=n.n(r);t.default=o.a},658:function(e,t,n){"use strict";n.r(t);n(15),n(11),n(26),n(27),n(28),n(36),n(35),n(32);var r=n(3),o=n(4),l=(n(83),n(16),n(22),n(31),n(38),n(39),n(13),n(45),n(362)),c=n(644),d=(n(489),n(491),n(314)),m=n(620),f=n.n(m),v=(n(622),n(311)),h=n(312);function _(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return y(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return y(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var i=0,r=function(){};return{s:r,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,l=!0,c=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){c=!0,o=e},f:function(){try{l||null==n.return||n.return()}finally{if(c)throw o}}}}function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}function w(object,e){var t=Object.keys(object);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(object);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(object,e).enumerable}))),t.push.apply(t,n)}return t}var x=n(627),$=n(302),k=n(349),C=n(348),A=new $({strict:!1,allErrors:!0,messages:!1});A.addFormat("hexcolor",/^#[0-9A-Fa-f]{6,8}$/),k(A);var O={components:{VIframe:v.a,VJsf:c.a,ScreenshotSimulation:h.default},data:function(){return{error:null,schema:null,dataFair:null,editConfig:null,showPreview:!0,compileError:null,formValid:!1,iframeLog:!1,loading:!1,meta:null}},computed:{options:function(){return{context:{owner:this.dataFair&&this.dataFair.owner},locale:this.$i18n.locale,defaultLocale:this.$i18n.defaultLocale,rootDisplay:"expansion-panels",expansionPanelsProps:{value:0,hover:!0},dialogProps:{maxWidth:500,overlayOpacity:0},arrayItemCardProps:{outlined:!0,tile:!0},dialogCardProps:{outlined:!0}}},validationErrors:function(){if(this.schema&&this.schemaValidate)return this.schemaValidate(this.editConfig)?null:(C[this.$i18n.locale](this.schemaValidate.errors),this.schemaValidate.errors)}},created:function(){var e=this;return Object(o.a)(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e.dataFair={url:"https://STARTCONFIGALIAS-string-dataFair.url-ENDCONFIGALIAS",owner:{type:"STARTCONFIGALIAS-string-dataFair.owner.type-ENDCONFIGALIAS",id:"STARTCONFIGALIAS-string-dataFair.owner.id-ENDCONFIGALIAS"},apiKey:"STARTCONFIGALIAS-string-dataFair.apiKey-ENDCONFIGALIAS"},e.iframeLog="STARTCONFIGALIAS-boolean-iframeLog-ENDCONFIGALIAS",t.next=4,e.$axios.$get("http://localhost:5888/config");case 4:e.editConfig=t.sent,e.fetchInfo();case 6:case"end":return t.stop()}}),t)})))()},mounted:function(){var e=this;console.log("connect to to ws://localhost:5888"),this.socketDevServer=new l.a("ws://localhost:5888"),this.socketDevServer.onopen=function(){e.socketDevServer.onmessage=function(t){var data=JSON.parse(t.data);"app-error"===data.type&&(e.error=data.data.message),"ping"===data.type&&e.socketDevServer.send(JSON.stringify({type:"pong"}))}},window.addEventListener("message",(function(t){console.log("received message from iframe",t.data),"set-config"===t.data.type&&(e.editConfig=f.a.set(function(e){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{};i%2?w(Object(source),!0).forEach((function(t){Object(r.a)(e,t,source[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(source)):w(Object(source)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(source,t))}))}return e}({},e.editConfig),t.data.content.field,t.data.content.value),e.validate())}))},destroyed:function(){console.log("destroyed"),this.socketDevServer&&this.socketDevServer.close()},methods:{empty:function(){var e=this;return Object(o.a)(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e.editConfig=null,t.next=3,e.save({});case 3:e.editConfig={};case 4:case"end":return t.stop()}}),t)})))()},validate:function(){var e=arguments,t=this;return Object(o.a)(regeneratorRuntime.mark((function n(){var r;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:r=!(e.length>0&&void 0!==e[0])||e[0],t.$refs.form.validate()&&(t.save(t.editConfig,r),t.error=null);case 2:case"end":return n.stop()}}),n)})))()},save:function(e){var t=this;return Object(o.a)(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.$axios.$put("http://localhost:5888/config",e);case 2:return n.next=4,t.reloadIframe();case 4:case"end":return n.stop()}}),n)})))()},fetchInfo:function(){var e=this;return Object(o.a)(regeneratorRuntime.mark((function t(){var n,r,o,l,html,c,head,meta,m,f,v,h,y,w,$,k,C,O,S,I,V;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e.loading=!0,t.next=3,e.$axios.$get("http://localhost:5888/app/index.html");case 3:if(o=t.sent,l=x.parse(o),html=l.childNodes.find((function(e){return"html"===e.tagName}))){t.next=8;break}throw new Error("broken HTML");case 8:if(c=(null===(n=html.attrs)||void 0===n||null===(r=n.find((function(a){return"lang"===a.name})))||void 0===r?void 0:r.value)||e.$i18n.defaultLocale,head=html.childNodes.find((function(e){return"head"===e.tagName}))){t.next=12;break}throw new Error("broken HTML, missing head tag");case 12:meta={title:{}},m=_(head.childNodes.filter((function(e){return"title"===e.tagName})));try{for(m.s();!(f=m.n()).done;)y=f.value,meta.title[(null==y||null===(v=y.attrs.find((function(a){return"lang"===a.name})))||void 0===v?void 0:v.value)||c]=null===(h=y.childNodes)||void 0===h?void 0:h[0].value}catch(e){m.e(e)}finally{m.f()}w=["application-name","description","keywords","vocabulary-accept","vocabulary-require","thumbnail"],$=["description","keywords"],k=["keywords","vocabulary-accept","vocabulary-require"],C=head.childNodes.filter((function(e){return"meta"===e.tagName})).map((function(e){var t,n,r;return{name:null===(t=e.attrs.find((function(a){return"name"===a.name})))||void 0===t?void 0:t.value,locale:(null===(n=e.attrs.find((function(a){return"lang"===a.name})))||void 0===n?void 0:n.value)||c,content:null===(r=e.attrs.find((function(a){return"content"===a.name})))||void 0===r?void 0:r.value}})).filter((function(e){return w.includes(e.name)})),O=_(C);try{for(O.s();!(S=O.n()).done;)I=S.value,$.includes(I.name)?(meta[I.name]=meta[I.name]||{},k.includes(I.name)?(meta[I.name][I.locale]=meta[I.name][I.locale]||[],I.content&&meta[I.name][I.locale].push(I.content)):meta[I.name][I.locale]=I.content):k.includes(I.name)?(meta[I.name]=meta[I.name]||[],I.content&&meta[I.name].push(I.content)):meta[I.name]=I.content}catch(e){O.e(e)}finally{O.f()}return e.meta=meta,e.schema=null,t.next=25,e.$axios.$get("http://localhost:5888/app/config-schema.json");case 25:(V=t.sent)["x-display"]="tabs",e.schema=d.a.resolve(V,{"~$locale~":e.$i18n.locale===e.$i18n.defaultLocale?e.$i18n.locale:[e.$i18n.locale,e.$i18n.defaultLocale]});try{e.schemaValidate=A.compile(e.schema),e.compileError=null}catch(t){console.error(t),e.compileError=t.message}e.loading=!1;case 30:case"end":return t.stop()}}),t)})))()},reloadIframe:function(){var e=this;return Object(o.a)(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e.showPreview=!1,t.next=3,new Promise((function(e){return setTimeout(e,10)}));case 3:e.showPreview=!0;case 4:case"end":return t.stop()}}),t)})))()}}},S=O,I=(n(640),n(63)),V=n(642),j=n(127),N=n.n(j),L=n(651),F=n(358),E=n(328),D=n(653),R=n(660),T=n(656),P=n(322),M=n(654),G=n(655),component=Object(I.a)(S,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("v-container",{staticClass:"pt-4",attrs:{fluid:""}},[n("v-row",[n("v-col",{attrs:{xs:"12",md:"6",lg:"4"}},[e.error?n("v-alert",{attrs:{color:"error"}},[e._v("\n "+e._s(e.error.message||e.error)+"\n ")]):e._e(),e._v(" "),n("v-row",{staticClass:"mb-2"},[n("v-spacer"),e._v(" "),n("v-btn",{staticClass:"mx-2",attrs:{fab:"",dark:"",small:"",color:"primary",loading:e.loading},on:{click:e.fetchInfo}},[n("v-icon",{attrs:{dark:""}},[e._v("\n mdi-refresh\n ")])],1)],1),e._v(" "),n("h2",{staticClass:"text-h6 mt-2"},[e._v("\n "+e._s(e.$t("config"))+"\n ")]),e._v(" "),n("v-form",{ref:"form",model:{value:e.formValid,callback:function(t){e.formValid=t},expression:"formValid"}},[n("v-alert",{attrs:{value:!!e.compileError,type:"error"}},[e._v("\n "+e._s(e.compileError)+"\n ")]),e._v(" "),n("v-alert",{attrs:{value:!!e.validationErrors&&e.formValid,type:"error"}},[e._v("\n Formulaire valide pourtant le modèle ne respecte pas le schéma:\n "),n("p",[e._v(e._s(e.validationErrors))])]),e._v(" "),e.schema&&e.editConfig?n("v-jsf",{attrs:{schema:e.schema,options:e.options},on:{change:e.validate},model:{value:e.editConfig,callback:function(t){e.editConfig=t},expression:"editConfig"}}):e._e()],1),e._v(" "),n("v-row",{staticClass:"ma-2"},[n("v-spacer"),e._v(" "),n("v-btn",{attrs:{color:"warning"},on:{click:e.empty}},[e._v("\n Empty\n ")])],1),e._v(" "),e.meta?n("v-row",{staticClass:"mt-4"},[n("v-col",{staticClass:"app-meta"},[n("h2",{staticClass:"text-h6"},[e._v("\n "+e._s(e.$t("metadata"))+"\n ")]),e._v(" "),e.meta["application-name"]?n("p",[n("b",[e._v("application-name:")]),e._v(" "+e._s(e.meta["application-name"])+"\n ")]):n("v-alert",{attrs:{type:"error",dense:""}},[e._v("\n "+e._s(e.$t("missingApplicationName"))+"\n ")]),e._v(" "),e.meta.thumbnail?n("p",[n("b",[e._v("thumbnail:")]),e._v(" "),n("img",{attrs:{width:"25",src:e.meta.thumbnail.startsWith("http://")||e.meta.thumbnail.startsWith("https://")?e.meta.thumbnail:"http://localhost:5888/app/"+e.meta.thumbnail}})]):n("v-alert",{attrs:{type:"error",dense:""}},[e._v("\n "+e._s(e.$t("missingThumbnail"))+"\n ")]),e._v(" "),e.meta.title&&e.meta.title[e.$i18n.locale]?n("p",[n("b",[e._v("title:")]),e._v(" "+e._s(e.meta.title[e.$i18n.locale])+"\n ")]):n("v-alert",{attrs:{type:"error",dense:""}},[e._v("\n "+e._s(e.$t("missingTitle",{locale:e.$i18n.locale}))+"\n ")]),e._v(" "),e.meta.description&&e.meta.description[e.$i18n.locale]?n("p",[n("b",[e._v("description:")]),e._v(" "+e._s(e.meta.description[e.$i18n.locale])+"\n ")]):n("v-alert",{attrs:{type:"error",dense:""}},[e._v("\n "+e._s(e.$t("missingDesc",{locale:e.$i18n.locale}))+"\n ")]),e._v(" "),e.meta.keywords&&e.meta.keywords[e.$i18n.locale]?n("p",[n("b",[e._v("keywords:")]),e._v(" "+e._s(e.meta.keywords[e.$i18n.locale])+"\n ")]):n("v-alert",{attrs:{type:"error",dense:""}},[e._v("\n "+e._s(e.$t("missingKeywords",{locale:e.$i18n.locale}))+"\n ")]),e._v(" "),e.meta["vocabulary-accept"]&&e.meta["vocabulary-accept"]?n("p",[n("b",[e._v("vocabulary-accept:")]),e._v(" "+e._s(e.meta["vocabulary-accept"])+"\n ")]):n("v-alert",{attrs:{type:"info",dense:""}},[e._v("\n "+e._s(e.$t("missingVocabAccept",{locale:e.$i18n.locale}))+"\n ")]),e._v(" "),e.meta["vocabulary-require"]&&e.meta["vocabulary-require"]?n("p",[n("b",[e._v("vocabulary-require:")]),e._v(" "+e._s(e.meta["vocabulary-require"])+"\n ")]):n("v-alert",{attrs:{type:"info",dense:""}},[e._v("\n "+e._s(e.$t("missingVocabRequire",{locale:e.$i18n.locale}))+"\n ")])],1)],1):e._e()],1),e._v(" "),n("v-col",{attrs:{xs:"12",md:"6",lg:"8"}},[n("v-row",{staticClass:"mb-2"},[n("v-spacer"),e._v(" "),n("screenshot-simulation"),e._v(" "),n("v-btn",{staticClass:"mx-2",attrs:{fab:"",dark:"",small:"",color:"primary"},on:{click:e.reloadIframe}},[n("v-icon",{attrs:{dark:""}},[e._v("\n mdi-refresh\n ")])],1),e._v(" "),n("lang-switcher")],1),e._v(" "),n("v-card",[e.showPreview?n("v-iframe",{attrs:{src:"http://localhost:5888/app?draft=true",log:e.iframeLog}}):e._e()],1)],1)],1)],1)}),[],!1,null,"8fe84b72",null);"function"==typeof V.default&&Object(V.default)(component);t.default=component.exports;N()(component,{ScreenshotSimulation:n(312).default,LangSwitcher:n(357).default}),N()(component,{VAlert:L.a,VBtn:F.a,VCard:E.a,VCol:D.a,VContainer:R.a,VForm:T.a,VIcon:P.a,VRow:M.a,VSpacer:G.a})}}]);
|