| define([], function () {
    
    var todos = [];
    //----------------------
    var STORAGE_KEY = 'todos-vuejs';
    var oTodos = JSON.parse(window.localStorage.getItem(STORAGE_KEY));
    if(oTodos){
        todos = oTodos.todos;
    }
    var state = {
        todos: todos
    };
    var mutations = {
        addTodo: function (state, text) {
            state.todos.push({
                text: text,
                done: false
            });
        },
        deleteTodo: function (state, todo) {
            var indexOf = state.todos.indexOf(todo);
            state.todos.splice(indexOf, 1);
        },
        toggleTodo: function (state, todo) {
            todo.done = !todo.done;
        },
        editTodo: function (state, values) {
            values.todo.text = values.value;
        },
        toggleAll: function (state, done) {
            state.todos.forEach(function (todo) {
                todo.done = done;
            });
        },
        clearCompleted: function (state) {
            state.todos = state.todos.filter(function (todo) {
                return !todo.done;
            });
        }
    };
    return {
        storage_key: STORAGE_KEY,
        state: state,
        mutations: mutations
    };
});
 |