619a004b0fcfdf82753d2450b8bfc1baba65eaa6
[WebKit-https.git] / PerformanceTests / Speedometer / resources / todomvc / architecture-examples / emberjs / assets / todomvc.js
1 "use strict";
2
3 /* jshint ignore:start */
4
5
6
7 /* jshint ignore:end */
8
9 define('todomvc/app', ['exports', 'ember', 'todomvc/resolver', 'ember-load-initializers', 'todomvc/config/environment'], function (exports, _ember, _todomvcResolver, _emberLoadInitializers, _todomvcConfigEnvironment) {
10
11     var App = undefined;
12
13     _ember['default'].MODEL_FACTORY_INJECTIONS = true;
14
15     App = _ember['default'].Application.extend({
16         modulePrefix: _todomvcConfigEnvironment['default'].modulePrefix,
17         podModulePrefix: _todomvcConfigEnvironment['default'].podModulePrefix,
18         Resolver: _todomvcResolver['default']
19     });
20
21     (0, _emberLoadInitializers['default'])(App, _todomvcConfigEnvironment['default'].modulePrefix);
22
23     exports['default'] = App;
24 });
25 define('todomvc/components/app-version', ['exports', 'ember-cli-app-version/components/app-version', 'todomvc/config/environment'], function (exports, _emberCliAppVersionComponentsAppVersion, _todomvcConfigEnvironment) {
26
27   var name = _todomvcConfigEnvironment['default'].APP.name;
28   var version = _todomvcConfigEnvironment['default'].APP.version;
29
30   exports['default'] = _emberCliAppVersionComponentsAppVersion['default'].extend({
31     version: version,
32     name: name
33   });
34 });
35 define('todomvc/components/todo-item', ['exports', 'ember'], function (exports, _ember) {
36     exports['default'] = _ember['default'].Component.extend({
37         repo: _ember['default'].inject.service(),
38         tagName: 'li',
39         editing: false,
40         classNameBindings: ['todo.completed', 'editing'],
41
42         actions: {
43             startEditing: function startEditing() {
44                 this.get('onStartEdit')();
45                 this.set('editing', true);
46                 _ember['default'].run.scheduleOnce('afterRender', this, 'focusInput');
47             },
48
49             doneEditing: function doneEditing(todoTitle) {
50                 if (!this.get('editing')) {
51                     return;
52                 }
53                 if (_ember['default'].isBlank(todoTitle)) {
54                     this.send('removeTodo');
55                 } else {
56                     this.set('todo.title', todoTitle.trim());
57                     this.set('editing', false);
58                     this.get('onEndEdit')();
59                 }
60             },
61
62             handleKeydown: function handleKeydown(e) {
63                 if (e.keyCode === 13) {
64                     e.target.blur();
65                 } else if (e.keyCode === 27) {
66                     this.set('editing', false);
67                 }
68             },
69
70             toggleCompleted: function toggleCompleted(e) {
71                 var todo = this.get('todo');
72                 _ember['default'].set(todo, 'completed', e.target.checked);
73                 this.get('repo').persist();
74             },
75
76             removeTodo: function removeTodo() {
77                 this.get('repo')['delete'](this.get('todo'));
78             }
79         },
80
81         focusInput: function focusInput() {
82             this.element.querySelector('input.edit').focus();
83         }
84     });
85 });
86 define('todomvc/components/todo-list', ['exports', 'ember'], function (exports, _ember) {
87     exports['default'] = _ember['default'].Component.extend({
88         repo: _ember['default'].inject.service(),
89         tagName: 'section',
90         elementId: 'main',
91         canToggle: true,
92         allCompleted: _ember['default'].computed('todos.@each.completed', function () {
93             return this.get('todos').isEvery('completed');
94         }),
95
96         actions: {
97             enableToggle: function enableToggle() {
98                 this.set('canToggle', true);
99             },
100
101             disableToggle: function disableToggle() {
102                 this.set('canToggle', false);
103             },
104
105             toggleAll: function toggleAll() {
106                 var allCompleted = this.get('allCompleted');
107                 this.get('todos').forEach(function (todo) {
108                     return _ember['default'].set(todo, 'completed', !allCompleted);
109                 });
110                 this.get('repo').persist();
111             }
112         }
113     });
114 });
115 define('todomvc/controllers/active', ['exports', 'ember'], function (exports, _ember) {
116     exports['default'] = _ember['default'].Controller.extend({
117         todos: _ember['default'].computed.filterBy('model', 'completed', false)
118     });
119 });
120 define('todomvc/controllers/application', ['exports', 'ember'], function (exports, _ember) {
121     exports['default'] = _ember['default'].Controller.extend({
122         repo: _ember['default'].inject.service(),
123         remaining: _ember['default'].computed.filterBy('model', 'completed', false),
124         completed: _ember['default'].computed.filterBy('model', 'completed'),
125         actions: {
126             createTodo: function createTodo(e) {
127                 if (e.keyCode === 13 && !_ember['default'].isBlank(e.target.value)) {
128                     this.get('repo').add({ title: e.target.value.trim(), completed: false });
129                     e.target.value = '';
130                 }
131             },
132
133             clearCompleted: function clearCompleted() {
134                 this.get('model').removeObjects(this.get('completed'));
135                 this.get('repo').persist();
136             }
137         }
138     });
139 });
140 define('todomvc/controllers/completed', ['exports', 'ember'], function (exports, _ember) {
141     exports['default'] = _ember['default'].Controller.extend({
142         todos: _ember['default'].computed.filterBy('model', 'completed', true)
143     });
144 });
145 define('todomvc/helpers/gt', ['exports', 'ember'], function (exports, _ember) {
146     var _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();
147
148     exports.gt = gt;
149
150     function gt(_ref /*, hash*/) {
151         var _ref2 = _slicedToArray(_ref, 2);
152
153         var n1 = _ref2[0];
154         var n2 = _ref2[1];
155
156         return n1 > n2;
157     }
158
159     exports['default'] = _ember['default'].Helper.helper(gt);
160 });
161 define('todomvc/helpers/pluralize', ['exports', 'ember', 'ember-inflector'], function (exports, _ember, _emberInflector) {
162     var _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();
163
164     exports.pluralizeHelper = pluralizeHelper;
165
166     function pluralizeHelper(_ref /*, hash*/) {
167         var _ref2 = _slicedToArray(_ref, 2);
168
169         var singular = _ref2[0];
170         var count = _ref2[1];
171
172         return count === 1 ? singular : (0, _emberInflector.pluralize)(singular);
173     }
174
175     exports['default'] = _ember['default'].Helper.helper(pluralizeHelper);
176 });
177 define('todomvc/helpers/singularize', ['exports', 'ember-inflector/lib/helpers/singularize'], function (exports, _emberInflectorLibHelpersSingularize) {
178   exports['default'] = _emberInflectorLibHelpersSingularize['default'];
179 });
180 define('todomvc/initializers/app-version', ['exports', 'ember-cli-app-version/initializer-factory', 'todomvc/config/environment'], function (exports, _emberCliAppVersionInitializerFactory, _todomvcConfigEnvironment) {
181   exports['default'] = {
182     name: 'App Version',
183     initialize: (0, _emberCliAppVersionInitializerFactory['default'])(_todomvcConfigEnvironment['default'].APP.name, _todomvcConfigEnvironment['default'].APP.version)
184   };
185 });
186 define('todomvc/initializers/container-debug-adapter', ['exports', 'ember-resolver/container-debug-adapter'], function (exports, _emberResolverContainerDebugAdapter) {
187   exports['default'] = {
188     name: 'container-debug-adapter',
189
190     initialize: function initialize() {
191       var app = arguments[1] || arguments[0];
192
193       app.register('container-debug-adapter:main', _emberResolverContainerDebugAdapter['default']);
194       app.inject('container-debug-adapter:main', 'namespace', 'application:main');
195     }
196   };
197 });
198 define('todomvc/initializers/export-application-global', ['exports', 'ember', 'todomvc/config/environment'], function (exports, _ember, _todomvcConfigEnvironment) {
199   exports.initialize = initialize;
200
201   function initialize() {
202     var application = arguments[1] || arguments[0];
203     if (_todomvcConfigEnvironment['default'].exportApplicationGlobal !== false) {
204       var theGlobal;
205       if (typeof window !== 'undefined') {
206         theGlobal = window;
207       } else if (typeof global !== 'undefined') {
208         theGlobal = global;
209       } else if (typeof self !== 'undefined') {
210         theGlobal = self;
211       } else {
212         // no reasonable global, just bail
213         return;
214       }
215
216       var value = _todomvcConfigEnvironment['default'].exportApplicationGlobal;
217       var globalName;
218
219       if (typeof value === 'string') {
220         globalName = value;
221       } else {
222         globalName = _ember['default'].String.classify(_todomvcConfigEnvironment['default'].modulePrefix);
223       }
224
225       if (!theGlobal[globalName]) {
226         theGlobal[globalName] = application;
227
228         application.reopen({
229           willDestroy: function willDestroy() {
230             this._super.apply(this, arguments);
231             delete theGlobal[globalName];
232           }
233         });
234       }
235     }
236   }
237
238   exports['default'] = {
239     name: 'export-application-global',
240
241     initialize: initialize
242   };
243 });
244 define('todomvc/instance-initializers/global', ['exports'], function (exports) {
245   exports.initialize = initialize;
246   // app/instance-initializers/global.js
247
248   function initialize(application) {
249     window.App = application; // or window.Whatever
250   }
251
252   exports['default'] = {
253     name: 'global',
254     initialize: initialize
255   };
256 });
257 define('todomvc/resolver', ['exports', 'ember-resolver'], function (exports, _emberResolver) {
258   exports['default'] = _emberResolver['default'];
259 });
260 define('todomvc/router', ['exports', 'ember', 'todomvc/config/environment'], function (exports, _ember, _todomvcConfigEnvironment) {
261
262     var Router = _ember['default'].Router.extend({
263         location: _todomvcConfigEnvironment['default'].locationType
264     });
265
266     Router.map(function () {
267         this.route('active');
268         this.route('completed');
269     });
270
271     exports['default'] = Router;
272 });
273 define('todomvc/routes/application', ['exports', 'ember'], function (exports, _ember) {
274     exports['default'] = _ember['default'].Route.extend({
275         repo: _ember['default'].inject.service(),
276         model: function model() {
277             return this.get('repo').findAll();
278         }
279     });
280 });
281 define('todomvc/services/ajax', ['exports', 'ember-ajax/services/ajax'], function (exports, _emberAjaxServicesAjax) {
282   Object.defineProperty(exports, 'default', {
283     enumerable: true,
284     get: function get() {
285       return _emberAjaxServicesAjax['default'];
286     }
287   });
288 });
289 define('todomvc/services/memory', ['exports'], function (exports) {
290   (function (root) {
291     var localStorageMemory = {};
292     var cache = {};
293
294     /**
295      * number of stored items.
296      */
297     localStorageMemory.length = 0;
298
299     /**
300      * returns item for passed key, or null
301      *
302      * @para {String} key
303      *       name of item to be returned
304      * @returns {String|null}
305      */
306     localStorageMemory.getItem = function (key) {
307       return cache[key] || null;
308     };
309
310     /**
311      * sets item for key to passed value, as String
312      *
313      * @para {String} key
314      *       name of item to be set
315      * @para {String} value
316      *       value, will always be turned into a String
317      * @returns {undefined}
318      */
319     localStorageMemory.setItem = function (key, value) {
320       if (typeof value === 'undefined') {
321         localStorageMemory.removeItem(key);
322       } else {
323         if (!cache.hasOwnProperty(key)) {
324           localStorageMemory.length++;
325         }
326
327         cache[key] = '' + value;
328       }
329     };
330
331     /**
332      * removes item for passed key
333      *
334      * @para {String} key
335      *       name of item to be removed
336      * @returns {undefined}
337      */
338     localStorageMemory.removeItem = function (key) {
339       if (cache.hasOwnProperty(key)) {
340         delete cache[key];
341         localStorageMemory.length--;
342       }
343     };
344
345     /**
346      * returns name of key at passed index
347      *
348      * @para {Number} index
349      *       Position for key to be returned (starts at 0)
350      * @returns {String|null}
351      */
352     localStorageMemory.key = function (index) {
353       return Object.keys(cache)[index] || null;
354     };
355
356     /**
357      * removes all stored items and sets length to 0
358      *
359      * @returns {undefined}
360      */
361     localStorageMemory.clear = function () {
362       cache = {};
363       localStorageMemory.length = 0;
364     };
365
366     if (typeof exports === 'object') {
367       module.exports = localStorageMemory;
368     } else {
369       root.localStorageMemory = localStorageMemory;
370     }
371   })(this);
372 });
373 define('todomvc/services/repo', ['exports', 'ember', 'todomvc/services/memory'], function (exports, _ember, _todomvcServicesMemory) {
374     exports['default'] = _ember['default'].Service.extend({
375         lastId: 0,
376         data: null,
377         findAll: function findAll() {
378             return this.get('data') || this.set('data', JSON.parse(_todomvcServicesMemory.getItem('todos') || '[]'));
379         },
380
381         add: function add(attrs) {
382             var todo = Object.assign({ id: this.incrementProperty('lastId') }, attrs);
383             this.get('data').pushObject(todo);
384             this.persist();
385             return todo;
386         },
387
388         'delete': function _delete(todo) {
389             this.get('data').removeObject(todo);
390             this.persist();
391         },
392
393         persist: function persist() {
394             _todomvcServicesMemory.setItem('todos', JSON.stringify(this.get('data')));
395         }
396     });
397 });
398 define("todomvc/templates/active", ["exports"], function (exports) {
399   exports["default"] = Ember.HTMLBars.template((function () {
400     return {
401       meta: {
402         "fragmentReason": {
403           "name": "missing-wrapper",
404           "problems": ["wrong-type"]
405         },
406         "revision": "Ember@2.6.2",
407         "loc": {
408           "source": null,
409           "start": {
410             "line": 1,
411             "column": 0
412           },
413           "end": {
414             "line": 1,
415             "column": 25
416           }
417         },
418         "moduleName": "todomvc/templates/active.hbs"
419       },
420       isEmpty: false,
421       arity: 0,
422       cachedFragment: null,
423       hasRendered: false,
424       buildFragment: function buildFragment(dom) {
425         var el0 = dom.createDocumentFragment();
426         var el1 = dom.createComment("");
427         dom.appendChild(el0, el1);
428         return el0;
429       },
430       buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {
431         var morphs = new Array(1);
432         morphs[0] = dom.createMorphAt(fragment, 0, 0, contextualElement);
433         dom.insertBoundary(fragment, 0);
434         dom.insertBoundary(fragment, null);
435         return morphs;
436       },
437       statements: [["inline", "todo-list", [], ["todos", ["subexpr", "@mut", [["get", "todos", ["loc", [null, [1, 18], [1, 23]]]]], [], []]], ["loc", [null, [1, 0], [1, 25]]]]],
438       locals: [],
439       templates: []
440     };
441   })());
442 });
443 define("todomvc/templates/application", ["exports"], function (exports) {
444   exports["default"] = Ember.HTMLBars.template((function () {
445     var child0 = (function () {
446       var child0 = (function () {
447         return {
448           meta: {
449             "fragmentReason": false,
450             "revision": "Ember@2.6.2",
451             "loc": {
452               "source": null,
453               "start": {
454                 "line": 11,
455                 "column": 14
456               },
457               "end": {
458                 "line": 11,
459                 "column": 60
460               }
461             },
462             "moduleName": "todomvc/templates/application.hbs"
463           },
464           isEmpty: false,
465           arity: 0,
466           cachedFragment: null,
467           hasRendered: false,
468           buildFragment: function buildFragment(dom) {
469             var el0 = dom.createDocumentFragment();
470             var el1 = dom.createTextNode("All");
471             dom.appendChild(el0, el1);
472             return el0;
473           },
474           buildRenderNodes: function buildRenderNodes() {
475             return [];
476           },
477           statements: [],
478           locals: [],
479           templates: []
480         };
481       })();
482       var child1 = (function () {
483         return {
484           meta: {
485             "fragmentReason": false,
486             "revision": "Ember@2.6.2",
487             "loc": {
488               "source": null,
489               "start": {
490                 "line": 12,
491                 "column": 14
492               },
493               "end": {
494                 "line": 12,
495                 "column": 64
496               }
497             },
498             "moduleName": "todomvc/templates/application.hbs"
499           },
500           isEmpty: false,
501           arity: 0,
502           cachedFragment: null,
503           hasRendered: false,
504           buildFragment: function buildFragment(dom) {
505             var el0 = dom.createDocumentFragment();
506             var el1 = dom.createTextNode("Active");
507             dom.appendChild(el0, el1);
508             return el0;
509           },
510           buildRenderNodes: function buildRenderNodes() {
511             return [];
512           },
513           statements: [],
514           locals: [],
515           templates: []
516         };
517       })();
518       var child2 = (function () {
519         return {
520           meta: {
521             "fragmentReason": false,
522             "revision": "Ember@2.6.2",
523             "loc": {
524               "source": null,
525               "start": {
526                 "line": 13,
527                 "column": 14
528               },
529               "end": {
530                 "line": 13,
531                 "column": 70
532               }
533             },
534             "moduleName": "todomvc/templates/application.hbs"
535           },
536           isEmpty: false,
537           arity: 0,
538           cachedFragment: null,
539           hasRendered: false,
540           buildFragment: function buildFragment(dom) {
541             var el0 = dom.createDocumentFragment();
542             var el1 = dom.createTextNode("Completed");
543             dom.appendChild(el0, el1);
544             return el0;
545           },
546           buildRenderNodes: function buildRenderNodes() {
547             return [];
548           },
549           statements: [],
550           locals: [],
551           templates: []
552         };
553       })();
554       var child3 = (function () {
555         return {
556           meta: {
557             "fragmentReason": false,
558             "revision": "Ember@2.6.2",
559             "loc": {
560               "source": null,
561               "start": {
562                 "line": 15,
563                 "column": 8
564               },
565               "end": {
566                 "line": 17,
567                 "column": 8
568               }
569             },
570             "moduleName": "todomvc/templates/application.hbs"
571           },
572           isEmpty: false,
573           arity: 0,
574           cachedFragment: null,
575           hasRendered: false,
576           buildFragment: function buildFragment(dom) {
577             var el0 = dom.createDocumentFragment();
578             var el1 = dom.createTextNode("          ");
579             dom.appendChild(el0, el1);
580             var el1 = dom.createElement("button");
581             dom.setAttribute(el1, "id", "clear-completed");
582             var el2 = dom.createTextNode("Clear completed");
583             dom.appendChild(el1, el2);
584             dom.appendChild(el0, el1);
585             var el1 = dom.createTextNode("\n");
586             dom.appendChild(el0, el1);
587             return el0;
588           },
589           buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {
590             var element0 = dom.childAt(fragment, [1]);
591             var morphs = new Array(1);
592             morphs[0] = dom.createAttrMorph(element0, 'onclick');
593             return morphs;
594           },
595           statements: [["attribute", "onclick", ["subexpr", "action", ["clearCompleted"], [], ["loc", [null, [16, 47], [16, 74]]]]]],
596           locals: [],
597           templates: []
598         };
599       })();
600       return {
601         meta: {
602           "fragmentReason": false,
603           "revision": "Ember@2.6.2",
604           "loc": {
605             "source": null,
606             "start": {
607               "line": 7,
608               "column": 4
609             },
610             "end": {
611               "line": 19,
612               "column": 4
613             }
614           },
615           "moduleName": "todomvc/templates/application.hbs"
616         },
617         isEmpty: false,
618         arity: 0,
619         cachedFragment: null,
620         hasRendered: false,
621         buildFragment: function buildFragment(dom) {
622           var el0 = dom.createDocumentFragment();
623           var el1 = dom.createTextNode("      ");
624           dom.appendChild(el0, el1);
625           var el1 = dom.createElement("footer");
626           dom.setAttribute(el1, "id", "footer");
627           var el2 = dom.createTextNode("\n        ");
628           dom.appendChild(el1, el2);
629           var el2 = dom.createElement("span");
630           dom.setAttribute(el2, "id", "todo-count");
631           var el3 = dom.createElement("strong");
632           var el4 = dom.createComment("");
633           dom.appendChild(el3, el4);
634           dom.appendChild(el2, el3);
635           var el3 = dom.createTextNode(" ");
636           dom.appendChild(el2, el3);
637           var el3 = dom.createComment("");
638           dom.appendChild(el2, el3);
639           var el3 = dom.createTextNode(" left");
640           dom.appendChild(el2, el3);
641           dom.appendChild(el1, el2);
642           var el2 = dom.createTextNode("\n        ");
643           dom.appendChild(el1, el2);
644           var el2 = dom.createElement("ul");
645           dom.setAttribute(el2, "id", "filters");
646           var el3 = dom.createTextNode("\n          ");
647           dom.appendChild(el2, el3);
648           var el3 = dom.createElement("li");
649           var el4 = dom.createComment("");
650           dom.appendChild(el3, el4);
651           dom.appendChild(el2, el3);
652           var el3 = dom.createTextNode("\n          ");
653           dom.appendChild(el2, el3);
654           var el3 = dom.createElement("li");
655           var el4 = dom.createComment("");
656           dom.appendChild(el3, el4);
657           dom.appendChild(el2, el3);
658           var el3 = dom.createTextNode("\n          ");
659           dom.appendChild(el2, el3);
660           var el3 = dom.createElement("li");
661           var el4 = dom.createComment("");
662           dom.appendChild(el3, el4);
663           dom.appendChild(el2, el3);
664           var el3 = dom.createTextNode("\n        ");
665           dom.appendChild(el2, el3);
666           dom.appendChild(el1, el2);
667           var el2 = dom.createTextNode("\n");
668           dom.appendChild(el1, el2);
669           var el2 = dom.createComment("");
670           dom.appendChild(el1, el2);
671           var el2 = dom.createTextNode("      ");
672           dom.appendChild(el1, el2);
673           dom.appendChild(el0, el1);
674           var el1 = dom.createTextNode("\n");
675           dom.appendChild(el0, el1);
676           return el0;
677         },
678         buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {
679           var element1 = dom.childAt(fragment, [1]);
680           var element2 = dom.childAt(element1, [1]);
681           var element3 = dom.childAt(element1, [3]);
682           var morphs = new Array(6);
683           morphs[0] = dom.createMorphAt(dom.childAt(element2, [0]), 0, 0);
684           morphs[1] = dom.createMorphAt(element2, 2, 2);
685           morphs[2] = dom.createMorphAt(dom.childAt(element3, [1]), 0, 0);
686           morphs[3] = dom.createMorphAt(dom.childAt(element3, [3]), 0, 0);
687           morphs[4] = dom.createMorphAt(dom.childAt(element3, [5]), 0, 0);
688           morphs[5] = dom.createMorphAt(element1, 5, 5);
689           return morphs;
690         },
691         statements: [["content", "remaining.length", ["loc", [null, [9, 38], [9, 58]]]], ["inline", "pluralize", ["item", ["get", "remaining.length", ["loc", [null, [9, 87], [9, 103]]]]], [], ["loc", [null, [9, 68], [9, 105]]]], ["block", "link-to", ["index"], ["activeClass", "selected"], 0, null, ["loc", [null, [11, 14], [11, 72]]]], ["block", "link-to", ["active"], ["activeClass", "selected"], 1, null, ["loc", [null, [12, 14], [12, 76]]]], ["block", "link-to", ["completed"], ["activeClass", "selected"], 2, null, ["loc", [null, [13, 14], [13, 82]]]], ["block", "if", [["get", "completed.length", ["loc", [null, [15, 14], [15, 30]]]]], [], 3, null, ["loc", [null, [15, 8], [17, 15]]]]],
692         locals: [],
693         templates: [child0, child1, child2, child3]
694       };
695     })();
696     return {
697       meta: {
698         "fragmentReason": {
699           "name": "missing-wrapper",
700           "problems": ["multiple-nodes"]
701         },
702         "revision": "Ember@2.6.2",
703         "loc": {
704           "source": null,
705           "start": {
706             "line": 1,
707             "column": 0
708           },
709           "end": {
710             "line": 29,
711             "column": 9
712           }
713         },
714         "moduleName": "todomvc/templates/application.hbs"
715       },
716       isEmpty: false,
717       arity: 0,
718       cachedFragment: null,
719       hasRendered: false,
720       buildFragment: function buildFragment(dom) {
721         var el0 = dom.createDocumentFragment();
722         var el1 = dom.createElement("section");
723         dom.setAttribute(el1, "id", "todoapp");
724         var el2 = dom.createTextNode("\n  ");
725         dom.appendChild(el1, el2);
726         var el2 = dom.createElement("header");
727         dom.setAttribute(el2, "id", "header");
728         var el3 = dom.createTextNode("\n    ");
729         dom.appendChild(el2, el3);
730         var el3 = dom.createElement("h1");
731         var el4 = dom.createTextNode("todos");
732         dom.appendChild(el3, el4);
733         dom.appendChild(el2, el3);
734         var el3 = dom.createTextNode("\n    ");
735         dom.appendChild(el2, el3);
736         var el3 = dom.createElement("input");
737         dom.setAttribute(el3, "type", "text");
738         dom.setAttribute(el3, "id", "new-todo");
739         dom.setAttribute(el3, "placeholder", "What needs to be done?");
740         dom.setAttribute(el3, "autofocus", "");
741         dom.appendChild(el2, el3);
742         var el3 = dom.createTextNode("\n  ");
743         dom.appendChild(el2, el3);
744         dom.appendChild(el1, el2);
745         var el2 = dom.createTextNode("\n    ");
746         dom.appendChild(el1, el2);
747         var el2 = dom.createComment("");
748         dom.appendChild(el1, el2);
749         var el2 = dom.createTextNode("\n");
750         dom.appendChild(el1, el2);
751         var el2 = dom.createComment("");
752         dom.appendChild(el1, el2);
753         dom.appendChild(el0, el1);
754         var el1 = dom.createTextNode("\n");
755         dom.appendChild(el0, el1);
756         var el1 = dom.createElement("footer");
757         dom.setAttribute(el1, "id", "info");
758         var el2 = dom.createTextNode("\n  ");
759         dom.appendChild(el1, el2);
760         var el2 = dom.createElement("p");
761         var el3 = dom.createTextNode("Double-click to edit a todo");
762         dom.appendChild(el2, el3);
763         dom.appendChild(el1, el2);
764         var el2 = dom.createTextNode("\n  ");
765         dom.appendChild(el1, el2);
766         var el2 = dom.createElement("p");
767         var el3 = dom.createTextNode("\n    Created by\n    ");
768         dom.appendChild(el2, el3);
769         var el3 = dom.createElement("a");
770         dom.setAttribute(el3, "href", "http://github.com/cibernox");
771         var el4 = dom.createTextNode("Miguel Camba");
772         dom.appendChild(el3, el4);
773         dom.appendChild(el2, el3);
774         var el3 = dom.createTextNode(",\n    ");
775         dom.appendChild(el2, el3);
776         var el3 = dom.createElement("a");
777         dom.setAttribute(el3, "href", "http://github.com/addyosmani");
778         var el4 = dom.createTextNode("Addy Osmani");
779         dom.appendChild(el3, el4);
780         dom.appendChild(el2, el3);
781         var el3 = dom.createTextNode("\n  ");
782         dom.appendChild(el2, el3);
783         dom.appendChild(el1, el2);
784         var el2 = dom.createTextNode("\n  ");
785         dom.appendChild(el1, el2);
786         var el2 = dom.createElement("p");
787         var el3 = dom.createTextNode("Part of ");
788         dom.appendChild(el2, el3);
789         var el3 = dom.createElement("a");
790         dom.setAttribute(el3, "href", "http://todomvc.com");
791         var el4 = dom.createTextNode("TodoMVC");
792         dom.appendChild(el3, el4);
793         dom.appendChild(el2, el3);
794         dom.appendChild(el1, el2);
795         var el2 = dom.createTextNode("\n");
796         dom.appendChild(el1, el2);
797         dom.appendChild(el0, el1);
798         return el0;
799       },
800       buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {
801         var element4 = dom.childAt(fragment, [0]);
802         var element5 = dom.childAt(element4, [1, 3]);
803         var morphs = new Array(3);
804         morphs[0] = dom.createAttrMorph(element5, 'onkeydown');
805         morphs[1] = dom.createMorphAt(element4, 3, 3);
806         morphs[2] = dom.createMorphAt(element4, 5, 5);
807         return morphs;
808       },
809       statements: [["attribute", "onkeydown", ["subexpr", "action", ["createTodo"], [], ["loc", [null, [4, 47], [4, 70]]]]], ["content", "outlet", ["loc", [null, [6, 4], [6, 14]]]], ["block", "if", [["subexpr", "gt", [["get", "model.length", ["loc", [null, [7, 14], [7, 26]]]], 0], [], ["loc", [null, [7, 10], [7, 29]]]]], [], 0, null, ["loc", [null, [7, 4], [19, 11]]]]],
810       locals: [],
811       templates: [child0]
812     };
813   })());
814 });
815 define("todomvc/templates/completed", ["exports"], function (exports) {
816   exports["default"] = Ember.HTMLBars.template((function () {
817     return {
818       meta: {
819         "fragmentReason": {
820           "name": "missing-wrapper",
821           "problems": ["wrong-type"]
822         },
823         "revision": "Ember@2.6.2",
824         "loc": {
825           "source": null,
826           "start": {
827             "line": 1,
828             "column": 0
829           },
830           "end": {
831             "line": 1,
832             "column": 25
833           }
834         },
835         "moduleName": "todomvc/templates/completed.hbs"
836       },
837       isEmpty: false,
838       arity: 0,
839       cachedFragment: null,
840       hasRendered: false,
841       buildFragment: function buildFragment(dom) {
842         var el0 = dom.createDocumentFragment();
843         var el1 = dom.createComment("");
844         dom.appendChild(el0, el1);
845         return el0;
846       },
847       buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {
848         var morphs = new Array(1);
849         morphs[0] = dom.createMorphAt(fragment, 0, 0, contextualElement);
850         dom.insertBoundary(fragment, 0);
851         dom.insertBoundary(fragment, null);
852         return morphs;
853       },
854       statements: [["inline", "todo-list", [], ["todos", ["subexpr", "@mut", [["get", "todos", ["loc", [null, [1, 18], [1, 23]]]]], [], []]], ["loc", [null, [1, 0], [1, 25]]]]],
855       locals: [],
856       templates: []
857     };
858   })());
859 });
860 define("todomvc/templates/components/todo-item", ["exports"], function (exports) {
861   exports["default"] = Ember.HTMLBars.template((function () {
862     return {
863       meta: {
864         "fragmentReason": {
865           "name": "missing-wrapper",
866           "problems": ["multiple-nodes"]
867         },
868         "revision": "Ember@2.6.2",
869         "loc": {
870           "source": null,
871           "start": {
872             "line": 1,
873             "column": 0
874           },
875           "end": {
876             "line": 6,
877             "column": 153
878           }
879         },
880         "moduleName": "todomvc/templates/components/todo-item.hbs"
881       },
882       isEmpty: false,
883       arity: 0,
884       cachedFragment: null,
885       hasRendered: false,
886       buildFragment: function buildFragment(dom) {
887         var el0 = dom.createDocumentFragment();
888         var el1 = dom.createElement("div");
889         dom.setAttribute(el1, "class", "view");
890         var el2 = dom.createTextNode("\n  ");
891         dom.appendChild(el1, el2);
892         var el2 = dom.createElement("input");
893         dom.setAttribute(el2, "type", "checkbox");
894         dom.setAttribute(el2, "class", "toggle");
895         dom.appendChild(el1, el2);
896         var el2 = dom.createTextNode("\n  ");
897         dom.appendChild(el1, el2);
898         var el2 = dom.createElement("label");
899         var el3 = dom.createComment("");
900         dom.appendChild(el2, el3);
901         dom.appendChild(el1, el2);
902         var el2 = dom.createTextNode("\n  ");
903         dom.appendChild(el1, el2);
904         var el2 = dom.createElement("button");
905         dom.setAttribute(el2, "class", "destroy");
906         dom.appendChild(el1, el2);
907         var el2 = dom.createTextNode("\n");
908         dom.appendChild(el1, el2);
909         dom.appendChild(el0, el1);
910         var el1 = dom.createTextNode("\n");
911         dom.appendChild(el0, el1);
912         var el1 = dom.createElement("input");
913         dom.setAttribute(el1, "type", "text");
914         dom.setAttribute(el1, "class", "edit");
915         dom.setAttribute(el1, "autofocus", "");
916         dom.appendChild(el0, el1);
917         return el0;
918       },
919       buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {
920         var element0 = dom.childAt(fragment, [0]);
921         var element1 = dom.childAt(element0, [1]);
922         if (this.cachedFragment) {
923           dom.repairClonedNode(element1, [], true);
924         }
925         var element2 = dom.childAt(element0, [3]);
926         var element3 = dom.childAt(element0, [5]);
927         var element4 = dom.childAt(fragment, [2]);
928         var morphs = new Array(8);
929         morphs[0] = dom.createAttrMorph(element1, 'checked');
930         morphs[1] = dom.createAttrMorph(element1, 'onchange');
931         morphs[2] = dom.createAttrMorph(element2, 'ondblclick');
932         morphs[3] = dom.createMorphAt(element2, 0, 0);
933         morphs[4] = dom.createAttrMorph(element3, 'onclick');
934         morphs[5] = dom.createAttrMorph(element4, 'value');
935         morphs[6] = dom.createAttrMorph(element4, 'onblur');
936         morphs[7] = dom.createAttrMorph(element4, 'onkeydown');
937         return morphs;
938       },
939       statements: [["attribute", "checked", ["get", "todo.completed", ["loc", [null, [2, 50], [2, 64]]]]], ["attribute", "onchange", ["subexpr", "action", ["toggleCompleted"], [], ["loc", [null, [2, 76], [2, 104]]]]], ["attribute", "ondblclick", ["subexpr", "action", ["startEditing"], [], ["loc", [null, [3, 20], [3, 45]]]]], ["content", "todo.title", ["loc", [null, [3, 46], [3, 60]]]], ["attribute", "onclick", ["subexpr", "action", ["removeTodo"], [], ["loc", [null, [4, 18], [4, 41]]]]], ["attribute", "value", ["get", "todo.title", ["loc", [null, [6, 40], [6, 50]]]]], ["attribute", "onblur", ["subexpr", "action", ["doneEditing"], ["value", "target.value"], ["loc", [null, [6, 60], [6, 105]]]]], ["attribute", "onkeydown", ["subexpr", "action", ["handleKeydown"], [], ["loc", [null, [6, 116], [6, 142]]]]]],
940       locals: [],
941       templates: []
942     };
943   })());
944 });
945 define("todomvc/templates/components/todo-list", ["exports"], function (exports) {
946   exports["default"] = Ember.HTMLBars.template((function () {
947     var child0 = (function () {
948       var child0 = (function () {
949         return {
950           meta: {
951             "fragmentReason": false,
952             "revision": "Ember@2.6.2",
953             "loc": {
954               "source": null,
955               "start": {
956                 "line": 2,
957                 "column": 2
958               },
959               "end": {
960                 "line": 4,
961                 "column": 2
962               }
963             },
964             "moduleName": "todomvc/templates/components/todo-list.hbs"
965           },
966           isEmpty: false,
967           arity: 0,
968           cachedFragment: null,
969           hasRendered: false,
970           buildFragment: function buildFragment(dom) {
971             var el0 = dom.createDocumentFragment();
972             var el1 = dom.createTextNode("    ");
973             dom.appendChild(el0, el1);
974             var el1 = dom.createElement("input");
975             dom.setAttribute(el1, "type", "checkbox");
976             dom.setAttribute(el1, "id", "toggle-all");
977             dom.appendChild(el0, el1);
978             var el1 = dom.createTextNode("\n");
979             dom.appendChild(el0, el1);
980             return el0;
981           },
982           buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {
983             var element0 = dom.childAt(fragment, [1]);
984             if (this.cachedFragment) {
985               dom.repairClonedNode(element0, [], true);
986             }
987             var morphs = new Array(2);
988             morphs[0] = dom.createAttrMorph(element0, 'checked');
989             morphs[1] = dom.createAttrMorph(element0, 'onchange');
990             return morphs;
991           },
992           statements: [["attribute", "checked", ["get", "allCompleted", ["loc", [null, [3, 53], [3, 65]]]]], ["attribute", "onchange", ["subexpr", "action", ["toggleAll"], [], ["loc", [null, [3, 77], [3, 99]]]]]],
993           locals: [],
994           templates: []
995         };
996       })();
997       var child1 = (function () {
998         return {
999           meta: {
1000             "fragmentReason": false,
1001             "revision": "Ember@2.6.2",
1002             "loc": {
1003               "source": null,
1004               "start": {
1005                 "line": 6,
1006                 "column": 4
1007               },
1008               "end": {
1009                 "line": 8,
1010                 "column": 4
1011               }
1012             },
1013             "moduleName": "todomvc/templates/components/todo-list.hbs"
1014           },
1015           isEmpty: false,
1016           arity: 1,
1017           cachedFragment: null,
1018           hasRendered: false,
1019           buildFragment: function buildFragment(dom) {
1020             var el0 = dom.createDocumentFragment();
1021             var el1 = dom.createTextNode("      ");
1022             dom.appendChild(el0, el1);
1023             var el1 = dom.createComment("");
1024             dom.appendChild(el0, el1);
1025             var el1 = dom.createTextNode("\n");
1026             dom.appendChild(el0, el1);
1027             return el0;
1028           },
1029           buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {
1030             var morphs = new Array(1);
1031             morphs[0] = dom.createMorphAt(fragment, 1, 1, contextualElement);
1032             return morphs;
1033           },
1034           statements: [["inline", "todo-item", [], ["todo", ["subexpr", "@mut", [["get", "todo", ["loc", [null, [7, 23], [7, 27]]]]], [], []], "onStartEdit", ["subexpr", "action", ["disableToggle"], [], ["loc", [null, [7, 40], [7, 64]]]], "onEndEdit", ["subexpr", "action", ["enableToggle"], [], ["loc", [null, [7, 75], [7, 98]]]]], ["loc", [null, [7, 6], [7, 100]]]]],
1035           locals: ["todo"],
1036           templates: []
1037         };
1038       })();
1039       return {
1040         meta: {
1041           "fragmentReason": {
1042             "name": "missing-wrapper",
1043             "problems": ["wrong-type", "multiple-nodes"]
1044           },
1045           "revision": "Ember@2.6.2",
1046           "loc": {
1047             "source": null,
1048             "start": {
1049               "line": 1,
1050               "column": 0
1051             },
1052             "end": {
1053               "line": 10,
1054               "column": 0
1055             }
1056           },
1057           "moduleName": "todomvc/templates/components/todo-list.hbs"
1058         },
1059         isEmpty: false,
1060         arity: 0,
1061         cachedFragment: null,
1062         hasRendered: false,
1063         buildFragment: function buildFragment(dom) {
1064           var el0 = dom.createDocumentFragment();
1065           var el1 = dom.createComment("");
1066           dom.appendChild(el0, el1);
1067           var el1 = dom.createTextNode("  ");
1068           dom.appendChild(el0, el1);
1069           var el1 = dom.createElement("ul");
1070           dom.setAttribute(el1, "id", "todo-list");
1071           dom.setAttribute(el1, "class", "todo-list");
1072           var el2 = dom.createTextNode("\n");
1073           dom.appendChild(el1, el2);
1074           var el2 = dom.createComment("");
1075           dom.appendChild(el1, el2);
1076           var el2 = dom.createTextNode("  ");
1077           dom.appendChild(el1, el2);
1078           dom.appendChild(el0, el1);
1079           var el1 = dom.createTextNode("\n");
1080           dom.appendChild(el0, el1);
1081           return el0;
1082         },
1083         buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {
1084           var morphs = new Array(2);
1085           morphs[0] = dom.createMorphAt(fragment, 0, 0, contextualElement);
1086           morphs[1] = dom.createMorphAt(dom.childAt(fragment, [2]), 1, 1);
1087           dom.insertBoundary(fragment, 0);
1088           return morphs;
1089         },
1090         statements: [["block", "if", [["get", "canToggle", ["loc", [null, [2, 8], [2, 17]]]]], [], 0, null, ["loc", [null, [2, 2], [4, 9]]]], ["block", "each", [["get", "todos", ["loc", [null, [6, 12], [6, 17]]]]], [], 1, null, ["loc", [null, [6, 4], [8, 13]]]]],
1091         locals: [],
1092         templates: [child0, child1]
1093       };
1094     })();
1095     return {
1096       meta: {
1097         "fragmentReason": {
1098           "name": "missing-wrapper",
1099           "problems": ["wrong-type"]
1100         },
1101         "revision": "Ember@2.6.2",
1102         "loc": {
1103           "source": null,
1104           "start": {
1105             "line": 1,
1106             "column": 0
1107           },
1108           "end": {
1109             "line": 11,
1110             "column": 0
1111           }
1112         },
1113         "moduleName": "todomvc/templates/components/todo-list.hbs"
1114       },
1115       isEmpty: false,
1116       arity: 0,
1117       cachedFragment: null,
1118       hasRendered: false,
1119       buildFragment: function buildFragment(dom) {
1120         var el0 = dom.createDocumentFragment();
1121         var el1 = dom.createComment("");
1122         dom.appendChild(el0, el1);
1123         return el0;
1124       },
1125       buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {
1126         var morphs = new Array(1);
1127         morphs[0] = dom.createMorphAt(fragment, 0, 0, contextualElement);
1128         dom.insertBoundary(fragment, 0);
1129         dom.insertBoundary(fragment, null);
1130         return morphs;
1131       },
1132       statements: [["block", "if", [["get", "todos.length", ["loc", [null, [1, 6], [1, 18]]]]], [], 0, null, ["loc", [null, [1, 0], [10, 7]]]]],
1133       locals: [],
1134       templates: [child0]
1135     };
1136   })());
1137 });
1138 define("todomvc/templates/index", ["exports"], function (exports) {
1139   exports["default"] = Ember.HTMLBars.template((function () {
1140     var child0 = (function () {
1141       return {
1142         meta: {
1143           "fragmentReason": {
1144             "name": "missing-wrapper",
1145             "problems": ["wrong-type"]
1146           },
1147           "revision": "Ember@2.6.2",
1148           "loc": {
1149             "source": null,
1150             "start": {
1151               "line": 1,
1152               "column": 0
1153             },
1154             "end": {
1155               "line": 3,
1156               "column": 0
1157             }
1158           },
1159           "moduleName": "todomvc/templates/index.hbs"
1160         },
1161         isEmpty: false,
1162         arity: 0,
1163         cachedFragment: null,
1164         hasRendered: false,
1165         buildFragment: function buildFragment(dom) {
1166           var el0 = dom.createDocumentFragment();
1167           var el1 = dom.createTextNode("  ");
1168           dom.appendChild(el0, el1);
1169           var el1 = dom.createComment("");
1170           dom.appendChild(el0, el1);
1171           var el1 = dom.createTextNode("\n");
1172           dom.appendChild(el0, el1);
1173           return el0;
1174         },
1175         buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {
1176           var morphs = new Array(1);
1177           morphs[0] = dom.createMorphAt(fragment, 1, 1, contextualElement);
1178           return morphs;
1179         },
1180         statements: [["inline", "todo-list", [], ["todos", ["subexpr", "@mut", [["get", "model", ["loc", [null, [2, 20], [2, 25]]]]], [], []]], ["loc", [null, [2, 2], [2, 27]]]]],
1181         locals: [],
1182         templates: []
1183       };
1184     })();
1185     return {
1186       meta: {
1187         "fragmentReason": {
1188           "name": "missing-wrapper",
1189           "problems": ["wrong-type"]
1190         },
1191         "revision": "Ember@2.6.2",
1192         "loc": {
1193           "source": null,
1194           "start": {
1195             "line": 1,
1196             "column": 0
1197           },
1198           "end": {
1199             "line": 4,
1200             "column": 0
1201           }
1202         },
1203         "moduleName": "todomvc/templates/index.hbs"
1204       },
1205       isEmpty: false,
1206       arity: 0,
1207       cachedFragment: null,
1208       hasRendered: false,
1209       buildFragment: function buildFragment(dom) {
1210         var el0 = dom.createDocumentFragment();
1211         var el1 = dom.createComment("");
1212         dom.appendChild(el0, el1);
1213         return el0;
1214       },
1215       buildRenderNodes: function buildRenderNodes(dom, fragment, contextualElement) {
1216         var morphs = new Array(1);
1217         morphs[0] = dom.createMorphAt(fragment, 0, 0, contextualElement);
1218         dom.insertBoundary(fragment, 0);
1219         dom.insertBoundary(fragment, null);
1220         return morphs;
1221       },
1222       statements: [["block", "if", [["get", "model.length", ["loc", [null, [1, 6], [1, 18]]]]], [], 0, null, ["loc", [null, [1, 0], [3, 7]]]]],
1223       locals: [],
1224       templates: [child0]
1225     };
1226   })());
1227 });
1228 /* jshint ignore:start */
1229
1230
1231
1232 /* jshint ignore:end */
1233
1234 /* jshint ignore:start */
1235
1236 define('todomvc/config/environment', ['ember'], function(Ember) {
1237   var prefix = 'todomvc';
1238 /* jshint ignore:start */
1239
1240 try {
1241   var metaName = prefix + '/config/environment';
1242   var rawConfig = Ember['default'].$('meta[name="' + metaName + '"]').attr('content');
1243   var config = JSON.parse(unescape(rawConfig));
1244
1245   return { 'default': config };
1246 }
1247 catch(err) {
1248   throw new Error('Could not read config from meta tag with name "' + metaName + '".');
1249 }
1250
1251 /* jshint ignore:end */
1252
1253 });
1254
1255 /* jshint ignore:end */
1256
1257 /* jshint ignore:start */
1258
1259 if (!runningTests) {
1260   require("todomvc/app")["default"].create({"name":"todomvc","version":"0.0.0+5dbc5fb9"});
1261 }
1262
1263 /* jshint ignore:end */
1264 //# sourceMappingURL=todomvc.map