vendor: 3,307 bytes, line 1
1(function(){var e={3136:function(e,t,i){var s={"./_0.jpg":6218,"./_1.jpg":2055,"./_10.jpg":8759,"./_11.jpg":6602,"./_12.jpg":7093,"./_13.jpg":5912,"./_14.jpg":9515,"./_15.jpg":30,"./_16.jpg":8697,"./_2.jpg":4600,"./_3.jpg":2469,"./_4.jpg":9998,"./_5.jpg":8043,"./_6.jpg":6060,"./_7.jpg":7113,"./_8.jpg":9074,"./_9.jpg":783};function n(e){var t=a(e);return i(t)}function a(e){if(!i.o(s,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return s[e]}n.keys=function(){return Object.keys(s)},n.resolve=a,e.exports=n,n.id=3136},1304:function(e,t,i){var s={"./JSON/cv_en.json":8473,"./JSON/links_backup.json":1900,"./JSON/sketches_backup.json":3095,"./crystal-concrete/crystal-concrete_0.jpeg":2736,"./crystal-concrete/crystal-concrete_1.jpg":218,"./crystal-concrete/crystal-concrete_2.jpeg":6650,"./crystal-concrete/crystal-concrete_3.jpeg":4049,"./crystal-concrete/crystal-concrete_4.jpeg":276,"./crystal-concrete/crystal-concrete_6.jpeg":9790,"./crystal-concrete/crystal-concrete_7.jpeg":4197,"./crystal-concrete/crystal-concrete_8.jpeg":8808,"./eyes/eyes_0.jpg":339,"./eyes/eyes_10.jpg":7596,"./eyes/eyes_2.jpg":7057,"./eyes/eyes_3.jpg":8532,"./eyes/eyes_8.jpg":4091,"./flower/flower_0.jpg":7821,"./flower/flower_2.jpg":1231,"./flower/flower_3.jpg":8562,"./noise-draw/noise-draw_0.jpg":445,"./noise-draw/noise-draw_1.jpg":4880,"./noise-draw/noise-draw_2.jpg":1519,"./noise-draw/noise-draw_3.jpg":1490,"./noise-draw/noise-draw_4.jpg":3185,"./noise-draw/noise-draw_5.jpg":5140,"./noise-draw/noise-draw_6.jpg":5187,"./noise-draw/noise-draw_7.jpg":3574,"./noise-draw/noise-draw_8.jpg":37,"./ocean-loop/ocean-loop_0.jpg":5309,"./ocean-loop/ocean-loop_1.jpg":4176,"./ocean-loop/ocean-loop_2.jpg":7791,"./ocean-loop/ocean-loop_3.jpg":5410,"./photos/_0.jpg":6218,"./photos/_1.jpg":2055,"./photos/_10.jpg":8759,"./photos/_11.jpg":6602,"./photos/_12.jpg":7093,"./photos/_13.jpg":5912,"./photos/_14.jpg":9515,"./photos/_15.jpg":30,"./photos/_16.jpg":8697,"./photos/_2.jpg":4600,"./photos/_3.jpg":2469,"./photos/_4.jpg":9998,"./photos/_5.jpg":8043,"./photos/_6.jpg":6060,"./photos/_7.jpg":7113,"./photos/_8.jpg":9074,"./photos/_9.jpg":783,"./plastic-arcade/plastic-arcade_0.jpg":3629,"./plastic-arcade/plastic-arcade_1.jpg":2496,"./plastic-arcade/plastic-arcade_2.jpg":6111,"./plastic-arcade/plastic-arcade_3.jpg":3730,"./plastic-arcade/plastic-arcade_4.jpg":9217,"./reaction-diffusion/reaction-diffusion_0.jpeg":114,"./reaction-diffusion/reaction-diffusion_1.jpeg":745,"./reaction-diffusion/reaction-diffusion_2.jpeg":3352,"./reaction-diffusion/reaction-diffusion_3.jpeg":4895,"./reaction-diffusion/reaction-diffusion_4.jpeg":1062,"./reaction-diffusion/reaction-diffusion_5.jpeg":2397,"./reaction-diffusion/reaction-diffusion_6.jpeg":9516,"./reaction-diffusion/reaction-diffusion_7.jpeg":6195,"./reaction-diffusion/reaction-diffusion_8.jpeg":1994,"./reaction-diffusion/reaction-diffusion_9.jpeg":8593,"./unsustainable/unsustainable_0.jpg":5565,"./unsustainable/unsustainable_2.jpg":8047,"./unsustainable/unsustainable_3.jpg":5666,"./unsustainable/unsustainable_4.jpg":1153,"./unsustainable/unsustainable_5.jpg":3108,"./unsustainable/unsustainable_6.jpg":7267,"./where's-jane/where's-jane_0.jpg":8175,"./where's-jane/where's-jane_1.jpg":1794,"./where's-jane/where's-jane_2.jpg":9597,"./w
1here's-jane/where's-jane_3.jpg":7856,"./where's-jane/where's-jane_4.jpg":8019,"./where's-jane/where's-jane_5.jpg":3254};function n(e){var t=a(e);return i(t)}function a(e){if(!i.o(s,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return s[e]}n.keys=function(){return Object.keys(s)},n.resolve=a,e.exports=n,n.id=1304},508:function(e,t){"use strict";t.A=e=>{const t=document.createElement("textarea");t.value=e,document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t)}},4277:function(e,t,i){"use strict";var s=i(5471),n=i(816),a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"App",attrs:{id:"app"}},[t("div",{staticClass:"ToggleFullScreen",on:{click:function(t){return e.handleFullScreenMouseIn()},mouseleave:function(t){return e.handleFullScreenMouseLeave()}}}),e.canvasFullScreen?e._e():t("the-header"),t("div",{key:e.canvasWrapperKey,staticClass:"sketchContainer bw0",style:e.iframeContainer},[e.activeItem&&"sketch"===e.activeItem.type||"iframe-music"===e.activeItem.type?t("the-canvas-wrapper",{key:e.canvasWrapperKey+2,attrs:{current:e.activeItem.app?e.activeItem.app:e.activeItem.id,type:e.activeItem.type}}):e._e(),e.activeItem&&"sketch"!==e.activeItem.type?t("iframe",{key:e.canvasWrapperKey+1,staticClass:"sketchContainer bw0",style:e.iframeStyle,attrs:{scrolling:"no",scroll:"no",src:e.activeItem.link}}):e._e()],1),t("transition",{attrs:{name:"slide-fade-main"}},[t("keep-alive",{attrs:{include:"Menu"}},[t("router-view")],1)],1),t("div",{directives:[{name:"show",rawName:"v-show",value:e.proposeDesktop&&"sm"===e.$mq&&("work"===e.$route.name||"music"===e.$route.name),expression:"\n proposeDesktop &&\n $mq === 'sm' &&\n ($route.name === 'work' || $route.name === 'music')\n "}],staticClass:"flex menuItems-center justify-center pa3 f6 ph3 bg-black-30 white"},[t("svg",{staticClass:"w1",staticStyle:{fill:"currentcolor"},attrs:{"data-icon":"info",viewBox:"0 0 32 32"}},[t("title",[e._v("info icon")]),t("path",{attrs:{d:"M16 0 A16 16 0 0 1 16 32 A16 16 0 0 1 16 0 M19 15 L13 15 L13 26 L19 26 z M16 6 A3 3 0 0 0 16 12 A3 3 0 0 0 16 6"}})]),t("span",{staticClass:"MenuSmall__Notification lh-title ml3"},[e._v("For the best experience, visit skyl.fr on desktop. ")]),t("p",{staticClass:"pl3",on:{click:function(t){return e.disablePromptDesktop()}}},[e._v(" X ")])]),t("transition",{attrs:{name:"slide-fade-main"}},[e.footer&&"lg"===e.$mq&&!e.canvasFullScreen?t("the-footer"):e._e()],1)],1)},r=[],o=i(5353),c=function(){var e=this,t=e._self._c;return t("div",{staticClass:"TheHeader flex justify-center bg-white-50"},[t("router-link",{class:e.classBySize,attrs:{to:"/work"}},[e._v(" Projects ")]),t("router-link",{class:e.classBySize,attrs:{to:"/music"}},[e._v(" Music ")]),"drawings"!==e.$route.name?t("router-link",{class:e.classBySize,attrs:{to:"/drawings"}},[e._v(" Drawings ")]):"drawings"===e.$route.name?t("router-link",{class:e.classBySize,attrs:{to:"/photos"}},[e._v(" Photos ")]):e._e(),t("router-link",{class:e.classBySize,attrs:{to:{name:"play",params:{id:e.$route.params.id}}}},[e._v(" Play! ")])],1)},l=[],u={name:"TheHeader",data(){return{link:"https://eyes.skyl.fr"}},computed:{classBySize(){return"sm"===this.$mq?"tc min pv4 ph1 w-20 f6 black link":"tc min pa3 w-20 f4 black link"}}},p=u,d=i(845),m=(0,d.A)(p,c,l,!1,null,null,null),h=m.exports,g=function(e,t){return t._m(0)},f=[function(e,t){return e("footer",{staticClass:"TheFooter tc pv1 white bg-black-50 hover-bg-black-80"},[e("small",{staticClass:"f7 db helvetica"},[t._v(" © 2026 "),e("b",{staticClass:"dib ph2 link dim helvetica"},[t._v("Sikai Li")]),t._v(" All rights reserved. ")])])}],y={},w=(0,d.A)(y,g,f,!0,null,"33b658ca",null),b=w.exports,v=function(){var e=this,t=e._self._c;return t("div",[t("div",{attrs:{id:"canvasContainer"}}),"play"===e.$route.name?t("div",[e.showSettingsIcon?t("div",{staticClass:"Settings Settings__Icon white bg-black-80 bg-animate hover-bg-white hover-black pv2 ph3",on:{click:function(t){return t.stopPropagation(),e.toggle("showCanvasSettings")}}},[t("i",{staticClass:"tc icon ion-md-settings f3"})]):t("div",{staticClass:"Settings Settings__Menu",class:{"Settings__Menu--active":e.showCanvasSettings}},[t("div",{staticClass:"Settings__Version"},[e._v(" version: "+e._s(e.version)+" ")]),e.showCanvasSettings?t("div",{staticClass:"Settings__Close c-animate",on:{"~click":function(t){return e.toggle("showCanvasSettings")}}},[t("i",{staticClass:"tc icon ion-md-close f3"}
1)]):e._e(),e.list?t("p",{staticClass:"Settings__Player pa2 bg-animate hover-bg-white hover-black mb0 pb2 white bg-black-60",on:{click:function(t){return e.toggle("showList")}}},[e._v(" "+e._s(e.list.current||e.songId||"Player")+" "),t("i",{class:"hover-black fr ma0 icon ion-md-arrow-drop-down "+(e.showList?" ion-md-arrow-dropup":" ion-md-arrow-dropdown")})]):e._e(),e.showList?t("div",{staticClass:"Settings__PlayerList overflow-y-scroll f6 tl bg-white-30",class:{"Settings__PlayerList--full":"iframe-music"===e.type}},e._l(e.list.items,function(i,s){return t("span",{key:s},[t("p",{staticClass:"Settings__PlayerListItem ph3 bg-animate hover-bg-white hover-black white bg-black-60",on:{click:function(t){return e.setCurrentItem(i)}}},[e._v(" "+e._s(i)+" ")])])}),0):e._e(),e._l(e.settings,function(i,s){return t("div",{key:s,staticClass:"Settings__MenuContainer"},[i.type?[t("label",{staticClass:"Settings__MenuContainerInputLabel",attrs:{for:s}},[e._v(e._s(s+(e.settings[s].value?":"+e.settings[s].value:"")))]),"checkbox"===e.settings[s].type&&"range"===i.type?t("input",{directives:[{name:"model",rawName:"v-model",value:e.settings[s].value,expression:"settings[name].value"}],staticClass:"Settings__MenuContainerInput",class:{"Settings__MenuContainerInput--checkbox":1===e.settings[s].max&&1===e.settings[s].step},attrs:{id:s,name:s,min:e.settings[s].min,max:e.settings[s].max,step:e.settings[s].step,type:"checkbox"},domProps:{checked:Array.isArray(e.settings[s].value)?e._i(e.settings[s].value,null)>-1:e.settings[s].value},on:{change:[function(t){var i=e.settings[s].value,n=t.target,a=!!n.checked;if(Array.isArray(i)){var r=null,o=e._i(i,r);n.checked?o<0&&e.$set(e.settings[s],"value",i.concat([r])):o>-1&&e.$set(e.settings[s],"value",i.slice(0,o).concat(i.slice(o+1)))}else e.$set(e.settings[s],"value",a)},function(t){return e.handleSliderChange(e.settings[s])}]}}):"radio"===e.settings[s].type&&"range"===i.type?t("input",{directives:[{name:"model",rawName:"v-model",value:e.settings[s].value,expression:"settings[name].value"}],staticClass:"Settings__MenuContainerInput",class:{"Settings__MenuContainerInput--checkbox":1===e.settings[s].max&&1===e.settings[s].step},attrs:{id:s,name:s,min:e.settings[s].min,max:e.settings[s].max,step:e.settings[s].step,type:"radio"},domProps:{checked:e._q(e.settings[s].value,null)},on:{change:[function(t){return e.$set(e.settings[s],"value",null)},function(t){return e.handleSliderChange(e.settings[s])}]}}):"range"===i.type?t("input",{directives:[{name:"model",rawName:"v-model",value:e.settings[s].value,expression:"settings[name].value"}],staticClass:"Settings__MenuContainerInput",class:{"Settings__MenuContainerInput--checkbox":1===e.settings[s].max&&1===e.settings[s].step},attrs:{id:s,name:s,min:e.settings[s].min,max:e.settings[s].max,step:e.settings[s].step,type:e.settings[s].type},domProps:{value:e.settings[s].value},on:{change:function(t){return e.handleSliderChange(e.settings[s])},input:function(t){t.target.composing||e.$set(e.settings[s],"value",t.target.value)}}}):e._e(),"text"===i.type?t("input",{directives:[{name:"model",rawName:"v-model",value:e.settings[s].value,expression:"settings[name].value"}],staticClass:"Settings__MenuContainerInput--text",domProps:{value:e.settings[s].value},on:{input:function(t){t.target.composing||e.$set(e.settings[s],"value",t.target.value)}}}):e._e()]:e._e()],2)}),t("div",{staticClass:"Settings__MenuContainer pt3 pb2"},[e.settings&&e.settings.red?t("i",{staticClass:"Settings__MenuActionButton icon ion-md-shuffle f3 white bg-black-80 bg-animate hover-bg-white hover-black",on:{click:function(t){return e.setRGB()}}}):e._e(),e.settings&&e.settings.actions?e._l(e.settings.actions,function(i,s){return t("i",{key:s,staticClass:"Settings__MenuActionButton icon f3 white bg-black-80 bg-animate hover-bg-white hover-black",class:`ion-md-${i.icon}`,on:{click:function(t){return e.actionButton(i.name,i)}}})}):e._e(),t("i",{staticClass:"Settings__MenuActionButton icon ion-md-share-alt f3 white bg-black-80 bg-animate hover-bg-white hover-black",on:{click:function(t){return e.copyToClipBoard()}}}
1)],2)],2)]):e._e()])},k=[],_=i(508);const C=navigator.userAgent.match(/Android/i)||navigator.userAgent.match(/webOS/i)||navigator.userAgent.match(/iPhone/i)||navigator.userAgent.match(/iPod/i)||navigator.userAgent.match(/BlackBerry/i)||navigator.userAgent.match(/Windows Phone/i),S=navigator.userAgent.match(/iPad/i)||navigator.userAgent.match(/Tablet/i),j=C||S,x=/iP(ad|hone|od).+Version\/[\d.]+.*Safari/i.test(navigator.userAgent)&&C,M=/googlebot|mediapartners|adsbot|apis-google|slurp|bingbot|teoma|baiduspider|applebot|voilabot|ia_archiver|facebookexternalhit|facebot|twitterbot|linkedinbot|outbrain|pinterest|rogerbot|prerender/i.test(navigator.userAgent||navigator.vendor||window.opera),L="prerender"===navigator.userAgent,A=/^((?!chrome|android).)*safari/i.test(navigator.userAgent),P={instagram:/Instagram/i.test(navigator.userAgent),facebook:/faceBook/i.test(navigator.userAgent),googlenews:/googleNews/i.test(navigator.userAgent)},I={hashChange:B()},T=928,E=()=>{const e=document.querySelector("#app");window.innerWidth>=T?(e.classList.remove("dc-desktop"),e.classList.remove("dc-mobile"),window.deviceCategory="desktop","undefined"!==typeof vm&&(vm.$config.deviceCategory="desktop"),e.classList.add("dc-desktop")):(e.classList.remove("dc-desktop"),e.classList.remove("dc-mobile"),window.deviceCategory="mobile","undefined"!==typeof vm&&(vm.$config.deviceCategory="mobile"),e.classList.add("dc-mobile"))};var $={resetDeviceCategory:E,isBot:M,isMobile:C,isTablet:S,isTouchDevice:j,inapp:P,hasNativeTabbar:x,isPrerender:L,support:I,isSafari:A};function B(){const e=navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);const i=e.indexOf("Trident/");if(i>0){const t=e.indexOf("rv:");return parseInt(e.substring(t+3,e.indexOf(".",t)),10)}const s=e.indexOf("Edge/");return s>0?parseInt(e.substring(s+5,e.indexOf(".",s)),10):void 0}function q(e,t=!1){return new Promise((i,s)=>{if($.isPrerender)return void s(e);const n=document.querySelector(`script[src="${e}"]`);if(n&&!t)return void(n.classList.contains("is-loading")?(n.addEventListener("load",i),n.addEventListener("error",s),n.addEventListener("abort",s)):i());const a=document.createElement("script");a.type="text/javascript",a.async=!0,a.src=e,a.classList.add("is-loading"),a.addEventListener("load",()=>{a.classList.remove("is-loading"),i()}),a.addEventListener("error",s),a.addEventListener("abort",s),document.head.appendChild(a)})}let D,O=!0;const V=3,R=()=>D&&Number.isFinite(D.targetPixelDensity)?D.targetPixelDensity:V,N=()=>{const e=R();D&&D.pixelDensity()!==e&&D.pixelDensity(e)},F=e=>{e=e.toLowerCase(),O||(O=!0,q("/p5.min.js").then(()=>{p5.disableFriendlyErrors=!0,i(4341)("./"+e+"/"+e+".js").then(t=>{D=new p5(t.default,"canvasContainer"),D.name=e,N()}).catch(e=>{console.log(e)})}).catch(e=>{console.log(e)}))},G=()=>{setTimeout(()=>{if(window.p5){const e=document.documentElement.clientWidth||window.innerWidth||document.body.clientWidth,t=document.documentElement.clientHeight||window.innerHeight||document.body.clientHeight;window.p5.prototype.windowHeight=t,window.p5.prototype.windowWidth=e,D&&(D.resizeCanvas(e,t),N())}},505)},U=(e=!1)=>{setTimeout(()=>{D&&(e?(D.noLoop(),D.stopped=!0):(D.loop(),D.stopped=!1))},0)};window.addEventListener("resize",G),window.addEventListener("focus",U(!1),!1),window.addEventListener("blur",U(!0),!1),window.addEventListener("visibilitychange",()=>{setTimeout(()=>{!document.hidden&&D&&D.stopped&&U(!1)},200)});var z={name:"Canvas",props:{current:{type:String,default:""},type:{type:String,default:""}},data(){return{showList:"iframe-music"===this.type,showCanvasSettings:!1,settings:null,songs:{items:["Cripple","Amarrage","La Danse","Rotation","flower","saturation-chinoise","c-syn","e-minor"]},iframes:["c-syn","e-minor","flower","saturation-chinoise"],songId:null,version:"2.12.1"}},computed:{...(0,o.L8)(["activeItem","canvasFullScreen"]),isPlayer(){return["player","cave"].includes(this.current)},showSettingsIcon(){return!this.showCanvasSettings&&(this.settings||"iframe-music"===this.type)&&!this.canvasFullScreen},list(){return"iframe-music"===this.type||"player"===this.current||"cave"===this.current?this.songs:this.settings&&this.settings.list&&this.settings.list.items?this.settings.list:null}},watch:{settings:{deep:!0,handler(e){const t=JSON.parse(JSON.stringify(e));
1Object.keys(t).forEach(e=>{!e.includes("get")&&"actions"!==e&&t[e].type||delete t[e]}),localStorage.setItem(this.current,JSON.stringify(t))}},songId(e){if(!this.iframes.includes(e)&&"player"===this.current)switch(e){case"amarrage":case"Amarrage":case"rotation":case"Rotation":this.setRGB([113,10,10]);break;case"La-Danse":this.setRGB([159,45,58]);break;case"Rain-Addiction":this.setRGB([255,50,50]);break;default:break}}},beforeMount(){O=!1,"iframe-music"!==this.type&&F(this.current),O=!0;const e=t=>{"iframe-music"!==this.type?setTimeout(()=>{if(D&&D.settings&&Object.keys(D.settings)){this.songId=D.songId?D.songId:null;const e=JSON.parse(localStorage.getItem(this.current));if(e){const t=Object.keys(e).filter(e=>!e.includes("get")&&"actions"!==e);t.forEach(t=>{D.settings[t]&&D.settings[t].type&&(D.settings[t].value?D.settings[t].value=e[t].value:D.settings[t]=e[t])})}this.settings=D.settings}else t||e(!0)},t?1500:500):this.songId=this.current};e()},beforeDestroy(){if(D)try{D.stop()}catch(e){console.log(e)}this.$root.$emit("emit-showSideMenu",!0)},destroyed(){D=void 0},methods:{handleSliderChange(e){e.callback&&(void 0!==e.callback.value&&null!==e.callback.value?Array.isArray(e.callback.value)?D[e.callback.name](...e.callback.value):D[e.callback.name](e.callback.value):D[e.callback.name]())},setCurrentItem(e){this.list&&this.list.action?D[this.list.action](e):"iframe-music"!==this.type?this.iframes.includes(e)?this.$store.dispatch("setActiveItem",e):(D.setSong(e),this.hide("showCanvasSettings"),this.songId=e):this.iframes.includes(e)?this.$store.dispatch("setActiveItem",e):this.$store.dispatch("setActiveItem","cave")},setRGB(e){["red","green","blue"].forEach((t,i)=>{this.setRangeInput(t,e&&"number"===typeof e[i]?e[i]:null)})},actionButton(e,t){t.on=!t.on,t.value?D[e](...t.value):D[e]()},setRangeInput(e,t){this.settings[e].value="number"===typeof t?t:D.random(this.settings[e].min,this.settings[e].max)},toggle(e){this[e]?this.hide(e):this.show(e)},show(e){this[e]=!0,"showCanvasSettings"===e&&this.$root.$emit("emit-showSideMenu",!this.showCanvasSettings),setTimeout(()=>document.querySelector("#canvasContainer").addEventListener("click",()=>{this.hide(e)}),0),setTimeout(()=>document.querySelector("#canvasContainer").addEventListener("touchstart",()=>{this.hide(e)}),0)},hide(e){this[e]=!1,"showCanvasSettings"===e&&this.$root.$emit("emit-showSideMenu",!this.showCanvasSettings),document.querySelector("#canvasContainer").removeEventListener("click",()=>{this.hide(e)}),document.querySelector("#canvasContainer").removeEventListener("touchstart",()=>{this.hide(e)})},copyToClipBoard(){(0,_.A)("https://skyl.fr"+this.$route.fullPath),window.alert("Link copied to clipboard.")}}},H=z,W=(0,d.A)(H,v,k,!1,null,"2c5b360b",null),J=W.exports;document.ontouchmove=function(e){return!0};var K={name:"App",components:{TheHeader:h,TheFooter:b,TheCanvasWrapper:J},data(){return{proposeDesktop:!localStorage.getItem("propose-desktop"),footer:!0,width:0,height:0,showIframe:!1,canvasWrapperKey:0,version:"2.12.1"}},computed:{...(0,o.L8)(["activeItem","canvasFullScreen"]),iframeContainer(){return this.activeItem&&!this.activeItem.type?`width:${"sm"===this.$mq?window.screen.width:this.width}px;\n height:${this.height}px;\n opacity:${this.$route.path.includes("play")?1:""};\n '-moz-transform: scale(1);\n -moz-transform-origin: 0 0;\n -o-transform: scale(1);\n -o-transform-origin: 0 0;\n -webkit-transform: scale(1);\n -webkit-transform-origin: 0 0;\n `:`opacity:${this.$route.path.includes("play")?1:""}`},iframeStyle(){const e="play"===this.$route.name,t="sm"===this.$mq?2:1,i="sm"===this.$mq?80:55,s=this.height*t-(this.activeItem.hasMargin?i+22:0);return{width:("sm"===this.$mq?window.screen.width*t:this.width*t)+"px",height:`${s}px`,opacity:e?1:.4,"margin-top":`${this.activeItem.hasMargin?i:0}px`,"-moz-transform":`scale(${1/t})`,"-moz-transform-origin":"0 0","-o-transform":`scale(${1/t})`,"-o-transform-origin":"0 0","-webkit-transform":`scale(${1/t})`,"-webkit-transform-origin":"0 0"}}},watch:{activeItem(){this.canvasWrapperKey=Math.random().toFixed(2)}},beforeCreate(){this.$root.$on("refreshCanvas",()=>{this.canvasWrapperKey=Math.random().toFixed(2)});const{id:e}=this.$route.params;if("random"!==e){const t=["eyes","eyes","p","quadtree"],i=this.$store.state.playableSketches.find(t=>
1t.id===e)||{id:t[Math.floor(Math.random()*t.length)],type:"sketch"};this.$store.dispatch("setActiveItem",i)}},mounted(){window.addEventListener("resize",this.handleResize),window.addEventListener("scroll",this.handleScroll),window.addEventListener("orientationchange",this.handleResize),this.handleResize()},destroyed(){window.removeEventListener("resize",this.handleResize),window.removeEventListener("scroll",this.handleScroll),window.removeEventListener("orientationchange",this.handleResize)},methods:{disablePromptDesktop(){localStorage.setItem("propose-desktop",!0),this.proposeDesktop=!1},handleResize(){this.width=window.innerWidth,this.height=window.innerHeight},handleScroll(){clearTimeout(this.timeOut),this.footer=!1,this.timeOut=setTimeout(()=>{this.footer=!0},2e3)},handleFullScreenMouseIn(){this.activeFullScreen=setTimeout(()=>{this.$store.dispatch("setCanvasFullScreen",!this.canvasFullScreen)},300)},handleFullScreenMouseLeave(){clearTimeout(this.activeFullScreen)}}},Y=K,X=(0,d.A)(Y,a,r,!1,null,null,null),Q=X.exports,Z=JSON.parse('[{"id":"osc-test","type":"sketch","beta":"true"},{"id":"virus","type":"sketch"},{"id":"reaction-diffusion","type":"sketch"},{"id":"reaction-diffusion-2d","type":"sketch"},{"id":"quadtree","type":"sketch"},{"id":"p","type":"sketch"},{"id":"noise-draw","link":"https://noise-draw.skyl.fr","type":"sketch"},{"id":"little-garden","link":"https://skyl.fr/music/little-garden","type":"sketch","app":"p"},{"id":"k-means-selfie","type":"sketch"},{"id":"jo-eyes","type":"sketch","app":"jo-eyes"},{"id":"eyes","link":"https://eyes.skyl.fr","type":"sketch"},{"id":"cave","type":"sketch"},{"id":"bubbles","type":"sketch"},{"id":"amarrage","link":"https://skyl.fr/music/amarrage","type":"sketch","app":"cave"},{"id":"3d-terrain","link":"https://apps.skyl.fr/3d-terrain/","type":"iframe"},{"id":"c-syn","link":"https://apps.skyl.fr/c-syn/","type":"iframe-music"},{"id":"e-minor","link":"https://apps.skyl.fr/e-minor/","type":"iframe-music"},{"id":"flower","link":"https://apps.skyl.fr/hua/","type":"iframe-music"},{"id":"forces","link":"https://forces.skyl.fr","type":"iframe"},{"id":"fractal-circles","link":"https://apps.skyl.fr/fractal-circles/","type":"iframe"},{"id":"glitch","link":"https://apps.skyl.fr/glitch/","type":"iframe"},{"id":"ocean-loop","link":"https://apps.skyl.fr/plastic-ocean","type":"iframe"},{"id":"saturation-chinoise","link":"https://apps.skyl.fr/saturation-chinoise/","type":"iframe"},{"id":"unsustainable","link":"https://unsustainable.skyl.fr","type":"iframe"},{"id":"washed","link":"https://apps.skyl.fr/washed/","type":"iframe"},{"id":"where\'s-jane","link":"https://myss.skyl.fr","hasMargin":true,"type":"iframe"}]'),ee=JSON.parse('[{"name":"Studio Salt Echoes","isNew":true,"showReadMore":false,"year":2024,"des":"Independent space in Paris for experimental music, sound art, improvisation, listening sessions, and intimate concerts.","about":"Studio Salt Echoes is an independent platform founded in 2024 to support experimental music, sound art, and interdisciplinary exploration. Based in central Paris, it hosts regular open sessions combining live performance, listening, creative coding, and workshops aimed at connecting new audiences with experimental practices.","link":"https://salt-echoes.com","img":"/img/covers/salt-echoes.jpeg","credits":[{"role":"Creative direction, code","name":"Sikai Li","link":"https://skyl.fr"}],"show":false,"type":"work","disablePlay":true},{"name":"Cave","apps":["cave","virus","reaction-diffusion","quadtree"],"year":"2020","des":"A series of audiovisual experiments exploring clashes of texture, unstable perception, and cave-like spatial experience.","isNew":true,"link":"http://skyl.fr/","img":"/img/covers/cave.jpg","credits":[{"role":"Code and recording","name":"Sikai Li","link":"https://skyl.fr"}],"show":false,"type":"work"},{"name":"Bubbles","app":"bubbles","isNew":"true","year":"2024","des":"I imagined the destruction of my wardrobe, then digitized part of it into immortal yet meaningless pixels. These possessed, low-cost fragments move and react to sound, outliving their physical duplicates on the .com domain.","link":"https://skyl.fr/play/bubbles","img":"/img/covers/bubbles.jpeg","credits":[{"role":"Concept, code ","name":"Sikai Li","link":"https://skyl.fr"}],"show":false,"type":"work"},{"name":"Reaction Diffusion","app":"reaction-diffusion","year":"2023","showReadMore":true,"des":"A real-time audiovisual experiment based on a reaction-diffusion system, modulated by text, touch, and sound.","about":"Reaction Diffusion is a real-time audiovisual piece built from a Gray-Scott reaction-diffusion model. Letters, hanzi, and touch gestures are injected into the simulation as seeds, then dissolved into moving fields of growth and erosion. The visual system is continuously modulated by spectral analysis: frequency bands reshape diffusion parameters, trigger sudden ruptures, and push the image between dense voxel relief and fragile linear traces. What appears on screen behaves like a surface that is both computational and bodily, reacting to sound, text, and physical contact as if it were a volatile living material.","link":"https://skyl.fr/play/reaction-diffusion","img":"/img/covers/reaction-diffusion_1.jpeg","credits":[{"role":"Concept, code ","name":"Sikai Li","link":"https://skyl.fr"}],"show":false,"type":"work"},{"name":"Where\'s Jane","year":2019,"des":"A visualization built from 30 days of geolocation data exported from a Facebook archive.","about":"Aujourdâhui, la collecte des donneÌes personnelles fait partie inteÌgrante de lâexpeÌrience utilisateur sur Internet. En relation avec le RGPD et dans un souci de transparence et de clarteÌ, \'Whereâs Jane\' preÌsente un programme de visualisation des donneÌes Facebook de lâutilisateur. Il sâagit de sensibiliser aÌ la quantiteÌ importante dâinformations disponibles sur chacun de nous et aÌ la manière dont leur croisement permet de dresser un profil détaillé. (French)","link":"https://myss.skyl.fr","img":"/img/covers/where-is-joe.jpg","credits":[{"role":"Design, code ","name":"Sikai Li","link":"https://skyl.fr"},{"role":"Ideas, support ","name":"Olaf Avenati","link":"https://olaf.avenati.net"},{"role":"Communication ","name":"Yasmine Ben Khaled, SoleÌne Pyrizok, Mathilde Zajac"}],"show":false,"type":"work"},{"name":"Eyes","year":2018,"des":"The 5,000 most common hanzi, sorted by frequency. A watchful face follows your reading.","link":"https://eyes.skyl.fr","img":"/img/covers/eyes.png","show":false,"credits":[{"role":"Concept, sound, code ","name":"Sikai Li","link":"https://skyl.fr"},{"role":"Host","name":"thecamp","link":"https://thecamp.fr"}],"type":"work"},{"name":"Unsustainable","year":"2018","des":"Particles trying to get bigger and bigger, each collision triggers a random sequence of the poem.","link":"https://unsustainable.skyl.fr","img":"/img/covers/unsustainable.jpg","show":false,"credits":[{"role":"Concept, sound, code ","name":"Sikai Li","link":"https://skyl.fr"},{"role":"Poem ","name":"Ryan Dzelzkalns","link":"https://www.ryandz.com"}],"type":"work"},{"name":"Noise Draw","year":2017,"des":"Draw Perlin-noise lines while generating glitchy sound.","link":"https://skyl.fr/play/noise-draw","credits":[{"role":"Concept, code ","name":"Sikai Li","link":"https://skyl.fr"}],"img":"/img/covers/draw.png","show":false,"type":"work"},{"name":"Plastic Arcade","year":"2018","link":"http://thecamp.fr/projects/plastic-arcade","des":"A playful arcade cabinet designed to raise awareness about plastic pollution.","about":"Plastic Arcade wants to raise awareness about plastic pollution by turning the systems that create the problem into easily understandable, high-impact video games. Using the arcade cabinet seemed like a natural way to touch the nostalgic fiber in each of us, parents and children alike. By creating several arcade games, each exploring a specific aspect of the plastic pollution problem, we aim to shake people into reflecting and connecting on a personal level to one of the largest issues concerning our civilization today.","img":"/img/covers/plastic-arcade.jpg","numberOfPhotos":5,"show":false,"credits":[{"role":"Code, electronics, sound ","name":"Sikai Li","link":"https://skyl.fr"},{"role":"Product, game design ","name":"Theo Le Du","link":"https://cosmografik.fr/"},{"role":"3D graphics, effects ","name":"Nicolas Grossman","link":"https://epoqevisual.com/"},{"role":"Host","name":"thecamp","link":"https://www.thecamp.fr"}],"type":"work"},{"name":"Crystal Concrete","type":"music","showReadMore":true,"year":"2026","des":"Work-in-progress audiovisual live combining experimental pop, guitar improvisation, and digital glitch.","about":"Né d\'un déménagement imprévu, Crystal Concrete est une traversée audiovisuelle de 40 minutes sur la fragilité de nos ancrages. Entre la masse du béton et la fragilité du cristal, le live mêle pop expérimentale, improvisation à la guitare et glitch numérique.","app":"eyes","link":"https://skyl.fr/page/music/crystal-concrete","img":"/img/covers/impro.jpg","numberOfPhotos":5,"isNew":true,"list":[{"title":"Salt Echoes","artist":"Sikai Li","src":"/src/projects/player/sound/Salt Echoes NN.m4a","pic":"/img/covers/impro.jpg"},{"title":"Crystal Concrete","artist":"Sikai Li","src":"/src/projects/player/sound/crystal-concrete.m4a","pic":"/img/covers/impro.jpg"},{"title":"Vagues","artist":"Sikai Li","src":"/src/projects/player/sound/vagues.m4a","pic":"/img/covers/impro.jpg"}],"credits":[{"role":"Composition ","name":"Sikai Li","link":"https://skyl.fr"}],"played":false,"show":false},{"name":"Electroacoustic Works","type":"music","year":"2026","point":true,"des":"A set of electroacoustic pieces shaped by tension, delay, instability, and changing states. These excerpts move between inner alertness, anticipation, rain-soaked suspension, and shifting thresholds of light, space, and time.","showReadMore":true,"aboutHtml":"<p>Un ensemble de pièces électroacoustiques construites à partir d\'états de tension, de déplacement et d\'attente. Chaque extrait explore une manière différente d\'habiter le temps, de faire entendre une instabilité intérieure ou de transformer des matériaux anecdotiques en espace dramaturgique.</p><h4>Blanc cassé</h4><p>\\"Blanc cassé\\" explore les subtilités et les contradictions de la couleur blanche. Longtemps associée à la pureté, à la perfection et à l\'intouchabilité, elle a pris une charge nouvelle pendant la période du Covid-19, où elle a aussi été liée à l\'ordre, à la distance, à la protection et à la restriction. Elle résonne notamment avec la présence des uniformes blancs, devenus signes de contrôle autant que de soin.</p><p>La pièce part d\'un sentiment d\'insécurité diffus, persistant, presque banal. Aucun événement spectaculaire, seulement l\'impression que quelque chose peut céder à tout moment. Elle naît d\'un contexte personnel : la vente de l\'appartement que j\'habite, la perspective d\'un départ à venir, et cette question simple mais instable : comment vivre normalement dans un espace déjà promis à disparaître ? Comment continuer à investir un lieu, à créer en lui, tout en sachant qu\'
1il faudra partir ?</p><p>\\"Blanc cassé\\" suit cette logique d\'alerte intérieure. La matière sonore traverse répétitions, glissements et pertes d\'équilibre. Rien ne s\'effondre, mais rien n\'est vraiment stable non plus. En arrière-plan, la pièce interroge aussi notre besoin de perfection et les règles rigides que nous produisons pour tenter d\'organiser le monde : que se passe-t-il lorsque l\'image d\'un blanc parfait commence à se fissurer ?</p><p><strong>Poème :</strong> Mélissa Grelet<br><strong>Voix :</strong> Zhang Weizhou, Mélissa Grelet</p><h4>Un an</h4><p>Cette pièce se développe autour d\'une projection mentale très simple : que se passe-t-il dans un an, dans un mois, demain ? Elle part d\'un état d\'incertitude lié à l\'idée du départ, à la difficulté d\'habiter pleinement le présent lorsqu\'un changement à venir s\'est déjà installé dans l\'esprit. Le temps n\'y est pas une ligne claire mais une matière instable, tendue entre anticipation, suspension et usure.</p><p>La composition travaille ainsi sur des répétitions, des écarts minimes et des déplacements d\'équilibre. Elle ne raconte pas une rupture franche ; elle fait entendre au contraire une fragilité ordinaire, celle d\'une vie qui continue pendant qu\'une autre se prépare silencieusement. \\"Un an\\" cherche moins à résoudre cette tension qu\'à lui donner une forme audible.</p><h4>La pluie retardée</h4><p>\\"La pluie retardée\\" est née d\'une soirée passée à l\'intérieur avec mon chien pendant une forte averse. J\'ai documenté l\'atmosphère étrange de cette nuit en enregistrant la pluie et sa présence, puis en intégrant ces éléments anecdotiques dans la composition.</p><p>La pièce juxtapose mouvement et immobilité. La pluie agit comme un fond dynamique qui fait apparaître des moments de tension, d\'apaisement et de révélation. En collaboration avec Aziliz de Vulpillières, qui a écrit un texte sur la pluie, l\'attente et le retard, le processus s\'est construit de manière asynchrone : chaque travail dépendait de l\'autre, produisant un léger décalage. Les échanges, les enregistrements de voix et leur intégration ont nécessité des temps d\'attente et de réflexion qui sont devenus partie intégrante de l\'Åuvre.</p><p>Des sons de guitare transformés, souvent traversés par des effets de delay et parfois proches du tonnerre, renforcent le désir comme la crainte de l\'auditeur. \\"La pluie retardée\\" devient ainsi une figure du décalage entre la précipitation et son arrivée dans nos vies, un espace où s\'entremêlent attente, doute et contemplation.</p><p><strong>Poème, voix :</strong> Aziliz de Vulpillières</p><h4>Entrées. Sorties. Lumière</h4><p>\\"Entrées. Sorties. Lumière\\" plonge au cÅur du regret, de la recherche d\'équilibre et des dilemmes temporels. La pièce nous transporte dans ces moments où l\'on s\'engage dans une nouvelle expérience, chargé d\'anticipation et de structure, convaincu qu\'en sortant quelque chose aura profondément changé. Puis vient la découverte plus trouble : les enjeux n\'étaient peut-être pas aussi cruciaux qu\'on l\'imaginait.</p><p>La forme se construit à travers des séquences dynamiques qui évoquent les changements de contexte et les transitions entre différentes sphères de la vie. Elle fait sentir une entropie grandissante, un monde où les trajectoires, les intentions et les efforts semblent toujours finir par se disperser dans un désordre inévitable. à partir d\'éléments presque anecdotiques, la pièce met en jeu des émotions liées à notre rapport au temps et aux choix : qu\'est-ce qui compte réellement dans cette quête perpétuelle de changement et d\'équilibre ?</p>","app":"eyes","img":"/img/covers/acousmatic-works.jpeg","isNew":false,"list":[{"title":"Blanc Cassé (extrait)","artist":"Sikai Li","src":"/src/projects/player/sound/blanc-casse-extrait.m4a","pic":"/img/covers/acousmatic-works.jpeg"},{"title":"Un An (extrait)","artist":"Sikai Li","src":"/src/projects/player/sound/un-an-extrait.m4a","pic":"/img/covers/acousmatic-works.jpeg"},{"title":"Delayed Rain (extrait)","artist":"Sikai Li","src":"/src/projects/player/sound/delayed-rain-extrait.m4a","pic":"/img/covers/acousmatic-works.jpeg"},{"title":"Entrées Sorties Lumière (extrait)","artist":"Sikai Li","src":"/src/projects/player/sound/entree-extrait.m4a","pic":"/img/covers/acousmatic-works.jpeg"}],"credits":[{"role":"Composition ","name":"Sikai Li","link":"https://skyl.fr"}],"played":false,"show":false},{"name":"Guitar Improvisation","type":"music","year":"2026","point":true,"des":"Electric guitar improvisations using everyday objects, DIY microphones, and electronics. Open to
1see videos, past performances, and upcoming events.","link":"https://salt-echoes.com/sikaili","img":"/img/covers/guitar.jpeg","credits":[{"role":"Music ","name":"Sikai Li","link":"https://skyl.fr"}],"played":false,"show":false},{"name":"Seed","hidden":true,"type":"music","year":"2020","des":"Work-in-progress preview","app":"eyes","link":"https://skyl.fr/music/seed","img":"/img/covers/impro.jpg","isNew":true,"list":[{"title":"Vagues ZOOM H5","artist":"Sikai Li","src":"/src/projects/player/sound/vagues.m4a","pic":"/img/covers/impro.jpg"},{"title":"è·³","artist":"Sikai Li","src":"/src/projects/player/sound/rack_jump.m4a","pic":"/img/covers/impro.jpg"},{"title":"Vagues Rack (Buy a Violin)","artist":"Sikai Li","src":"/src/projects/player/sound/buy_a_violion.m4a","pic":"/img/covers/impro.jpg"},{"title":"Telephone Phase","artist":"Sikai Li","src":"/src/projects/player/sound/telephone-phase.m4a","pic":"/img/covers/impro.jpg"}],"credits":[{"role":"Music ","name":"Sikai Li","link":"https://skyl.fr"}],"played":false,"show":false},{"name":"Amarrage","hidden":true,"app":"cave","type":"music","year":"2020","des":"ç¦è¶³æé´ï¼è¿ç¦»äºäººçåªé³ï¼å¤§èªç¶å¯¹æ¯å¼ºçç声é³ç»äºæå¾å¤çµæï¼éª¤é¨æå¨ç»çä¸çæ´åï¼æ å¶æå¨å¾®é£éçè½»æãææ³æ¢ç´¢çµåä»è¿ä¸ªçº¯çµå£°ä¹å¨ç卿ï¼ä»å¨ç´æ¡¥åæ¨å¼¦çæå°çå¾®å¨ï¼å°å
æ ¹ç©ºå¼¦åæ¾é³å¨ç¢°æï¼å°å¤±çå¼å°æéçåºè³åªé³ãç»è¿å¤æèéæºçåå¤çï¼æå¾å°äºæ³è¦ç对æ¯åº¦åæ
äºãè½ç¶è¿å¬èµ·æ¥å·²ä¸åæ¯åä»ã","link":"https://skyl.fr/music/amarrage","isNew":true,"img":"/img/covers/Amarrage.jpg","list":[{"title":"Amarrage","artist":"Sikai Li","src":"/src/projects/player/sound/amarrage.m4a","pic":"/img/covers/Amarrage.jpg"},{"title":"Cripple","artist":"Sikai Li","src":"/src/projects/player/sound/cripple.m4a","pic":"/img/covers/Amarrage.jpg"},{"title":"Rotation","artist":"Sikai Li","src":"/src/projects/player/sound/rotation.m4a","pic":"/img/covers/Amarrage.jpg"}],"credits":[{"role":"Music ","name":"Sikai Li","link":"https://skyl.fr"}],"played":false,"show":false},{"name":"Little Garden","app":"p","type":"music","year":"2020","showReadMore":true,"des":"A short series of guitar fragments recorded after buying a green Jazzmaster in Mâcon in 2019, carrying the memory of a brief climb to Roche de Solutré. Simple and unpolished, these recordings hold onto small traces of grass, light, calm, and the difficulty of making music in the noise of everyday Paris.","about":"ä¸ä¹å¹´åä¸æï¼æå»å°åæ³ç Mâcon å»ä¹°ä¸æç»¿è² Jazzmasterï¼è¯å®ç´ç¦»åå·´é»çç«è½¦åºåè¿æä¸¤ä¸ªå°æ¶ï¼å家便带æå»ç»äº Roche de Solutréãè½ç¶åªå¾
äºççå ä¸ªå°æ¶ï¼é£éå®éçæ°æ°è¿æ¯ææäºæï¼ç°å¨æ³èµ·æ¥è¿æ¯å¾æ¸
æ°ã åå°å·´é»ï¼åæçå°éåå·¥ä½ï¼è®©ææ²¡æä»ä¹ç²¾åå»å¥½å¥½å¼ä¸é¦æï¼ä½è¿æç»¿è²ç Jazzmaster è¿æ¯ç»å¸¸ä¼å¼¹ï¼æ¶ä¸æ¶æ³èµ· Roche de Solutré çèï¼é©¬ï¼é³å
ï¼äºã䏿³è´¹èçï¼é便å½ä¸ä¸äºç¢çï¼ç¶åä¸åå»ç®¡ä»ãè¿äºç»ç´çâè®°å½âææä¹åï¼","img":"/img/covers/little-garden.png","list":[{"title":"7 am 1 pm","artist":"Sikai Li","src":"/src/projects/player/sound/7am.-0pm.m4a","pic":"/img/covers/little-garden.png"},{"title":"Again","artist":"Sikai Li","src":"/src/projects/player/sound/again.m4a","pic":"/img/covers/little-garden.png"},{"title":"Phasmids","artist":"Sikai Li","src":"/src/projects/player/sound/phasmids.m4a","pic":"/img/covers/little-garden.png"},{"title":"Embolism","artist":"Sikai Li","src":"/src/projects/player/sound/embolism.m4a","pic":"/img/covers/little-garden.png"},{"title":"Carriage Return","artist":"Sikai Li","src":"/src/projects/player/sound/carriage-return.m4a","pic":"/img/covers/little-garden.png"}],"credits":[{"role":"Music ","name":"Sikai Li","link":"https://skyl.fr"}],"played":false,"show":false},{"name":"Ocean Loop","app":"ocean-loop","link":"https://skyl.fr/play/ocean-loop","hideLink":true,"des":"An audio-visual piece about plastic in the ocean, using generated graphics and sounds made from plastic materials.","img":"/img/covers/plastic-ocean1.jpg","year":2018,"list":[{"title":"Ocean Loop","artist":"Sikai Li","src":"/src/projects/player/sound/ocean-loop.m4a","pic":"/img/covers/plastic-ocean1.jpg"}],"credits":[{"role":"Sound, code ","name":"Sikai Li","link":"https://skyl.fr"}],"played":false,"show":false,"type":"music"},{"name":"Saturation Chinoise","type":"music","year":"2018","app":"saturation-chinoise","link":"https://skyl.fr/play/saturation-chinoise","hideLink":true,"des":"Music created for the video game Plastic Arcade, combining an 80s-inspired guitar riff with retro synthesizer textures.","img":"/img/covers/saturation-chinoise.jpg","show":false,"played":false,"list":[{"title":"Saturation Chinoise","artist":"Sikai Li","src":"/src/projects/player/sound/saturation-chinoise.m4a","pic":"/img/covers/saturation-chinoise.jpg"}],"credits":[{"role":"Music ","name":"Sikai Li","link":"https://skyl.fr"},{"role":"For game ","name":"Plastic Arcade","link":"https://www.hivers.fr/hive-2/projects/plastic-arcade/"}]}]');
1ee.forEach(e=>{e.about||(e.about=e.des),e.id=e.name.split(" ").join("-").toLowerCase();const t=15,s=[],n=["jpg","JPG","jpeg","png","webp"];for(let r=0;r<t;r+=1){for(let t=0;t<n.length;t+=1)try{const a=i(1304)(`./${e.id}/${e.id}_${r}.${n[t]}`);s.push(a);break}catch(a){}e.imgs=s}}),s["default"].use(o.Ay);const te={projects:ee,activeItem:{},loading:!0,playableSketches:Z,filter:"beta",canvasFullScreen:!1},ie={TOGGLE_MENU_ITEM(e,t){e.projects.filter(e=>e.type===t.name).forEach(e=>{e===t.obj&&e.show&&(e.show=!1),e===t.obj?e.show=!0:e.show=!1})},SET_ACTIVE_ITEM(e,t){"string"===typeof t&&(t=e.playableSketches.find(e=>e.id===t)),t&&t.link&&!t.link.includes("https")||(e.activeItem=t)},SET_PLAYABLE_SKETCHES(e,t){e.playableSketches=t},CHANG_LOADING_STATE(e,t){e.loading=t},UPDATE_PROJECTS(e,t){e.projects=t},SET_CANVAS_FULLSCREEN(e,t){e.canvasFullScreen=t}},se={updateProjects(e,t){e.commit("UPDATE_PROJECTS",t),e.commit("CHANG_LOADING_STATE",!1)},toggleMenuItem(e,t){e.commit("TOGGLE_MENU_ITEM",t)},setActiveItem(e,t){e.commit("SET_ACTIVE_ITEM",t)},changeLoadingState(e,t){e.commit("CHANG_LOADING_STATE",t)},setCanvasFullScreen(e,t){e.commit("SET_CANVAS_FULLSCREEN",t)}},ne={activeItem(e){return e.activeItem},playableSketches(e){return e.playableSketches.filter(t=>!t[e.filter])},workItems(e){return e.projects.filter(e=>"work"===e.type&&!0!==e.hidden)},musicItems(e){return e.projects.filter(e=>"music"===e.type&&!0!==e.hidden)},loading(e){return e.loading},canvasFullScreen(e){return e.canvasFullScreen}};var ae=new o.Ay.Store({state:te,mutations:ie,actions:se,getters:ne}),re=i(5054),oe=i(7073);const ce="Sikai Li | skyl.fr",le="Sikai Li is a Paris-based composer, sound artist, and creative coder working across experimental music, audiovisual performance, code, and interactive visual art.",ue="https://skyl.fr",pe="/img/icons/icon-192x192_ios3.png",de=(e,t)=>{let i=document.head.querySelector(e);i||(i=document.createElement("meta"),document.head.appendChild(i)),Object.entries(t).forEach(([e,t])=>{i.setAttribute(e,t)})},me=(e,t)=>{let i=document.head.querySelector(e);i||(i=document.createElement("link"),document.head.appendChild(i)),Object.entries(t).forEach(([e,t])=>{i.setAttribute(e,t)})},he=e=>e?/^https?:\/\//.test(e)?e:`${ue}${e.startsWith("/")?e:`/${e}`}`:`${ue}${pe}`,ge=(e,t=160)=>e?e.length<=t?e:`${e.slice(0,t-1).trim()}â¦`:le,fe=(e,t)=>{const{id:i}=t.params||{};return i&&e.state.projects.find(e=>e.id===i)||null},ye=(e,t)=>{const i=fe(t,e),s=e.fullPath||e.path||"/",n={title:ce,description:le,image:pe,type:"website",canonicalUrl:`${ue}${s}`};return i?{...n,title:`${i.name} | Sikai Li | skyl.fr`,description:ge(i.des||i.about),image:i.img||pe,type:"contentPage"===e.name?"article":"website"}:"work"===e.name?{...n,title:"Work | Sikai Li | skyl.fr",description:"Interactive visual works, sound art, and audiovisual experiments by Sikai Li in Paris."}:"music"===e.name?{...n,title:"Music | Sikai Li | skyl.fr",description:"Experimental music, electroacoustic works, improvisation, and sound-based projects by Sikai Li."}:"cv/"===e.name?{...n,title:"CV | Sikai Li | skyl.fr",description:"Professional experience, exhibitions, concerts, and education of Sikai Li."}:"drawings"===e.name?{...n,title:"Drawings | Sikai Li | skyl.fr",description:"Selected drawings and visual studies by Sikai Li."}:"photos"===e.name?{...n,title:"Photos | Sikai Li | skyl.fr",description:"Selected photography by Sikai Li."}:"play"===e.name?{...n,title:"Play! | Sikai Li | skyl.fr",description:"Playable audiovisual experiences, interactive visual art, and sound-driven experiments by Sikai Li."}:n},we=(e,t)=>{const i=ye(e,t);document.title=i.title,me('link[rel="canonical"]',{rel:"canonical",href:i.canonicalUrl}),de('meta[name="description"]',{name:"description",content:i.description}),de('meta[name="robots"]',{name:"robots",content:"index, follow, max-image-preview:large"}),de('meta[property="og:site_name"]',{property:"og:site_name",content:"skyl.fr"}),de('meta[property="og:type"]',{property:"og:type",content:i.type}),de('meta[property="og:title"]',{property:"og:title",content:i.title}),de('meta[property="og:description"]',{property:"og:description",content:i.description}),de('meta[property="og:url"]',{property:"og:url",content:i.canonicalUrl}),de('meta[property="og:image"]',{property:"og:image",content:he(i.image)}),de('meta[name="twitter:card"]',{name:"twitter:card",content:"summary_large_image"}),de('meta[name="twitter:title"]',{name:"twitter:title",content:i.title}),de('meta[name="twitter:description"]',{name:"twitter:description",content:i.description}),de('meta[name="twitter:image"]',{name:"twitter:image",content:he(i.image)})};s["default"].use(oe.Ay,{disableScriptLoad:!0,config:{id:"UA-143317718-5"}},re.A),s["default"].use(n.A,{breakpoints:{sm:675,md:1024,lg:1/0}
1,defaultBreakpoint:"sm"}),s["default"].config.productionTip=!1,re.A.afterEach(e=>{we(e,ae)});let be=null;({NODE_ENV:"production",VUE_APP_PROD_URL:"https://skyl.fr",VUE_APP_TITLE:"skyl.fr",VUE_APP_FILTER:"beta",VUE_APP_VERSION:"2.12.1",BASE_URL:"/"}).VUE_APP_PROMPT&&(be=prompt("enter the code")),be!=={NODE_ENV:"production",VUE_APP_PROD_URL:"https://skyl.fr",VUE_APP_TITLE:"skyl.fr",VUE_APP_FILTER:"beta",VUE_APP_VERSION:"2.12.1",BASE_URL:"/"}.VUE_APP_CODE&&{NODE_ENV:"production",VUE_APP_PROD_URL:"https://skyl.fr",VUE_APP_TITLE:"skyl.fr",VUE_APP_FILTER:"beta",VUE_APP_VERSION:"2.12.1",BASE_URL:"/"}.VUE_APP_CODE||(we(re.A.currentRoute,ae),window.vm=new s["default"]({router:re.A,store:ae,render:e=>e(Q)}).$mount("#app"))},7883:function(e,t,i){var s={"./7am.-0pm.m4a":4884,"./Emb.m4a":1701,"./La-Danse.m4a":5076,"./Rain-Addiction.m4a":4029,"./Rotation.m4a":9493,"./Salt Echoes NN.m4a":1934,"./again.m4a":5057,"./amarrage.m4a":5639,"./blanc-casse-extrait.m4a":4169,"./blanc.m4a":9135,"./blanc_1.m4a":7307,"./buy_a_violion.m4a":9736,"./carriage-return.m4a":9296,"./cripple.m4a":4792,"./crystal-concrete.m4a":4565,"./delayed-rain-extrait.m4a":2812,"./embolism.m4a":2533,"./entree-extrait.m4a":8872,"./flower.m4a":10,"./let_ring.m4a":6103,"./ocean-loop.m4a":442,"./phasmids.m4a":2918,"./rack_jump.m4a":3457,"./saturation-chinoise.m4a":7876,"./telephone-phase.m4a":2027,"./un-an-extrait.m4a":7764,"./vagues.m4a":6740};function n(e){var t=a(e);return i(t)}function a(e){if(!i.o(s,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return s[e]}n.keys=function(){return Object.keys(s)},n.resolve=a,e.exports=n,n.id=7883},4341:function(e,t,i){var s={"./bubbles/bubbles.js":[7200,[664,46,269,200]],"./bubbles/particles.js":[7452,[46,452]],"./cave/cave.js":[76,[664,46,76]],"./eyes/eyes.js":[1574,[664,31]],"./jo-eyes/jo-eyes.js":[2275,[664,770]],"./k-means-selfie/k-means-selfie.js":[8048,[48]],"./node/node.js":[3134,[134]],"./noise-draw/noise-draw.js":[8683,[664,46,683]],"./osc-test/osc-test.js":[6006,[6]],"./p/p.js":[6300,[664,880]],"./player/player.js":[6344,[664,344]],"./quadtree/QuadTreeConstructor.js":[2906,[906]],"./quadtree/quadtree.js":[3904,[904]],"./reaction-diffusion-2d/reaction-diffusion-2d.js":[6056,[56]],"./reaction-diffusion/reaction-diffusion.js":[3984,[664,984]],"./traffic/traffic.js":[3328,[664,328]],"./virus/sub/particles.js":[8795,[46,795]],"./virus/virus.js":[1804,[664,46,269,804]],"./worley-noise/worley-noise.js":[5580,[580]]};function n(e){try{if(!i.o(s,e))return Promise.resolve().then(function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t})}catch(a){return Promise.reject(a)}var t=s[e],n=t[0];return Promise.all(t[1].map(i.e)).then(function(){return i(n)})}n.keys=function(){return Object.keys(s)},n.id=4341,e.exports=n},5054:function(e,t,i){"use strict";i.d(t,{A:function(){return Ee}});var s=i(5471),n=i(173),a=function(){var e=this,t=e._self._c;return t("div",{key:e.$route.name},[t("VueGallery",{attrs:{images:e.images,index:e.index},on:{close:function(t){e.index=null}}}),t("br"),t("span",{staticClass:"ph2 pv1 no-underline white bg-black-40 bg-animate hover-bg-black-80 hover-white inline-flex items-center border-box",class:"sm"===e.$mq?"f4 ml3 mt0":"fixed f2 ph3 mt4",staticStyle:{"z-index":"1000","margin-bottom":"-100px"},on:{click:function(t){e.grid=!e.grid}}},[!1===e.grid?t("i",{staticClass:"icon ion-md-apps"}):t("i",{staticClass:"icon ion-md-menu"})]),!0===e.grid?t("div",{staticClass:"mt3 center b--black-20 flex flex-wrap items-start",class:"sm"===e.$mq?"w-100":"w-80"},e._l(e.previews,function(i,s){return t("div",{key:s,staticClass:"w-third white-50"},[t("a",{staticClass:"mt3 db link tc o-90",on:{click:function(t){e.index=s}}},[t("img",{staticClass:"db dim bw0 ba black-50 border-box",class:"sm"===e.$mq?"bw1":"bw5",attrs:{src:i.link,alt:i.name?i.name:""}}),i.name?t("dl",{staticClass:"mt2 f6 lh-copy"},[t("dt",{staticClass:"clip"},[e._v("Title")]),t("dd",{staticClass:"ml0 black truncate w-100"},[e._v(e._s(i.name))])]):e._e()])])}),0):t("div",{staticClass:"b--black-20 cl"},[e._l(e.previews,function(i,s){return t("div",{key:s,staticClass:"center w-30 pa3 cl",class:"sm"===e.$mq?"w-100":"w-40"},[t("a",{staticClass:"mt3 db link tc o-90",on:{click:function(t){e.index=s}}},[t("img",{staticClass:"w-100 db dim ba bw5 white-50 border-box",attrs:{src:i.link,alt:i.name?i.name:""}}),i.name?t("dl",{staticClass:"mt2 f6 lh-copy"},[t("dt",{staticClass:"clip"},[e._v("Title")]),t("dd",{staticClass:"ml0 black truncate w-100"}
1,[e._v(e._s(i.name))])]):e._e()])])}),t("span",{staticClass:"fl w-100 mt5 tc pb5 pt3 f2 center no-underline black-59 bg-white-50 bg-animate hover-bg-black-50 hover-white-50 border-box",staticStyle:{"z-index":"1000"},on:{click:e.scroll}},[t("i",{staticClass:"icon ion-md-arrow-up"})]),t("br"),t("br")],2)],1)},r=[],o=i(1722),c=i.n(o),l={name:"Gallery",components:{VueGallery:c()},data(){return{drawings:[{name:"a dream",link:i(4820)},{name:"Leg",link:i(7551)},{name:"supermarket",link:i(7395)},{name:"twist",link:i(7232)},{name:"mushroom",link:i(8973)},{name:"up",link:i(6092)},{name:"parts 01",link:i(7830)},{name:"no escape",link:i(1170)},{name:"parts 02",link:i(7441)},{name:"the witch",link:i(3654)},{name:"green",link:i(9802)},{name:"the witch 02",link:i(2179)},{name:"green 02",link:i(5525)}],photos:[],grid:!1,index:null}},computed:{previews(){return this[this.$route.name]},images(){return this.previews.map(e=>e.link)}},created(){this.photos=Array(17).fill(null).map((e,t)=>({link:i(3136)(`./_${t}.jpg`)}))},methods:{scroll(){window.scrollTo(0,0)}}},u=l,p=i(845),d=(0,p.A)(u,a,r,!1,null,null,null),m=d.exports,h=function(){var e=this,t=e._self._c;return"sm"===e.$mq?t("MenuSmall",{attrs:{type:e.$route.name}}):t("MenuDesktop",{attrs:{type:e.$route.name}})},g=[],f=function(){var e=this,t=e._self._c;return t("div",{staticClass:"Menu cl"},[e.isMobileGridView?[t("div",{staticClass:"Menu__mobileGridViewport"},[t("the-intro",{staticClass:"Menu__gridIntro"}),e.showMobileGridToggle?t("div",{staticClass:"Menu__viewToggle--mobile"},e._l(e.mobileViewModes,function(i){return t("button",{key:i.key,staticClass:"Menu__toggleButton tc f6 link ba bw2 ph2 pv1 dib black",class:{"Menu__toggleButton--active":e.currentViewMode===i.key},attrs:{type:"button"},on:{click:function(t){return e.setMobileViewMode(i.key)}}},[t("i",{class:i.iconClass}),t("span",[e._v(e._s(i.label))])])}),0):e._e(),e.menuShow?t("div",{staticClass:"Menu__menuItems Menu__menuItems--grid w-100 bg-white-40"},[t("div",{staticClass:"Menu__mobileGrid"},e._l(e.mobileGridRows,function(i,s){return t("div",{key:`row-${s}`,staticClass:"Menu__mobileGridRow"},[t("div",{staticClass:"Menu__mobileGridCards"},e._l(i.items,function(i){return t("article",{key:i.id,staticClass:"Menu__mobileCard",class:{"Menu__mobileCard--active":i.show},on:{click:function(t){return e.handleMobileGridCardClick(i,t)}}},[t("div",{staticClass:"Menu__mobileCardMedia",class:{"Menu__mobileCardMedia--square":"music"===e.type}},[t("img",{staticClass:"Menu__mobileCardImage",attrs:{src:i.img,alt:i.name}})]),t("div",{staticClass:"Menu__mobileCardCaption"},[t("h2",{staticClass:"Menu__mobileCardTitle"},[e._v(" "+e._s(i.name)+" "),t("b",{directives:[{name:"show",rawName:"v-show",value:i.isNew,expression:"item.isNew"}],staticClass:"Menu__workGridMarker Menu__mobileCardMarker dib bg-pink"},[e._v(" new ")])])])])}),0),t("transition",{attrs:{name:"slide-fade"}},[i.activeItem?t("div",{staticClass:"Menu__details Menu__mobileDetails tl ma0"},[t("menu-item-details-content",{attrs:{"go-to-page-fn":e.goToPage,"is-mobile-grid":!0,item:i.activeItem,"open-external-link-fn":e.openExternalLink,"play-fn":e.play,"player-props-fn":e.playerProps,"show-launch-link-button-fn":e.showLaunchLinkButton,"show-play-button-fn":e.showPlayButton,"show-read-more-button-fn":e.showReadMoreButton,type:e.type},on:{"current-song":e.setCurrentSong}})],1):e._e()])],1)}),0)]):e._e()],1)]:[t("the-intro"),e.showMobileGridToggle?t("div",{staticClass:"Menu__viewToggle--mobile"},e._l(e.mobileViewModes,function(i){return t("button",{key:i.key,staticClass:"Menu__toggleButton tc f6 link ba bw2 ph2 pv1 dib black",class:{"Menu__toggleButton--active":e.currentViewMode===i.key},attrs:{type:"button"},on:{click:function(t){return e.setMobileViewMode(i.key)}}},[t("i",{class:i.iconClass}),t("span",[e._v(e._s(i.label))])])}),0):e._e(),e.menuShow?t("div",{staticClass:"Menu__menuItems w-100 bg-white-80"},e._l(e.visibleMenuItems,function(i){return t("div",{key:i.id,staticClass:"flex flex-column justify-center"},[t("a",{staticClass:"pa1 tc link",class:i.show?"router-link-active":"",on:{click:function(t){return e.setItemActive(i,"touchScreen")}
1}},[t("div",{staticClass:"link ma0 pa0 bw0"},[t("dl",{staticClass:"mt2 f6 lh-copy"},[t("dt",{staticClass:"clip"}),t("dd",{staticClass:"Menu__itemLabel relative f5 ml0 black truncate w-100"},[e._v(" "+e._s(i.name)+" "),i.point?t("span",{staticClass:"Menu__notificationDot"}):e._e(),t("i",{class:"absolute right-1 fr ma0 icon ion-md-arrow-drop-down "+(i.show?"black ion-md-arrow-dropup":"black ion-md-arrow-dropdown")}),t("b",{directives:[{name:"show",rawName:"v-show",value:!i.show&&i.isNew,expression:"!item.show && item.isNew"}],staticClass:"Menu__itemsMarker dib bg-pink black"},[e._v(" new ")]),t("b",{directives:[{name:"show",rawName:"v-show",value:i.show,expression:"item.show"}],staticClass:"Menu__itemsMarker dib bg-blue black"})])])])]),t("transition",{attrs:{name:"slide-fade"}},[t("div",{directives:[{name:"show",rawName:"v-show",value:i.show,expression:"item.show"}],staticClass:"Menu__details bg-black-10 w-100 tl ma0"},[t("menu-item-details-content",{attrs:{"go-to-page-fn":e.goToPage,item:i,"open-external-link-fn":e.openExternalLink,"play-fn":e.play,"player-props-fn":e.playerProps,"show-launch-link-button-fn":e.showLaunchLinkButton,"show-play-button-fn":e.showPlayButton,"show-read-more-button-fn":e.showReadMoreButton,type:e.type},on:{"current-song":e.setCurrentSong}})],1)])],1)}),0):e._e()]],2)},y=[];i(2505);var w=i(5353),b=function(){var e=this,t=e._self._c;return t("div",[t("a",{class:"sm"===e.$mq?e.style.mobile.h1:e.style.desktop.h1,attrs:{href:"https://salt-echoes.com/sikaili",target:"_blank",rel:"noopener noreferrer"}},[e._v(" Sikai Li ")]),t("p",{class:"sm"===e.$mq?e.style.mobile.p:e.style.desktop.p},[e._v(" Working across sound, code, and image, building unstable forms. "),t("span",{class:"sm"===e.$mq?e.style.mobile.contact:e.style.desktop.contact,on:{click:function(t){return t.stopPropagation(),e.sendMail.apply(null,arguments)}}},[e._v(" [email protected] ")])])])},v=[],k={name:"TheIntro",data(){return{style:{mobile:{h1:"tc autoM f4 b white",p:"bg-black-20 tl white autoM f6 ph3",contact:"dib ml2 underline TheIntro__contact"},desktop:{h1:"tc autoM f2 b white",p:"bg-black-10 tl white autoM",contact:"dib ml2 underline TheIntro__contact"}}}},methods:{sendMail(){window.location.href="mailto:[email protected]"}}},_=k,C=(0,p.A)(_,b,v,!1,null,"b83ed796",null),S=C.exports;const j=i(7883),x=e=>{if("string"!==typeof e)return null;const t=e.split("/").pop();if(!t)return null;const i=`./${t}`;return j.keys().includes(i)?j(i):null};var M={data(){return{loadingAnimation:!1,loadTimeout:null,loadingAnimationTimeout:null}},watch:{loading(e){const t=this.menuItems[0];!1===e&&"sm"!==this.$mq&&t&&this.toggleMenuItem({name:this.name,obj:t})},$route(){const e=this.menuItems[0];e&&this.menuItems&&0===this.menuItems.filter(e=>e.show).length&&"sm"!==this.$mq&&this.toggleMenuItem({name:this.name,obj:e})}},components:{TheIntro:S},computed:{...(0,w.L8)({musicItems:"musicItems",workItems:"workItems",loading:"loading"}),menuItems(){return(this[`${this.name}Items`]||[]).filter(e=>!0!==e.hidden)},name(){return this.type.toLowerCase()},activeItem(){return this.menuItems.filter(e=>e.show)[0]},isTouchDevice(){return"ontouchstart"in window},isIpad(){return navigator.userAgent.match(/Tablet|iPad/i)}},created(){if("sm"!==this.$mq||this.$route.params.id){const e=this.menuItems.filter(e=>e.id===this.$route.params.id)[0];if(!e&&!this.menuItems[0])return;this.toggleMenuItem({name:this.name,obj:e||this.menuItems[0]})}},mounted(){window.addEventListener("click",this.pauseToneAudioContext)},updated(){},beforeDestroy(){this.clearLoadTimers(),window.removeEventListener("click",this.pauseToneAudioContext)},methods:{...(0,w.i0)(["setActiveItem","toggleMenuItem","changeLoadingState"]),hasHttpsLink(e){return"string"===typeof e&&"https"===e.split(":")[0]},isInternalPlayLink(e){if("string"!==typeof e)return!1;try{const t=new URL(e);return"skyl.fr"===t.host&&t.pathname.startsWith("/play/")}catch(t){return!1}},hasPlayableTarget(e){if(!e)return!1;const t=e=>this.$store.getters.playableSketches.some(t=>t.id===e);return!(!e.app||!t(e.app))||!(!e.id||!t(e.id))},canLoadItem(e){return e&&!e.apps&&!e.disablePlay&&this.hasHttpsLink(e.link)&&this.hasPlayableTarget(e)},showReadMoreButton(e){return!!e&&(!0===e.showReadMore||e.imgs.length>1&&"music"!==this.type)},setCurrentSong(e){const t=e.title.toLowerCase().replace(/\s/g,"-");this.$router.push({params:{songSlug:t}})},showPlayButton(e){return!!e&&(this.hasHttpsLink(e.link)&&this.hasPlayableTarget(e)&&(!e.list||this.isInternalPlayLink(e.link))&&("music"!==this.type||this.isInternalPlayLink(e.link))&&!e.disablePlay)},showLaunchLinkButton(e){return!!e&&(this.hasHttpsLink(e.link)&&!e.list&&!this.hasPlayableTarget(e))},pauseToneAudioContext(){"music"===this.name&&window.Tone&&"running"===window.Tone.context.state&&window.Tone.context.close()},playerProps(e){const t={theme:"#357edd",audio:{preload:"metadata",volume:1}};if(!e.show&&!e.played)return{};if(e.played=!0,e.list&&e.list.length>0){if(t.list=e.list.map(e=>{const t=x(e&&e.src);return t?{...e,src:t}:null}).filter(e=>e),[t.music]=t.list,this.$route.params.songSlug){const e=t.list.filter(e=>e.title.toLowerCase().replace(" ","-")===this.$route.params.songSlug.toLowerCase().replace(" ","-"))[0];e&&(t.music=e)}}else{const i=e.name.replace(" ","-").toLowerCase(),s=x(`/src/projects/player/sound/${i}.m4a`);if(!s)return{};t.music={title:e.name,artist:"Sikai Li",src:s,pic:e.img}}return t.music&&t.music.src?t:{}},play(e){this.abortLoad();const t=e.app||e.id||e;this.setActiveItem(t),this.$router.push({path:`/play/${t}`}).catch(()=>{}),e.app&&e.id&&this.$router.push({query:{id:e.id}})},openExternalLink(e){e&&this.hasHttpsLink(e.link)&&window.open(e.link,"_blank","noopener,noreferrer")},setItemActive(e,t){this.$router.push({name:this.name,params:{id:e.id,songSlug:void 0}}).catch(()=>{}
1),"touchScreen"===t?(this.menuItems.forEach(t=>{t!==e&&(t.show=!1)}),e.show=!e.show):this.toggleMenuItem({name:this.name,obj:e})},handleMouseIn(e){e&&!this.isIpad&&"music"!==this.type&&this.load(e)},handleMouseOut(){this.isIpad||"music"===this.type||this.abortLoad()},clearLoadTimers(){null!==this.loadTimeout&&(window.clearTimeout(this.loadTimeout),this.loadTimeout=null),null!==this.loadingAnimationTimeout&&(window.clearTimeout(this.loadingAnimationTimeout),this.loadingAnimationTimeout=null)},abortLoad(){this.clearLoadTimers(),this.loadingAnimationTimeout=window.setTimeout(()=>{this.loadingAnimation=!1,this.loadingAnimationTimeout=null},200)},load(e){this.canLoadItem(e)?(this.clearLoadTimers(),this.loadingAnimation=!0,this.loadTimeout=window.setTimeout(()=>{this.setActiveItem(e.app||e.id),this.loadingAnimation=!1,this.loadTimeout=null},1e3)):this.abortLoad()},goToPage(e){this.$router.push({path:`/page/${this.name}/${e.id}`})}}},L=function(){var e=this,t=e._self._c;return t("div",["music"===e.type?t("div",{class:e.playerClassName},[e.resolvedPlayerProps&&e.resolvedPlayerProps.music?t("player-component",e._b({on:{emitCurrentSong:function(t){return e.$emit("current-song",t)}}},"player-component",e.resolvedPlayerProps,!1)):e._e()],1):e._e(),t("div",{class:e.contentClassName},[t("blockquote",{staticClass:"ph0 pb2 mb0 bb mh0 mt0"},[e.hasPrimaryActions?t("div",{staticClass:"Menu__actionRow"},[e.showReadMoreButtonFn(e.item)?t("span",{class:e.readMoreButtonClassName,on:{click:function(t){return t.stopPropagation(),e.goToPageFn(e.item)}}}
1,[e._v("Read more..")]):e._e(),e.showPlayButtonFn(e.item)?t("span",{class:e.playButtonClassName,on:{click:function(t){return t.stopPropagation(),e.playFn(e.item)}}},[t("i",{staticClass:"icon ion-md-return-right"}),t("span",{staticClass:"pr1"},[e._v("Play!")])]):e._e(),e.showLaunchLinkButtonFn(e.item)?t("span",{class:e.playButtonClassName,on:{click:function(t){return t.stopPropagation(),e.openExternalLinkFn(e.item)}}},[t("i",{staticClass:"icon ion-md-open"}),t("span",{staticClass:"pr1"},[e._v("Open!")])]):e._e()]):e._e(),e.item.apps?t("div",{staticClass:"Menu__actionRow"},e._l(e.item.apps,function(i,s){return t("span",{key:s,staticClass:"Menu__detailButton tc f6 link ba bw2 ph2 pv1 dib black dim",on:{click:function(t){return t.stopPropagation(),e.playFn(i)}}},[e._v(" "+e._s(i)+" "),t("i",{staticClass:"icon ion-md-return-right"})])}),0):e._e(),t("p",{staticClass:"lh-copy f6 ma0 black"},[e._v(" "+e._s(e.item.des)+" ")])]),e.item.link&&!e.item.hideLink?t("div",{staticClass:"w-100 overflow-auto mb2"},[t("a",{staticClass:"f7 truncate black lh-copy nowrap",attrs:{href:e.item.link,target:"_blank"}},[e._v(e._s(e.item.link))])]):e._e(),t("img",{staticClass:"w-100 dim",attrs:{src:e.item.img,alt:e.item.name}}),e.item.credits.length>1?[t("h4",[e._v("Credits")]),e._l(e.item.credits,function(i,s){return t("div",{key:i.link+s,staticClass:"f7 flex",staticStyle:{"line-height":"1"}},[t("p",{staticClass:"truncate w-60"},[e._v(" "+e._s(i.role)+": ")]),t("p",{staticClass:"truncate"},[t("a",{staticClass:"ml3 black",attrs:{target:"_blank",href:i.link}},[e._v(" "+e._s(i.name)+" ")])]),t("br")])})]:e._e()],2)])},A=[];const P=()=>i.e(321).then(i.t.bind(i,3784,23));P.disableVersionBadge=!0;var I={name:"MenuItemDetailsContent",components:{PlayerComponent:P},props:{goToPageFn:{required:!0,type:Function},isMobileGrid:{default:!1,type:Boolean},isDesktopDetail:{default:!1,type:Boolean},item:{required:!0,type:Object},openExternalLinkFn:{required:!0,type:Function},playFn:{required:!0,type:Function},playerPropsFn:{required:!0,type:Function},showLaunchLinkButtonFn:{required:!0,type:Function},showPlayButtonFn:{required:!0,type:Function},showReadMoreButtonFn:{required:!0,type:Function},type:{default:"",type:String}},computed:{contentClassName(){return this.isMobileGrid?"ph3 pv3":this.isDesktopDetail?"ph4 pt1 pb3":"ph4 pv3"},hasPrimaryActions(){return this.showReadMoreButtonFn(this.item)||this.showPlayButtonFn(this.item)||this.showLaunchLinkButtonFn(this.item)},playButtonClassName(){return"Menu__detailButton tc f6 link ba bw2 ph2 pv1 dib black dim"},playerClassName(){return this.isMobileGrid?"Menu__player Menu__player--mobile":"Menu__player"},readMoreButtonClassName(){return"Menu__detailButton tc f6 dim link ba bw2 ph2 pv1 dib black"},resolvedPlayerProps(){return this.playerPropsFn(this.item)}}},T=I,E=(0,p.A)(T,L,A,!1,null,"1b7601fe",null),$=E.exports;const B="menu-view-mode:",q={work:"grid",music:"list"},D=[{iconClass:"icon ion-md-list pr1",key:"list",label:"List"},{iconClass:"icon ion-md-apps pr1",key:"grid",label:"Grid"}];function O(e){return Object.prototype.hasOwnProperty.call(q,e)}function V(e){return"list"===e||"grid"===e}function R(e){return`${B}
1${e}`}function N(e,t=window.localStorage){if(!e||!O(e)||!t)return null;const i=t.getItem(R(e));return V(i)?i:null}function F(e){return q[e]||"list"}function G(e,t=window.localStorage){return N(e,t)||F(e)}function U(e=window.localStorage){return Object.keys(q).reduce((t,i)=>(t[i]=G(i,e),t),{...q})}function z(e,t,i=window.localStorage){e&&i&&O(e)&&V(t)&&i.setItem(R(e),t)}const H="list",W=Object.freeze({bottomMargin:24,duration:520,overflowThreshold:200,targetTopOffset:50}),J=()=>"undefined"===typeof window?null:window.localStorage;var K={name:"MenuSmall",components:{MenuItemDetailsContent:$},mixins:[M],props:{type:{default:"",type:String}},data(){return{menuShow:!0,mobileScrollAnimationFrame:null,viewModes:U(J())}},computed:{currentViewMode(){return this.showMobileGridToggle?this.storedViewMode:"list"},isMobileGridView(){return"grid"===this.currentViewMode},mobileViewModes(){return D},showMobileGridToggle(){return O(this.type)},storedViewMode(){return this.viewModes[this.type]||G(this.type,null)},mobileGridRows(){const e=[];for(let t=0;t<this.visibleMenuItems.length;t+=2){const i=this.visibleMenuItems.slice(t,t+2);e.push({activeItem:i.find(e=>e.show)||null,items:i})}return e},visibleMenuItems(){return(this.menuItems||[]).filter(e=>!0!==e.hidden&&"true"!==e.hidden)}},watch:{type:{immediate:!0,handler(e){this.syncMobileInitialViewMode(e)}}},created(){this.syncMobileInitialViewMode(this.type)},beforeDestroy(){this.cancelMobileScrollAnimation()},methods:{getMobileInitialViewMode(e){return"music"===e?H:G(e,J())},syncMobileInitialViewMode(e){if(!O(e))return;const t=this.getMobileInitialViewMode(e);this.viewModes[e]!==t&&this.$set(this.viewModes,e,t)},animateMobileScrollTo(e,t=W.duration){if("undefined"===typeof window)return;this.cancelMobileScrollAnimation();const i=window.pageYOffset||window.scrollY||0,s=window.innerHeight||document.documentElement.clientHeight,n=Math.max(document.documentElement.scrollHeight-s,0),a=Math.max(0,Math.min(e,n)),r=a-i;if(Math.abs(r)<1)return;const o=window.performance.now(),c=e=>e<.5?4*e*e*e:1-(-2*e+2)**3/2,l=e=>{const s=Math.min((e-o)/t,1);window.scrollTo(0,i+r*c(s)),this.mobileScrollAnimationFrame=s<1?window.requestAnimationFrame(l):null};this.mobileScrollAnimationFrame=window.requestAnimationFrame(l)},cancelMobileScrollAnimation(){"undefined"!==typeof window&&null!==this.mobileScrollAnimationFrame&&(window.cancelAnimationFrame(this.mobileScrollAnimationFrame),this.mobileScrollAnimationFrame=null)},maybeScrollOpenedMobileCard(e){if(!e||"undefined"===typeof window)return;const t=e.closest(".Menu__mobileGridRow"),i=t&&t.querySelector(".Menu__mobileDetails");if(!t||!i)return;const s=window.innerHeight||document.documentElement.clientHeight,n=i.getBoundingClientRect(),a=n.bottom-(s-W.bottomMargin);if(a<=W.overflowThreshold)return;const r=window.pageYOffset||window.scrollY||0,o=e.getBoundingClientRect().top+r;this.animateMobileScrollTo(o-W.targetTopOffset)},setMobileViewMode(e){this.showMobileGridToggle&&V(e)&&this.storedViewMode!==e&&(this.$set(this.viewModes,this.type,e),z(this.type,e,J()))},handleMobileGridCardClick(e,t){const i=t&&t.currentTarget;if(e.show)return this.setActiveItem(null),e.show=!1,void this.$router.push({name:this.name,params:{id:void 0,songSlug:void 0}}).catch(()=>{});this.setItemActive(e),this.$nextTick(()=>{this.maybeScrollOpenedMobileCard(i)})}}},Y=K,X=(0,p.A)(Y,f,y,!1,null,"40dc2738",null),Q=X.exports,Z=function(){var e=this,t=e._self._c;return t("div",{ref:"menuRoot",staticClass:"Menu cl",class:{"Menu--fixedViewport":e.isDesktopGridView},style:e.menuRootStyle},[t("div",{ref:"introWrapper"},[t("the-intro"),e.showGridToggle?t("div",{staticClass:"Menu__viewToggle"},[t("button",{staticClass:"Menu__button Menu__toggleButton tc f6 link ba bw2 ph2 pv1 dib black",class:{"Menu__toggleButton--active":"list"===e.currentViewMode},attrs:{type:"button"},on:{click:function(t){return e.setViewMode("list")}}},[t("i",{staticClass:"icon ion-md-list pr1"}),t("span",[e._v("List")])]),t("button",{staticClass:"Menu__button Menu__toggleButton tc f6 link ba bw2 ph2 pv1 dib black",class:{"Menu__toggleButton--active":"grid"===e.currentViewMode},attrs:{type:"button"},on:{click:function(t){return e.setViewMode("grid")}}},[t("i",{staticClass:"icon ion-md-apps pr1"}
1),t("span",[e._v("Grid")])])]):e._e()],1),e.isDesktopGridView?t("div",{staticClass:"Menu__workGridArea fl bg-white-50",style:e.gridBlockStyle},[t("div",{ref:"workGrid",staticClass:"Menu__workGrid"},e._l(e.visibleMenuItems,function(i,s){return t("article",{key:i.id||`${i.name}-${s}`,staticClass:"Menu__workGridCard link black",class:e.gridCardClass(i,s),on:{click:function(t){return e.selectGridItem(i)}}},[t("div",{staticClass:"Menu__workGridMedia",class:{"Menu__workGridMedia--square":"music"===e.type}},[t("img",{staticClass:"Menu__workGridImage",attrs:{src:i.img,alt:i.name}})]),t("div",{staticClass:"Menu__workGridCaption"},[t("h2",{staticClass:"Menu__workGridTitle"},[e._v(" "+e._s(i.name)+" "),t("b",{directives:[{name:"show",rawName:"v-show",value:i.isNew,expression:"item.isNew"}],staticClass:"Menu__workGridMarker dib bg-pink"},[e._v(" new ")])]),t("div",{staticClass:"Menu__workGridActions"},[e._l(i.apps||[],function(s,n){return t("span",{key:`${i.name}-${s}-${n}`,staticClass:"Menu__gridActionButton tc f6 link ba bw2 ph2 pv1 dib black dim",on:{click:function(t){return t.stopPropagation(),e.play(s)}}},[e._v(" "+e._s(e.gridAppLabel(s))+" ")])}),e.showReadMoreButton(i)?t("span",{staticClass:"Menu__gridActionButton tc f6 dim link ba bw2 ph2 pv1 dib black",on:{click:function(t){return t.stopPropagation(),e.goToPage(i)}}}
1,[e._v("Read more..")]):e._e(),e.showPlayButton(i)?t("span",{staticClass:"Menu__gridActionButton tc f6 link ba bw2 ph2 pv1 dib black dim",on:{click:function(t){return t.stopPropagation(),e.play(i)}}},[t("span",{staticClass:"pr1"},[e._v("Play!")]),t("i",{staticClass:"icon ion-md-return-right"})]):e._e(),e.showLaunchLinkButton(i)?t("span",{staticClass:"Menu__gridActionButton tc f6 link ba bw2 ph2 pv1 dib black dim",on:{click:function(t){return t.stopPropagation(),e.openExternalLink(i)}}},[t("span",{staticClass:"pr1"},[e._v("Open!")]),t("i",{staticClass:"icon ion-md-open"})]):e._e()],2)])])}),0)]):t("div",{staticClass:"fl bg-black-50 flex justify-end",style:e.leftBlockStyle,on:{click:function(t){e.menuShow=!e.menuShow}}},["lg"===e.$mq?t("h1",{staticClass:"ph5 f3 white tr"},[e._v(" -> ")]):t("h1",{staticClass:"ph3 f3 white tr"},[t("i",{class:e.menuShow?"icon ion-md-close":"icon ion-md-add"})])]),!e.isDesktopGridView&&e.menuShow?t("div",{staticClass:"Menu__centerBlock fl bg-white-80",class:"lg"===e.$mq?"w-20":"w-30",style:e.centerBlockStyle},[t("div",{staticClass:"flex flex-column justify-center"},e._l(e.visibleMenuItems,function(i,s){return t("a",{key:i.id+s,staticClass:"pa1 tc link",class:i.show?"router-link-active":"",on:{click:function(t){return e.setItemActive(i)}}},[t("div",{staticClass:"link ma0 pa0 bw0"},[t("dl",{staticClass:"mt2 f6 lh-copy"},[t("dt",{staticClass:"clip"}),t("dd",{staticClass:"Menu__itemLabel relative f4 ml0 black truncate w-100 ph2",staticStyle:{overflow:"hidden","white-space":"nowrap"}},[e._v(" "+e._s(i.name)+" "),i.point?t("span",{staticClass:"Menu__notificationDot"}):e._e(),t("b",{directives:[{name:"show",rawName:"v-show",value:i.isNew,expression:"item.isNew"}],staticClass:"Menu__itemMarker ml1 dib bg-pink"},[e._v(" new ")]),t("i",{class:"absolute right-0 mr1 fr ma0 icon ion-md-arrow-dropright "+(i.show?"mr3 black":"black")})])])])])}),0)]):e._e(),t("div",{staticClass:"Menu__detailPane fl",class:{"Menu__detailPane--grid":e.isDesktopGridView},style:e.rightBlockStyle},[t("div",e._l(e.visibleMenuItems,function(i,s){return t("div",{key:e.type+s},[t("transition",{attrs:{name:"slide-fade"}},[t("div",{directives:[{name:"show",rawName:"v-show",value:i.show&&(e.isDesktopGridView||e.menuShow),expression:"w.show && (isDesktopGridView || menuShow)"}],staticClass:"fl w-100 w-100-ns tl ma0",on:{mouseenter:function(t){return e.handleSummaryMouseIn(i)},mouseleave:function(t){return e.handleSummaryMouseOut()}}},[t("transition",{attrs:{name:"loading"}},[t("div",{directives:[{name:"show",rawName:"v-show",value:e.loadingAnimation&&!i.apps&&!i.disablePlay,expression:"loadingAnimation && !w.apps && !w.disablePlay"}],staticClass:"loading bg-blue f3"},[e._v(" Loading... ")])]),t("div",{staticClass:"Menu__detailContainer pa4"},[t("h1",{staticClass:"Menu__detailTitle f4 f1-ns b"},[e._v(" "+e._s(i.name)+" ")]),t("menu-item-details-content",{attrs:{"go-to-page-fn":e.goToPage,"is-desktop-detail":!0,item:i,"open-external-link-fn":e.openExternalLink,"play-fn":e.play,"player-props-fn":e.playerProps,"show-launch-link-button-fn":e.showLaunchLinkButton,"show-play-button-fn":e.showPlayButton,"show-read-more-button-fn":e.showReadMoreButton,type:e.type},on:{"current-song":e.setCurrentSong}})],1)],1)])],1)}),0)])])},ee=[];const te=()=>"undefined"===typeof window?null:window.localStorage;var ie={name:"MenuDesktop",components:{MenuItemDetailsContent:$},mixins:[M],props:{type:{type:String,required:!0}},data(){return{menuShow:!0,loadingAnimation:!1,menuViewportHeight:null,panelViewportHe
1ight:null,layoutSyncFrame:null,hasResizedDesktopGrid:!1,gridColumnCount:1,viewModes:{...q}}},computed:{isGridCapablePage(){return O(this.type)},showGridToggle(){return this.isGridCapablePage&&"lg"===this.$mq},storedViewMode(){return this.viewModes[this.type]||q[this.type]||"list"},currentViewMode(){return this.showGridToggle?this.storedViewMode:"list"},isDesktopGridView(){return"grid"===this.currentViewMode},shouldMeasureDesktopGrid(){return this.isDesktopGridView&&this.isCurrentMenuRoute},isDesktopListView(){return this.showGridToggle&&!this.isDesktopGridView},isCurrentMenuRoute(){return this.$route.name===this.type},shouldLockDocumentScroll(){return this.shouldMeasureDesktopGrid},listBlockOffset(){return"10px"},gridPaneSpacing(){return{radius:"16px",top:"8px",bottom:"8px",outer:"16px",inner:"0px"}},gridPaneHeightCompensation(){return this.hasResizedDesktopGrid?24:0},gridPaneHeight(){return this.isDesktopGridView&&this.panelViewportHeight?Math.max(this.panelViewportHeight-80+this.gridPaneHeightCompensation,0):null},gridPaneWidthTrim(){const{outer:e,inner:t}=this.gridPaneSpacing;return parseFloat(e)+parseFloat(t)},gridBlockStyle(){const e="lg"===this.$mq?{width:this.isDesktopGridView?`calc(60% - ${this.gridPaneWidthTrim}px)`:"60%",margin:"0"}:{width:"calc(365px + max(0px, calc(50% - 365px)))",margin:"0"};return Object.assign(e,this.getGridPaneFrame("left")),e},centerBlockStyle(){return this.isDesktopListView?{marginTop:this.listBlockOffset}:{}},leftBlockStyle(){return"lg"===this.$mq?{width:"calc(60% - 365px)",minWidth:"80px",...this.isDesktopListView?{marginTop:this.listBlockOffset}:{}}:{width:"max(0px, calc(50% - 365px))",margin:"0",minWidth:"0"}},rightBlockStyle(){const e="lg"===this.$mq?{width:this.isDesktopGridView?`calc(40% - ${this.gridPaneWidthTrim}px)`:"40%",margin:"0",marginRight:"0"}:{width:"calc(100% - 365px - max(0px, calc(50% - 365px)))",margin:"0",marginRight:"0"};return this.isDesktopListView&&(e.marginTop=this.listBlockOffset),Object.assign(e,this.getGridPaneFrame("right")),e},visibleMenuItems(){return(this.menuItems||[]).filter(e=>!0!==e.hidden&&"true"!==e.hidden)},layoutSyncKey(){return[this.type,this.currentViewMode,this.isCurrentMenuRoute,this.$mq].join(":")},menuRootStyle(){return this.shouldMeasureDesktopGrid&&this.menuViewportHeight?{height:`${this.menuViewportHeight}px`,overflow:"hidden"}:{}}},watch:{layoutSyncKey(){this.$nextTick(this.scheduleLayoutSync)}},mounted(){this.hydrateStoredViewModes(),window.addEventListener("resize",this.handleWindowResize),this.$nextTick(this.scheduleLayoutSync)},activated(){this.$nextTick(this.scheduleLayoutSync)},deactivated(){this.cancelScheduledLayoutSync(),this.releaseDocumentScrollLock()},beforeDestroy(){window.removeEventListener("resize",this.handleWindowResize),this.cancelScheduledLayoutSync(),this.releaseDocumentScrollLock()},methods:{handleWindowResize(){this.hasResizedDesktopGrid=!0,this.scheduleLayoutSync()},scheduleLayoutSync(){"undefined"!==typeof window&&(this.cancelScheduledLayoutSync(),this.layoutSyncFrame=window.requestAnimationFrame(()=>{if(this.layoutSyncFrame=null,this.shouldMeasureDesktopGrid)return window.scrollTo(0,0),void(this.layoutSyncFrame=window.requestAnimationFrame(()=>{this.layoutSyncFrame=null,this.syncLayoutNow()}));this.syncLayoutNow()}))},cancelScheduledLayoutSync(){"undefined"!==typeof window&&null!==this.layoutSyncFrame&&(window.cancelAnimationFrame(this.layoutSyncFrame),this.layoutSyncFrame=null)},hydrateStoredViewModes(){const e=te();e&&Object.keys(q).forEach(t=>{const i=G(t,e);this.$set(this.viewModes,t,i)})}
1,persistViewMode(e=this.type,t){e&&z(e,t,te())},getVisibleViewportOffset(e){return Math.max(e,0)},setViewMode(e){this.isGridCapablePage&&V(e)&&this.viewModes[this.type]!==e&&(this.$set(this.viewModes,this.type,e),this.persistViewMode(this.type,e))},getGridPaneFrame(e){if(!this.isDesktopGridView||null===this.gridPaneHeight)return{};const{radius:t,top:i,bottom:s,outer:n,inner:a}=this.gridPaneSpacing,r={height:`${this.gridPaneHeight}px`,overflowY:"left"===e?"scroll":"auto",overflowX:"hidden",borderRadius:"left"===e?`${t} 0 0 ${t}`:`0 ${t} ${t} 0`,boxSizing:"border-box",marginTop:i,marginBottom:s};return"left"===e?(r.marginLeft=n,r.marginRight=a):(r.backgroundColor="var(--menu-detail-bg)",r.backdropFilter="blur(4px)",r.webkitBackdropFilter="blur(4px)",r.marginLeft=a,r.marginRight=n),r},handleSummaryMouseIn(e){this.isDesktopGridView||this.handleMouseIn(e)},handleSummaryMouseOut(){this.isDesktopGridView||this.handleMouseOut()},gridAppLabel(e){return"string"===typeof e&&e.length?e.charAt(0).toUpperCase():""},gridCardClass(e,t){const i=e.show;return{"Menu__workGridCard--active":i,"Menu__workGridCard--rowEnd":i&&this.isGridItemAtRowEnd(t)}},isGridItemAtRowEnd(e){const t=Math.max(this.gridColumnCount||1,1);return(e+1)%t===0},selectGridItem(e){this.setItemActive(e),"music"!==this.type&&this.load(e)},syncLayoutNow(){this.measureDesktopLayout(),this.syncDocumentScrollLock()},measureDesktopLayout(){if(!this.shouldMeasureDesktopGrid||!this.$refs.menuRoot)return this.menuViewportHeight=null,this.panelViewportHe
1ight=null,void(this.gridColumnCount=1);const e=this.$refs.menuRoot.getBoundingClientRect();this.menuViewportHeight=Math.max(window.innerHeight-this.getVisibleViewportOffset(e.top),0);const t=this.$refs.introWrapper?this.$refs.introWrapper.getBoundingClientRect():e;this.panelViewportHeight=Math.max(window.innerHeight-this.getVisibleViewportOffset(t.bottom),0),this.syncGridColumnCount()},syncGridColumnCount(){if(!this.isDesktopGridView||!this.$refs.workGrid)return void(this.gridColumnCount=1);const e=window.getComputedStyle(this.$refs.workGrid).gridTemplateColumns.split(" ").filter(Boolean).length;this.gridColumnCount=Math.max(e,1)},syncDocumentScrollLock(){if("undefined"===typeof document)return;const e=this.shouldLockDocumentScroll?"hidden":"";document.documentElement.style.overflow=e,document.body.style.overflow=e},releaseDocumentScrollLock(){"undefined"!==typeof document&&(document.documentElement.style.overflow="",document.body.style.overflow="")}}},se=ie,ne=(0,p.A)(se,Z,ee,!1,null,null,null),ae=ne.exports,re={name:"Menu",components:{MenuSmall:Q,MenuDesktop:ae},computed:{ipad(){return navigator.userAgent.match(/Tablet|iPad/i)}}},oe=re,ce=(0,p.A)(oe,h,g,!1,null,null,null),le=ce.exports,ue=function(){var e=this,t=e._self._c;return t("the-side-menu",{directives:[{name:"show",rawName:"v-show",value:e.showSideMenu,expression:"showSideMenu"}]})},pe=[],de=function(){var e=this,t=e._self._c;return e.canvasFullScreen?e._e():t("div",{staticClass:"Sidemenu fixed mw4 f3 tc left-1"},[t("br"),t("span",{staticClass:"w-100 f5 no-underline white bg-black-80 bg-animate hover-bg-white hover-black inline-flex items-center pa3 border-box",on:{click:function(t){return e.handleClickActionButton()}}},[t("i",{class:"tc icon ion-md-"+("Random"===e.actionButton?"shuffle":"refresh")}),t("span",{staticClass:"pl1"},[e._v(e._s(e.actionButton))])]),t("div",{staticClass:"f6 tl",staticStyle:{"min-height":"2.5rem"}},[t("p",{staticClass:"pa2 bg-animate hover-bg-white hover-black mb0 pb2 white bg-black-60",on:{click:function(t){return e.toggle()}}},[e._v(" "+e._s(e.$route.query.id||e.activeItem.id||"list")+" "),t("i",{class:"hover-black fr ma0 icon ion-md-arrow-drop-down "+(e.displayList?" ion-md-arrow-dropup":" ion-md-arrow-dropdown")})]),e.displayList?t("div",[e._m(0),t("p",{staticClass:"ma0 pa0 f3 white bg-black-80"},[e._m(1),e._m(2),t("a",{attrs:{target:"_blank",rel:"canonical",href:"https://twitter.com/intent/tweet?url=https://skyl.fr"+e.$route.path}},[t("i",{staticClass:"white mh1 icon ion-logo-twitter"})]),e._m(3)])]):e._e()]),t("transition",{attrs:{name:"slide-fade1"}},[e.displayList?t("div",{staticClass:"Sidemenu__List overflow-y-scroll vh-50 f6 tl bg-white-30"},e._l(e.filteredplayableSketches,function(i,s){return t("span",{key:s},[t("p",{staticClass:"listItem ph1 bg-animate hover-bg-white hover-black white bg-black-60",class:{"bg-black":e.$route.params.id===i.id},on:{click:function(t){return e.handlePClick(i)}}},[e._v(" "+e._s(i.id)+" ")])])}),0):e._e()])],1)},me=[function(){var e=this,t=e._self._c;return t("p",{staticClass:"mv0 pv1 ph1 white bg-black-80"},[t("a",{staticClass:"link white",attrs:{target:"_blank",title:"open in a new page"}},[e._v("skyl.fr")])])},function(){var e=this,t=e._self._c;return t("a",{attrs:{target:"_blank",href:"https://github.com/sikaili"}},[t("i",{staticClass:"white mh1 icon ion-logo-github"})])},function(){var e=this,t=e._self._c;return t("a",{attrs:{target:"_blank",title:"instagram",href:"https://www.instagram.com/skylfr/"}},[t("i",{staticClass:"white mh1 icon ion-logo-instagram"})])},function(){var e=this,t=e._self._c;return t("a",{attrs:{href:"mailto:[email protected]",title:"mail"}},[t("i",{staticClass:"white icon ion-ios-send"})])}],he={name:"TheSideMenu",data(){return{displayList:!1,time:Date.now(),actionButton:"Random"}},computed:{...(0,w.L8)({activeItem:"activeItem",playableSketches:"playableSketches",canvasFullScreen:"canvasFullScreen"}),filteredplayableSketches(){return this.playableSketches.filter(e=>"iframe-music"!==e.type&&!e.app)}},created(){const{id:e}=this.$route.params;"random"===e&&this.randomIframe(!0)},mounted(){this.setActionButton()},methods:{...(0,w.i0)({setActiveItem:"setActiveItem"}
1),setActionButton(){clearTimeout(this.timeOut),this.actionButton="Random",this.timeOut=setTimeout(()=>{this.actionButton="Restart"},4e3)},handleClickActionButton(){"Random"===this.actionButton?this.randomIframe():"Restart"===this.actionButton&&this.restart(),this.setActionButton()},restart(){this.$root.$emit("refreshCanvas",!0)},randomIframe(e=!1){const t=Math.floor(Math.random()*(e?6:this.playableSketches.length)),i=this.playableSketches[t];this.displayList=!1,this.setActiveItem(i),this.$router.replace({params:{id:i.id}})},handlePClick(e){e!==this.activeItem&&(this.displayList=!1,this.$store.dispatch("setActiveItem",e),this.$router.replace({params:{id:this.activeItem.app||this.activeItem.id}}),this.setActionButton())},toggle(){return this.displayList?this.hide():this.show()},show(){this.displayList=!0,setTimeout(()=>document.addEventListener("click",this.hide),0)},hide(){this.displayList=!1,document.removeEventListener("click",this.hide)}}},ge=he,fe=(0,p.A)(ge,de,me,!1,null,"4bb51950",null),ye=fe.exports,we={name:"Play",components:{TheSideMenu:ye},data(){return{showSideMenu:!0}},mounted(){this.$root.$on("emit-showSideMenu",e=>{this.showSideMenu=e})},beforeDestroy(){this.$root.$off("emit-showSideMenu")}},be=we,ve=(0,p.A)(be,ue,pe,!1,null,"9b66c888",null),ke=ve.exports,_e=function(){var e=this,t=e._self._c;return t("div",[t("h1",{staticClass:"tc pa2"},[e._v(" "+e._s(e.item.name)+" ")]),t("div",{staticClass:"ml-auto mr-auto w-80 mw7 bg-white-90",class:"sm"===e.$mq?"w-100":""},[t("router-link",{staticClass:"fr right-0 pr2 f2 icon ion-md-close gray c-animate hover-black",attrs:{to:e.backTo,"aria-label":"Close page"}}),t("div",{staticClass:"flex-row justify-center items-start tl",class:"sm"===e.$mq?"ma2 pa3 mb5 pb5":"pa5"},[t("h3",[e._v(e._s(e.item.name))]),e.item.about!=e.item.des||e.item.imgs?t("p",{staticClass:"f6"},[e._v(" "+e._s(e.item.des)+" ")]):e._e(),e._l(e.item.imgs,function(e){return t("img",{key:e,staticClass:"w-100 pv3",attrs:{src:e}})}),t("br"),e.item.about||e.item.aboutHtml?[t("h3",[e._v("About")]),e.item.aboutHtml?t("div",{staticClass:"Page__richText f6",domProps:{innerHTML:e._s(e.item.aboutHtml)}}):t("p",{staticClass:"f6"},[e._v(" "+e._s(e.item.about)+" ")])]:e._e(),t("br"),e.item.link?t("h3",[e._v(" Project website ")]):e._e(),e.item.link?t("p",[e.shouldOpenInNewTab(e.item.link)?t("a",{staticClass:"black f7",attrs:{href:e.item.link,target:"_blank",rel:"noopener noreferrer"}},[e._v(e._s(e.item.link))]):t("router-link",{staticClass:"black f7 underline",attrs:{to:e.toInternalRoute(e.item.link)}},[e._v(" "+e._s(e.item.link)+" ")])],1):e._e(),t("br"),t("h3",[e._v("Credits")]),"sm"!==e.$mq?t("div",e._l(e.item.credits,function(i){return t("div",{key:i.link+i.role,staticClass:"flex f7",staticStyle:{"line-height":"0"}},[t("p",{staticClass:"w-40"},[e._v(" "+e._s(i.role)+": ")]),t("p",[t("a",{staticClass:"black w-60",attrs:{target:"_blank",href:i.link}},[e._v(e._s(i.name))])])])}),0):t("div",e._l(e.item.credits,function(i,s){return t("div",{key:i.link+s,staticClass:"f7 flex",staticStyle:{"line-height":"1"}},[t("p",{staticClass:"truncate w-60 ma1"},[e._v(" "+e._s(i.role)+": ")]),t("p",{staticClass:"truncate ma0"},[t("a",{staticClass:"ml3 black",attrs:{target:"_blank",href:i.link}},[e._v(e._s(i.name))])]),t("br")])}),0),t("br"),t("router-link",{staticClass:"f5 no-underline white bg-black-40 bg-animate hover-bg-black hover-white inline-flex items-center pa3 border-box mr1",attrs:{to:e.backTo}},[t("i",{staticClass:"icon ion-md-return-left"}),t("span",{staticClass:"pl1"},[e._v("Back")])]),e.hasHttpsLink(e.item.link)&&e.hasPlayableTarget(e.item)&&!0!==e.item.disablePlay?t("span",{staticClass:"f5 no-underline white bg-light-red bg-animate hover-bg-black hover-white inline-flex items-center pa3 border-box mr1",on:{click:e.play}},[t("span",{staticClass:"pr1"},[e._v("Launch")]),t("i",{staticClass:"icon ion-md-return-right"})]):e._e()],2)],1)])},Ce=[],Se={name:"Page",data(){return{id:this.$route.params.id}},computed:{item(){const e=this.$store.state.projects;if(this.id>e.length)return"ERROR!";const t=e.find(e=>e.id===this.$route.params.id);return t},backTo(){const{category:e,id:t}=this.$route.params;return t?`/${e}/${t}`:`/${e}`}},methods:{...(0,w.i0)(["setActiveItem"]),hasHttpsLink(e){return"string"===typeof e&&"https"===e.split(":")[0]},isSkylLink(e){if("string"!==typeof e)return!1;try{const t=new URL(e);return"https:"===t.protocol&&"skyl.fr"===t.host}catch(t){return!1}},shouldOpenInNewTab(e){return!this.isSkylLink(e)},toInternalRoute(e){if(!this.isSkylLink(e))return"/";const t=new URL(e);return`${t.pathname}${t.search}${t.hash}`},hasPlayableTarget(e){return Boolean(this.getPlayableTarget(e))},getPlayableTarget(e){if(!e)return!1;const t=e=>this.$store.getters.playableSketches.some(t=>t.id===e);return e.app&&t(e.app)?e.app:e.id&&t(e.id)?e.id:null},play(){const e=this.getPlayableTarget(this.item);e&&(this.setActiveItem(e),this.$router.push({path:`/play/${e}`}))}}},je=Se,xe=(0,p.A)(je,_e,Ce,!1,null,"4e7c8833",null),Me=xe.exports;const Le=()=>i.e(428).then(i.bind(i,5239)),Ae=1024;function Pe(e){return!("undefined"===typeof window||!O(e))&&(!(window.innerWidth<Ae)&&"grid"===G(e,window.localStorage))}function Ie(e,t){return"undefined"!==typeof window&&(!(window.innerWidth>=Ae)&&(!(!e.name||e.name!==t.name)&&O(e.name)))}s["default"].use(n.Ay);const Te=new n.Ay({mode:"history",scrollBehavior(e,t,i){return Pe(e.name)?{x:0,y:0}:!Ie(e,t)&&(i||{x:0,y:0})},routes:[{path:"/",name:"home",redirect:"/work"},{path:"/drawings",name:"drawings",component:m},{path:"/photos",name:"photos",component:m},{path:"/work/:id?",name:"work",component:le},{path:"/page/:category/:id?",name:"contentPage",component:Me},{path:"/play/:id?",name:"play",component:ke},{path:"/music/:id?/:songSlug?",name:"music",component:le},{path:"/cv",name:"cv/",component:Le},{path:"*",redirect:"/play/random"}]});var Ee=Te},2736:function(e,t,i){"use strict";e.exports=i.p+"img/crystal-concrete_0.86508f1f.jpeg"},218:function(e,t,i){"use strict";e.exports=i.p+"img/crystal-concrete_1.f0d92cde.jpg"},6650:function(e,t,i){"use strict";e.exports=i.p+"img/crystal-concrete_2.9d7bed65.jpeg"},4049:function(e,t,i){"use strict";e.exports=i.p+"img/crystal-concrete_3.5e111ebc.jpeg"},276:function(e,t,i){"use strict";e.exports=i.p+"img/crystal-concrete_4.3d5a3a2b.jpeg"},9790:function(e,t,i){"use strict";e.exports=i.p+"img/crystal-concrete_6.c50db1ec.jpeg"},4197:function(e,t,i){"use strict";e.exports=i.p+"img/crystal-concrete_7.c04308c7.jpeg"},8808:function(e,t,i){"use strict";e.exports=i.p+"img/crystal-concrete_8.cd566f33.jpeg"},4820:function(e,t,i){"use strict";e.exports=i.p+"img/1.52685428.jpg"},3654:function(e,t,i){"use strict";e.exports=i.p+"img/10.49242dec.jpg"},2179:function(e,t,i){"use strict";e.exports=i.p+"img/11.717d9ed3.jpg"},7395:function(e,t,i){"use strict";e.exports=i.p+"img/2.1a584ece.jpg"},8973:function(e,t,i){"use strict";e.exports=i.p+"img/4.c37f1eb9.jpg"},7232:function(e,t,i){"use strict";e.exports=i.p+"img/5.6b1d07cc.jpg"},7551:function(e,t,i){"use strict";e.exports=i.p+"img/6.16916e0d.jpg"},1170:function(e,t,i){"use strict";e.exports=i.p+"img/7.c69f1150.jpg"},6092:function(e,t,i){"use strict";e.exports=i.p+"img/9.9ee27e7e.jpg"},9802:function(e,t,i){"use strict";e.exports=i.p+"img/lv1.70568fe0.jpg"},5525:function(e,t,i){"use strict";e.exports=i.p+"img/lv2.d014dbf3.jpg"},7830:function(e,t,i){"use strict";e.exports=i.p+"img/parts1.b15a7dff.jpg"},7441:function(e,t,i){"use strict";e.exports=i.p+"img/parts2.d1be940d.jpg"},339:function(e,t,i){"use strict";e.exports=i.p+"img/eyes_0.e0e159ba.jpg"},7596:function(e,t,i){"use strict";e.exports=i.p+"img/eyes_10.bd75d0fc.jpg"},7057:function(e,t,i){"use strict";e.exports=i.p+"img/eyes_2.7ab85bd7.jpg"},8532:function(e,t,i){"use strict";e.exports=i.p+"img/eyes_3.8cdbc02d.jpg"},4091:function(e,t,i){"use strict";e.exports=i.p+"img/eyes_8.625fffa1.jpg"},7821:function(e,t,i){"use strict";e.exports=i.p+"img/flower_0.68176116.jpg"},1231:function(e,t,i){"use strict";e.exports=i.p+"img/flower_2.345bc415.jpg"},8562:function(e,t,i){"use strict";e.exports=i.p+"img/flower_3.7f02e368.jpg"},445:function(e,t,i){"use strict";e.exports=i.p+"img/noise-draw_0.ce71d83d.jpg"},4880:function(e,t,i){"use strict";e.exports=i.p+"img/noise-draw_1.b906b310.jpg"},1519:function(e,t,i){"use strict";e.exports=i.p+"img/noise-draw_2.35d77f56.jpg"},1490:function(e,t,i){"use strict";e.exports=i.p+"img/noise-draw_3.2e3a4b3c.jpg"},3185:function(e,t,i){"use strict";e.exports=i.p+"img/noise-draw_4.0c97c9ee.jpg"},5140:function(e,t,i){"use strict";e.exports=i.p+"img/noise-draw_5.f34dc0ff.jpg"},5187:function(e,t,i){"use strict";e.exports=i.p+"img/noise-draw_6.287a40b8.jpg"},3574:function(e,t,i){"use strict";e.exports=i.p+"img/noise-draw_7.9160e75b.jpg"},37:function(e,t,i){"use strict";e.exports=i.p+"img/noise-draw_8.9135c7f9.jpg"},5309:function(e,t,i){"use strict";e.exports=i.p+"img/ocean-loop_0.f283992d.jpg"},4176:function(e,t,i){"use strict";e.exports=i.p+"img/ocean-loop_1.6b61dc11.jpg"},7791:function(e,t,i){"use strict";e.exports=i.p+"img/ocean-loop_2.373a473d.jpg"},5410:function(e,t,i){"use strict";e.exports=i.p+"img/ocean-loop_3.7543e806.jpg"},6218:function(e,t,i){"use strict";e.exports=i.p+"img/_0.5d79107b.jpg"},2055:function(e,t,i){"use strict";e.exports=i.p+"img/_1.effe5f75.jpg"},8759:function(e,t,i){"use strict";e.exports=i.p+"img/_10.98c98914.jpg"},6602:function(e,t,i){"use strict";e.exports=i.p+"img/_11.60f58a5c.jpg"},7093:function(e,t,i){"use strict";e.exports=i.p+"img/_12.76b1c902.jpg"},5912:function(e,t,i){"use strict";e.exports=i.p+"img/_13.595e4135.jpg"},9515:function(e,t,i){"use strict";e.exports=i.p+"img/_14.a726083a.jpg"},30:function(e,t,i){"use strict";e.exports=i.p+"img/_15.05cce013.jpg"},8697:function(e,t,i){"use strict";e.exports=i.p+"img/_16.55929810.jpg"},4600:function(e,t,i){"use strict";
1e.exports=i.p+"img/_2.2111548d.jpg"},2469:function(e,t,i){"use strict";e.exports=i.p+"img/_3.8a99c29a.jpg"},9998:function(e,t,i){"use strict";e.exports=i.p+"img/_4.7488f185.jpg"},8043:function(e,t,i){"use strict";e.exports=i.p+"img/_5.9a5f16a9.jpg"},6060:function(e,t,i){"use strict";e.exports=i.p+"img/_6.ed8c8d11.jpg"},7113:function(e,t,i){"use strict";e.exports=i.p+"img/_7.9122b0a0.jpg"},9074:function(e,t,i){"use strict";e.exports=i.p+"img/_8.fb196512.jpg"},783:function(e,t,i){"use strict";e.exports=i.p+"img/_9.e6dc4653.jpg"},3629:function(e,t,i){"use strict";e.exports=i.p+"img/plastic-arcade_0.6abb97fd.jpg"},2496:function(e,t,i){"use strict";e.exports=i.p+"img/plastic-arcade_1.db0b9b05.jpg"},6111:function(e,t,i){"use strict";e.exports=i.p+"img/plastic-arcade_2.a6efe571.jpg"},3730:function(e,t,i){"use strict";e.exports=i.p+"img/plastic-arcade_3.79020095.jpg"},9217:function(e,t,i){"use strict";e.exports=i.p+"img/plastic-arcade_4.1508ff9c.jpg"},114:function(e,t,i){"use strict";e.exports=i.p+"img/reaction-diffusion_0.28e4b786.jpeg"},745:function(e,t,i){"use strict";e.exports=i.p+"img/reaction-diffusion_1.034fbc11.jpeg"},3352:function(e,t,i){"use strict";e.exports=i.p+"img/reaction-diffusion_2.fd7f59d1.jpeg"},4895:function(e,t,i){"use strict";e.exports=i.p+"img/reaction-diffusion_3.20cc553b.jpeg"},1062:function(e,t,i){"use strict";e.exports=i.p+"img/reaction-diffusion_4.bf144a4c.jpeg"},2397:function(e,t,i){"use strict";e.exports=i.p+"img/reaction-diffusion_5.9c56faed.jpeg"},9516:function(e,t,i){"use strict";e.exports=i.p+"img/reaction-diffusion_6.c014c03f.jpeg"},6195:function(e,t,i){"use strict";e.exports=i.p+"img/reaction-diffusion_7.bb2fcbbd.jpeg"},1994:function(e,t,i){"use strict";e.exports=i.p+"img/reaction-diffusion_8.07332e54.jpeg"},8593:function(e,t,i){"use strict";e.exports=i.p+"img/reaction-diffusion_9.d754a1a1.jpeg"},5565:function(e,t,i){"use strict";e.exports=i.p+"img/unsustainable_0.d1824543.jpg"},8047:function(e,t,i){"use strict";e.exports=i.p+"img/unsustainable_2.dd7b1905.jpg"},5666:function(e,t,i){"use strict";e.exports=i.p+"img/unsustainable_3.77aa357a.jpg"},1153:function(e,t,i){"use strict";e.exports=i.p+"img/unsustainable_4.9ad18922.jpg"},3108:function(e,t,i){"use strict";e.exports=i.p+"img/unsustainable_5.d8ee2157.jpg"},7267:function(e,t,i){"use strict";e.exports=i.p+"img/unsustainable_6.5933efef.jpg"},8175:function(e,t,i){"use strict";e.exports=i.p+"img/where's-jane_0.aa79cc12.jpg"},1794:function(e,t,i){"use strict";e.exports=i.p+"img/where's-jane_1.5fa16fea.jpg"},9597:function(e,t,i){"use strict";e.exports=i.p+"img/where's-jane_2.8edd4633.jpg"},7856:function(e,t,i){"use strict";e.exports=i.p+"img/where's-jane_3.ce0a8109.jpg"},8019:function(e,t,i){"use strict";e.exports=i.p+"img/where's-jane_4.8900b0f8.jpg"},3254:function(e,t,i){"use strict";e.exports=i.p+"img/where's-jane_5.60ec2358.jpg"},4884:function(e,t,i){"use strict";e.exports=i.p+"f321051d82e0db3e.m4a"},1701:function(e,t,i){"use strict";e.exports=i.p+"9af9324443bf27b7.m4a"},5076:function(e,t,i){"use strict";e.exports=i.p+"4b7e4fd2bc0352bb.m4a"},4029:function(e,t,i){"use strict";e.exports=i.p+"501d1abf9ef5ffd1.m4a"},9493:function(e,t,i){"use strict";e.exports=i.p+"63b5db47dd7af76e.m4a"},1934:function(e,t,i){"use strict";e.exports=i.p+"8bc65ba75b7ce476.m4a"},5057:function(e,t,i){"use strict";e.exports=i.p+"786d89ff1a066045.m4a"},5639:function(e,t,i){"use strict";e.exports=i.p+"180ab3ebde99a247.m4a"},4169:function(e,t,i){"use strict";e.exports=i.p+"766e79d4d0f8fed3.m4a"},9135:function(e,t,i){"use strict";e.exports=i.p+"168412215d761d68.m4a"},7307:function(e,t,i){"use strict";e.exports=i.p+"47d66c77483a6f21.m4a"},9736:function(e,t,i){"use strict";e.exports=i.p+"ef52bef6a6559768.m4a"},9296:function(e,t,i){"use strict";e.exports=i.p+"2094ab26dbb6e06f.m4a"},4792:function(e,t,i){"use strict";e.exports=i.p+"288411d8cc4ce2e5.m4a"},4565:function(e,t,i){"use strict";e.exports=i.p+"0ae1088d46398742.m4a"},2812:function(e,t,i){"use strict";e.exports=i.p+"9d4084693db38a4a.m4a"},2533:function(e,t,i){"use strict";e.exports=i.p+"c269999599059814.m4a"},8872:function(e,t,i){"use strict";e.exports=i.p+"076293d2fe10c8b1.m4a"},10:function(e,t,i){"use strict";e.exports=i.p+"8842e2eee209f145.m4a"},6103:function(e,t,i){"use strict";e.exports=i.p+"126e44f79a5f3a3c.m4a"},442:function(e,t,i){"use strict";e.exports=i.p+"a6f8ccd7661368ce.m4a"},2918:function(e,t,i){"use strict";e.exports=i.p+"8eae180d61a7087a.m4a"},3457:function(e,t,i){"use strict";e.exports=i.p+"75030e496966799b.m4a"},7876:function(e,t,i){"use strict";e.exports=i.p+"2fd076f6e998a484.m4a"},2027:function(e,t,i){"use strict";e.exports=i.p+"11b13c81df2183de.m4a"},7764:function(e,t,i){"use strict";e.exports=i.p+"03e1247b45badba5.m4a"},6740:function(e,t,i){"use strict";e.exports=i.p+"00553baee83c2d2d.m4a"},8473:function(e){"use strict";e.exports=JSON.parse('{"projects":{"lequipe":{"companyName":"Exomind, client L\'Ãquipe","cityAndDate":"Boulogne-Billancourt, from September 2019","description":"JS engineer, works at l\'Ãquipe on their lequipe.fr universal website, a progressive web app created with VueJS. Implemented various features such as dark mode, landing pages, 3ds paiement tunnel, from concept through deployment.","firstMissons":"Collaborate with product, marketing team, and back-end developers to implement new features;Assess UX and UI designs for technical feasibility;Maintain sites and pages ex: le journal, la chaine L\'Ãquipe, customer service, refactoring and debug of existing code;Data, advertising, SEO (tracking, DFP, smart refresh, user consents);Account generation, subscription (google sign-in, one tap sign-in, auto-promo management, targeted offer and pop-ins);Tests and code review;Projects from scratch to deployment: dark mode, landing pages, 3d secure payment tunnel, player pi
1pâ¦","secondMissons":{"number":null},"technologies":["Javascript, Sass, HTML","Vue.js, Angular, Axios","GitLab, Jira, Jenkins, Docker, Git, VS Code, Webpack, ESLint, StyleLint, Babel, Vue CLI, Zeplin, Sketch, Adobe Suite"]},"orange":{"companyName":"Orange","cityAndDate":"Paris, Janvier â Juillet 2019","description":"Coder, designer, facilitator. Worked closely with the innovation and development manager, on UX / UI design and website development at the request of internal customers.","firstMissons":"Analysis of customer needs and transform them into wireframe;Construction of single-page-application in Vue.js;Visual, interactive experiments, data visualization;Modifications and Maintenance of existing sites (jQuery and other technologies);Coaching clients on interface design, participation in the design of collective intelligence workshops","secondMissons":{"text":"Quick prototyping using Tachyons CSS and Bootstrap;Responsive Design and Adaptive Design.","number":2},"technologies":["Javascript, CSS, HTML","Vue.js, p5.js, Bootstrap, Tachyons, jQuery","Vue CLI, Git, Visual Studio, ESLint, Prettier, Babel, Sketch, Adobe Suite"]},"thecamp":{"companyName":"thecamp","cityAndDate":"Aix-en-Provence, Avril - Novembre 2018","cards":[{"caption":"Konbini: \'Plastic Arcade\', quand le jeu vidéo devient écolo","link":"https://www.konbini.com/fr/gaming/video-plastic-arcade-quand-le-jeu-video-devient-ecolo/","img":"/img/plastic-arcade.jpg"},{"caption":"France 24: Sensibiliser à la pollution plastique grâce au jeu vidéo","link":"https://www.france24.com/fr/video/20181002-sensibiliser-a-pollution-plastique-grace-jeu-video-plastic-arcade-a-the-camp","img":"img/plastic-arcade-24.png"}],"firstMissons":"Make prototypes and interaction ideas with Javascript (p5.js and Canvas API);Supervise the development of the games, review design according to technical feasibility;Creation of interactive art installations, explore interaction possibilities with Kinect, Arduino, Leap Motion etc;Proof of concepts during different phases of the residency, with experts of the domaine;Participate in workshops with sponsors of thecamp: SNCF, Airbus, LVMH, etcâ¦","secondMissons":{"text":"","number":null},"technologies":["Javascript, CSS, HTML","p5.js, d3.js, Arduino","Git, Visual Studio, Vue CLI, AWS CLI, Arduino IDE, Processing IDE, Unity"]}},"expos":[{"title":"Biennal SIANA, 2019","place":"\\nÃvry, France","content":"\\nDatalaxy presents \'where-s-jane\', an installation that questions the transparency and clarity of the data collection behind our daily usage of social network, by showing an interactive visualisation of a Facebook user\'s data"},{"title":"\\n\\nInventivités digitales, Le Cube, 2019","place":"\\nIssy-les-Moulineaux, France","content":"\\nExposition of the major Id-dim by IMT-BS, Télécom Sud Paris and ESAD Reims, where Datalaxy presents \'where-s-jane\'"},{"title":"\\n\\nFestival Rouxteur, Mains d\'Åuvres, 2018","place":"\\nSaint-Ouen, France","content":"\\nAn increased exhibition with three works on the theme \'Traverser la mer sans que le ciel ne le sache\'"},{"title":" \\n\\nTintamarres, Cité de la Musique de Marseille, 2017","place":"\\nMarseille, France","content":"\\nTintamarres #7, Tintamarres #8, Composition: \\"Machine 1-10\\", \\"CB2\\" \\n\\nLe Printemps de Bourges, 2016"},{"title":" \\n\\nLe Printemps de Bourges, 2016","place":"\\nBourges, France","content":"\\nPerforms at the Printemps de Bourges, Scène Berry, contest \'Printemps des Grandes Ãcoles\'."}],"education":[{"title":"IMT-BS + Télécom SudParis + ESAD Reims, 2018 - 2019","place":"\\nÃvry, France","content":"\\nPost-Diploma, BAC + 5, Specialization \\"Digital Inventivities\\": multidisciplinary and collaborative, halfway between management, gesign and engineering"},{"title":"\\n\\nÃcole Supérieure d\'Art et de Design de Marseille, 2016 - 2018","place":"\\nMarseille, France","content":"\\nBAC + 5, web technologies, coding, interface and user experience design (UX / UI), interaction design, generative design"},{"title":"\\n\\nDongguan University of Technology, 2011 - 2015","place":"\\nDongguan, China","content":"\\nBAC + 4, engineering, design, the school is in partnership with CNAM"},{"title":"\\n\\nÃcole de Design Nantes Atlantique, 2016","place":"\\nNantes, France","content":"\\nBAC + 3, web technologies, coding, interface and user experience design (UX / UI), interaction design, generative design"},{"title":"\\n\\nUniversité de Poitiers, 2015","place":"\\nPoitiers, France","content":"\\nFrench language, literature, history, culture"}]}')},1900:function(e){"use strict";e.exports=JSON.parse('[{"link":"https://apps.skyl.fr/01/"},{"link":"https://apps.skyl.fr/eyes-macro/"},{"link":"https://apps.skyl.fr/p/"},{"link":"https://apps.skyl.fr/3d-terrain/"},{"link":"https://apps.skyl.fr/eyes-sand-sound/"},{"link":"https://apps.skyl.fr/plastic-ocean/"},{"link":"https://apps.skyl.fr/CNAME/"},{"link":"https://apps.skyl.fr/fractal-circles/"},{"link":"https://apps.skyl.fr/points-2017/"},{"link":"https://apps.skyl.fr/Myss_logo/"},{"link":"https://apps.skyl.fr/get-away-particles/"},{"link":"https://apps.skyl.fr/saturation-chinoise/"},{"link":"https://apps.skyl.fr/blood-particles-2017/"},{"link":"https://apps.skyl.fr/glitch/"},{"link":"https://apps.skyl.fr/strange-eyes/"},{"link":"https://apps.skyl.fr/c-minor/"},{"link":"https://apps.skyl.fr/gravity-draw/"},{"link":"https://apps.skyl.fr/toxic/"},{"link":"https://apps.skyl.fr/c-syn/"},{"link":"https://apps.skyl.fr/happy-birthday-mon-zhu/"},{"link":"https://apps.skyl.fr/washed/"},{"link":"https://apps.skyl.fr/corogo/"},{"link":"https://apps.skyl.fr/hua/"},{"link":"https://apps.skyl.fr/wave-2017/"},{"link":"https://apps.skyl.fr/dancers/"},{"link":"https://apps.skyl.fr/joker/"},{"link":"https://apps.skyl.fr/wind/"},{"link":"https://apps.skyl.fr/deploy.sh/"},{"link":"https://apps.skyl.fr/lines_menu_2019_white/"},{"link":"https://apps.skyl.fr/e-minor/"},{"link":"https://apps.skyl.fr/myss-logo/"}]')},3095:function(e){"use strict";e.exports=JSON.parse('[{"id":"virus","type":"sketch"},{"id":"eyes","type":"sketch"},{"id":"p","type":"sketch"},{"id":"cave","type":"sketch"},{"id":"noise-draw","type":"sketch"},{"id":"k-means-selfie","type":"sketch"},{"id":"quadtree","type":"sketch"},{"id":"reaction-diffusion","type":"sketch"},{"id":"bubbles","type":"sketch"},{"id":"node","type":"sketch","beta":true}]')}},t={};function i(s){var n=t[s];if(void 0!==n)return n.exports;var a=t[s]={exports:{}};return e[s].call(a.exports,a,a.exports,i),a.exports}i.m=e,function(){var e=[];i.O=function(t,s,n,a){if(!s){var r=1/0;for(u=0;
1u<e.length;u++){s=e[u][0],n=e[u][1],a=e[u][2];for(var o=!0,c=0;c<s.length;c++)(!1&a||r>=a)&&Object.keys(i.O).every(function(e){return i.O[e](s[c])})?s.splice(c--,1):(o=!1,a<r&&(r=a));if(o){e.splice(u--,1);var l=n();void 0!==l&&(t=l)}}return t}a=a||0;for(var u=e.length;u>0&&e[u-1][2]>a;u--)e[u]=e[u-1];e[u]=[s,n,a]}}(),function(){i.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return i.d(t,{a:t}),t}}(),function(){var e,t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};i.t=function(s,n){if(1&n&&(s=this(s)),8&n)return s;if("object"===typeof s&&s){if(4&n&&s.__esModule)return s;if(16&n&&"function"===typeof s.then)return s}var a=Object.create(null);i.r(a);var r={};e=e||[null,t({}),t([]),t(t)];for(var o=2&n&&s;("object"==typeof o||"function"==typeof o)&&!~e.indexOf(o);o=t(o))Object.getOwnPropertyNames(o).forEach(function(e){r[e]=function(){return s[e]}});return r["default"]=function(){return s},i.d(a,r),a}}(),function(){i.d=function(e,t){for(var s in t)i.o(t,s)&&!i.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})}}(),function(){i.f={},i.e=function(e){return Promise.all(Object.keys(i.f).reduce(function(t,s){return i.f[s](e,t),t},[]))}}(),function(){i.u=function(e){return"js/"+({321:"vue-player",428:"Cv"}[e]||e)+"."+{6:"870b9cd7",31:"17659cab",46:"ff391e2b",48:"4eb94e92",56:"24d26915",76:"da12c13a",134:"e9cc783e",200:"4c334476",269:"c4f4b8ed",287:"3bef539c",321:"7e953937",328:"5026d72d",344:"c76ebb93",428:"ca38b781",452:"becaf50d",580:"94e378ac",664:"bcc8188b",683:"f2a3278e",770:"38ae6f8b",795:"2a13ab2f",804:"e4bfc779",880:"98abfcad",904:"1ced3f6f",906:"ba51fa3c",984:"d6fd51a8"}[e]+".js"}}(),function(){i.miniCssF=function(e){return"css/Cv.3dba22f7.css"}}(),function(){i.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="skyl.fr:";i.l=function(s,n,a,r){if(e[s])e[s].push(n);else{var o,c;if(void 0!==a)for(var l=document.getElementsByTagName("script"),u=0;u<l.length;u++){var p=l[u];if(p.getAttribute("src")==s||p.getAttribute("data-webpack")==t+a){o=p;break}}o||(c=!0,o=document.createElement("script"),o.charset="utf-8",i.nc&&o.setAttribute("nonce",i.nc),o.setAttribute("data-webpack",t+a),o.src=s),e[s]=[n];var d=function(t,i){o.onerror=o.onload=null,clearTimeout(m);var n=e[s];if(delete e[s],o.parentNode&&o.parentNode.removeChild(o),n&&n.forEach(function(e){return e(i)}),t)return t(i)},m=setTimeout(d.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=d.bind(null,o.onerror),o.onload=d.bind(null,o.onload),c&&document.head.appendChild(o)}}}(),function(){i.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}}(),function(){i.p="/"}(),function(){if("undefined"!==typeof document){var e=function(e,t,s,n,a){var r=document.createElement("link");r.rel="stylesheet",r.type="text/css",i.nc&&(r.nonce=i.nc);var o=function(i){if(r.onerror=r.onload=null,"load"===i.type)n();else{var s=i&&i.type,o=i&&i.target&&i.target.href||t,c=new Error("Loading CSS chunk "+e+" failed.\n("+s+": "+o+")");c.name="ChunkLoadError",c.code="CSS_CHUNK_LOAD_FAILED",c.type=s,c.request=o,r.parentNode&&r.parentNode.removeChild(r),a(c)}};return r.onerror=r.onload=o,r.href=t,s?s.parentNode.insertBefore(r,s.nextSibling):document.head.appendChild(r),r},t=function(e,t){for(var i=document.getElementsByTagName("link"),s=0;s<i.length;s++){var n=i[s],a=n.getAttribute("data-href")||n.getAttribute("href");if("stylesheet"===n.rel&&(a===e||a===t))return n}var r=document.getElementsByTagName("style");for(s=0;s<r.length;s++){n=r[s],a=n.getAttribute("data-href");if(a===e||a===t)return n}},s=function(s){return new Promise(function(n,a){var r=i.miniCssF(s),o=i.p+r;if(t(r,o))return n();e(s,o,null,n,a)})},n={524:0};i.f.miniCss=function(e,t){var i={428:1};n[e]?t.push(n[e]):0!==n[e]&&i[e]&&t.push(n[e]=s(e).then(function(){n[e]=0},function(t){throw delete n[e],t}))}}}(),function(){var e={524:0};i.f.j=function(t,s){var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)s.push(n[2]);else{var a=new Promise(function(i,s){n=e[t]=[i,s]});s.push(n[2]=a);var r=i.p+i.u(t),o=new Error,c=function(s){if(i.o(e,t)&&(n=e[t],0!==n&&(e[t]=void 0),n)){var a=s&&("load"===s.type?"missing":s.type),r=s&&s.target&&s.target.src;o.message="Loading chunk "+t+" failed.\n("+a+": "+r+")",o.name="ChunkLoadError",o.type=a,o.request=r,n[1](o)}};i.l(r,c,"chunk-"+t,t)}},i.O.j=function(t){return 0===e[t]};var t=function(t,s){var n,a,r=s[0],o=s[1],c=s[2],l=0;if(r.some(function(t){return 0!==e[t]})){for(n in o)i.o(o,n)&&(i.m[n]=o[n]);if(c)var u=c(i)}for(t&&t(s);l<r.length;l++)a=r[l],i.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return i.O(u)},s=self["webpackChunkskyl_fr"]=self["webpackChunkskyl_fr"]||[];
1s.forEach(t.bind(null,0)),s.push=t.bind(null,s.push.bind(s))}();var s=i.O(void 0,[504],function(){return i(4277)});s=i.O(s)})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.