Pour tout problème contactez-nous par mail : support@froggit.fr | La FAQ :grey_question: | Rejoignez-nous sur le Chat :speech_balloon:

Skip to content
Snippets Groups Projects
software-development.js 11.1 KiB
Newer Older
Pierre Jarriges's avatar
Pierre Jarriges committed
!function s(r,a,o){function c(t,e){if(!a[t]){if(!r[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(i)return i(t,!0);throw(n=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",n}n=a[t]={exports:{}},r[t][0].call(n.exports,function(e){return c(r[t][1][e]||e)},n,n.exports,s,r,a,o)}return a[t].exports}for(var i="function"==typeof require&&require,e=0;e<o.length;e++)c(o[e]);return c}({1:[function(e,t,n){t.exports={getServerUrl:function(){return`${location.origin}${"/"!==location.origin.charAt(location.origin.length-1)?"/":""}`},build:{protected_dirs:["assets","style","articles"],default_meta_keys:["title","description","image","open_graph","json_ld"]}}},{}],2:[function(e,t,n){const{getServerUrl:s}=e("./config");t.exports={images_url:`${s()}assets/images/`,articles_url:`${s()}articles/`}},{"./config":1}],3:[function(e,t,n){"use strict";t.exports={setRenderCycleRoot(e){this.renderCycleRoot=e},objectToHtml:function t(n){var{tag:e}=n;const s=document.createElement(e),r=["tag","contents","style_rules","state"];return Object.keys(n).filter(e=>!r.includes(e)).forEach(e=>{"class"===e?s.classList.add(...n[e].split(" ").filter(e=>""!==e)):s[e]=n[e]}),n.contents&&"string"==typeof n.contents?s.innerHTML=n.contents:n.contents&&0<n.contents.length&&n.contents.forEach(e=>{switch(typeof e){case"string":s.innerHTML=e;break;case"object":s.appendChild(t(e))}}),n.style_rules&&Object.keys(n.style_rules).forEach(e=>{s.style[e]=n.style_rules[e]}),s},renderCycle:function(){this.subRender(this.renderCycleRoot.render(),document.getElementsByTagName("main")[0],{mode:"replace"})},subRender(e,t,n={mode:"append"}){var s=this.objectToHtml(e);switch(n.mode){case"append":t.appendChild(s);break;case"override":t.innerHTML="",t.appendChild(s);break;case"insert-before":t.insertBefore(s,t.childNodes[n.insertIndex]);break;case"adjacent":t.insertAdjacentHTML(n.insertLocation,s);break;case"replace":t.parentNode.replaceChild(s,t);break;case"remove":t.remove()}}}},{}],4:[function(e,t,n){"use strict";const s=e("object-to-html-renderer");t.exports=class{constructor(e){this.props=e,this.id=performance.now(),this.state={showImageIndex:0},this.RUN_INTERVAL=5e3,1<this.props.images.length&&this.run()}run(){this.runningInterval=setInterval(()=>{var{showImageIndex:e}=this.state,{images:t}=this.props;this.state.showImageIndex=e<t.length-1?++e:0,this.refreshImage()},this.RUN_INTERVAL)}setImageIndex(e){clearInterval(this.runningInterval),this.state.showImageIndex=e,this.refreshImage()}refreshImage(){s.subRender(this.render(),document.getElementById(this.id),{mode:"replace"})}render(){const{showImageIndex:n}=this.state,{images:e}=this.props;return{tag:"div",id:this.id,class:"image-carousel",contents:[{tag:"img",property:"image",alt:`image carousel ${e[n].replace(/\.[A-Za-z]+/,"")}`,src:e[n]},1<e.length&&{tag:"div",class:"carousel-bullets",contents:e.map((e,t)=>{return{tag:"span",class:`bullet ${n===t?"active":""}`,onclick:this.setImageIndex.bind(this,t)}})}]}}}},{"object-to-html-renderer":3}],5:[function(e,t,n){"use strict";const{fetchjson:a,fetchtext:s}=e("./fetch");function o(e){return new Promise((t,n)=>{Promise.all(e.map(async e=>{var t;return-1!==e.body.indexOf("<file>")&&(t=e.body.replace("<file>",""),t=await s(`${e.path}/${t}`),e.body=t,e.date=e.date?new Date(e.date):void 0),e})).then(e=>t(e.sort((e,t)=>e.date-t.date))).catch(e=>n(e))})}t.exports={loadArticles:function(r){return new Promise((t,n)=>{a(`${r}/index.json`).then(e=>{Promise.all(e.articles.map(async e=>{const t=`${e}/${e}.json`;var n=await a(`${r}/${t}`);const s=t.split("/");s.pop();e=`${r}/${s.join("/")}`;return Object.assign(n,{path:e})})).then(e=>{o(e).then(e=>t(e)).catch(e=>n(e))}).catch(e=>n(e))}).catch(e=>console.log(e))})},getArticleBody:function(e){return e.replaceAll("\n","<br/>")},getArticleDate:function(e){return`${e.getDate()}-${e.getMonth()+1}-${e.getFullYear()}`},populateArticles:o}},{"./fetch":6}],6:[function(e,t,n){"use strict";t.exports={fetchjson:function(e){return new Promise((t,n)=>{fetch(e).then(e=>e.json()).then(e=>t(e)).catch(e=>n(e))})},fetchtext:function(e){return new Promise((t,n)=>{fetch(e).then(e=>e.text()).then(e=>t(e)).catch(e=>n(e))})}}},{}],7:[function(e,t,n){"use strict";t.exports=class{constructor(e){Object.assign(this,e)}}},{}],8:[function(e,t,n){"use strict";const{articles_url:s}=e("../../../../constants"),i=e("../../../generic-components/image-carousel"),{loadArticles:r,getArticleBody:l,getArticleDate:d}=e("../../../lib/article-utils"),a=e("object-to-html-renderer");class o{constructor(e){this.props=e}render(){const{title:e,date:t,body:n,subtitle:s,images:r,path:a,technical:o,releases:c}=this.props;return{tag:"article",class:"software-article",typeof:"SoftwareApplication",additionalType:"Article",contents:[{tag:"h2",class:"software-title",contents:e,property:"name"},{tag:"time",class:"software-date",contents:d(t),property:"datePublished"},{tag:"h3",class:"software-subtitle",contents:s,property:"alternativeHeadline"},{tag:"div",class:"software-description",contents:l(n),property:"description"},new i({images:r.map(e=>`${a}/images/${e}`)}).render(),{tag:"div",class:"software-technical",contents:[{tag:"h2",contents:"Details"},{tag:"ul",class:"technical-details",contents:[{tag:"li",class:"detail",contents:[{tag:"label",contents:"Stack"},{tag:"div",contents:[{tag:"ul",contents:o.stack.map(e=>({tag:"li",contents:e,property:"about"}))}]}]},{tag:"li",class:"detail",contents:[{tag:"label",contents:"Version actuelle"},{tag:"div",contents:o.version,property:"version"}]},{tag:"li",class:"detail",contents:[{tag:"label",contents:"License"},{tag:"div",contents:o.license,property:"license"}]},{tag:"li",class:"detail",contents:[{tag:"label",contents:"Code source"},{tag:"a",href:o.repository,target:"_blank",contents:o.repository.replace(/https?:\/\/(www\.)?/g,""),property:"url"}]}]},c&&{tag:"h2",contents:"Releases"},c&&{tag:"ul",class:"releases",contents:[{tag:"li",class:"detail",contents:[{tag:"label",class:"label",contents:"Plateforme"},{tag:"label",class:"label",contents:"Téléchargement"}]}].concat(c.map(e=>({tag:"li",class:"release detail",contents:[{tag:"label",contents:e.platform},{tag:"a",download:e.download,href:`${a}/release/${e.download}`,contents:e.download,property:"url"}]})))}]}]}}}t.exports=class{constructor(e){this.props=e,this.state={articles:[]},this.id=performance.now(),this.loadArticles()}loadArticles(){r(`${s}software`).then(e=>{this.state.articles=e,this.refresh(),this.fixScroll()}).catch(e=>console.log(e))}renderPlaceholder(){return{tag:"article",class:"placeholder",contents:[{tag:"div",class:"title"},{tag:"div",class:"body"},{tag:"div",class:"details"}]}}refresh(){a.subRender(this.render(),document.getElementById(this.id),{mode:"replace"})}fixScroll(){window.location.href.includes("#")&&window.scrollTo(0,document.getElementById(window.location.href.match(/#.+/)[0].replace("#","")).offsetTop)}render(){const{articles:e}=this.state;return{tag:"section",class:"software-articles page-contents-center",id:this.id,contents:0<e.length?e.map(e=>new o({...e}).render()):[this.renderPlaceholder()]}}}},{"../../../../constants":2,"../../../generic-components/image-carousel":4,"../../../lib/article-utils":5,"object-to-html-renderer":3}],9:[function(e,t,n){"use strict";const{images_url:s}=e("../../../constants");var r=e("../../lib/web-page");const a=e("./components/software-articles");class o extends r{render(){return{tag:"div",id:"software-page",contents:[{tag:"div",class:"page-header logo-left",contents:[{tag:"div",class:"page-contents-center grid-wrapper",contents:[{tag:"div",class:"logo",contents:[{tag:"img",alt:"image mechanic electronic",src:`${s}meca_proc.svg`}]},{tag:"h1",contents:"Software"},{tag:"p",contents:"R&D, projets expérimentaux, outillage logiciel pour le développement de jeu ou pour le web."}]}]},(new a).render()]}}}t.exports=o},{"../../../constants":2,"../../lib/web-page":7,"./components/software-articles":8}],10:[function(e,t,n){"use strict";const s=e("../../run-page");e=e("./software-development");s(e)},{"../../run-page":11,"./software-development":9}],11:[function(e,t,n){"use strict";const s=e("object-to-html-renderer"),r=e("./template/template");t.exports=function(e){e=new r({page:new e});s.setRenderCycleRoot(e),s.renderCycle()}},{"./template/template":13,"object-to-html-renderer":3}],12:[function(e,t,n){"use strict";const{images_url:s}=e("../../../constants"),r=[{url:"/games/",text:"Jeux"},{url:"/education/",text:"Pédagogie"},{url:"/software-development/",text:"Software"}];t.exports=class{constructor(){this.initEventHandlers()}handleBurgerClick(){document.getElementById("nav-menu-list").classList.toggle("responsive-show")}initEventHandlers(){window.addEventListener("click",e=>{"nav-menu-list"===e.target.id||e.target.classList.contains("burger")||e.target.parentNode.classList.contains("burger")||document.getElementById("nav-menu-list").classList.remove("responsive-show")})}renderHome(){return{tag:"div",class:"home",contents:[{tag:"a",href:"/",contents:[{tag:"img",alt:"Logo Kuadrado",src:`${s}logo_kuadrado.svg`},{tag:"img",alt:"Kuadrado Software",class:"logo-text",src:`${s}logo_kuadrado_txt.svg`}]}]}}renderMenu(e,a=!1,o=""){return{tag:"ul",id:"nav-menu-list",class:a?"submenu":"",contents:e.map(e=>{const{url:t,text:n,submenu:s}=e,r=`${o}${t}`;return{tag:"li",class:a||window.location.pathname!==r?"":"active",contents:[{tag:"a",href:r,contents:n}].concat(s?[this.renderMenu(s,!0,t)]:[])}})}}renderResponsiveBurger(){return{tag:"div",class:"burger",onclick:this.handleBurgerClick.bind(this),contents:[{tag:"span",contents:"···"}]}}render(){return{tag:"nav",contents:[this.renderHome(),this.renderResponsiveBurger(),this.renderMenu(r)]}}}},{"../../../constants":2}],13:[function(e,t,n){"use strict";const{in_construction:s}=e("../../config"),{images_url:r}=e("../../constants"),a=e("./components/navbar");t.exports=class{constructor(e){this.props=e}render(){return{tag:"main",contents:[{tag:"header",contents:[(new a).render()]},s&&{tag:"section",class:"warning-banner",contents:[{tag:"strong",class:"page-contents-center",contents:"Site en construction ..."}]},{tag:"section",id:"page-container",contents:[this.props.page.render()]},{tag:"footer",contents:[{tag:"div",class:"logo",contents:[{tag:"img",alt:"logo Kuadrado",src:`${r}logo_kuadrado.svg`},{tag:"img",class:"text-logo",alt:"Kuadrado Software",src:`${r}logo_kuadrado_txt.svg`}]},{tag:"span",contents:"32 rue Simon Vialet, 07240 Vernoux en Vivarais. Ardèche, France"},{tag:"div",contents:[{tag:"strong",contents:"<blue>Contact : </blue>"},{tag:"a",href:"mailto:contact@kuadrado-software.fr",contents:"contact@kuadrado-software.fr"}]},{tag:"div",class:"social",contents:[{tag:"strong",contents:"<blue>Sur les réseaux : </blue>"},{tag:"a",href:"https://www.linkedin.com/company/kuadrado-software",target:"_blank",contents:"in",title:"Linkedin"},{tag:"a",href:"https://twitter.com/KuadradoSoft",target:"_blank",contents:"t",title:"Twitter",style_rules:{fontFamily:"serif"}}]},{tag:"span",contents:`Copyright © ${(new Date).getFullYear()} Kuadrado Software | 
                                Toutes les images du site ont été réalisées par mes soins et peuvent être réutilisées pour un usage personnel.`}]}]}}}},{"../../config":1,"../../constants":2,"./components/navbar":12}]},{},[10]);