From 8019b409d016ed3ae1c182d98ba5e3d25c2ffc06 Mon Sep 17 00:00:00 2001 From: Miguel Camba Date: Fri, 10 Jun 2016 02:34:59 +0100 Subject: [PATCH] Update ancient emberjs version and use ember-cli (#1582) Update to Ember 2.6 --- .jscsrc | 3 + examples/ember-cli/assets | 1 + examples/ember-cli/crossdomain.xml | 15 + examples/ember-cli/index.html | 1 + examples/ember-cli/robots.txt | 3 + examples/ember-cli/todomvc/.bowerrc | 4 + examples/ember-cli/todomvc/.editorconfig | 34 ++ examples/ember-cli/todomvc/.ember-cli | 9 + examples/ember-cli/todomvc/.gitignore | 17 + examples/ember-cli/todomvc/.jshintrc | 32 ++ examples/ember-cli/todomvc/.travis.yml | 22 + examples/ember-cli/todomvc/.watchmanconfig | 3 + examples/ember-cli/todomvc/README.md | 15 + examples/ember-cli/todomvc/app/app.js | 18 + .../ember-cli/todomvc/app/components/.gitkeep | 0 .../todomvc/app/components/todo-item.js | 49 +++ .../todomvc/app/components/todo-list.js | 27 ++ .../todomvc/app/controllers/active.js | 5 + .../todomvc/app/controllers/application.js | 20 + .../todomvc/app/controllers/completed.js | 5 + examples/ember-cli/todomvc/app/helpers/gt.js | 7 + .../todomvc/app/helpers/pluralize.js | 8 + examples/ember-cli/todomvc/app/index.html | 25 ++ .../ember-cli/todomvc/app/models/.gitkeep | 0 examples/ember-cli/todomvc/app/resolver.js | 3 + examples/ember-cli/todomvc/app/router.js | 13 + .../ember-cli/todomvc/app/routes/.gitkeep | 0 .../todomvc/app/routes/application.js | 8 + .../ember-cli/todomvc/app/services/repo.js | 26 ++ examples/ember-cli/todomvc/app/styles/app.css | 0 .../todomvc/app/templates/active.hbs | 1 + .../todomvc/app/templates/application.hbs | 29 ++ .../todomvc/app/templates/completed.hbs | 1 + .../todomvc/app/templates/components/.gitkeep | 0 .../app/templates/components/todo-item.hbs | 6 + .../app/templates/components/todo-list.hbs | 10 + .../ember-cli/todomvc/app/templates/index.hbs | 3 + examples/ember-cli/todomvc/bower.json | 9 + .../ember-cli/todomvc/config/environment.js | 47 +++ ...odomvc-abee913429a66e32e34b282e3460218c.js | 1 + ...domvc-d41d8cd98f00b204e9800998ecf8427e.css | 0 ...endor-7b5c98520910afa58d74e05ec86cd873.css | 1 + ...vendor-fe6aaf6bf08a00247e9bb45b00c6c98c.js | 18 + .../ember-cli/todomvc/dist/crossdomain.xml | 15 + examples/ember-cli/todomvc/dist/index.html | 26 ++ examples/ember-cli/todomvc/dist/robots.txt | 3 + examples/ember-cli/todomvc/ember-cli-build.js | 26 ++ examples/ember-cli/todomvc/package.json | 42 ++ .../ember-cli/todomvc/public/crossdomain.xml | 15 + examples/ember-cli/todomvc/public/robots.txt | 3 + examples/ember-cli/todomvc/testem.js | 13 + examples/ember-cli/todomvc/tests/.jshintrc | 52 +++ .../todomvc/tests/helpers/destroy-app.js | 5 + .../tests/helpers/module-for-acceptance.js | 22 + .../todomvc/tests/helpers/resolver.js | 11 + .../todomvc/tests/helpers/start-app.js | 18 + examples/ember-cli/todomvc/tests/index.html | 34 ++ .../todomvc/tests/integration/.gitkeep | 0 .../ember-cli/todomvc/tests/test-helper.js | 6 + .../ember-cli/todomvc/tests/unit/.gitkeep | 0 examples/ember-cli/todomvc/vendor/.gitkeep | 0 examples/ember-cli/todomvc/vendor/base.css | 141 +++++++ examples/ember-cli/todomvc/vendor/index.css | 378 ++++++++++++++++++ 63 files changed, 1309 insertions(+) create mode 120000 examples/ember-cli/assets create mode 100644 examples/ember-cli/crossdomain.xml create mode 120000 examples/ember-cli/index.html create mode 100644 examples/ember-cli/robots.txt create mode 100644 examples/ember-cli/todomvc/.bowerrc create mode 100644 examples/ember-cli/todomvc/.editorconfig create mode 100644 examples/ember-cli/todomvc/.ember-cli create mode 100644 examples/ember-cli/todomvc/.gitignore create mode 100644 examples/ember-cli/todomvc/.jshintrc create mode 100644 examples/ember-cli/todomvc/.travis.yml create mode 100644 examples/ember-cli/todomvc/.watchmanconfig create mode 100644 examples/ember-cli/todomvc/README.md create mode 100644 examples/ember-cli/todomvc/app/app.js create mode 100644 examples/ember-cli/todomvc/app/components/.gitkeep create mode 100644 examples/ember-cli/todomvc/app/components/todo-item.js create mode 100644 examples/ember-cli/todomvc/app/components/todo-list.js create mode 100644 examples/ember-cli/todomvc/app/controllers/active.js create mode 100644 examples/ember-cli/todomvc/app/controllers/application.js create mode 100644 examples/ember-cli/todomvc/app/controllers/completed.js create mode 100644 examples/ember-cli/todomvc/app/helpers/gt.js create mode 100644 examples/ember-cli/todomvc/app/helpers/pluralize.js create mode 100644 examples/ember-cli/todomvc/app/index.html create mode 100644 examples/ember-cli/todomvc/app/models/.gitkeep create mode 100644 examples/ember-cli/todomvc/app/resolver.js create mode 100644 examples/ember-cli/todomvc/app/router.js create mode 100644 examples/ember-cli/todomvc/app/routes/.gitkeep create mode 100644 examples/ember-cli/todomvc/app/routes/application.js create mode 100644 examples/ember-cli/todomvc/app/services/repo.js create mode 100644 examples/ember-cli/todomvc/app/styles/app.css create mode 100644 examples/ember-cli/todomvc/app/templates/active.hbs create mode 100644 examples/ember-cli/todomvc/app/templates/application.hbs create mode 100644 examples/ember-cli/todomvc/app/templates/completed.hbs create mode 100644 examples/ember-cli/todomvc/app/templates/components/.gitkeep create mode 100644 examples/ember-cli/todomvc/app/templates/components/todo-item.hbs create mode 100644 examples/ember-cli/todomvc/app/templates/components/todo-list.hbs create mode 100644 examples/ember-cli/todomvc/app/templates/index.hbs create mode 100644 examples/ember-cli/todomvc/bower.json create mode 100644 examples/ember-cli/todomvc/config/environment.js create mode 100644 examples/ember-cli/todomvc/dist/assets/todomvc-abee913429a66e32e34b282e3460218c.js create mode 100644 examples/ember-cli/todomvc/dist/assets/todomvc-d41d8cd98f00b204e9800998ecf8427e.css create mode 100644 examples/ember-cli/todomvc/dist/assets/vendor-7b5c98520910afa58d74e05ec86cd873.css create mode 100644 examples/ember-cli/todomvc/dist/assets/vendor-fe6aaf6bf08a00247e9bb45b00c6c98c.js create mode 100644 examples/ember-cli/todomvc/dist/crossdomain.xml create mode 100644 examples/ember-cli/todomvc/dist/index.html create mode 100644 examples/ember-cli/todomvc/dist/robots.txt create mode 100644 examples/ember-cli/todomvc/ember-cli-build.js create mode 100644 examples/ember-cli/todomvc/package.json create mode 100644 examples/ember-cli/todomvc/public/crossdomain.xml create mode 100644 examples/ember-cli/todomvc/public/robots.txt create mode 100644 examples/ember-cli/todomvc/testem.js create mode 100644 examples/ember-cli/todomvc/tests/.jshintrc create mode 100644 examples/ember-cli/todomvc/tests/helpers/destroy-app.js create mode 100644 examples/ember-cli/todomvc/tests/helpers/module-for-acceptance.js create mode 100644 examples/ember-cli/todomvc/tests/helpers/resolver.js create mode 100644 examples/ember-cli/todomvc/tests/helpers/start-app.js create mode 100644 examples/ember-cli/todomvc/tests/index.html create mode 100644 examples/ember-cli/todomvc/tests/integration/.gitkeep create mode 100644 examples/ember-cli/todomvc/tests/test-helper.js create mode 100644 examples/ember-cli/todomvc/tests/unit/.gitkeep create mode 100644 examples/ember-cli/todomvc/vendor/.gitkeep create mode 100644 examples/ember-cli/todomvc/vendor/base.css create mode 100644 examples/ember-cli/todomvc/vendor/index.css diff --git a/.jscsrc b/.jscsrc index 44e5ca62bf..56e82e6578 100644 --- a/.jscsrc +++ b/.jscsrc @@ -34,6 +34,9 @@ "examples/aurelia/jspm_packages/**/*.js", "examples/duel/www/**", "examples/duel/src/main/webapp/js/lib/**", + "examples/ember-cli/todomvc/dist/**/*.js", + "examples/ember-cli/todomvc/testem.js", + "examples/ember-cli/assets/**/*.js", "examples/humble/js/**", "examples/js_of_ocaml/js/*.js", "examples/polymer/elements/elements.build.js", diff --git a/examples/ember-cli/assets b/examples/ember-cli/assets new file mode 120000 index 0000000000..e69c06ddf9 --- /dev/null +++ b/examples/ember-cli/assets @@ -0,0 +1 @@ +todomvc/dist/assets/ \ No newline at end of file diff --git a/examples/ember-cli/crossdomain.xml b/examples/ember-cli/crossdomain.xml new file mode 100644 index 0000000000..0c16a7a07b --- /dev/null +++ b/examples/ember-cli/crossdomain.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + diff --git a/examples/ember-cli/index.html b/examples/ember-cli/index.html new file mode 120000 index 0000000000..d3c1e994ea --- /dev/null +++ b/examples/ember-cli/index.html @@ -0,0 +1 @@ +todomvc/dist/index.html \ No newline at end of file diff --git a/examples/ember-cli/robots.txt b/examples/ember-cli/robots.txt new file mode 100644 index 0000000000..f5916452e5 --- /dev/null +++ b/examples/ember-cli/robots.txt @@ -0,0 +1,3 @@ +# http://www.robotstxt.org +User-agent: * +Disallow: diff --git a/examples/ember-cli/todomvc/.bowerrc b/examples/ember-cli/todomvc/.bowerrc new file mode 100644 index 0000000000..959e1696e7 --- /dev/null +++ b/examples/ember-cli/todomvc/.bowerrc @@ -0,0 +1,4 @@ +{ + "directory": "bower_components", + "analytics": false +} diff --git a/examples/ember-cli/todomvc/.editorconfig b/examples/ember-cli/todomvc/.editorconfig new file mode 100644 index 0000000000..47c5438403 --- /dev/null +++ b/examples/ember-cli/todomvc/.editorconfig @@ -0,0 +1,34 @@ +# EditorConfig helps developers define and maintain consistent +# coding styles between different editors and IDEs +# editorconfig.org + +root = true + + +[*] +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +indent_style = space +indent_size = 2 + +[*.js] +indent_style = space +indent_size = 2 + +[*.hbs] +insert_final_newline = false +indent_style = space +indent_size = 2 + +[*.css] +indent_style = space +indent_size = 2 + +[*.html] +indent_style = space +indent_size = 2 + +[*.{diff,md}] +trim_trailing_whitespace = false diff --git a/examples/ember-cli/todomvc/.ember-cli b/examples/ember-cli/todomvc/.ember-cli new file mode 100644 index 0000000000..ee64cfed2a --- /dev/null +++ b/examples/ember-cli/todomvc/.ember-cli @@ -0,0 +1,9 @@ +{ + /** + Ember CLI sends analytics information by default. The data is completely + anonymous, but there are times when you might want to disable this behavior. + + Setting `disableAnalytics` to true will prevent any data from being sent. + */ + "disableAnalytics": false +} diff --git a/examples/ember-cli/todomvc/.gitignore b/examples/ember-cli/todomvc/.gitignore new file mode 100644 index 0000000000..be09e038b7 --- /dev/null +++ b/examples/ember-cli/todomvc/.gitignore @@ -0,0 +1,17 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +# /dist +/tmp + +# dependencies +/node_modules +/bower_components + +# misc +/.sass-cache +/connect.lock +/coverage/* +/libpeerconnection.log +npm-debug.log +testem.log diff --git a/examples/ember-cli/todomvc/.jshintrc b/examples/ember-cli/todomvc/.jshintrc new file mode 100644 index 0000000000..08096effaa --- /dev/null +++ b/examples/ember-cli/todomvc/.jshintrc @@ -0,0 +1,32 @@ +{ + "predef": [ + "document", + "window", + "-Promise" + ], + "browser": true, + "boss": true, + "curly": true, + "debug": false, + "devel": true, + "eqeqeq": true, + "evil": true, + "forin": false, + "immed": false, + "laxbreak": false, + "newcap": true, + "noarg": true, + "noempty": false, + "nonew": false, + "nomen": false, + "onevar": false, + "plusplus": false, + "regexp": false, + "undef": true, + "sub": true, + "strict": false, + "white": false, + "eqnull": true, + "esnext": true, + "unused": true +} diff --git a/examples/ember-cli/todomvc/.travis.yml b/examples/ember-cli/todomvc/.travis.yml new file mode 100644 index 0000000000..64533bea89 --- /dev/null +++ b/examples/ember-cli/todomvc/.travis.yml @@ -0,0 +1,22 @@ +--- +language: node_js +node_js: + - "4" + +sudo: false + +cache: + directories: + - node_modules + +before_install: + - npm config set spin false + - npm install -g bower + - npm install phantomjs-prebuilt + +install: + - npm install + - bower install + +script: + - npm test diff --git a/examples/ember-cli/todomvc/.watchmanconfig b/examples/ember-cli/todomvc/.watchmanconfig new file mode 100644 index 0000000000..e7834e3e4f --- /dev/null +++ b/examples/ember-cli/todomvc/.watchmanconfig @@ -0,0 +1,3 @@ +{ + "ignore_dirs": ["tmp", "dist"] +} diff --git a/examples/ember-cli/todomvc/README.md b/examples/ember-cli/todomvc/README.md new file mode 100644 index 0000000000..5bd8a83dbe --- /dev/null +++ b/examples/ember-cli/todomvc/README.md @@ -0,0 +1,15 @@ +# Ember.js TodoMVC Example using Ember CLI + +> A framework for creating ambitious web applications. + +> _[Ember.js - emberjs.com](http://emberjs.com)_ +> _[Ember CLI - ember-cli.com](http://ember-cli.com)_ + +## Note for people updating this app. + +The `index.html` and the `assets` folder in the parent folder as simlinks into the items with the +same names inside `dist`. The `dist` folder has to be checked in git and built for production. + +To work on this comment `` in the `app/index.html` +and uncommented it back before doing the production build. + diff --git a/examples/ember-cli/todomvc/app/app.js b/examples/ember-cli/todomvc/app/app.js new file mode 100644 index 0000000000..904926fede --- /dev/null +++ b/examples/ember-cli/todomvc/app/app.js @@ -0,0 +1,18 @@ +import Ember from 'ember'; +import Resolver from './resolver'; +import loadInitializers from 'ember-load-initializers'; +import config from './config/environment'; + +let App; + +Ember.MODEL_FACTORY_INJECTIONS = true; + +App = Ember.Application.extend({ + modulePrefix: config.modulePrefix, + podModulePrefix: config.podModulePrefix, + Resolver +}); + +loadInitializers(App, config.modulePrefix); + +export default App; diff --git a/examples/ember-cli/todomvc/app/components/.gitkeep b/examples/ember-cli/todomvc/app/components/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/ember-cli/todomvc/app/components/todo-item.js b/examples/ember-cli/todomvc/app/components/todo-item.js new file mode 100644 index 0000000000..a7bd01cee0 --- /dev/null +++ b/examples/ember-cli/todomvc/app/components/todo-item.js @@ -0,0 +1,49 @@ +import Ember from 'ember'; + +export default Ember.Component.extend({ + repo: Ember.inject.service(), + tagName: 'li', + editing: false, + classNameBindings: ['todo.completed', 'editing'], + + actions: { + startEditing() { + this.get('onStartEdit')(); + this.set('editing', true); + Ember.run.scheduleOnce('afterRender', this, 'focusInput'); + }, + + doneEditing(todoTitle) { + if (!this.get('editing')) { return; } + if (Ember.isBlank(todoTitle)) { + this.send('removeTodo'); + } else { + this.set('todo.title', todoTitle.trim()); + this.set('editing', false); + this.get('onEndEdit')(); + } + }, + + handleKeydown(e) { + if (e.keyCode === 13) { + e.target.blur(); + } else if (e.keyCode === 27) { + this.set('editing', false); + } + }, + + toggleCompleted(e) { + let todo = this.get('todo'); + Ember.set(todo, 'completed', e.target.checked); + this.get('repo').persist(); + }, + + removeTodo() { + this.get('repo').delete(this.get('todo')); + } + }, + + focusInput() { + this.element.querySelector('input.edit').focus(); + } +}); diff --git a/examples/ember-cli/todomvc/app/components/todo-list.js b/examples/ember-cli/todomvc/app/components/todo-list.js new file mode 100644 index 0000000000..c5009d0985 --- /dev/null +++ b/examples/ember-cli/todomvc/app/components/todo-list.js @@ -0,0 +1,27 @@ +import Ember from 'ember'; + +export default Ember.Component.extend({ + repo: Ember.inject.service(), + tagName: 'section', + elementId: 'main', + canToggle: true, + allCompleted: Ember.computed('todos.@each.completed', function () { + return this.get('todos').isEvery('completed'); + }), + + actions: { + enableToggle() { + this.set('canToggle', true); + }, + + disableToggle() { + this.set('canToggle', false); + }, + + toggleAll() { + let allCompleted = this.get('allCompleted'); + this.get('todos').forEach(todo => Ember.set(todo, 'completed', !allCompleted)); + this.get('repo').persist(); + } + } +}); diff --git a/examples/ember-cli/todomvc/app/controllers/active.js b/examples/ember-cli/todomvc/app/controllers/active.js new file mode 100644 index 0000000000..4b603f7886 --- /dev/null +++ b/examples/ember-cli/todomvc/app/controllers/active.js @@ -0,0 +1,5 @@ +import Ember from 'ember'; + +export default Ember.Controller.extend({ + todos: Ember.computed.filterBy('model', 'completed', false) +}); diff --git a/examples/ember-cli/todomvc/app/controllers/application.js b/examples/ember-cli/todomvc/app/controllers/application.js new file mode 100644 index 0000000000..7e010172e6 --- /dev/null +++ b/examples/ember-cli/todomvc/app/controllers/application.js @@ -0,0 +1,20 @@ +import Ember from 'ember'; + +export default Ember.Controller.extend({ + repo: Ember.inject.service(), + remaining: Ember.computed.filterBy('model', 'completed', false), + completed: Ember.computed.filterBy('model', 'completed'), + actions: { + createTodo(e) { + if (e.keyCode === 13 && !Ember.isBlank(e.target.value)) { + this.get('repo').add({ title: e.target.value.trim(), completed: false }); + e.target.value = ''; + } + }, + + clearCompleted() { + this.get('model').removeObjects(this.get('completed')); + this.get('repo').persist(); + } + } +}); diff --git a/examples/ember-cli/todomvc/app/controllers/completed.js b/examples/ember-cli/todomvc/app/controllers/completed.js new file mode 100644 index 0000000000..278324a07a --- /dev/null +++ b/examples/ember-cli/todomvc/app/controllers/completed.js @@ -0,0 +1,5 @@ +import Ember from 'ember'; + +export default Ember.Controller.extend({ + todos: Ember.computed.filterBy('model', 'completed', true) +}); diff --git a/examples/ember-cli/todomvc/app/helpers/gt.js b/examples/ember-cli/todomvc/app/helpers/gt.js new file mode 100644 index 0000000000..44df6782e4 --- /dev/null +++ b/examples/ember-cli/todomvc/app/helpers/gt.js @@ -0,0 +1,7 @@ +import Ember from 'ember'; + +export function gt([n1, n2]/*, hash*/) { + return n1 > n2; +} + +export default Ember.Helper.helper(gt); diff --git a/examples/ember-cli/todomvc/app/helpers/pluralize.js b/examples/ember-cli/todomvc/app/helpers/pluralize.js new file mode 100644 index 0000000000..feac8ff359 --- /dev/null +++ b/examples/ember-cli/todomvc/app/helpers/pluralize.js @@ -0,0 +1,8 @@ +import Ember from 'ember'; +import { pluralize } from 'ember-inflector'; + +export function pluralizeHelper([singular, count]/*, hash*/) { + return count === 1 ? singular : pluralize(singular); +} + +export default Ember.Helper.helper(pluralizeHelper); diff --git a/examples/ember-cli/todomvc/app/index.html b/examples/ember-cli/todomvc/app/index.html new file mode 100644 index 0000000000..04aac1eba5 --- /dev/null +++ b/examples/ember-cli/todomvc/app/index.html @@ -0,0 +1,25 @@ + + + + + + Todomvc + + + + {{content-for "head"}} + + + + + {{content-for "head-footer"}} + + + {{content-for "body"}} + + + + + {{content-for "body-footer"}} + + diff --git a/examples/ember-cli/todomvc/app/models/.gitkeep b/examples/ember-cli/todomvc/app/models/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/ember-cli/todomvc/app/resolver.js b/examples/ember-cli/todomvc/app/resolver.js new file mode 100644 index 0000000000..2fb563d6c0 --- /dev/null +++ b/examples/ember-cli/todomvc/app/resolver.js @@ -0,0 +1,3 @@ +import Resolver from 'ember-resolver'; + +export default Resolver; diff --git a/examples/ember-cli/todomvc/app/router.js b/examples/ember-cli/todomvc/app/router.js new file mode 100644 index 0000000000..80c146d320 --- /dev/null +++ b/examples/ember-cli/todomvc/app/router.js @@ -0,0 +1,13 @@ +import Ember from 'ember'; +import config from './config/environment'; + +const Router = Ember.Router.extend({ + location: config.locationType +}); + +Router.map(function () { + this.route('active'); + this.route('completed'); +}); + +export default Router; diff --git a/examples/ember-cli/todomvc/app/routes/.gitkeep b/examples/ember-cli/todomvc/app/routes/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/ember-cli/todomvc/app/routes/application.js b/examples/ember-cli/todomvc/app/routes/application.js new file mode 100644 index 0000000000..b7a85e5c51 --- /dev/null +++ b/examples/ember-cli/todomvc/app/routes/application.js @@ -0,0 +1,8 @@ +import Ember from 'ember'; + +export default Ember.Route.extend({ + repo: Ember.inject.service(), + model() { + return this.get('repo').findAll(); + } +}); diff --git a/examples/ember-cli/todomvc/app/services/repo.js b/examples/ember-cli/todomvc/app/services/repo.js new file mode 100644 index 0000000000..259827f79e --- /dev/null +++ b/examples/ember-cli/todomvc/app/services/repo.js @@ -0,0 +1,26 @@ +import Ember from 'ember'; + +export default Ember.Service.extend({ + lastId: 0, + data: null, + findAll() { + return this.get('data') || + this.set('data', JSON.parse(window.localStorage.getItem('todos') || '[]')); + }, + + add(attrs) { + let todo = Object.assign({ id: this.incrementProperty('lastId') }, attrs); + this.get('data').pushObject(todo); + this.persist(); + return todo; + }, + + delete(todo) { + this.get('data').removeObject(todo); + this.persist(); + }, + + persist() { + window.localStorage.setItem('todos', JSON.stringify(this.get('data'))); + } +}); diff --git a/examples/ember-cli/todomvc/app/styles/app.css b/examples/ember-cli/todomvc/app/styles/app.css new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/ember-cli/todomvc/app/templates/active.hbs b/examples/ember-cli/todomvc/app/templates/active.hbs new file mode 100644 index 0000000000..de244f487d --- /dev/null +++ b/examples/ember-cli/todomvc/app/templates/active.hbs @@ -0,0 +1 @@ +{{todo-list todos=todos}} \ No newline at end of file diff --git a/examples/ember-cli/todomvc/app/templates/application.hbs b/examples/ember-cli/todomvc/app/templates/application.hbs new file mode 100644 index 0000000000..519b620cd6 --- /dev/null +++ b/examples/ember-cli/todomvc/app/templates/application.hbs @@ -0,0 +1,29 @@ +
+ + {{outlet}} + {{#if (gt model.length 0)}} +
+ {{remaining.length}} {{pluralize 'item' remaining.length}} left +
    +
  • {{#link-to "index" activeClass="selected"}}All{{/link-to}}
  • +
  • {{#link-to "active" activeClass="selected"}}Active{{/link-to}}
  • +
  • {{#link-to "completed" activeClass="selected"}}Completed{{/link-to}}
  • +
+ {{#if completed.length}} + + {{/if}} +
+ {{/if}} +
+ \ No newline at end of file diff --git a/examples/ember-cli/todomvc/app/templates/completed.hbs b/examples/ember-cli/todomvc/app/templates/completed.hbs new file mode 100644 index 0000000000..de244f487d --- /dev/null +++ b/examples/ember-cli/todomvc/app/templates/completed.hbs @@ -0,0 +1 @@ +{{todo-list todos=todos}} \ No newline at end of file diff --git a/examples/ember-cli/todomvc/app/templates/components/.gitkeep b/examples/ember-cli/todomvc/app/templates/components/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/ember-cli/todomvc/app/templates/components/todo-item.hbs b/examples/ember-cli/todomvc/app/templates/components/todo-item.hbs new file mode 100644 index 0000000000..c06975e865 --- /dev/null +++ b/examples/ember-cli/todomvc/app/templates/components/todo-item.hbs @@ -0,0 +1,6 @@ +
+ + + +
+ \ No newline at end of file diff --git a/examples/ember-cli/todomvc/app/templates/components/todo-list.hbs b/examples/ember-cli/todomvc/app/templates/components/todo-list.hbs new file mode 100644 index 0000000000..309d07a1f4 --- /dev/null +++ b/examples/ember-cli/todomvc/app/templates/components/todo-list.hbs @@ -0,0 +1,10 @@ +{{#if todos.length}} + {{#if canToggle}} + + {{/if}} + +{{/if}} diff --git a/examples/ember-cli/todomvc/app/templates/index.hbs b/examples/ember-cli/todomvc/app/templates/index.hbs new file mode 100644 index 0000000000..7d5565c36a --- /dev/null +++ b/examples/ember-cli/todomvc/app/templates/index.hbs @@ -0,0 +1,3 @@ +{{#if model.length}} + {{todo-list todos=model}} +{{/if}} diff --git a/examples/ember-cli/todomvc/bower.json b/examples/ember-cli/todomvc/bower.json new file mode 100644 index 0000000000..220a0014a2 --- /dev/null +++ b/examples/ember-cli/todomvc/bower.json @@ -0,0 +1,9 @@ +{ + "name": "todomvc", + "dependencies": { + "ember": "~2.6.0", + "ember-cli-shims": "0.1.1", + "ember-cli-test-loader": "0.2.2", + "ember-qunit-notifications": "0.1.0" + } +} diff --git a/examples/ember-cli/todomvc/config/environment.js b/examples/ember-cli/todomvc/config/environment.js new file mode 100644 index 0000000000..c82070162f --- /dev/null +++ b/examples/ember-cli/todomvc/config/environment.js @@ -0,0 +1,47 @@ +/* jshint node: true */ + +module.exports = function (environment) { + var ENV = { + modulePrefix: 'todomvc', + environment: environment, + baseURL: null, + locationType: 'auto', + EmberENV: { + FEATURES: { + // Here you can enable experimental features on an ember canary build + // e.g. 'with-controller': true + } + }, + + APP: { + // Here you can pass flags/options to your application instance + // when it is created + } + }; + + // if (environment === 'development') { + // ENV.APP.LOG_RESOLVER = true; + // ENV.APP.LOG_ACTIVE_GENERATION = true; + // ENV.APP.LOG_TRANSITIONS = true; + // ENV.APP.LOG_TRANSITIONS_INTERNAL = true; + // ENV.APP.LOG_VIEW_LOOKUPS = true; + // } + + if (environment === 'test') { + // Testem prefers this... + ENV.baseURL = '/'; + ENV.locationType = 'none'; + + // keep test console output quieter + ENV.APP.LOG_ACTIVE_GENERATION = false; + ENV.APP.LOG_VIEW_LOOKUPS = false; + + ENV.APP.rootElement = '#ember-testing'; + } + + // if (environment === 'production') { + + // } + + return ENV; +}; diff --git a/examples/ember-cli/todomvc/dist/assets/todomvc-abee913429a66e32e34b282e3460218c.js b/examples/ember-cli/todomvc/dist/assets/todomvc-abee913429a66e32e34b282e3460218c.js new file mode 100644 index 0000000000..4cd79b6b3b --- /dev/null +++ b/examples/ember-cli/todomvc/dist/assets/todomvc-abee913429a66e32e34b282e3460218c.js @@ -0,0 +1 @@ +"use strict";define("todomvc/app",["exports","ember","todomvc/resolver","ember-load-initializers","todomvc/config/environment"],function(e,t,n,r,a){var o=void 0;t["default"].MODEL_FACTORY_INJECTIONS=!0,o=t["default"].Application.extend({modulePrefix:a["default"].modulePrefix,podModulePrefix:a["default"].podModulePrefix,Resolver:n["default"]}),(0,r["default"])(o,a["default"].modulePrefix),e["default"]=o}),define("todomvc/components/app-version",["exports","ember-cli-app-version/components/app-version","todomvc/config/environment"],function(e,t,n){var r=n["default"].APP.name,a=n["default"].APP.version;e["default"]=t["default"].extend({version:a,name:r})}),define("todomvc/components/todo-item",["exports","ember"],function(e,t){e["default"]=t["default"].Component.extend({repo:t["default"].inject.service(),tagName:"li",editing:!1,classNameBindings:["todo.completed","editing"],actions:{startEditing:function(){this.get("onStartEdit")(),this.set("editing",!0),t["default"].run.scheduleOnce("afterRender",this,"focusInput")},doneEditing:function(e){this.get("editing")&&(t["default"].isBlank(e)?this.send("removeTodo"):(this.set("todo.title",e.trim()),this.set("editing",!1),this.get("onEndEdit")()))},handleKeydown:function(e){13===e.keyCode?e.target.blur():27===e.keyCode&&this.set("editing",!1)},toggleCompleted:function(e){var n=this.get("todo");t["default"].set(n,"completed",e.target.checked),this.get("repo").persist()},removeTodo:function(){this.get("repo")["delete"](this.get("todo"))}},focusInput:function(){this.element.querySelector("input.edit").focus()}})}),define("todomvc/components/todo-list",["exports","ember"],function(e,t){e["default"]=t["default"].Component.extend({repo:t["default"].inject.service(),tagName:"section",elementId:"main",canToggle:!0,allCompleted:t["default"].computed("todos.@each.completed",function(){return this.get("todos").isEvery("completed")}),actions:{enableToggle:function(){this.set("canToggle",!0)},disableToggle:function(){this.set("canToggle",!1)},toggleAll:function(){var e=this.get("allCompleted");this.get("todos").forEach(function(n){return t["default"].set(n,"completed",!e)}),this.get("repo").persist()}}})}),define("todomvc/controllers/active",["exports","ember"],function(e,t){e["default"]=t["default"].Controller.extend({todos:t["default"].computed.filterBy("model","completed",!1)})}),define("todomvc/controllers/application",["exports","ember"],function(e,t){e["default"]=t["default"].Controller.extend({repo:t["default"].inject.service(),remaining:t["default"].computed.filterBy("model","completed",!1),completed:t["default"].computed.filterBy("model","completed"),actions:{createTodo:function(e){13!==e.keyCode||t["default"].isBlank(e.target.value)||(this.get("repo").add({title:e.target.value.trim(),completed:!1}),e.target.value="")},clearCompleted:function(){this.get("model").removeObjects(this.get("completed")),this.get("repo").persist()}}})}),define("todomvc/controllers/completed",["exports","ember"],function(e,t){e["default"]=t["default"].Controller.extend({todos:t["default"].computed.filterBy("model","completed",!0)})}),define("todomvc/helpers/gt",["exports","ember"],function(e,t){function n(e){var t=r(e,2),n=t[0],a=t[1];return n>a}var r=function(){function e(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var l,i=e[Symbol.iterator]();!(r=(l=i.next()).done)&&(n.push(l.value),!t||n.length!==t);r=!0);}catch(d){a=!0,o=d}finally{try{!r&&i["return"]&&i["return"]()}finally{if(a)throw o}}return n}return function(t,n){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();e.gt=n,e["default"]=t["default"].Helper.helper(n)}),define("todomvc/helpers/pluralize",["exports","ember","ember-inflector"],function(e,t,n){function r(e){var t=a(e,2),r=t[0],o=t[1];return 1===o?r:(0,n.pluralize)(r)}var a=function(){function e(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var l,i=e[Symbol.iterator]();!(r=(l=i.next()).done)&&(n.push(l.value),!t||n.length!==t);r=!0);}catch(d){a=!0,o=d}finally{try{!r&&i["return"]&&i["return"]()}finally{if(a)throw o}}return n}return function(t,n){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();e.pluralizeHelper=r,e["default"]=t["default"].Helper.helper(r)}),define("todomvc/helpers/singularize",["exports","ember-inflector/lib/helpers/singularize"],function(e,t){e["default"]=t["default"]}),define("todomvc/initializers/app-version",["exports","ember-cli-app-version/initializer-factory","todomvc/config/environment"],function(e,t,n){e["default"]={name:"App Version",initialize:(0,t["default"])(n["default"].APP.name,n["default"].APP.version)}}),define("todomvc/initializers/container-debug-adapter",["exports","ember-resolver/container-debug-adapter"],function(e,t){e["default"]={name:"container-debug-adapter",initialize:function(){var e=arguments[1]||arguments[0];e.register("container-debug-adapter:main",t["default"]),e.inject("container-debug-adapter:main","namespace","application:main")}}}),define("todomvc/initializers/export-application-global",["exports","ember","todomvc/config/environment"],function(e,t,n){function r(){var e=arguments[1]||arguments[0];if(n["default"].exportApplicationGlobal!==!1){var r,a=n["default"].exportApplicationGlobal;r="string"==typeof a?a:t["default"].String.classify(n["default"].modulePrefix),window[r]||(window[r]=e,e.reopen({willDestroy:function(){this._super.apply(this,arguments),delete window[r]}}))}}e.initialize=r,e["default"]={name:"export-application-global",initialize:r}}),define("todomvc/resolver",["exports","ember-resolver"],function(e,t){e["default"]=t["default"]}),define("todomvc/router",["exports","ember","todomvc/config/environment"],function(e,t,n){var r=t["default"].Router.extend({location:n["default"].locationType});r.map(function(){this.route("active"),this.route("completed")}),e["default"]=r}),define("todomvc/routes/application",["exports","ember"],function(e,t){e["default"]=t["default"].Route.extend({repo:t["default"].inject.service(),model:function(){return this.get("repo").findAll()}})}),define("todomvc/services/ajax",["exports","ember-ajax/services/ajax"],function(e,t){Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t["default"]}})}),define("todomvc/services/repo",["exports","ember"],function(e,t){e["default"]=t["default"].Service.extend({lastId:0,data:null,findAll:function(){return this.get("data")||this.set("data",JSON.parse(window.localStorage.getItem("todos")||"[]"))},add:function(e){var t=Object.assign({id:this.incrementProperty("lastId")},e);return this.get("data").pushObject(t),this.persist(),t},"delete":function(e){this.get("data").removeObject(e),this.persist()},persist:function(){window.localStorage.setItem("todos",JSON.stringify(this.get("data")))}})}),define("todomvc/templates/active",["exports"],function(e){e["default"]=Ember.HTMLBars.template(function(){return{meta:{fragmentReason:{name:"missing-wrapper",problems:["wrong-type"]},revision:"Ember@2.6.0",loc:{source:null,start:{line:1,column:0},end:{line:1,column:25}},moduleName:"todomvc/templates/active.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createComment("");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var r=new Array(1);return r[0]=e.createMorphAt(t,0,0,n),e.insertBoundary(t,0),e.insertBoundary(t,null),r},statements:[["inline","todo-list",[],["todos",["subexpr","@mut",[["get","todos",["loc",[null,[1,18],[1,23]]]]],[],[]]],["loc",[null,[1,0],[1,25]]]]],locals:[],templates:[]}}())}),define("todomvc/templates/application",["exports"],function(e){e["default"]=Ember.HTMLBars.template(function(){var e=function(){var e=function(){return{meta:{fragmentReason:!1,revision:"Ember@2.6.0",loc:{source:null,start:{line:11,column:14},end:{line:11,column:60}},moduleName:"todomvc/templates/application.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode("All");return e.appendChild(t,n),t},buildRenderNodes:function(){return[]},statements:[],locals:[],templates:[]}}(),t=function(){return{meta:{fragmentReason:!1,revision:"Ember@2.6.0",loc:{source:null,start:{line:12,column:14},end:{line:12,column:64}},moduleName:"todomvc/templates/application.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode("Active");return e.appendChild(t,n),t},buildRenderNodes:function(){return[]},statements:[],locals:[],templates:[]}}(),n=function(){return{meta:{fragmentReason:!1,revision:"Ember@2.6.0",loc:{source:null,start:{line:13,column:14},end:{line:13,column:70}},moduleName:"todomvc/templates/application.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode("Completed");return e.appendChild(t,n),t},buildRenderNodes:function(){return[]},statements:[],locals:[],templates:[]}}(),r=function(){return{meta:{fragmentReason:!1,revision:"Ember@2.6.0",loc:{source:null,start:{line:15,column:8},end:{line:17,column:8}},moduleName:"todomvc/templates/application.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode(" ");e.appendChild(t,n);var n=e.createElement("button");e.setAttribute(n,"id","clear-completed");var r=e.createTextNode("Clear completed");e.appendChild(n,r),e.appendChild(t,n);var n=e.createTextNode("\n");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var r=e.childAt(t,[1]),a=new Array(1);return a[0]=e.createAttrMorph(r,"onclick"),a},statements:[["attribute","onclick",["subexpr","action",["clearCompleted"],[],["loc",[null,[16,47],[16,74]]]]]],locals:[],templates:[]}}();return{meta:{fragmentReason:!1,revision:"Ember@2.6.0",loc:{source:null,start:{line:7,column:4},end:{line:19,column:4}},moduleName:"todomvc/templates/application.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode(" ");e.appendChild(t,n);var n=e.createElement("footer");e.setAttribute(n,"id","footer");var r=e.createTextNode("\n ");e.appendChild(n,r);var r=e.createElement("span");e.setAttribute(r,"id","todo-count");var a=e.createElement("strong"),o=e.createComment("");e.appendChild(a,o),e.appendChild(r,a);var a=e.createTextNode(" ");e.appendChild(r,a);var a=e.createComment("");e.appendChild(r,a);var a=e.createTextNode(" left");e.appendChild(r,a),e.appendChild(n,r);var r=e.createTextNode("\n ");e.appendChild(n,r);var r=e.createElement("ul");e.setAttribute(r,"id","filters");var a=e.createTextNode("\n ");e.appendChild(r,a);var a=e.createElement("li"),o=e.createComment("");e.appendChild(a,o),e.appendChild(r,a);var a=e.createTextNode("\n ");e.appendChild(r,a);var a=e.createElement("li"),o=e.createComment("");e.appendChild(a,o),e.appendChild(r,a);var a=e.createTextNode("\n ");e.appendChild(r,a);var a=e.createElement("li"),o=e.createComment("");e.appendChild(a,o),e.appendChild(r,a);var a=e.createTextNode("\n ");e.appendChild(r,a),e.appendChild(n,r);var r=e.createTextNode("\n");e.appendChild(n,r);var r=e.createComment("");e.appendChild(n,r);var r=e.createTextNode(" ");e.appendChild(n,r),e.appendChild(t,n);var n=e.createTextNode("\n");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var r=e.childAt(t,[1]),a=e.childAt(r,[1]),o=e.childAt(r,[3]),l=new Array(6);return l[0]=e.createMorphAt(e.childAt(a,[0]),0,0),l[1]=e.createMorphAt(a,2,2),l[2]=e.createMorphAt(e.childAt(o,[1]),0,0),l[3]=e.createMorphAt(e.childAt(o,[3]),0,0),l[4]=e.createMorphAt(e.childAt(o,[5]),0,0),l[5]=e.createMorphAt(r,5,5),l},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]]]]],locals:[],templates:[e,t,n,r]}}();return{meta:{fragmentReason:{name:"missing-wrapper",problems:["multiple-nodes"]},revision:"Ember@2.6.0",loc:{source:null,start:{line:1,column:0},end:{line:29,column:9}},moduleName:"todomvc/templates/application.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createElement("section");e.setAttribute(n,"id","todoapp");var r=e.createTextNode("\n ");e.appendChild(n,r);var r=e.createElement("header");e.setAttribute(r,"id","header");var a=e.createTextNode("\n ");e.appendChild(r,a);var a=e.createElement("h1"),o=e.createTextNode("todos");e.appendChild(a,o),e.appendChild(r,a);var a=e.createTextNode("\n ");e.appendChild(r,a);var a=e.createElement("input");e.setAttribute(a,"type","text"),e.setAttribute(a,"id","new-todo"),e.setAttribute(a,"placeholder","What needs to be done?"),e.setAttribute(a,"autofocus",""),e.appendChild(r,a);var a=e.createTextNode("\n ");e.appendChild(r,a),e.appendChild(n,r);var r=e.createTextNode("\n ");e.appendChild(n,r);var r=e.createComment("");e.appendChild(n,r);var r=e.createTextNode("\n");e.appendChild(n,r);var r=e.createComment("");e.appendChild(n,r),e.appendChild(t,n);var n=e.createTextNode("\n");e.appendChild(t,n);var n=e.createElement("footer");e.setAttribute(n,"id","info");var r=e.createTextNode("\n ");e.appendChild(n,r);var r=e.createElement("p"),a=e.createTextNode("Double-click to edit a todo");e.appendChild(r,a),e.appendChild(n,r);var r=e.createTextNode("\n ");e.appendChild(n,r);var r=e.createElement("p"),a=e.createTextNode("\n Created by\n ");e.appendChild(r,a);var a=e.createElement("a");e.setAttribute(a,"href","http://github.com/cibernox");var o=e.createTextNode("Miguel Camba");e.appendChild(a,o),e.appendChild(r,a);var a=e.createTextNode(",\n ");e.appendChild(r,a);var a=e.createElement("a");e.setAttribute(a,"href","http://github.com/addyosmani");var o=e.createTextNode("Addy Osmani");e.appendChild(a,o),e.appendChild(r,a);var a=e.createTextNode("\n ");e.appendChild(r,a),e.appendChild(n,r);var r=e.createTextNode("\n ");e.appendChild(n,r);var r=e.createElement("p"),a=e.createTextNode("Part of ");e.appendChild(r,a);var a=e.createElement("a");e.setAttribute(a,"href","http://todomvc.com");var o=e.createTextNode("TodoMVC");e.appendChild(a,o),e.appendChild(r,a),e.appendChild(n,r);var r=e.createTextNode("\n");return e.appendChild(n,r),e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var r=e.childAt(t,[0]),a=e.childAt(r,[1,3]),o=new Array(3);return o[0]=e.createAttrMorph(a,"onkeydown"),o[1]=e.createMorphAt(r,3,3),o[2]=e.createMorphAt(r,5,5),o},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]]]]],locals:[],templates:[e]}}())}),define("todomvc/templates/completed",["exports"],function(e){e["default"]=Ember.HTMLBars.template(function(){return{meta:{fragmentReason:{name:"missing-wrapper",problems:["wrong-type"]},revision:"Ember@2.6.0",loc:{source:null,start:{line:1,column:0},end:{line:1,column:25}},moduleName:"todomvc/templates/completed.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createComment("");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var r=new Array(1);return r[0]=e.createMorphAt(t,0,0,n),e.insertBoundary(t,0),e.insertBoundary(t,null),r},statements:[["inline","todo-list",[],["todos",["subexpr","@mut",[["get","todos",["loc",[null,[1,18],[1,23]]]]],[],[]]],["loc",[null,[1,0],[1,25]]]]],locals:[],templates:[]}}())}),define("todomvc/templates/components/todo-item",["exports"],function(e){e["default"]=Ember.HTMLBars.template(function(){return{meta:{fragmentReason:{name:"missing-wrapper",problems:["multiple-nodes"]},revision:"Ember@2.6.0",loc:{source:null,start:{line:1,column:0},end:{line:6,column:153}},moduleName:"todomvc/templates/components/todo-item.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createElement("div");e.setAttribute(n,"class","view");var r=e.createTextNode("\n ");e.appendChild(n,r);var r=e.createElement("input");e.setAttribute(r,"type","checkbox"),e.setAttribute(r,"class","toggle"),e.appendChild(n,r);var r=e.createTextNode("\n ");e.appendChild(n,r);var r=e.createElement("label"),a=e.createComment("");e.appendChild(r,a),e.appendChild(n,r);var r=e.createTextNode("\n ");e.appendChild(n,r);var r=e.createElement("button");e.setAttribute(r,"class","destroy"),e.appendChild(n,r);var r=e.createTextNode("\n");e.appendChild(n,r),e.appendChild(t,n);var n=e.createTextNode("\n");e.appendChild(t,n);var n=e.createElement("input");return e.setAttribute(n,"type","text"),e.setAttribute(n,"class","edit"),e.setAttribute(n,"autofocus",""),e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var r=e.childAt(t,[0]),a=e.childAt(r,[1]);this.cachedFragment&&e.repairClonedNode(a,[],!0);var o=e.childAt(r,[3]),l=e.childAt(r,[5]),i=e.childAt(t,[2]),d=new Array(8);return d[0]=e.createAttrMorph(a,"checked"),d[1]=e.createAttrMorph(a,"onchange"),d[2]=e.createAttrMorph(o,"ondblclick"),d[3]=e.createMorphAt(o,0,0),d[4]=e.createAttrMorph(l,"onclick"),d[5]=e.createAttrMorph(i,"value"),d[6]=e.createAttrMorph(i,"onblur"),d[7]=e.createAttrMorph(i,"onkeydown"),d},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]]]]]],locals:[],templates:[]}}())}),define("todomvc/templates/components/todo-list",["exports"],function(e){e["default"]=Ember.HTMLBars.template(function(){var e=function(){var e=function(){return{meta:{fragmentReason:!1,revision:"Ember@2.6.0",loc:{source:null,start:{line:2,column:2},end:{line:4,column:2}},moduleName:"todomvc/templates/components/todo-list.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode(" ");e.appendChild(t,n);var n=e.createElement("input");e.setAttribute(n,"type","checkbox"),e.setAttribute(n,"id","toggle-all"),e.appendChild(t,n);var n=e.createTextNode("\n");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var r=e.childAt(t,[1]);this.cachedFragment&&e.repairClonedNode(r,[],!0);var a=new Array(2);return a[0]=e.createAttrMorph(r,"checked"),a[1]=e.createAttrMorph(r,"onchange"),a},statements:[["attribute","checked",["get","allCompleted",["loc",[null,[3,53],[3,65]]]]],["attribute","onchange",["subexpr","action",["toggleAll"],[],["loc",[null,[3,77],[3,99]]]]]],locals:[],templates:[]}}(),t=function(){return{meta:{fragmentReason:!1,revision:"Ember@2.6.0",loc:{source:null,start:{line:6,column:4},end:{line:8,column:4}},moduleName:"todomvc/templates/components/todo-list.hbs"},isEmpty:!1,arity:1,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode(" ");e.appendChild(t,n);var n=e.createComment("");e.appendChild(t,n);var n=e.createTextNode("\n");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var r=new Array(1);return r[0]=e.createMorphAt(t,1,1,n),r},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]]]]],locals:["todo"],templates:[]}}();return{meta:{fragmentReason:{name:"missing-wrapper",problems:["wrong-type","multiple-nodes"]},revision:"Ember@2.6.0",loc:{source:null,start:{line:1,column:0},end:{line:10,column:0}},moduleName:"todomvc/templates/components/todo-list.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createComment("");e.appendChild(t,n);var n=e.createTextNode(" ");e.appendChild(t,n);var n=e.createElement("ul");e.setAttribute(n,"id","todo-list"),e.setAttribute(n,"class","todo-list");var r=e.createTextNode("\n");e.appendChild(n,r);var r=e.createComment("");e.appendChild(n,r);var r=e.createTextNode(" ");e.appendChild(n,r),e.appendChild(t,n);var n=e.createTextNode("\n");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var r=new Array(2);return r[0]=e.createMorphAt(t,0,0,n),r[1]=e.createMorphAt(e.childAt(t,[2]),1,1),e.insertBoundary(t,0),r},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]]]]],locals:[],templates:[e,t]}}();return{meta:{fragmentReason:{name:"missing-wrapper",problems:["wrong-type"]},revision:"Ember@2.6.0",loc:{source:null,start:{line:1,column:0},end:{line:11,column:0}},moduleName:"todomvc/templates/components/todo-list.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createComment("");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var r=new Array(1);return r[0]=e.createMorphAt(t,0,0,n),e.insertBoundary(t,0),e.insertBoundary(t,null),r},statements:[["block","if",[["get","todos.length",["loc",[null,[1,6],[1,18]]]]],[],0,null,["loc",[null,[1,0],[10,7]]]]],locals:[],templates:[e]}}())}),define("todomvc/templates/index",["exports"],function(e){e["default"]=Ember.HTMLBars.template(function(){var e=function(){return{meta:{fragmentReason:{name:"missing-wrapper",problems:["wrong-type"]},revision:"Ember@2.6.0",loc:{source:null,start:{line:1,column:0},end:{line:3,column:0}},moduleName:"todomvc/templates/index.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode(" ");e.appendChild(t,n);var n=e.createComment("");e.appendChild(t,n);var n=e.createTextNode("\n");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var r=new Array(1);return r[0]=e.createMorphAt(t,1,1,n),r},statements:[["inline","todo-list",[],["todos",["subexpr","@mut",[["get","model",["loc",[null,[2,20],[2,25]]]]],[],[]]],["loc",[null,[2,2],[2,27]]]]],locals:[],templates:[]}}();return{meta:{fragmentReason:{name:"missing-wrapper",problems:["wrong-type"]},revision:"Ember@2.6.0",loc:{source:null,start:{line:1,column:0},end:{line:4,column:0}},moduleName:"todomvc/templates/index.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createComment("");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var r=new Array(1);return r[0]=e.createMorphAt(t,0,0,n),e.insertBoundary(t,0),e.insertBoundary(t,null),r},statements:[["block","if",[["get","model.length",["loc",[null,[1,6],[1,18]]]]],[],0,null,["loc",[null,[1,0],[3,7]]]]],locals:[],templates:[e]}}())}),define("todomvc/config/environment",["ember"],function(e){var t="todomvc";try{var n=t+"/config/environment",r=e["default"].$('meta[name="'+n+'"]').attr("content"),a=JSON.parse(unescape(r));return{"default":a}}catch(o){throw new Error('Could not read config from meta tag with name "'+n+'".')}}),runningTests||require("todomvc/app")["default"].create({name:"todomvc",version:"0.0.0+b72d5e59"}); \ No newline at end of file diff --git a/examples/ember-cli/todomvc/dist/assets/todomvc-d41d8cd98f00b204e9800998ecf8427e.css b/examples/ember-cli/todomvc/dist/assets/todomvc-d41d8cd98f00b204e9800998ecf8427e.css new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/ember-cli/todomvc/dist/assets/vendor-7b5c98520910afa58d74e05ec86cd873.css b/examples/ember-cli/todomvc/dist/assets/vendor-7b5c98520910afa58d74e05ec86cd873.css new file mode 100644 index 0000000000..3f5cff98cf --- /dev/null +++ b/examples/ember-cli/todomvc/dist/assets/vendor-7b5c98520910afa58d74e05ec86cd873.css @@ -0,0 +1 @@ +#issue-count,.hidden,label[for=toggle-all]{display:none}#footer,#info,#todoapp h1,#toggle-all{text-align:center}hr{margin:20px 0;border:0;border-top:1px dashed #c5c5c5;border-bottom:1px dashed #f7f7f7}.learn a{font-weight:400;text-decoration:none;color:#b83f45}.learn a:hover{text-decoration:underline;color:#787e7e}.learn h3,.learn h4,.learn h5{margin:10px 0;font-weight:500;line-height:1.2;color:#000}.learn h3{font-size:24px}.learn h4{font-size:18px}.learn h5{margin-bottom:0;font-size:14px}.learn ul{padding:0;margin:0 0 30px 25px}.learn li{line-height:20px}.learn p{font-size:15px;font-weight:300;line-height:1.3;margin-top:0;margin-bottom:0}.quote p:after,.quote p:before{font-size:50px;opacity:.15;position:absolute}.quote{border:none;margin:20px 0 60px}.quote p{font-style:italic}.quote p:before{content:'“';top:-20px;left:3px}.quote p:after{content:'”';bottom:-42px;right:3px}.quote footer{position:absolute;bottom:-40px;right:0}.quote footer img{border-radius:3px}.quote footer a{margin-left:5px;vertical-align:middle}.speech-bubble{position:relative;padding:10px;background:rgba(0,0,0,.04);border-radius:5px}.speech-bubble:after{content:'';position:absolute;top:100%;right:30px;border:13px solid transparent;border-top-color:rgba(0,0,0,.04)}.learn-bar>.learn{position:absolute;width:272px;top:8px;left:-300px;padding:10px;border-radius:5px;background-color:rgba(255,255,255,.6);transition-property:left;transition-duration:.5s}#main,#new-todo,#todo-list li,#todoapp,.edit{position:relative}@media (min-width:899px){.learn-bar{width:auto;padding-left:300px}.learn-bar>.learn{left:8px}}body,button,html{padding:0;margin:0}button{border:0;background:0 0;font-size:100%;vertical-align:baseline;font-family:inherit;font-weight:inherit;color:inherit;-webkit-appearance:none;appearance:none;-webkit-font-smoothing:antialiased;-moz-font-smoothing:antialiased;font-smoothing:antialiased}body{font:14px 'Helvetica Neue',Helvetica,Arial,sans-serif;line-height:1.4em;background:#f5f5f5;color:#4d4d4d;min-width:230px;max-width:550px;margin:0 auto;-webkit-font-smoothing:antialiased;-moz-font-smoothing:antialiased;font-smoothing:antialiased;font-weight:300}button,input[type=checkbox]{outline:0}#todoapp{background:#fff;margin:130px 0 40px;box-shadow:0 2px 4px 0 rgba(0,0,0,.2),0 25px 50px 0 rgba(0,0,0,.1)}#todoapp input::-webkit-input-placeholder{font-style:italic;font-weight:300;color:#e6e6e6}#todoapp input::-moz-placeholder{font-style:italic;font-weight:300;color:#e6e6e6}#todoapp input::input-placeholder{font-style:italic;font-weight:300;color:#e6e6e6}#todoapp h1{position:absolute;top:-155px;width:100%;font-size:100px;font-weight:100;color:rgba(175,47,47,.15);-webkit-text-rendering:optimizeLegibility;-moz-text-rendering:optimizeLegibility;text-rendering:optimizeLegibility}#new-todo,.edit{margin:0;width:100%;font-size:24px;font-family:inherit;font-weight:inherit;line-height:1.4em;outline:0;color:inherit;padding:6px;border:1px solid #999;box-shadow:inset 0 -1px 5px 0 rgba(0,0,0,.2);box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-font-smoothing:antialiased;font-smoothing:antialiased}#new-todo{padding:16px 16px 16px 60px;border:none;background:rgba(0,0,0,.003);box-shadow:inset 0 -2px 1px rgba(0,0,0,.03)}#main{z-index:2;border-top:1px solid #e6e6e6}#toggle-all{position:absolute;top:-55px;left:-12px;width:60px;height:34px;border:none}#toggle-all:before{content:'❯';font-size:22px;color:#e6e6e6;padding:10px 27px}#toggle-all:checked:before{color:#737373}#todo-list{margin:0;padding:0;list-style:none}#todo-list li{font-size:24px;border-bottom:1px solid #ededed}#todo-list li:last-child{border-bottom:none}#todo-list li.editing{border-bottom:none;padding:0}#todo-list li.editing .edit{display:block;width:506px;padding:13px 17px 12px;margin:0 0 0 43px}#todo-list li.editing .view{display:none}#todo-list li .toggle{text-align:center;width:40px;height:auto;position:absolute;top:0;bottom:0;margin:auto 0;border:none;-webkit-appearance:none;appearance:none}#todo-list li .toggle:after{content:url('data:image/svg+xml;utf8,')}#todo-list li .toggle:checked:after{content:url('data:image/svg+xml;utf8,')}#todo-list li label{white-space:pre;word-break:break-word;padding:15px 60px 15px 15px;margin-left:45px;display:block;line-height:1.2;transition:color .4s}#todo-list li.completed label{color:#d9d9d9;text-decoration:line-through}#todo-list li .destroy{display:none;position:absolute;top:0;right:10px;bottom:0;width:40px;height:40px;margin:auto 0 11px;font-size:30px;color:#cc9a9a;transition:color .2s ease-out}#filters,#footer:before{position:absolute;right:0;left:0}#todo-list li .destroy:hover{color:#af5b5e}#filters li a,#info a{color:inherit;text-decoration:none}#todo-list li .destroy:after{content:'×'}#todo-list li:hover .destroy{display:block}#todo-list li .edit{display:none}#todo-list li.editing:last-child{margin-bottom:-1px}#footer{color:#777;padding:10px 15px;height:20px;border-top:1px solid #e6e6e6}#footer:before{content:'';bottom:0;height:50px;overflow:hidden;box-shadow:0 1px 1px rgba(0,0,0,.2),0 8px 0 -3px #f6f6f6,0 9px 1px -3px rgba(0,0,0,.2),0 16px 0 -6px #f6f6f6,0 17px 2px -6px rgba(0,0,0,.2)}#todo-count{float:left;text-align:left}#todo-count strong{font-weight:300}#filters{margin:0;padding:0;list-style:none}#filters li{display:inline}#filters li a{margin:3px;padding:3px 7px;border:1px solid transparent;border-radius:3px}#filters li a.selected,#filters li a:hover{border-color:rgba(175,47,47,.1)}#filters li a.selected{border-color:rgba(175,47,47,.2)}#clear-completed,html #clear-completed:active{float:right;line-height:20px;text-decoration:none;cursor:pointer;position:relative}#clear-completed:hover,#info a:hover{text-decoration:underline}#info{margin:65px auto 0;color:#bfbfbf;font-size:10px;text-shadow:0 1px 0 rgba(255,255,255,.5)}#info p{line-height:1}#info a{font-weight:400}@media screen and (-webkit-min-device-pixel-ratio:0){#todo-list li .toggle,#toggle-all{background:0 0}#todo-list li .toggle{height:40px}#toggle-all{-webkit-transform:rotate(90deg);transform:rotate(90deg);-webkit-appearance:none;appearance:none}}@media (max-width:430px){#footer{height:50px}#filters{bottom:10px}} \ No newline at end of file diff --git a/examples/ember-cli/todomvc/dist/assets/vendor-fe6aaf6bf08a00247e9bb45b00c6c98c.js b/examples/ember-cli/todomvc/dist/assets/vendor-fe6aaf6bf08a00247e9bb45b00c6c98c.js new file mode 100644 index 0000000000..1cc7cac84c --- /dev/null +++ b/examples/ember-cli/todomvc/dist/assets/vendor-fe6aaf6bf08a00247e9bb45b00c6c98c.js @@ -0,0 +1,18 @@ +function createDeprecatedModule(e){define(e,["exports","ember-resolver/resolver","ember"],function(t,r,n){n["default"].deprecate("Usage of `"+e+"` module is deprecated, please update to `ember-resolver`.",!1,{id:"ember-resolver.legacy-shims",until:"3.0.0"}),t["default"]=r["default"]})}window.EmberENV={FEATURES:{}};var runningTests=!1,loader,define,requireModule,require,requirejs;!function(e){"use strict";function t(){c={define:0,require:0,reify:0,build:0,modules:0,exports:0,ensureBuild:0,resolve:0,resolveRelative:0,findModule:0},requirejs._stats=c}function r(e){throw new Error("an unsupported module was defined, expected `define(name, deps, module)` instead got: `"+e+"` arguments to define`")}function n(e,t,r,n){c.modules++,this.id=v++,this.name=e,this.deps=!t.length&&r.length?b:t,this.module={exports:{}},this.callback=r,this.state=void 0,this.finalized=!1,this.hasExportsAsDep=!1,this.isAlias=n,this.reified=new Array(t.length)}function i(e){this.name=e}function o(e,t){throw new Error("Could not find module `"+e+"` imported from `"+t+"`")}function a(e,t){c.findModule++;for(var r=d[e]||d[e+"/index"];r&&r.isAlias;)r=d[r.name];return r||o(e,t),r.build(),r}function s(e,t){if(c.resolve++,"."!==e.charAt(0))return e;c.resolveRelative++;for(var r=e.split("/"),n=t.split("/"),i=n.slice(0,-1),o=0,a=r.length;a>o;o++){var s=r[o];if(".."===s){if(0===i.length)throw new Error("Cannot access parent module of root");i.pop()}else{if("."===s)continue;i.push(s)}}return i.join("/")}function u(e){return!(!d[e]&&!d[e+"/index"])}var l={loader:loader,define:define,requireModule:requireModule,require:require,requirejs:requirejs};requirejs=require=requireModule=function(e){return c.require++,a(e,"(require)").module.exports};var c;t(),loader={noConflict:function(t){var r,n;for(r in t)t.hasOwnProperty(r)&&l.hasOwnProperty(r)&&(n=t[r],e[n]=e[r],e[r]=l[r])}};var f;f=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)};var d={},p={},h=!1,m=!0,v=0,b=["require","exports","module"];n.prototype.makeDefaultExport=function(){var e=this.module.exports;null===e||"object"!=typeof e&&"function"!=typeof e||void 0!==e["default"]||(e["default"]=e)},n.prototype.exports=function(){if(c.exports++,this.finalized)return this.module.exports;loader.wrapModules&&(this.callback=loader.wrapModules(this.name,this.callback));var e=this.callback.apply(this,this.reified);return this.hasExportsAsDep&&void 0===e||(this.module.exports=e),this.makeDefaultExport(),this.finalized=!0,this.module.exports},n.prototype.unsee=function(){this.finalized=!1,this.state=void 0,this.module={exports:{}}},n.prototype.reify=function(){c.reify++;for(var e,t=this.deps,r=this.reified,n=0;n0&&t-1 in e}function n(e,t,r){if(oe.isFunction(t))return oe.grep(e,function(e,n){return!!t.call(e,n,e)!==r});if(t.nodeType)return oe.grep(e,function(e){return e===t!==r});if("string"==typeof t){if(me.test(t))return oe.filter(t,e,r);t=oe.filter(t,e)}return oe.grep(e,function(e){return Z.call(t,e)>-1!==r})}function i(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function o(e){var t={};return oe.each(e.match(we)||[],function(e,r){t[r]=!0}),t}function a(){G.removeEventListener("DOMContentLoaded",a),e.removeEventListener("load",a),oe.ready()}function s(){this.expando=oe.expando+s.uid++}function u(e,t,r){var n;if(void 0===r&&1===e.nodeType)if(n="data-"+t.replace(Ne,"-$&").toLowerCase(),r=e.getAttribute(n),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:Te.test(r)?oe.parseJSON(r):r}catch(i){}Oe.set(e,t,r)}else r=void 0;return r}function l(e,t,r,n){var i,o=1,a=20,s=n?function(){return n.cur()}:function(){return oe.css(e,t,"")},u=s(),l=r&&r[3]||(oe.cssNumber[t]?"":"px"),c=(oe.cssNumber[t]||"px"!==l&&+u)&&Ae.exec(oe.css(e,t));if(c&&c[3]!==l){l=l||c[3],r=r||[],c=+u||1;do o=o||".5",c/=o,oe.style(e,t,c+l);while(o!==(o=s()/u)&&1!==o&&--a)}return r&&(c=+c||+u||0,i=r[1]?c+(r[1]+1)*r[2]:+r[2],n&&(n.unit=l,n.start=c,n.end=i)),i}function c(e,t){var r="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&oe.nodeName(e,t)?oe.merge([e],r):r}function f(e,t){for(var r=0,n=e.length;n>r;r++)Ee.set(e[r],"globalEval",!t||Ee.get(t[r],"globalEval"))}function d(e,t,r,n,i){for(var o,a,s,u,l,d,p=t.createDocumentFragment(),h=[],m=0,v=e.length;v>m;m++)if(o=e[m],o||0===o)if("object"===oe.type(o))oe.merge(h,o.nodeType?[o]:o);else if(Ie.test(o)){for(a=a||p.appendChild(t.createElement("div")),s=(Le.exec(o)||["",""])[1].toLowerCase(),u=Me[s]||Me._default,a.innerHTML=u[1]+oe.htmlPrefilter(o)+u[2],d=u[0];d--;)a=a.lastChild;oe.merge(h,a.childNodes),a=p.firstChild,a.textContent=""}else h.push(t.createTextNode(o));for(p.textContent="",m=0;o=h[m++];)if(n&&oe.inArray(o,n)>-1)i&&i.push(o);else if(l=oe.contains(o.ownerDocument,o),a=c(p.appendChild(o),"script"),l&&f(a),r)for(d=0;o=a[d++];)De.test(o.type||"")&&r.push(o);return p}function p(){return!0}function h(){return!1}function m(){try{return G.activeElement}catch(e){}}function v(e,t,r,n,i,o){var a,s;if("object"==typeof t){"string"!=typeof r&&(n=n||r,r=void 0);for(s in t)v(e,s,r,n,t[s],o);return e}if(null==n&&null==i?(i=r,n=r=void 0):null==i&&("string"==typeof r?(i=n,n=void 0):(i=n,n=r,r=void 0)),i===!1)i=h;else if(!i)return e;return 1===o&&(a=i,i=function(e){return oe().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=oe.guid++)),e.each(function(){oe.event.add(this,t,i,n,r)})}function b(e,t){return oe.nodeName(e,"table")&&oe.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function g(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function y(e){var t=Ue.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _(e,t){var r,n,i,o,a,s,u,l;if(1===t.nodeType){if(Ee.hasData(e)&&(o=Ee.access(e),a=Ee.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(r=0,n=l[i].length;n>r;r++)oe.event.add(t,i,l[i][r])}Oe.hasData(e)&&(s=Oe.access(e),u=oe.extend({},s),Oe.set(t,u))}}function w(e,t){var r=t.nodeName.toLowerCase();"input"===r&&Re.test(e.type)?t.checked=e.checked:"input"!==r&&"textarea"!==r||(t.defaultValue=e.defaultValue)}function x(e,t,r,n){t=X.apply([],t);var i,o,a,s,u,l,f=0,p=e.length,h=p-1,m=t[0],v=oe.isFunction(m);if(v||p>1&&"string"==typeof m&&!ne.checkClone&&Be.test(m))return e.each(function(i){var o=e.eq(i);v&&(t[0]=m.call(this,i,o.html())),x(o,t,r,n)});if(p&&(i=d(t,e[0].ownerDocument,!1,e,n),o=i.firstChild,1===i.childNodes.length&&(i=o),o||n)){for(a=oe.map(c(i,"script"),g),s=a.length;p>f;f++)u=i,f!==h&&(u=oe.clone(u,!0,!0),s&&oe.merge(a,c(u,"script"))),r.call(e[f],u,f);if(s)for(l=a[a.length-1].ownerDocument,oe.map(a,y),f=0;s>f;f++)u=a[f],De.test(u.type||"")&&!Ee.access(u,"globalEval")&&oe.contains(l,u)&&(u.src?oe._evalUrl&&oe._evalUrl(u.src):oe.globalEval(u.textContent.replace(We,"")))}return e}function k(e,t,r){for(var n,i=t?oe.filter(t,e):e,o=0;null!=(n=i[o]);o++)r||1!==n.nodeType||oe.cleanData(c(n)),n.parentNode&&(r&&oe.contains(n.ownerDocument,n)&&f(c(n,"script")),n.parentNode.removeChild(n));return e}function C(e,t){var r=oe(t.createElement(e)).appendTo(t.body),n=oe.css(r[0],"display");return r.detach(),n}function E(e){var t=G,r=Ke[e];return r||(r=C(e,t),"none"!==r&&r||($e=($e||oe("