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
education.js 15 KiB
Newer Older
peter_rabbit's avatar
peter_rabbit committed
(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
"use strict";

module.exports = {
    setRenderCycleRoot(renderCycleRoot) {
        this.renderCycleRoot = renderCycleRoot;
    },
    objectToHtml: function objectToHtml(obj) {
        const { tag } = obj;

        const node = document.createElement(tag);
        const excludeKeys = ["tag", "contents", "style_rules", "state"];

        Object.keys(obj)
            .filter(attr => !excludeKeys.includes(attr))
            .forEach(attr => {
                if (attr === "class") {
                    node.classList.add(...obj[attr].split(" ").filter(s => s !== ""));
                } else {
                    node[attr] = obj[attr];
                }
            });
        if (obj.contents && typeof obj.contents === "string") {
            node.innerHTML = obj.contents;
        } else {
            obj.contents &&
                obj.contents.length > 0 &&
                obj.contents.forEach(el => {
                    switch (typeof el) {
                        case "string":
                            node.innerHTML = el;
                            break;
                        case "object":
                            node.appendChild(objectToHtml(el));
                            break;
                    }
                });
        }

        if (obj.style_rules) {
            Object.keys(obj.style_rules).forEach(rule => {
                node.style[rule] = obj.style_rules[rule];
            });
        }

        return node;
    },
    renderCycle: function () {
        this.subRender(this.renderCycleRoot.render(), document.getElementsByTagName("main")[0], {
            mode: "replace",
        });
    },
    subRender(object, htmlNode, options = { mode: "append" }) {
        const insert = this.objectToHtml(object);
        switch (options.mode) {
            case "append":
                htmlNode.appendChild(insert);
                break;
            case "override":
                htmlNode.innerHTML = "";
                htmlNode.appendChild(insert);
                break;
            case "insert-before":
                htmlNode.insertBefore(insert, htmlNode.childNodes[options.insertIndex]);
                break;
            case "adjacent":
                /**
                 * options.insertLocation must be one of:
                 *
                 * afterbegin
                 * afterend
                 * beforebegin
                 * beforeend
                 */
                htmlNode.insertAdjacentHTML(options.insertLocation, insert);
                break;
            case "replace":
                htmlNode.parentNode.replaceChild(insert, htmlNode);
                break;
            case "remove":
                htmlNode.remove();
                break;
        }
    },
};

},{}],2:[function(require,module,exports){
"use strict";

class EducationPage {
    constructor(args) {
        Object.assign(this, args);
    }

    render() {
        return {
            tag: "div",
            contents: [
                {
                    tag: "h1",
                    contents: "Pédagogie",
                },
                {
                    tag: "h2",
                    contents: "Game studio club",
                },
                {
                    tag: "h3",
                    contents: "Apprendre à créer un jeu vidéo de A à Z",
                },
                {
                    tag: "p",
                    contents:
                        "La création d'un jeu vidéo c'est l'occasion d'aborder plein de choses différentes !",
                },
                {
                    tag: "ul",
                    contents: [
                        {
                            tag: "li",
                            contents: [
                                {
                                    tag: "strong",
                                    contents: "Dessin et création 2D",
                                },
                                {
                                    tag: "ul",
                                    contents: [
                                        {
                                            tag: "li",
                                            contents: "Créer des décors et des personnages",
                                        },
                                        {
                                            tag: "li",
                                            contents: "Dessiner sur ordinateur",
                                        },
                                        {
                                            tag: "li",
                                            contents: "Créer des animations 2D",
                                        },
                                    ],
                                },
                            ],
                        },
                        {
                            tag: "li",
                            contents: [
                                {
                                    tag: "strong",
                                    contents: "Musique et effets sonores",
                                },
                                {
                                    tag: "ul",
                                    contents: [
                                        {
                                            tag: "li",
                                            contents:
                                                "Utiliser des logiciels de son et des synthétiseurs",
                                        },
                                        {
                                            tag: "li",
                                            contents: "Composer une musique",
                                        },
                                        {
                                            tag: "li",
                                            contents: "Faire une prise de son",
                                        },
                                        {
                                            tag: "li",
                                            contents: "Mixer un enregistrement",
                                        },
                                    ],
                                },
                            ],
                        },
                        {
                            tag: "li",
                            contents: [
                                {
                                    tag: "strong",
                                    contents: "Développer un univers",
                                },
                                {
                                    tag: "ul",
                                    contents: [
                                        {
                                            tag: "li",
                                            contents:
                                                "Écrire une histoire, construire une narration",
                                        },
                                        {
                                            tag: "li",
                                            contents: "Imaginer des mondes et des personnages",
                                        },
                                    ],
                                },
                            ],
                        },
                        {
                            tag: "li",
                            contents: [
                                {
                                    tag: "strong",
                                    contents: "Concevoir le jeu",
                                },
                                {
                                    tag: "ul",
                                    contents: [
                                        {
                                            tag: "li",
                                            contents: "Comprendre ce qui fait le jeu",
                                        },
                                        {
                                            tag: "li",
                                            contents: "Développer les mécanismes du gameplay",
                                        },
                                    ],
                                },
                            ],
                        },
                        {
                            tag: "li",
                            contents: [
                                {
                                    tag: "strong",
                                    contents: "Programmation informatique",
                                },
                                {
                                    tag: "ul",
                                    contents: [
                                        {
                                            tag: "li",
                                            contents:
                                                "Apprendre pas à pas à coder avec différents langages de programmation",
                                        },
                                        {
                                            tag: "li",
                                            contents:
                                                "Découvrir les bases du web en créant des mini-jeux en lignes",
                                        },
                                    ],
                                },
                            ],
                        },
                        {
                            tag: "li",
                            contents: [
                                {
                                    tag: "strong",
                                    contents: "Mathématiques et pysique",
                                },
                                {
                                    tag: "ul",
                                    contents: [
                                        {
                                            tag: "li",
                                            contents:
                                                "Le jeu vidéo et l'informatique en général, c'est l'occasion de découvrir plein de sujets en maths et en physique tout en s'amusant !",
                                        },
                                        {
                                            tag: "li",
                                            contents:
                                                "Algorithmie, logique, calcul décimal, ensembles, géométrie, trigonométrie, algèbre linéaire ,vecteurs, repères en 2 dimensions ...",
                                        },
                                    ],
                                },
                            ],
                        },
                    ],
                },
            ],
        };
    }
}

module.exports = EducationPage;

},{}],3:[function(require,module,exports){
"use strict";

"use strict";
const runPage = require("../../run-page");
const EducationPage = require("./education");
runPage(EducationPage);

},{"../../run-page":4,"./education":2}],4:[function(require,module,exports){
"use strict";

const objectHtmlRenderer = require("./lib/object-html-renderer");
const Template = require("./template/template");

module.exports = function runPage(PageComponent) {
    const template = new Template({ page: new PageComponent() });
    objectHtmlRenderer.setRenderCycleRoot(template);
    objectHtmlRenderer.renderCycle();
};

},{"./lib/object-html-renderer":1,"./template/template":5}],5:[function(require,module,exports){
"use strict";

class Template {
    constructor(props) {
        this.props = props;
    }

    render() {
        return {
            tag: "main",
            contents: [
                {
                    tag: "header",
                    contents: [
                        {
                            tag: "ul",
                            contents: [
                                {
                                    tag: "li",
                                    contents: [
                                        {
                                            tag: "a",
                                            href: "/public/",
                                            contents: "Home",
                                        },
                                    ],
                                },
                                {
                                    tag: "li",
                                    contents: [
                                        {
                                            tag: "a",
                                            href: "/public/games/",
                                            contents: "Jeux",
                                        },
                                    ],
                                },
                                {
                                    tag: "li",
                                    contents: [
                                        {
                                            tag: "a",
                                            href: "/public/software-development/",
                                            contents: "Software development",
                                        },
                                    ],
                                },
                                {
                                    tag: "li",
                                    contents: [
                                        {
                                            tag: "a",
                                            href: "/public/education/",
                                            contents: "Pédagogie",
                                        },
                                    ],
                                },
                            ],
                        },
                    ],
                },
                {
                    tag: "div",
                    id: "page-container",
                    contents: [this.props.page.render()],
                },
                {
                    tag: "footer",
                    contents: [
                        {
                            tag: "a",
                            href: "mailto:kuadrado-software@tutanota.com",
                            contents: "kuadrado-software@tutanota.com",
                        },
                    ],
                },
            ],
        };
    }
}

module.exports = Template;

},{}]},{},[3]);