(function(VT, window) { "use strict"; // Déclaration des variables var _rootEl; // Élement racine de notre application var _todos = []; // Notre liste de todos var document = window.document; // Alias /*************** * API publique ***************/ /* * "Monte" l'application VanillaTodo sur l'élément du DOM * correspondant au sélecteur CSS donné */ VT.mount = function(selector) { _rootEl = document.querySelector(selector); if(!_rootEl) { throw new Error('Invalid selector "'+selector+'" !'); } _todos = _loadTodos(); // A vous de compléter ! }; /************** * API privée **************/ /* * Charge les tâches depuis le localStorage * * Retourne les tâches sous la forme d'un tableau d'objets */ function _loadTodos() { var todosStr = window.localStorage.getItem('vanillaTodos.todos'); return JSON.parse(todosStr || '[]'); } /* * Sauvegarde le tableau de tâches donné dans le localStorage * * Ne retourne rien */ function _saveTodos(todos) { var todosStr = JSON.stringify(todos); window.localStorage.setItem('vanillaTodos.todos', todosStr); } }(this.VanillaTodos = this.VanillaTodos || {}, window));